问题修复

This commit is contained in:
何美荣 2025-10-25 14:45:05 +08:00
parent 24968ca4fe
commit 1ea7046ede
2 changed files with 54 additions and 32 deletions

View File

@ -509,25 +509,25 @@ namespace APT.SK.WebApi.Controllers.Api
{ {
item.HIDDEN_LEVEL = null; item.HIDDEN_LEVEL = null;
} }
var isExsists = details.FirstOrDefault(t => t.CHECK_RESULT == SKCheckResultEnum.Yes && t.CHECK_QUESTION_ID == null); var isExsists = details.FirstOrDefault(t => t.CHECK_RESULT == SKCheckResultEnum.Yes && (t.CHECK_QUESTION_ID == null || t.HIDDEN_LEVEL == null || t.HIDDEN_PLACE == null));
if (isExsists != null) if (isExsists != null)
{ {
throw new Exception("有隐患必须选择隐患描述"); throw new Exception("有隐患必须选择隐患描述和隐患等级隐患地点");
}
var isExsistTwos = details.FirstOrDefault(t => t.CHECK_RESULT == SKCheckResultEnum.Yes && t.HIDDEN_LEVEL == null);
if (isExsistTwos != null)
{
throw new Exception("有隐患必须填写隐患等级");
} }
var isExsistFirsts = details.FirstOrDefault(t => t.CHECK_RESULT == SKCheckResultEnum.Yes && (t.Nav_CheckRecordDetailFiles == null || !t.Nav_CheckRecordDetailFiles.Any())); var isExsistFirsts = details.FirstOrDefault(t => t.CHECK_RESULT == SKCheckResultEnum.Yes && (t.Nav_CheckRecordDetailFiles == null || !t.Nav_CheckRecordDetailFiles.Any()));
if (isExsistFirsts != null) if (isExsistFirsts != null)
{ {
throw new Exception("有隐患必须上传隐患照片"); throw new Exception("有隐患必须上传隐患照片");
} }
var noExsists = details.FirstOrDefault(t => t.CHECK_RESULT == SKCheckResultEnum.None && t.CHECK_QUESTION_ID != null); var noExsists = details.FirstOrDefault(t => t.CHECK_RESULT != SKCheckResultEnum.None && (t.CHECK_QUESTION_ID != null|| t.HIDDEN_LEVEL != null || t.HIDDEN_PLACE != null));
if (noExsists != null) if (noExsists != null)
{ {
throw new Exception("无隐患无需填写隐患描述,请确认检查情况"); throw new Exception("无隐患、不涉及无需填写隐患描述和隐患等级隐患地点,请确认检查情况");
}
var noExsistTwos = details.FirstOrDefault(t => t.CHECK_RESULT != SKCheckResultEnum.Yes && t.Nav_CheckRecordDetailFiles != null && t.Nav_CheckRecordDetailFiles.Where(m=>!m.IS_DELETED).Any());
if (noExsistTwos != null)
{
throw new Exception("无隐患、不涉及无需上传隐患照片");
} }
if (item.Nav_CheckRecordDetailUsers != null && item.Nav_CheckRecordDetailUsers.Any()) if (item.Nav_CheckRecordDetailUsers != null && item.Nav_CheckRecordDetailUsers.Any())
{ {
@ -739,27 +739,29 @@ namespace APT.SK.WebApi.Controllers.Api
} }
} }
} }
var groupDetails = tempDetails.GroupBy(t => new { t.RISK_AREA_ID, t.CHECK_CONTENTS_ID, t.CHECK_QUESTION_ID }); var groupDetails = tempDetails.Where(t => t.CHECK_RESULT == SKCheckResultEnum.Yes).ToList();
var groupDetailNos = tempDetails.Where(t=>t.CHECK_RESULT != SKCheckResultEnum.Yes).GroupBy(t => new { t.RISK_AREA_ID, t.CHECK_CONTENTS_ID, t.CHECK_QUESTION_ID }).Select(g=>g.FirstOrDefault()).ToList();
groupDetails.AddRange(groupDetailNos);
if (groupDetails.Any()) if (groupDetails.Any())
{ {
foreach (var itemDetail in groupDetails) foreach (var itemDetail in groupDetails)
{ {
var ids = tempDetails.Where(t => t.RISK_AREA_ID == itemDetail.Key.RISK_AREA_ID && t.CHECK_CONTENTS_ID == itemDetail.Key.CHECK_CONTENTS_ID && t.CHECK_QUESTION_ID == itemDetail.Key.CHECK_QUESTION_ID).Select(m => m.ID).ToList(); var ids = tempDetails.Where(t => t.RISK_AREA_ID == itemDetail.RISK_AREA_ID && t.CHECK_CONTENTS_ID == itemDetail.CHECK_CONTENTS_ID && t.CHECK_QUESTION_ID == itemDetail.CHECK_QUESTION_ID).Select(m => m.ID).ToList();
T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL summaryDetail = new T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL(); T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL summaryDetail = new T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL();
summaryDetail.ORG_ID = entity.ORG_ID; summaryDetail.ORG_ID = entity.ORG_ID;
summaryDetail.SECURITY_INSPECTION_RECORD_SUMMARY_ID = summary.ID; summaryDetail.SECURITY_INSPECTION_RECORD_SUMMARY_ID = summary.ID;
summaryDetail.RISK_AREA_ID = itemDetail.Key.RISK_AREA_ID; summaryDetail.RISK_AREA_ID = itemDetail.RISK_AREA_ID;
summaryDetail.CHECK_CONTENTS_ID = itemDetail.Key.CHECK_CONTENTS_ID; summaryDetail.CHECK_CONTENTS_ID = itemDetail.CHECK_CONTENTS_ID;
summaryDetail.CHECK_QUESTION_ID = itemDetail.Key.CHECK_QUESTION_ID; summaryDetail.CHECK_QUESTION_ID = itemDetail.CHECK_QUESTION_ID;
summaryDetail.CHECKCONTENT = itemDetail.FirstOrDefault().CHECKCONTENT; summaryDetail.CHECKCONTENT = itemDetail.CHECKCONTENT;
summaryDetail.CHECKPROOF = itemDetail.FirstOrDefault().CHECKPROOF; summaryDetail.CHECKPROOF = itemDetail.CHECKPROOF;
summaryDetail.CHECKSTANDARD = itemDetail.FirstOrDefault().CHECKSTANDARD; summaryDetail.CHECKSTANDARD = itemDetail.CHECKSTANDARD;
summaryDetail.CHECK_RESULT = itemDetail.FirstOrDefault().CHECK_RESULT; summaryDetail.CHECK_RESULT = itemDetail.CHECK_RESULT;
summaryDetail.HIDDEN_DESCRIPTION = string.IsNullOrEmpty(itemDetail.FirstOrDefault().HIDDEN_DESCRIPTION) ? itemDetail.FirstOrDefault().Nav_Question?.DESCREPTION : itemDetail.FirstOrDefault().HIDDEN_DESCRIPTION; summaryDetail.HIDDEN_DESCRIPTION = string.IsNullOrEmpty(itemDetail.HIDDEN_DESCRIPTION) ? itemDetail.Nav_Question?.DESCREPTION : itemDetail.HIDDEN_DESCRIPTION;
summaryDetail.HIDDEN_LEVEL = itemDetail.FirstOrDefault().HIDDEN_LEVEL; summaryDetail.HIDDEN_LEVEL = itemDetail.HIDDEN_LEVEL;
summaryDetail.HIDDEN_PLACE = itemDetail.FirstOrDefault().HIDDEN_PLACE; summaryDetail.HIDDEN_PLACE = itemDetail.HIDDEN_PLACE;
summaryDetail.MARK = itemDetail.FirstOrDefault().MARK; summaryDetail.MARK = itemDetail.MARK;
summaryDetail.NUM = itemDetail.FirstOrDefault().NUM; summaryDetail.NUM = itemDetail.NUM;
sumdetails.Add(summaryDetail); sumdetails.Add(summaryDetail);
var groupUsers = tempDetailUsers.Where(t => ids.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID)).Select(m => m.USER_ID).Distinct().ToList(); var groupUsers = tempDetailUsers.Where(t => ids.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID)).Select(m => m.USER_ID).Distinct().ToList();
if (groupUsers.Any()) if (groupUsers.Any())
@ -952,18 +954,24 @@ namespace APT.SK.WebApi.Controllers.Api
} }
if (sumdetails.Any()) if (sumdetails.Any())
{ {
var detailTemps = sumdetails.Where(t => t.CHECK_RESULT != SKCheckResultEnum.Yes).Distinct(m => new { m.RISK_AREA_ID, m.CHECK_CONTENTS_ID, m.CHECKCONTENT, m.CHECKSTANDARD, m.CHECK_QUESTION_ID, m.CHECK_RESULT, m.HIDDEN_DESCRIPTION, m.HIDDEN_LEVEL, m.HIDDEN_PLACE }).ToList(); var detailTempNews = sumdetails.Where(t => t.CHECK_RESULT == SKCheckResultEnum.Yes).ToList();
var detailTempNews = sumdetails.Where(t => t.CHECK_RESULT == SKCheckResultEnum.Yes).ToList();
summaryDetails.AddRange(detailTemps);
summaryDetails.AddRange(detailTempNews); summaryDetails.AddRange(detailTempNews);
var detailTemps = sumdetails.Where(t => t.CHECK_RESULT != SKCheckResultEnum.Yes).Distinct(m => new { m.RISK_AREA_ID, m.CHECK_CONTENTS_ID }).ToList();
foreach (var item in detailTemps)
{
var already = detailTempNews.FirstOrDefault(t => t.RISK_AREA_ID == item.RISK_AREA_ID && t.CHECK_CONTENTS_ID == item.CHECK_CONTENTS_ID);
if (already == null)
{
summaryDetails.Add(item);
}
}
var detailIds = summaryDetails.Select(m => m.ID).ToList(); var detailIds = summaryDetails.Select(m => m.ID).ToList();
summaryDetailBasics = summaryDetailBasics.Where(t => detailIds.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID)).ToList(); summaryDetailBasics = summaryDetailBasics.Where(t => detailIds.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID)).ToList();
summaryDetailFiles = summaryDetailFiles.Where(t => detailIds.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID)).ToList(); summaryDetailFiles = summaryDetailFiles.Where(t => detailIds.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID)).ToList();
summaryDetailUsers = summaryDetailUsers.Where(t => detailIds.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID)).ToList(); summaryDetailUsers = summaryDetailUsers.Where(t => detailIds.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID)).ToList();
} }
var departName = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0)?.NAME;
//发消息 //发消息
var noticeTemp = NotificationTaskService.InsertUserNoticeTaskModel("安全检查记录汇总(" + departName + DateTime.Now.ToShortDateString().Replace("/", "") + ")", summary.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, var noticeTemp = NotificationTaskService.InsertUserNoticeTaskModel("安全检查记录汇总-" + entity.DEPARTMENT_TYPE.GetDescription() + DateTime.Now.Month.PadLeft(2,'0') + DateTime.Now.Day.PadLeft(2,'0'), summary.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "SK012"); DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "SK012");
notices.Add(noticeTemp); notices.Add(noticeTemp);
} }

