From 1c8dc0a9b3cb0a9768bb063a6c58ca0db50a3996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?= <10755671+mei-rong-he@user.noreply.gitee.com> Date: Sun, 7 Dec 2025 11:11:35 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=86=E5=AF=BC=E5=B8=A6=E7=8F=AD=E4=B8=8B?= =?UTF-8?q?=E4=BA=95=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/SchedulingController.cs | 70 ++++++++-------- .../Controllers/Api/FOController.cs | 79 ++++++++++++------- 2 files changed, 84 insertions(+), 65 deletions(-) diff --git a/APT.MicroApi/APT.FO.WebApi/Controllers/SchedulingController.cs b/APT.MicroApi/APT.FO.WebApi/Controllers/SchedulingController.cs index 8b5ffa6..b72302b 100644 --- a/APT.MicroApi/APT.FO.WebApi/Controllers/SchedulingController.cs +++ b/APT.MicroApi/APT.FO.WebApi/Controllers/SchedulingController.cs @@ -106,14 +106,14 @@ namespace APT.FO.WebApi.Controllers } for (int i = 0; i < rowAll; i++) { - if (string.IsNullOrEmpty(dtSource.Rows[i][0].ToString())) + if (string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim())) { if (string.IsNullOrEmpty(Msg)) Msg = "第"+(i+1)+"行第1列:日期不能为空"; else Msg = Msg + "\n" + "第" + (i + 1) + "行第1列:日期不能为空"; } - if (string.IsNullOrEmpty(dtSource.Rows[i][1].ToString())) + if (string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim())) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + (i + 1) + "行第2列:班次不能为空"; @@ -122,7 +122,7 @@ namespace APT.FO.WebApi.Controllers } else { - var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][1].ToString()); + var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][1].ToString().Trim()); if (firstClass == null) { if (string.IsNullOrEmpty(Msg)) @@ -131,7 +131,7 @@ namespace APT.FO.WebApi.Controllers Msg = Msg + "\n" + "第" + (i + 1) + "行第2列:班次未找到,请先到班次管理添加"; } } - if (string.IsNullOrEmpty(dtSource.Rows[i][2].ToString())) + if (string.IsNullOrEmpty(dtSource.Rows[i][2].ToString().Trim())) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + (i + 1) + "行第3列:带班领导不能为空"; @@ -140,7 +140,7 @@ namespace APT.FO.WebApi.Controllers } else { - var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString()); + var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString().Trim()); if (firstUser == null) { if (string.IsNullOrEmpty(Msg)) @@ -149,7 +149,7 @@ namespace APT.FO.WebApi.Controllers Msg = Msg + "\n" + "第" + (i + 1) + "行第3列:带班领导未找到,请先到用户列表添加"; } } - if (string.IsNullOrEmpty(dtSource.Rows[i][5].ToString())) + if (string.IsNullOrEmpty(dtSource.Rows[i][5].ToString().Trim())) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + (i + 1) + "行第6列:班次不能为空"; @@ -158,7 +158,7 @@ namespace APT.FO.WebApi.Controllers } else { - var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][5].ToString()); + var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][5].ToString().Trim()); if (firstClass == null) { if (string.IsNullOrEmpty(Msg)) @@ -167,7 +167,7 @@ namespace APT.FO.WebApi.Controllers Msg = Msg + "\n" + "第" + (i + 1) + "行第6列:班次未找到,请先到班次管理添加"; } } - if (string.IsNullOrEmpty(dtSource.Rows[i][6].ToString())) + if (string.IsNullOrEmpty(dtSource.Rows[i][6].ToString().Trim())) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + (i + 1) + "行第7列:带班领导不能为空"; @@ -176,7 +176,7 @@ namespace APT.FO.WebApi.Controllers } else { - var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][6].ToString()); + var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][6].ToString().Trim()); if (firstUser == null) { if (string.IsNullOrEmpty(Msg)) @@ -185,7 +185,7 @@ namespace APT.FO.WebApi.Controllers Msg = Msg + "\n" + "第" + (i + 1) + "行第7列:带班领导未找到,请先到用户列表添加"; } } - if (string.IsNullOrEmpty(dtSource.Rows[i][9].ToString())) + if (string.IsNullOrEmpty(dtSource.Rows[i][9].ToString().Trim())) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + (i + 1) + "行第10列:班次不能为空"; @@ -194,7 +194,7 @@ namespace APT.FO.WebApi.Controllers } else { - var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][9].ToString()); + var firstClass = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[i][9].ToString().Trim()); if (firstClass == null) { if (string.IsNullOrEmpty(Msg)) @@ -203,7 +203,7 @@ namespace APT.FO.WebApi.Controllers Msg = Msg + "\n" + "第" + (i + 1) + "行第10列:班次未找到,请先到班次管理添加"; } } - if (string.IsNullOrEmpty(dtSource.Rows[i][10].ToString())) + if (string.IsNullOrEmpty(dtSource.Rows[i][10].ToString().Trim())) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + (i + 1) + "行第11列:带班领导不能为空"; @@ -212,7 +212,7 @@ namespace APT.FO.WebApi.Controllers } else { - var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][10].ToString()); + var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][10].ToString().Trim()); if (firstUser == null) { if (string.IsNullOrEmpty(Msg)) @@ -227,54 +227,54 @@ namespace APT.FO.WebApi.Controllers { throw new Exception(Msg); } - var classFirst = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][1].ToString()); - var classScond = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][5].ToString()); - var classThird = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][9].ToString()); + var classFirst = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][1].ToString().Trim()); + var classScond = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][5].ToString().Trim()); + var classThird = fmClass.FirstOrDefault(t => t.NAME == dtSource.Rows[0][9].ToString().Trim()); List sches = new List(); string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; for (int i = 0; i < rowAll; i++) { - var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString()); - var techUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][3].ToString()); - var driverUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][4].ToString()); - var scondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][6].ToString()); - var techScondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][7].ToString()); - var driverScondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][8].ToString()); - var thirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][10].ToString()); - var techThirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][11].ToString()); - var driverThirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][12].ToString()); + var firstUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][2].ToString().Trim()); + var techUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][3].ToString().Trim()); + var driverUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][4].ToString().Trim()); + var scondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][6].ToString().Trim()); + var techScondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][7].ToString().Trim()); + var driverScondUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][8].ToString().Trim()); + var thirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][10].ToString().Trim()); + var techThirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][11].ToString().Trim()); + var driverThirdUser = users.FirstOrDefault(t => t.NAME == dtSource.Rows[i][12].ToString().Trim()); T_FO_SCHEDULING sche = new T_FO_SCHEDULING(); sche.ID = Guid.NewGuid(); sche.ORG_ID = orgId; - sche.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString()); + sche.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString().Trim()); sche.USER_ID = firstUser.ID; sche.TECH_ID = techUser?.ID; sche.DRIVER_ID = driverUser?.ID; sche.CLASS_ID = classFirst.ID; - sche.REMARK = dtSource.Rows[i][13].ToString(); - sche.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString(); + sche.REMARK = dtSource.Rows[i][13].ToString().Trim(); + sche.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString().Trim(); sches.Add(sche); T_FO_SCHEDULING sche2 = new T_FO_SCHEDULING(); sche2.ID = Guid.NewGuid(); sche2.ORG_ID = orgId; - sche2.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString()); + sche2.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString().Trim()); sche2.USER_ID = scondUser.ID; - sche2.TECH_ID = techUser?.ID; + sche2.TECH_ID = techScondUser?.ID; sche2.DRIVER_ID = driverScondUser?.ID; sche2.CLASS_ID = classScond.ID; - sche2.REMARK = dtSource.Rows[i][13].ToString(); - sche2.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString(); + sche2.REMARK = dtSource.Rows[i][13].ToString().Trim(); + sche2.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString().Trim(); sches.Add(sche2); T_FO_SCHEDULING sche3 = new T_FO_SCHEDULING(); sche3.ID = Guid.NewGuid(); sche3.ORG_ID = orgId; - sche3.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString()); + sche3.DATE = Convert.ToDateTime(dtSource.Rows[i][0].ToString().Trim()); sche3.USER_ID = thirdUser.ID; sche3.TECH_ID = techThirdUser?.ID; sche3.DRIVER_ID = driverThirdUser?.ID; sche3.CLASS_ID = classThird.ID; - sche3.REMARK = dtSource.Rows[i][13].ToString(); - sche3.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString(); + sche3.REMARK = dtSource.Rows[i][13].ToString().Trim(); + sche3.WEEK = Day[Convert.ToInt32(sche.DATE.DayOfWeek.ToString("d"))].ToString().Trim(); sches.Add(sche3); } UnifiedCommit(() => diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs index 4ea6cab..8d7036b 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs @@ -19,11 +19,13 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.VisualBasic; using NPOI.SS.Formula.Functions; +using NPOI.Util; using System; using System.Collections.Generic; using System.Linq; using System.Numerics; using static Microsoft.AspNetCore.Razor.Language.TagHelperMetadata; +using static NPOI.HSSF.Util.HSSFColor; namespace APT.PP.WebApi.Controllers.Api.PP { @@ -1994,6 +1996,10 @@ namespace APT.PP.WebApi.Controllers.Api.PP var wellRecords = new List(); var wellRecordUsers = new List(); var dt = DateTime.Now; + if (filter.Parameter1 != null) + { + dt = DateTime.Parse(filter.Parameter1); + } var company = this.GetEntity(t => t.PARENT_ID == null && t.ENABLE_STATUS == 0); var fmClass = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail"); var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId),"Nav_Department"); @@ -2021,6 +2027,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP record.JOB_END_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.ENDTIME.ToShortTimeString()); record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID; record.COMPANY_ID = company?.ID; + record.CLASS_ID = item.CLASS_ID; record.PRODUCTION_UNIT_ID = sendUser?.Nav_Department?.PRODUCTION_UNIT_ID; wellRecords.Add(record); T_FO_LEADER_WELL_RECORD_USER ledUser = new T_FO_LEADER_WELL_RECORD_USER(); @@ -2070,13 +2077,20 @@ namespace APT.PP.WebApi.Controllers.Api.PP try { var notices = new List(); - var wellRecords = new List(); - var wellRecordUsers = new List(); + var wellRecords = new List(); + var wellRecordUsers = new List(); var dt = DateTime.Now; + if (filter.Parameter1 != null) + { + dt = DateTime.Parse(filter.Parameter1); + } + var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); var fmClass = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail"); - var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId), "Nav_Department"); + var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId), "Nav_Person.Nav_Post"); var records = this.GetEntities(t => t.CREATE_TIME.Value.Date == DateTime.Now.Date, new BaseFilter(filter.OrgId)); - var preClass = this.GetEntities(t => t.CREATE_TIME.Value.Date == DateTime.Now.Date && t.DEPARTMENT_SCHEDULING_ID == null, new BaseFilter(filter.OrgId)); + var preClass = this.GetEntities(t => t.CREATE_TIME.Value.Date == DateTime.Now.Date && t.DEPARTMENT_SCHEDULING_ID == null, new BaseFilter(filter.OrgId)); + var preClassIds = preClass.Select(t => t.ID).ToList(); + var preClassUsers = this.GetEntities(t => preClassIds.Contains(t.PRE_SHIFT_MEETING_RECORD_ID), new BaseFilter(filter.OrgId)); if (preClass != null && preClass.Any()) { foreach (var item in preClass) @@ -2088,27 +2102,32 @@ namespace APT.PP.WebApi.Controllers.Api.PP var firstTime = classFisrt.Nav_ClassDetail.OrderBy(t => t.NUM).FirstOrDefault(); if (firstTime.ENDTIME.Hour == DateTime.Now.AddHours(1).Hour && firstRecord == null) { - var sendUser = users.FirstOrDefault(t => t.ID == item.USER_ID); - if (sendUser != null) + var userIds = preClassUsers.Where(t => t.PRE_SHIFT_MEETING_RECORD_ID == item.ID).Select(m => m.USER_ID).Distinct().ToList(); + var sendUsers = users.Where(t => userIds.Contains(t.ID) && t.Nav_Person != null).ToList(); + if (sendUsers != null && sendUsers.Any()) { - T_FO_LEADER_WELL_RECORD record = new T_FO_LEADER_WELL_RECORD(); - record.ORG_ID = item.ORG_ID; - record.APPLY_USER_ID = sendUser.ID; - record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID; - record.JOB_START_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.STARTTIME.ToShortTimeString()); - record.JOB_END_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.ENDTIME.ToShortTimeString()); - record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID; - - record.PRODUCTION_UNIT_ID = sendUser?.Nav_Department?.PRODUCTION_UNIT_ID; - wellRecords.Add(record); - T_FO_LEADER_WELL_RECORD_USER ledUser = new T_FO_LEADER_WELL_RECORD_USER(); - ledUser.ORG_ID = item.ORG_ID; - ledUser.LEADER_WELL_RECORD_ID = record.ID; - ledUser.USER_ID = sendUser.ID; - wellRecordUsers.Add(ledUser); - var notice = NotificationTaskService.InsertUserNoticeTaskModel("领导带班下井记录" + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + "-" + classFisrt.NAME, record.ID, item.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now, - DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO041"); - notices.Add(notice); + foreach (var user in sendUsers) + { + var depart = departs.FirstOrDefault(t => t.ID == user.DEPARTMENT_ID); + T_FO_CURRENT_CLASS_RECORD record = new T_FO_CURRENT_CLASS_RECORD(); + record.ORG_ID = item.ORG_ID; + record.NAME = DateTime.Now.ToShortDateString() + depart?.NAME + "-" + user?.Nav_Person?.Nav_Post?.NAME + "当班工作记录"; + record.EDITOR_ID = user.ID; + record.RECORD_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.ENDTIME.ToShortTimeString()); + record.CLASS_ID = item.CLASS_ID; + record.DEPARTMENT_ID = user.DEPARTMENT_ID; + record.DEPARTMENT_POST_ID = user?.Nav_Person?.POST_ID; + record.CHARGE_USER_ID = depart?.USER_ID; + wellRecords.Add(record); + T_FO_CURRENT_CLASS_RECORD_USER ledUser = new T_FO_CURRENT_CLASS_RECORD_USER(); + ledUser.ORG_ID = item.ORG_ID; + ledUser.CURRENT_CLASS_RECORD_ID = record.ID; + ledUser.USER_ID = user.ID; + wellRecordUsers.Add(ledUser); + var notice = NotificationTaskService.InsertUserNoticeTaskModel(record.NAME, record.ID, item.ORG_ID, user.ID, user.NAME, DateTime.Now, + DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO005"); + notices.Add(notice); + } } } } @@ -2116,12 +2135,12 @@ namespace APT.PP.WebApi.Controllers.Api.PP } UnifiedCommit(() => { - //if (wellRecords != null && wellRecords.Any()) - // BantchSaveEntityNoCommit(wellRecords); - //if (wellRecordUsers != null && wellRecordUsers.Any()) - // BantchSaveEntityNoCommit(wellRecordUsers); - //if (notices != null && notices.Any()) - // BantchSaveEntityNoCommit(notices); + if (wellRecords != null && wellRecords.Any()) + BantchSaveEntityNoCommit(wellRecords); + if (wellRecordUsers != null && wellRecordUsers.Any()) + BantchSaveEntityNoCommit(wellRecordUsers); + if (notices != null && notices.Any()) + BantchSaveEntityNoCommit(notices); }); } catch (Exception ex)