From df24bf4e9b4c8330cb6d9072e8709c1358bc6d87 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: Tue, 30 Sep 2025 11:51:12 +0800
Subject: [PATCH] 2
---
.../Controllers/Api/SKController.cs | 942 +++++++++---------
1 file changed, 473 insertions(+), 469 deletions(-)
diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs
index aa813a5..28ba829 100644
--- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs
+++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs
@@ -4833,476 +4833,480 @@ namespace APT.PP.WebApi.Controllers.Api
});
}
- ///
- /// 触发安全检查通知(最新版)
- ///
- ///
- ///
- [HttpPost, Route("SafeCheckNoticeNeww")]
- public JsonActionResult SafeCheckNoticeNeww([FromBody] KeywordFilter filter)
- {
- return SafeExecute(() =>
- {
- try
- {
- var dtNow = DateTime.Now;
- var year = dtNow.Year;
- var month = dtNow.Month;
- var day = dtNow.Day;
- var week = dtNow.DayOfWeek;
- List setList = new List();
- //查配置表,有配才执行
- var timeSets = GetEntities(i => i.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList();
- if (timeSets != null && timeSets.Any())
- {
- foreach (var set in timeSets)
- {
- switch (set.CHECK_CYCLE)
- {
- case SKPLANCHECKFREQUENCYEnum.Year:
- if (set.MONTH == month && set.DATA == day)
- {
- setList.Add(set);
- }
- break;
- case SKPLANCHECKFREQUENCYEnum.HalfYear:
- if ((set.MONTH == month && set.DATA == day) || ((set.MONTH + 6) == month && (set.DATA + 183) == day))
- {
- setList.Add(set);
- }
- break;
- case SKPLANCHECKFREQUENCYEnum.Date:
- setList.Add(set);
- break;
- //case SKPLANCHECKFREQUENCYEnum.Class:
- // setList.Add(set);
- break;
- case SKPLANCHECKFREQUENCYEnum.Week:
- if (set.WEEKDATA != null && (int)set.WEEKDATA.Value == (int)week)
- {
- setList.Add(set);
- }
- break;
- case SKPLANCHECKFREQUENCYEnum.Month:
- if (set.DATA == day)
- {
- setList.Add(set);
- }
- break;
- case SKPLANCHECKFREQUENCYEnum.Quarter:
- if (set.MONTH == 1)
- {
- if ((month == 1 || month == 4 || month == 7 || month == 10) && set.DATA == day)
- {
- setList.Add(set);
- }
- }
- if (set.MONTH == 2)
- {
- if ((month == 2 || month == 5 || month == 8 || month == 11) && set.DATA == day)
- {
- setList.Add(set);
- }
- }
- if (set.MONTH == 3)
- {
- if ((month == 3 || month == 6 || month == 9 || month == 12) && set.DATA == day)
- {
- setList.Add(set);
- }
- }
- break;
- default:
- break;
- }
- }
- }
- List notices = new List();
- List safeNotices = new List();
- List safeDetialNotices = new List();
- List records = new List();
- List recordDetails = new List();
- List recordDetailUsers = new List();
- List list = new List();
- List detailContents = new List();
- if (setList != null && setList.Any())
- {
- var checkTypes = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId));
- var checkTypeIds = checkTypes.Where(t => t.NAME == "岗位排查").Select(m => m.ID).ToList();
- var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_User");
- var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin") && t.Nav_Person != null, new BaseFilter(filter.OrgId), "Nav_Person", "Nav_ApproveRole");
- var checkCycles = setList.Select(t => t.CHECK_CYCLE).Distinct().ToList();
- var librarys = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Area", "Nav_ProductionUnit").ToList();
- var libraryDetails = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList();
- var contents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Contents").ToList();
- var contentDeparts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList();
- var posts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList();
- if (librarys != null && librarys.Any())
- {
- foreach (var item in librarys)
- {
- var libraryPost = posts.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList();
- var details = libraryDetails.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList();
- var detailIds = details.Select(t => t.ID).ToList();
- var contentTemps = contents.Where(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID)).ToList();
- var contentTempIds = contentTemps.Select(t => t.ID).ToList();
- var contentDepartTemps = contentDeparts.Where(t => contentTempIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID)).ToList();
- if (contentDepartTemps != null && contentDepartTemps.Any())
- {
- foreach (var depart in contentDepartTemps)
- {
- var first = libraryPost.FirstOrDefault(t => t.DEPARTMENT_ID == depart.DEPARTMENT_ID)?.Nav_PostDetails?.Select(m => m.Nav_Post).OrderBy(n => n?.NAME).ToList();
- var contentFirst = contentTemps.FirstOrDefault(t => t.ID == depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID);
- if (first != null && first.Any())
- {
- foreach (var post in first)
- {
- //没角色的才取岗位
- var userRole = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID == post?.ID).APPROVE_ROLE_ID;
- if (userRole == null)
- {
- T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
- de.POST_NAME = post?.NAME;
- de.MineType = item.MineType;
- de.MINE_NAME = item.Nav_ProductionUnit?.NAME;
- de.AREA_NAME = item.Nav_Area?.NAME;
- de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID;
- de.ENTERPRISE_LIBRARY_ID = item.ID;
- de.TYPE_NAME = depart.Nav_CheckType?.NAME;
- de.DEPART_NAME = depart.Nav_Department?.NAME;
- de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID;
- de.CHECK_CYCLE = depart.CHECK_CYCLE;
- de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID;
- de.DEPARTMENT_ID = depart.DEPARTMENT_ID;
- de.CHECK_TYPE = depart.CHECK_TYPE;
- de.POST_ID = post?.ID;
- detailContents.Add(de);
- }
- }
- }
- else
- {
- T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
- de.POST_NAME = "未配置辨识岗位";
- de.MineType = item.MineType;
- de.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
- de.MINE_NAME = item.Nav_ProductionUnit?.NAME;
- de.AREA_NAME = item.Nav_Area?.NAME;
- de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID;
- de.ENTERPRISE_LIBRARY_ID = item.ID;
- de.TYPE_NAME = depart.Nav_CheckType?.NAME;
- de.DEPART_NAME = depart.Nav_Department?.NAME;
- de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID;
- de.CHECK_CYCLE = depart.CHECK_CYCLE;
- de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID;
- de.DEPARTMENT_ID = depart.DEPARTMENT_ID;
- de.CHECK_TYPE = depart.CHECK_TYPE;
- detailContents.Add(de);
- }
- }
- }
- }
- }
- if (detailContents != null && detailContents.Any())
- {
- foreach (var item in contents)
- {
- var detailLib = libraryDetails.FirstOrDefault(t => t.ID == item.ENTERPRISE_LIBRARY_DETAIL_ID);
- var lib = librarys.FirstOrDefault(t => t.ID == detailLib?.ENTERPRISE_LIBRARY_ID);
- item.RISK_NAME = lib?.RISK_NAME;
- item.AREA_ID = lib?.AREA_ID;
- item.Nav_Area = lib?.Nav_Area;
- }
- foreach (var item in detailContents)
- {
- if (checkTypeIds != null && checkTypeIds.Any() && item.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.CHECK_TYPE_ID))
- {
-
- }
- else
- {
- if (item.CHECK_TYPE == SKDepartmentTypeEnum.班组级)
- {
- item.POST_NAME = "班组负责人";
- }
- else if (item.CHECK_TYPE == SKDepartmentTypeEnum.车间级)
- {
- item.POST_NAME = "车间安全员";
- }
- else if (item.CHECK_TYPE == SKDepartmentTypeEnum.部门级)
- {
- item.POST_NAME = "部门安全员";
- }
- else
- {
- item.POST_NAME = "安环部安全员";
- }
- var user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.POST_NAME);
- if (user != null)
- {
- item.POST_ID = user.Nav_Person?.POST_ID;
- }
- }
- }
- var group = detailContents.Where(m => checkCycles.Contains(m.CHECK_CYCLE)).GroupBy(t => new { t.MineType,t.PRODUCTION_UNIT_ID, t.MINE_NAME,t.CHECK_TYPE, t.CHECK_CYCLE, t.DEPART_NAME, t.DEPARTMENT_ID, t.CHECK_TYPE_ID, t.TYPE_NAME, t.POST_NAME, t.POST_ID }).ToList();
- foreach (var item in group)
- {
- CheckListNew listNew = new CheckListNew();
- listNew.PRODUCTION_UNIT_ID = item.Key.PRODUCTION_UNIT_ID;
- listNew.Cycle = item.Key.CHECK_CYCLE;
- listNew.DepartType = item.Key.CHECK_TYPE;
- listNew.MineType = item.Key.MINE_NAME;
- listNew.CheckType = item.Key.TYPE_NAME;
- listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription();
- listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription();
- listNew.Num = (int)item.Key.CHECK_TYPE;
- listNew.CheckDepart = item.Key.DEPART_NAME;
- listNew.CheckPostId = item.Key.POST_ID;
- listNew.CheckPost = item.Key.POST_NAME;
- listNew.CheckDepartId = item.Key.DEPARTMENT_ID;
- listNew.CheckTypeId = item.Key.CHECK_TYPE_ID;
- var depathaveIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.MineType == item.Key.MineType && t.POST_NAME == item.Key.POST_NAME && t.POST_ID == item.Key.POST_ID).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList();
- var temps = contents.Where(t => depathaveIds.Contains(t.ID)).Distinct().ToList();
- if (temps.Any())
- {
- List listDetail = new List();
- foreach (var tem in temps)
- {
- CheckListDetail checkListDetail = new CheckListDetail();
- checkListDetail.CHECK_CONTENTS_ID = tem.CHECK_CONTENTS_ID;
- checkListDetail.CHECK_CONTENTS_NAME = tem.Nav_Contents?.CHECKCONTENT;
- checkListDetail.RISK_NAME = tem.RISK_NAME;
- checkListDetail.RISK_AREA_ID = tem.AREA_ID;
- checkListDetail.RISK_AREA_NAME = tem.Nav_Area?.NAME;
- checkListDetail.CHECKPROOF = tem.CHECK_BASIC;
- checkListDetail.CHECKSTANDARD = tem.CHECK_STANDARD;
- listDetail.Add(checkListDetail);
- }
- listNew.details = listDetail.OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList();
- }
- list.Add(listNew);
- }
- list = list.OrderBy(n => n.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList();
- }
- DateTime dt = DateTime.Now;
- if (filter.Parameter1 != null)
- {
- dt = DateTime.Parse(filter.Parameter1);
- }
- DateTime minTime = dt.AddMinutes(0);
- DateTime maxTime = dt.AddMinutes(60);
- var shiftClassList = this.GetEntities(s => s.START_TIME > minTime && s.START_TIME <= maxTime && s.START_TIME != s.END_TIME && s.Nav_Team.ENABLE_STATUS == 0 && s.TEAM_ID != null, new BaseFilter(filter.OrgId), "Nav_DepartmentSchedulingDetail.Nav_Person").ToList();
- var teamIds = shiftClassList.Select(t => t.TEAM_ID).Distinct().ToList();
- var teamInfos = this.GetEntities(t => teamIds.Contains(t.ID), new BaseFilter(filter.OrgId));
- var teamDepartIds = teamInfos.Select(m => m.DEPARTMENT_ID).Distinct().ToList();
- var personIds = new List();
- if (shiftClassList != null && shiftClassList.Any())
- {
- foreach (var item in shiftClassList)
- {
- if (item.Nav_DepartmentSchedulingDetail != null && item.Nav_DepartmentSchedulingDetail.Any())
- {
- var ids = item.Nav_DepartmentSchedulingDetail.Select(t => t.PERSON_ID).Distinct().ToList();
- personIds.AddRange(ids);
- }
- }
- }
- var baseFilter = new BaseFilter(filter.GetOrgId());
- baseFilter.IgnoreDataRule = true;
- baseFilter.SelectField = new string[] { "MineType", "CHECK_TYPE_ID", "APPLY_DEPARTMENT_ID", "APPLY_USER_ID", "PLANCHECKFREQUENCY", "DEPARTMENT_TYPE" }; //指定字段,包括导航属性
- Expression> expression = i => i.IS_DELETED == false && i.CREATE_TIME.Value.Date == dt.Date;
- List noticeExsiss = this.GetOrderEntities(expression, baseFilter).ToList();
- //取岗位排查表
- var postCheckList = list.Where(t => t.CheckTypeId != null && checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList();
- if (postCheckList != null && postCheckList.Any())
- {
- foreach (var item in postCheckList)
- {
- //触发安全检查记录给对应的岗位工(有排班才触发)
- var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && teamDepartIds.Contains(t.DEPARTMENT_ID) && t.Nav_Person != null && t.Nav_Person.POST_ID == item.CheckPostId);
- if (userInfo != null)
- {
- T_SK_SECURITY_INSPECTION_RECORD record = new T_SK_SECURITY_INSPECTION_RECORD();
- record.ORG_ID = filter.OrgId;
- record.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
- record.APPLY_USER_ID = userInfo.ID;
- record.MineType = item.Mine;
- record.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
- record.CHECK_TYPE_ID = item.CheckTypeId;
- record.PLANCHECKFREQUENCY = item.Cycle;
- record.DEPARTMENT_TYPE = item.DepartType;
- record.STATUS = PFStandardStatus.Draft;
- record.ISAUTO = true;
- records.Add(record);
- if (item.details != null && item.details.Any())
- {
- foreach (var item2 in item.details)
- {
- var i = 1;
- //var repeat = safeDetialNotices.FirstOrDefault(t => t.SECURITY_INSPECTION_NOTICE_ID == safeNotice.ID && t.RISK_AREA_ID == item2.AREA_ID && t.CHECK_CONTENTS_ID == item2.CHECK_CONTENTS_ID);
- //if (repeat == null)
- {
- T_SK_SECURITY_INSPECTION_RECORD_DETAIL detail = new T_SK_SECURITY_INSPECTION_RECORD_DETAIL();
- detail.ORG_ID = filter.OrgId;
- detail.SECURITY_INSPECTION_RECORD_ID = record.ID;
- detail.RISK_AREA_ID = item2.RISK_AREA_ID;
- detail.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID;
- detail.CHECKCONTENT = item2.CHECK_CONTENTS_NAME;
- detail.CHECKPROOF = item2.CHECKPROOF;
- detail.CHECKSTANDARD = item2.CHECKSTANDARD;
- detail.NUM = i;
- recordDetails.Add(detail);
- i++;
- T_SK_SECURITY_INSPECTION_RECORD_DETAIL_USER deUser = new T_SK_SECURITY_INSPECTION_RECORD_DETAIL_USER();
- deUser.ORG_ID = filter.OrgId;
- deUser.SECURITY_INSPECTION_RECORD_DETAIL_ID = detail.ID;
- deUser.USER_ID = userInfo.ID;
- deUser.ISMAINCHECK = true;
- recordDetailUsers.Add(deUser);
- }
- }
- }
- var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0');
- var endtime = DateTime.Now.AddHours(24);
- if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Week)
- {
- endtime = DateTime.Now.AddDays(7);
- }
- if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Month)
- {
- endtime = DateTime.Now.AddMonths(1);
- }
- if (item.Cycle == SKPLANCHECKFREQUENCYEnum.HalfYear)
- {
- endtime = DateTime.Now.AddMonths(6);
- }
- if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Year)
- {
- endtime = DateTime.Now.AddMonths(12);
- }
- if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Quarter)
- {
- endtime = DateTime.Now.AddMonths(3);
- }
- var notice = NotificationTaskService.InsertUserNoticeTaskModel(item.CheckCycle + "岗位排查记录" + date, record.ID, filter.OrgId, userInfo.ID, userInfo.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum.消息, "SK010");
- notices.Add(notice);
- }
- }
- }
- //取非岗位排查
- var checkList = list.Where(t => t.CheckTypeId != null && !checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList();
- if (checkList != null && checkList.Any())
- {
- foreach (var item in checkList)
- {
- var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost);
- //触发安全检查通知给对应的审批角色
- if (item.CheckPost == "安环部安全员")
- {
- userInfo = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost);
- }
- if (item.CheckPost == "班组负责人")
- {
- //判断排班
- userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && teamDepartIds.Contains(t.DEPARTMENT_ID) && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost);
- }
- if (userInfo == null)
- {
- userInfo = departs.FirstOrDefault(t => t.ID == (Guid)item.CheckDepartId)?.Nav_User;
- }
- if (userInfo != null)
- {
- var setTime = setList.FirstOrDefault(t => t.MineType == item.Mine && t.CHECK_CYCLE == item.Cycle && t.CHECKTIME.Value.Hour == dt.Hour);
- if (item.CheckPost != "班组负责人" && setTime == null)
+ ///
+ /// 触发安全检查通知(最新版)
+ ///
+ ///
+ ///
+ [HttpPost, Route("SafeCheckNoticeNeww")]
+ public JsonActionResult SafeCheckNoticeNeww([FromBody] KeywordFilter filter)
+ {
+ return SafeExecute(() =>
+ {
+ try
+ {
+ var dtNow = DateTime.Now;
+ var year = dtNow.Year;
+ var month = dtNow.Month;
+ var day = dtNow.Day;
+ var week = dtNow.DayOfWeek;
+ List setList = new List();
+ //查配置表,有配才执行
+ var timeSets = GetEntities(i => i.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList();
+ if (timeSets != null && timeSets.Any())
+ {
+ foreach (var set in timeSets)
+ {
+ switch (set.CHECK_CYCLE)
+ {
+ case SKPLANCHECKFREQUENCYEnum.Year:
+ if (set.MONTH == month && set.DATA == day)
{
- continue;
- }
- T_SK_SECURITY_INSPECTION_NOTICE safeNotice = new T_SK_SECURITY_INSPECTION_NOTICE();
- safeNotice.ORG_ID = filter.OrgId;
- safeNotice.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
- safeNotice.APPLY_USER_ID = userInfo.ID;
- safeNotice.MineType = item.Mine;
- safeNotice.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
- safeNotice.CHECK_TYPE_ID = item.CheckTypeId;
- safeNotice.PLANCHECKFREQUENCY = item.Cycle;
- safeNotice.DEPARTMENT_TYPE = item.DepartType;
- safeNotice.STATUS = PFStandardStatus.Draft;
- safeNotice.ISAUTO = true;
- safeNotices.Add(safeNotice);
- if (item.details != null && item.details.Any())
- {
- foreach (var item2 in item.details)
- {
- var i = 1;
- //var repeat = safeDetialNotices.FirstOrDefault(t => t.SECURITY_INSPECTION_NOTICE_ID == safeNotice.ID && t.RISK_AREA_ID == item2.AREA_ID && t.CHECK_CONTENTS_ID == item2.CHECK_CONTENTS_ID);
- //if (repeat == null)
- {
- T_SK_SECURITY_INSPECTION_NOTICE_DETAIL detail = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL();
- detail.ORG_ID = filter.OrgId;
- detail.SECURITY_INSPECTION_NOTICE_ID = safeNotice.ID;
- detail.RISK_AREA_ID = item2.RISK_AREA_ID;
- detail.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID;
- detail.CHECKCONTENT = item2.CHECK_CONTENTS_NAME;
- detail.CHECKPROOF = item2.CHECKPROOF;
- detail.CHECKSTANDARD = item2.CHECKSTANDARD;
- detail.NUM = i;
- safeDetialNotices.Add(detail);
- }
- }
- }
- var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0');
- var endtime = DateTime.Now.AddHours(24);
- if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Week)
- {
- endtime = DateTime.Now.AddDays(7);
- }
- if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Month)
- {
- endtime = DateTime.Now.AddMonths(1);
- }
- if (item.Cycle == SKPLANCHECKFREQUENCYEnum.HalfYear)
- {
- endtime = DateTime.Now.AddMonths(6);
- }
- if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Year)
- {
- endtime = DateTime.Now.AddMonths(12);
- }
- if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Quarter)
- {
- endtime = DateTime.Now.AddMonths(3);
- }
- var notice = NotificationTaskService.InsertUserNoticeTaskModel(item.CheckCycle + "安全检查通知" + date, safeNotice.ID, filter.OrgId, userInfo.ID, userInfo.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum.消息, "SK006");
- notices.Add(notice);
- }
- }
- }
- }
- UnifiedCommit(() =>
- {
- if (notices != null && notices.Any())
- BantchSaveEntityNoCommit(notices);
- if (safeNotices != null && safeNotices.Any())
- BantchSaveEntityNoCommit(safeNotices);
- if (safeDetialNotices != null && safeDetialNotices.Any())
- BantchSaveEntityNoCommit(safeDetialNotices);
- if (records != null && records.Any())
- BantchSaveEntityNoCommit(records);
- if (recordDetails != null && recordDetails.Any())
- BantchSaveEntityNoCommit(recordDetails);
- if (recordDetailUsers != null && recordDetailUsers.Any())
- BantchSaveEntityNoCommit(recordDetailUsers);
- });
- }
- catch (Exception ex)
- {
- if (!string.IsNullOrEmpty(ex.StackTrace))
- throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
- else
- throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
- }
- return true;
- });
+ setList.Add(set);
+ }
+ break;
+ case SKPLANCHECKFREQUENCYEnum.HalfYear:
+ if ((set.MONTH == month && set.DATA == day) || ((set.MONTH + 6) == month && (set.DATA + 183) == day))
+ {
+ setList.Add(set);
+ }
+ break;
+ case SKPLANCHECKFREQUENCYEnum.Date:
+ setList.Add(set);
+ break;
+ //case SKPLANCHECKFREQUENCYEnum.Class:
+ // setList.Add(set);
+ break;
+ case SKPLANCHECKFREQUENCYEnum.Week:
+ if (set.WEEKDATA != null && (int)set.WEEKDATA.Value == (int)week)
+ {
+ setList.Add(set);
+ }
+ break;
+ case SKPLANCHECKFREQUENCYEnum.Month:
+ if (set.DATA == day)
+ {
+ setList.Add(set);
+ }
+ break;
+ case SKPLANCHECKFREQUENCYEnum.Quarter:
+ if (set.MONTH == 1)
+ {
+ if ((month == 1 || month == 4 || month == 7 || month == 10) && set.DATA == day)
+ {
+ setList.Add(set);
+ }
+ }
+ if (set.MONTH == 2)
+ {
+ if ((month == 2 || month == 5 || month == 8 || month == 11) && set.DATA == day)
+ {
+ setList.Add(set);
+ }
+ }
+ if (set.MONTH == 3)
+ {
+ if ((month == 3 || month == 6 || month == 9 || month == 12) && set.DATA == day)
+ {
+ setList.Add(set);
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ List notices = new List();
+ List safeNotices = new List();
+ List safeDetialNotices = new List();
+ List records = new List();
+ List recordDetails = new List();
+ List recordDetailUsers = new List();
+ List list = new List();
+ List detailContents = new List();
+ if (setList != null && setList.Any())
+ {
+ var checkTypes = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId));
+ var checkTypeIds = checkTypes.Where(t => t.NAME == "岗位排查").Select(m => m.ID).ToList();
+ var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_User");
+ var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && t.DEPARTMENT_ID != null && !t.CODE.Contains("admin") && t.Nav_Person != null, new BaseFilter(filter.OrgId), "Nav_Person", "Nav_ApproveRole");
+ var checkCycles = setList.Select(t => t.CHECK_CYCLE).Distinct().ToList();
+ var librarys = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Area").ToList();
+ var libraryDetails = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList();
+ var contents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Contents").ToList();
+ var contentDeparts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList();
+ var posts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList();
+ if (librarys != null && librarys.Any())
+ {
+ foreach (var item in librarys)
+ {
+ var libraryPost = posts.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList();
+ var details = libraryDetails.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList();
+ var detailIds = details.Select(t => t.ID).ToList();
+ var contentTemps = contents.Where(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID)).ToList();
+ var contentTempIds = contentTemps.Select(t => t.ID).ToList();
+ var contentDepartTemps = contentDeparts.Where(t => contentTempIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID)).ToList();
+ if (contentDepartTemps != null && contentDepartTemps.Any())
+ {
+ foreach (var depart in contentDepartTemps)
+ {
+ var first = libraryPost.FirstOrDefault(t => t.DEPARTMENT_ID == depart.DEPARTMENT_ID)?.Nav_PostDetails?.Select(m => m.Nav_Post).OrderBy(n => n?.NAME).ToList();
+ var contentFirst = contentTemps.FirstOrDefault(t => t.ID == depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID);
+ if (first != null && first.Any())
+ {
+ foreach (var post in first)
+ {
+ //没角色的才取岗位
+ var userRole = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID != null && t.Nav_Person.POST_ID == post?.ID);
+ if (userRole == null || (userRole != null && userRole.APPROVE_ROLE_ID == null))
+ {
+ T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
+ de.POST_NAME = post?.NAME;
+ de.MineType = item.MineType;
+ de.AREA_NAME = item.Nav_Area?.NAME;
+ de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID;
+ de.ENTERPRISE_LIBRARY_ID = item.ID;
+ de.TYPE_NAME = depart.Nav_CheckType?.NAME;
+ de.DEPART_NAME = depart.Nav_Department?.NAME;
+ de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID;
+ de.CHECK_CYCLE = depart.CHECK_CYCLE;
+ de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID;
+ de.DEPARTMENT_ID = depart.DEPARTMENT_ID;
+ de.CHECK_TYPE = depart.CHECK_TYPE;
+ de.POST_ID = post?.ID;
+ detailContents.Add(de);
+ }
+ }
+ }
+ else
+ {
+ T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
+ de.POST_NAME = "未配置辨识岗位";
+ de.MineType = item.MineType;
+ de.AREA_NAME = item.Nav_Area?.NAME;
+ de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID;
+ de.ENTERPRISE_LIBRARY_ID = item.ID;
+ de.TYPE_NAME = depart.Nav_CheckType?.NAME;
+ de.DEPART_NAME = depart.Nav_Department?.NAME;
+ de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID;
+ de.CHECK_CYCLE = depart.CHECK_CYCLE;
+ de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID;
+ de.DEPARTMENT_ID = depart.DEPARTMENT_ID;
+ de.CHECK_TYPE = depart.CHECK_TYPE;
+ detailContents.Add(de);
+ }
+ }
+ }
+ }
+ }
+ if (detailContents != null && detailContents.Any())
+ {
+ foreach (var item in contents)
+ {
+ var detailLib = libraryDetails.FirstOrDefault(t => t.ID == item.ENTERPRISE_LIBRARY_DETAIL_ID);
+ var lib = librarys.FirstOrDefault(t => t.ID == detailLib?.ENTERPRISE_LIBRARY_ID);
+ item.RISK_NAME = lib?.RISK_NAME;
+ item.AREA_ID = lib?.AREA_ID;
+ item.Nav_Area = lib?.Nav_Area;
+ }
+ foreach (var item in detailContents)
+ {
+ if (checkTypeIds != null && checkTypeIds.Any() && item.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.CHECK_TYPE_ID))
+ {
+
+ }
+ else
+ {
+ if (item.CHECK_TYPE == SKDepartmentTypeEnum.班组级)
+ {
+ item.POST_NAME = "班组负责人";
+ }
+ else if (item.CHECK_TYPE == SKDepartmentTypeEnum.车间级)
+ {
+ item.POST_NAME = "车间安全员";
+ }
+ else if (item.CHECK_TYPE == SKDepartmentTypeEnum.部门级)
+ {
+ item.POST_NAME = "部门安全员";
+ }
+ else
+ {
+ item.POST_NAME = "安环部安全员";
+ }
+ var user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.POST_NAME);
+ if (user != null)
+ {
+ item.POST_ID = user.Nav_Person?.POST_ID;
+ }
+ }
+ }
+ var group = detailContents.Where(m => checkCycles.Contains(m.CHECK_CYCLE)).GroupBy(t => new { t.MineType, t.CHECK_TYPE, t.CHECK_CYCLE, t.DEPART_NAME, t.DEPARTMENT_ID, t.CHECK_TYPE_ID, t.TYPE_NAME, t.POST_NAME, t.POST_ID }).ToList();
+ foreach (var item in group)
+ {
+ CheckListNew listNew = new CheckListNew();
+ listNew.Mine = item.Key.MineType;
+ listNew.Cycle = item.Key.CHECK_CYCLE;
+ listNew.DepartType = item.Key.CHECK_TYPE;
+ listNew.MineType = item.Key.MineType.GetDescription();
+ listNew.CheckType = item.Key.TYPE_NAME;
+ listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription();
+ listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription();
+ listNew.Num = (int)item.Key.CHECK_TYPE;
+ listNew.CheckDepart = item.Key.DEPART_NAME;
+ listNew.CheckPostId = item.Key.POST_ID;
+ listNew.CheckPost = item.Key.POST_NAME;
+ listNew.CheckDepartId = item.Key.DEPARTMENT_ID;
+ listNew.CheckTypeId = item.Key.CHECK_TYPE_ID;
+ var depathaveIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.MineType == item.Key.MineType && t.POST_NAME == item.Key.POST_NAME && t.POST_ID == item.Key.POST_ID).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList();
+ var temps = contents.Where(t => depathaveIds.Contains(t.ID)).Distinct().ToList();
+ if (temps.Any())
+ {
+ List listDetail = new List();
+ foreach (var tem in temps)
+ {
+ CheckListDetail checkListDetail = new CheckListDetail();
+ checkListDetail.CHECK_CONTENTS_ID = tem.CHECK_CONTENTS_ID;
+ checkListDetail.CHECK_CONTENTS_NAME = tem.Nav_Contents?.CHECKCONTENT;
+ checkListDetail.RISK_NAME = tem.RISK_NAME;
+ checkListDetail.RISK_AREA_ID = tem.AREA_ID;
+ checkListDetail.RISK_AREA_NAME = tem.Nav_Area?.NAME;
+ checkListDetail.CHECKPROOF = tem.CHECK_BASIC;
+ checkListDetail.CHECKSTANDARD = tem.CHECK_STANDARD;
+ listDetail.Add(checkListDetail);
+ }
+ listNew.details = listDetail.OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList();
+ }
+ list.Add(listNew);
+ }
+ list = list.Where(m => m.CheckDepartId != null).OrderBy(y => y.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList();
+ }
+ DateTime dt = DateTime.Now;
+ if (filter.Parameter1 != null)
+ {
+ dt = DateTime.Parse(filter.Parameter1);
+ }
+ DateTime minTime = dt.AddMinutes(0);
+ DateTime maxTime = dt.AddMinutes(60);
+ var shiftClassList = this.GetEntities(s => s.START_TIME > minTime && s.START_TIME <= maxTime && s.START_TIME != s.END_TIME && s.Nav_Team.ENABLE_STATUS == 0 && s.TEAM_ID != null, new BaseFilter(filter.OrgId), "Nav_DepartmentSchedulingDetail.Nav_Person").ToList();
+ var teamIds = shiftClassList.Select(t => t.TEAM_ID).Distinct().ToList();
+ var teamInfos = this.GetEntities(t => teamIds.Contains(t.ID), new BaseFilter(filter.OrgId));
+ var teamDepartIds = teamInfos.Select(m => m.DEPARTMENT_ID).Distinct().ToList();
+ var personIds = new List();
+ if (shiftClassList != null && shiftClassList.Any())
+ {
+ foreach (var item in shiftClassList)
+ {
+ if (item.Nav_DepartmentSchedulingDetail != null && item.Nav_DepartmentSchedulingDetail.Any())
+ {
+ var ids = item.Nav_DepartmentSchedulingDetail.Select(t => t.PERSON_ID).Distinct().ToList();
+ personIds.AddRange(ids);
+ }
+ }
+ }
+ var baseFilter = new BaseFilter(filter.GetOrgId());
+ baseFilter.IgnoreDataRule = true;
+ baseFilter.SelectField = new string[] { "MineType", "CHECK_TYPE_ID", "APPLY_DEPARTMENT_ID", "APPLY_USER_ID", "PLANCHECKFREQUENCY", "DEPARTMENT_TYPE" }; //指定字段,包括导航属性
+ Expression> expression = i => i.IS_DELETED == false && i.CREATE_TIME > minTime && i.CREATE_TIME <= maxTime;
+ List noticeExsiss = this.GetOrderEntities(expression, baseFilter).ToList();
+ baseFilter.SelectField = new string[] { "MineType", "CHECK_TYPE_ID", "APPLY_DEPARTMENT_ID", "APPLY_USER_ID", "PLANCHECKFREQUENCY", "DEPARTMENT_TYPE" };
+ Expression> expressionR = i => i.IS_DELETED == false && i.CREATE_TIME > minTime && i.CREATE_TIME <= maxTime;
+ List recordExsiss = this.GetOrderEntities(expressionR, baseFilter).ToList();
+ //取岗位排查表
+ var postCheckList = list.Where(t => t.CheckTypeId != null && checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList();
+ if (postCheckList != null && postCheckList.Any())
+ {
+ foreach (var item in postCheckList)
+ {
+ //触发安全检查记录给对应的岗位工(有排班才触发)
+ var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && teamDepartIds.Contains(t.DEPARTMENT_ID) && t.PERSON_ID != null && personIds.Contains((Guid)t.PERSON_ID) && t.Nav_Person != null && t.Nav_Person.POST_ID == item.CheckPostId);
+ if (userInfo != null)
+ {
+ //判断是否重复触发
+ var exist = recordExsiss.FirstOrDefault(t => t.APPLY_USER_ID == userInfo.ID && t.CHECK_TYPE_ID == item.CheckTypeId && t.PLANCHECKFREQUENCY == item.Cycle);
+ if (exist == null)
+ {
+ T_SK_SECURITY_INSPECTION_RECORD record = new T_SK_SECURITY_INSPECTION_RECORD();
+ record.ORG_ID = filter.OrgId;
+ record.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
+ record.APPLY_USER_ID = userInfo.ID;
+ record.MineType = item.Mine;
+ record.CHECK_TYPE_ID = item.CheckTypeId;
+ record.PLANCHECKFREQUENCY = item.Cycle;
+ record.DEPARTMENT_TYPE = item.DepartType;
+ record.STATUS = PFStandardStatus.Draft;
+ record.ISAUTO = true;
+ records.Add(record);
+ if (item.details != null && item.details.Any())
+ {
+ foreach (var item2 in item.details)
+ {
+ var i = 1;
+ //var repeat = safeDetialNotices.FirstOrDefault(t => t.SECURITY_INSPECTION_NOTICE_ID == safeNotice.ID && t.RISK_AREA_ID == item2.AREA_ID && t.CHECK_CONTENTS_ID == item2.CHECK_CONTENTS_ID);
+ //if (repeat == null)
+ {
+ T_SK_SECURITY_INSPECTION_RECORD_DETAIL detail = new T_SK_SECURITY_INSPECTION_RECORD_DETAIL();
+ detail.ORG_ID = filter.OrgId;
+ detail.SECURITY_INSPECTION_RECORD_ID = record.ID;
+ detail.RISK_AREA_ID = item2.RISK_AREA_ID;
+ detail.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID;
+ detail.CHECKCONTENT = item2.CHECK_CONTENTS_NAME;
+ detail.CHECKPROOF = item2.CHECKPROOF;
+ detail.CHECKSTANDARD = item2.CHECKSTANDARD;
+ detail.NUM = i;
+ recordDetails.Add(detail);
+ i++;
+ T_SK_SECURITY_INSPECTION_RECORD_DETAIL_USER deUser = new T_SK_SECURITY_INSPECTION_RECORD_DETAIL_USER();
+ deUser.ORG_ID = filter.OrgId;
+ deUser.SECURITY_INSPECTION_RECORD_DETAIL_ID = detail.ID;
+ deUser.USER_ID = userInfo.ID;
+ deUser.ISMAINCHECK = true;
+ recordDetailUsers.Add(deUser);
+ }
+ }
+ }
+ var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0');
+ var endtime = DateTime.Now.AddHours(24);
+ if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Week)
+ {
+ endtime = DateTime.Now.AddDays(7);
+ }
+ if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Month)
+ {
+ endtime = DateTime.Now.AddMonths(1);
+ }
+ if (item.Cycle == SKPLANCHECKFREQUENCYEnum.HalfYear)
+ {
+ endtime = DateTime.Now.AddMonths(6);
+ }
+ if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Year)
+ {
+ endtime = DateTime.Now.AddMonths(12);
+ }
+ if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Quarter)
+ {
+ endtime = DateTime.Now.AddMonths(3);
+ }
+ var notice = NotificationTaskService.InsertUserNoticeTaskModel(item.CheckCycle + "岗位排查记录" + date, record.ID, filter.OrgId, userInfo.ID, userInfo.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum.消息, "SK010");
+ notices.Add(notice);
+ }
+ }
+ }
+ }
+ //取非岗位排查
+ var checkList = list.Where(t => t.CheckTypeId != null && !checkTypeIds.Contains((Guid)t.CheckTypeId)).ToList();
+ if (checkList != null && checkList.Any())
+ {
+ foreach (var item in checkList)
+ {
+ var setTime = setList.FirstOrDefault(t => t.MineType == item.Mine && t.CHECK_CYCLE == item.Cycle);
+ var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost);
+ //触发安全检查通知给对应的审批角色
+ if (item.CheckPost == "安环部安全员")
+ {
+ userInfo = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost);
+ }
+ if (item.CheckPost == "班组负责人")
+ {
+ //判断排班
+ userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && teamDepartIds.Contains(t.DEPARTMENT_ID) && t.PERSON_ID != null && personIds.Contains((Guid)t.PERSON_ID) && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost);
+ }
+ if (userInfo == null && item.CheckDepartId != null && item.CheckPost != "班组负责人")
+ {
+ userInfo = departs.FirstOrDefault(t => t.ID == (Guid)item.CheckDepartId)?.Nav_User;
+ }
+ if (userInfo != null)
+ {
+ //判断是否重复触发
+ var exist = noticeExsiss.FirstOrDefault(t => t.APPLY_USER_ID == userInfo.ID && t.CHECK_TYPE_ID == item.CheckTypeId && t.PLANCHECKFREQUENCY == item.Cycle);
+ if ((exist == null && item.CheckPost == "班组负责人") || (exist == null && item.CheckPost != "班组负责人" && setTime != null && dtNow.Hour == setTime.CHECKTIME.Value.Hour))
+ {
+ T_SK_SECURITY_INSPECTION_NOTICE safeNotice = new T_SK_SECURITY_INSPECTION_NOTICE();
+ safeNotice.ORG_ID = filter.OrgId;
+ safeNotice.APPLY_DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
+ safeNotice.APPLY_USER_ID = userInfo.ID;
+ safeNotice.MineType = item.Mine;
+ safeNotice.CHECK_TYPE_ID = item.CheckTypeId;
+ safeNotice.PLANCHECKFREQUENCY = item.Cycle;
+ safeNotice.DEPARTMENT_TYPE = item.DepartType;
+ safeNotice.STATUS = PFStandardStatus.Draft;
+ safeNotice.ISAUTO = true;
+ safeNotices.Add(safeNotice);
+ if (item.details != null && item.details.Any())
+ {
+ foreach (var item2 in item.details)
+ {
+ var i = 1;
+ //var repeat = safeDetialNotices.FirstOrDefault(t => t.SECURITY_INSPECTION_NOTICE_ID == safeNotice.ID && t.RISK_AREA_ID == item2.AREA_ID && t.CHECK_CONTENTS_ID == item2.CHECK_CONTENTS_ID);
+ //if (repeat == null)
+ {
+ T_SK_SECURITY_INSPECTION_NOTICE_DETAIL detail = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL();
+ detail.ORG_ID = filter.OrgId;
+ detail.SECURITY_INSPECTION_NOTICE_ID = safeNotice.ID;
+ detail.RISK_AREA_ID = item2.RISK_AREA_ID;
+ detail.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID;
+ detail.CHECKCONTENT = item2.CHECK_CONTENTS_NAME;
+ detail.CHECKPROOF = item2.CHECKPROOF;
+ detail.CHECKSTANDARD = item2.CHECKSTANDARD;
+ detail.NUM = i;
+ safeDetialNotices.Add(detail);
+ }
+ }
+ }
+ var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0');
+ var endtime = DateTime.Now.AddHours(24);
+ if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Week)
+ {
+ endtime = DateTime.Now.AddDays(7);
+ }
+ if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Month)
+ {
+ endtime = DateTime.Now.AddMonths(1);
+ }
+ if (item.Cycle == SKPLANCHECKFREQUENCYEnum.HalfYear)
+ {
+ endtime = DateTime.Now.AddMonths(6);
+ }
+ if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Year)
+ {
+ endtime = DateTime.Now.AddMonths(12);
+ }
+ if (item.Cycle == SKPLANCHECKFREQUENCYEnum.Quarter)
+ {
+ endtime = DateTime.Now.AddMonths(3);
+ }
+ var notice = NotificationTaskService.InsertUserNoticeTaskModel(item.CheckCycle + "安全检查通知" + date, safeNotice.ID, filter.OrgId, userInfo.ID, userInfo.NAME, DateTime.Now, endtime, (int)FMNoticeTypeEnum.消息, "SK006");
+ notices.Add(notice);
+ }
+ }
+ }
+ }
+ }
+ UnifiedCommit(() =>
+ {
+ if (notices != null && notices.Any())
+ BantchSaveEntityNoCommit(notices);
+ if (safeNotices != null && safeNotices.Any())
+ BantchSaveEntityNoCommit(safeNotices);
+ if (safeDetialNotices != null && safeDetialNotices.Any())
+ BantchSaveEntityNoCommit(safeDetialNotices);
+ if (records != null && records.Any())
+ BantchSaveEntityNoCommit(records);
+ if (recordDetails != null && recordDetails.Any())
+ BantchSaveEntityNoCommit(recordDetails);
+ if (recordDetailUsers != null && recordDetailUsers.Any())
+ BantchSaveEntityNoCommit(recordDetailUsers);
+ });
+ }
+ catch (Exception ex)
+ {
+ if (!string.IsNullOrEmpty(ex.StackTrace))
+ throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
+ else
+ throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
+ }
+ return true;
+ });
}
}
}