问题修复

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;
}
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)
{
throw new Exception("有隐患必须选择隐患描述");
}
var isExsistTwos = details.FirstOrDefault(t => t.CHECK_RESULT == SKCheckResultEnum.Yes && t.HIDDEN_LEVEL == null);
if (isExsistTwos != null)
{
throw new Exception("有隐患必须填写隐患等级");
throw new Exception("有隐患必须选择隐患描述和隐患等级隐患地点");
}
var isExsistFirsts = details.FirstOrDefault(t => t.CHECK_RESULT == SKCheckResultEnum.Yes && (t.Nav_CheckRecordDetailFiles == null || !t.Nav_CheckRecordDetailFiles.Any()));
if (isExsistFirsts != null)
{
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)
{
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())
{
@ -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())
{
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();
summaryDetail.ORG_ID = entity.ORG_ID;
summaryDetail.SECURITY_INSPECTION_RECORD_SUMMARY_ID = summary.ID;
summaryDetail.RISK_AREA_ID = itemDetail.Key.RISK_AREA_ID;
summaryDetail.CHECK_CONTENTS_ID = itemDetail.Key.CHECK_CONTENTS_ID;
summaryDetail.CHECK_QUESTION_ID = itemDetail.Key.CHECK_QUESTION_ID;
summaryDetail.CHECKCONTENT = itemDetail.FirstOrDefault().CHECKCONTENT;
summaryDetail.CHECKPROOF = itemDetail.FirstOrDefault().CHECKPROOF;
summaryDetail.CHECKSTANDARD = itemDetail.FirstOrDefault().CHECKSTANDARD;
summaryDetail.CHECK_RESULT = itemDetail.FirstOrDefault().CHECK_RESULT;
summaryDetail.HIDDEN_DESCRIPTION = string.IsNullOrEmpty(itemDetail.FirstOrDefault().HIDDEN_DESCRIPTION) ? itemDetail.FirstOrDefault().Nav_Question?.DESCREPTION : itemDetail.FirstOrDefault().HIDDEN_DESCRIPTION;
summaryDetail.HIDDEN_LEVEL = itemDetail.FirstOrDefault().HIDDEN_LEVEL;
summaryDetail.HIDDEN_PLACE = itemDetail.FirstOrDefault().HIDDEN_PLACE;
summaryDetail.MARK = itemDetail.FirstOrDefault().MARK;
summaryDetail.NUM = itemDetail.FirstOrDefault().NUM;
summaryDetail.RISK_AREA_ID = itemDetail.RISK_AREA_ID;
summaryDetail.CHECK_CONTENTS_ID = itemDetail.CHECK_CONTENTS_ID;
summaryDetail.CHECK_QUESTION_ID = itemDetail.CHECK_QUESTION_ID;
summaryDetail.CHECKCONTENT = itemDetail.CHECKCONTENT;
summaryDetail.CHECKPROOF = itemDetail.CHECKPROOF;
summaryDetail.CHECKSTANDARD = itemDetail.CHECKSTANDARD;
summaryDetail.CHECK_RESULT = itemDetail.CHECK_RESULT;
summaryDetail.HIDDEN_DESCRIPTION = string.IsNullOrEmpty(itemDetail.HIDDEN_DESCRIPTION) ? itemDetail.Nav_Question?.DESCREPTION : itemDetail.HIDDEN_DESCRIPTION;
summaryDetail.HIDDEN_LEVEL = itemDetail.HIDDEN_LEVEL;
summaryDetail.HIDDEN_PLACE = itemDetail.HIDDEN_PLACE;
summaryDetail.MARK = itemDetail.MARK;
summaryDetail.NUM = itemDetail.NUM;
sumdetails.Add(summaryDetail);
var groupUsers = tempDetailUsers.Where(t => ids.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID)).Select(m => m.USER_ID).Distinct().ToList();
if (groupUsers.Any())
@ -952,18 +954,24 @@ namespace APT.SK.WebApi.Controllers.Api
}
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();
summaryDetails.AddRange(detailTemps);
var detailTempNews = sumdetails.Where(t => t.CHECK_RESULT == SKCheckResultEnum.Yes).ToList();
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();
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();
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");
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>();
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" });
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);
});
}
foreach (var item in details)
{
if (item.CHECK_RESULT == null)
@ -145,8 +155,10 @@ namespace APT.SK.WebApi.Controllers.Api
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())
{
files = files.Where(t => !t.IS_DELETED).ToList();
foreach (var item in files)
{
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 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");
notices.Add(notice);
}
@ -287,7 +299,9 @@ namespace APT.SK.WebApi.Controllers.Api
if (deleteFileIds != null && deleteFileIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_FILE>(deleteFileIds);
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())
BantchSaveEntityNoCommit(details);
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 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");
notices.Add(notice);
}
@ -597,7 +611,7 @@ namespace APT.SK.WebApi.Controllers.Api
filter.IgnoreDataRule = true;
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_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"});
//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