View File

@ -61,6 +61,15 @@ namespace APT.SK.WebApi.Controllers.Api
List<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_FILE> fileList = new List<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_FILE>(); List<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_FILE> fileList = new List<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_FILE>();
if (details != null && details.Any()) if (details != null && details.Any())
{ {
var groupDetails = details.Where(m => m.CHECK_RESULT == SKCheckResultEnum.Yes).GroupBy(t => new { t.RISK_AREA_ID, t.CHECK_CONTENTS_ID, t.CHECK_QUESTION_ID }).ToList();
foreach (var group in groupDetails)
{
var haveRecord = details.Where(t => t.RISK_AREA_ID == group.Key.RISK_AREA_ID && t.CHECK_CONTENTS_ID == group.Key.CHECK_CONTENTS_ID && t.CHECK_QUESTION_ID == group.Key.CHECK_QUESTION_ID).ToList();
if (haveRecord.Count > 1)
{
throw new Exception("检查内容"+haveRecord.FirstOrDefault()?.Nav_Contents?.CHECKCONTENT+"有重复的隐患,请删除重复");
}
}
var evaluationIsExist = this.GetEntity<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>(t => t.ID == entity.ID, new string[] { "Nav_CheckRecordDetails", "Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers", "Nav_CheckRecordDetails.Nav_CheckRecordDetailFiles", "Nav_CheckRecordDetails.Nav_CheckRecordDetailBasics" }); var evaluationIsExist = this.GetEntity<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>(t => t.ID == entity.ID, new string[] { "Nav_CheckRecordDetails", "Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers", "Nav_CheckRecordDetails.Nav_CheckRecordDetailFiles", "Nav_CheckRecordDetails.Nav_CheckRecordDetailBasics" });
if (evaluationIsExist != null && evaluationIsExist.Nav_CheckRecordDetails != null && evaluationIsExist.Nav_CheckRecordDetails.Any()) if (evaluationIsExist != null && evaluationIsExist.Nav_CheckRecordDetails != null && evaluationIsExist.Nav_CheckRecordDetails.Any())
{ {
@ -84,6 +93,7 @@ namespace APT.SK.WebApi.Controllers.Api
deleteDetailIds.Add(t.ID); deleteDetailIds.Add(t.ID);
}); });
} }
foreach (var item in details) foreach (var item in details)
{ {
if (item.CHECK_RESULT == null) if (item.CHECK_RESULT == null)
@ -145,8 +155,10 @@ namespace APT.SK.WebApi.Controllers.Api
item.Nav_Contents = null; item.Nav_Contents = null;
} }
} }
var delFileIds = this.GetEntities<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_FILE>(t => t.SECURITY_INSPECTION_RECORD_SUMMARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
if (files != null && files.Any()) if (files != null && files.Any())
{ {
files = files.Where(t => !t.IS_DELETED).ToList();
foreach (var item in files) foreach (var item in files)
{ {
item.ORG_ID = entity.ORG_ID; item.ORG_ID = entity.ORG_ID;
@ -257,7 +269,7 @@ namespace APT.SK.WebApi.Controllers.Api
} }
var departName = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0)?.NAME; var departName = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0)?.NAME;
//发消息 //发消息
var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患上报(" + departName + entity.Nav_CheckType?.NAME + ")", report.ID, report.ORG_ID, (Guid)entity.APPLY_USER_ID, entity.Nav_ApplyUser?.NAME, DateTime.Now, var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患上报-" + entity.DEPARTMENT_TYPE.GetDescription(), report.ID, report.ORG_ID, (Guid)entity.APPLY_USER_ID, entity.Nav_ApplyUser?.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "SK014"); DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "SK014");
notices.Add(notice); notices.Add(notice);
} }
@ -287,7 +299,9 @@ namespace APT.SK.WebApi.Controllers.Api
if (deleteFileIds != null && deleteFileIds.Any()) if (deleteFileIds != null && deleteFileIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_FILE>(deleteFileIds); this.BantchDeleteEntityNoCommit<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_FILE>(deleteFileIds);
if (deleteDetailIds != null && deleteDetailIds.Any()) if (deleteDetailIds != null && deleteDetailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL>(deleteDetailIds); this.BantchDeleteEntityNoCommit<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL>(deleteDetailIds);
if (delFileIds != null && delFileIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_FILE>(delFileIds);
if (details != null && details.Any()) if (details != null && details.Any())
BantchSaveEntityNoCommit(details); BantchSaveEntityNoCommit(details);
if (userList != null && userList.Any()) if (userList != null && userList.Any())
@ -427,7 +441,7 @@ namespace APT.SK.WebApi.Controllers.Api
} }
var departName = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == record.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0)?.NAME; var departName = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == record.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0)?.NAME;
//发消息 //发消息
var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患上报(" + departName + DateTime.Now.ToShortDateString().Replace("/", "") + ")", report.ID, report.ORG_ID, (Guid)record.APPLY_USER_ID, record.Nav_ApplyUser?.NAME, DateTime.Now, var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患上报-" + record.DEPARTMENT_TYPE.GetDescription() + DateTime.Now.Month.PadLeft(2,'0')+ DateTime.Now.Day.PadLeft(2, '0'), report.ID, report.ORG_ID, (Guid)record.APPLY_USER_ID, record.Nav_ApplyUser?.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "SK014"); DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "SK014");
notices.Add(notice); notices.Add(notice);
} }
@ -597,7 +611,7 @@ namespace APT.SK.WebApi.Controllers.Api
filter.IgnoreDataRule = true; filter.IgnoreDataRule = true;
var result = this.GetEntity<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>(id, new string[] {"Nav_ApplyUser","Nav_ApplyDepartment","Nav_CheckType", var result = this.GetEntity<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>(id, new string[] {"Nav_ApplyUser","Nav_ApplyDepartment","Nav_CheckType",
"Nav_CheckRecordDetails","Nav_CheckRecordDetails.Nav_RiskArea","Nav_CheckRecordDetails.Nav_Contents","Nav_CheckRecordDetails.Nav_Question","Nav_CheckRecordDetails.Nav_CheckRecordDetailBasics.Nav_Law", "Nav_CheckRecordDetails","Nav_CheckRecordDetails.Nav_RiskArea","Nav_CheckRecordDetails.Nav_Contents","Nav_CheckRecordDetails.Nav_Question","Nav_CheckRecordDetails.Nav_CheckRecordDetailBasics.Nav_Law",
"Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.Nav_User", "Nav_CheckRecordDetails.Nav_CheckRecordDetailFiles.Nav_ImgFile", "Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.Nav_User.Nav_UserSignFiles.Nav_ImgFile", "Nav_CheckRecordDetails.Nav_CheckRecordDetailFiles.Nav_ImgFile",
"Nav_CheckRecordFiles","Nav_CheckRecordFiles.Nav_ImgFile","Nav_ProductionUnit"}); "Nav_CheckRecordFiles","Nav_CheckRecordFiles.Nav_ImgFile","Nav_ProductionUnit"});
//var taskId = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "TASK_ID").Value; //var taskId = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "TASK_ID").Value;
if (result != null && result.Nav_CheckRecordDetails != null && result.Nav_CheckRecordDetails.Any())// && taskId != null if (result != null && result.Nav_CheckRecordDetails != null && result.Nav_CheckRecordDetails.Any())// && taskId != null