From df8c455d56820bb118c7c67cb64252537900486b Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 17 Jul 2025 17:28:12 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=8E=A7=E5=88=B6=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/WorkGridScheduleService.cs | 128 ++++++++++-------- 1 file changed, 68 insertions(+), 60 deletions(-) diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs index 61284eaf..5244ba59 100644 --- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs +++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridScheduleService.cs @@ -142,41 +142,46 @@ public class WorkGridScheduleService : IWorkGridScheduleService await _dbContext.InsertAsync(toInserts); await _operateLog.LogAsync(OperateLogType.WorkGrid, $"新增网格({workGrid.Name}){request.Date.ToString("yyyy-M-d")}的{request.PeriodType.GetDescription()}人员:{request.UserCodes.Join(",")}"); - //推送到SAP - var items = toInserts.Select(x => new SyncWorkShiftDayItem + if (workGrid.Code.ToString() == "4cc354b4-a727-4120-86b7-a160590bedb3") { - UserCode = x.UserCode, - Begin = x.Date.ToString("yyyyMMdd"), - End = x.Date.ToString("yyyyMMdd"), - Plan = request.PeriodType == WorkGridTimePeriodEnumType.Day ? "JK03" : "JK04", - Operate = "INS" - }).ToList(); - - var response = await _jinkoJipApi.SyncWorkShiftAsync(new SyncWorkShiftRequest { Items = items }); - response.Message.IsPresent().ThrowIfTrue("JIP接口返回错误:" + response.Message); - if (response == null || response.Items == null || response.Items.Count == 0) - { - throw new UserFriendlyException("JIP接口返回数据异常,请联系管理员"); + //推送到SAP + var items = toInserts.Select(x => new SyncWorkShiftDayItem + { + UserCode = x.UserCode, + Begin = x.Date.ToString("yyyyMMdd"), + End = x.Date.ToString("yyyyMMdd"), + Plan = request.PeriodType == WorkGridTimePeriodEnumType.Day ? "JK03" : "JK04", + Operate = "INS" + }).ToList(); + + var response = await _jinkoJipApi.SyncWorkShiftAsync(new SyncWorkShiftRequest { Items = items }); + response.Message.IsPresent().ThrowIfTrue("JIP接口返回错误:" + response.Message); + if (response == null || response.Items == null || response.Items.Count == 0) + { + throw new UserFriendlyException("JIP接口返回数据异常,请联系管理员"); + } + + if (response.Items.Any(x => x.Result != "S")) + { + var errorMessages = response.Items.Where(x => x.Result != "S") + .Select(x => $"{x.UserCode}排班新增失败:{x.Message}").Join("\r\n"); + throw new UserFriendlyException(errorMessages); + } + + foreach (var workGridSchedule in toInserts) + { + var msg = response.Items.FirstOrDefault(x => x.UserCode == workGridSchedule.UserCode)?.Message; + await _dbContext.Updateable() + .SetColumns(x => x.SyncResult == msg) + .Where(x => x.WorkGridCode == workGrid.Code) + .Where(x => x.UserCode == workGridSchedule.UserCode) + .Where(x => x.Date == workGridSchedule.Date) + .Where(x => x.PeriodType == workGridSchedule.PeriodType) + .ExecuteCommandAsync(); + } } + - if (response.Items.Any(x => x.Result != "S")) - { - var errorMessages = response.Items.Where(x => x.Result != "S") - .Select(x => $"{x.UserCode}排班新增失败:{x.Message}").Join("\r\n"); - throw new UserFriendlyException(errorMessages); - } - - foreach (var workGridSchedule in toInserts) - { - var msg = response.Items.FirstOrDefault(x => x.UserCode == workGridSchedule.UserCode)?.Message; - await _dbContext.Updateable() - .SetColumns(x => x.SyncResult == msg) - .Where(x => x.WorkGridCode == workGrid.Code) - .Where(x => x.UserCode == workGridSchedule.UserCode) - .Where(x => x.Date == workGridSchedule.Date) - .Where(x => x.PeriodType == workGridSchedule.PeriodType) - .ExecuteCommandAsync(); - } //todo sub pub //推送排班通知 @@ -243,36 +248,39 @@ public class WorkGridScheduleService : IWorkGridScheduleService if (data.Any()) { - //推送到SAP - var items = data.Select(x => new SyncWorkShiftDayItem + if (workGrid.Code.ToString() == "4cc354b4-a727-4120-86b7-a160590bedb3") { - UserCode = x.UserCode, - Begin = x.Date.ToString("yyyyMMdd"), - End = x.Date.ToString("yyyyMMdd"), - Plan = request.PeriodType == WorkGridTimePeriodEnumType.Day ? "JK03" : "JK04", - Operate = "DEL" - }).ToList(); - - var response = await _jinkoJipApi.SyncWorkShiftAsync(new SyncWorkShiftRequest { Items = items }); - response.Message.IsPresent().ThrowIfTrue("JIP接口返回错误:" + response.Message); - if (response == null || response.Items == null || response.Items.Count == 0) - { - throw new UserFriendlyException("JIP接口返回数据异常,请联系管理员"); - } - - if (response.Items.Any(x => x.Result != "S")) - { - var errorMessages = response.Items.Where(x => x.Result != "S") - .Select(x => $"{x.UserCode}排班删除失败:{x.Message}").Join("\r\n"); - throw new UserFriendlyException(errorMessages); - } - - foreach (var workGridSchedule in data) - { - workGridSchedule.SyncResult = response.Items.FirstOrDefault(x => x.UserCode == workGridSchedule.UserCode)?.Message; - } + //推送到SAP + var items = data.Select(x => new SyncWorkShiftDayItem + { + UserCode = x.UserCode, + Begin = x.Date.ToString("yyyyMMdd"), + End = x.Date.ToString("yyyyMMdd"), + Plan = request.PeriodType == WorkGridTimePeriodEnumType.Day ? "JK03" : "JK04", + Operate = "DEL" + }).ToList(); - await _dbContext.UpdateAsync(data); + var response = await _jinkoJipApi.SyncWorkShiftAsync(new SyncWorkShiftRequest { Items = items }); + response.Message.IsPresent().ThrowIfTrue("JIP接口返回错误:" + response.Message); + if (response == null || response.Items == null || response.Items.Count == 0) + { + throw new UserFriendlyException("JIP接口返回数据异常,请联系管理员"); + } + + if (response.Items.Any(x => x.Result != "S")) + { + var errorMessages = response.Items.Where(x => x.Result != "S") + .Select(x => $"{x.UserCode}排班删除失败:{x.Message}").Join("\r\n"); + throw new UserFriendlyException(errorMessages); + } + + foreach (var workGridSchedule in data) + { + workGridSchedule.SyncResult = response.Items.FirstOrDefault(x => x.UserCode == workGridSchedule.UserCode)?.Message; + } + await _dbContext.UpdateAsync(data); + } + await _dbContext.DeleteAsync(data); await _operateLog.LogAsync(OperateLogType.WorkGrid, $"移除网格({workGrid.Name}){request.Date.ToString("yyyy-M-d")}的{request.PeriodType.GetDescription()}人员:{request.UserCodes.Join(",")}");