领导带班下井导入

This commit is contained in:
何美荣 2025-12-07 11:11:35 +08:00
parent f7a781a601
commit 1c8dc0a9b3
2 changed files with 84 additions and 65 deletions

View File

@ -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<T_FO_SCHEDULING> sches = new List<T_FO_SCHEDULING>();
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(() =>

View File

@ -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<T_FO_LEADER_WELL_RECORD>();
var wellRecordUsers = new List<T_FO_LEADER_WELL_RECORD_USER>();
var dt = DateTime.Now;
if (filter.Parameter1 != null)
{
dt = DateTime.Parse(filter.Parameter1);
}
var company = this.GetEntity<T_FM_DEPARTMENT>(t => t.PARENT_ID == null && t.ENABLE_STATUS == 0);
var fmClass = this.GetEntities<T_FM_CLASS>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail");
var users = this.GetEntities<T_FM_USER>(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<T_FM_NOTIFICATION_TASK>();
var wellRecords = new List<T_FO_LEADER_WELL_RECORD>();
var wellRecordUsers = new List<T_FO_LEADER_WELL_RECORD_USER>();
var wellRecords = new List<T_FO_CURRENT_CLASS_RECORD>();
var wellRecordUsers = new List<T_FO_CURRENT_CLASS_RECORD_USER>();
var dt = DateTime.Now;
if (filter.Parameter1 != null)
{
dt = DateTime.Parse(filter.Parameter1);
}
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
var fmClass = this.GetEntities<T_FM_CLASS>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail");
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId), "Nav_Department");
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId), "Nav_Person.Nav_Post");
var records = this.GetEntities<T_FO_CURRENT_CLASS_RECORD>(t => t.CREATE_TIME.Value.Date == DateTime.Now.Date, new BaseFilter(filter.OrgId));
var preClass = this.GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD>(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_FO_PRE_SHIFT_MEETING_RECORD_USER>(t => preClassIds.Contains(t.PRE_SHIFT_MEETING_RECORD_ID), new BaseFilter(filter.OrgId));
if (preClass != null && preClass.Any())
{
foreach (var item in preClass)
@ -2088,40 +2102,45 @@ 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();
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.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;
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_LEADER_WELL_RECORD_USER ledUser = new T_FO_LEADER_WELL_RECORD_USER();
T_FO_CURRENT_CLASS_RECORD_USER ledUser = new T_FO_CURRENT_CLASS_RECORD_USER();
ledUser.ORG_ID = item.ORG_ID;
ledUser.LEADER_WELL_RECORD_ID = record.ID;
ledUser.USER_ID = sendUser.ID;
ledUser.CURRENT_CLASS_RECORD_ID = record.ID;
ledUser.USER_ID = user.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");
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);
}
}
}
}
}
}
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)