diff --git a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs index 3e35c03..42a9983 100644 --- a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs +++ b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs @@ -11392,74 +11392,79 @@ namespace APT.BaseData.Services.DomainServices }); } else - { - var entity = this.GetEntity(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID, "Nav_CheckType"); - entity.STATUS = PFStandardStatus.Sign; - var entityDetails = this.GetEntities(t => t.SECURITY_INSPECTION_NOTICE_ID == entity.ID, new BaseFilter(entity.ORG_ID), "Nav_CheckNoticeDetailUsers"); - List sendNotices = new List(); - List userIds = new List(); - List applyUserIds = new List(); + { + List sendNotices = new List(); + List userIds = new List(); + List applyUserIds = new List(); List detailUsers = new List(); - if (entityDetails != null && entityDetails.Any()) - { - foreach (var user in entityDetails) - { - if (user.Nav_CheckNoticeDetailUsers != null && user.Nav_CheckNoticeDetailUsers.Any()) - { - var tempIds = user.Nav_CheckNoticeDetailUsers.Where(t => t.USER_ID == entity.APPLY_USER_ID).Select(t => t.ID).ToList(); - if (tempIds != null && tempIds.Any()) - { - applyUserIds.AddRange(tempIds); - } - var ids = user.Nav_CheckNoticeDetailUsers.Where(m => m.USER_ID != null && m.USER_ID != entity.APPLY_USER_ID).Select(t => (Guid)t.USER_ID).Distinct().ToList(); - userIds.AddRange(ids); - } + var entity = this.GetEntity(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID, "Nav_CheckType"); + entity.STATUS = PFStandardStatus.Approving; + if (DateTime.Now > entity.CHECK_TIME) + { } + else + { + var entityDetails = this.GetEntities(t => t.SECURITY_INSPECTION_NOTICE_ID == entity.ID, new BaseFilter(entity.ORG_ID), "Nav_CheckNoticeDetailUsers"); + if (entityDetails != null && entityDetails.Any()) + { + foreach (var user in entityDetails) + { + if (user.Nav_CheckNoticeDetailUsers != null && user.Nav_CheckNoticeDetailUsers.Any()) + { + var tempIds = user.Nav_CheckNoticeDetailUsers.Where(t => t.USER_ID == entity.APPLY_USER_ID).Select(t => t.ID).ToList(); + if (tempIds != null && tempIds.Any()) + { + applyUserIds.AddRange(tempIds); + } + var ids = user.Nav_CheckNoticeDetailUsers.Where(m => m.USER_ID != null && m.USER_ID != entity.APPLY_USER_ID).Select(t => (Guid)t.USER_ID).Distinct().ToList(); + userIds.AddRange(ids); + } + } + } + if (applyUserIds != null && applyUserIds.Any()) + { + detailUsers = this.GetEntities(t => applyUserIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList(); + detailUsers.ForEach(t => + { + t.ISCHECK = true; + t.CHECKTIME = DateTime.Now; + }); + //存入一条已办 + T_FM_NOTIFICATION_TASK notice = new T_FM_NOTIFICATION_TASK(); + notice.CODE = DateTime.Now.ToString("yyyyMMddHHmmss"); + notice.NOTICE_TITLE = entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + entity.Nav_CheckType?.NAME + "-确认"; + notice.SOURCE_DATA_ID = entity.ID; + notice.ORG_ID = entity.ORG_ID; + notice.ID = Guid.NewGuid(); + notice.TASK_STARTDT = DateTime.Now; + notice.TASK_ENDDT = DateTime.Now.AddHours(24); + notice.NOTICE_TYPE = (int)FMNoticeTypeEnum.消息; + notice.NOTICE_STATUS = (int)FMNoticeStatusEnum.正常已办; + notice.USER_ID = (Guid)entity.APPLY_USER_ID; + notice.USER_NAME = entity.Nav_ApplyUser?.NAME; + notice.SOURCE_FORMCODE = "SK006_SHOWPRINT"; + sendNotices.Add(notice); + } + userIds = userIds.Distinct().ToList(); + if (userIds != null && userIds.Any()) + { + entity.STATUS = PFStandardStatus.Sign; + var UserNames = new List(); + var users = this.GetEntities(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && userIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList(); + foreach (var u in userIds) + { + var current = users.FirstOrDefault(t => t.ID == u); + UserNames.Add(current?.NAME); + } + var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0'); + //发消息 + sendNotices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels(entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + date + entity.Nav_CheckType?.NAME + "-确认", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now, + DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK006_SHOWPRINT")); + } + else + { + entity.STATUS = PFStandardStatus.Archived; } } - if (applyUserIds != null && applyUserIds.Any()) - { - detailUsers = this.GetEntities(t => applyUserIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList(); - detailUsers.ForEach(t => - { - t.ISCHECK = true; - t.CHECKTIME = DateTime.Now; - }); - //存入一条已办 - T_FM_NOTIFICATION_TASK notice = new T_FM_NOTIFICATION_TASK(); - notice.CODE = DateTime.Now.ToString("yyyyMMddHHmmss"); - notice.NOTICE_TITLE = entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + entity.Nav_CheckType?.NAME + "-确认"; - notice.SOURCE_DATA_ID = entity.ID; - notice.ORG_ID = entity.ORG_ID; - notice.ID = Guid.NewGuid(); - notice.TASK_STARTDT = DateTime.Now; - notice.TASK_ENDDT = DateTime.Now.AddHours(24); - notice.NOTICE_TYPE = (int)FMNoticeTypeEnum.消息; - notice.NOTICE_STATUS = (int)FMNoticeStatusEnum.正常已办; - notice.USER_ID = (Guid)entity.APPLY_USER_ID; - notice.USER_NAME = entity.Nav_ApplyUser?.NAME; - notice.SOURCE_FORMCODE = "SK006_SHOWPRINT"; - sendNotices.Add(notice); - } - userIds = userIds.Distinct().ToList(); - if (userIds != null && userIds.Any()) - { - entity.STATUS = PFStandardStatus.Sign; - var UserNames = new List(); - var users = this.GetEntities(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && userIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList(); - foreach (var u in userIds) - { - var current = users.FirstOrDefault(t => t.ID == u); - UserNames.Add(current?.NAME); - } - var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0'); - //发消息 - sendNotices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels(entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + date + entity.Nav_CheckType?.NAME + "-确认", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now, - DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK006_SHOWPRINT")); - } - else - { - entity.STATUS = PFStandardStatus.Archived; - } UnifiedCommit(() => { if (modelApp != null) diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs index 08cdaea..a619cb7 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs @@ -790,7 +790,7 @@ namespace APT.PP.WebApi.Controllers.Api var day = dtNow.Day; var week = dtNow.DayOfWeek; filter.IgnoreDataRule = true; - //查记录表,检查时间第二天12点自动转为已办 + //查记录表,检查时间第二天自动转为已办 List tasks = new List(); List noticeTasks = new List(); List summarys = new List(); @@ -810,11 +810,12 @@ namespace APT.PP.WebApi.Controllers.Api // "Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.ISMAINCHECK","Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.CHECKTIME","Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.ISCHECK", // "Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.SECURITY_INSPECTION_RECORD_DETAIL_ID","Nav_CheckRecordDetails.Nav_CheckRecordDetailBasics.SECURITY_INSPECTION_RECORD_DETAIL_ID", // "Nav_CheckRecordDetails.Nav_CheckRecordDetailBasics.LAW_ID" }; //指定字段,包括导航属性 - var notices = GetEntities(i => i.CHECK_TIME.Value.AddDays(1).Date == dtNow.Date && i.CHECK_TIME.Value.AddDays(1).Hour == dtNow.Hour && i.Nav_CheckType != null && !i.Nav_CheckType.NAME.Contains("岗位排查"), baseFilter); + var notices = GetEntities(i => i.CHECK_TIME.Value.AddDays(1).Date == dtNow.Date && i.CHECK_TIME.Value.AddDays(1).Hour == dtNow.Hour && i.Nav_CheckType != null && !i.Nav_CheckType.NAME.Contains("岗位排查") && (i.STATUS == PFStandardStatus.Archived || i.STATUS == PFStandardStatus.Sign), baseFilter); var noticeIds = notices.Select(t => t.ID).ToList(); var sumNoticeIds = GetEntities(t => t.SECURITY_INSPECTION_NOTICE_ID != null && noticeIds.Contains((Guid)t.SECURITY_INSPECTION_NOTICE_ID), baseFilter).Select(m => m.SECURITY_INSPECTION_NOTICE_ID).Distinct().ToList(); var needDealIds = noticeIds.Where(t => !sumNoticeIds.Contains(t)).ToList(); var records = GetEntities(i => i.SECURITY_INSPECTION_NOTICE_ID != null && needDealIds.Contains((Guid)i.SECURITY_INSPECTION_NOTICE_ID), baseFilter).ToList(); + var recordNoticeIds = records.Select(t => t.SECURITY_INSPECTION_NOTICE_ID).Distinct().ToList(); if (records != null && records.Any()) { var recordIds = records.Select(i => i.ID).ToList(); @@ -832,7 +833,7 @@ namespace APT.PP.WebApi.Controllers.Api var recordDetailFiles = this.GetEntities(t => recordDetailIds.Contains(t.SECURITY_INSPECTION_RECORD_DETAIL_ID), baseFilter); var recordDetailBasics = this.GetEntities(t => recordDetailIds.Contains(t.SECURITY_INSPECTION_RECORD_DETAIL_ID), baseFilter); //触发汇总表 - foreach (var id in needDealIds) + foreach (var id in recordNoticeIds) { var noticeFirst = notices.FirstOrDefault(t => t.ID == id); var user = users.FirstOrDefault(t => t.ID == noticeFirst?.APPLY_USER_ID); diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs index fd2f145..2b1a389 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs @@ -9,9 +9,11 @@ using APT.BaseData.Services.Services.FM; using APT.BaseData.Services.Services.OP; using APT.Infrastructure.Api; using APT.Infrastructure.Core; +using APT.Migrations; using APT.MS.Domain.Entities.FO; using APT.MS.Domain.Entities.HM; using APT.MS.Domain.Entities.LR; +using APT.MS.Domain.Entities.SE; using APT.MS.Domain.Entities.SK; using APT.MS.Domain.Enums; using APT.MS.Domain.Enums.SK; @@ -32,6 +34,7 @@ using System.Data; using System.DirectoryServices.ActiveDirectory; using System.IO; using System.Linq; +using System.Linq.Expressions; using System.Security.Policy; namespace APT.SK.WebApi.Controllers @@ -1270,13 +1273,13 @@ namespace APT.SK.WebApi.Controllers } /// - /// 获取集团基础库 + /// 获取集团基础库(旧) /// /// 过滤实体 /// - [HttpPost, Route("JTOrderEntities")] - public JsonActionResult> JTOrderEntities([FromBody] KeywordFilter filter) + [HttpPost, Route("JTOrderEntitiesOld")] + public JsonActionResult> JTOrderEntitiesOld([FromBody] KeywordFilter filter) { var result = new JsonActionResult>(); string strConn = OPTenantDBConnService.GetConnByORGID(Guid.Parse("00300000-0000-0000-0000-000000000000")); @@ -1483,12 +1486,209 @@ namespace APT.SK.WebApi.Controllers return result; } /// - /// 从集团导入 + /// 获取集团基础库 + /// + /// 过滤实体 + /// + + [HttpPost, Route("JTOrderEntities")] + public JsonActionResult> JTOrderEntities([FromBody] KeywordFilter filter) + { + var result = new JsonActionResult>(); + string strConn = OPTenantDBConnService.GetConnByORGID(new Guid(FilePathHead.JY.GetDescription())); + using (var context = new MigrationContext(strConn)) + { + Expression> expression = e => !e.IS_DELETED; + Dictionary orders = new Dictionary(); + orders.Add("CREATE_TIME", DbOrder.DESC); + var temps = context.GetOrderEntities(expression, orders, null, "Nav_ProductionUnit", "Nav_Type", "Nav_SCOREL", "Nav_SCOREE", "Nav_SCOREC", "Nav_Details.Nav_DetailContents.Nav_Contents", "Nav_Details.Nav_DetailContents.Nav_DetailHiddens.Nav_Question", "Nav_Details.Nav_DetailContents.Nav_DetailBasics.Nav_Law"); + if (temps != null && temps.Any()) + { + result.Data = temps.ToList(); + } + if (result != null && result.Data != null && result.Data.Any()) + { + foreach (var item in result.Data) + { + var detailStr = new List(); + var contentStr = new List(); + var basicStr = new List(); + var standardStr = new List(); + var scripStr = new List(); + var levelStr = new List(); + var measureStr = new List(); + if (item.Nav_Details != null && item.Nav_Details.Any()) + { + foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM)) + { + //var i = 1; + if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME)) + { + detailStr.Add(item2.MEASURES_NAME); + var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine; + item.MINE_NAME = item.MINE_NAME + temp; + item.MEASURE = item.MEASURE + temp; + //i++; + } + if (item2 != null && item2.Nav_DetailContents != null && item2.Nav_DetailContents.Any()) + { + foreach (var item3 in item2.Nav_DetailContents.OrderBy(t => t.NUM)) + { + if (item3 != null) + { + if (item3.Nav_Contents != null && !string.IsNullOrEmpty(item3.Nav_Contents.CHECKCONTENT)) + { + contentStr.Add(item3.Nav_Contents.CHECKCONTENT); + } + if (!string.IsNullOrEmpty(item3.CHECK_STANDARD)) + { + standardStr.Add(item3.CHECK_STANDARD); + } + if (item3.Nav_DetailBasics != null && item3.Nav_DetailBasics.Any()) + { + foreach (var item4 in item3.Nav_DetailBasics) + { + if (item4 != null && item4.Nav_Law != null && !string.IsNullOrEmpty(item4.Nav_Law.NAME)) + { + basicStr.Add(item4.Nav_Law.NAME); + } + } + } + if (item3.Nav_DetailHiddens != null && item3.Nav_DetailHiddens.Any()) + { + foreach (var item4 in item3.Nav_DetailHiddens.OrderBy(t => t.NUM)) + { + if (item4 != null) + { + if (item4.Nav_Question != null && !string.IsNullOrEmpty(item4.Nav_Question.DESCREPTION)) + { + scripStr.Add(item4.Nav_Question.DESCREPTION); + } + levelStr.Add(item4.HIDDEN_LEVEL.GetDescription()); + if (!string.IsNullOrEmpty(item4.RECTIFICATION_MEASURES)) + { + measureStr.Add(item4.RECTIFICATION_MEASURES); + } + } + } + } + } + } + } + } + } + //if (detailStr.Any()) + //{ + // detailStr = detailStr.Distinct().ToList(); + // var i = 1; + // foreach (var item2 in detailStr) + // { + // if (!string.IsNullOrEmpty(item2)) + // { + // var temp = i + "、" + item2 + "\r\n"; + // item.MEASURE = item.MEASURE + temp; + // i++; + // } + // } + //} + if (contentStr.Any()) + { + contentStr = contentStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in contentStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CHECKCONTENTS = item.CHECKCONTENTS + temp; + i++; + } + } + } + if (basicStr.Any()) + { + basicStr = basicStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in basicStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CHECKBASICS = item.CHECKBASICS + temp; + i++; + } + } + } + if (standardStr.Any()) + { + standardStr = standardStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in standardStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CHECKSTANDARDS = item.CHECKSTANDARDS + temp; + i++; + } + } + } + if (scripStr.Any()) + { + scripStr = scripStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in scripStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.HIDDENSCRIPTION = item.HIDDENSCRIPTION + temp; + i++; + } + } + } + if (levelStr.Any()) + { + levelStr = levelStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in levelStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.HIDDENLEVEL = item.HIDDENLEVEL + temp; + i++; + } + } + } + if (measureStr.Any()) + { + measureStr = measureStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in measureStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.RECIFYMEASURE = item.RECIFYMEASURE + temp; + i++; + } + } + } + } + result.Data.OrderBy(t => t.AREA_ID); + } + result.TotalCount = result.Data.Count(); + } + return result; + } + /// + /// 从集团导入(旧) /// /// /// - [HttpPost, Route("ImportFormJT")] - public JsonActionResult ImportFormJT([FromBody] KeywordFilter filter) + [HttpPost, Route("ImportFormJTOld")] + public JsonActionResult ImportFormJTOld([FromBody] KeywordFilter filter) { return SafeExecute(() => { @@ -2092,6 +2292,645 @@ namespace APT.SK.WebApi.Controllers return true; }); } + /// + /// 从集团导入 + /// + /// + /// + [HttpPost, Route("ImportFormJT")] + public JsonActionResult ImportFormJT([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + if (string.IsNullOrEmpty(filter.Keyword)) + throw new Exception("请先勾选要同步的数据"); + var ids = new List(); + var idTemps = filter.Keyword.Split(",").ToList(); + foreach (var item in idTemps) + { + if (!string.IsNullOrEmpty(item)) + { + ids.Add(Guid.Parse(item)); + } + } + + var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; + //删除ID相同的历史数据 + var libs = this.GetEntities(t => ids.Contains(t.ID), new BaseFilter(orgId)); + var deleteBasIds = libs.Select(t => t.ID).ToList(); + var deleteBasDetailIds = this.GetEntities(t => deleteBasIds.Contains(t.BASIC_LIBRARY_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList(); + var deleteBasConttentIds = this.GetEntities(t => deleteBasDetailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList(); + var deleteBasBasicIds = this.GetEntities(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList(); + var deleteBasHiddenIds = this.GetEntities(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList(); + //集团数据 + var jtLibs = new List(); + var jtProUnits = new List(); + var jtRiskTypes = new List(); + var jtlibLs = new List(); + var jtlibEs = new List(); + var jtlibCs = new List(); + var jtCheckConts = new List(); + var jtcheckContLawTypes = new List(); + var jtcheckContLaws = new List(); + var jtcheckContBas = new List(); + var jtCheckContHids = new List(); + string strConn = OPTenantDBConnService.GetConnByORGID(new Guid(FilePathHead.JY.GetDescription())); + using (var context = new MigrationContext(strConn)) + { + Expression> expression = e => !e.IS_DELETED && ids.Contains(e.ID); + Dictionary orders = new Dictionary(); + orders.Add("CREATE_TIME", DbOrder.DESC); + jtLibs = context.GetOrderEntities(expression, orders, null, "Nav_ProductionUnit", "Nav_Type", "Nav_SCOREL", "Nav_SCOREE", "Nav_SCOREC", "Nav_Details.Nav_DetailContents.Nav_Contents", "Nav_Details.Nav_DetailContents.Nav_DetailHiddens.Nav_Question", "Nav_Details.Nav_DetailContents.Nav_DetailBasics.Nav_Law").ToList(); + Expression> expressionUnit = e => !e.IS_DELETED ; + jtProUnits = context.GetOrderEntities(expressionUnit, orders, null).ToList(); + Expression> expressionType = e => !e.IS_DELETED; + jtRiskTypes = context.GetOrderEntities(expressionType, orders, null).ToList(); + Expression> expressionL = e => !e.IS_DELETED; + jtlibLs = context.GetOrderEntities(expressionL, orders, null).ToList(); + Expression> expressionE = e => !e.IS_DELETED; + jtlibEs = context.GetOrderEntities(expressionE, orders, null).ToList(); + Expression> expressionC = e => !e.IS_DELETED; + jtlibCs = context.GetOrderEntities(expressionC, orders, null).ToList(); + Expression> expressionCon = e => !e.IS_DELETED; + jtCheckConts = context.GetOrderEntities(expressionCon, orders, null).ToList(); + Expression> expressionLaw = e => !e.IS_DELETED; + jtcheckContLaws = context.GetOrderEntities(expressionLaw, orders, null).ToList(); + Expression> expressionLawType = e => !e.IS_DELETED; + jtcheckContLawTypes = context.GetOrderEntities(expressionLawType, orders, null).ToList(); + Expression> expressionBac = e => !e.IS_DELETED; + jtcheckContBas = context.GetOrderEntities(expressionBac, orders, null).ToList(); + Expression> expressionQue = e => !e.IS_DELETED; + jtCheckContHids = context.GetOrderEntities(expressionQue, orders, null).ToList(); + } + //查生产单元表 + List proUnitList = new List(); + var proUnitIds = jtLibs.Where(m => m.PRODUCTION_UNIT_ID != null).Select(t => t.PRODUCTION_UNIT_ID).Distinct().ToList(); + var proUnits = this.GetEntities(t => proUnitIds.Contains(t.ID), new BaseFilter(orgId)); + if (proUnitIds != null && proUnitIds.Any()) + { + foreach (var id in proUnitIds) + { + var exsist = proUnits.FirstOrDefault(t => t.ID == id && t.JT_SYNC); + var jtExsist = jtProUnits.FirstOrDefault(t => t.ID == id); + if (exsist != null) + { + //存在,更新 + T_FM_USER_PRODUCTION_UNIT_SET set = new T_FM_USER_PRODUCTION_UNIT_SET(); + set = exsist; + set.NAME = jtExsist?.NAME; + set.CODE = jtExsist?.CODE; + proUnitList.Add(set); + } + else + { + //不存在,写入 + T_FM_USER_PRODUCTION_UNIT_SET set = new T_FM_USER_PRODUCTION_UNIT_SET(); + set.ID = id.Value; + set.ORG_ID = orgId; + set.NAME = jtExsist?.NAME; + set.CODE = jtExsist?.CODE; + set.JT_SYNC = true; + proUnitList.Add(set); + } + } + } + + //查风险类别 + List riskTypeList = new List(); + var riskTypeIds = jtLibs.Where(m => m.TYPE_ID != null).Select(t => t.TYPE_ID).Distinct().ToList(); + var riskTypes = this.GetEntities(t => riskTypeIds.Contains(t.ID), new BaseFilter(orgId)); + if (riskTypeIds != null && riskTypeIds.Any()) + { + foreach (var id in riskTypeIds) + { + var exsist = riskTypes.FirstOrDefault(t => t.ID == id && t.JT_SYNC); + var jtExsist = jtRiskTypes.FirstOrDefault(t => t.ID == id); + if (exsist != null) + { + //存在,更新 + T_SK_RISK_TYPE riskTypeNew = new T_SK_RISK_TYPE(); + riskTypeNew = exsist; + riskTypeNew.NAME = jtExsist?.NAME; + riskTypeNew.PRODUCTION_UNIT_ID = jtExsist?.PRODUCTION_UNIT_ID; + riskTypeList.Add(riskTypeNew); + } + else + { + //不存在,写入 + T_SK_RISK_TYPE riskTypeNew = new T_SK_RISK_TYPE(); + riskTypeNew.ORG_ID = orgId; + riskTypeNew.ID = id.Value; + riskTypeNew.NAME = jtExsist?.NAME; + riskTypeNew.PRODUCTION_UNIT_ID = jtExsist?.PRODUCTION_UNIT_ID; + riskTypeNew.JT_SYNC = true; + riskTypeList.Add(riskTypeNew); + } + } + } + //查LEC + List libLList = new List(); + var libLIds = jtLibs.Where(m => m.SCOREL_ID != null).Select(t => t.SCOREL_ID).Distinct().ToList(); + var libLs = this.GetEntities(t => libLIds.Contains(t.ID), new BaseFilter(orgId)); + if (libLIds != null && libLIds.Any()) + { + foreach (var id in libLIds) + { + var exsist = libLs.FirstOrDefault(t => t.ID == id && t.JT_SYNC); + var jtExsist = jtlibLs.FirstOrDefault(t => t.ID == id); + if (exsist != null) + { + //存在,更新 + T_SK_SCOREL libLNew = new T_SK_SCOREL(); + libLNew = exsist; + libLNew.NAME = jtExsist?.NAME; + libLNew.CODE = jtExsist?.CODE; + libLNew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; + libLList.Add(libLNew); + } + else + { + //不存在,写入 + T_SK_SCOREL libLNew = new T_SK_SCOREL(); + libLNew.ORG_ID = orgId; + libLNew.ID = id.Value; + libLNew.NAME = jtExsist?.NAME; + libLNew.CODE = jtExsist?.CODE; + libLNew.JT_SYNC = true; + libLNew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; + libLList.Add(libLNew); + } + } + } + + //查LEC + List libEList = new List(); + var libEIds = jtLibs.Where(m => m.SCOREE_ID != null).Select(t => t.SCOREE_ID).Distinct().ToList(); + var libEs = this.GetEntities(t => libEIds.Contains(t.ID), new BaseFilter(orgId)); + if (libEIds != null && libEIds.Any()) + { + foreach (var id in libEIds) + { + var exsist = libEs.FirstOrDefault(t => t.ID == id && t.JT_SYNC); + var jtExsist = jtlibEs.FirstOrDefault(t => t.ID == id); + if (exsist != null) + { + //存在,更新 + T_SK_SCOREE libENew = new T_SK_SCOREE(); + libENew = exsist; + libENew.NAME = jtExsist?.NAME; + libENew.CODE = jtExsist?.CODE; + libENew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; + libEList.Add(libENew); + } + else + { + //不存在,写入 + T_SK_SCOREE libENew = new T_SK_SCOREE(); + libENew.ORG_ID = orgId; + libENew.ID = id.Value; + libENew.NAME = jtExsist?.NAME; + libENew.CODE = jtExsist?.CODE; + libENew.JT_SYNC = true; + libENew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; + libEList.Add(libENew); + } + } + } + //查LEC + List libCList = new List(); + var libCIds = jtLibs.Where(m => m.SCOREC_ID != null).Select(t => t.SCOREC_ID).Distinct().ToList(); + var libCs = this.GetEntities(t => libCIds.Contains(t.ID), new BaseFilter(orgId)); + if (libCIds == null && libCIds.Any()) + { + foreach (var id in libCIds) + { + var exsist = libCs.FirstOrDefault(t => t.ID == id && t.JT_SYNC); + var jtExsist = jtlibCs.FirstOrDefault(t => t.ID == id); + if (exsist != null) + { + //存在,更新 + T_SK_SCOREC libCNew = new T_SK_SCOREC(); + libCNew = exsist; + libCNew.NAME = jtExsist?.NAME; + libCNew.CODE = jtExsist?.CODE; + libCNew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; + libCList.Add(libCNew); + } + else + { + //不存在,写入 + T_SK_SCOREC libCNew = new T_SK_SCOREC(); + libCNew.ORG_ID = orgId; + libCNew.ID = id.Value; + libCNew.NAME = jtExsist?.NAME; + libCNew.CODE = jtExsist?.CODE; + libCNew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; + libCNew.JT_SYNC = true; + libCList.Add(libCNew); + } + } + } + //重新写入选中的集团数据 + List libList = new List(); + List detailList = new List(); + List contentList = new List(); + List hiddenList = new List(); + List basicList = new List(); + if (jtLibs != null && jtLibs.Any()) + { + foreach (var lib in jtLibs) + { + T_SK_BASIC_LIBRARY libNew = new T_SK_BASIC_LIBRARY(); + libNew.ORG_ID = orgId; + libNew.ID = lib.ID; + libNew.PRODUCTION_UNIT_ID = lib.PRODUCTION_UNIT_ID; + libNew.RISK_NAME = lib.RISK_NAME; + libNew.RISK_DESCRIPTION = lib.RISK_DESCRIPTION; + libNew.TYPE_ID = lib.TYPE_ID; + libNew.SCOREC_ID = lib.SCOREC_ID; + libNew.SCOREE_ID = lib.SCOREE_ID; + libNew.SCOREL_ID = lib.SCOREL_ID; + libNew.EVALUATE_SCORE = lib.EVALUATE_SCORE; + libNew.EVALUATE_LEVEL = lib.EVALUATE_LEVEL; + libNew.DEPARTMENT_TYPE = lib.DEPARTMENT_TYPE; + libNew.EMERGENCY = lib.EMERGENCY; + libNew.ENABLE_STATUS = lib.ENABLE_STATUS; + libList.Add(libNew); + if (lib.Nav_Details != null && lib.Nav_Details.Any()) + { + foreach (var item in lib.Nav_Details) + { + T_SK_BASIC_LIBRARY_DETAIL de = new T_SK_BASIC_LIBRARY_DETAIL(); + de.ORG_ID = orgId; + de.ID = item.ID; + de.BASIC_LIBRARY_ID = libNew.ID; + de.MEASURES_NAME = item.MEASURES_NAME; + de.EMERGENCY = item.EMERGENCY; + de.NUM = item.NUM; + de.ROW_NO = item.ROW_NO; + detailList.Add(de); + if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any()) + { + foreach (var item2 in item.Nav_DetailContents) + { + T_SK_BASIC_LIBRARY_DETAIL_CONTENT con = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT(); + con.ORG_ID = orgId; + con.ID = item2.ID; + con.BASIC_LIBRARY_DETAIL_ID = de.ID; + con.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; + con.CHECK_CONTENT = item2.CHECK_CONTENT; + con.CHECK_STANDARD = item2.CHECK_STANDARD; + con.NUM = item2.NUM; + con.ROW_NO = item2.ROW_NO; + contentList.Add(con); + if (item2.Nav_DetailHiddens != null && item2.Nav_DetailHiddens.Any()) + { + foreach (var item3 in item2.Nav_DetailHiddens) + { + T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN hid = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN(); + hid.ORG_ID = orgId; + hid.ID = item3.ID; + hid.BASIC_LIBRARY_DETAIL_CONTENT_ID = con.ID; + hid.CHECK_QUESTION_ID = item3.CHECK_QUESTION_ID; + hid.HIDDEN_DESCRIPTION = item3.HIDDEN_DESCRIPTION; + hid.HIDDEN_LEVEL = item3.HIDDEN_LEVEL; + hid.RECTIFICATION_MEASURES = item3.RECTIFICATION_MEASURES; + hid.NUM = item3.NUM; + hid.ROW_NO = item3.ROW_NO; + hid.CHECK_CONTENTS_ID = hid.CHECK_CONTENTS_ID; + hiddenList.Add(hid); + } + } + if (item2.Nav_DetailBasics != null && item2.Nav_DetailBasics.Any()) + { + foreach (var item3 in item2.Nav_DetailBasics) + { + T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC bas = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC(); + bas.ORG_ID = orgId; + bas.ID = item3.ID; + bas.BASIC_LIBRARY_DETAIL_CONTENT_ID = con.ID; + bas.LAW_ID = item3.LAW_ID; + bas.CHECK_CONTENTS_ID = item3.CHECK_CONTENTS_ID; + basicList.Add(bas); + } + } + } + } + } + } + } + } + //查检查内容 + List updateCheckConts = new List(); + var checkConts = this.GetEntities(t => true, new BaseFilter(orgId)); + if (contentList != null && contentList.Any()) + { + var conIds = contentList.Select(t => t.CHECK_CONTENTS_ID).Distinct().ToList(); + //存在,更新 + var conExsists = checkConts.Where(t => conIds.Contains(t.ID) && t.JT_SYNC).ToList(); + if (conExsists != null && conExsists.Any()) + { + foreach (var conExsist in conExsists) + { + //检查内容 + var first = jtCheckConts.FirstOrDefault(t => t.ID == conExsist.ID); + if (first != null) + { + conExsist.ID = first.ID; + conExsist.ORG_ID = orgId; + conExsist.PRODUCTION_UNIT_ID = first.PRODUCTION_UNIT_ID; + conExsist.Nav_ListCheckQuestion = null; + conExsist.Nav_ContentsBasics = null; + conExsist.CHECKCONTENT = first.CHECKCONTENT; + conExsist.CHECK_STANDARD = first.CHECK_STANDARD; + conExsist.JT_SYNC = true; + updateCheckConts.Add(conExsist); + } + } + } + //不存在,写入 + var conIdNews = conExsists.Select(t => t.ID).ToList(); + var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList(); + if (conExsistNews != null && conExsistNews.Any()) + { + foreach (var id in conExsistNews) + { + //检查内容 + var first = jtCheckConts.FirstOrDefault(t => t.ID == id); + if (first != null) + { + T_SK_CHECK_CONTENTS conExsist = new T_SK_CHECK_CONTENTS(); + conExsist.ID = id.Value; + conExsist.ORG_ID = orgId; + conExsist.PRODUCTION_UNIT_ID = first.PRODUCTION_UNIT_ID; + conExsist.Nav_ListCheckQuestion = null; + conExsist.Nav_ContentsBasics = null; + conExsist.CHECKCONTENT = first.CHECKCONTENT; + conExsist.CHECK_STANDARD = first.CHECK_STANDARD; + conExsist.JT_SYNC = true; + updateCheckConts.Add(conExsist); + } + } + } + } + //查检查依据(法律法规) + List updateCheckLaws = new List(); + List updateCheckLawTypes = new List(); + List updateCheckBas = new List(); + + var checkContLawTypes = this.GetEntities(t => true, new BaseFilter(orgId)); + var checkContLaws = this.GetEntities(t => true, new BaseFilter(orgId)); + + var checkContBas = this.GetEntities(t => true, new BaseFilter(orgId)); + + if (basicList != null && basicList.Any()) + { + var conIds = basicList.Select(t => t.LAW_ID).Distinct().ToList(); + //存在,更新 + var conExsists = checkContLaws.Where(t => conIds.Contains(t.ID) && t.JT_SYNC).ToList(); + if (conExsists != null && conExsists.Any()) + { + foreach (var conExsist in conExsists) + { + //法律法规 + var first = jtcheckContLaws.FirstOrDefault(t => t.ID == conExsist.ID); + if (first != null) + { + var firstType = checkContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID && t.JT_SYNC); + if (firstType == null) + { + var jtFirstType = jtcheckContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); + if (jtFirstType != null) + { + T_LR_LAW_TYPE lawType = new T_LR_LAW_TYPE(); + lawType.ORG_ID = orgId; + lawType.ID = jtFirstType.ID; + lawType.NAME = jtFirstType.NAME; + lawType.JT_SYNC = true; + updateCheckLawTypes.Add(lawType); + conExsist.ID = first.ID; + conExsist.ORG_ID = orgId; + conExsist.CODE = first?.CODE; + conExsist.NAME = first?.NAME; + conExsist.VERSION_NUM = first?.VERSION_NUM; + conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; + conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; + conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; + conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; + conExsist.TYPE_ID = first.TYPE_ID; + conExsist.JT_SYNC = true; + updateCheckLaws.Add(conExsist); + } + } + else + { + conExsist.ID = first.ID; + conExsist.ORG_ID = orgId; + conExsist.CODE = first?.CODE; + conExsist.NAME = first?.NAME; + conExsist.VERSION_NUM = first?.VERSION_NUM; + conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; + conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; + conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; + conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; + conExsist.TYPE_ID = first.TYPE_ID; + conExsist.JT_SYNC = true; + updateCheckLaws.Add(conExsist); + } + } + } + } + //不存在,写入 + var conIdNews = conExsists.Select(t => t.ID).ToList(); + var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList(); + if (conExsistNews != null && conExsistNews.Any()) + { + foreach (var id in conExsistNews) + { + //检查依据(法律法规) + var first = jtcheckContLaws.FirstOrDefault(t => t.ID == id); + if (first != null) + { + var firstType = checkContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); + if (firstType == null) + { + var jtFirstType = jtcheckContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); + if (jtFirstType != null) + { + T_LR_LAW_TYPE lawType = new T_LR_LAW_TYPE(); + lawType.ORG_ID = orgId; + lawType.ID = jtFirstType.ID; + lawType.NAME = jtFirstType.NAME; + lawType.JT_SYNC = true; + updateCheckLawTypes.Add(lawType); + T_LR_LAW conExsist = new T_LR_LAW(); + conExsist.ID = id.Value; + conExsist.ORG_ID = orgId; + conExsist.CODE = first?.CODE; + conExsist.NAME = first?.NAME; + conExsist.VERSION_NUM = first?.VERSION_NUM; + conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; + conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; + conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; + conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; + conExsist.TYPE_ID = jtFirstType.ID; + conExsist.JT_SYNC = true; + updateCheckLaws.Add(conExsist); + } + } + else + { + T_LR_LAW conExsist = new T_LR_LAW(); + conExsist.ID = id.Value; + conExsist.ORG_ID = orgId; + conExsist.CODE = first?.CODE; + conExsist.NAME = first?.NAME; + conExsist.VERSION_NUM = first?.VERSION_NUM; + conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; + conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; + conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; + conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; + conExsist.TYPE_ID = first.TYPE_ID; + conExsist.JT_SYNC = true; + updateCheckLaws.Add(conExsist); + } + } + } + } + //检查内容子表保存 + var conBasics = basicList.GroupBy(t => new { t.CHECK_CONTENTS_ID, t.LAW_ID }).ToList(); + if (conBasics != null && conBasics.Any()) + { + foreach (var item in conBasics) + { + var first = checkContBas.FirstOrDefault(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.LAW_ID == item.Key.LAW_ID && t.JT_SYNC); + if (first == null) + { + //写入 + var jtFirstType = jtcheckContBas.FirstOrDefault(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.LAW_ID == item.Key.LAW_ID); + if (jtFirstType != null) + { + T_SK_CHECK_CONTENTS_BASIC conBasic = new T_SK_CHECK_CONTENTS_BASIC(); + conBasic.CHECK_CONTENTS_ID = item.Key.CHECK_CONTENTS_ID; + conBasic.LAW_ID = item.Key.LAW_ID; + conBasic.ORG_ID = orgId; + conBasic.ID = jtFirstType.ID; + conBasic.JT_SYNC = true; + updateCheckBas.Add(conBasic); + } + } + else + { + //更新 + T_SK_CHECK_CONTENTS_BASIC conBasic = new T_SK_CHECK_CONTENTS_BASIC(); + conBasic.CHECK_CONTENTS_ID = item.Key.CHECK_CONTENTS_ID; + conBasic.LAW_ID = item.Key.LAW_ID; + conBasic.ORG_ID = orgId; + conBasic.ID = first.ID; + conBasic.JT_SYNC = true; + updateCheckBas.Add(conBasic); + } + } + } + } + //查隐患描述 + List updateCheckQues = new List(); + var checkContHids = this.GetEntities(t => true, new BaseFilter(orgId)); + + if (hiddenList != null && hiddenList.Any()) + { + var conIds = hiddenList.Select(t => t.CHECK_QUESTION_ID).Distinct().ToList(); + //存在,更新 + var conExsists = checkContHids.Where(t => conIds.Contains(t.ID) && t.JT_SYNC).ToList(); + if (conExsists != null && conExsists.Any()) + { + foreach (var conExsist in conExsists) + { + //隐患描述 + var first = jtCheckContHids.FirstOrDefault(t => t.ID == conExsist.ID); + if (first != null) + { + conExsist.ID = first.ID; + conExsist.ORG_ID = orgId; + conExsist.QUESTION_LEVEL = first.QUESTION_LEVEL; + conExsist.DEMAND = first.DEMAND; + conExsist.DESCREPTION = first.DESCREPTION; + conExsist.CHECK_CONTENTS_ID = first.CHECK_CONTENTS_ID; + conExsist.JT_SYNC = true; + updateCheckQues.Add(conExsist); + } + } + } + //不存在,写入 + var conIdNews = conExsists.Select(t => t.ID).ToList(); + var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList(); + if (conExsistNews != null && conExsistNews.Any()) + { + foreach (var id in conExsistNews) + { + //隐患描述 + var first = jtCheckContHids.FirstOrDefault(t => t.ID == id); + if (first != null) + { + T_SK_CHECK_QUESTION conExsist = new T_SK_CHECK_QUESTION(); + conExsist.ID = id.Value; + conExsist.ORG_ID = orgId; + conExsist.QUESTION_LEVEL = first.QUESTION_LEVEL; + conExsist.DEMAND = first.DEMAND; + conExsist.DESCREPTION = first.DESCREPTION; + conExsist.CHECK_CONTENTS_ID = first.CHECK_CONTENTS_ID; + conExsist.JT_SYNC = true; + updateCheckQues.Add(conExsist); + } + } + } + } + this.UnifiedCommit(() => + { + if (proUnitList != null && proUnitList.Any()) + BantchSaveEntityNoCommit(proUnitList); + if (riskTypeList != null && riskTypeList.Any()) + BantchSaveEntityNoCommit(riskTypeList); + if (libLList != null && libLList.Any()) + BantchSaveEntityNoCommit(libLList); + if (libEList != null && libEList.Any()) + BantchSaveEntityNoCommit(libEList); + if (libCList != null && libCList.Any()) + BantchSaveEntityNoCommit(libCList); + if (updateCheckLawTypes != null && updateCheckLawTypes.Any()) + BantchSaveEntityNoCommit(updateCheckLawTypes); + if (updateCheckLaws != null && updateCheckLaws.Any()) + BantchSaveEntityNoCommit(updateCheckLaws); + if (updateCheckConts != null && updateCheckConts.Any()) + BantchSaveEntityNoCommit(updateCheckConts); + if (updateCheckQues != null && updateCheckQues.Any()) + BantchSaveEntityNoCommit(updateCheckQues); + if (updateCheckBas != null && updateCheckBas.Any()) + BantchSaveEntityNoCommit(updateCheckBas); + if (deleteBasBasicIds != null && deleteBasBasicIds.Any()) + this.BantchDeleteEntityNoCommit(deleteBasBasicIds); + if (deleteBasHiddenIds != null && deleteBasHiddenIds.Any()) + this.BantchDeleteEntityNoCommit(deleteBasHiddenIds); + if (deleteBasConttentIds != null && deleteBasConttentIds.Any()) + this.BantchDeleteEntityNoCommit(deleteBasConttentIds); + if (deleteBasDetailIds != null && deleteBasDetailIds.Any()) + this.BantchDeleteEntityNoCommit(deleteBasDetailIds); + if (deleteBasIds != null && deleteBasIds.Any()) + this.BantchDeleteEntityNoCommit(deleteBasIds); + if (libList != null && libList.Any()) + BantchSaveEntityNoCommit(libList); + if (detailList != null && detailList.Any()) + BantchSaveEntityNoCommit(detailList); + if (contentList != null && contentList.Any()) + BantchSaveEntityNoCommit(contentList); + if (hiddenList != null && hiddenList.Any()) + BantchSaveEntityNoCommit(hiddenList); + if (basicList != null && basicList.Any()) + BantchSaveEntityNoCommit(basicList); + }); + return true; + }); + } /// /// 获取导入数据 /// 参考 [Route("api/PF/Import")] @@ -2296,7 +3135,7 @@ namespace APT.SK.WebApi.Controllers { if (con.Contains("*")) { - var temp = con.Split("*")[1]; + var temp = con.Split("*")[1] + "?"; var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == temp); if (conFirst == null) { @@ -2305,7 +3144,7 @@ namespace APT.SK.WebApi.Controllers } else { - Msg = Msg + "第" + (i + 3) + "行检查内容" + con + "格式不正确,请检查修改;"; + Msg = Msg + "第" + (i + 3) + "行检查内容" + con + "?格式不正确,请检查修改;"; } } } @@ -2408,12 +3247,12 @@ namespace APT.SK.WebApi.Controllers if (item.Contains("*")) { var num = item.Split("*")[0]; - var name = item.Split("*")[1]; + var name = item.Split("*")[1].ToString(); T_SK_BASIC_LIBRARY_DETAIL con = new T_SK_BASIC_LIBRARY_DETAIL(); con.ORG_ID = orgId; con.BASIC_LIBRARY_ID = lib.ID; - con.NUM = string.IsNullOrEmpty(num) ? null : int.Parse(num); - con.MEASURES_NAME = name; + con.NUM = string.IsNullOrEmpty(num.ToString()) ? null : int.Parse(num.ToString()); + con.MEASURES_NAME = name +"。"; libDetList.Add(con); libDetTemp.Add(con); } @@ -2441,10 +3280,10 @@ namespace APT.SK.WebApi.Controllers if (item.Contains("*")) { var num = item.Split("*")[0]; - var name = item.Split("*")[1]; + var name = item.Split("*")[1].ToString() + "?"; if (num.Contains(".")) { - var numTemp = int.Parse(num.Split(".")[0]); + var numTemp = int.Parse(num.Split(".")[0].ToString()); var detFirst = libDetTemp.FirstOrDefault(t => t.NUM != null && t.NUM == numTemp); var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == name); if (detFirst != null && conFirst != null) diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs index c44d7d1..f2fc36a 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs @@ -54,6 +54,7 @@ namespace APT.SK.WebApi.Controllers.Api pageFilter.Include.Add("Nav_ContentsBasics.Nav_Law"); pageFilter.SelectField.Add("Nav_ListCheckQuestion.NUM"); pageFilter.SelectField.Add("Nav_ListCheckQuestion.DESCREPTION"); + pageFilter.SelectField.Add("Nav_ListCheckQuestion.QUESTION_LEVEL"); pageFilter.SelectField.Add("Nav_ListCheckQuestion.DEMAND"); pageFilter.SelectField.Add("Nav_ContentsBasics.Nav_Law.NAME"); var result = GetOrderPageEntities(null, pageFilter); @@ -69,7 +70,7 @@ namespace APT.SK.WebApi.Controllers.Api { var tempD = item2.NUM + "*" + item2.DESCREPTION; item.DESCREPTION = item.DESCREPTION + tempD; - var tempL = item2.NUM + "*" + item2.QUESTION_LEVEL.GetDescription(); + var tempL = item2.NUM + "*" + item2.QUESTION_LEVEL.GetDescription() +"。"; item.QUESTION_LEVEL_SHOW = item.QUESTION_LEVEL_SHOW + tempL; var tempM = item2.NUM + "*" + item2.DEMAND; item.DEMAND = item.DEMAND + tempM; @@ -112,6 +113,7 @@ namespace APT.SK.WebApi.Controllers.Api } } var entity = this.GetEntity(null,filter); + entity.Nav_ListCheckQuestion = entity.Nav_ListCheckQuestion?.OrderBy(t => t.NUM).ToList(); return entity; }); @@ -647,10 +649,22 @@ namespace APT.SK.WebApi.Controllers.Api } if (!string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim())) { - var conFirst = oldContents.FirstOrDefault(t => t.CHECKCONTENT == dtSource.Rows[i][1].ToString().Trim()); - if (conFirst != null) + if (!dtSource.Rows[i][1].ToString().Trim().EndsWith("?")) { - Msg = Msg + "第" + (i + 3) + "行检查内容" + dtSource.Rows[i][1].ToString().Trim() + "已存在,请勿重复导入;"; + Msg = Msg + "第" + (i + 3) + "行检查内容" + dtSource.Rows[i][1].ToString().Trim() + "格式不正确,必须以中文问号结尾 ;"; + } + else + { + var conFirst = oldContents.FirstOrDefault(t => t.CHECKCONTENT == dtSource.Rows[i][1].ToString().Trim()); + if (conFirst != null) + { + Msg = Msg + "第" + (i + 3) + "行检查内容" + dtSource.Rows[i][1].ToString().Trim() + "已存在,请勿重复导入;"; + } + } + string content = dtSource.Rows[i][1].ToString().Trim()[0..^1]; + if (content.Contains("?")) + { + Msg = Msg + "第" + (i + 3) + "行检查内容" + dtSource.Rows[i][1].ToString().Trim() + "格式不正确,内容中间不能有问号 ;"; } } else @@ -725,7 +739,7 @@ namespace APT.SK.WebApi.Controllers.Api } else { - if (item.Split('*')[1] != "一般" && item.Split('*')[1] != "重大") + if (item.Split('*')[1].ToString() != "一般" && item.Split('*')[1].ToString() != "重大") { Msg = Msg + "第" + (i + 3) + "行隐患等级只能填写一般或重大"; } @@ -798,17 +812,20 @@ namespace APT.SK.WebApi.Controllers.Api { foreach (var que in ques) { - var quNum = que.Split("*")[0]; - var mes = mess.FirstOrDefault(t => t.StartsWith(quNum)); - var level = levels.FirstOrDefault(t => t.StartsWith(quNum)); - T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION(); - qu.CHECK_CONTENTS_ID = content.ID; - qu.ORG_ID = orgId; - qu.DESCREPTION = que.Split('*')[1]; - qu.DEMAND = mes.Split("*")[1]; - qu.QUESTION_LEVEL = level!=null && level.Split("*")[1] =="重大"? SKHiddenLevel.Major: SKHiddenLevel.General; - qu.NUM = int.Parse(que.Split('*')[0]); - qustions.Add(qu); + if (!string.IsNullOrEmpty(que)) + { + var quNum = que.Split("*")[0]; + var mes = mess.FirstOrDefault(t => t.StartsWith(quNum)); + var level = levels.FirstOrDefault(t => t.StartsWith(quNum)); + T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION(); + qu.CHECK_CONTENTS_ID = content.ID; + qu.ORG_ID = orgId; + qu.DESCREPTION = que.Split('*')[1].ToString()+"。"; + qu.DEMAND = mes.Split("*")[1].ToString() + "。"; + qu.QUESTION_LEVEL = level != null && level.Split("*")[1].ToString() == "重大" ? SKHiddenLevel.Major : SKHiddenLevel.General; + qu.NUM = int.Parse(que.Split('*')[0].ToString()); + qustions.Add(qu); + } } } } diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/PlanSetController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/PlanSetController.cs index 3cba6b8..af9c493 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/PlanSetController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/PlanSetController.cs @@ -79,7 +79,10 @@ namespace APT.SK.WebApi.Controllers.Api /// [HttpPost, Route("SKOrderPaged")] public PagedActionResult SKOrderPaged([FromBody] KeywordPageFilter pageFilter) - { + { + pageFilter.SelectField.Add("MONTH"); + pageFilter.SelectField.Add("DATA"); + pageFilter.SelectField.Add("WEEKDATA"); var result = this.GetOrderPageEntities(null, pageFilter); if (result != null && result.Data != null && result.Data.Any()) { diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs index 5d504e8..0ae6d22 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs @@ -162,6 +162,8 @@ namespace APT.SK.WebApi.Controllers.Api throw new Exception("检查类型不能为空"); if (entity.CHECK_TIME == null || entity.CHECK_TIME == DateTime.MinValue) throw new Exception("检查时间必须填写"); + if (DateTime.Now.AddMinutes(30) <= entity.CHECK_TIME) + throw new Exception("检查时间不得短于半小时,请修改检查时间"); T_FM_NOTIFICATION_TASK finishNotice = null; if (entity.STATUS != PFStandardStatus.Draft) { diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/TimeSetController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/TimeSetController.cs index 5688161..1f89623 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/TimeSetController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/TimeSetController.cs @@ -74,6 +74,9 @@ namespace APT.SK.WebApi.Controllers.Api [HttpPost, Route("SKOrderPaged")] public PagedActionResult SKOrderPaged([FromBody] KeywordPageFilter pageFilter) { + pageFilter.SelectField.Add("MONTH"); + pageFilter.SelectField.Add("DATA"); + pageFilter.SelectField.Add("WEEKDATA"); var result = this.GetOrderPageEntities(null, pageFilter); if (result != null && result.Data != null && result.Data.Any()) {