mh_jy_safe/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs

9217 lines
483 KiB
C#
Raw Normal View History

2025-08-25 09:56:57 +08:00
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.IServices;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.ApiModel.BS;
using APT.MS.Domain.Entities.BS;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.PF;
using APT.MS.Domain.Enums;
using APT.Utility;
using APT.WebApi.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore.Storage;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Linq.Expressions;
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
using APT.Infrastructure.Api;
using System.Dynamic;
using APT.BaseData.Domain.Enums.PF;
using static APT.Utility.FileUtils;
namespace APT.BS.WebApi.Controllers.Api
{
[Route("api/BS/BSRiskSubmit")]
public partial class BSRiskSubmitController : AuthorizeApiController<T_BS_RISK_SUBMIT>
{
IFMFlowPermitService MFlowPermitService { get; set; }
IPFApproveCallBackService ApproveCallBackService { get; set; }
IFMNotificationTaskService NotificationTaskService { get; set; }
IPFCodeRuleService CodeRuleService { get; set; }
IPFSysLogService SysLogService { get; set; }
IFMDepartmentService DepartmentService { get; set; }
IBSOperateLogService OperateLogService { get; set; }
///// <summary>
///// 回调
///// </summary>
///// <param name="CALLBACK_INTERFACE"></param>
///// <param name="DATA_ID"></param>
//public delegate void DelegateCallBack(string CALLBACK_INTERFACE, string DATA_ID);
public BSRiskSubmitController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService, IPFSysLogService sysLogService, IPFApproveCallBackService approveCallBackService, IFMDepartmentService departmentService, IBSOperateLogService operateLogService)
{
NotificationTaskService = notificationTaskService;
MFlowPermitService = mFlowPermitService;
CodeRuleService = codeRuleService;
SysLogService = sysLogService;
ApproveCallBackService = approveCallBackService;
DepartmentService = departmentService;
OperateLogService = operateLogService;
//DelegateCallBack callBack = new DelegateCallBack(CallBACK);
//callBack += CallBACK;
}
//public static void CallBACK(string CALLBACK_INTERFACE, string DATA_ID)
//{
// switch (CALLBACK_INTERFACE)
// {
// case "":
// break;
// default:
// break;
// }
//}
#region
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("Get")]
public JsonActionResult<T_BS_RISK_SUBMIT> Get([FromBody] KeywordFilter filter)
{
return SafeExecute<T_BS_RISK_SUBMIT>(() =>
{
List<FilterRule> filterRules = filter.FilterGroup.Rules.ToList();
var guid = new Guid(filterRules[0].Value.ToString());
//var modelSub = GetEntity<T_BS_RISK_SUBMIT>(e => e.ID == guid, new string[] { "Nav_CheckType", "Nav_CheckTypeLevel.Nav_Enums", "Nav_ListRiskSubmitContent.Nav_SafeCheckDetail", "Nav_ListRiskSubmitContent.Nav_CheckMain", "Nav_ListRiskSubmitContent.Nav_CheckMain.Nav_CheckProject", "Nav_ListRiskSubmitContent.Nav_Question", "Nav_ListRiskSubmitContent.Nav_User", "Nav_ListRiskSubmitContent.Nav_Department", "Nav_Files.Nav_ImgFile" });
again:
var modelSub = GetEntity<T_BS_RISK_SUBMIT>(e => e.ID == guid, new string[] { "Nav_CheckType", "Nav_CheckTypeLevel.Nav_Enums", "Nav_Files.Nav_ImgFile", "Nav_User" });
if (modelSub == null)
{
//modelSub = GetEntity<T_BS_RISK_SUBMIT>(e => e.CHECK_ID == guid, new string[] { "Nav_Check", "Nav_CheckType", "Nav_CheckTypeLevel.Nav_Enums", "Nav_Files.Nav_ImgFile", "Nav_ListRiskSubmitContent.Nav_Question", "Nav_ListRiskSubmitContent.Nav_ListRiskQuestionReason.Nav_RiskReason", "Nav_ListRiskSubmitContent.Nav_User", "Nav_ListRiskSubmitContent.Nav_Department",
// "Nav_Department", "Nav_User" });
modelSub = GetEntity<T_BS_RISK_SUBMIT>(e => e.CHECK_ID == guid, new string[] { "Nav_Check", "Nav_CheckType", "Nav_CheckTypeLevel.Nav_Enums", "Nav_Files.Nav_ImgFile",
"Nav_Department", "Nav_User" });
if (modelSub == null)
{
var notice = GetEntity<T_BS_RISK_SUBMIT_NOTICE>(guid);
if (notice != null && notice.RISK_SUBMIT_ID.HasValue)
{
guid = notice.RISK_SUBMIT_ID.Value;
goto again;
}
else
{
var entity = GetEntity<T_BS_SAFE_CHECK>(guid, new string[] { "Nav_User", "Nav_CheckType", "Nav_CheckTypeLevel.Nav_Enums", "Nav_ListSafeCheckDetail" });
modelSub = new T_BS_RISK_SUBMIT();
modelSub.ID = Guid.NewGuid();
modelSub.CODE = entity.CODE;//替换成同一个
if (entity.CHECKOBJECT.HasValue)
{
try
{
modelSub.CHECKOBJECT = (BSMineTypeEnum)entity.CHECKOBJECT;
}
catch { }
}
modelSub.NAME = entity.Nav_CheckTypeLevel.Nav_Enums.NAME + entity.Nav_CheckType.NAME;
modelSub.Nav_Check = entity;
modelSub.Nav_CheckType = entity.Nav_CheckType;
modelSub.Nav_CheckTypeLevel = entity.Nav_CheckTypeLevel;
modelSub.CREATER_ID = entity.USERID_DOPLAN.Value;
modelSub.CHECK_ID = entity.ID;
modelSub.CHECKTIME = entity.CHECKTIME;
modelSub.SUBMIT_STATUS = (int)BSSubmitStatusEnum.WaiteStart;
modelSub.USER_ID = modelSub.CREATER_ID;
modelSub.DEPARTMENT_ID = entity.Nav_User.DEPARTMENT_ID;
modelSub.SUBMIT_TYPE = (int)SUBMIT_TYPE.Check;
modelSub.ISORDEREND = false;
modelSub.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
modelSub.CHECK_TYPE_LEVEL_ID = entity.CHECK_TYPE_LEVEL_ID;
modelSub.ORG_ID = entity.ORG_ID;
var files = GetEntities<T_BS_SAFE_CHECK_FILE>(e => e.SAFE_CHECK_ID == guid, null, "Nav_ImgFile");
if (files != null && files.Any())
{
var Nav_Files = new List<T_BS_RISK_SUBMIT_FILE>();
foreach (var item in files)
{
Nav_Files.Add(new T_BS_RISK_SUBMIT_FILE()
{
ID = Guid.NewGuid(),
ORG_ID = modelSub.ORG_ID,
RISK_SUBMIT_ID = modelSub.ID,
IMG_FILE_ID = item.IMG_FILE_ID,
Nav_ImgFile = item.Nav_ImgFile
});
}
modelSub.Nav_Files = Nav_Files;
}
}
}
else
{
var listTemp = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_ID == modelSub.ID, null, "Nav_Question", "Nav_ListRiskQuestionReason.Nav_RiskReason", "Nav_User", "Nav_UserDeal", "Nav_UserCheck", "Nav_DepartmentDeal", "Nav_Department", "Nav_RiskArea");
if (listTemp != null && listTemp.Any())
{
modelSub.Nav_ListRiskSubmitContent = listTemp.ToList();
}
GetListContentRiskQuestionReason(modelSub.Nav_ListRiskSubmitContent);
}
//for (int i = 0; i < entity.Nav_ListSafeCheckDetail.Count; i++)
//{
// T_BS_RISK_SUBMIT_CONTENT SubmitContent = new T_BS_RISK_SUBMIT_CONTENT();
//}
//modelSub.Nav_ListRiskSubmitContent = new List<T_BS_RISK_SUBMIT_CONTENT>();
}
else
{
var listTemp = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_ID == modelSub.ID, null, "Nav_SafeCheckDetail", "Nav_CheckMain", "Nav_CheckMain.Nav_CheckProject", "Nav_Question", "Nav_User", "Nav_UserDeal", "Nav_UserCheck", "Nav_DepartmentDeal", "Nav_Department", "Nav_RiskArea");
if (listTemp != null && listTemp.Any())
{
modelSub.Nav_ListRiskSubmitContent = listTemp.ToList();
if (modelSub.Nav_ListRiskSubmitContent[0].RiskContentState == 10)
{
if (!modelSub.Nav_ListRiskSubmitContent[0].LastDateSystem.HasValue)
{
for (int i = 0; i < modelSub.Nav_ListRiskSubmitContent.Count; i++)
{
if (modelSub.Nav_ListRiskSubmitContent[i].USER_ID.HasValue && !modelSub.Nav_ListRiskSubmitContent[i].ACTUAL_DEAL_USER_ID.HasValue)
{
modelSub.Nav_ListRiskSubmitContent[i].Nav_UserDeal = modelSub.Nav_ListRiskSubmitContent[i].Nav_User;
modelSub.Nav_ListRiskSubmitContent[i].DEAL_USER_ID = modelSub.Nav_ListRiskSubmitContent[i].USER_ID.Value;
modelSub.Nav_ListRiskSubmitContent[i].DEAL_DEPARTMENT_ID = modelSub.Nav_ListRiskSubmitContent[i].DEPARTMENT_ID.Value;
modelSub.Nav_ListRiskSubmitContent[i].Nav_DepartmentDeal = modelSub.Nav_ListRiskSubmitContent[i].Nav_Department;
}
int delayDays = GetDealyDays(modelSub.Nav_ListRiskSubmitContent[i].QUESTION_LEVEL);
modelSub.Nav_ListRiskSubmitContent[i].LastDateSystem = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")).AddDays(delayDays);
}
}
}
}
GetListContentRiskQuestionReason(modelSub.Nav_ListRiskSubmitContent);
}
return modelSub;
});
}
/// <summary>
/// 隐患待上报 改版 获取信息
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("GetBS006")]
public JsonActionResult<T_BS_RISK_SUBMIT> GetBS006([FromBody] KeywordFilter filter)
{
return SafeExecute<T_BS_RISK_SUBMIT>(() =>
{
List<FilterRule> filterRules = filter.FilterGroup.Rules.ToList();
var guid = new Guid(filterRules[0].Value.ToString());
var modelSub = GetEntity<T_BS_RISK_SUBMIT>(e => e.ID == guid, new string[] { "Nav_Check", "Nav_CheckType", "Nav_CheckTypeLevel.Nav_Enums", "Nav_Files.Nav_ImgFile", "Nav_User" });
//上报明细 是不完整的 明细信息重新 整理
//这两个字段作为是否操作过的标签
//CHECK_PROJECT_ID = item.CHECK_PROJECT_ID,
//CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID,
//CHECKCONTENT = item.CHECKCONTENT,
var isFirst = GetCount<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_ID == guid && (e.CHECK_PROJECT_ID.HasValue || e.CHECK_PROJECT_CATEGORY_ID.HasValue), null) == 0;
if (isFirst)
{
var listSubContents = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_ID == guid, null, null).ToList();
#region GetSubmitContent
Expression<Func<T_BS_SAFE_CHECK_DETAIL, bool>> expression = e => e.SAFE_CHECK_ID == modelSub.CHECK_ID && !e.IS_DELETED && e.CHECKRESULT.HasValue && e.CHECKRESULT != (int)CHECKRESULTEnum.None;
var info = this.GetEntities(expression, null, new string[] { "Nav_ListCheckDetailQuestion.Nav_Question", "Nav_CheckArea", "Nav_CheckMain", "Nav_ListCheckDetailReason.Nav_RiskReason", "Nav_Files.Nav_ImgFile" });
List<Guid> listArearId = new List<Guid>();
foreach (var item in info)
{
if (!listArearId.Contains(item.RISK_AREA_ID.Value))
{
listArearId.Add(item.RISK_AREA_ID.Value);
}
}
List<Guid> listQID = new List<Guid>() { new Guid("55555555-5555-5555-5555-555555555555"), new Guid("66666666-6666-6666-6666-666666666666"), new Guid("88888888-8888-8888-8888-888888888888") };
//责任部门
List<T_FM_DEPARTMENT> listDep = new List<T_FM_DEPARTMENT>();
T_FM_DEPARTMENT depCheck = null;
Dictionary<Guid, T_FM_USER> dicDepSafer = new Dictionary<Guid, T_FM_USER>();
if (info.Any() && info.Count() > 0)
{
foreach (var item in info)
{
if (!item.DEPARTMENT_ID.HasValue)
{
continue;
}
depCheck = listDep.Find(e => e.ID == item.DEPARTMENT_ID);
if (depCheck == null)
{
depCheck = GetEntity<T_FM_DEPARTMENT>(item.DEPARTMENT_ID.Value, "Nav_User");
listDep.Add(depCheck);
}
if (depCheck == null)
{
continue;
}
foreach (var itemQ in item.Nav_ListCheckDetailQuestion)
{
if (listQID.Contains(itemQ.Nav_Question.ID))
{
continue;
}
T_BS_RISK_SUBMIT_CONTENT model = listSubContents.FirstOrDefault(e => e.SAFE_CHECK_DETAIL_ID == item.ID);// new T_BS_RISK_SUBMIT_CONTENT();
if (model == null)
{
model = new T_BS_RISK_SUBMIT_CONTENT();
listSubContents.Add(model);
}
model.NAME = string.Empty;
model.CODE = string.Empty;
model.RISK_SUBMIT_ID = modelSub.ID;
model.CHECK_MAIN_ID = item.CHECK_MAIN_ID;
model.Nav_CheckMain = item.Nav_CheckMain;
model.DEPARTMENT_ID = item.DEPARTMENT_ID;
model.Nav_Department = depCheck;
if (item.Nav_Files != null && item.Nav_Files.Any())
{
List<T_BS_RISK_SUBMIT_CONTENT_FILE> listFiles = new List<T_BS_RISK_SUBMIT_CONTENT_FILE>();
foreach (var itemF in item.Nav_Files)
{
listFiles.Add(new T_BS_RISK_SUBMIT_CONTENT_FILE()
{
ID = Guid.NewGuid(),
RISK_SUBMIT_ID = modelSub.ID,
RISK_SUBMIT_CONTENT_ID = model.ID,
IMG_FILE_ID = itemF.IMG_FILE_ID,
Nav_ImgFile = itemF.Nav_ImgFile,
IS_DELETED = false,
ORG_ID = itemF.ORG_ID,
//ENTITY_ORG_TPYE=itemF.ENTITY_ORG_TPYE,
//FORM_ID=null,
//FLOW_STATUS= itemF.FLOW_STATUS,
//FLOW_SEND_STATUS=itemF.FLOW_SEND_STATUS,
//FLOW_ID=itemF.FLOW_ID,
//CREATE_TIME=DateTime.Now,
//MODIFY_TIME=DateTime.Now,
//CREATER_ID=
//MODIFIER_ID
//T_BS_RISK_SUBMIT_CONTENT_BACKID
});
}
model.Nav_Files = listFiles;
}
//wyw1114-1
if (!item.CHECK_MAIN_ID.HasValue || item.CHECK_MAIN_ID.Value == Guid.Empty)
{
//检查库信息为空(手动添加组合 添加的人是谁,对应责任人就是对应隐患上报的人)
model.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
model.Nav_User = GetEntity<T_FM_USER>(model.USER_ID.Value);
}
else
{
//if (item.Nav_CheckMain.RESPONOBJECT == BSPLANCHECKOBJECTEnum.Head || item.Nav_CheckMain.RESPONOBJECT == BSPLANCHECKOBJECTEnum.ClassMonitor)
if (depCheck.USER_ID == depCheck.USER_ID)
{
model.USER_ID = depCheck.USER_ID;
model.Nav_User = depCheck.Nav_User;
}
else
{
//对应的安全员
if (!dicDepSafer.ContainsKey(model.DEPARTMENT_ID.Value))
{
var depSafer = GetEntity<T_FM_USER>(e => e.DEPARTMENT_ID == model.DEPARTMENT_ID && e.APPROVE_ROLE_ID.HasValue && e.Nav_ApproveRole.NAME.Contains("安全"), "Nav_ApproveRole");
if (depSafer == null)
{
continue;
}
dicDepSafer.Add(model.DEPARTMENT_ID.Value, depSafer);
}
model.Nav_User = dicDepSafer[model.DEPARTMENT_ID.Value];
model.USER_ID = model.Nav_User.ID;
}
}
//整改责任人 默认 通知责任人
if (model.USER_ID.HasValue)
{
model.Nav_UserDeal = model.Nav_User;
model.DEAL_USER_ID = model.USER_ID.Value;
model.DEAL_DEPARTMENT_ID = model.DEPARTMENT_ID.Value;
model.Nav_DepartmentDeal = model.Nav_Department;
}
//if (item.RISK_AREA_ID.HasValue && dicRiskUser.ContainsKey(item.RISK_AREA_ID.Value) && dicRiskUser[item.RISK_AREA_ID.Value] != null)
//{
// model.USER_ID = dicRiskUser[item.RISK_AREA_ID.Value].ID;
// model.DEPARTMENT_ID = dicRiskUser[item.RISK_AREA_ID.Value].DEPARTMENT_ID;
// model.Nav_User = dicRiskUser[item.RISK_AREA_ID.Value];
// model.Nav_Department = dicRiskUser[item.RISK_AREA_ID.Value].Nav_Department;
//}
//else
//{
// model.USER_ID = null;
// model.DEPARTMENT_ID = null;
//}
model.Nav_SafeCheckDetail = item;
model.CHECK_MAIN_ID = item.CHECK_MAIN_ID;
model.SAFE_CHECK_ID = item.SAFE_CHECK_ID;
model.CHECK_PROJECT_ID = item.CHECK_PROJECT_ID;
//model.Nav_CheckProject = item.Nav_CheckProject;
model.CHECK_PROJECT_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_PROJECT_CATEGORY_ID;
//model.Nav_CheckProjectProjectCategory = item.Nav_CheckProjectProjectCategory;
model.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID;//0927
model.SERIOUS_RISK = item.SERIOUS_RISK;
model.CHECKCONTENT = item.CHECKCONTENT;
model.SAFE_CHECK_DETAIL_ID = model.Nav_SafeCheckDetail.ID;
if (model.QUESTION_LEVEL == 0)
{
model.QUESTION_LEVEL = item.QUESTION_LEVEL.HasValue ? item.QUESTION_LEVEL.Value : ((int)itemQ.Nav_Question.QUESTION_LEVEL);//默认等级和原来一致
}
model.QUESTION_LEVEL_SHOW = model.QUESTION_LEVEL > 0 ? ((BSQuestionLevelEnum)(model.QUESTION_LEVEL)).GetDescription() : "";//默认等级和原来一致
model.RISK_AREA_ID = item.RISK_AREA_ID;
//model.CHECK_QUESTION_ID = item.Nav_CheckMain.Nav_CheckQuestion.ID;
if (item.CHECKRESULT.HasValue && item.CHECKRESULT == (int)CHECKRESULTEnum.Same)
{
model.Nav_SafeCheckDetail.REMARK_RESULT = itemQ.Nav_Question.DESCREPTION;
model.Nav_Question = itemQ.Nav_Question;// item.Nav_CheckQuestion;
model.DESCREPTION = itemQ.Nav_Question.DESCREPTION;// item.Nav_CheckQuestion.DESCREPTION;//取检查问题的 描述
model.DEMAND = itemQ.Nav_Question.DEMAND;// item.Nav_CheckQuestion.DEMAND;
model.CHECK_QUESTION_ID = itemQ.Nav_Question.ID;// item.Nav_CheckQuestion.ID;
model.PROOF = item.CHECKPROOF;
}
else
{
model.Nav_SafeCheckDetail.REMARK_RESULT = item.REMARK_RESULT;
model.DESCREPTION = item.REMARK_RESULT;//其他 取安全检查的 备注
model.DEMAND = "";
model.CHECK_QUESTION_ID = null;
model.PROOF = null;
}
model.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID;
model.ADDRESS = item.ADDRESS;//隐患地点
int delayDays = GetDealyDays(model.QUESTION_LEVEL);
model.LastDateSystem = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")).AddDays(delayDays);
//item.Nav_ListCheckDetailReason
//model.Nav_ListRiskQuestionReason=
if (item.Nav_ListCheckDetailReason != null && item.Nav_ListCheckDetailReason.Any())
{
model.Nav_ListRiskQuestionReason = new List<T_BS_RISK_SUBMIT_CONTENT_REASON>();
foreach (var itemR in item.Nav_ListCheckDetailReason)
{
model.Nav_ListRiskQuestionReason.Add(new T_BS_RISK_SUBMIT_CONTENT_REASON()
{
ID = Guid.NewGuid(),
RISK_SUBMIT_CONTENT_ID = model.ID,
Nav_RiskSubmitContent = model,
Nav_RiskReason = itemR.Nav_RiskReason,
RISK_REASON_ID = itemR.RISK_REASON_ID,
IS_DELETED = false,
ORG_ID = itemR.ORG_ID,
//ENTITY_ORG_TPYE = ,
//FORM_ID = ,
//FLOW_STATUS = ,
//FLOW_SEND_STATUS = ,
//FLOW_ID = ,
CREATE_TIME = DateTime.Now,
MODIFY_TIME = DateTime.Now,
//CREATER_ID = ,
//MODIFIER_ID = ,
//T_BS_RISK_SUBMIT_CONTENT_BACKID = ,
});
}
}
}
}
#region
var listDepID = listSubContents.Where(e => e.DEPARTMENT_ID.HasValue).Select(e => e.DEPARTMENT_ID.Value).Distinct();
if (listDepID != null && listDepID.Any())
{
var listDeps = GetEntities<T_FM_DEPARTMENT>(e => listDepID.Contains(e.ID), null);
listDepID = listDeps.Where(e => e.PARENT_ID.HasValue).Select(e => e.PARENT_ID.Value).Distinct();
var listRole = GetEntities<T_PF_APPROVAL_ROLE>(e => e.NAME.Contains("安全员"), null, null);
if (listRole != null && listRole.Any())
{
var listRoleID = listRole.Select(e => e.ID);
var listHeader = GetEntities<T_FM_USER>(e => listDepID.Contains(e.DEPARTMENT_ID.Value) && e.APPROVE_ROLE_ID.HasValue && listRoleID.Contains(e.APPROVE_ROLE_ID.Value), null, null);
if (listHeader != null && listHeader.Any())
{
foreach (var item in listSubContents)
{
if (item.DEPARTMENT_ID.HasValue)
{
var depThis = listDeps.FirstOrDefault(e => e.ID == item.DEPARTMENT_ID.Value);
if (depThis != null && depThis.PARENT_ID.HasValue)
{
T_FM_USER userTemp = listHeader.FirstOrDefault(x => x.DEPARTMENT_ID == depThis.PARENT_ID.Value);
if (userTemp != null)
{
item.CHECK_USER_ID = userTemp.ID;
item.Nav_UserCheck = userTemp;
}
}
}
}
}
}
}
#endregion
}
modelSub.Nav_ListRiskSubmitContent = listSubContents;
#endregion
}
else
{
//APP查看 需要 Nav_RiskArea
modelSub.Nav_ListRiskSubmitContent = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_ID == guid, null, "Nav_CheckMain", "Nav_RiskArea", "Nav_Files.Nav_ImgFile", "Nav_User", "Nav_UserCheck", "Nav_UserDeal", "Nav_DepartmentDeal", "Nav_ListRiskQuestionReason.Nav_RiskReason").ToList();
}
return modelSub;
});
}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("GetBack")]
public JsonActionResult<T_BS_RISK_SUBMIT> GetBack([FromBody] KeywordFilter filter)
{
return SafeExecute<T_BS_RISK_SUBMIT>(() =>
{
List<FilterRule> filterRules = filter.FilterGroup.Rules.ToList();
var guid = new Guid(filterRules[0].Value.ToString());//T_BS_RISK_SUBMIT_NOTICE
T_BS_RISK_SUBMIT result = new T_BS_RISK_SUBMIT();
//var notice = GetEntity<T_BS_RISK_SUBMIT_NOTICE>(guid);
var listSubContent = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_NOTICE_ID == guid, null, "Nav_SafeCheckDetail", "Nav_ListRiskQuestionReason.Nav_RiskReason", "Nav_User", "Nav_Department", "Nav_Files.Nav_ImgFile", "Nav_DepartmentDeal", "Nav_UserDeal", "Nav_UserCheck");
var submitID = Guid.Empty;
if (listSubContent != null && listSubContent.Any())
{
//这个方法在什么时候用?
var list = listSubContent.ToList();
submitID = list[0].RISK_SUBMIT_ID.Value;
result = GetEntity<T_BS_RISK_SUBMIT>(submitID, "Nav_Check", "Nav_Check", "Nav_CheckTypeLevel.Nav_Enums", "Nav_Files.Nav_ImgFile");
foreach (var item in list)
{
try
{
item.QUESTION_LEVEL_SHOW = ((BSQuestionLevelEnum)item.QUESTION_LEVEL).GetDescription();
}
catch { }
}
result.Nav_ListRiskSubmitContent = list;
}
else
{
//(驳回)X类隐患上报
var notice = GetEntity<T_BS_RISK_SUBMIT_NOTICE>(guid);
if (notice != null && notice.RISK_SUBMIT_ID.HasValue)
{
result = GetEntity<T_BS_RISK_SUBMIT>(notice.RISK_SUBMIT_ID.Value, "Nav_Check", "Nav_Check", "Nav_CheckTypeLevel.Nav_Enums", "Nav_Files.Nav_ImgFile");
listSubContent = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_ID == notice.RISK_SUBMIT_ID.Value, null, "Nav_SafeCheckDetail", "Nav_ListRiskQuestionReason.Nav_RiskReason", "Nav_User", "Nav_Department", "Nav_Files.Nav_ImgFile", "Nav_DepartmentDeal", "Nav_UserDeal", "Nav_UserCheck");
foreach (var item in listSubContent)
{
item.QUESTION_LEVEL_SHOW = ((BSQuestionLevelEnum)item.QUESTION_LEVEL).GetDescription();
item.APPROVE_ID = notice.APPROVE_ID;//传到前端,不然审批驳回获取不到信息
}
result.Nav_ListRiskSubmitContent = listSubContent.ToList();
}
}
return result;
});
}
/// <summary>
/// 获取 隐患问题
/// </summary>
/// <param name="listContent"></param>
public void GetListContentRiskQuestionReason(List<T_BS_RISK_SUBMIT_CONTENT> listContent)
{
if (listContent != null && listContent.Count > 0)
{
List<Guid> listContentID = listContent.Select(e => e.ID).ToList();
var varContentReason = GetEntities<T_BS_RISK_SUBMIT_CONTENT_REASON>(e => listContentID.Contains(e.RISK_SUBMIT_CONTENT_ID), null, new string[] { "Nav_RiskReason" });
if (varContentReason.Any())
{
List<T_BS_RISK_SUBMIT_CONTENT_REASON> listContentReason = varContentReason.ToList();
foreach (var item in listContent)
{
item.Nav_ListRiskQuestionReason = listContentReason.FindAll(e => e.RISK_SUBMIT_CONTENT_ID == item.ID);
}
}
}
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderPagedDistinctCheckContent")]
public PagedActionResult<T_BS_CHECK_QUESTION> OrderPagedDistinctCheckContent([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData<T_BS_CHECK_QUESTION>((result) =>
{
Expression<Func<T_BS_CHECK_MAIN, bool>> expression = e => !e.IS_DELETED && e.ORG_ID == pageFilter.OrgId && e.Nav_CheckQuestion != null;
string DESCREPTION = string.Empty;
if (pageFilter.FilterGroup.Groups != null && pageFilter.FilterGroup.Groups.Any())
{
var listGroups = pageFilter.FilterGroup.Groups.ToList();
if (listGroups[0].Rules.Count > 0)
{
var listRules = listGroups[0].Rules.ToList();
foreach (var item in listRules)
{
if (item.Field == "DESCREPTION")
{
DESCREPTION = item.Value.ToString();
listGroups[0].Rules.Remove(item);
pageFilter.FilterGroup.Groups = listGroups;
if (DESCREPTION.Length > 0)
{
expression = expression.And(e => e.Nav_CheckQuestion.DESCREPTION.Contains(DESCREPTION));
}
}
}
}
}
var info = this.GetEntities<T_BS_CHECK_MAIN>(expression, pageFilter, null).Select(e => new { Nav_CheckQuestion = e.Nav_CheckQuestion, e.QUESTION_LEVEL }).Where(e => e.Nav_CheckQuestion != null).Distinct(e => e.Nav_CheckQuestion.ID).OrderBy(e => e.Nav_CheckQuestion.DESCREPTION);
result.TotalCount = info.Count();
List<T_BS_CHECK_QUESTION> listResult = new List<T_BS_CHECK_QUESTION>();
var listResultTemp = info.Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit).ToList();
foreach (var item in listResultTemp)
{
//!!!!!!修改后 这个不要了 看着数据优化
//item.Nav_CheckQuestion.QUESTION_LEVEL = (BSQuestionLevelEnum)item.QUESTION_LEVEL;
listResult.Add(item.Nav_CheckQuestion);
}
//List<T_BS_CHECK_QUESTION> listTemp = new List<T_BS_CHECK_QUESTION>();
//List<string> list = info.Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit).ToList();
//for (int i = 0; i < list.Count; i++)
//{
// listTemp = this.GetEntities<T_BS_CHECK_QUESTION>(e => e.DESCREPTION == list[i], null, new string[] { "Nav_CheckQuestion" }).OrderBy(e => e.ID).ToList();
// if (listTemp.Count > 0)
// {
// listResult.Add(listTemp[0]);
// }
//}
result.Data = listResult;
});
}
///// <summary>
///// 排序分页查询数据
///// </summary>
///// <param name="pageFilter">分页过滤实体</param>
///// <returns></returns>
//[HttpPost, Route("OrderPagedDistinctCheckContent")]
//public PagedActionResult<T_BS_CHECK_MAIN> OrderPagedDistinctCheckContent([FromBody] KeywordPageFilter pageFilter)
//{
// return SafeGetPagedData<T_BS_CHECK_MAIN>((result) =>
// {
// Expression<Func<T_BS_CHECK_MAIN, bool>> expression = e => !e.IS_DELETED && e.ORG_ID == pageFilter.OrgId;
// var info = this.GetEntities<T_BS_CHECK_MAIN>(expression, pageFilter, new string[] { "Nav_CheckQuestion" }).Select(e => e.CHECKCONTENT).Distinct(e => e).OrderBy(e => e).ToList();
// result.TotalCount = info.Count;
// List<T_BS_CHECK_MAIN> listResult = new List<T_BS_CHECK_MAIN>();
// List<T_BS_CHECK_MAIN> listTemp = new List<T_BS_CHECK_MAIN>();
// List<string> list = info.Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit).ToList();
// for (int i = 0; i < list.Count; i++)
// {
// listTemp = this.GetEntities<T_BS_CHECK_MAIN>(e => e.CHECKCONTENT == list[i], null, new string[] { "Nav_CheckQuestion" }).OrderBy(e => e.ID).ToList();
// if (listTemp.Count > 0)
// {
// listResult.Add(listTemp[0]);
// }
// }
// result.Data = listResult;
// });
//}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderPagedCheckQuestion")]
public PagedActionResult<T_BS_CHECK_QUESTION> OrderPagedCheckQuestion([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData<T_BS_CHECK_QUESTION>((result) =>
{
Guid SAFE_CHECK_ID = Guid.Empty;
Expression<Func<T_BS_CHECK_MAIN, bool>> expression = e => !e.IS_DELETED;// GetExpression(pageFilter, "OrderPagedArea", out SAFE_CHECK_ID);
var info = this.GetEntities<T_BS_CHECK_MAIN>(expression, pageFilter, new string[] { "Nav_CheckQuestion" }).Select(e => e.Nav_CheckQuestion).Distinct(e => e.ID).ToList();
result.TotalCount = info.Count;
result.Data = info.Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit).ToList<T_BS_CHECK_QUESTION>();
});
}
/// <summary>
/// 获取隐患上报内容
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetSubmitContent")]
public PagedActionResult<T_BS_RISK_SUBMIT_CONTENT> GetSubmitContent([FromBody] KeywordFilter filter)
{
return SafeGetPagedData<T_BS_RISK_SUBMIT_CONTENT>((result) =>
{
Guid RISK_SUBMIT_ID = new Guid(filter.Keyword);
Guid SAFE_CHECK_ID = new Guid(filter.Parameter1);
//Guid LoginUserID=APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
Expression<Func<T_BS_SAFE_CHECK_DETAIL, bool>> expression = e => e.SAFE_CHECK_ID == SAFE_CHECK_ID && !e.IS_DELETED && e.CHECKRESULT.HasValue && e.CHECKRESULT != (int)CHECKRESULTEnum.None;
//&& e.Nav_ListCheckDetailUser.FirstOrDefault(e => e.ISMAINCHECK && e.Nav_User.ID == LoginUserID) != null;
// 有问题都要上报 只是其他 要添加隐患库
//var info = this.GetEntities<T_BS_SAFE_CHECK_DETAIL>(expression, null, new string[] { "Nav_CheckMain", "Nav_CheckMain.Nav_CheckQuestion", "Nav_CheckMain.Nav_RiskArea" });//2
var info = this.GetEntities<T_BS_SAFE_CHECK_DETAIL>(expression, null, new string[] { "Nav_ListCheckDetailQuestion.Nav_Question", "Nav_CheckArea", "Nav_CheckMain", "Nav_ListCheckDetailReason.Nav_RiskReason", "Nav_Files.Nav_ImgFile" });
List<Guid> listArearId = new List<Guid>();
foreach (var item in info)
{
if (!listArearId.Contains(item.RISK_AREA_ID.Value))
{
listArearId.Add(item.RISK_AREA_ID.Value);
}
}
//var listEvaluateRisk = this.GetEntities<T_HM_EVALUATE_RISK>(e => e.STATUS == 0 && e.AREA_ID.HasValue && listArearId.Contains(e.AREA_ID.Value), null, null).Distinct().ToList();
//Dictionary<Guid, T_FM_USER> dicRiskUser = new Dictionary<Guid, T_FM_USER>();
//T_FM_PERSON person = null;
T_FM_USER user = null;
//for (int i = 0; i < listEvaluateRisk.Count; i++)
//{
// if (!listEvaluateRisk[i].AREA_ID.HasValue)
// {
// continue;
// }
// //person = GetEntity<T_FM_PERSON>(e => e.DEPARTMENT_ID == listEvaluateRisk[i].DEPARTMENT_LIABLE_ID && e.POST_ID == listEvaluateRisk[i].POST_LIABLE_ID, new string[] { "Nav_User.Nav_Department" });
// if (!dicRiskUser.ContainsKey(listEvaluateRisk[i].AREA_ID.Value))
// {
// user = GetEntity<T_FM_USER>(e => e.DEPARTMENT_ID == listEvaluateRisk[i].DEPARTMENT_LIABLE_ID && e.APPROVE_ROLE_ID == listEvaluateRisk[i].POST_LIABLE_ID, new string[] { "Nav_Department" });
// dicRiskUser.Add(listEvaluateRisk[i].AREA_ID.Value, user);
// }
//}
List<Guid> listQID = new List<Guid>() { new Guid("55555555-5555-5555-5555-555555555555") };
//不能提交
List<T_BS_RISK_SUBMIT_CONTENT> list = new List<T_BS_RISK_SUBMIT_CONTENT>();
//责任部门
List<T_FM_DEPARTMENT> listDep = new List<T_FM_DEPARTMENT>();
T_FM_DEPARTMENT depCheck = null;
Dictionary<Guid, T_FM_USER> dicDepSafer = new Dictionary<Guid, T_FM_USER>();
if (info.Any() && info.Count() > 0)
{
foreach (var item in info)
{
if (!item.DEPARTMENT_ID.HasValue)
{
continue;
}
depCheck = listDep.Find(e => e.ID == item.DEPARTMENT_ID);
if (depCheck == null)
{
depCheck = GetEntity<T_FM_DEPARTMENT>(item.DEPARTMENT_ID.Value, "Nav_User");
listDep.Add(depCheck);
}
if (depCheck == null)
{
continue;
}
foreach (var itemQ in item.Nav_ListCheckDetailQuestion)
{
if (listQID.Contains(itemQ.Nav_Question.ID))
{
continue;
}
T_BS_RISK_SUBMIT_CONTENT model = new T_BS_RISK_SUBMIT_CONTENT();
model.NAME = string.Empty;
model.CODE = string.Empty;
model.RISK_SUBMIT_ID = RISK_SUBMIT_ID;
model.CHECK_MAIN_ID = item.CHECK_MAIN_ID;
model.Nav_CheckMain = item.Nav_CheckMain;
model.DEPARTMENT_ID = item.DEPARTMENT_ID;
model.Nav_Department = depCheck;
if (item.Nav_Files != null && item.Nav_Files.Any())
{
List<T_BS_RISK_SUBMIT_CONTENT_FILE> listFiles = new List<T_BS_RISK_SUBMIT_CONTENT_FILE>();
foreach (var itemF in item.Nav_Files)
{
listFiles.Add(new T_BS_RISK_SUBMIT_CONTENT_FILE()
{
ID = Guid.NewGuid(),
RISK_SUBMIT_ID = RISK_SUBMIT_ID,
RISK_SUBMIT_CONTENT_ID = model.ID,
IMG_FILE_ID = itemF.IMG_FILE_ID,
Nav_ImgFile = itemF.Nav_ImgFile,
IS_DELETED = false,
ORG_ID = itemF.ORG_ID,
//ENTITY_ORG_TPYE=itemF.ENTITY_ORG_TPYE,
//FORM_ID=null,
//FLOW_STATUS= itemF.FLOW_STATUS,
//FLOW_SEND_STATUS=itemF.FLOW_SEND_STATUS,
//FLOW_ID=itemF.FLOW_ID,
//CREATE_TIME=DateTime.Now,
//MODIFY_TIME=DateTime.Now,
//CREATER_ID=
//MODIFIER_ID
//T_BS_RISK_SUBMIT_CONTENT_BACKID
});
}
model.Nav_Files = listFiles;
}
//wyw1114-1
if (!item.CHECK_MAIN_ID.HasValue || item.CHECK_MAIN_ID.Value == Guid.Empty)
{
//检查库信息为空(手动添加组合 添加的人是谁,对应责任人就是对应隐患上报的人)
model.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
model.Nav_User = GetEntity<T_FM_USER>(model.USER_ID.Value);
}
else
{
//if (item.Nav_CheckMain.RESPONOBJECT == BSPLANCHECKOBJECTEnum.Head || item.Nav_CheckMain.RESPONOBJECT == BSPLANCHECKOBJECTEnum.ClassMonitor)
if (depCheck.USER_ID == depCheck.USER_ID)
{
model.USER_ID = depCheck.USER_ID;
model.Nav_User = depCheck.Nav_User;
}
else
{
//对应的安全员
if (!dicDepSafer.ContainsKey(model.DEPARTMENT_ID.Value))
{
var depSafer = GetEntity<T_FM_USER>(e => e.DEPARTMENT_ID == model.DEPARTMENT_ID && e.APPROVE_ROLE_ID.HasValue && e.Nav_ApproveRole.NAME.Contains("安全"), "Nav_ApproveRole");
if (depSafer == null)
{
continue;
}
dicDepSafer.Add(model.DEPARTMENT_ID.Value, depSafer);
}
model.Nav_User = dicDepSafer[model.DEPARTMENT_ID.Value];
model.USER_ID = model.Nav_User.ID;
}
}
//整改责任人 默认 通知责任人
if (model.USER_ID.HasValue)
{
model.Nav_UserDeal = model.Nav_User;
model.DEAL_USER_ID = model.USER_ID.Value;
model.DEAL_DEPARTMENT_ID = model.DEPARTMENT_ID.Value;
model.Nav_DepartmentDeal = model.Nav_Department;
}
//if (item.RISK_AREA_ID.HasValue && dicRiskUser.ContainsKey(item.RISK_AREA_ID.Value) && dicRiskUser[item.RISK_AREA_ID.Value] != null)
//{
// model.USER_ID = dicRiskUser[item.RISK_AREA_ID.Value].ID;
// model.DEPARTMENT_ID = dicRiskUser[item.RISK_AREA_ID.Value].DEPARTMENT_ID;
// model.Nav_User = dicRiskUser[item.RISK_AREA_ID.Value];
// model.Nav_Department = dicRiskUser[item.RISK_AREA_ID.Value].Nav_Department;
//}
//else
//{
// model.USER_ID = null;
// model.DEPARTMENT_ID = null;
//}
model.Nav_SafeCheckDetail = item;
model.CHECK_MAIN_ID = item.CHECK_MAIN_ID;
model.SAFE_CHECK_ID = item.SAFE_CHECK_ID;
model.CHECK_PROJECT_ID = item.CHECK_PROJECT_ID;
//model.Nav_CheckProject = item.Nav_CheckProject;
model.CHECK_PROJECT_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_PROJECT_CATEGORY_ID;
//model.Nav_CheckProjectProjectCategory = item.Nav_CheckProjectProjectCategory;
model.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID;//0927
model.SERIOUS_RISK = item.SERIOUS_RISK;
model.CHECKCONTENT = item.CHECKCONTENT;
model.SAFE_CHECK_DETAIL_ID = model.Nav_SafeCheckDetail.ID;
model.QUESTION_LEVEL = item.QUESTION_LEVEL.HasValue ? item.QUESTION_LEVEL.Value : item.Nav_CheckMain.QUESTION_LEVEL;//默认等级和原来一致
model.QUESTION_LEVEL_SHOW = model.QUESTION_LEVEL > 0 ? ((BSQuestionLevelEnum)(model.QUESTION_LEVEL)).GetDescription() : "";//默认等级和原来一致
model.RISK_AREA_ID = item.RISK_AREA_ID;
//model.CHECK_QUESTION_ID = item.Nav_CheckMain.Nav_CheckQuestion.ID;
if (item.CHECKRESULT.HasValue && item.CHECKRESULT == (int)CHECKRESULTEnum.Same)
{
model.Nav_SafeCheckDetail.REMARK_RESULT = itemQ.Nav_Question.DESCREPTION;
model.Nav_Question = itemQ.Nav_Question;// item.Nav_CheckQuestion;
model.DESCREPTION = itemQ.Nav_Question.DESCREPTION;// item.Nav_CheckQuestion.DESCREPTION;//取检查问题的 描述
model.DEMAND = itemQ.Nav_Question.DEMAND;// item.Nav_CheckQuestion.DEMAND;
model.CHECK_QUESTION_ID = itemQ.Nav_Question.ID;// item.Nav_CheckQuestion.ID;
model.PROOF = item.CHECKPROOF;
}
else
{
model.Nav_SafeCheckDetail.REMARK_RESULT = item.REMARK_RESULT;
model.DESCREPTION = item.REMARK_RESULT;//其他 取安全检查的 备注
model.DEMAND = "";
model.CHECK_QUESTION_ID = null;
model.PROOF = null;
}
model.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID;
model.ADDRESS = item.ADDRESS;//隐患地点
int delayDays = GetDealyDays(model.QUESTION_LEVEL);
model.LastDateSystem = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")).AddDays(delayDays);
//item.Nav_ListCheckDetailReason
//model.Nav_ListRiskQuestionReason=
if (item.Nav_ListCheckDetailReason != null && item.Nav_ListCheckDetailReason.Any())
{
model.Nav_ListRiskQuestionReason = new List<T_BS_RISK_SUBMIT_CONTENT_REASON>();
foreach (var itemR in item.Nav_ListCheckDetailReason)
{
model.Nav_ListRiskQuestionReason.Add(new T_BS_RISK_SUBMIT_CONTENT_REASON()
{
ID = Guid.NewGuid(),
RISK_SUBMIT_CONTENT_ID = model.ID,
Nav_RiskSubmitContent = model,
Nav_RiskReason = itemR.Nav_RiskReason,
RISK_REASON_ID = itemR.RISK_REASON_ID,
IS_DELETED = false,
ORG_ID = itemR.ORG_ID,
//ENTITY_ORG_TPYE = ,
//FORM_ID = ,
//FLOW_STATUS = ,
//FLOW_SEND_STATUS = ,
//FLOW_ID = ,
CREATE_TIME = DateTime.Now,
MODIFY_TIME = DateTime.Now,
//CREATER_ID = ,
//MODIFIER_ID = ,
//T_BS_RISK_SUBMIT_CONTENT_BACKID = ,
});
}
}
list.Add(model);
}
}
#region
var listDepID = list.Where(e => e.DEPARTMENT_ID.HasValue).Select(e => e.DEPARTMENT_ID.Value).Distinct();
if (listDepID != null && listDepID.Any())
{
var listDeps = GetEntities<T_FM_DEPARTMENT>(e => listDepID.Contains(e.ID), null);
listDepID = listDeps.Where(e => e.PARENT_ID.HasValue).Select(e => e.PARENT_ID.Value).Distinct();
var listRole = GetEntities<T_PF_APPROVAL_ROLE>(e => e.NAME.Contains("安全员"), null, null);
if (listRole != null && listRole.Any())
{
var listRoleID = listRole.Select(e => e.ID);
var listHeader = GetEntities<T_FM_USER>(e => listDepID.Contains(e.DEPARTMENT_ID.Value) && e.APPROVE_ROLE_ID.HasValue && listRoleID.Contains(e.APPROVE_ROLE_ID.Value), null, null);
if (listHeader != null && listHeader.Any())
{
foreach (var item in list)
{
if (item.DEPARTMENT_ID.HasValue)
{
var depThis = listDeps.FirstOrDefault(e => e.ID == item.DEPARTMENT_ID.Value);
if (depThis != null && depThis.PARENT_ID.HasValue)
{
T_FM_USER userTemp = listHeader.FirstOrDefault(x => x.DEPARTMENT_ID == depThis.PARENT_ID.Value);
if (userTemp != null)
{
item.CHECK_USER_ID = userTemp.ID;
item.Nav_UserCheck = userTemp;
}
}
}
}
}
}
}
#endregion
}
result.Data = list;
});
}
/// <summary>
/// 获取问题等级对应天数
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpPost, Route("GetDealyDaysByLevel")]
public JsonActionResult<DateTime> GetDealyDaysByLevel([FromBody] KeywordFilter filter)
{
return SafeExecute<DateTime>(() =>
{
if (string.IsNullOrEmpty(filter.Parameter1))
{
throw new Exception("获取参数失败!");
}
int QUESTION_LEVEL = 0;
try
{
QUESTION_LEVEL = int.Parse(filter.Parameter1.Trim());
}
catch { throw new Exception("传参有误!"); }
return DateTime.Now.Date.AddDays(GetDealyDays(QUESTION_LEVEL)).AddDays(1).AddSeconds(-1);
});
}
/// <summary>
/// 获取 系统整改期限
/// </summary>
/// <param name="QUESTION_LEVEL"></param>
/// <returns></returns>
private int GetDealyDays(int QUESTION_LEVEL)
{
int delayDays = 0;
var delays = GetEntity<T_BS_RISK_LEVEL_DELAY_DAYS>(e => e.QUESTION_LEVEL == QUESTION_LEVEL);
if (delays != null)
{
delayDays = delays.MAX_DELAY_DAYS;
}
else
{
switch (QUESTION_LEVEL)
{
case (int)BSQuestionLevelEnum.:
delayDays = (int)BSDelayDaysEnum.;
break;
case (int)BSQuestionLevelEnum.A:
delayDays = (int)BSDelayDaysEnum.A;
break;
case (int)BSQuestionLevelEnum.B:
delayDays = (int)BSDelayDaysEnum.B;
break;
case (int)BSQuestionLevelEnum.C:
delayDays = (int)BSDelayDaysEnum.C;
break;
case (int)BSQuestionLevelEnum.D:
delayDays = (int)BSDelayDaysEnum.D;
break;
default:
break;
}
}
return delayDays;
}
///// <summary>
///// 获取隐患上报内容
///// </summary>
///// <param name="filter"></param>
///// <returns></returns>
//[HttpPost, Route("GetSubmitContent")]
//public PagedActionResult<T_BS_RISK_SUBMIT_CONTENT> GetSubmitContent([FromBody] KeywordFilter filter)
//{
// return SafeGetPagedData<T_BS_RISK_SUBMIT_CONTENT>((result) =>
// {
// Guid RISK_SUBMIT_ID = new Guid(filter.Keyword);
// Guid SAFE_CHECK_ID = new Guid(filter.Parameter1);
// //Guid LoginUserID=APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
// Expression<Func<T_BS_SAFE_CHECK_DETAIL, bool>> expression = e => e.SAFE_CHECK_ID == SAFE_CHECK_ID && !e.IS_DELETED && e.CHECKRESULT.HasValue && e.CHECKRESULT != (int)CHECKRESULTEnum.None;
// //&& e.Nav_ListCheckDetailUser.FirstOrDefault(e => e.ISMAINCHECK && e.Nav_User.ID == LoginUserID) != null;
// // 有问题都要上报 只是其他 要添加隐患库
// //var info = this.GetEntities<T_BS_SAFE_CHECK_DETAIL>(expression, null, new string[] { "Nav_CheckMain", "Nav_CheckMain.Nav_CheckQuestion", "Nav_CheckMain.Nav_RiskArea" });//2
// var info = this.GetEntities<T_BS_SAFE_CHECK_DETAIL>(expression, null, new string[] { "Nav_ListCheckDetailQuestion.Nav_Question", "Nav_CheckArea", "Nav_CheckMain" });
// List<Guid> listArearId = new List<Guid>();
// foreach (var item in info)
// {
// if (!listArearId.Contains(item.RISK_AREA_ID.Value))
// {
// listArearId.Add(item.RISK_AREA_ID.Value);
// }
// }
// var listEvaluateRisk = this.GetEntities<T_HM_EVALUATE_RISK>(e => e.STATUS == 0 && e.AREA_ID.HasValue && listArearId.Contains(e.AREA_ID.Value), null, null).Distinct().ToList();
// Dictionary<Guid, T_FM_USER> dicRiskUser = new Dictionary<Guid, T_FM_USER>();
// //T_FM_PERSON person = null;
// T_FM_USER user = null;
// for (int i = 0; i < listEvaluateRisk.Count; i++)
// {
// if (!listEvaluateRisk[i].AREA_ID.HasValue)
// {
// continue;
// }
// //person = GetEntity<T_FM_PERSON>(e => e.DEPARTMENT_ID == listEvaluateRisk[i].DEPARTMENT_LIABLE_ID && e.POST_ID == listEvaluateRisk[i].POST_LIABLE_ID, new string[] { "Nav_User.Nav_Department" });
// if (!dicRiskUser.ContainsKey(listEvaluateRisk[i].AREA_ID.Value))
// {
// user = GetEntity<T_FM_USER>(e => e.DEPARTMENT_ID == listEvaluateRisk[i].DEPARTMENT_LIABLE_ID && e.APPROVE_ROLE_ID == listEvaluateRisk[i].POST_LIABLE_ID, new string[] { "Nav_Department" });
// dicRiskUser.Add(listEvaluateRisk[i].AREA_ID.Value, user);
// }
// }
// List<Guid> listQID = new List<Guid>() { new Guid("55555555-5555-5555-5555-555555555555") };
// //不能提交
// List<T_BS_RISK_SUBMIT_CONTENT> list = new List<T_BS_RISK_SUBMIT_CONTENT>();
// if (info.Any() && info.Count() > 0)
// {
// foreach (var item in info)
// {
// foreach (var itemQ in item.Nav_ListCheckDetailQuestion)
// {
// if (listQID.Contains(itemQ.Nav_Question.ID))
// {
// continue;
// }
// T_BS_RISK_SUBMIT_CONTENT model = new T_BS_RISK_SUBMIT_CONTENT();
// model.NAME = string.Empty;
// model.CODE = string.Empty;
// model.RISK_SUBMIT_ID = RISK_SUBMIT_ID;
// model.CHECK_MAIN_ID = item.CHECK_MAIN_ID;
// model.Nav_CheckMain = item.Nav_CheckMain;
// if (item.RISK_AREA_ID.HasValue && dicRiskUser.ContainsKey(item.RISK_AREA_ID.Value) && dicRiskUser[item.RISK_AREA_ID.Value] != null)
// {
// model.USER_ID = dicRiskUser[item.RISK_AREA_ID.Value].ID;
// model.DEPARTMENT_ID = dicRiskUser[item.RISK_AREA_ID.Value].DEPARTMENT_ID;
// model.Nav_User = dicRiskUser[item.RISK_AREA_ID.Value];
// model.Nav_Department = dicRiskUser[item.RISK_AREA_ID.Value].Nav_Department;
// }
// else
// {
// model.USER_ID = null;
// model.DEPARTMENT_ID = null;
// }
// model.Nav_SafeCheckDetail = item;
// model.CHECK_MAIN_ID = item.CHECK_MAIN_ID;
// model.SAFE_CHECK_ID = item.SAFE_CHECK_ID;
// model.CHECK_PROJECT_ID = item.CHECK_PROJECT_ID;
// //model.Nav_CheckProject = item.Nav_CheckProject;
// model.CHECK_PROJECT_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_PROJECT_CATEGORY_ID;
// //model.Nav_CheckProjectProjectCategory = item.Nav_CheckProjectProjectCategory;
// model.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID;//0927
// model.SERIOUS_RISK = item.SERIOUS_RISK;
// model.CHECKCONTENT = item.CHECKCONTENT;
// model.SAFE_CHECK_DETAIL_ID = model.Nav_SafeCheckDetail.ID;
// model.QUESTION_LEVEL = item.QUESTION_LEVEL.HasValue ? item.QUESTION_LEVEL.Value : item.Nav_CheckMain.QUESTION_LEVEL;//默认等级和原来一致
// model.QUESTION_LEVEL_SHOW = model.QUESTION_LEVEL > 0 ? ((BSQuestionLevelEnum)(model.QUESTION_LEVEL)).GetDescription() : "";//默认等级和原来一致
// model.RISK_AREA_ID = item.RISK_AREA_ID;
// //model.CHECK_QUESTION_ID = item.Nav_CheckMain.Nav_CheckQuestion.ID;
// if (item.CHECKRESULT.HasValue && item.CHECKRESULT == (int)CHECKRESULTEnum.Same)
// {
// model.Nav_SafeCheckDetail.REMARK_RESULT = itemQ.Nav_Question.DESCREPTION;
// model.Nav_Question = itemQ.Nav_Question;// item.Nav_CheckQuestion;
// model.DESCREPTION = itemQ.Nav_Question.DESCREPTION;// item.Nav_CheckQuestion.DESCREPTION;//取检查问题的 描述
// model.DEMAND = itemQ.Nav_Question.DEMAND;// item.Nav_CheckQuestion.DEMAND;
// model.CHECK_QUESTION_ID = itemQ.Nav_Question.ID;// item.Nav_CheckQuestion.ID;
// model.PROOF = item.CHECKPROOF;
// }
// else
// {
// model.Nav_SafeCheckDetail.REMARK_RESULT = item.REMARK_RESULT;
// model.DESCREPTION = item.REMARK_RESULT;//其他 取安全检查的 备注
// model.DEMAND = "";
// model.CHECK_QUESTION_ID = null;
// model.PROOF = null;
// }
// list.Add(model);
// }
// }
// }
// result.Data = list;
// });
//}
/// <summary>
/// 获取辨识区域 通知责任人和责任部门
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetRiskAreaMaster")]
public JsonActionResult<T_FM_USER> GetRiskAreaMaster([FromBody] KeywordFilter filter)
{
return SafeExecute<T_FM_USER>(() =>
{
if (string.IsNullOrEmpty(filter.Keyword))
{
return null;
}
var AreadID = new Guid(filter.Keyword);
var evaluateRisk = this.GetEntity<T_HM_EVALUATE_RISK>(e => e.STATUS == 0 && e.AREA_ID.HasValue && AreadID == e.AREA_ID.Value);
if (evaluateRisk == null)
{
return null;
}
var user = GetEntity<T_FM_USER>(e => e.DEPARTMENT_ID == evaluateRisk.DEPARTMENT_LIABLE_ID && e.APPROVE_ROLE_ID == evaluateRisk.POST_LIABLE_ID, new string[] { "Nav_Department" });
return user;
});
}
/// <summary>
/// 隐患上报 更新
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdateOld")]
public JsonActionResult<bool> FullUpdateOld([FromBody] T_BS_RISK_SUBMIT entity)
{
return SafeExecute<bool>(() =>
{
if (string.IsNullOrEmpty(entity.CODE))
{
entity.CODE = "YHSB" + DateTime.Now.ToString("yyyyMMddHHmm");
}
var files = entity.Nav_Files;
entity.Nav_Files = null;
//附件
List<T_BS_RISK_SUBMIT_CONTENT_FILE> listContentFile = new List<T_BS_RISK_SUBMIT_CONTENT_FILE>();
var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
entity.Nav_ListRiskSubmitContent = null;
if (listRiskSubminContentl == null || listRiskSubminContentl.Count < 1)
{
throw new Exception("隐患上报明细不能为空!");
}
#region
if (!entity.CHECK_ID.HasValue)
{
#region
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)
{
//手动上报
if (!entity.CHECK_TYPE_ID.HasValue)
{
throw new Exception("请选择检查类型!");
}
if (!entity.CHECK_TYPE_LEVEL_ID.HasValue)
{
throw new Exception("请选择检查层级!");
}
if (files == null)
{
throw new Exception("请上传附件,手动上报必须上传附件!");
}
for (int i = 0; i < listRiskSubminContentl.Count(); i++)
{
if (string.IsNullOrEmpty(listRiskSubminContentl[i].DESCREPTION))
{
throw new Exception("行【" + (i + 1) + "】检查问题不能为空!");
}
if (listRiskSubminContentl[i].QUESTION_LEVEL == 0)
{
throw new Exception("行【" + (i + 1) + "】问题等级不能为空!");
}
if (string.IsNullOrEmpty(listRiskSubminContentl[i].DEMAND))
{
throw new Exception("行【" + (i + 1) + "】整改建议与措施不能为空!");
}
//改版没了
//if (listRiskSubminContentl[i].Nav_ListRiskQuestionReason == null)
//{
// throw new Exception("行【" + (i + 1) + "】隐患原因不能为空!");
//}
if (string.IsNullOrEmpty(listRiskSubminContentl[i].ADDRESS))
{
throw new Exception("行【" + (i + 1) + "】隐患地点不能为空!");
}
//if (string.IsNullOrEmpty(listRiskSubminContentl[i].Nav_User.NAME))
if (listRiskSubminContentl[i].USER_ID == null || listRiskSubminContentl[i].USER_ID == Guid.Empty)
{
throw new Exception("行【" + (i + 1) + "】通知责任人不能为空!");
}
//if (string.IsNullOrEmpty(listRiskSubminContentl[i].Nav_Department.NAME))
if (listRiskSubminContentl[i].DEPARTMENT_ID == null || listRiskSubminContentl[i].DEPARTMENT_ID == Guid.Empty)
{
throw new Exception("行【" + (i + 1) + "】责任单位不能为空!");
}
}
}
entity.SUBMIT_TYPE = (int)SUBMIT_TYPE.User;
if (!entity.CHECKTIME.HasValue)
{
entity.CHECKTIME = DateTime.Now;
}
#endregion
}
else
{
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)
{
for (int i = 0; i < listRiskSubminContentl.Count(); i++)
{
if (listRiskSubminContentl[i].Nav_ListRiskQuestionReason == null)
{
throw new Exception("行【" + (i + 1) + "】隐患原因不能为空!");
}
if (string.IsNullOrEmpty(listRiskSubminContentl[i].ADDRESS))
{
throw new Exception("行【" + (i + 1) + "】隐患地点不能为空!");
}
if (listRiskSubminContentl[i].USER_ID == null || listRiskSubminContentl[i].USER_ID == Guid.Empty)
{
throw new Exception("行【" + (i + 1) + "】通知责任人不能为空!");
}
if (listRiskSubminContentl[i].DEPARTMENT_ID == null || listRiskSubminContentl[i].DEPARTMENT_ID == Guid.Empty)
{
throw new Exception("行【" + (i + 1) + "】责任单位不能为空!");
}
if (!listRiskSubminContentl[i].CHECK_QUESTION_ID.HasValue || string.IsNullOrEmpty(listRiskSubminContentl[i].DEMAND))
{
throw new Exception("行【" + (i + 1) + "】整改建议与措施不能为空!");
}
}
}
}
#endregion
//安全检查修改为隐患已上报
T_BS_SAFE_CHECK modelCheck = null;
if (entity.CHECK_ID.HasValue)
{
modelCheck = this.GetEntity<T_BS_SAFE_CHECK>(entity.CHECK_ID.Value, new string[] { "Nav_ListSafeCheckDetail" });
if (modelCheck != null)
modelCheck.RISKSTATE = (int)RISKSTATE.Reported;
}
List<T_BS_RISK_SUBMIT_CONTENT_REASON> listSubmitContentReason = new List<T_BS_RISK_SUBMIT_CONTENT_REASON>();
List<Guid> listApproveId = new List<Guid>();
List<Guid> listId = new List<Guid>();
List<string> listParam = new List<string>();
List<Guid> ListDepIDNone = new List<Guid>(); //责任部门ID
//通知表单
List<T_BS_RISK_SUBMIT_NOTICE> listSubmitNotice = new List<T_BS_RISK_SUBMIT_NOTICE>();
int rowIndex = 0;
if (listRiskSubminContentl.Any() && listRiskSubminContentl.Count > 0)
{
foreach (var item in listRiskSubminContentl)
{
rowIndex++;
if (item.DEPARTMENT_ID.HasValue)
{
ListDepIDNone.Add(item.DEPARTMENT_ID.Value);
}
else
{
ListDepIDNone.Add(Guid.Empty);
}
if (item.Nav_Files != null && item.Nav_Files.Any())
{
listContentFile.AddRange(item.Nav_Files);
}
//foreach (var itemCheckMain in modelCheck.Nav_ListSafeCheckDetail)
//{
// if (item.CHECK_MAIN_ID == itemCheckMain.CHECK_MAIN_ID && item.QUESTION_LEVEL == 0)
// {
// //不会进来
// item.QUESTION_LEVEL = itemCheckMain.QUESTION_LEVEL.HasValue ? itemCheckMain.QUESTION_LEVEL.Value : ((int)BSQuestionLevelEnum.D);
// }
//}
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)
{
if (!listParam.Contains(item.QUESTION_LEVEL.ToString()))
{
#region
T_BS_RISK_SUBMIT_NOTICE modelNotice = new T_BS_RISK_SUBMIT_NOTICE();
modelNotice.ID = Guid.NewGuid();
modelNotice.CODE = entity.CODE + "_" + (listParam.Count() + 1).ToString();
modelNotice.NAME = entity.NAME + ((BSQuestionLevelEnum)item.QUESTION_LEVEL).GetDescription();
modelNotice.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID.Value;
modelNotice.QUESTION_LEVEL = item.QUESTION_LEVEL;
modelNotice.NOTICETIME = DateTime.Now;
modelNotice.RiskContentState = (int)RiskContentState.Notice;
modelNotice.APPROVE_ID = Guid.NewGuid();
modelNotice.ORG_ID = item.ORG_ID;
#endregion
listSubmitNotice.Add(modelNotice);
item.APPROVE_ID = modelNotice.APPROVE_ID;
item.RISK_SUBMIT_NOTICE_ID = modelNotice.ID;
listId.Add(modelNotice.ID);
listParam.Add(modelNotice.QUESTION_LEVEL.ToString());
listApproveId.Add(modelNotice.APPROVE_ID.Value);
}
else
{
//有此隐患等级//查找对应等级的审核表信息
item.APPROVE_ID = listSubmitNotice.First(e => e.QUESTION_LEVEL == item.QUESTION_LEVEL).APPROVE_ID;
item.RISK_SUBMIT_NOTICE_ID = listSubmitNotice.First(e => e.QUESTION_LEVEL == item.QUESTION_LEVEL).ID;
}
}
if (item.Nav_ListRiskQuestionReason != null && item.Nav_ListRiskQuestionReason.Any())
{
foreach (var item2 in item.Nav_ListRiskQuestionReason)
{
item2.ORG_ID = entity.ORG_ID;
}
listSubmitContentReason.AddRange(item.Nav_ListRiskQuestionReason);
}
//如果 有问题ID
//问题等级 和 整改建议与措施 不能修改
if (item.Nav_SafeCheckDetail == null && item.SAFE_CHECK_DETAIL_ID != null)
{
item.Nav_SafeCheckDetail = GetEntity<T_BS_SAFE_CHECK_DETAIL>(e => e.ID == item.SAFE_CHECK_DETAIL_ID);
}
if (item.Nav_SafeCheckDetail != null && item.Nav_SafeCheckDetail.CHECKRESULT == (int)CHECKRESULTEnum.Same)
{
if (item.Nav_CheckMain == null && item.CHECK_MAIN_ID.HasValue)
{
item.Nav_CheckMain = GetEntity<T_BS_CHECK_MAIN>(e => e.ID == item.CHECK_MAIN_ID, new string[] { "Nav_CheckQuestion" });
}
if (item.Nav_CheckMain != null && item.Nav_CheckMain.Nav_CheckQuestion != null)
{
if (item.CHECK_QUESTION_ID != item.Nav_CheckMain.Nav_CheckQuestion.ID)
{
var checkMain = GetEntity<T_BS_CHECK_MAIN>(e => e.CHECK_QUESTION_ID == item.CHECK_QUESTION_ID && e.CHECK_PROJECT_ID == item.Nav_CheckMain.CHECK_PROJECT_ID && e.CHECK_PROJECT_CATEGORY_ID == item.Nav_CheckMain.CHECK_PROJECT_CATEGORY_ID && e.CHECK_PROJECT_CATEGORY_ID == item.Nav_CheckMain.CHECK_PROJECT_CATEGORY_ID && e.CHECKCONTENT == item.Nav_CheckMain.CHECKCONTENT);
if (checkMain == null)
{
//检查问题与描述一致 检查问题不能修改
throw new Exception("行号:【" + rowIndex.ToString() + "】的整改建议与措施【" + item.Nav_CheckMain.Nav_CheckQuestion.DEMAND + "】不能修改,操作失败!");
}
}
}
}
//if (item.CHECK_QUESTION_ID.HasValue)
//{
// if (item.Nav_Question == null)
// {
// item.Nav_Question = GetEntity<T_BS_CHECK_QUESTION>(item.CHECK_QUESTION_ID.Value);
// }
// if (item.DEMAND.Trim() != item.Nav_Question.DEMAND.Trim())
// {
// throw new Exception("行号:【" + rowIndex.ToString() + "】的整改建议与措施【" + item.Nav_Question.DEMAND + "】不能修改,操作失败!");
// }
//}
}
}
entity.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (entity.DEPARTMENT_ID == null)
{
entity.DEPARTMENT_ID = GetEntity<T_FM_USER>(entity.USER_ID.Value).DEPARTMENT_ID;
}
if (entity.TaskID != Guid.Empty && !entity.STARTTIME.HasValue)
{
var task = GetEntity<T_FM_NOTIFICATION_TASK>(entity.TaskID);
entity.STARTTIME = task.CREATE_TIME;
}
if (listContentFile.Count > 0)
{
foreach (var item in listContentFile)
{
item.Nav_ImgFile = null;
item.RISK_SUBMIT_ID = entity.ID;
}
}
if (entity.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp)
{
this.UnifiedCommit(() =>
{
if (entity != null)
UpdateEntityNoCommit(entity);
if (modelCheck != null)
UpdateEntityNoCommit(modelCheck);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (listContentFile != null && listContentFile.Any())
BantchSaveEntityNoCommit(listContentFile);
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())
BantchSaveEntityNoCommit(listRiskSubminContentl);
if (listSubmitContentReason.Any())
BantchSaveEntityNoCommit(listSubmitContentReason);
});
}
else
{
List<string> listSerialCode = new List<string>();
var index = entity.CODE.IndexOf(DateTime.Now.Year.ToString());
string yearMonth = string.Empty;
//if (index > 0)
//{
yearMonth = entity.CODE.Substring(index);
//}
//else
//{
yearMonth = DateTime.Now.ToString("yyyyMMddHHmmss");
//}
string code = "YHSB" + yearMonth;
listSerialCode.Add(code);
if (listParam.Count > 1)
{
for (int i = 1; i < listParam.Count; i++)
{
listSerialCode.Add(code + i.ToString());
}
}
//??????
////给通知责任人 发送通知
////通知责任人 确定 后 走审批流
MFlowPermitService.InsertApproveRisk(listSerialCode, "BS006", listId, "BS006_SHOWPRINT", entity.TaskID, true, () =>
{
if (entity != null)
UpdateEntityNoCommit(entity);
if (listSubmitNotice.Any())
BantchSaveEntityNoCommit(listSubmitNotice);
if (modelCheck != null)
UpdateEntityNoCommit(modelCheck);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (listContentFile != null && listContentFile.Any())
BantchSaveEntityNoCommit(listContentFile);
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())
BantchSaveEntityNoCommit(listRiskSubminContentl);
if (listSubmitContentReason.Any())
BantchSaveEntityNoCommit(listSubmitContentReason);
}, listParam, listApproveId, null, "BS006_VIEW", null, ListDepIDNone, FMTASKTYPE.BS_RiskUp_Audit);
}
return true;
});
}
/// <summary>
/// 数据删除
/// </summary>
/// <param name="id">过滤实体</param>
/// <returns></returns>
[HttpGet, Route("FullDelete")]
public JsonActionResult<bool> FullDelete(string id)
{
return SafeExecute<bool>(() =>
{
//删除审批流
//删除明细
//删除主表
//更新检查的状态
Guid submitID = new Guid(id);
string[] path = { "Nav_ListRiskSubmitContent", "Nav_ListRiskSubmitContent.Nav_ListRiskQuestionReason", "Nav_ListRiskSubmitContent.Nav_ApproveCheckAudit", "Nav_ListRiskSubmitContent.Nav_SubmitNoticePerson", "Nav_Files" };
T_BS_RISK_SUBMIT entity = GetEntity<T_BS_RISK_SUBMIT>(t => t.ID == submitID, false, path);
T_BS_SAFE_CHECK entityCheck = GetEntity<T_BS_SAFE_CHECK>(t => t.ID == entity.CHECK_ID, false, null);
if (entityCheck != null)
{
entityCheck.RISKSTATE = (int)RISKSTATE.NeedReport;
}
List<Guid> listSubmitContentID = new List<Guid>();
List<Guid> listApproveId = new List<Guid>();
List<Guid> listApproveDetailId = new List<Guid>();
List<Guid> filesIds = new List<Guid>();
List<Guid> listSubmitContentResionID = new List<Guid>();
List<Guid> listNoticeID = new List<Guid>();
List<Guid> listNoticePersonID = new List<Guid>();
if (entity.Nav_ListRiskSubmitContent != null && entity.Nav_ListRiskSubmitContent.Count > 0)
{
foreach (var item in entity.Nav_ListRiskSubmitContent)
{
if (item.Nav_ListRiskQuestionReason != null && item.Nav_ListRiskQuestionReason.Count > 0)
{
listNoticePersonID.AddRange(item.Nav_ListRiskQuestionReason.Select(e => e.ID));
}
}
}
foreach (var item in entity.Nav_ListRiskSubmitContent)
{
listSubmitContentID.Add(item.ID);
if (item.APPROVE_ID.HasValue)
{
listApproveId.Add(item.APPROVE_ID.Value);
}
if (item.Nav_ListRiskQuestionReason != null && item.Nav_ListRiskQuestionReason.Any())
{
listSubmitContentResionID.AddRange(item.Nav_ListRiskQuestionReason.Select(e => e.ID));
}
}
var listApproveDetail = this.GetEntities<T_PF_APPROVE_DETAIL>(t => listApproveId.Contains(t.APPROVE_ID), null, null);
if (listApproveDetail != null && listApproveDetail.Any())
{
listApproveDetailId = listApproveDetail.Select(e => e.ID).ToList();
}
if (entity.Nav_Files != null && entity.Nav_Files.Any())
{
var filesIdsList = entity.Nav_Files.Select(t => t.ID).ToList();
filesIds.AddRange(filesIdsList);
}
var listNotice = this.GetEntities<T_BS_RISK_SUBMIT_NOTICE>(t => t.RISK_SUBMIT_ID == entity.ID, null, null);
if (listNotice != null && listNotice.Any())
{
listNoticeID.AddRange(listNotice.Select(e => e.ID));
}
UnifiedCommit(() =>
{
if (filesIds.Any())
this.BantchDeleteEntityNoCommit<T_BS_RISK_SUBMIT_FILE>(filesIds);
if (listApproveDetailId.Count > 0)
this.BantchDeleteEntityNoCommit<T_PF_APPROVE_DETAIL>(listApproveDetailId);
if (listApproveId.Count > 0)
this.BantchDeleteEntityNoCommit<T_PF_APPROVE>(listApproveId);
if (listSubmitContentResionID.Count > 0)
this.BantchDeleteEntityNoCommit<T_BS_RISK_SUBMIT_CONTENT_REASON>(listSubmitContentResionID);
if (listSubmitContentID.Count > 0)
this.BantchDeleteEntityNoCommit<T_BS_RISK_SUBMIT_CONTENT>(listSubmitContentID);
if (listNoticePersonID.Count > 0)
this.BantchDeleteEntityNoCommit<T_BS_RISK_SUBMIT_NOTICE_PERSON>(listNoticePersonID);
if (listNoticeID.Count > 0)
this.BantchDeleteEntityNoCommit<T_BS_RISK_SUBMIT_NOTICE>(listNoticeID);
if (entity != null)
this.DeleteEntityNoCommit(entity);
if (entityCheck != null)
UpdateEntity(entityCheck);
});
return true;
});
}
#endregion
#region
/// <summary>
/// 隐患上报 审核通过 给每个通知负责人发送通知
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet, Route("Notice")]
public JsonActionResult<bool> Notice(string id)
{
return SafeExecute<bool>(() =>
{
return ApproveCallBackService.CallBack("BS/BSRiskSubmit/Notice", id);
});
}
/// <summary>
/// 获取部门和部门审批流负责人
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("GetDpartMentNameHeader")]
public PagedActionResult<T_FM_DEPARTMENT> GetDpartMentNameHeader([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData<T_FM_DEPARTMENT>((result) =>
{
Expression<Func<T_FM_DEPARTMENT, bool>> expression = e => !e.IS_DELETED && e.ORG_ID == pageFilter.OrgId;
List<T_FM_DEPARTMENT> listDepartment = this.GetEntities<T_FM_DEPARTMENT>(expression, pageFilter, new string[] { "Nav_User" }).ToList();
if (listDepartment != null && listDepartment.Count() > 0)
{
List<Guid> listDepID = listDepartment.Select(x => x.ID).ToList();
List<Guid> listRoleID = new List<Guid>();
List<T_PF_APPROVAL_ROLE> listRole = GetEntities<T_PF_APPROVAL_ROLE>(e => e.NAME.Contains("负责人"), null, null).ToList();
listRoleID = listRole.Select(e => e.ID).ToList();
if (listDepID.Count > 0 && listRoleID.Count > 0)
{
var listHeader = GetEntities<T_FM_USER>(e => listDepID.Contains(e.DEPARTMENT_ID.Value) && e.APPROVE_ROLE_ID.HasValue && listRoleID.Contains(e.APPROVE_ROLE_ID.Value), null, null);
T_FM_USER userTemp = null;
foreach (var item in listDepartment)
{
userTemp = listHeader.FirstOrDefault(x => x.DEPARTMENT_ID == item.ID);
if (userTemp != null)
item.Nav_User = userTemp;
}
}
}
result.TotalCount = listDepartment.Count;
result.Data = listDepartment;
});
}
/// <summary>
/// 获取 验收人
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("GetChcker")]
public PagedActionResult<T_FM_USER> GetChcker([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData<T_FM_USER>((result) =>
{
List<FilterRule> listRules = pageFilter.FilterGroup.Rules.ToList();
//验收人 发起部门 人员
Guid SubmitID = Guid.Empty;
foreach (var item in listRules)
{
if (item.Field == "RISK_SUBMIT_ID")
{
SubmitID = new Guid(item.Value.ToString());
}
}
Guid LoginUserID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
Guid LoginDEPARTMENT_ID = GetEntity<T_FM_USER>(LoginUserID).DEPARTMENT_ID.Value;
//T_BS_RISK_SUBMIT modelSubmit = null;
//if (SubmitID != Guid.Empty)
//{
// modelSubmit = GetEntity<T_BS_RISK_SUBMIT>(SubmitID);
//}
//if (modelSubmit.SUBMIT_TYPE == (int)SUBMIT_TYPE.Check && modelSubmit != null)
//{
// //检查上报
// //"点选(在发起部门内) 通知给验收进行签字"
//}
Expression<Func<T_FM_USER, bool>> expression = e => !e.IS_DELETED && e.ORG_ID == pageFilter.OrgId;
expression = expression.And(e => e.DEPARTMENT_ID == LoginDEPARTMENT_ID || (e.Nav_Department != null && e.Nav_Department.Nav_Parent.ID == LoginDEPARTMENT_ID) || (e.Nav_Department.Nav_Parent != null && e.Nav_Department.Nav_Parent.Nav_Parent.ID == LoginDEPARTMENT_ID));
List<T_FM_USER> listResult = new List<T_FM_USER>();
var info = this.GetEntities<T_FM_USER>(expression, pageFilter, new string[] { "Nav_Department.Nav_Parent.Nav_Parent" }).Distinct().OrderBy(e => e.NAME);
result.TotalCount = info.Count();
listResult = info.Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit).ToList();
result.Data = listResult;
});
}
/// <summary>
/// 通知保存
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdateNoticePerson")]
public JsonActionResult<bool> FullUpdateNoticePerson([FromBody] T_BS_RISK_SUBMIT_NOTICE_PERSON entity)
{
return SafeExecute<bool>(() =>
{
//判断每行数据 整改期限 不能大于 系统整改期限
//整改建议与措施不能未空
//整改责任人和 验收人 发送整改通知单
//每条明细 发送隐患整改记录单
////查找审批流(整改责任人和验收人合并一样发一个审批流 审批流结束给每个隐患明细发送待办
var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
entity.Nav_ListRiskSubmitContent = null;
if (listRiskSubminContentl == null || listRiskSubminContentl.Count < 1)
{
throw new Exception("隐患通知明细不能为空!");
}
if (listRiskSubminContentl[0].RiskContentState == (int)RiskContentState.ArrangeDeal)
{
throw new Exception("该整改信息已经设置过整改期限,并通知相关整改、验收人员,操作失败!");
}
if (entity.OPERATETYPE == OperateType.Temp)
{
//保存行信息
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//保存状态
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表
BantchSaveEntity(listRiskSubminContentl); //保存子表
});
}
else
{
//List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
List<Guid> ListNoticeAll = new List<Guid>();//整改责任人、验收人 去重
List<string> ListNoticeAllNAME = new List<string>();//整改责任人、验收人 去重
DateTime dtNow = DateTime.Now;
DateTime dtDeal = dtNow.AddMinutes(1);//控制时间 先看整体的通知 再看到处理单
string UserDealNAME = string.Empty;
//List<T_BS_RISK_SUBMIT_CONTENT_DEAL> listContentDeal = new List<T_BS_RISK_SUBMIT_CONTENT_DEAL>();
//T_BS_RISK_SUBMIT_CONTENT_DEAL dealTemp = null;
int CodeTemp = 1;
foreach (var item in listRiskSubminContentl)
{
if (!item.CHECK_MAIN_ID.HasValue)
{
if (!item.CHECK_PROJECT_ID.HasValue)
throw new Exception("请填写行【" + CodeTemp + "】检查项目!");
if (!item.CHECK_PROJECT_CATEGORY_ID.HasValue)
throw new Exception("请填写行【" + CodeTemp + "】检查项目分类!");
}
if (string.IsNullOrEmpty(item.DEMAND))
throw new Exception("请填写行【" + CodeTemp + "】整改建议与措施!");
if (item.LastDateUser == null)
throw new Exception("请填写行【" + CodeTemp + "】整改期限!");
if (item.DEAL_USER_ID == null)
throw new Exception("请填写行【" + CodeTemp + "】整改责任人!");
if (item.CHECK_USER_ID == null)
throw new Exception("请填写行【" + CodeTemp + "】验收人!");
if (item.LastDateUser > item.LastDateSystem)
throw new Exception("整改期限【" + item.LastDateUser + "】不能大于系统整改期限【" + item.LastDateSystem + "】!");
else if (item.LastDateUser < DateTime.Now.Date)
throw new Exception("整改期限【" + item.LastDateUser + "】不能小于当天!");
//数据处理
//item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人
//item.RiskContentState = (int)RiskContentState.ArrangeDeal;
if (item.DEAL_USER_ID.Value == item.CHECK_USER_ID.Value)
{
throw new Exception("行【" + CodeTemp + "】整改责任人和验收人不能同一个人!");
}
#region
//只给验收人发送通知 待验收人【通过】后才能给整改责任人 【确认】
//if (item.DEAL_USER_ID != null && !ListNoticeAll.Contains(item.DEAL_USER_ID.Value))
//{
// //整改责任人
// ListNoticeAll.Add(item.DEAL_USER_ID.Value);
// //数量少 每次获取 页面能选 这边就不会报错
// UserDealNAME = this.GetEntity<T_FM_USER>(item.DEAL_USER_ID.Value).NAME;
// ListNoticeAllNAME.Add(UserDealNAME);
//}
if (item.CHECK_USER_ID != null && !ListNoticeAll.Contains(item.CHECK_USER_ID.Value))
{
//验收人
ListNoticeAll.Add(item.CHECK_USER_ID.Value);
//数量少 每次获取 页面能选 这边就不会报错
ListNoticeAllNAME.Add(this.GetEntity<T_FM_USER>(item.CHECK_USER_ID.Value).NAME);
}
item.LastDateUser = item.LastDateUser.Value.Date.AddDays(1).AddSeconds(-1);
item.LastDateSystem = item.LastDateSystem.Value.Date.AddDays(1).AddSeconds(-1);
#endregion
//#region 隐患整改通知
//dealTemp = new T_BS_RISK_SUBMIT_CONTENT_DEAL();
//dealTemp.ID = Guid.NewGuid();
//dealTemp.ORG_ID = item.ORG_ID;
//dealTemp.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID;
//dealTemp.RISK_SUBMIT_NOTICE_ID = item.RISK_SUBMIT_NOTICE_ID;
//dealTemp.RISK_SUBMIT_NOTICE_PERSON_ID = item.RISK_SUBMIT_NOTICE_PERSON_ID;
//dealTemp.RISK_SUBMIT_CONTENT_ID = item.ID;
//dealTemp.CODE = item.CODE + "_" + CodeTemp;
//dealTemp.NAME = item.NAME.Replace("隐患整改通知:", "");
////dealTemp.ENDDATE = item.LastDateUser;//整改结束时间
//dealTemp.QUESTION_LEVEL = item.QUESTION_LEVEL;
//dealTemp.DEALSITUATION = (int)DealSituation.Notice;
//dealTemp.DEAL_USER_ID = item.DEAL_USER_ID;
//dealTemp.ACTUAL_DEAL_USER_ID = item.ACTUAL_DEAL_USER_ID;
//dealTemp.CHECK_USER_ID = item.CHECK_USER_ID;
//listContentDeal.Add(dealTemp);
//#endregion
//每个整改责任人 收到待办
//var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + dealTemp.NAME, dealTemp.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, UserDealNAME, dtDeal, item.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044");
//notice.CREATE_TIME = dtDeal;
//listNoticeDeal.Add(notice);
CodeTemp++;
}
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(entity.TaskID, ref task, "BS042_SHOWPRINT");
//查看整体的通知单
var listNotice = NotificationTaskService.InsertUserNoticeTaskModels(entity.NAME, entity.ID, entity.ORG_ID, ListNoticeAll, ListNoticeAllNAME, dtNow, dtNow.AddHours(24), (int)FMNoticeTypeEnum., "BS042_SHOWPRINT");//HM001_SHOWPRINT
listNotice.ForEach(item => item.CREATE_TIME = dtNow);
//保存隐患明细中指定信息
//给对应的人发送通知 可能多条明细(BS042ShowPrint)
//逐条给责任整改人发送整改记录待办(BS044)
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//保存状态
//if (listContentDeal.Count > 0)
// BantchSaveEntity(listContentDeal);//保存待整改明细
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表
BantchSaveEntity(listRiskSubminContentl); //保存子表
if (listNotice != null && listNotice.Any())//每个整改责任人和验收人 都收到这个整改安排
BantchSaveEntity<T_FM_NOTIFICATION_TASK>(listNotice);
//if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单
// BantchSaveEntity<T_FM_NOTIFICATION_TASK>(listNoticeDeal);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
}
return true;
});
}
#region
/// <summary>
/// 整改责任人、验收人 确定(给责任人 发送通知 驳回 (隐患通知责任人)发送通知 BS042
/// 原: 整改责任人、验收人 确定 后面确定 的人 添加 待办给 整改责任人(设置整改落实人)
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("UserCheckAndSend")]
public JsonActionResult<bool> UserCheckAndSend([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
Guid id = new Guid(filter.Keyword);
var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
var TaskID = new Guid(filter.Parameter1);
//var entity = GetEntity<T_BS_RISK_SUBMIT_NOTICE_PERSON>(id, new string[] { "Nav_ListRiskSubmitContent.Nav_UserDeal", "Nav_ListRiskSubmitContent.Nav_User" });
//var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
//if (listRiskSubminContentl != null && listRiskSubminContentl.Count() > 1)
//{
// listRiskSubminContentl = listRiskSubminContentl.FindAll(e => e.DEAL_USER_ID == LoginID);
// if (listRiskSubminContentl == null || !listRiskSubminContentl.Any())
// {
// throw new Exception("只有整改责任人才能验收!");
// }
//}
//else if (listRiskSubminContentl[0].DEAL_USER_ID != LoginID)
//{
// throw new Exception("只有整改责任人才能验收!");
//}
var entity = GetEntity<T_BS_RISK_SUBMIT_NOTICE_PERSON>(id, new string[] { "Nav_ListRiskSubmitContent.Nav_UserCheck" });//Nav_UserDeal
if (entity.Nav_ListRiskSubmitContent[0].DEAL_USER_ID != LoginID)//.CHECK_USER_ID
{
throw new Exception("只有整改责任人才能确认!");//只有整改责任人才能验收 验收人
}
if (filter.Parameter4 == "1")
{
entity.OPERATETYPE = OperateType.Save;
//审核人 同意
List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
//entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空
List<Guid> ListNoticeAll = new List<Guid>();
List<string> ListNoticeAllNAME = new List<string>();
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Deal, entity.ORG_ID.Value, DateTime.Now, null, null);
listRiskSubminContentl.ForEach(item =>
{
//item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人
item.RiskContentState = (int)RiskContentState.CheckerCheck;//CheckerCheck CheckerCheck
if (string.IsNullOrEmpty(filter.Parameter3))
{
item.CHECK_USER_REFUSED_REASON = filter.Parameter3;
}
else
{
item.CHECK_USER_REFUSED_REASON = null;
}
if (item.DEAL_USER_ID == LoginID)//CHECK_USER_ID
{
item.ISDEALUSERCHECK = true;//.ISCHECKERCHECK
}
else
{
throw new Exception("只有整改责任人才能确认!");
//throw new Exception("只有验收人才能验收!");
}
if (!ListNoticeAll.Contains(item.CHECK_USER_ID.Value))//DEAL_USER_ID
{
//整改责任人
ListNoticeAll.Add(item.CHECK_USER_ID.Value);//DEAL_USER_ID
//数量少 每次获取 页面能选 这边就不会报错
ListNoticeAllNAME.Add(item.Nav_UserCheck.NAME);//Nav_UserDeal
//给责任人 发送通知
listNoticeDeal = NotificationTaskService.InsertUserNoticeTaskModels("验收人确认:" + entity.NAME.Replace("隐患整改通知:", ""), entity.ID, entity.ORG_ID, ListNoticeAll, ListNoticeAllNAME, DateTime.Now, ((item.LastDateUser.HasValue && item.LastDateUser.Value < dtEnd) ? item.LastDateUser.Value : dtEnd), (int)FMNoticeTypeEnum., "BS042_SHOWPRINT");//HM001_SHOWPRINT "整改责任人确认:" + entity.NAME.Replace("隐患整改通知:", "")
}
});
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//保存状态
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表
BantchSaveEntity(listRiskSubminContentl); //保存子表
if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单
BantchSaveEntity(listNoticeDeal);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
#region ///
////同意
//List<T_BS_RISK_SUBMIT_CONTENT_DEAL> listContentDeal = new List<T_BS_RISK_SUBMIT_CONTENT_DEAL>();
//List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
//T_BS_RISK_SUBMIT_CONTENT_DEAL dealTemp = null;
//DateTime dtNow = DateTime.Now;
////entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空
//listRiskSubminContentl.ForEach(item =>
//{
// item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人
// if (item.DEAL_USER_ID == LoginID)
// {
// item.ISDEALUSERCHECK = true;
// }
// else if (item.CHECK_USER_ID == LoginID)
// {
// item.ISCHECKERCHECK = true;
// }
// if (item.ISDEALUSERCHECK && item.ISCHECKERCHECK)
// {
// item.RiskContentState = (int)RiskContentState.ArrangeDeal;
// }
//});
////整改责任人 和验收人 都确定后
//if (listRiskSubminContentl[0].RiskContentState == (int)RiskContentState.ArrangeDeal)
//{
// DateTime dtTsakEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_ActualDeal, entity.ORG_ID.Value, DateTime.Now, null, null);
// foreach (var item in listRiskSubminContentl)
// {
// //数据处理
// CodeTemp++;
// #region 隐患整改通知
// dealTemp = new T_BS_RISK_SUBMIT_CONTENT_DEAL();
// dealTemp.ID = Guid.NewGuid();
// dealTemp.ORG_ID = item.ORG_ID;
// dealTemp.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID;
// dealTemp.RISK_SUBMIT_NOTICE_ID = item.RISK_SUBMIT_NOTICE_ID;
// dealTemp.RISK_SUBMIT_NOTICE_PERSON_ID = item.RISK_SUBMIT_NOTICE_PERSON_ID;
// dealTemp.RISK_SUBMIT_CONTENT_ID = item.ID;
// dealTemp.CODE = item.CODE + "_" + CodeTemp;
// dealTemp.NAME = item.NAME.Replace("隐患整改通知:", "");
// //dealTemp.ENDDATE = item.LastDateUser;//整改结束时间
// dealTemp.QUESTION_LEVEL = item.QUESTION_LEVEL;
// dealTemp.DEALSITUATION = (int)DealSituation.Temp;
// dealTemp.DEAL_USER_ID = item.DEAL_USER_ID;
// dealTemp.ACTUAL_DEAL_USER_ID = item.ACTUAL_DEAL_USER_ID;
// dealTemp.CHECK_USER_ID = item.CHECK_USER_ID;
// listContentDeal.Add(dealTemp);
// #endregion
// ////每个整改责任人 收到待办
// //var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + dealTemp.NAME, dealTemp.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_User.NAME, dtNow, item.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044");
// //每个整改责任人 收到待办
// var notice = NotificationTaskService.InsertUserNoticeTaskModel("指定整改落实人:" + dealTemp.NAME, item.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_UserDeal.NAME, dtNow, (dtTsakEnd > item.LastDateUser.Value ? item.LastDateUser.Value : dtTsakEnd), (int)FMNoticeTypeEnum.消息, "BS049");
// notice.CREATE_TIME = dtNow;
// listNoticeDeal.Add(notice);
// }
//}
//T_FM_NOTIFICATION_TASK task = null;
//GetEntityTask(TaskID, ref task);
//this.UnifiedCommit(() =>
//{
// UpdateEntityNoCommit(entity);//保存状态
// if (listContentDeal.Count > 0)
// BantchSaveEntity(listContentDeal);//保存待整改明细
// if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表
// BantchSaveEntity(listRiskSubminContentl); //保存子表
// if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单
// BantchSaveEntity(listNoticeDeal);
// if (task != null)//代办消息 清除
// UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
//});
#endregion
}
else
{
//驳回
//给通知责任人 发送 待办 指定 整改责任人、验收人 BS042
if (string.IsNullOrEmpty(filter.Parameter3))
{
throw new Exception("请填写驳回意见!");
}
//var sysFilter = new SystemCodeFilter();
//sysFilter.CodeType = (int)PFCodeRuleType.消息通知;
//sysFilter.Count = 1;
//sysFilter.OrgId = entity.ORG_ID;
//var codes = CodeRuleService.NewGenSerial(sysFilter);
//var codeList = codes.Split(new char[] { ',' });
var content = GetEntity<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_NOTICE_PERSON_ID == entity.ID, "Nav_User");
content.DEAL_USER_REFUSED_REASON = filter.Parameter3;//回到验收人已确定上一个状态 (不需要 就是这个状态)//CHECK_USER_REFUSED_REASON
//var taskAdd = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, entity.ID, entity.ORG_ID, content.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS042"); //驳回 传入 隐患上报明细ID 否则不明确
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, entity.ORG_ID.Value, DateTime.Now, null, null);
//如果是手动隐患上报 应该是 BS061
var risk = GetEntity<T_BS_RISK_SUBMIT>(entity.RISK_SUBMIT_ID.Value, "Nav_User");
T_FM_NOTIFICATION_TASK taskAdd = null;
if (risk.SUBMIT_TYPE == (int)APT.MS.Domain.Enums.SUBMIT_TYPE.User)
{
taskAdd = NotificationTaskService.InsertUserNoticeTaskModel("信息完善", entity.RISK_SUBMIT_ID.Value, entity.ORG_ID, risk.USER_ID.Value, risk.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum., "BS061");
}
else
{
taskAdd = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, content.ID, entity.ORG_ID, content.USER_ID.Value, content.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum., "BS042");
}
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
this.UnifiedCommit(() =>
{
if (content != null)//填写验收人拒绝原因
UpdateEntityNoCommit(content);
if (taskAdd != null)//整改责任人 按条数 收到整改单
UpdateEntityNoCommit(taskAdd);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
#region ///
////驳回
//if (string.IsNullOrEmpty(filter.Parameter3))
//{
// throw new Exception("请填写驳回意见!");
//}
////整改责任人驳回
////验收人 已经审批过 整改责任人是自己 自己没审批过
//var listContent = entity.Nav_ListRiskSubmitContent.FindAll(e => e.DEAL_USER_ID == LoginID && !e.ISDEALUSERCHECK && e.ISCHECKERCHECK);
//List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
//T_FM_NOTIFICATION_TASK taskTemp = null;
//int countTh = 0;
//DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, filter.OrgId.Value, DateTime.Now, null, null);
//foreach (var item in listContent)
//{
// item.ISCHECKERCHECK = false;
// item.DEAL_USER_REFUSED_REASON = filter.Parameter3;
// item.CHECK_USER_REFUSED_REASON = null;
// item.RiskContentState = (int)RiskContentState.Notice;
// taskTemp = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, item.ID, entity.ORG_ID, item.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum.消息, "BS042");
// listNoticeDeal.Add(taskTemp);
// countTh++;
//}
//T_FM_NOTIFICATION_TASK task = null;
//GetEntityTask(TaskID, ref task);
//this.UnifiedCommit(() =>
//{
// if (listContent != null)//填写整改责任人拒绝原因
// BantchUpdateEntityNoCommit(listContent);
// if (listNoticeDeal.Count > 0)//发送通知 给通知责任人
// BantchSaveEntityNoCommit(listNoticeDeal);
// if (task != null)//代办消息 清除
// UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
//});
#endregion
}
return true;
});
}
/// <summary>
/// 验收人 确定/驳回 确定 整改责任人(设置整改落实人)
/// 原: 验收人 确定/驳回 确定(给责任人 发送通知 驳回 (隐患通知责任人)发送通知 BS042
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("CheckerCheck")]
public JsonActionResult<bool> CheckerCheck([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
//确定 / 驳回 确定(给责任人 BS042_SHOWPRINT 发送通知 驳回 (隐患通知责任人)发送通知 BS042
Guid id = new Guid(filter.Keyword);
DateTime dtNow = DateTime.Now;
var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
var TaskID = new Guid(filter.Parameter1);
var entity = GetEntity<T_BS_RISK_SUBMIT_NOTICE_PERSON>(id, new string[] { "Nav_ListRiskSubmitContent.Nav_UserDeal", "Nav_ListRiskSubmitContent.Nav_User" });
var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
if (listRiskSubminContentl != null && listRiskSubminContentl.Count() > 1)
{
listRiskSubminContentl = listRiskSubminContentl.FindAll(e => e.CHECK_USER_ID == LoginID);//DEAL_USER_ID
if (listRiskSubminContentl == null || !listRiskSubminContentl.Any())
{
throw new Exception("只有验收人才能验收!");
}
}
else if (listRiskSubminContentl[0].CHECK_USER_ID != LoginID)//DEAL_USER_ID
{
throw new Exception("只有验收人才能验收!");
}
if (filter.Parameter2 == "10")
{
int CodeTemp = 0;
//同意
List<T_BS_RISK_SUBMIT_CONTENT_DEAL> listContentDeal = new List<T_BS_RISK_SUBMIT_CONTENT_DEAL>();
List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
T_BS_RISK_SUBMIT_CONTENT_DEAL dealTemp = null;
//entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空
listRiskSubminContentl.ForEach(item =>
{
item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人
if (item.CHECK_USER_ID == LoginID)
{
item.ISCHECKERCHECK = true;
}
else if (item.DEAL_USER_ID == LoginID)
{
item.ISDEALUSERCHECK = true;
}
if (item.ISDEALUSERCHECK && item.ISCHECKERCHECK)
{
item.RiskContentState = (int)RiskContentState.ArrangeDeal;
}
});
//整改责任人 和验收人 都确定后
if (listRiskSubminContentl[0].RiskContentState == (int)RiskContentState.ArrangeDeal)
{
DateTime dtTsakEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_ActualDeal, entity.ORG_ID.Value, DateTime.Now, null, null);
foreach (var item in listRiskSubminContentl)
{
//数据处理
CodeTemp++;
#region
dealTemp = new T_BS_RISK_SUBMIT_CONTENT_DEAL();
dealTemp.ID = Guid.NewGuid();
dealTemp.ORG_ID = item.ORG_ID;
dealTemp.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID;
dealTemp.RISK_SUBMIT_NOTICE_ID = item.RISK_SUBMIT_NOTICE_ID;
dealTemp.RISK_SUBMIT_NOTICE_PERSON_ID = item.RISK_SUBMIT_NOTICE_PERSON_ID;
dealTemp.RISK_SUBMIT_CONTENT_ID = item.ID;
dealTemp.CODE = item.CODE + "_" + CodeTemp;
dealTemp.NAME = item.NAME.Replace("隐患整改通知:", "");
//dealTemp.ENDDATE = item.LastDateUser;//整改结束时间
dealTemp.QUESTION_LEVEL = item.QUESTION_LEVEL;
dealTemp.DEALSITUATION = (int)DealSituation.Temp;
dealTemp.DEAL_USER_ID = item.DEAL_USER_ID;
dealTemp.ACTUAL_DEAL_USER_ID = item.ACTUAL_DEAL_USER_ID;
dealTemp.CHECK_USER_ID = item.CHECK_USER_ID;
listContentDeal.Add(dealTemp);
#endregion
////每个整改责任人 收到待办
//var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + dealTemp.NAME, dealTemp.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_User.NAME, dtNow, item.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044");
//每个整改责任人 收到待办
var notice = NotificationTaskService.InsertUserNoticeTaskModel("指定整改落实人:" + dealTemp.NAME, item.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_UserDeal.NAME, dtNow, (dtTsakEnd > item.LastDateUser.Value ? item.LastDateUser.Value : dtTsakEnd), (int)FMNoticeTypeEnum., "BS049");
notice.CREATE_TIME = dtNow;
listNoticeDeal.Add(notice);
}
}
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//保存状态
if (listContentDeal.Count > 0)
BantchSaveEntity(listContentDeal);//保存待整改明细
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表
BantchSaveEntity(listRiskSubminContentl); //保存子表
if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单
BantchSaveEntity(listNoticeDeal);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
#region ///
//entity.OPERATETYPE = OperateType.Save;
////审核人 同意
//List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
//var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
////entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空
//List<Guid> ListNoticeAll = new List<Guid>();
//List<string> ListNoticeAllNAME = new List<string>();
//DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Deal, entity.ORG_ID.Value, DateTime.Now, null, null);
//listRiskSubminContentl.ForEach(item =>
//{
// //item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人
// item.RiskContentState = (int)RiskContentState.CheckerCheck;
// if (string.IsNullOrEmpty(filter.Parameter3))
// {
// item.CHECK_USER_REFUSED_REASON = filter.Parameter3;
// }
// else
// {
// item.CHECK_USER_REFUSED_REASON = null;
// }
// if (item.CHECK_USER_ID == LoginID)
// {
// item.ISCHECKERCHECK = true;
// }
// else
// {
// throw new Exception("只有验收人才能验收!");
// }
// if (!ListNoticeAll.Contains(item.DEAL_USER_ID.Value))
// {
// //整改责任人
// ListNoticeAll.Add(item.DEAL_USER_ID.Value);
// //数量少 每次获取 页面能选 这边就不会报错
// ListNoticeAllNAME.Add(item.Nav_UserDeal.NAME);
// //给责任人 发送通知
// listNoticeDeal = NotificationTaskService.InsertUserNoticeTaskModels("整改责任人确认:" + entity.NAME.Replace("隐患整改通知:", ""), entity.ID, entity.ORG_ID, ListNoticeAll, ListNoticeAllNAME, dtNow, ((item.LastDateUser.HasValue && item.LastDateUser.Value < dtEnd) ? item.LastDateUser.Value : dtEnd), (int)FMNoticeTypeEnum.消息, "BS042_SHOWPRINT");//HM001_SHOWPRINT
// }
//});
//T_FM_NOTIFICATION_TASK task = null;
//GetEntityTask(TaskID, ref task);
//this.UnifiedCommit(() =>
//{
// UpdateEntityNoCommit(entity);//保存状态
// if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表
// BantchSaveEntity(listRiskSubminContentl); //保存子表
// if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单
// BantchSaveEntity(listNoticeDeal);
// if (task != null)//代办消息 清除
// UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
//});
#endregion
}
else
{
//驳回
if (string.IsNullOrEmpty(filter.Parameter3))
{
throw new Exception("请填写驳回意见!");
}
//整改责任人驳回
//验收人 已经审批过 整改责任人是自己 自己没审批过
var listContent = entity.Nav_ListRiskSubmitContent.FindAll(e => e.CHECK_USER_ID == LoginID && e.ISDEALUSERCHECK && !e.ISCHECKERCHECK);//DEAL_USER_ID
List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
T_FM_NOTIFICATION_TASK taskTemp = null;
int countTh = 0;
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, filter.OrgId.Value, DateTime.Now, null, null);
Guid? UserID = null;
string UserName = string.Empty;
foreach (var item in listContent)
{
item.ISCHECKERCHECK = false;
item.CHECK_USER_REFUSED_REASON = filter.Parameter3;//DEAL_USER_REFUSED_REASON
item.CHECK_USER_REFUSED_REASON = null;
item.RiskContentState = (int)RiskContentState.Notice;
UserID = item.CREATER_ID.HasValue ? item.CREATER_ID.Value : item.DEAL_USER_ID.Value;
UserName = GetEntity<T_FM_USER>(UserID.Value)?.NAME;
//taskTemp = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, item.ID, entity.ORG_ID, item.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum.消息, "BS042");
taskTemp = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, item.ID, entity.ORG_ID, UserID.Value, UserName, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum., "BS042");// item.USER_ID.Value, entity.Nav_User.NAME
listNoticeDeal.Add(taskTemp);
countTh++;
}
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
this.UnifiedCommit(() =>
{
if (listContent != null)//填写整改责任人拒绝原因
BantchUpdateEntityNoCommit(listContent);
if (listNoticeDeal.Count > 0)//发送通知 给通知责任人
BantchSaveEntityNoCommit(listNoticeDeal);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
#region ///
////驳回
////给通知责任人 发送 待办 指定 整改责任人、验收人 BS042
//if (string.IsNullOrEmpty(filter.Parameter3))
//{
// throw new Exception("请填写驳回意见!");
//}
//var sysFilter = new SystemCodeFilter();
//sysFilter.CodeType = (int)PFCodeRuleType.消息通知;
//sysFilter.Count = 1;
//sysFilter.OrgId = entity.ORG_ID;
//var codes = CodeRuleService.NewGenSerial(sysFilter);
//var codeList = codes.Split(new char[] { ',' });
//var content = GetEntity<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_NOTICE_PERSON_ID == entity.ID, "Nav_User");
//content.CHECK_USER_REFUSED_REASON = filter.Parameter3;//回到验收人已确定上一个状态 (不需要 就是这个状态)
////var taskAdd = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, entity.ID, entity.ORG_ID, content.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS042"); //驳回 传入 隐患上报明细ID 否则不明确
//DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, entity.ORG_ID.Value, DateTime.Now, null, null);
//var taskAdd = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, content.ID, entity.ORG_ID, content.USER_ID.Value, content.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum.消息, "BS042");
//T_FM_NOTIFICATION_TASK task = null;
//GetEntityTask(TaskID, ref task);
//this.UnifiedCommit(() =>
//{
// if (content != null)//填写验收人拒绝原因
// UpdateEntityNoCommit(content);
// if (taskAdd != null)//整改责任人 按条数 收到整改单
// UpdateEntityNoCommit(taskAdd);
// if (task != null)//代办消息 清除
// UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
//});
#endregion
}
return true;
});
}
/// <summary>
/// 验收人 确定/驳回 确定(给责任人 发送通知 驳回 (隐患通知责任人)发送通知 BS042
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("CheckerCheckOld")]
public JsonActionResult<bool> CheckerCheckOld([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
//确定 / 驳回 确定(给责任人 BS042_SHOWPRINT 发送通知 驳回 (隐患通知责任人)发送通知 BS042
Guid id = new Guid(filter.Keyword);
DateTime dtNow = DateTime.Now;
var entity = GetEntity<T_BS_RISK_SUBMIT_NOTICE_PERSON>(id, new string[] { "Nav_ListRiskSubmitContent.Nav_UserDeal" });
var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (entity.Nav_ListRiskSubmitContent[0].CHECK_USER_ID != LoginID)
{
throw new Exception("只有验收人才能验收!");
}
var TaskID = new Guid(filter.Parameter1);
if (filter.Parameter2 == "10")
{
entity.OPERATETYPE = OperateType.Save;
//审核人 同意
List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
//entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空
List<Guid> ListNoticeAll = new List<Guid>();
List<string> ListNoticeAllNAME = new List<string>();
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Deal, entity.ORG_ID.Value, DateTime.Now, null, null);
listRiskSubminContentl.ForEach(item =>
{
//item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人
item.RiskContentState = (int)RiskContentState.CheckerCheck;
if (string.IsNullOrEmpty(filter.Parameter3))
{
item.CHECK_USER_REFUSED_REASON = filter.Parameter3;
}
else
{
item.CHECK_USER_REFUSED_REASON = null;
}
if (item.CHECK_USER_ID == LoginID)
{
item.ISCHECKERCHECK = true;
}
else
{
throw new Exception("只有验收人才能验收!");
}
if (!ListNoticeAll.Contains(item.DEAL_USER_ID.Value))
{
//整改责任人
ListNoticeAll.Add(item.DEAL_USER_ID.Value);
//数量少 每次获取 页面能选 这边就不会报错
ListNoticeAllNAME.Add(item.Nav_UserDeal.NAME);
//给责任人 发送通知
listNoticeDeal = NotificationTaskService.InsertUserNoticeTaskModels("整改责任人确认:" + entity.NAME.Replace("隐患整改通知:", ""), entity.ID, entity.ORG_ID, ListNoticeAll, ListNoticeAllNAME, dtNow, ((item.LastDateUser.HasValue && item.LastDateUser.Value < dtEnd) ? item.LastDateUser.Value : dtEnd), (int)FMNoticeTypeEnum., "BS042_SHOWPRINT");//HM001_SHOWPRINT
}
});
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//保存状态
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表
BantchSaveEntity(listRiskSubminContentl); //保存子表
if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单
BantchSaveEntity(listNoticeDeal);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
}
else
{
//驳回
//给通知责任人 发送 待办 指定 整改责任人、验收人 BS042
if (string.IsNullOrEmpty(filter.Parameter3))
{
throw new Exception("请填写驳回意见!");
}
var sysFilter = new SystemCodeFilter();
sysFilter.CodeType = (int)PFCodeRuleType.;
sysFilter.Count = 1;
sysFilter.OrgId = entity.ORG_ID;
var codes = CodeRuleService.NewGenSerial(sysFilter);
var codeList = codes.Split(new char[] { ',' });
var content = GetEntity<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_NOTICE_PERSON_ID == entity.ID, "Nav_User");
content.CHECK_USER_REFUSED_REASON = filter.Parameter3;//回到验收人已确定上一个状态 (不需要 就是这个状态)
//var taskAdd = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, entity.ID, entity.ORG_ID, content.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS042"); //驳回 传入 隐患上报明细ID 否则不明确
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, entity.ORG_ID.Value, DateTime.Now, null, null);
var taskAdd = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, content.ID, entity.ORG_ID, content.USER_ID.Value, content.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum., "BS042");
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
this.UnifiedCommit(() =>
{
if (content != null)//填写验收人拒绝原因
UpdateEntityNoCommit(content);
if (taskAdd != null)//整改责任人 按条数 收到整改单
UpdateEntityNoCommit(taskAdd);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
}
return true;
});
}
//BS/RiskSubmitNoticePerson/Get
/// <summary>
/// 整改责任人、验收人 确定 后面确定 的人 添加 待办给 整改责任人(设置整改落实人)
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("UserCheckAndSendOld")]
public JsonActionResult<bool> UserCheckAndSendOld([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
Guid id = new Guid(filter.Keyword);
var entity = GetEntity<T_BS_RISK_SUBMIT_NOTICE_PERSON>(id, new string[] { "Nav_ListRiskSubmitContent.Nav_UserDeal", "Nav_ListRiskSubmitContent.Nav_User" });
var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
if (listRiskSubminContentl != null && listRiskSubminContentl.Count() > 1)
{
listRiskSubminContentl = listRiskSubminContentl.FindAll(e => e.DEAL_USER_ID == LoginID);
if (listRiskSubminContentl == null || !listRiskSubminContentl.Any())
{
throw new Exception("只有整改责任人才能验收!");
}
}
else if (listRiskSubminContentl[0].DEAL_USER_ID != LoginID)
{
throw new Exception("只有整改责任人才能验收!");
}
var TaskID = new Guid(filter.Parameter1);
int CodeTemp = 0;
if (filter.Parameter4 == "1")
{
//同意
List<T_BS_RISK_SUBMIT_CONTENT_DEAL> listContentDeal = new List<T_BS_RISK_SUBMIT_CONTENT_DEAL>();
List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
T_BS_RISK_SUBMIT_CONTENT_DEAL dealTemp = null;
DateTime dtNow = DateTime.Now;
//entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空
listRiskSubminContentl.ForEach(item =>
{
item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人
if (item.DEAL_USER_ID == LoginID)
{
item.ISDEALUSERCHECK = true;
}
else if (item.CHECK_USER_ID == LoginID)
{
item.ISCHECKERCHECK = true;
}
if (item.ISDEALUSERCHECK && item.ISCHECKERCHECK)
{
item.RiskContentState = (int)RiskContentState.ArrangeDeal;
}
});
//整改责任人 和验收人 都确定后
if (listRiskSubminContentl[0].RiskContentState == (int)RiskContentState.ArrangeDeal)
{
DateTime dtTsakEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_ActualDeal, entity.ORG_ID.Value, DateTime.Now, null, null);
foreach (var item in listRiskSubminContentl)
{
//数据处理
CodeTemp++;
#region
dealTemp = new T_BS_RISK_SUBMIT_CONTENT_DEAL();
dealTemp.ID = Guid.NewGuid();
dealTemp.ORG_ID = item.ORG_ID;
dealTemp.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID;
dealTemp.RISK_SUBMIT_NOTICE_ID = item.RISK_SUBMIT_NOTICE_ID;
dealTemp.RISK_SUBMIT_NOTICE_PERSON_ID = item.RISK_SUBMIT_NOTICE_PERSON_ID;
dealTemp.RISK_SUBMIT_CONTENT_ID = item.ID;
dealTemp.CODE = item.CODE + "_" + CodeTemp;
dealTemp.NAME = item.NAME.Replace("隐患整改通知:", "");
//dealTemp.ENDDATE = item.LastDateUser;//整改结束时间
dealTemp.QUESTION_LEVEL = item.QUESTION_LEVEL;
dealTemp.DEALSITUATION = (int)DealSituation.Temp;
dealTemp.DEAL_USER_ID = item.DEAL_USER_ID;
dealTemp.ACTUAL_DEAL_USER_ID = item.ACTUAL_DEAL_USER_ID;
dealTemp.CHECK_USER_ID = item.CHECK_USER_ID;
listContentDeal.Add(dealTemp);
#endregion
////每个整改责任人 收到待办
//var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + dealTemp.NAME, dealTemp.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_User.NAME, dtNow, item.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044");
//每个整改责任人 收到待办
var notice = NotificationTaskService.InsertUserNoticeTaskModel("指定整改落实人:" + dealTemp.NAME, item.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_UserDeal.NAME, dtNow, (dtTsakEnd > item.LastDateUser.Value ? item.LastDateUser.Value : dtTsakEnd), (int)FMNoticeTypeEnum., "BS049");
notice.CREATE_TIME = dtNow;
listNoticeDeal.Add(notice);
}
}
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//保存状态
if (listContentDeal.Count > 0)
BantchSaveEntity(listContentDeal);//保存待整改明细
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表
BantchSaveEntity(listRiskSubminContentl); //保存子表
if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单
BantchSaveEntity(listNoticeDeal);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
}
else
{
//驳回
if (string.IsNullOrEmpty(filter.Parameter3))
{
throw new Exception("请填写驳回意见!");
}
//整改责任人驳回
//验收人 已经审批过 整改责任人是自己 自己没审批过
var listContent = entity.Nav_ListRiskSubmitContent.FindAll(e => e.DEAL_USER_ID == LoginID && !e.ISDEALUSERCHECK && e.ISCHECKERCHECK);
List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
T_FM_NOTIFICATION_TASK taskTemp = null;
int countTh = 0;
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, filter.OrgId.Value, DateTime.Now, null, null);
foreach (var item in listContent)
{
item.ISCHECKERCHECK = false;
item.DEAL_USER_REFUSED_REASON = filter.Parameter3;
item.CHECK_USER_REFUSED_REASON = null;
item.RiskContentState = (int)RiskContentState.Notice;
taskTemp = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, item.ID, entity.ORG_ID, item.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum., "BS042");
listNoticeDeal.Add(taskTemp);
countTh++;
}
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
this.UnifiedCommit(() =>
{
if (listContent != null)//填写整改责任人拒绝原因
BantchUpdateEntityNoCommit(listContent);
if (listNoticeDeal.Count > 0)//发送通知 给通知责任人
BantchSaveEntityNoCommit(listNoticeDeal);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
}
return true;
});
}
#endregion
///// <summary>
///// 验收人、整改责任人 验收
///// </summary>
///// <param name="filter"></param>
///// <returns></returns>
///// <exception cref="Exception"></exception>
//[HttpPost, Route("Check")]
//public JsonActionResult<bool> Check([FromBody] KeywordFilter filter)
//{
// //#endregion
// return SafeExecute<bool>(() =>
// {
// return true;
// });
//}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("GetNoticePerson")]
public JsonActionResult<T_BS_RISK_SUBMIT_NOTICE_PERSON> GetNoticePerson([FromBody] KeywordFilter filter)
{
return SafeExecute<T_BS_RISK_SUBMIT_NOTICE_PERSON>(() =>
{
List<FilterRule> filterRules = filter.FilterGroup.Rules.ToList();
var guid = new Guid(filterRules[0].Value.ToString());
var modelPersonNotice = GetEntity<T_BS_RISK_SUBMIT_NOTICE_PERSON>(e => e.ID == guid, filter);
if (modelPersonNotice == null)
{
var cont = GetEntity<T_BS_RISK_SUBMIT_CONTENT>(guid, new string[] { "Nav_SubmitNoticePerson", "Nav_DepartmentDeal", "Nav_UserDeal", "Nav_UserCheck", "Nav_Files.Nav_ImgFile" });
modelPersonNotice = cont.Nav_SubmitNoticePerson;
modelPersonNotice.Nav_ListRiskSubmitContent = new List<T_BS_RISK_SUBMIT_CONTENT>();
modelPersonNotice.Nav_ListRiskSubmitContent.Add(cont);
}
else
{
if (modelPersonNotice.Nav_ListRiskSubmitContent == null || !modelPersonNotice.Nav_ListRiskSubmitContent.Any())
{
List<string> listPath = new List<string>();
foreach (var item in filter.Include)
{
if (item.Contains("Nav_ListRiskSubmitContent."))
{
listPath.Add(item.Substring(26));
}
}
//手动添加安全检查的 隐患上报
var iListContent = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_ID == modelPersonNotice.RISK_SUBMIT_ID, null, listPath.ToArray());
if (iListContent != null && iListContent.Any())
{
modelPersonNotice.Nav_ListRiskSubmitContent = iListContent.ToList();
}
}
}
if (DataHelper.GetRequestType(Request.Headers) == 2 && modelPersonNotice.Nav_ListRiskSubmitContent != null && modelPersonNotice.Nav_ListRiskSubmitContent.Any())
{
foreach (var item in modelPersonNotice.Nav_ListRiskSubmitContent)
{
try
{
item.QUESTION_LEVEL_SHOW = ((BSQuestionLevelEnum)item.QUESTION_LEVEL).GetDescription();
}
catch { }
}
}
return modelPersonNotice;
});
}
/// <summary>
///整改责任人 修改整改落实人 给整改落实人 发送通知
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("UpdateActualDeal")]
public JsonActionResult<bool> UpdateActualDeal([FromBody] T_BS_RISK_SUBMIT_CONTENT entity)
{
return SafeExecute<bool>(() =>
{
if (APT.Infrastructure.Api.AppContext.CurrentSession.UserID != entity.DEAL_USER_ID)
{
throw new Exception("只有整改责任人才可以指定整改落实人!");
}
if (entity.ACTUAL_DEAL_USER_ID == entity.CHECK_USER_ID)
{
this.ThrowError("010001", "整改落实人和验收人不能是同一个人!");
}
var ListRiskQuestionReason = entity.Nav_ListRiskQuestionReason;
if (ListRiskQuestionReason != null && ListRiskQuestionReason.Any())
{
foreach (var item in ListRiskQuestionReason)
{
item.Nav_RiskReason = null;
}
}
if (entity.RiskContentState.Value == (int)RiskContentState.ActualDealChangeTemp)
{
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//保存信息 整改落实人
if (ListRiskQuestionReason != null && ListRiskQuestionReason.Any())
BantchSaveEntityNoCommit(ListRiskQuestionReason);
});
}
else if (entity.RiskContentState.Value == (int)RiskContentState.ActualDealChange)
{
//指定后 给整改落实人 发送通知
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(entity.TaskID, ref task, "BS049_SHOWPRINT");
if (entity.ACTUAL_DEAL_USER_ID == null)
{
throw new Exception("请填写整改落实人!");
}
if ((ListRiskQuestionReason == null || !ListRiskQuestionReason.Any()) && (DataHelper.GetRequestType(HttpContext.Request.Headers) != 2 || DateTime.Now.Month > 2))//PC都要判断非空 移动端 2月过后
{
throw new Exception("请选择隐患原因!");
}
var deal = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(e => e.RISK_SUBMIT_CONTENT_ID == entity.ID);
deal.ACTUAL_DEAL_USER_ID = entity.ACTUAL_DEAL_USER_ID;//整改落实人
List<T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE> listDealF = null;
if (entity.Nav_Files != null && entity.Nav_Files.Any())
{
listDealF = new List<T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE>();
foreach (var item in entity.Nav_Files)
{
listDealF.Add(new T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE()
{
ID = Guid.NewGuid(),
RISK_SUBMIT_CONTENT_DEAL_ID = deal.ID,
IMG_FILE_ID = item.IMG_FILE_ID,
IS_DELETED = false,
ORG_ID = item.ORG_ID,
ENTITY_ORG_TPYE = item.ENTITY_ORG_TPYE,
FLOW_STATUS = item.FLOW_STATUS,
FLOW_SEND_STATUS = item.FLOW_SEND_STATUS,
//FORM_ID
//FLOW_ID
//CREATE_TIME
//MODIFY_TIME
//CREATER_ID
//MODIFIER_ID
});
}
}
//var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改通知:" + entity.NAME.Replace("隐患整改通知:", ""), deal.ID, entity.ORG_ID, entity.ACTUAL_DEAL_USER_ID.Value, entity.Nav_UserActualDeal.NAME, DateTime.Now, entity.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044_NOTICE");
//隐患上报结束
entity.SUBMITFINISHTIME = DateTime.Now;
if (entity.SUBMITFINISHTIME <= entity.LastDateUser)
entity.ISSUBMITFINISHINTTIME = true;
else
entity.ISSUBMITFINISHINTTIME = false;
if (entity.ACTUAL_DEAL_USER_ID.Value != APT.Infrastructure.Api.AppContext.CurrentSession.UserID)
{
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_ActualDealNotice, entity.ORG_ID.Value, DateTime.Now, null, null);
var notice = NotificationTaskService.InsertUserNoticeTaskModel(entity.NAME, deal.RISK_SUBMIT_NOTICE_PERSON_ID.Value, entity.ORG_ID, entity.ACTUAL_DEAL_USER_ID.Value, entity.Nav_UserActualDeal.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum., "BS042_ACTUALCHECK");//BS042_SHOWPRINT
entity.RiskContentState = (int)RiskContentState.ActualDealChange;
this.UnifiedCommit(() =>
{
if (listDealF != null && listDealF.Any())
BantchSaveEntityNoCommit(listDealF);
UpdateEntityNoCommit(deal);
UpdateEntityNoCommit(entity);//保存信息 整改落实人
if (ListRiskQuestionReason != null && ListRiskQuestionReason.Any())
BantchSaveEntityNoCommit(ListRiskQuestionReason);
UpdateEntityNoCommit(notice);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
}
else
{
//指定自己
Guid LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
//var entityDeal = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(e => e.RISK_SUBMIT_NOTICE_PERSON_ID == deal.RISK_SUBMIT_NOTICE_PERSON_ID.Value && e.Nav_SubmitContent.ACTUAL_DEAL_USER_ID == LoginID, new string[] { "Nav_SubmitContent.Nav_UserActualDeal" });
//指定后 给整改落实人 发送通知
//T_FM_NOTIFICATION_TASK task = null;
//GetEntityTask(TaskID, ref task);
//var entity = entityDeal.Nav_SubmitContent;
entity.RiskContentState = (int)RiskContentState.ActualDealCheck;//落实整改人已经查阅整改通知
var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + entity.NAME.Replace("隐患整改通知:", ""), deal.ID, entity.ORG_ID, entity.ACTUAL_DEAL_USER_ID.Value, entity.Nav_UserActualDeal.NAME, DateTime.Now, entity.LastDateUser.Value, (int)FMNoticeTypeEnum., "BS044");
this.UnifiedCommit(() =>
{
if (listDealF != null && listDealF.Any())
BantchSaveEntityNoCommit(listDealF);
UpdateEntityNoCommit(deal);
UpdateEntityNoCommit(entity);//保存信息 整改落实人
if (ListRiskQuestionReason != null && ListRiskQuestionReason.Any())
BantchSaveEntityNoCommit(ListRiskQuestionReason);
UpdateEntityNoCommit(notice);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
}
}
else
{
throw new Exception("未找到此操作!");
}
return true;
});
}
/// <summary>
/// 整改落实人 确认整改通知单 系统发送整改单给整改落实人
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("UpdateActualDealRecord")]
public JsonActionResult<bool> UpdateActualDealRecord([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
Guid LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
var DataID = new Guid(filter.Keyword);
var TaskID = new Guid(filter.Parameter1);
//指定后 给整改落实人 发送通知
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
int riskContentState = (int)RiskContentState.ActualDealChange;
var entityDeal = GetEntities<T_BS_RISK_SUBMIT_CONTENT_DEAL>(e => e.RISK_SUBMIT_NOTICE_PERSON_ID == DataID && e.Nav_SubmitContent.ACTUAL_DEAL_USER_ID == LoginID && e.Nav_SubmitContent.RiskContentState == riskContentState, null, "Nav_SubmitContent");
List<T_FM_NOTIFICATION_TASK> listTask = new List<T_FM_NOTIFICATION_TASK>();
List<T_BS_RISK_SUBMIT_CONTENT> listContents = new List<T_BS_RISK_SUBMIT_CONTENT>();
IEnumerable<T_FM_USER> listUser = null;
if (entityDeal != null && entityDeal.Any())
{
var listUserID = entityDeal.Where(e => e.ACTUAL_DEAL_USER_ID.HasValue).Select(e => e.ACTUAL_DEAL_USER_ID.Value).Distinct();
if (listUserID != null && listUserID.Any())
{
listUser = GetEntities<T_FM_USER>(e => listUserID.Contains(e.ID), null);
}
}
DateTime? TASK_ENDDT = null;
if (task != null)
{
TASK_ENDDT = task.TASK_ENDDT;
}
List<T_BS_OPERATE_LOG> listLog = new List<T_BS_OPERATE_LOG>();
foreach (var item in entityDeal)
{
var entity = item.Nav_SubmitContent;
listContents.Add(entity);
entity.RiskContentState = (int)RiskContentState.ActualDealCheck;
listTask.Add(NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + entity.NAME.Replace("隐患整改通知:", ""), item.ID, entity.ORG_ID, entity.ACTUAL_DEAL_USER_ID.Value, listUser.FirstOrDefault(e => e.ID == entity.ACTUAL_DEAL_USER_ID.Value)?.NAME, DateTime.Now, item.Nav_SubmitContent.LastDateUser.Value, (int)FMNoticeTypeEnum., "BS044"));
listLog.AddRange(OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskNoticeActureCheck, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { entity.ACTUAL_DEAL_USER_ID.Value }, new List<string>() { listUser.FirstOrDefault(e => e.ID == entity.ACTUAL_DEAL_USER_ID.Value)?.NAME }, entity.ORG_ID, item.RISK_SUBMIT_CONTENT_ID, null, false, TASK_ENDDT));
}
this.UnifiedCommit(() =>
{
//UpdateEntityNoCommit(entity);//保存信息 整改落实人
if (listContents != null && listContents.Any())
BantchSaveEntityNoCommit(listContents);
if (listTask != null && listTask.Any())
BantchSaveEntityNoCommit(listTask);
if (listLog != null && listLog.Any())
BantchSaveEntityNoCommit(listLog);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
#region
//int riskContentState = (int)RiskContentState.ActualDealChange;
//var entityDeal = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(e => e.RISK_SUBMIT_NOTICE_PERSON_ID == DataID && e.Nav_SubmitContent.ACTUAL_DEAL_USER_ID == LoginID && e.Nav_SubmitContent.RiskContentState == riskContentState, new string[] { "Nav_SubmitContent.Nav_UserActualDeal" });
////指定后 给整改落实人 发送通知
//T_FM_NOTIFICATION_TASK task = null;
//GetEntityTask(TaskID, ref task);
//var entity = entityDeal.Nav_SubmitContent;
//entity.RiskContentState = (int)RiskContentState.ActualDealCheck;//落实整改人已经查阅整改通知
// //DateTime dtTaskEndTime = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_DealRisk, entity.ORG_ID.Value, DateTime.Now, null, entity.LastDateUser.Value);
//DateTime dtTaskEndTime = entity.LastDateUser.Value;//隐患整改 按 整改结束时间
//var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + entity.NAME.Replace("隐患整改通知:", ""), entityDeal.ID, entity.ORG_ID, entity.ACTUAL_DEAL_USER_ID.Value, entity.Nav_UserActualDeal.NAME, DateTime.Now, dtTaskEndTime, (int)FMNoticeTypeEnum.消息, "BS044");
//this.UnifiedCommit(() =>
//{
// UpdateEntityNoCommit(entity);//保存信息 整改落实人
// UpdateEntityNoCommit(notice);
// if (task != null)//代办消息 清除
// UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
//});
#endregion
return true;
});
}
/// <summary>
/// 隐患整改通知审批结束 流向隐患整改记录
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet, Route("Record")]
public JsonActionResult<bool> Record(string id)
{
return SafeExecute<bool>(() =>
{
return true;
});
}
#endregion
#region
/// <summary>
/// 更新或新增数据
/// </summary>
/// <param name="entity">对象实体</param>
/// <returns></returns>
[HttpPost, Route("UpdateDeal")]
public JsonActionResult<bool> UpdateDeal([FromBody] T_BS_RISK_SUBMIT_CONTENT_DEAL entity)
{
return SafeExecute<bool>(() =>
{
var files = entity.Nav_Files;
entity.Nav_Files = null;
var content = entity.Nav_SubmitContent;
bool isFilesBefoCanEmpty = false;
if (content == null)
{
content = GetEntity<T_BS_RISK_SUBMIT_CONTENT>(entity.RISK_SUBMIT_CONTENT_ID.Value, new string[] { "Nav_UserDeal" });
}
if (entity.OPERARTETYPE == (int)OperateType.Save && files == null || !files.Any())
{
//保存并发送 没有上传附件
var contentReasons = GetEntity<T_BS_RISK_SUBMIT_CONTENT_REASON>(e => e.RISK_SUBMIT_CONTENT_ID == entity.RISK_SUBMIT_CONTENT_ID.Value && e.Nav_RiskReason.NAME == "安全管理的缺陷");//, "Nav_RiskReason"
if (contentReasons != null)
{
isFilesBefoCanEmpty = true;
}
}
Guid LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
if (entity.OPERARTETYPE == (int)OperateType.Temp || entity.OPERARTETYPE == (int)OperateType.Save)
{
//只有保存 或者保存并发送了
//保存并发送 给验收人 发送审核 待办
#region
if (!content.ACTUAL_DEAL_USER_ID.HasValue)
{
throw new Exception("请先指定整改落实人后再操作!");
}
else if (content.ACTUAL_DEAL_USER_ID.Value != LoginID)
{
throw new Exception("只有整改落实人才有权限操整改记录单!");
}
var filesAfter = entity.Nav_FilesAfter;
entity.Nav_FilesAfter = null;
if (entity.OPERARTETYPE == (int)OperateType.Temp)
{
if (content.RiskContentState > (int)RiskContentState.DealTemp)
{
throw new Exception("该隐患已经进入之后流程【" + ((RiskContentState)content.RiskContentState).GetDescription() + "】,操作失败!");
}
content.RiskContentState = (int)RiskContentState.DealTemp;
entity.Nav_SubmitContent = null;
entity.DEALSITUATION = (int)DealSituation.Temp;
//保存草稿 保存页面数据
UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//修改整改落实人
UpdateEntityNoCommit(content);
if (files != null && files.Any())//检查前附件
BantchSaveEntityNoCommit(files);
if (filesAfter != null && filesAfter.Any())//检查后附件
BantchSaveEntityNoCommit(filesAfter);
});
}
else
{
entity.DEALSITUATION = (int)DealSituation.Notice;
//判断是否填写好
entity.DATETIME_ACTUAL_DEAL = DateTime.Now;//整改落实人签字
if (entity.ENDDATE == null)
{
throw new Exception("请填写【整改截止时间】!");
}
if (files == null || files.Count < 1)
{
if (!isFilesBefoCanEmpty)
{
throw new Exception("请上传【附件(整改前)】!");
}
}
if (filesAfter == null || filesAfter.Count < 1)
{
throw new Exception("请上传【附件(整改后)】!");
}
if (string.IsNullOrEmpty(entity.DEALDESCRIBE))
{
throw new Exception("请填写【整改情况描述】!");
}
//if (entity.ACTUAL_DEAL_USER_ID != content.ACTUAL_DEAL_USER_ID)
//{
// entity.ACTUAL_DEAL_USER_ID = content.ACTUAL_DEAL_USER_ID;
//}
//如果 操作者和整改责任人不一致 给整改责任人 添加待办
//如果 操作者和整改责任人一致 给验收人 添加待办
if (content.ACTUAL_DEAL_USER_ID != LoginID)
{
throw new Exception("只有【整改落实人】才能填写隐患整改单!");
}
//if (LoginID == entity.DEAL_USER_ID && entity.Nav_ListUserSign == null)
//{
// throw new Exception("请签名后再提交!");
//}
string UserName = string.Empty;
T_FM_NOTIFICATION_TASK notice = null;
if (content.RiskContentState == (int)RiskContentState.DealSend)
{
throw new Exception("该整改单已经在签字阶段,操作失败!");
}
content.RiskContentState = (int)RiskContentState.DealSend;
if (entity.Nav_UserCheck == null)
{
entity.Nav_UserCheck = this.GetEntity<T_FM_USER>(entity.CHECK_USER_ID.Value);
}
//给验收人发送通知 => 给整改责任人发送通知
//content.RiskContentState = (int)RiskContentState.DealSign;//整改责任人已经签名
//entity.ISDEALSIGN = true;
//notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改验收单:" + entity.NAME, entity.ID, entity.ORG_ID, entity.CHECK_USER_ID.Value, entity.Nav_UserCheck.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS044_CHECK");
string userDealName = string.Empty;
if (entity.Nav_UserDeal == null)
{
userDealName = GetEntity<T_FM_USER>(entity.DEAL_USER_ID.Value).NAME;
}
else
{
userDealName = entity.Nav_UserDeal.NAME;
}
entity.ISDEALSIGN = false;
DateTime dtEndTime = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Deal_Check, entity.ORG_ID.Value, DateTime.Now, null, content.LastDateUser);
notice = NotificationTaskService.InsertUserNoticeTaskModel("责任人确认整改:" + entity.NAME, entity.ID, entity.ORG_ID, entity.DEAL_USER_ID.Value, userDealName, DateTime.Now, dtEndTime, (int)FMNoticeTypeEnum., "BS044_CHECK");//隐患整改记录:
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(entity.TaskID, ref task, "BS044_SHOWPRINT");
DateTime? TASK_ENDDT = null;
if (task != null)
{
TASK_ENDDT = task.TASK_ENDDT;
}
var listLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskDeal, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { entity.DEAL_USER_ID.Value }, new List<string>() { userDealName }, entity.ORG_ID, entity.RISK_SUBMIT_CONTENT_ID, null, false, TASK_ENDDT);
//修改 model
UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//修改整改落实人
UpdateEntityNoCommit(content);//修改明细已签名字
if (notice != null)//发送待办
UpdateEntityNoCommit(notice);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
if (files != null && files.Any())//检查前附件
BantchSaveEntityNoCommit(files);
if (filesAfter != null && filesAfter.Any())//检查后附件
BantchSaveEntityNoCommit(filesAfter);
if (listLog != null && listLog.Any())//日志
BantchSaveEntityNoCommit(listLog);
//if (signDeal != null && signDeal.Any())//整改人签名
// BantchSaveEntityNoCommit(signDeal);
});
}
#endregion
}
return true;
});
}
#region
///// <summary>
///// 更新或新增数据
///// </summary>
///// <param name="entity">对象实体</param>
///// <returns></returns>
//[HttpPost, Route("UpdateDeal")]
//public JsonActionResult<bool> UpdateDeal([FromBody] T_BS_RISK_SUBMIT_CONTENT_DEAL entity)
//{
// return SafeExecute<bool>(() =>
// {
// var content = entity.Nav_SubmitContent;
// if (content == null)
// {
// content = GetEntity<T_BS_RISK_SUBMIT_CONTENT>(entity.RISK_SUBMIT_CONTENT_ID.Value);
// }
// Guid LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
// if (entity.OPERARTETYPE == (int)OperateType.Other1)
// {
// #region 整改责任人 能修改 整改落实人
// //整改责任人 能修改 整改落实人
// if (entity.DEAL_USER_ID == APT.Infrastructure.Api.AppContext.CurrentSession.UserID)
// {
// if (entity.DEALSITUATION == (int)DealSituation.OK)
// {
// throw new Exception("该整改记录已完成,不能修改整改落实人!");
// }
// if (!entity.ACTUAL_DEAL_USER_ID.HasValue)
// {
// throw new Exception("请选择整改落实人!");
// }
// if (entity.DEAL_USER_ID == entity.ACTUAL_DEAL_USER_ID)
// {
// throw new Exception("请选择新的整改落实人!");
// }
// //entity.Nav_UserActualDeal.NAME
// string UserActualDealNAME = this.GetEntity<T_FM_USER>(entity.ACTUAL_DEAL_USER_ID.Value).NAME;
// var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + entity.NAME, entity.ID, entity.ORG_ID, entity.ACTUAL_DEAL_USER_ID.Value, UserActualDealNAME, entity.CREATE_TIME.Value, content.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044");
// //如果 有待办 把待办去掉
// T_FM_NOTIFICATION_TASK task = null;
// GetEntityTask(entity.TaskID, ref task);
// //if (entity.TaskID != new Guid())
// //{
// // task = this.GetEntity<T_FM_NOTIFICATION_TASK>(entity.TaskID);
// // task.TASK_DT = DateTime.Now;
// // if (task.TASK_ENDDT >= task.TASK_DT)
// // task.NOTICE_STATUS = FMNoticeStatusEnum.正常已办.GetInt();
// // else
// // task.NOTICE_STATUS = FMNoticeStatusEnum.超期办理.GetInt();
// //}
// content.RiskContentState = (int)RiskContentState.ActualDealChange;
// //修改 model
// UnifiedCommit(() =>
// {
// UpdateEntityNoCommit(entity);//修改整改落实人
// UpdateEntityNoCommit(content);//修改上报明细状态 整改落实人修改
// UpdateEntityNoCommit<T_FM_NOTIFICATION_TASK>(notice);//给整改落实人发送待办
// if (task != null)//代办消息 清除
// UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
// });
// }
// else
// {
// throw new Exception("只有【整改责任人】才能修改【整改落实人】!");
// }
// #endregion
// }
// else if (entity.OPERARTETYPE == (int)OperateType.Temp || entity.OPERARTETYPE == (int)OperateType.Save)
// {
// //只有保存 或者保存并发送了
// //保存并发送 给验收人 发送审核 待办
// #region 保存 保存并通知
// if (!content.ACTUAL_DEAL_USER_ID.HasValue)
// {
// throw new Exception("请先指定整改落实人后再操作!");
// }
// else if (content.ACTUAL_DEAL_USER_ID.Value != LoginID)
// {
// throw new Exception("只有整改落实人才有权限操整改记录单!");
// }
// var files = entity.Nav_Files;
// entity.Nav_Files = null;
// var filesAfter = entity.Nav_FilesAfter;
// entity.Nav_FilesAfter = null;
// if (entity.OPERARTETYPE == (int)OperateType.Temp)
// {
// if (content.RiskContentState > (int)RiskContentState.DealTemp)
// {
// throw new Exception("该隐患已经进入之后流程【" + ((RiskContentState)content.RiskContentState).GetDescription() + "】,操作失败!");
// }
// content.RiskContentState = (int)RiskContentState.DealTemp;
// entity.Nav_SubmitContent = null;
// entity.DEALSITUATION = (int)DealSituation.Temp;
// //保存草稿 保存页面数据
// UnifiedCommit(() =>
// {
// UpdateEntityNoCommit(entity);//修改整改落实人
// UpdateEntityNoCommit(content);
// if (files != null && files.Any())//检查前附件
// BantchSaveEntityNoCommit(files);
// if (filesAfter != null && filesAfter.Any())//检查后附件
// BantchSaveEntityNoCommit(filesAfter);
// });
// }
// else
// {
// entity.DEALSITUATION = (int)DealSituation.Notice;
// //判断是否填写好
// if (entity.ENDDATE == null)
// {
// throw new Exception("请填写【整改截止时间】!");
// }
// if (files == null || files.Count < 1)
// {
// throw new Exception("请上传【附件(检查前)】!");
// }
// if (string.IsNullOrEmpty(entity.DEALDESCRIBE))
// {
// throw new Exception("请填写【整改情况描述】!");
// }
// if (filesAfter == null || filesAfter.Count < 1)
// {
// throw new Exception("请上传【附件(检查后)】!");
// }
// //if (entity.ACTUAL_DEAL_USER_ID != content.ACTUAL_DEAL_USER_ID)
// //{
// // entity.ACTUAL_DEAL_USER_ID = content.ACTUAL_DEAL_USER_ID;
// //}
// //如果 操作者和整改责任人不一致 给整改责任人 添加待办
// //如果 操作者和整改责任人一致 给验收人 添加待办
// if (content.ACTUAL_DEAL_USER_ID != LoginID)
// {
// throw new Exception("只有【整改落实人】才能填写隐患整改单!");
// }
// //if (LoginID == entity.DEAL_USER_ID && entity.Nav_ListUserSign == null)
// //{
// // throw new Exception("请签名后再提交!");
// //}
// string UserName = string.Empty;
// T_FM_NOTIFICATION_TASK notice = null;
// if (content.RiskContentState == (int)RiskContentState.DealSend)
// {
// throw new Exception("该整改单已经在签字阶段,操作失败!");
// }
// content.RiskContentState = (int)RiskContentState.DealSend;
// //if (LoginID == entity.DEAL_USER_ID)
// //{
// // //整改责任人 就是 落实整改人
// // //给验收人 发送待办
// // UserName = this.GetEntity<T_FM_USER>(entity.CHECK_USER_ID.Value).NAME;
// // notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改验收单" + ((!content.ISBACK.HasValue || (content.ISBACK.HasValue && !content.ISBACK.Value)) ? "" : "(返单)") + "" + entity.NAME, entity.ID, entity.ORG_ID, entity.CHECK_USER_ID.Value, UserName, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS044");
// // content.RiskContentState = (int)RiskContentState.DealSign;//整改责任人已经签名
// //}
// //else
// //{
// // //整改责任人 不是 落实整改人
// // //给整改责任人 发送待办
// // UserName = this.GetEntity<T_FM_USER>(entity.DEAL_USER_ID.Value).NAME;
// // notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改验收单" + ((!content.ISBACK.HasValue || (content.ISBACK.HasValue && !content.ISBACK.Value)) ? "" : "(返单)") + "" + entity.NAME, entity.ID, entity.ORG_ID, entity.DEAL_USER_ID.Value, UserName, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS044");
// //}
// if (entity.Nav_UserCheck == null)
// {
// entity.Nav_UserCheck = this.GetEntity<T_FM_USER>(entity.CHECK_USER_ID.Value);
// }
// //" + ((!content.ISBACK.HasValue || (content.ISBACK.HasValue && !content.ISBACK.Value)) ? "" : "(返单)") + "
// notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改验收单:" + entity.NAME, entity.ID, entity.ORG_ID, entity.CHECK_USER_ID.Value, entity.Nav_UserCheck.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS044_CHECK");
// content.RiskContentState = (int)RiskContentState.DealSign;//整改责任人已经签名
// T_FM_NOTIFICATION_TASK task = null;
// GetEntityTask(entity.TaskID, ref task);
// entity.ISDEALSIGN = true;
// //修改 model
// UnifiedCommit(() =>
// {
// UpdateEntityNoCommit(entity);//修改整改落实人
// UpdateEntityNoCommit(content);//修改明细已签名字
// if (notice != null)//发送待办
// UpdateEntityNoCommit(notice);
// if (task != null)//代办消息 清除
// UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
// if (files != null && files.Any())//检查前附件
// BantchSaveEntityNoCommit(files);
// if (filesAfter != null && filesAfter.Any())//检查后附件
// BantchSaveEntityNoCommit(filesAfter);
// //if (signDeal != null && signDeal.Any())//整改人签名
// // BantchSaveEntityNoCommit(signDeal);
// });
// }
// #endregion
// }
// else if (entity.OPERARTETYPE == (int)OperateType.Check)
// {
// //验收
// #region 验收
// if (entity.ACTUAL_DEAL_USER_ID != entity.DEAL_USER_ID && entity.DEAL_USER_ID == LoginID)
// {
// #region 整改责任人 与 整改落实人不一致 整改责任人 签名 给验收人发送待办
// if (content.RiskContentState == (int)RiskContentState.DealSign)
// {
// throw new Exception("该整改记录【整改责任人】已签名,操作失败!");
// }
// entity.ISDEALSIGN = true;
// //var signDeal = entity.Nav_ListUserSign;
// //entity.Nav_ListUserSign = null;
// //foreach (var item in signDeal)
// //{
// // item.ORG_ID = entity.ORG_ID;
// //}
// T_FM_USER modelUser = this.GetEntity<T_FM_USER>(entity.DEAL_USER_ID.Value, new string[] { "Nav_UserSignFiles.Nav_ImgFile" });
// //if (signDeal == null)
// //{
// // T_BS_RISK_SUBMIT_CONTENT_DEAL_USERSIGN modelSign = GetDign(entity.DEAL_USER_ID.Value, entity.ID, LoginID, entity.ORG_ID.Value, ref modelUser);
// // //T_BS_RISK_SUBMIT_CONTENT_DEAL_USERSIGN modelSign = new T_BS_RISK_SUBMIT_CONTENT_DEAL_USERSIGN();
// // //modelSign.ID = Guid.NewGuid();
// // //modelSign.SUBMIT_CONTENT_DEAL_ID = entity.ID;
// // //modelSign.SIGNTYPE = (int)SIGNTYPE.Deal;
// // //modelSign.SUSER_ID = LoginID;
// // //modelSign.IMG_FILE_ID = modelUser.Nav_UserSignFiles[0].Nav_ImgFile.ID.Nav_File;
// // //modelSign.ORG_ID = entity.ORG_ID;
// // signDeal.Add(modelSign);
// //}
// string UserName = modelUser.NAME;
// var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改验收单:" + entity.NAME, entity.ID, entity.ORG_ID, entity.CHECK_USER_ID.Value, UserName, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS044");
// T_FM_NOTIFICATION_TASK task = null;
// GetEntityTask(entity.TaskID, ref task);
// content.RiskContentState = (int)RiskContentState.DealSign;
// entity.Nav_SubmitContent = null;
// //修改 model
// UnifiedCommit(() =>
// {
// UpdateEntityNoCommit(entity);//修改整改落实人
// UpdateEntityNoCommit(content);//修改明细已签名字
// if (notice != null)//发送待办
// UpdateEntityNoCommit(notice);
// if (task != null)//代办消息 清除
// UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
// //if (signDeal != null && signDeal.Any())//整改人签名
// // BantchSaveEntityNoCommit(signDeal);
// });
// #endregion
// }
// else if (entity.CHECK_USER_ID == LoginID)
// {
// #region 验收人 验收 签名 完成情况 审批流/返回
// if (entity.DEALSITUATION == 10 || entity.DEALSITUATION == 30 || entity.DEALSITUATION == 40)
// {
// //if (entity.Nav_ListUserSign == null || entity.Nav_ListUserSign.Count < 1)
// //{
// // throw new Exception("请待整改责任人签名后再验收!");
// //}
// if (content.RiskContentState == (int)RiskContentState.CheckSign)
// {
// throw new Exception("该整改记录【验收人】已签名,操作失败!");
// }
// else if (content.RiskContentState != (int)RiskContentState.DealSign)
// {
// throw new Exception("该单处于" + ((RiskContentState)content.RiskContentState).GetDescription() + "阶段,验收人不能执行验收,操作失败!");
// }
// entity.ISCHECKSIGN = true;
// //var sign = entity.Nav_ListCheckUserSign;
// //entity.Nav_ListCheckUserSign = null;
// //if (sign == null || sign.Count < 1)
// //{
// // throw new Exception("请签名!");
// //}
// //foreach (var file in sign)
// //{
// // file.ORG_ID = entity.ORG_ID;
// //}
// if (entity.DEALSITUATION == (int)DealSituation.OK)
// {
// #region 验收通过
// //添加审批流
// string parms = string.Empty;
// if (entity.QUESTION_LEVEL == 10)
// {
// parms = "_" + entity.QUESTION_LEVEL.ToString() + "_";
// }
// else
// {
// parms = "_20_30_40_50_";
// }
// var sysFilter = new SystemCodeFilter();
// sysFilter.CodeType = (int)PFCodeRuleType.审批流编码;
// sysFilter.Count = 1;
// sysFilter.OrgId = entity.ORG_ID;
// var serialCode = CodeRuleService.NewGenSerial(sysFilter);
// entity.APPROVE_ID = Guid.NewGuid();
// entity.CHECK_USER_ID = LoginID;
// #region 检查上报 明细 状态更新 验收时间、 验收人
// //T_BS_RISK_SUBMIT_CONTENT modelContent = entity.Nav_SubmitContent;
// //if (modelContent == null)
// //{
// // modelContent = this.GetEntity<T_BS_RISK_SUBMIT_CONTENT>(entity.RISK_SUBMIT_CONTENT_ID.Value);
// //}
// //switch (entity.DEALSITUATION)
// //{
// // case 10:
// // content.RiskContentState = (int)RiskContentState.CheckNotOK;
// // break;
// // case 30:
// // content.RiskContentState = (int)RiskContentState.OKPart;
// // break;
// // case 40:
// // content.RiskContentState = (int)RiskContentState.OK;
// // break;
// // default:
// // break;
// //}
// //if (entity.ACTUAL_DEAL_USER_ID == entity.DEAL_USER_ID)
// //{
// // entity.CHCECKTIME = DateTime.Now;
// //}
// content.CHECKDATE = entity.CHCECKTIME;
// content.CHECK_USER_ID = entity.CHECK_USER_ID;
// content.RiskContentState = (int)RiskContentState.CheckSign;//验收人签名 审核完成后才能ok
// #endregion
// if (entity.Nav_Submit == null)
// {
// entity.Nav_Submit = this.GetEntity<T_BS_RISK_SUBMIT>(entity.RISK_SUBMIT_ID.Value);
// }
// //审批流
// MFlowPermitService.InsertApprove(serialCode, "BS043", parms, entity.ID, "BS044_SHOWPRINT", entity.TaskID, true, () =>
// {
// if (entity != null)
// UpdateEntityNoCommit(entity); //保存主表 NoCommit
// //BantchSaveEntityNoCommit(sign); //验收人签名
// UpdateEntityNoCommit(content);//上报明细 修改状态
// }, entity.APPROVE_ID, entity.Nav_Submit.CREATER_ID.Value);
// #endregion
// }
// else
// {
// //验收人验收未通过
// //给整改落实人 添加待办
// //
// #region 验收 未完成 完成部分
// if (string.IsNullOrEmpty(entity.DEALOPINION))
// {
// throw new Exception("请填写【" + ((DealSituation)entity.DEALSITUATION).GetDescription() + "】验收意见!");
// }
// T_BS_RISK_SUBMIT_CONTENT modelContentBack = new T_BS_RISK_SUBMIT_CONTENT();
// modelContentBack.ID = Guid.NewGuid();
// modelContentBack.ISBACK = true;
// modelContentBack.PARENTID = content.ID;
// modelContentBack.RISK_SUBMIT_ID = content.RISK_SUBMIT_ID;
// modelContentBack.CODE = content.CODE;
// modelContentBack.NAME = "(返)" + content.NAME;
// modelContentBack.CHECK_MAIN_ID = content.CHECK_MAIN_ID;
// modelContentBack.CHECK_QUESTION_ID = content.CHECK_QUESTION_ID;
// modelContentBack.ADDRESS = content.ADDRESS;
// modelContentBack.USER_ID = content.USER_ID;
// modelContentBack.DEPARTMENT_ID = content.DEPARTMENT_ID;
// modelContentBack.IS_DELETED = content.IS_DELETED;
// modelContentBack.ORG_ID = content.ORG_ID;
// modelContentBack.FORM_ID = content.FORM_ID;
// modelContentBack.ACTUAL_DEAL_USER_ID = content.ACTUAL_DEAL_USER_ID;
// modelContentBack.CHECK_USER_ID = content.CHECK_USER_ID;
// modelContentBack.DEALDATE = content.DEALDATE;
// modelContentBack.DEAL_DEPARTMENT_ID = content.DEAL_DEPARTMENT_ID;
// modelContentBack.DEAL_USER_ID = content.DEAL_USER_ID;
// modelContentBack.DEMAND = content.DEMAND;
// modelContentBack.LastDateSystem = content.LastDateSystem;
// modelContentBack.LastDateUser = content.LastDateUser;
// modelContentBack.NOTICEDATE = content.NOTICEDATE;
// modelContentBack.OKDATE = content.OKDATE;
// modelContentBack.QUESTION_LEVEL = content.QUESTION_LEVEL;
// modelContentBack.REPORTDATE = content.REPORTDATE;
// modelContentBack.RiskContentState = content.RiskContentState;
// modelContentBack.RISK_SUBMIT_NOTICE_PERSON_ID = content.RISK_SUBMIT_NOTICE_PERSON_ID;
// modelContentBack.SAFE_CHECK_DETAIL_ID = content.SAFE_CHECK_DETAIL_ID;
// modelContentBack.SAFE_CHECK_ID = content.SAFE_CHECK_ID;
// modelContentBack.RISK_SUBMIT_NOTICE_ID = content.RISK_SUBMIT_NOTICE_ID;
// modelContentBack.RiskContentState = (int)RiskContentState.ActualDealChange;//直接从修改 验收开始
// //modelBack.ENTITY_ORG_TPYE = content.ENTITY_ORG_TPYE;
// //modelBack.FLOW_STATUS = content.FLOW_STATUS;
// //modelBack.FLOW_SEND_STATUS = content.FLOW_SEND_STATUS;
// //modelBack.FLOW_ID = content.FLOW_ID;
// //modelBack.CREATE_TIME= content. ;
// //modelBack.MODIFY_TIME= content. ;
// //modelBack.CREATER_ID = content. ;
// //modelBack.MODIFIER_ID= content. ;
// //modelBack.CHECKDATE = content. ;
// //modelBack.APPROVE_ID = content. ;
// T_BS_RISK_SUBMIT_CONTENT_DEAL dealTemp = new T_BS_RISK_SUBMIT_CONTENT_DEAL();
// dealTemp.ID = Guid.NewGuid();
// dealTemp.ORG_ID = modelContentBack.ORG_ID;
// dealTemp.RISK_SUBMIT_ID = modelContentBack.RISK_SUBMIT_ID;
// dealTemp.RISK_SUBMIT_NOTICE_ID = modelContentBack.RISK_SUBMIT_NOTICE_ID;
// dealTemp.RISK_SUBMIT_NOTICE_PERSON_ID = modelContentBack.RISK_SUBMIT_NOTICE_PERSON_ID;
// dealTemp.RISK_SUBMIT_CONTENT_ID = modelContentBack.ID;
// dealTemp.CODE = modelContentBack.CODE;
// dealTemp.NAME = modelContentBack.NAME.Replace("隐患整改通知:", "");
// dealTemp.QUESTION_LEVEL = modelContentBack.QUESTION_LEVEL;
// dealTemp.DEALSITUATION = (int)DealSituation.Notice;
// dealTemp.DEAL_USER_ID = modelContentBack.DEAL_USER_ID;
// dealTemp.ACTUAL_DEAL_USER_ID = modelContentBack.ACTUAL_DEAL_USER_ID;
// dealTemp.CHECK_USER_ID = modelContentBack.CHECK_USER_ID;
// //添加处理单
// //处理明细
// //添加通知 (整改责任人 落实整改人)
// //添加待办 落实整改人
// string UserNameActure = GetEntity<T_FM_USER>(e => e.ID == modelContentBack.ACTUAL_DEAL_USER_ID.Value).NAME;
// var noticeActualDeal = NotificationTaskService.InsertUserNoticeTaskModel("隐患(返)整改单:" + modelContentBack.NAME.Replace("隐患整改通知:", ""), dealTemp.ID, entity.ORG_ID, modelContentBack.ACTUAL_DEAL_USER_ID.Value, UserNameActure, DateTime.Now, modelContentBack.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044");
// //给责任人 和落实人添加整改单
// string UserNameDeal = modelContentBack.DEAL_USER_ID == modelContentBack.ACTUAL_DEAL_USER_ID ? UserNameActure : GetEntity<T_FM_USER>(e => e.ID == modelContentBack.DEAL_USER_ID.Value).NAME;
// var noticeDeal = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改通知(返):" + entity.NAME, entity.ID, entity.ORG_ID, modelContentBack.DEAL_USER_ID.Value, UserNameDeal, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS042_SHOWPRINT");
// T_FM_NOTIFICATION_TASK noticeActual = null;
// //如果整改责任人和实际整改人不一致
// if (modelContentBack.DEAL_USER_ID != modelContentBack.ACTUAL_DEAL_USER_ID)
// {
// noticeActual = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改通知(返):" + entity.NAME, entity.ID, entity.ORG_ID, modelContentBack.ACTUAL_DEAL_USER_ID.Value, UserNameActure, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS042_SHOWPRINT");
// }
// T_FM_NOTIFICATION_TASK task = null;
// GetEntityTask(entity.TaskID, ref task);
// //验收未完成/完成部分
// //添加新的处理单 返修明细(之前复制 添加标识符)
// //发一个新单给落实整改人重新走流程 时间信息按之前的
// //附属单 登记前一单信息
// //放到后面
// ////modelBack.ID = content.ID;
// //验收未完成
// //实际整改人 整改责任人 发送通知 和给实际整改人发送待办
// //MFlowPermitService.InsertApprove(serialCode, "BS043", parms, entity.ID, "BS044_SHOWPRINT", entity.TaskID, true, () =>
// //{
// // if (entity != null)
// // UpdateEntityNoCommit(entity); //保存主表 NoCommit
// // BantchSaveEntityNoCommit(sign); //验收人签名
// // UpdateEntityNoCommit(modelContent);//上报明细 修改状态
// //}, entity.APPROVE_ID, entity.Nav_Submit.CREATER_ID.Value);
// content.RiskContentState = (int)RiskContentState.OKNotBack;
// this.UnifiedCommit(() =>
// {
// UpdateEntityNoCommit(entity);//审核信息 验收状态修改
// UpdateEntityNoCommit(content);//明细信息修改
// //BantchSaveEntityNoCommit(sign);//签名信息
// UpdateEntityNoCommit(modelContentBack);//新增明细
// UpdateEntityNoCommit(dealTemp);//新增明细单
// UpdateEntityNoCommit(noticeActualDeal);//整改单通知
// UpdateEntityNoCommit(noticeDeal);
// if (noticeActual != null)
// UpdateEntityNoCommit(noticeActual);
// if (task != null)//代办消息 清除
// UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
// });
// #endregion
// }
// }
// else
// {
// throw new Exception("请选择完成情况【未完成、部分完成、已完成】!");
// }
// #endregion
// }
// else
// {
// throw new Exception("您不是整改责任人或者验收人,操作失败!");
// }
// #endregion
// }
// return true;
// });
//}
#endregion
/// <summary>
/// 验收
///
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("CheckDeal")]
public JsonActionResult<bool> CheckDeal([FromBody] KeywordFilter filter)
{
//整改责任人验收 通过 给验收人 发送待办
//验收人验收 通过 发起审批流
//不通过 返给 整改落实人
//var sysFilter = new SystemCodeFilter();
//sysFilter.CodeType = (int)PFCodeRuleType.审批流编码;
//sysFilter.Count = 2;
//sysFilter.OrgId = filter.OrgId;
////var serialCode = CodeRuleService.NewGenSerial(sysFilter);
//List<string> listCode = CodeRuleService.NewGenSerial(sysFilter).Split(',').ToList();
return SafeExecute<bool>(() =>
{
int DEALSITUATION = 0;
try
{
DEALSITUATION = int.Parse(filter.Parameter2);
}
catch
{
throw new Exception("传参有误!");
}
if (DEALSITUATION != 10 && DEALSITUATION != 30 && DEALSITUATION != 40)
{
throw new Exception("请选择完成情况【未完成、部分完成、已完成】!");
}
if (string.IsNullOrEmpty(filter.Parameter3) && DEALSITUATION != 40)
{
throw new Exception("请填写【" + ((DealSituation)DEALSITUATION).GetDescription() + "】验收意见!");
}
var DataID = new Guid(filter.Keyword);
var TaskID = new Guid(filter.Parameter1);
var entity = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(DataID, new string[] { "Nav_SubmitContent.Nav_UserActualDeal", "Nav_SubmitContent.Nav_UserCheck", "Nav_Submit" });
//指定后 给整改落实人 发送通知
entity.DEALSITUATION = DEALSITUATION;
//entity.DEALOPINION = filter.Parameter3;
if (string.IsNullOrEmpty(entity.DEALOPINION))
{
entity.DEALOPINION = "同意";
}
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
var content = entity.Nav_SubmitContent;
//entity.Nav_SubmitContent = null;//不能加否则 做保存的时候 Nav_SubmitContent 对应的外键ID 会变成null
var loginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (content.RiskContentState == (int)RiskContentState.DealSend)//整改责任人 驳回
{
entity.DEALOPINION = filter.Parameter3;
if (content.DEAL_USER_ID != loginID)
{
throw new Exception("只有整改责任人才能验收!");
}
//if (content.ISDEALUSERCHECK) //不需要 ISCHECKERCHECK 制表就确认了 在此根据状态判断
//{
// throw new Exception("改整改记录整改责任人已验收,操作失败!");
//}
}
else if (content.RiskContentState == (int)RiskContentState.DealSign)//验收人 驳回
{
entity.CHECKOPINION = filter.Parameter3;
if (content.CHECK_USER_ID != loginID)
{
throw new Exception("只有验收人才能验收!");
}
//不需要 ISCHECKERCHECK 制表就确认了 在此根据状态判断
//if (content.ISCHECKERCHECK)
//{
// throw new Exception("改整改记录验收人已验收,操作失败!");
//}
}
DateTime? TASK_ENDDT = null;
if (task != null)
TASK_ENDDT = task.TASK_ENDDT;
if (entity.DEALSITUATION == (int)DealSituation.OK)
{
//通过
if (content.RiskContentState == (int)RiskContentState.DealSend)//整改落实人 提交整改记录 整改责任人 验收
{
#region
content.RiskContentState = (int)RiskContentState.DealSign;//整改责任人已经签名
entity.ISDEALSIGN = true;
entity.DATETIME_DEALSIGN = DateTime.Now;
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Checker_Check, entity.ORG_ID.Value, DateTime.Now, null, content.LastDateUser);
var notice = NotificationTaskService.InsertUserNoticeTaskModel("验收人确认整改:" + entity.NAME, entity.ID, entity.ORG_ID, entity.CHECK_USER_ID.Value, entity.Nav_UserCheck.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum., "BS044_CHECK");//隐患整改验收单
var listLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskDealDealCheck, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { entity.CHECK_USER_ID.Value }, new List<string>() { entity.Nav_UserCheck.NAME }, entity.ORG_ID, content.ID, null, false, TASK_ENDDT);
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//审核信息 验收状态修改 审批意见 完成情况
UpdateEntityNoCommit(content);//明细信息修改
UpdateEntityNoCommit(notice);//给验收人发送整改单通知
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
if (listLog != null && listLog.Any())
BantchSaveEntityNoCommit(listLog);
});
#endregion
}
else if (content.RiskContentState == (int)RiskContentState.DealSign)//整改责任人 已验收 验收人验收
{
#region
entity.ISCHECKSIGN = true;
entity.DATETIME_CHECKSIGN = DateTime.Now;
entity.CHCECKTIME = DateTime.Now;
content.CHECKDATE = DateTime.Now;//验收时间
entity.ENDDATE = DateTime.Now;
//添加审批流
string parms = string.Empty;
if (entity.QUESTION_LEVEL == 10)
{
parms = "_" + entity.QUESTION_LEVEL.ToString() + "_";
}
else
{
parms = "_20_30_40_50_";
}
entity.APPROVE_ID = Guid.NewGuid();
#region
content.CHECKDATE = entity.CHCECKTIME;
//content.CHECK_USER_ID = entity.CHECK_USER_ID;
content.RiskContentState = (int)RiskContentState.CheckSign;//验收人签名 审核完成后才能ok
#endregion
if (entity.Nav_Submit == null)
{
entity.Nav_Submit = this.GetEntity<T_BS_RISK_SUBMIT>(entity.RISK_SUBMIT_ID.Value);
}
var code = DateTime.Now.ToString("yyyyMMddHHmm");
List<string> listCode = new List<string>() { code + "1", code + "2" };
Guid approveUserId = entity.Nav_Submit.CREATER_ID.Value;
//审批流
if (entity.Nav_Submit.SUBMIT_TYPE != 10)
{
//如果非检查上报 按责任人 找审批流
approveUserId = entity.DEAL_USER_ID.Value;
}
MFlowPermitService.InsertApprove(listCode[0], "BS043", parms, entity.ID, "BS044_SHOWPRINT", TaskID, true, () =>
{
if (entity != null)
UpdateEntityNoCommit(entity); //保存主表 NoCommit
//BantchSaveEntityNoCommit(sign); //验收人签名
UpdateEntityNoCommit(content);//上报明细 修改状态
}, entity.APPROVE_ID, approveUserId, null, null, listCode[1], "", null, "", FMTASKTYPE.BS_RiskUp_DealAudit, null, null, (int)OPERATEPOINT_Enums.RiskDealCheckerCheck, content.RISK_SUBMIT_ID, content.ID);
#endregion
}
else
{
throw new Exception("整改记录状态为【" + ((RiskContentState)content.RiskContentState).GetDescription() + "】操作失败!");
}
}
else
{
#region //整改责任人 驳回 附件整改后 移到整改前
var listFilesAfter = GetEntities<T_BS_RISK_SUBMIT_CONTENT_DEAL_AFTER_FILE>(e => e.RISK_SUBMIT_CONTENT_DEAL_ID == entity.ID, null, null);
List<Guid> ids = listFilesAfter.Select(e => e.ID).ToList();
List<T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE> listFiles = new List<T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE>();
if (listFilesAfter != null && listFilesAfter.Any())
{
foreach (var item in listFilesAfter)
{
listFiles.Add(new T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE()
{
ID = item.ID,//ID不变 别的不变
ORG_ID = item.ORG_ID,
RISK_SUBMIT_CONTENT_DEAL_ID = item.RISK_SUBMIT_CONTENT_DEAL_ID,
IMG_FILE_ID = item.IMG_FILE_ID,
CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
CREATE_TIME = DateTime.Now
});
}
}
#endregion
#region
//entity.ISCHECKSIGN = true;
//entity.CHCECKTIME = DateTime.Now;
//content.CHECKDATE = DateTime.Now;//验收时间
entity.ISCHECKSIGN = false;
entity.ISDEALSIGN = false;
//添加处理单
//处理明细
//添加通知 (整改责任人 落实整改人)
//添加待办 落实整改人
var noticeActualDeal = NotificationTaskService.InsertUserNoticeTaskModel("【驳回】隐患整改单:" + content.NAME.Replace("隐患整改通知:", ""), entity.ID, entity.ORG_ID, content.ACTUAL_DEAL_USER_ID.Value, content.Nav_UserActualDeal.NAME, DateTime.Now, content.LastDateUser.Value, (int)FMNoticeTypeEnum., "BS044");//隐患(返)整改单:=>【驳回】隐患整改单:
//给责任人 和落实人添加整改单
content.RiskContentState = (int)RiskContentState.OKNotBack;
#region
List<T_BS_OPERATE_LOG> listLog = null;
if (APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue && APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value == content.DEAL_USER_ID)
{
listLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskDealDealCheckReject, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { content.ACTUAL_DEAL_USER_ID.Value }, new List<string>() { content.Nav_UserActualDeal.NAME }, entity.ORG_ID, entity.RISK_SUBMIT_CONTENT_ID, null, false, content.LastDateUser.Value);
}
else
{
listLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskDealCheckerCheckReject, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { content.ACTUAL_DEAL_USER_ID.Value }, new List<string>() { content.Nav_UserActualDeal.NAME }, entity.ORG_ID, entity.RISK_SUBMIT_CONTENT_ID, null, false, content.LastDateUser.Value);
}
#endregion
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//审核信息 验收状态修改 审批意见 完成情况
UpdateEntityNoCommit(content);//明细信息修改
UpdateEntityNoCommit(noticeActualDeal);//整改单通知
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
if (listFilesAfter != null && listFilesAfter.Any())
BantchDeleteEntityNoCommit<T_BS_RISK_SUBMIT_CONTENT_DEAL_AFTER_FILE>(ids);
if (listFiles != null && listFiles.Any())
BantchSaveEntityNoCommit(listFiles);
if (listLog != null && listLog.Any())
BantchSaveEntityNoCommit(listLog);
});
#endregion
}
return true;
});
}
#region
///// <summary>
///// 整改落实人 确认整改通知单 系统发送整改单给整改落实人
///// </summary>
///// <param name="filter"></param>
///// <returns></returns>
//[HttpPost, Route("CheckDeal")]
//public JsonActionResult<bool> CheckDeal([FromBody] KeywordFilter filter)
//{
// var sysFilter = new SystemCodeFilter();
// sysFilter.CodeType = (int)PFCodeRuleType.审批流编码;
// sysFilter.Count = 2;
// sysFilter.OrgId = filter.OrgId;
// //var serialCode = CodeRuleService.NewGenSerial(sysFilter);
// List<string> listCode = CodeRuleService.NewGenSerial(sysFilter).Split(',').ToList();
// return SafeExecute<bool>(() =>
// {
// int DEALSITUATION = 0;
// try
// {
// DEALSITUATION = int.Parse(filter.Parameter2);
// }
// catch
// {
// throw new Exception("传参有误!");
// }
// if (DEALSITUATION != 10 && DEALSITUATION != 30 && DEALSITUATION != 40)
// {
// throw new Exception("请选择完成情况【未完成、部分完成、已完成】!");
// }
// if (string.IsNullOrEmpty(filter.Parameter3) && DEALSITUATION != 40)
// {
// throw new Exception("请填写【" + ((DealSituation)DEALSITUATION).GetDescription() + "】验收意见!");
// }
// var DataID = new Guid(filter.Keyword);
// var TaskID = new Guid(filter.Parameter1);
// var entity = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(DataID, new string[] { "Nav_SubmitContent.Nav_UserActualDeal", "Nav_Submit" });
// //指定后 给整改落实人 发送通知
// entity.DEALSITUATION = DEALSITUATION;
// entity.DEALOPINION = filter.Parameter3;
// if (string.IsNullOrEmpty(entity.DEALOPINION))
// {
// entity.DEALOPINION = "同意";
// }
// T_FM_NOTIFICATION_TASK task = null;
// GetEntityTask(TaskID, ref task);
// var content = entity.Nav_SubmitContent;
// //entity.Nav_SubmitContent = null;//不能加否则 做保存的时候 Nav_SubmitContent 对应的外键ID 会变成null
// if (content.RiskContentState == (int)RiskContentState.CheckSign)
// {
// throw new Exception("该整改记录【验收人】已签名,操作失败!");
// }
// //else if (content.RiskContentState != (int)RiskContentState.DealSign)
// //{
// // throw new Exception("该单处于" + ((RiskContentState)content.RiskContentState).GetDescription() + "阶段,验收人不能执行验收,操作失败!");
// //}
// if (entity.DEALSITUATION == (int)DealSituation.OK)
// {
// entity.ISCHECKSIGN = true;
// entity.CHCECKTIME = DateTime.Now;
// content.CHECKDATE = DateTime.Now;//验收时间
// entity.ENDDATE = DateTime.Now;
// #region 验收通过
// //添加审批流
// string parms = string.Empty;
// if (entity.QUESTION_LEVEL == 10)
// {
// parms = "_" + entity.QUESTION_LEVEL.ToString() + "_";
// }
// else
// {
// parms = "_20_30_40_50_";
// }
// entity.APPROVE_ID = Guid.NewGuid();
// #region 检查上报 明细 状态更新 验收时间、 验收人
// content.CHECKDATE = entity.CHCECKTIME;
// //content.CHECK_USER_ID = entity.CHECK_USER_ID;
// content.RiskContentState = (int)RiskContentState.CheckSign;//验收人签名 审核完成后才能ok
// #endregion
// if (entity.Nav_Submit == null)
// {
// entity.Nav_Submit = this.GetEntity<T_BS_RISK_SUBMIT>(entity.RISK_SUBMIT_ID.Value);
// }
// //审批流
// MFlowPermitService.InsertApprove(listCode[0], "BS043", parms, entity.ID, "BS044_SHOWPRINT", TaskID, true, () =>
// {
// if (entity != null)
// UpdateEntityNoCommit(entity); //保存主表 NoCommit
// //BantchSaveEntityNoCommit(sign); //验收人签名
// UpdateEntityNoCommit(content);//上报明细 修改状态
// }, entity.APPROVE_ID, entity.Nav_Submit.CREATER_ID.Value, null, null, listCode[1]);
// #endregion
// }
// else
// {
// #region 验收未通过 直接驳回给 整改落实人
// //entity.ISCHECKSIGN = true;
// //entity.CHCECKTIME = DateTime.Now;
// //content.CHECKDATE = DateTime.Now;//验收时间
// //添加处理单
// //处理明细
// //添加通知 (整改责任人 落实整改人)
// //添加待办 落实整改人
// var noticeActualDeal = NotificationTaskService.InsertUserNoticeTaskModel("隐患(返)整改单:" + content.NAME.Replace("隐患整改通知:", ""), entity.ID, entity.ORG_ID, content.ACTUAL_DEAL_USER_ID.Value, content.Nav_UserActualDeal.NAME, DateTime.Now, content.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044");
// //给责任人 和落实人添加整改单
// content.RiskContentState = (int)RiskContentState.OKNotBack;
// this.UnifiedCommit(() =>
// {
// UpdateEntityNoCommit(entity);//审核信息 验收状态修改 审批意见 完成情况
// UpdateEntityNoCommit(content);//明细信息修改
// UpdateEntityNoCommit(noticeActualDeal);//整改单通知
// if (task != null)//代办消息 清除
// UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
// });
// #endregion
// }
// return true;
// });
//}
#endregion
/// <summary>
/// 获取签名
/// </summary>
/// <param name="USER_ID"></param>
/// <param name="DEAL_ID"></param>
/// <param name="LoginID"></param>
/// <param name="ORG_ID"></param>
/// <param name="modelUser"></param>
/// <returns></returns>
public T_BS_RISK_SUBMIT_CONTENT_DEAL_USERSIGN GetDign(Guid USER_ID, Guid DEAL_ID, Guid LoginID, Guid ORG_ID, ref T_FM_USER modelUser)
{
modelUser = this.GetEntity<T_FM_USER>(USER_ID, new string[] { "Nav_UserSignFiles.Nav_ImgFile" });
T_BS_RISK_SUBMIT_CONTENT_DEAL_USERSIGN modelSign = new T_BS_RISK_SUBMIT_CONTENT_DEAL_USERSIGN();
modelSign.ID = Guid.NewGuid();
modelSign.SUBMIT_CONTENT_DEAL_ID = DEAL_ID;
modelSign.SIGNTYPE = (int)SIGNTYPE.Deal;
modelSign.SUSER_ID = LoginID;
modelSign.IMG_FILE_ID = modelUser.Nav_UserSignFiles[0].Nav_ImgFile.Nav_File.ID;
modelSign.ORG_ID = ORG_ID;
return modelSign;
}
/// <summary>
/// 隐患上报 完成 修改各种状态 完善隐患库
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet, Route("DealEnd")]
public JsonActionResult<bool> DealEnd(string id)
{
return SafeExecute<bool>(() =>
{
return ApproveCallBackService.CallBack("BS/BSRiskSubmit/DealEnd", id);
});
}
///// <summary>
///// 隐患上报 完成 修改各种状态 完善隐患库
///// api/BS/BSRiskSubmit/DealEnd
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//[HttpGet, Route("DealEnd")]
//public JsonActionResult<bool> DealEnd(string id)
//{
// return SafeExecute<bool>(() =>
// {
// var deal = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(id, new string[] { "Nav_Submit.Nav_ListRiskSubmitContent", "Nav_SubmitContent.Nav_CheckMain.Nav_CheckQuestion", "Nav_SubmitContent.Nav_SafeCheckDetail" });
// deal.DEALSITUATION = (int)DealSituation.End;//结束
// T_BS_RISK_SUBMIT subModel = deal.Nav_Submit;
// List<T_BS_RISK_SUBMIT_CONTENT> listContent = subModel.Nav_ListRiskSubmitContent;
// //如果是手动上报 都是选择检查问题 不存在隐患入库
// var content = deal.Nav_SubmitContent;
// //deal.Nav_SubmitContent = null;//不能清空 否则RISK_SUBMIT_CONTENT_ID 会被清空
// var modelNoOK = listContent.FirstOrDefault(e => e.ID != content.ID && (!e.ISBACK.HasValue || !e.ISBACK.Value) && e.RiskContentState.HasValue && e.RiskContentState != (int)RiskContentState.OK && e.RiskContentState != (int)RiskContentState.BackOK);
// if (modelNoOK == null)
// {
// subModel.ISORDEREND = true;
// }
// content.OKDATE = DateTime.Now;
// content.RiskContentState = (int)RiskContentState.OK;
// List<T_BS_RISK_SUBMIT_CONTENT> listModelContent = null;
// List<T_BS_RISK_SUBMIT_CONTENT_DEAL> listModelContentDetail = null;
// if (content.ISBACK.HasValue && content.ISBACK.Value && content.PARENTID.HasValue)
// {
// listModelContent = new List<T_BS_RISK_SUBMIT_CONTENT>();
// GetConnects(content.PARENTID, ref listModelContent);
// }
// if (listModelContent != null && listModelContent.Count > 0)
// {
// List<Guid> listDetailID = listModelContent.Select(x => x.ID).ToList();
// listModelContentDetail = GetEntities<T_BS_RISK_SUBMIT_CONTENT_DEAL>(e => e.RISK_SUBMIT_CONTENT_ID.HasValue && listDetailID.Contains(e.RISK_SUBMIT_CONTENT_ID.Value), null, null).ToList();
// foreach (var item in listModelContent)
// {
// item.RiskContentState = (int)RiskContentState.BackOK;
// item.CHECKDATE = content.CHECKDATE;
// }
// foreach (var item in listModelContentDetail)
// {
// item.CHCECKTIME = content.CHECKDATE;
// item.DEALSITUATION = (int)DealSituation.End;
// }
// }
// var check = content.Nav_CheckMain;
// //根据隐患上报中检查结果
// //未发现此问题 无需隐患上报
// //以问题描述一致 无需完善隐患库
// //其他 手动填写 需要完善隐患库
// //书写 隐患待上报 内容 发送给安环部对应的人 标准化描述 再审批流 入库
// T_BS_RISK_SUBMIT_CONTENT_TEMP modelTemp = null;
// T_FM_NOTIFICATION_TASK notice = null;
// if (content.Nav_SafeCheckDetail == null || (content.Nav_SafeCheckDetail != null && content.Nav_SafeCheckDetail.CHECKRESULT != (int)CHECKRESULTEnum.Other))
// {
// //手动上报的 选择问题 不存在 隐患上报
// //安全检查 如果是 与问题描述一致 也不存在此问题
// }
// else
// {
// //安全检查 结果 其他 隐患上报 隐患入库
// modelTemp = new T_BS_RISK_SUBMIT_CONTENT_TEMP();
// modelTemp.CHECK_TYPE_ID = subModel.CHECK_TYPE_ID;
// modelTemp.CHECK_TYPE_LEVEL_ID = subModel.CHECK_TYPE_LEVEL_ID;
// modelTemp.CHECK_QUESTION_ID = content.CHECK_QUESTION_ID;//可能要修改 不一定有
// modelTemp.QUESTION_LEVEL = content.QUESTION_LEVEL;
// modelTemp.SERIOUS_RISK = (modelTemp.QUESTION_LEVEL == (int)BSQuestionLevelEnum.重大) ? 1 : 0;
// modelTemp.ISINSERT = false;
// modelTemp.ORG_ID = content.ORG_ID;
// modelTemp.CREATE_TIME = DateTime.Now;
// modelTemp.DEMAND = content.DEMAND;
// modelTemp.DESCREPTION = content.DESCREPTION;
// modelTemp.RISK_SUBMIT_ID = deal.RISK_SUBMIT_ID;
// modelTemp.RISK_SUBMIT_CONTENT_ID = deal.RISK_SUBMIT_CONTENT_ID;
// modelTemp.SAFE_CHECK_ID = content.SAFE_CHECK_ID.HasValue ? content.SAFE_CHECK_ID.Value : null;
// modelTemp.SAFE_CHECK_DETAIL_ID = content.SAFE_CHECK_DETAIL_ID.HasValue ? content.SAFE_CHECK_DETAIL_ID.Value : null;
// //if (check != null)
// //{
// modelTemp.CHECKOBJECT = check.CHECKOBJECT; //如果是 安全检查来的 检查对象就是 检查对应的 类型 否则取组织模糊匹配
// modelTemp.CHECK_PROJECT_ID = check.CHECK_PROJECT_ID;
// modelTemp.RISK_AREA_ID = check.RISK_AREA_ID;
// modelTemp.CHECKPROOF = check.CHECKPROOF;//可能要修改
// modelTemp.CHECKCONTENT = check.CHECKCONTENT;//可能要修改
// modelTemp.CHECK_PROJECT_PROJECT_CATEGORY_ID = check.CHECK_PROJECT_PROJECT_CATEGORY_ID;//非实际外键
// //}
// //else if (content.CHECK_QUESTION_ID != null)
// //{
// // //一定会有 CHECK_QUESTION_ID
// // var QuesMain = GetEntity<T_BS_CHECK_MAIN>(e => e.CHECK_QUESTION_ID == content.CHECK_QUESTION_ID);
// // modelTemp.CHECKOBJECT = QuesMain.CHECKOBJECT;
// // modelTemp.CHECK_PROJECT_ID = QuesMain.CHECK_PROJECT_ID;
// // modelTemp.RISK_AREA_ID = QuesMain.RISK_AREA_ID;
// // modelTemp.CHECKPROOF = QuesMain.CHECKPROOF;//可能要修改
// // modelTemp.CHECKCONTENT = QuesMain.CHECKCONTENT;//可能要修改
// // modelTemp.CHECK_PROJECT_PROJECT_CATEGORY_ID = QuesMain.CHECK_PROJECT_PROJECT_CATEGORY_ID;//非实际外键
// //}
// //else
// //{
// // //错误日志
// // SysLogService.AddLog(content.ORG_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, PFSysLogTypeEnum.RiskInsert, "PF119", "隐患整改完成审批入库数据异常",
// // "T_BS_RISK_SUBMIT_CONTENT_DEAL:ID【" + id + "】 Nav_CheckMain null CHECK_QUESTION_ID null", "隐患上报ID【" + subModel.ID.ToString() + "】");
// //}
// #region 找安环部负责人
// Guid UserID = Guid.Empty;
// string UserName = string.Empty;
// var approveRole = this.GetEntity<T_PF_APPROVAL_ROLE>(e => e.NAME.Contains("安环部负责人"));
// if (approveRole == null)
// {
// approveRole = this.GetEntity<T_PF_APPROVAL_ROLE>(e => e.NAME.Contains("安环部责任人"));
// }
// if (approveRole != null)
// {
// var user = GetEntity<T_FM_USER>(e => e.APPROVE_ROLE_ID.HasValue && e.APPROVE_ROLE_ID.Value == approveRole.ID);
// if (user != null)
// {
// UserID = user.ID;
// UserName = user.NAME;
// }
// }
// if (string.IsNullOrEmpty(UserName))
// {
// var deparments = GetEntity<T_FM_DEPARTMENT>(e => e.NAME.Contains("安环部") && e.Nav_User != null, null, new string[] { "Nav_User" });
// if (deparments != null)
// {
// UserID = deparments.Nav_User.ID;
// UserName = deparments.Nav_User.NAME;
// }
// }
// if (!string.IsNullOrEmpty(UserName))
// {
// modelTemp.USER_ID_EDIT = UserID;
// }
// #endregion
// if (!string.IsNullOrEmpty(UserName))
// {
// notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患待规范后入库" + DateTime.Now.ToString("yyyyMMdd"), modelTemp.ID, modelTemp.ORG_ID, UserID, UserName, DateTime.Now, DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.消息, "BS048");
// }
// }
// UnifiedCommit(() =>
// {
// UpdateEntityNoCommit(deal);//修改状态 审批结束
// if (subModel.ISORDEREND)//隐患上报单 是否完成
// UpdateEntityNoCommit(subModel);
// UpdateEntityNoCommit(content);//隐患上报内容明细
// if (modelTemp != null)
// UpdateEntityNoCommit(modelTemp);//完善隐患库
// if (notice != null)
// UpdateEntityNoCommit(notice);//完善隐患库通知
// if (listModelContent != null)//返单 如果有更新
// BantchUpdateEntity(listModelContent);
// if (listModelContentDetail != null)//返单 如果有更新
// BantchUpdateEntity(listModelContentDetail);
// });
// return true;
// });
//}
/// <summary>
/// 获取相关的上报(返修)明细
/// </summary>
/// <param name="PARENTID"></param>
/// <param name="listResult"></param>
private void GetConnects(Guid? PARENTID, ref List<T_BS_RISK_SUBMIT_CONTENT> listResult)
{
if (PARENTID != null)
{
T_BS_RISK_SUBMIT_CONTENT temp = GetEntity<T_BS_RISK_SUBMIT_CONTENT>(PARENTID.Value);
if (temp != null)
{
listResult.Add(temp);
GetConnects(temp.PARENTID, ref listResult);
}
}
}
#endregion
/// <summary>
///
/// </summary>
/// <param name="TaskID"></param>
/// <param name="task"></param>
/// <param name="SOURCE_FORMCODE">例BS042_SHOWPRINT</param>
public void GetEntityTask(Guid TaskID, ref T_FM_NOTIFICATION_TASK task, string SOURCE_FORMCODE = "")
{
if (TaskID != new Guid())
{
task = this.GetEntity<T_FM_NOTIFICATION_TASK>(TaskID);
task.TASK_DT = DateTime.Now;
if (!string.IsNullOrEmpty(SOURCE_FORMCODE))
{
task.SOURCE_FORMCODE = SOURCE_FORMCODE;
}
if (task.TASK_ENDDT >= task.TASK_DT)
task.NOTICE_STATUS = FMNoticeStatusEnum..GetInt();
else
task.NOTICE_STATUS = FMNoticeStatusEnum..GetInt();
}
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderPaged")]
public PagedActionResult<T_BS_RISK_SUBMIT> OrderPaged([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData(delegate (PagedActionResult<T_BS_RISK_SUBMIT> result)
{
//bool isAll = true;
//List<Guid> departmentIds = new List<Guid>() { APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value };
//DepartmentService.GetDepartmentIds(pageFilter.OrgId.Value, new List<Guid>() { APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value }, ref departmentIds, ref isAll);
Expression<Func<T_BS_RISK_SUBMIT, bool>> expression = e => !e.IS_DELETED;
//if (!isAll)
//{
// expression = expression.And(e => e.DEPARTMENT_ID.HasValue && departmentIds.Contains(e.DEPARTMENT_ID.Value));
//}
int parmType = 0;
if (!string.IsNullOrEmpty(pageFilter.MenuParameter) && pageFilter.MenuParameter.Contains("SUBMIT_TYPE"))
{
try
{
string iType = pageFilter.MenuParameter.Split("=")[1];
parmType = int.Parse(iType);
expression = expression.And(e => e.SUBMIT_TYPE == parmType);
}
catch { }
finally { }
}
pageFilter.MenuParameter = null;
//List<Guid> departmentIds = new List<Guid>() { APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value };
//DepartmentService.GetDepartmentIds(pageFilter.OrgId.Value, new List<Guid>() { APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value }, ref departmentIds);
//Expression<Func<T_BS_RISK_SUBMIT, bool>> expression = e => !e.IS_DELETED && e.DEPARTMENT_ID.HasValue && departmentIds.Contains(e.DEPARTMENT_ID.Value);
PagedActionResult<T_BS_RISK_SUBMIT> orderPageEntities = GetOrderPageEntities(expression, pageFilter, null);
if (orderPageEntities.TotalCount > 0)
{
var listCreateID = orderPageEntities.Data.Where(e => e.CREATER_ID.HasValue).Select(e => e.CREATER_ID.Value).Distinct();
if (listCreateID != null && listCreateID.Any())
{
var listUser = GetEntities<T_FM_USER>(e => listCreateID.Contains(e.ID), null, null);
foreach (var item in orderPageEntities.Data)
{
if (!item.CREATER_ID.HasValue)
continue;
item.CREATE_NAME = listUser.FirstOrDefault(e => e.ID == item.CREATER_ID.Value)?.NAME;
}
}
}
result.Data = orderPageEntities.Data;
result.TotalCount = orderPageEntities.TotalCount;
});
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("ContentOrderPaged")]
public PagedActionResult<T_BS_RISK_SUBMIT_CONTENT> ContentOrderPaged([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData(delegate (PagedActionResult<T_BS_RISK_SUBMIT_CONTENT> result)
{
List<Guid> departmentIds = new List<Guid>() { APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value };
DepartmentService.GetDepartmentIds(pageFilter.OrgId.Value, new List<Guid>() { APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value }, ref departmentIds);
var loginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
Expression<Func<T_BS_RISK_SUBMIT_CONTENT, bool>> expression = e => !e.IS_DELETED && e.DEPARTMENT_ID.HasValue && (e.USER_ID == loginID || e.DEAL_USER_ID == loginID || e.ACTUAL_DEAL_USER_ID == loginID || e.CHECK_USER_ID == loginID || departmentIds.Contains(e.DEPARTMENT_ID.Value));
PagedActionResult<T_BS_RISK_SUBMIT_CONTENT> orderPageEntities = GetOrderPageEntities(expression, pageFilter, null);
result.Data = orderPageEntities.Data;
result.TotalCount = orderPageEntities.TotalCount;
});
}
/// <summary>
/// 隐患整改记录
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("ContentDetailOrderPaged")]
public PagedActionResult<T_BS_RISK_SUBMIT_CONTENT_DEAL> ContentDetailOrderPaged([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData(delegate (PagedActionResult<T_BS_RISK_SUBMIT_CONTENT_DEAL> result)
{
//bool isAll = true;
//List<Guid> departmentIds = new List<Guid>() { APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value };
//DepartmentService.GetDepartmentIds(pageFilter.OrgId.Value, new List<Guid>() { APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value }, ref departmentIds, ref isAll);
//如果整改部门有搜索项 那么绕开组织结构数据权限 查找对应的数据 20250627
ICollection<FilterRule> rules = null;
Guid DepID = Guid.Empty;
if (pageFilter.FilterGroup != null && pageFilter.FilterGroup.Groups != null && pageFilter.FilterGroup.Groups.Any())
{
foreach (var item in pageFilter.FilterGroup.Groups)
{
if (item.Rules != null && item.Rules.Any())
{
rules = item.Rules;
foreach (var itemR in rules)
{
if (itemR.Field == "Nav_UserDeal.Nav_Department.ID")
{
try
{
DepID = new Guid(itemR.Value.ToString());
rules.Remove(itemR);
item.Rules = rules;
pageFilter.IgnoreDataRule = true;
break;
}
catch { }
}
}
}
if (DepID != Guid.Empty)
{
break;
}
}
}
var loginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
Expression<Func<T_BS_RISK_SUBMIT_CONTENT_DEAL, bool>> expression = e => !e.IS_DELETED && (e.DEAL_USER_ID == loginID || e.ACTUAL_DEAL_USER_ID == loginID || e.CHECK_USER_ID == loginID || (e.Nav_SubmitContent.DEPARTMENT_ID.HasValue));
if (DepID != Guid.Empty)
{
expression = expression.And(e => e.Nav_UserDeal.DEPARTMENT_ID.HasValue && e.Nav_UserDeal.DEPARTMENT_ID.Value == DepID);
}
//if (!isAll)
//{
// expression = expression.And(e => departmentIds.Contains(e.Nav_SubmitContent.DEPARTMENT_ID.Value));
//}
PagedActionResult<T_BS_RISK_SUBMIT_CONTENT_DEAL> orderPageEntities = GetOrderPageEntities(expression, pageFilter, null);
result.Data = orderPageEntities.Data;
result.TotalCount = orderPageEntities.TotalCount;
if (result.TotalCount > 0 && DataHelper.GetRequestType(Request.Headers) == 2)
{
result.Data.ForEach(e =>
{
if (e.DEALSITUATION > 0)
{
e.DEALSITUATION_SHOW = ((DealSituation)e.DEALSITUATION).GetDescription();
}
});
}
});
}
/// <summary>
/// 隐患上报 手动 转给领导
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdateUser")]
public JsonActionResult<bool> FullUpdateUser([FromBody] T_BS_RISK_SUBMIT entity)
{
return SafeExecute<bool>(() =>
{
if (string.IsNullOrEmpty(entity.CODE))
{
entity.CODE = "SDSB" + DateTime.Now.ToString("yyyyMMddHHmm");
}
var files = entity.Nav_Files;
entity.Nav_Files = null;
List<T_BS_RISK_SUBMIT_CONTENT_FILE> listFile = null;
var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
entity.Nav_ListRiskSubmitContent = null;
if (listRiskSubminContentl == null || listRiskSubminContentl.Count < 1)
{
throw new Exception("隐患上报明细不能为空!");
}
else if (listRiskSubminContentl.Count > 1)
{
throw new Exception("手动隐患上报每次只能上报一个隐患!");
}
//List<T_BS_RISK_SUBMIT_CONTENT_REASON> listSubmitContentReason = new List<T_BS_RISK_SUBMIT_CONTENT_REASON>();
#region
if (entity.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp)
{
//手动上报 保存并发送
if (!entity.CHECK_TYPE_ID.HasValue)
{
throw new Exception("请选择检查类型!");
}
if (!entity.CHECK_TYPE_LEVEL_ID.HasValue)
{
throw new Exception("请选择检查层级!");
}
if (files == null)
{
throw new Exception("请上传附件,手动上报必须上传附件!");
}
for (int i = 0; i < listRiskSubminContentl.Count(); i++)
{
if (!listRiskSubminContentl[i].RISK_AREA_ID.HasValue)
{
throw new Exception("行【" + (i + 1) + "】检查区域不能为空!");
}
if (string.IsNullOrEmpty(listRiskSubminContentl[i].ADDRESS))
{
throw new Exception("行【" + (i + 1) + "】隐患地点不能为空!");
}
if (string.IsNullOrEmpty(listRiskSubminContentl[i].CHECKCONTENT))
{
throw new Exception("行【" + (i + 1) + "】检查内容不能为空!");
}
if (string.IsNullOrEmpty(listRiskSubminContentl[i].DESCREPTION))
{
throw new Exception("行【" + (i + 1) + "】检查问题不能为空!");
}
////改版没了
//if (listRiskSubminContentl[i].Nav_ListRiskQuestionReason == null)
//{
// throw new Exception("行【" + (i + 1) + "】隐患原因不能为空!");
//}
}
if (listRiskSubminContentl.Count == 1 && files != null && files.Any())
{
listFile = new List<T_BS_RISK_SUBMIT_CONTENT_FILE>();
//如果只有一条 附件直接到列表中 最后到 检查前照片
foreach (var item in files)
{
listFile.Add(new T_BS_RISK_SUBMIT_CONTENT_FILE()
{
ID = Guid.NewGuid(),
RISK_SUBMIT_ID = item.RISK_SUBMIT_ID,
RISK_SUBMIT_CONTENT_ID = listRiskSubminContentl[0].ID,
IMG_FILE_ID = item.IMG_FILE_ID,
IS_DELETED = false,
ORG_ID = item.ORG_ID,
ENTITY_ORG_TPYE = item.ENTITY_ORG_TPYE,
FORM_ID = item.FORM_ID,
FLOW_STATUS = item.FLOW_STATUS,
FLOW_SEND_STATUS = item.FLOW_SEND_STATUS,
FLOW_ID = item.FLOW_ID,
CREATE_TIME = item.CREATE_TIME,
MODIFY_TIME = item.MODIFY_TIME,
CREATER_ID = item.CREATER_ID,
MODIFIER_ID = item.MODIFIER_ID
});
}
}
}
entity.SUBMIT_TYPE = (int)SUBMIT_TYPE.User;
if (!entity.CHECKTIME.HasValue)
{
entity.CHECKTIME = DateTime.Now;
}
#endregion
//if (listRiskSubminContentl.Any() && listRiskSubminContentl.Count > 0)
//{
// foreach (var item in listRiskSubminContentl)
// {
// if (item.Nav_ListRiskQuestionReason != null && item.Nav_ListRiskQuestionReason.Any())
// {
// foreach (var item2 in item.Nav_ListRiskQuestionReason)
// {
// item2.ORG_ID = entity.ORG_ID;
// }
// listSubmitContentReason.AddRange(item.Nav_ListRiskQuestionReason);
// }
// }
//}
entity.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (entity.DEPARTMENT_ID == null)
{
entity.DEPARTMENT_ID = GetEntity<T_FM_USER>(entity.USER_ID.Value).DEPARTMENT_ID;
}
T_FM_NOTIFICATION_TASK taskMaster = null;
//手动上报 保存并发送 通知安全员
if (entity.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp)
{
Guid UserId = Guid.Empty;
string userName = String.Empty;
#region //版本 1
////var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
//var master = GetEntity<T_FM_USER>(entity.USER_ID.Value, "Nav_Department");
//if (master.Nav_Department.USER_ID.HasValue && master.Nav_Department.USER_ID.Value == entity.USER_ID.Value)
//{
// //自己就是负责人 找上级组织的安全员
// if (master.Nav_Department.DEPARTMENT_TYPE == 10 || master.Nav_Department.DEPARTMENT_TYPE == 5) //部门 公司
2025-08-25 09:56:57 +08:00
// {
// //var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.Nav_Department.PARENT_ID && e.Nav_ApproveRole.NAME.Contains("安环部安全员"));
// //if (userSafe != null)
// //{
// // UserId = userSafe.ID;
// // userName = userSafe.NAME;
// //}
// //部门 = 0, 车间 = 1, 班组 = 2, 公司 = 3
// //如果是公司级 或者安环部 就是自己
// if (master.Nav_Department.DEPARTMENT_TYPE == 5 || master.Nav_Department.DEPARTMENT_STATUS == 2)
2025-08-25 09:56:57 +08:00
// {
// UserId = entity.USER_ID.Value;
// userName = master.NAME;
// }
// else
// {
// var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.Nav_Department.PARENT_ID && e.Nav_ApproveRole.NAME.Contains("安环部安全员"));
// if (userSafe != null)
// {
// UserId = userSafe.ID;
// userName = userSafe.NAME;
// }
// }
// }
// else
// {
// var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.Nav_Department.PARENT_ID && e.Nav_ApproveRole.NAME.Contains("安全员"));
// if (userSafe != null)
// {
// UserId = userSafe.ID;
// userName = userSafe.NAME;
// }
// }
//}
//else
//{
// // 班组 班长 否则 安全员 FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3
// if (master.Nav_Department.DEPARTMENT_TYPE == 20)
2025-08-25 09:56:57 +08:00
// {
// if (master.Nav_Department.USER_ID.HasValue)
// {
// UserId = master.Nav_Department.USER_ID.Value;
// userName = GetEntity<T_FM_USER>(UserId)?.NAME;
// }
// else
// {
// var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("负责人"));
// if (userSafe != null)
// {
// UserId = userSafe.ID;
// userName = userSafe.NAME;
// }
// }
// }
// else
// {
// var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("安全员"));
// if (userSafe != null)
// {
// UserId = userSafe.ID;
// userName = userSafe.NAME;
// }
// }
//}
//if (UserId == Guid.Empty)//没找到给自己
//{
// UserId = entity.USER_ID.Value;
// userName = master.NAME;
//}
#endregion
#region 2
var master = GetEntity<T_FM_USER>(entity.USER_ID.Value, "Nav_Department");
if (master.Nav_Department.USER_ID.HasValue && master.Nav_Department.USER_ID.Value == entity.USER_ID.Value)
{
//如果自己是负责人 就是自己
UserId = entity.USER_ID.Value;
userName = master.NAME;
}
else
{
//找安全员 如果没有 找负责人
// 班组 班长 否则 安全员 FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3
if (master.Nav_Department.DEPARTMENT_TYPE == 20)
2025-08-25 09:56:57 +08:00
{
if (master.Nav_Department.USER_ID.HasValue)
{
UserId = master.Nav_Department.USER_ID.Value;
userName = GetEntity<T_FM_USER>(UserId)?.NAME;
}
else
{
var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("负责人"));
if (userSafe != null)
{
UserId = userSafe.ID;
userName = userSafe.NAME;
}
}
}
else
{
var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("安全员"));
if (userSafe != null)
{
UserId = userSafe.ID;
userName = userSafe.NAME;
}
else
{
userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("负责人"));
if (userSafe != null)
{
UserId = userSafe.ID;
userName = userSafe.NAME;
}
}
}
}
if (UserId == Guid.Empty)//没找到给自己
{
UserId = entity.USER_ID.Value;
userName = master.NAME;
}
#endregion
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_PersonAdd, entity.ORG_ID.Value, DateTime.Now, null, null);
taskMaster = NotificationTaskService.InsertUserNoticeTaskModel("手动隐患上报-信息完善", entity.ID, entity.ORG_ID, UserId, userName, DateTime.Now, dtEnd, 0, "BS061");
}
this.UnifiedCommit(() =>
{
if (entity != null)
UpdateEntityNoCommit(entity);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())
BantchSaveEntityNoCommit(listRiskSubminContentl);
if (listFile != null && listFile.Any())
BantchSaveEntityNoCommit(listFile);
//if (listSubmitContentReason.Any())
// BantchSaveEntityNoCommit(listSubmitContentReason);
if (taskMaster != null)
UpdateEntityNoCommit(taskMaster);
});
return true;
});
}
/// <summary>
/// 隐患上报 审核通过 给每个通知负责人发送通知
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("NoticeNew")]
public JsonActionResult<bool> NoticeNew([FromBody] T_PF_APPROVE entity)
{
return SafeExecute<bool>(() =>
{
return ApproveCallBackService.CallBackNew("BS/BSRiskSubmit/NoticeNew", entity);
});
}
/// <summary>
/// 隐患上报 完成 修改各种状态 完善隐患库
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("DealEndNew")]
public JsonActionResult<bool> DealEndNew([FromBody] T_PF_APPROVE entity)
{
return SafeExecute<bool>(() =>
{
return ApproveCallBackService.CallBackNew("BS/BSRiskSubmit/DealEndNew", entity);
});
}
/// <summary>
/// 隐患上报 审核通过 给每个通知负责人发送通知
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("NoticeBack")]
public JsonActionResult<bool> NoticeBack([FromBody] T_PF_APPROVE entity)
{
return SafeExecute<bool>(() =>
{
//公共 获取审批流信息
T_PF_APPROVE modelApp = null;
List<T_PF_APPROVE_DETAIL> listAppDetail = null;
T_FM_NOTIFICATION_TASK taskFinish = null;
string Msg = string.Empty;
bool ResultGetInfo = ApproveCallBackService.GetApproject(entity, ref modelApp, ref listAppDetail, ref taskFinish, ref Msg);
if (!ResultGetInfo)
throw new Exception("驳回失败!");
if (modelApp == null || listAppDetail == null)
throw new Exception("获取驳回信息失败!");
#region //BS062 //驳回 按通知
//检查单
var subNotice = GetEntity<T_BS_RISK_SUBMIT_NOTICE>(entity.DATA_ID, "Nav_Submit");
subNotice.RiskContentState = (int)RiskContentState.ReportedReject;
var listSubContent = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_NOTICE_ID == subNotice.ID, null, null);
if (listSubContent == null || !listSubContent.Any())
{
throw new Exception("获取隐患上报信息失败!");
}
listSubContent.ForEach(e => e.RiskContentState = (int)RiskContentState.ReportedReject);
var submit = subNotice.Nav_Submit;
if (!submit.CREATER_ID.HasValue)
throw new Exception("获取上报人员信息失败!");
#endregion
T_FM_NOTIFICATION_TASK noticeBack = new T_FM_NOTIFICATION_TASK();
string title = taskFinish.NOTICE_TITLE;
title = title.Replace("-", "").Replace("待审批", "").Replace(" ", "");
Guid? NEW_USERID = null;
Guid? ContentID = null;
if (!string.IsNullOrEmpty(submit.CODE) && submit.CODE.StartsWith("SDSB") && listSubContent != null && listSubContent.Count() == 1)
{
foreach (var item in listSubContent)
{
if (item.NEW_USERID.HasValue)
{
NEW_USERID = item.NEW_USERID;
ContentID = item.ID;
}
}
}
if (NEW_USERID != null && NEW_USERID != Guid.Empty)
{
var user = GetEntity<T_FM_USER>(NEW_USERID.Value);
noticeBack = NotificationTaskService.InsertUserNoticeTaskModel("(驳回)手动隐患上报-新问题", ContentID.Value, subNotice.ORG_ID, NEW_USERID.Value, user.NAME, DateTime.Now, 0, "BS078", FMTASKTYPE.Default);
}
else
{
var user = GetEntity<T_FM_USER>(submit.CREATER_ID.Value);
noticeBack = NotificationTaskService.InsertUserNoticeTaskModel("(驳回)" + title, subNotice.ID, subNotice.ORG_ID, submit.CREATER_ID.Value, user.NAME, DateTime.Now, DateTime.Now.AddDays(1), 0, "BS062");
}
UnifiedCommit(() =>
{
if (modelApp != null)
UpdateEntityNoCommit(modelApp);
if (listAppDetail != null && listAppDetail.Count > 0)
BantchUpdateEntityNoCommit(listAppDetail);
if (listSubContent != null && listSubContent.Any())
BantchUpdateEntityNoCommit(listSubContent);
if (subNotice != null)
UpdateEntityNoCommit(subNotice);
if (noticeBack != null)
UpdateEntityNoCommit(noticeBack);
if (taskFinish != null)
UpdateEntityNoCommit(taskFinish);
});
return true;
});
}
/// <summary>
/// 隐患整改 审批驳回
/// 整改落实人 重新填单
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("DealBack")]
public JsonActionResult<bool> DealBack([FromBody] T_PF_APPROVE entity)
{
return SafeExecute<bool>(() =>
{
//公共 获取审批流信息
T_PF_APPROVE modelApp = null;
List<T_PF_APPROVE_DETAIL> listAppDetail = null;
T_FM_NOTIFICATION_TASK taskFinish = null;
string Msg = string.Empty;
bool ResultGetInfo = ApproveCallBackService.GetApproject(entity, ref modelApp, ref listAppDetail, ref taskFinish, ref Msg);
if (!ResultGetInfo)
throw new Exception("驳回失败!");
if (modelApp == null || listAppDetail == null)
throw new Exception("获取驳回信息失败!");
#region BS044
//检查单
var contentDeal = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(entity.DATA_ID, "Nav_UserActualDeal", "Nav_SubmitContent");
if (contentDeal == null)
throw new Exception("获取驳回信息失败!");
contentDeal.DEALSITUATION = (int)DealSituation.Reject;
contentDeal.ISDEALSIGN = false;
contentDeal.ISCHECKSIGN = false;
contentDeal.CHCECKTIME = null;
var content = contentDeal.Nav_SubmitContent;
content.RiskContentState = 70;
#endregion
T_FM_NOTIFICATION_TASK taskOld = GetEntity<T_FM_NOTIFICATION_TASK>(e => e.NOTICE_STATUS == 1 && e.SOURCE_DATA_ID == entity.DATA_ID && e.USER_ID == contentDeal.ACTUAL_DEAL_USER_ID.Value && e.SOURCE_FORMCODE == "BS044_SHOWPRINT" && e.NOTICE_TITLE.StartsWith("隐患整改单:"));
string title = "(驳回)";
if (taskOld != null)
title += taskOld.NOTICE_TITLE;
else
title += "隐患整改单";
T_FM_NOTIFICATION_TASK noticeBack = NotificationTaskService.InsertUserNoticeTaskModel(title, contentDeal.ID, contentDeal.ORG_ID, contentDeal.ACTUAL_DEAL_USER_ID.Value, contentDeal.Nav_UserActualDeal.NAME, DateTime.Now, DateTime.Now.AddDays(1), 0, "BS044");
#region //整改责任人 驳回 附件整改后 移到整改前
var listFilesAfter = GetEntities<T_BS_RISK_SUBMIT_CONTENT_DEAL_AFTER_FILE>(e => e.RISK_SUBMIT_CONTENT_DEAL_ID == contentDeal.ID, null, null);
List<Guid> ids = listFilesAfter.Select(e => e.ID).ToList();
List<T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE> listFiles = new List<T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE>();
if (listFilesAfter != null && listFilesAfter.Any())
{
foreach (var item in listFilesAfter)
{
listFiles.Add(new T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE()
{
ID = item.ID,//ID不变 别的不变
ORG_ID = item.ORG_ID,
RISK_SUBMIT_CONTENT_DEAL_ID = item.RISK_SUBMIT_CONTENT_DEAL_ID,
IMG_FILE_ID = item.IMG_FILE_ID,
CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
CREATE_TIME = DateTime.Now
});
}
}
#endregion
UnifiedCommit(() =>
{
if (modelApp != null)
UpdateEntityNoCommit(modelApp);
if (listAppDetail != null && listAppDetail.Count > 0)
BantchUpdateEntityNoCommit(listAppDetail);
if (contentDeal != null)
UpdateEntityNoCommit(contentDeal);
if (content != null)
UpdateEntityNoCommit(content);
if (noticeBack != null)
UpdateEntityNoCommit(noticeBack);
if (taskFinish != null)
UpdateEntityNoCommit(taskFinish);
if (listFilesAfter != null && listFilesAfter.Any())
BantchDeleteEntityNoCommit<T_BS_RISK_SUBMIT_CONTENT_DEAL_AFTER_FILE>(ids);
if (listFiles != null && listFiles.Any())
BantchSaveEntityNoCommit(listFiles);
});
return true;
});
}
#region
//OrderPagedRISKINFO
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderPagedRISKINFO")]
public PagedActionResult<T_BS_RISK_SUBMIT_CONTENT_INFO> OrderPagedRISKINFO([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData(delegate (PagedActionResult<T_BS_RISK_SUBMIT_CONTENT_INFO> result)
{
#region SQL
// var sql = @"select T_HM_RISK_AREA.NAME, T_BS_RISK_SUBMIT_CONTENT.CHECKCONTENT,T_BS_CHECK_QUESTION.DESCREPTION,T_BS_SAFE_CHECK_DETAIL.REMARK_RESULT
//,case T_BS_SAFE_CHECK_DETAIL.CHECKRESULT when 30 then T_BS_SAFE_CHECK_DETAIL.REMARK_RESULT else T_BS_CHECK_QUESTION.DESCREPTION end as DESCREPTIONNEW
//,T_BS_SAFE_CHECK_DETAIL.QUESTION_LEVEL
// ,COUNT(1) as ThisCount
//from T_BS_RISK_SUBMIT_CONTENT
//inner join T_BS_SAFE_CHECK_DETAIL on T_BS_SAFE_CHECK_DETAIL.ID=T_BS_RISK_SUBMIT_CONTENT.SAFE_CHECK_DETAIL_ID
//inner join T_BS_SAFE_CHECK_DETAIL_QUESTION on T_BS_SAFE_CHECK_DETAIL_QUESTION.SAFE_CHECK_DETAIL_ID=T_BS_SAFE_CHECK_DETAIL.ID
//inner join T_BS_CHECK_QUESTION on T_BS_CHECK_QUESTION.ID=T_BS_SAFE_CHECK_DETAIL_QUESTION.SAFE_CHECK_QUESTION_ID
//inner join T_HM_RISK_AREA on T_BS_RISK_SUBMIT_CONTENT.RISK_AREA_ID=T_HM_RISK_AREA.ID
// group by T_HM_RISK_AREA.NAME, T_BS_RISK_SUBMIT_CONTENT.CHECKCONTENT,T_BS_CHECK_QUESTION.DESCREPTION,T_BS_SAFE_CHECK_DETAIL.REMARK_RESULT,T_BS_SAFE_CHECK_DETAIL.QUESTION_LEVEL
// ,case T_BS_SAFE_CHECK_DETAIL.CHECKRESULT when 30 then T_BS_SAFE_CHECK_DETAIL.REMARK_RESULT else T_BS_CHECK_QUESTION.DESCREPTION end
//order by ThisCount desc,T_HM_RISK_AREA.NAME";
#endregion
#region
//Guid qtID = new Guid("77777777-7777-7777-7777-777777777777");//系统修改 没有其他
//Expression<Func<T_BS_RISK_SUBMIT_CONTENT, bool>> expressionSC = e => !e.IS_DELETED;
//Expression<Func<T_BS_SAFE_CHECK_DETAIL, bool>> expressionD = e => !e.IS_DELETED && e.CHECKRESULT.HasValue && e.CHECKRESULT.Value == 20;
//Expression<Func<T_BS_SAFE_CHECK_DETAIL_QUESTION, bool>> expressionDQ = e => !e.IS_DELETED && e.SAFE_CHECK_QUESTION_ID != qtID;//
//Expression<Func<T_BS_CHECK_QUESTION, bool>> expressionQ = e => !e.IS_DELETED;
//Expression<Func<T_HM_RISK_AREA, bool>> expressionA = e => !e.IS_DELETED;
////bool isAREANAMELimit = false;
////bool isCHECKCONTENTLimit = false;
////bool isDESCREPTIONLimit = false;
////bool isLEVELLimit = false;
//string DESCREPTION = string.Empty;
//if (pageFilter.FilterGroup.Rules.Count > 0)
//{
// var IRules = pageFilter.FilterGroup.Rules;
// string strVal = string.Empty;
// foreach (var rule in IRules)
// {
// if (rule.Value == null || string.IsNullOrEmpty(rule.Value.ToString()))
// continue;
// strVal = rule.Value.ToString().Trim();
// if (rule.Field == "AREANAME")
// {
// //isAREANAMELimit = true;
// expressionA = expressionA.And(e => e.NAME.Contains(strVal));
// }
// else if (rule.Field == "CHECKCONTENT")
// {
// //isCHECKCONTENTLimit = true;
// expressionSC = expressionSC.And(e => e.CHECKCONTENT.Contains(strVal));
// }
// else if (rule.Field == "DESCREPTION")
// {
// //isDESCREPTIONLimit = true;
// DESCREPTION = strVal;
// //expressionSC = expressionSC.And(e => e.DESCREPTION.Contains(strVal));
// //expressionD = expressionD.And(e => e.REMARK_RESULT.Contains(strVal));
// //expressionQ = expressionQ.And(e => e.DESCREPTION.Contains(strVal));
// }
// else if (rule.Field == "QUESTION_LEVEL")
// {
// try
// {
// //isLEVELLimit = true;
// var level = int.Parse(strVal);
// expressionSC = expressionSC.And(e => e.QUESTION_LEVEL == level);
// expressionD = expressionD.And(e => e.QUESTION_LEVEL.HasValue && e.QUESTION_LEVEL == level);
// expressionQ = expressionQ.And(e => e.QUESTION_LEVEL == (BSQuestionLevelEnum)level);
// }
// catch { }
// }
// }
//}
//BaseFilter filterArea = new BaseFilter();
//filterArea.SelectField = new List<string> { "ID", "NAME" };
//BaseFilter filterQuestion = new BaseFilter();
//filterQuestion.SelectField = new List<string> { "ID", "DESCREPTION" };
//BaseFilter filterRiskContent = new BaseFilter();
//filterRiskContent.SelectField = new List<string> { "ID", "QUESTION_LEVEL", "RISK_AREA_ID", "CHECKCONTENT", "SAFE_CHECK_DETAIL_ID" };
//BaseFilter filterCheckDetail = new BaseFilter();
//filterCheckDetail.SelectField = new List<string> { "ID", "CHECKRESULT", "RISK_AREA_ID", "QUESTION_LEVEL" };
//BaseFilter filterCheckDetailQuestion = new BaseFilter();
//filterCheckDetailQuestion.SelectField = new List<string> { "ID", "SAFE_CHECK_DETAIL_ID", "SAFE_CHECK_QUESTION_ID" };
//var IlistArea = GetEntities(expressionA, filterArea, null);//<T_HM_RISK_AREA>
//var IlistCheckQuestion = GetEntities(expressionQ, filterQuestion, null);//<T_BS_CHECK_QUESTION>
//var IlistRiskContent = GetEntities(expressionSC, filterRiskContent, null);//<T_BS_RISK_SUBMIT_CONTENT>
//var IlistCheckDetail = GetEntities(expressionD, filterCheckDetail, null);//<T_BS_SAFE_CHECK_DETAIL>
//var IlistCheckDetailQuestion = GetEntities(expressionDQ, filterCheckDetailQuestion, null);//<T_BS_SAFE_CHECK_DETAIL_QUESTION>
//var query = from rc in IlistRiskContent
// join cd in IlistCheckDetail on rc.SAFE_CHECK_DETAIL_ID equals cd.ID
// join cdq in IlistCheckDetailQuestion on cd.ID equals cdq.SAFE_CHECK_DETAIL_ID
// join q in IlistCheckQuestion on cdq.SAFE_CHECK_QUESTION_ID equals q.ID
// join are in IlistArea on rc.RISK_AREA_ID equals are.ID
// group rc by new
// {
// rc.QUESTION_LEVEL, //cd.QUESTION_LEVEL,
// are.NAME,
// rc.RISK_AREA_ID,//cd.RISK_AREA_ID,
// rc.CHECKCONTENT,
// q.DESCREPTION,
// QID = q.ID,
// //cd.REMARK_RESULT,
// cd.CHECKRESULT,
// }
// into temp
// select new T_BS_RISK_SUBMIT_CONTENT_INFO
// {
// AREA_ID = temp.Key.RISK_AREA_ID,
// AREANAME = temp.Key.NAME,
// CHECKCONTENT = temp.Key.CHECKCONTENT,
// DESCREPTION = temp.Key.DESCREPTION,
// //REMARK_RESULT = temp.Key.REMARK_RESULT,
// QUESTION_LEVEL = temp.Key.QUESTION_LEVEL,
// //DESCREPTIONNEW = (temp.Key.CHECKRESULT.HasValue && temp.Key.CHECKRESULT.Value == 30) ? temp.Key.REMARK_RESULT : temp.Key.CHECKCONTENT,
// DESCREPTIONNEW = temp.Key.DESCREPTION,
// COUNTRISK = temp.Count(),
// QID = temp.Key.QID
// };
//if (!string.IsNullOrEmpty(DESCREPTION))
//{
// query = query.Where(e => e.DESCREPTION.Contains(DESCREPTION));
//}
//result.TotalCount = query.Count();
//var data = query.OrderByDescending(e => e.COUNTRISK).ThenBy(e => e.QUESTION_LEVEL).ThenBy(e => e.AREANAME).Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit).ToList();
//T_BS_RISK_SUBMIT_CONTENT tempS = null;
////for (int i = 0; i < data.Count; i++)
////{
//// tempS = IlistRiskContent.FirstOrDefault(e => e.QUESTION_LEVEL == data[i].QUESTION_LEVEL && e.RISK_AREA_ID == data[i].AREA_ID && e.CHECKCONTENT == data[i].CHECKCONTENT);
//// data[i].ID = (tempS != null ? tempS.ID : Guid.Empty);
////}
//bool isApp = DataHelper.GetRequestType(Request.Headers) == 2 ? true : false;
//foreach (var item in data)
//{
// if (item.QID == qtID)
// {
// tempS = IlistRiskContent.FirstOrDefault(e => e.QUESTION_LEVEL == item.QUESTION_LEVEL && e.RISK_AREA_ID == item.AREA_ID && e.CHECKCONTENT == item.CHECKCONTENT);
// }
// else
// {
// tempS = IlistRiskContent.FirstOrDefault(e => e.QUESTION_LEVEL == item.QUESTION_LEVEL && e.RISK_AREA_ID == item.AREA_ID && e.CHECKCONTENT == item.CHECKCONTENT && e.CHECK_QUESTION_ID == qtID);
// }
// item.ID = (tempS != null ? tempS.ID : Guid.Empty).ToString();
// item.ID += "_" + (item.AREA_ID.HasValue ? item.AREA_ID.Value : Guid.Empty) + "_" + item.CHECKCONTENT + "_" + item.DESCREPTION + "_" + item.QUESTION_LEVEL;
// if (isApp)
// {
// if (item.QUESTION_LEVEL != null && item.QUESTION_LEVEL.Value > 0)
// {
// item.QUESTION_LEVEL_SHOW = ((BSQuestionLevelEnum)item.QUESTION_LEVEL).GetDescription();
// }
// }
//}
//result.Data = data;
#endregion
Guid qtID = new Guid("77777777-7777-7777-7777-777777777777");//系统修改 没有其他
Expression<Func<T_BS_RISK_SUBMIT_CONTENT, bool>> expressionSC = e => !e.IS_DELETED && e.CHECK_QUESTION_ID.HasValue;
Expression<Func<T_HM_RISK_AREA, bool>> expressionA = e => !e.IS_DELETED;
BaseFilter filterRiskContent = new BaseFilter(pageFilter.OrgId);
if (pageFilter.FilterGroup.Rules.Count > 0)
{
var IRules = pageFilter.FilterGroup.Rules;
string strVal = string.Empty;
foreach (var rule in IRules)
{
if (rule.Value == null || string.IsNullOrEmpty(rule.Value.ToString()))
continue;
strVal = rule.Value.ToString().Trim();
if (rule.Field == "AREANAME")
{
expressionA = expressionA.And(e => e.NAME.Contains(strVal));
}
else if (rule.Field == "CHECKCONTENT")
{
expressionSC = expressionSC.And(e => e.CHECKCONTENT.Contains(strVal));
}
else if (rule.Field == "DESCREPTION")
{
expressionSC = expressionSC.And(e => e.DESCREPTION.Contains(strVal));
}
else if (rule.Field == "CHECKOBJECT")
{
if (!string.IsNullOrEmpty(strVal) && strVal != "0")
{
var CHECKOBJECT = (BSMineTypeEnum)int.Parse(strVal);
expressionSC = expressionSC.And(e => e.Nav_Submit.CHECKOBJECT.HasValue && e.Nav_Submit.CHECKOBJECT == CHECKOBJECT);
if (filterRiskContent.DataRule == null)
{
filterRiskContent.DataRule = new string[] { "Nav_Submit" };
}
else
{
filterRiskContent.DataRule.Add("Nav_Submit");
}
}
}
else if (rule.Field == "QUESTION_LEVEL")
{
try
{
var level = int.Parse(strVal);
if (level == 0)
continue;
expressionSC = expressionSC.And(e => e.QUESTION_LEVEL == level);
}
catch { }
}
}
}
filterRiskContent.SelectField = new List<string> { "ID", "QUESTION_LEVEL", "RISK_AREA_ID", "CHECKCONTENT", "DESCREPTION" };
filterRiskContent.IgnoreDataRule = true;
var IlistRiskContent = GetEntities(expressionSC, filterRiskContent);
BaseFilter filterArea = new BaseFilter(pageFilter.OrgId);
filterArea.SelectField = new List<string> { "ID", "NAME" };
var IlistArea = GetEntities(expressionA, filterArea, null);//<T_HM_RISK_AREA>
var query = from rc in IlistRiskContent
join are in IlistArea on rc.RISK_AREA_ID equals are.ID
group rc by new
{
rc.QUESTION_LEVEL,
are.NAME,
rc.RISK_AREA_ID,
rc.CHECKCONTENT,
rc.DESCREPTION,
QID = rc.CHECK_QUESTION_ID.HasValue ? rc.CHECK_QUESTION_ID.Value : Guid.Empty
}
into temp
select new T_BS_RISK_SUBMIT_CONTENT_INFO
{
AREA_ID = temp.Key.RISK_AREA_ID,
AREANAME = temp.Key.NAME,
CHECKCONTENT = temp.Key.CHECKCONTENT,
DESCREPTION = temp.Key.DESCREPTION,
QUESTION_LEVEL = temp.Key.QUESTION_LEVEL,
DESCREPTIONNEW = temp.Key.DESCREPTION,
COUNTRISK = temp.Count(),
QID = temp.Key.QID
};
result.TotalCount = query.Count();
var data = query.OrderByDescending(e => e.COUNTRISK).ThenBy(e => e.QUESTION_LEVEL).ThenBy(e => e.AREANAME).Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit).ToList();
bool isApp = DataHelper.GetRequestType(Request.Headers) == 2 ? true : false;
foreach (var item in data)
{
//item.ID = (tempS != null ? tempS.ID : Guid.Empty).ToString();
item.ID = item.QID.ToString() + "_" + (item.AREA_ID.HasValue ? item.AREA_ID.Value : Guid.Empty) + "_" + item.CHECKCONTENT + "_" + item.DESCREPTION + "_" + item.QUESTION_LEVEL;
if (isApp)
{
if (item.QUESTION_LEVEL != null && item.QUESTION_LEVEL.Value > 0)
{
item.QUESTION_LEVEL_SHOW = ((BSQuestionLevelEnum)item.QUESTION_LEVEL).GetDescription();
}
}
}
result.Data = data;
});
}
/// <summary>
/// 隐患库 明细
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("GetListRiskDetail")]
public PagedActionResult<T_BS_RISK_SUBMIT_CONTENT_DETAIL> GetListRiskDetail([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData(delegate (PagedActionResult<T_BS_RISK_SUBMIT_CONTENT_DETAIL> result)
{
Guid ID = Guid.Empty;
//item.ID += "_" + item.AREANAME + "_" + item.CHECKCONTENT + "_" + item.DESCREPTIONNEW;
Guid AREAID = Guid.Empty;
string CHECKCONTENT = string.Empty;
string DESCREPTION = string.Empty;
int? QUESTION_LEVEL = null;
if (pageFilter.FilterGroup.Rules.Count > 0)
{
var IRules = pageFilter.FilterGroup.Rules;
foreach (var rule in IRules)
{
if (rule.Field == "ID")
{
var val = rule.Value.ToString();
if (val.IndexOf('_') > -1)
{
var listParm = val.Split('_');
if (listParm.Length < 4)
throw new Exception("获取参数有误!");
ID = new Guid(listParm[0]);
AREAID = new Guid(listParm[1]);
CHECKCONTENT = listParm[2];
DESCREPTION = listParm[3];
if (!string.IsNullOrEmpty(listParm[4]))
{
QUESTION_LEVEL = int.Parse(listParm[4]);
}
}
}
}
}
if (AREAID == Guid.Empty || string.IsNullOrEmpty(CHECKCONTENT) || string.IsNullOrEmpty(DESCREPTION))
{
throw new Exception("获取参数有误!");
}
#region //旧版
//if (ID == Guid.Empty)
//{
// throw new Exception("获取参数有误!");
//}
//var subcontent = GetEntity<T_BS_RISK_SUBMIT_CONTENT>(ID);
//Expression<Func<T_BS_RISK_SUBMIT_CONTENT, bool>> expression = e => e.RISK_AREA_ID == subcontent.RISK_AREA_ID && e.CHECKCONTENT == subcontent.CHECKCONTENT && e.QUESTION_LEVEL == subcontent.QUESTION_LEVEL;
//if (!string.IsNullOrEmpty(subcontent.DESCREPTION))
// expression = expression.And(e => e.DESCREPTION != null && e.DESCREPTION == subcontent.DESCREPTION);
//else
// expression = expression.And(e => e.DESCREPTION == null);
#endregion
Expression<Func<T_BS_RISK_SUBMIT_CONTENT, bool>> expression = e => !e.IS_DELETED && e.RISK_AREA_ID.HasValue;
if (QUESTION_LEVEL != null)
expression = expression.And(e => QUESTION_LEVEL.Value == e.QUESTION_LEVEL);
if (AREAID != Guid.Empty)
expression = expression.And(e => e.RISK_AREA_ID.Value == AREAID);
expression = expression.And(e => CHECKCONTENT == e.CHECKCONTENT);
expression = expression.And(e => DESCREPTION == e.DESCREPTION);
BaseFilter fiter = new BaseFilter(pageFilter.OrgId);
fiter.IgnoreDataRule = true;
var listContent = GetEntities(expression, fiter, "Nav_Department", "Nav_UserActualDeal");
if (listContent == null || !listContent.Any())
{
result.TotalCount = 0;
result.Data = null;
}
else
{
var listSubmitID = listContent.Select(e => e.RISK_SUBMIT_ID.Value).Distinct();
var listSubmit = GetEntities<T_BS_RISK_SUBMIT>(e => listSubmitID.Contains(e.ID), fiter, "Nav_User", "Nav_CheckType", "Nav_CheckTypeLevel.Nav_Enums");
var query = from c in listContent
join sub in listSubmit on c.RISK_SUBMIT_ID equals sub.ID
select new T_BS_RISK_SUBMIT_CONTENT_DETAIL
{
SUBMIT_CONTENT_ID = c.ID,
SAFE_CHECK_DETAIL_ID = c?.SAFE_CHECK_DETAIL_ID,
DEPARTMENT_ID = c.DEPARTMENT_ID.HasValue ? c.DEPARTMENT_ID.Value : Guid.Empty,
DEPARTMENT_NAME = c.Nav_Department?.NAME,
CHECKTYPE_ID = sub.CHECK_TYPE_ID.HasValue ? sub.CHECK_TYPE_ID.Value : Guid.Empty,
CHECKTYPE_NAME = sub.Nav_CheckType?.NAME,
CHECKTYPE_LEVEL = sub.Nav_CheckTypeLevel?.Nav_Enums?.NAME,
CHECKTYPE_TIME = sub.CREATE_TIME,
CHECKTYPE_USERS = sub.Nav_User?.NAME,
ADDRESS = c.ADDRESS,
FINISH_TIME = c.SUBMITFINISHTIME,
ACTURE_USERNAME = c.Nav_UserActualDeal?.NAME
};
result.TotalCount = query.Count();
var listResult = query.OrderByDescending(e => e.CHECKTYPE_TIME).ToList();
//var listResult = query.OrderByDescending(e => e.CHECKTYPE_TIME).Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit).ToList();
var listCheckID = listResult.Where(e => e.SAFE_CHECK_DETAIL_ID.HasValue).Select(e => e.SAFE_CHECK_DETAIL_ID);
if (listCheckID != null && listCheckID.Any())
{
var listCheckDetail = GetEntities<T_BS_SAFE_CHECK_DETAIL>(e => listCheckID.Contains(e.ID), null, "Nav_SafeCheck", "Nav_ListCheckDetailUser.Nav_User");
T_BS_SAFE_CHECK_DETAIL modelCD = null;
foreach (var item in listResult)
{
if (!item.SAFE_CHECK_DETAIL_ID.HasValue)
continue;
modelCD = listCheckDetail.FirstOrDefault(e => e.ID == item.SAFE_CHECK_DETAIL_ID.Value);
string CheckUserName = string.Empty;
if (modelCD != null)
{
item.CHECKTYPE_TIME = modelCD.Nav_SafeCheck.CHECKTIME;
CheckUserName = string.Empty;
foreach (var itemC in modelCD.Nav_ListCheckDetailUser)
{
CheckUserName += (string.IsNullOrEmpty(CheckUserName) ? "" : ",") + itemC.Nav_User.NAME;
}
if (string.IsNullOrEmpty(CheckUserName))
{
item.CHECKTYPE_USERS = CheckUserName;
}
}
}
}
result.Data = listResult;
}
});
}
#endregion
#region
//隐患上报和通知调整,取消整改通知责任人
//1、明确需求 哪个步骤需要取消
//2、BS061 去除 变成 BS042 审批流(审批流按 BS061 责任单位 责任通知人 获取数据 整改实施单位 整改责任人(手动) (多添加 检查项目、项目分类 判断显示隐藏)
// BS006 加(整改期限 系统整改期限(查看) 整改实施单位 整改责任人 验收人)
/// <summary>
/// 隐患上报表 (BS006)
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_BS_RISK_SUBMIT entity)
{
return SafeExecute<bool>(() =>
{
if (string.IsNullOrEmpty(entity.CODE))
{
entity.CODE = "YHSB" + DateTime.Now.ToString("yyyyMMddHHmm");
}
var files = entity.Nav_Files;
entity.Nav_Files = null;
if (files != null && files.Any())
{
foreach (var item in files)
{
item.Nav_ImgFile = null;
}
}
//附件
List<T_BS_RISK_SUBMIT_CONTENT_FILE> listContentFile = new List<T_BS_RISK_SUBMIT_CONTENT_FILE>();
var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
entity.Nav_ListRiskSubmitContent = null;
if (listRiskSubminContentl == null || listRiskSubminContentl.Count < 1)
{
throw new Exception("隐患上报明细不能为空!");
}
#region
if (!entity.CHECK_ID.HasValue)
{
#region
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)
{
//手动上报
if (!entity.CHECK_TYPE_ID.HasValue)
{
throw new Exception("请选择检查类型!");
}
if (!entity.CHECK_TYPE_LEVEL_ID.HasValue)
{
throw new Exception("请选择检查层级!");
}
if (files == null)
{
throw new Exception("请上传附件,手动上报必须上传附件!");
}
for (int i = 0; i < listRiskSubminContentl.Count(); i++)
{
if (string.IsNullOrEmpty(listRiskSubminContentl[i].DESCREPTION))
{
throw new Exception("行【" + (i + 1) + "】检查问题不能为空!");
}
if (listRiskSubminContentl[i].QUESTION_LEVEL == 0)
{
throw new Exception("行【" + (i + 1) + "】问题等级不能为空!");
}
if (string.IsNullOrEmpty(listRiskSubminContentl[i].DEMAND))
{
throw new Exception("行【" + (i + 1) + "】整改建议与措施不能为空!");
}
//改版没了
//if (listRiskSubminContentl[i].Nav_ListRiskQuestionReason == null)
//{
// throw new Exception("行【" + (i + 1) + "】隐患原因不能为空!");
//}
if (string.IsNullOrEmpty(listRiskSubminContentl[i].ADDRESS))
{
throw new Exception("行【" + (i + 1) + "】隐患地点不能为空!");
}
//通知责任人 取消
////if (string.IsNullOrEmpty(listRiskSubminContentl[i].Nav_User.NAME))
//if (listRiskSubminContentl[i].USER_ID == null || listRiskSubminContentl[i].USER_ID == Guid.Empty)
//{
// throw new Exception("行【" + (i + 1) + "】通知责任人不能为空!");
//}
////if (string.IsNullOrEmpty(listRiskSubminContentl[i].Nav_Department.NAME))
//if (listRiskSubminContentl[i].DEPARTMENT_ID == null || listRiskSubminContentl[i].DEPARTMENT_ID == Guid.Empty)
//{
// throw new Exception("行【" + (i + 1) + "】责任单位不能为空!");
//}
if (!listRiskSubminContentl[i].LastDateUser.HasValue)
{
throw new Exception("行【" + (i + 1) + "】整改期限不能为空!");
}
else
{
listRiskSubminContentl[i].LastDateUser = listRiskSubminContentl[i].LastDateUser.Value.Date.AddDays(1).AddSeconds(-1);
}
if (!listRiskSubminContentl[i].DEAL_DEPARTMENT_ID.HasValue)
{
throw new Exception("行【" + (i + 1) + "】整改实施单位不能为空!");
}
if (!listRiskSubminContentl[i].DEAL_USER_ID.HasValue)
{
throw new Exception("行【" + (i + 1) + "】整改责任人不能为空!");
}
else
{
listRiskSubminContentl[i].USER_ID = listRiskSubminContentl[i].DEAL_USER_ID;
listRiskSubminContentl[i].DEPARTMENT_ID = listRiskSubminContentl[i].DEAL_DEPARTMENT_ID;
}
if (!listRiskSubminContentl[i].CHECK_USER_ID.HasValue)
{
throw new Exception("行【" + (i + 1) + "】验收人不能为空!");
}
if (listRiskSubminContentl[i].DEAL_USER_ID.Value == listRiskSubminContentl[i].CHECK_USER_ID)
{
throw new Exception("行【" + (i + 1) + "】整改责任人和验收人不能同一个人!");
}
if (DataHelper.GetRequestType(HttpContext.Request.Headers) != 2 || (DataHelper.GetRequestType(HttpContext.Request.Headers) == 2 && DateTime.Now.Month > 2))
{
//移动端 修改 版本兼容
if (!listRiskSubminContentl[i].CHECK_PROJECT_ID.HasValue)
{
throw new Exception("请选择行【" + (i + 1) + "】的检查项目!");
}
if (!listRiskSubminContentl[i].CHECK_PROJECT_CATEGORY_ID.HasValue)
{
throw new Exception("请选择行【" + (i + 1) + "】的检查项目分类!");
}
}
}
}
entity.SUBMIT_TYPE = (int)SUBMIT_TYPE.User;
if (!entity.CHECKTIME.HasValue)
{
entity.CHECKTIME = DateTime.Now;
}
#endregion
}
else
{
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)
{
for (int i = 0; i < listRiskSubminContentl.Count(); i++)
{
if (listRiskSubminContentl[i].Nav_ListRiskQuestionReason == null)
{
throw new Exception("行【" + (i + 1) + "】隐患原因不能为空!");
}
if (string.IsNullOrEmpty(listRiskSubminContentl[i].ADDRESS))
{
throw new Exception("行【" + (i + 1) + "】隐患地点不能为空!");
}
//通知责任人 取消
//if (listRiskSubminContentl[i].USER_ID == null || listRiskSubminContentl[i].USER_ID == Guid.Empty)
//{
// throw new Exception("行【" + (i + 1) + "】通知责任人不能为空!");
//}
//if (listRiskSubminContentl[i].DEPARTMENT_ID == null || listRiskSubminContentl[i].DEPARTMENT_ID == Guid.Empty)
//{
// throw new Exception("行【" + (i + 1) + "】责任单位不能为空!");
//}
if (!listRiskSubminContentl[i].CHECK_QUESTION_ID.HasValue || string.IsNullOrEmpty(listRiskSubminContentl[i].DEMAND))
{
throw new Exception("行【" + (i + 1) + "】整改建议与措施不能为空!");
}
if (!listRiskSubminContentl[i].LastDateUser.HasValue)
{
throw new Exception("行【" + (i + 1) + "】整改期限不能为空!");
}
else
{
listRiskSubminContentl[i].LastDateUser = listRiskSubminContentl[i].LastDateUser.Value.Date.AddDays(1).AddSeconds(-1);
}
if (listRiskSubminContentl[i].LastDateUser.Value > listRiskSubminContentl[i].LastDateSystem.Value)
{
throw new Exception("行【" + (i + 1) + "】整改期限不能超过【" + listRiskSubminContentl[i].LastDateSystem.Value.Date.ToString("yyyy-MM-dd") + "】!");
}
if (!listRiskSubminContentl[i].DEAL_DEPARTMENT_ID.HasValue)
{
throw new Exception("行【" + (i + 1) + "】整改实施单位不能为空!");
}
if (!listRiskSubminContentl[i].DEAL_USER_ID.HasValue)
{
throw new Exception("行【" + (i + 1) + "】整改责任人不能为空!");
}
else
{
listRiskSubminContentl[i].USER_ID = listRiskSubminContentl[i].DEAL_USER_ID;
listRiskSubminContentl[i].DEPARTMENT_ID = listRiskSubminContentl[i].DEAL_DEPARTMENT_ID;
}
if (!listRiskSubminContentl[i].CHECK_USER_ID.HasValue)
{
throw new Exception("行【" + (i + 1) + "】验收人不能为空!");
}
if (listRiskSubminContentl[i].DEAL_USER_ID.Value == listRiskSubminContentl[i].CHECK_USER_ID)
{
throw new Exception("行【" + (i + 1) + "】整改责任人和验收人不能同一个人!");
}
//移动端 修改 版本兼容
if (!listRiskSubminContentl[i].CHECK_PROJECT_ID.HasValue)
{
throw new Exception("请选择行【" + (i + 1) + "】的检查项目!");
}
if (!listRiskSubminContentl[i].CHECK_PROJECT_CATEGORY_ID.HasValue)
{
throw new Exception("请选择行【" + (i + 1) + "】的检查项目分类!");
}
}
}
}
#endregion
//安全检查修改为隐患已上报
T_BS_SAFE_CHECK modelCheck = null;
if (entity.CHECK_ID.HasValue)
{
modelCheck = this.GetEntity<T_BS_SAFE_CHECK>(entity.CHECK_ID.Value, new string[] { "Nav_ListSafeCheckDetail" });
if (modelCheck != null)
modelCheck.RISKSTATE = (int)RISKSTATE.Reported;
}
List<T_BS_RISK_SUBMIT_CONTENT_REASON> listSubmitContentReason = new List<T_BS_RISK_SUBMIT_CONTENT_REASON>();
List<Guid> listApproveId = new List<Guid>();
List<Guid> listId = new List<Guid>();
List<Guid> listDataID_Sub = new List<Guid>();
List<string> listParam = new List<string>();
List<Guid> ListDepIDNone = new List<Guid>(); //责任部门ID
//通知表单
List<T_BS_RISK_SUBMIT_NOTICE> listSubmitNotice = new List<T_BS_RISK_SUBMIT_NOTICE>();
int rowIndex = 0;
Dictionary<int, List<Guid>> dicLevelSubID = new Dictionary<int, List<Guid>>();
List<int> listLevel = new List<int>();
if (listRiskSubminContentl.Any() && listRiskSubminContentl.Count > 0)
{
foreach (var item in listRiskSubminContentl)
{
rowIndex++;
if (item.DEPARTMENT_ID.HasValue)
{
ListDepIDNone.Add(item.DEPARTMENT_ID.Value);
}
else
{
ListDepIDNone.Add(Guid.Empty);
}
if (item.Nav_Files != null && item.Nav_Files.Any())
{
listContentFile.AddRange(item.Nav_Files);
}
//foreach (var itemCheckMain in modelCheck.Nav_ListSafeCheckDetail)
//{
// if (item.CHECK_MAIN_ID == itemCheckMain.CHECK_MAIN_ID && item.QUESTION_LEVEL == 0)
// {
// //不会进来
// item.QUESTION_LEVEL = itemCheckMain.QUESTION_LEVEL.HasValue ? itemCheckMain.QUESTION_LEVEL.Value : ((int)BSQuestionLevelEnum.D);
// }
//}
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)
{
var subTemp = listSubmitNotice.FirstOrDefault(e => e.QUESTION_LEVEL == item.QUESTION_LEVEL);
if (subTemp == null)
{
#region
T_BS_RISK_SUBMIT_NOTICE modelNotice = new T_BS_RISK_SUBMIT_NOTICE();
modelNotice.ID = Guid.NewGuid();
modelNotice.CODE = entity.CODE + "_" + (listParam.Count() + 1).ToString();
modelNotice.NAME = entity.NAME + ((BSQuestionLevelEnum)item.QUESTION_LEVEL).GetDescription() + "级隐患";
modelNotice.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID.Value;
modelNotice.QUESTION_LEVEL = item.QUESTION_LEVEL;
modelNotice.NOTICETIME = DateTime.Now;
modelNotice.RiskContentState = (int)RiskContentState.Notice;
modelNotice.APPROVE_ID = Guid.NewGuid();
modelNotice.ORG_ID = item.ORG_ID;
#endregion
listSubmitNotice.Add(modelNotice);
item.APPROVE_ID = modelNotice.APPROVE_ID;
item.RISK_SUBMIT_NOTICE_ID = modelNotice.ID;
listId.Add(modelNotice.ID);
//listDataID_Sub.Add(item.ID);
listLevel.Add(item.QUESTION_LEVEL);
listParam.Add(modelNotice.QUESTION_LEVEL.ToString());
listApproveId.Add(modelNotice.APPROVE_ID.Value);
dicLevelSubID.Add(item.QUESTION_LEVEL, new List<Guid>() { item.ID });
}
else
{
item.APPROVE_ID = subTemp.APPROVE_ID;
item.RISK_SUBMIT_NOTICE_ID = subTemp.ID;
var subIDs = dicLevelSubID[item.QUESTION_LEVEL];
subIDs.Add(item.ID);
//回头看看是否正常
}
//listDataID_Sub.Add(item.ID);//每条明细都要添加记录
//if (!listParam.Contains(item.QUESTION_LEVEL.ToString()) && !item.RISK_SUBMIT_NOTICE_ID.HasValue)//&& !item.RISK_SUBMIT_NOTICE_ID.HasValue 通知不能重复 2023-04-26概率发生 看反馈 没得验证)
//{
// #region 不包含此等级 添加通知
// T_BS_RISK_SUBMIT_NOTICE modelNotice = new T_BS_RISK_SUBMIT_NOTICE();
// modelNotice.ID = Guid.NewGuid();
// modelNotice.CODE = entity.CODE + "_" + (listParam.Count() + 1).ToString();
// modelNotice.NAME = entity.NAME + ((BSQuestionLevelEnum)item.QUESTION_LEVEL).GetDescription();
// modelNotice.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID.Value;
// modelNotice.QUESTION_LEVEL = item.QUESTION_LEVEL;
// modelNotice.NOTICETIME = DateTime.Now;
// modelNotice.RiskContentState = (int)RiskContentState.Notice;
// modelNotice.APPROVE_ID = Guid.NewGuid();
// modelNotice.ORG_ID = item.ORG_ID;
// #endregion
// listSubmitNotice.Add(modelNotice);
// item.APPROVE_ID = modelNotice.APPROVE_ID;
// item.RISK_SUBMIT_NOTICE_ID = modelNotice.ID;
// listId.Add(modelNotice.ID);
// listParam.Add(modelNotice.QUESTION_LEVEL.ToString());
// listApproveId.Add(modelNotice.APPROVE_ID.Value);
//}
//else
//{
// //有此隐患等级//查找对应等级的审核表信息
// item.APPROVE_ID = listSubmitNotice.First(e => e.QUESTION_LEVEL == item.QUESTION_LEVEL).APPROVE_ID;
// item.RISK_SUBMIT_NOTICE_ID = listSubmitNotice.First(e => e.QUESTION_LEVEL == item.QUESTION_LEVEL).ID;
//}
}
if (item.Nav_ListRiskQuestionReason != null && item.Nav_ListRiskQuestionReason.Any())
{
foreach (var item2 in item.Nav_ListRiskQuestionReason)
{
item2.ORG_ID = entity.ORG_ID;
}
listSubmitContentReason.AddRange(item.Nav_ListRiskQuestionReason);
}
//如果 有问题ID
//问题等级 和 整改建议与措施 不能修改
if (item.Nav_SafeCheckDetail == null && item.SAFE_CHECK_DETAIL_ID != null)
{
item.Nav_SafeCheckDetail = GetEntity<T_BS_SAFE_CHECK_DETAIL>(e => e.ID == item.SAFE_CHECK_DETAIL_ID);
}
if (item.Nav_SafeCheckDetail != null && item.Nav_SafeCheckDetail.CHECKRESULT == (int)CHECKRESULTEnum.Same)
{
if (item.Nav_CheckMain == null && item.CHECK_MAIN_ID.HasValue)
{
item.Nav_CheckMain = GetEntity<T_BS_CHECK_MAIN>(e => e.ID == item.CHECK_MAIN_ID, new string[] { "Nav_CheckQuestion" });
}
if (item.Nav_CheckMain != null && item.Nav_CheckMain.Nav_CheckQuestion != null)
{
if (item.CHECK_QUESTION_ID != item.Nav_CheckMain.Nav_CheckQuestion.ID)
{
var checkMain = GetEntity<T_BS_CHECK_MAIN>(e => e.CHECK_QUESTION_ID == item.CHECK_QUESTION_ID && e.CHECK_PROJECT_ID == item.Nav_CheckMain.CHECK_PROJECT_ID && e.CHECK_PROJECT_CATEGORY_ID == item.Nav_CheckMain.CHECK_PROJECT_CATEGORY_ID && e.CHECK_PROJECT_CATEGORY_ID == item.Nav_CheckMain.CHECK_PROJECT_CATEGORY_ID && e.CHECKCONTENT == item.Nav_CheckMain.CHECKCONTENT);
if (checkMain == null)
{
//检查问题与描述一致 检查问题不能修改
throw new Exception("行号:【" + rowIndex.ToString() + "】的整改建议与措施【" + item.Nav_CheckMain.Nav_CheckQuestion.DEMAND + "】不能修改,操作失败!");
}
}
}
}
//if (item.CHECK_QUESTION_ID.HasValue)
//{
// if (item.Nav_Question == null)
// {
// item.Nav_Question = GetEntity<T_BS_CHECK_QUESTION>(item.CHECK_QUESTION_ID.Value);
// }
// if (item.DEMAND.Trim() != item.Nav_Question.DEMAND.Trim())
// {
// throw new Exception("行号:【" + rowIndex.ToString() + "】的整改建议与措施【" + item.Nav_Question.DEMAND + "】不能修改,操作失败!");
// }
//}
}
}
if (!entity.USER_ID.HasValue)
{
entity.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
}
if (entity.DEPARTMENT_ID == null)
{
entity.DEPARTMENT_ID = GetEntity<T_FM_USER>(entity.USER_ID.Value).DEPARTMENT_ID;
}
if (entity.TaskID != Guid.Empty && !entity.STARTTIME.HasValue)
{
var task = GetEntity<T_FM_NOTIFICATION_TASK>(entity.TaskID);
entity.STARTTIME = task.CREATE_TIME;
}
if (listContentFile.Count > 0)
{
foreach (var item in listContentFile)
{
item.Nav_ImgFile = null;
item.RISK_SUBMIT_ID = entity.ID;
}
}
//int RequestType = DataHelper.GetRequestType(Request.Headers);
//if (RequestType == 2)
//{
// if (listRiskSubminContentl != null && listRiskSubminContentl.Any())
// {
// foreach (var item in listRiskSubminContentl)
// {
// item.Nav_UserCheck = null;
// item.Nav_UserDeal = null;
// item.Nav_User = null;
// item.Nav_Department = null;
// item.Nav_DepartmentDeal = null;
// }
// }
// if (listSubmitContentReason != null && listSubmitContentReason.Any())
// {
// foreach (var item in listSubmitContentReason)
// {
// item.Nav_RiskReason = null;
// }
// }
//}
if (entity.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp)
{
this.UnifiedCommit(() =>
{
if (entity != null)
UpdateEntityNoCommit(entity);
if (modelCheck != null)
UpdateEntityNoCommit(modelCheck);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (listContentFile != null && listContentFile.Any())
BantchSaveEntityNoCommit(listContentFile);
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())
BantchSaveEntityNoCommit(listRiskSubminContentl);
if (listSubmitContentReason.Any())
BantchSaveEntityNoCommit(listSubmitContentReason);
});
}
else
{
List<string> listSerialCode = new List<string>();
var index = entity.CODE.IndexOf(DateTime.Now.Year.ToString());
if (index == -1)
{
index = entity.CODE.IndexOf((DateTime.Now.Year - 1).ToString());
}
string yearMonth = string.Empty;
if (index > 0)
{
yearMonth = entity.CODE.Substring(index);
}
else
{
yearMonth = DateTime.Now.ToString("yyyyMMddHHmmss");
}
string code = "YHSB" + yearMonth;
if (code.Length > 20)
{
code = code.Substring(0, 15);
}
listSerialCode.Add(code);
if (listParam.Count > 1)
{
for (int i = 1; i < listParam.Count; i++)
{
listSerialCode.Add(code + i.ToString());
}
}
//如果是手动隐患上报 根据明细的 整改责任人 来走审批流 20240118
Guid? ApproveIDDependUserID = null;
if (entity.SUBMIT_TYPE == (int)APT.MS.Domain.Enums.SUBMIT_TYPE.User && listRiskSubminContentl != null && listRiskSubminContentl.Count > 0)
{
var listDealUserID = listRiskSubminContentl.Select(e => e.DEAL_USER_ID).Distinct();
if (listDealUserID != null && listDealUserID.Count() == 1)
{
ApproveIDDependUserID = listRiskSubminContentl[0].DEAL_USER_ID;
}
}
//??????
////给通知责任人 发送通知
////通知责任人 确定 后 走审批流
MFlowPermitService.InsertApproveRisk(listSerialCode, "BS006", listId, "BS006_SHOWPRINT", entity.TaskID, true, () =>
{
if (entity != null)
UpdateEntityNoCommit(entity);
if (listSubmitNotice.Any())
BantchSaveEntityNoCommit(listSubmitNotice);
if (modelCheck != null)
UpdateEntityNoCommit(modelCheck);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (listContentFile != null && listContentFile.Any())
BantchSaveEntityNoCommit(listContentFile);
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())
BantchSaveEntityNoCommit(listRiskSubminContentl);
if (listSubmitContentReason.Any())
BantchSaveEntityNoCommit(listSubmitContentReason);
}, listParam, listApproveId, ApproveIDDependUserID, "BS006_VIEW", null, ListDepIDNone, FMTASKTYPE.BS_RiskUp_Audit, null, null, (int)OPERATEPOINT_Enums.RiskGet, entity.ID, listLevel, dicLevelSubID);// null =>ApproveIDDependUserID
}
return true;
});
}
#endregion
#region
/// <summary>
/// 隐患上报 手动 转给领导
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdateUserNew")]
public JsonActionResult<bool> FullUpdateUserNew([FromBody] T_BS_RISK_SUBMIT_CONTENT entity)
{
return SafeExecute<bool>(() =>
{
var files = entity.Nav_Files;
entity.Nav_Files = null;
//entity.RiskContentState 5 10 需要处理
#region
if (entity.RiskContentState == 10 || entity.RiskContentState == 15)
{
if (!entity.RISK_AREA_ID.HasValue)
{
throw new Exception("检查区域不能为空!");
}
if (string.IsNullOrEmpty(entity.ADDRESS))
{
throw new Exception("隐患地点不能为空!");
}
}
if (string.IsNullOrEmpty(entity.DESCRIBE))
{
throw new Exception("请填写上报描述!");
}
else if (entity.DESCRIBE.Length > 500)
{
throw new Exception("上报描述不能超过500字");
}
if (files.Count < 1)
{
throw new Exception("请上传附件!");
}
#endregion
T_BS_RISK_SUBMIT risk = null;
if (entity.RISK_SUBMIT_ID == null || entity.RISK_SUBMIT_ID == Guid.Empty)
{
risk = new T_BS_RISK_SUBMIT();
risk.ID = Guid.NewGuid();
risk.ORG_ID = entity.ORG_ID;
risk.SUBMIT_STATUS = entity.RiskContentState;
risk.NAME = "手动隐患上报";
if (!risk.CHECKTIME.HasValue)
risk.CHECKTIME = DateTime.Now;
if (string.IsNullOrEmpty(entity.CODE))
{
if (entity.TaskID != Guid.Empty)
{
entity.CODE = "TPM" + DateTime.Now.ToString("yyyyMMddHHmm");
risk.SUBMIT_TYPE = (int)SUBMIT_TYPE.TPM;
}
else
{
entity.CODE = "SDSB" + DateTime.Now.ToString("yyyyMMddHHmm");
risk.SUBMIT_TYPE = (int)SUBMIT_TYPE.User;
}
}
risk.CODE = entity.CODE;
risk.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
risk.DEPARTMENT_ID = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
entity.RISK_SUBMIT_ID = risk.ID;
}
else
{
//risk = entity.Nav_Submit;
risk = GetEntity<T_BS_RISK_SUBMIT>(entity.RISK_SUBMIT_ID.Value);
risk.SUBMIT_STATUS = entity.RiskContentState;
}
foreach (var item in files)
{
item.RISK_SUBMIT_ID = risk.ID;
}
T_FM_NOTIFICATION_TASK taskMaster = null;
T_FM_NOTIFICATION_TASK taskEnd = null;
List<T_BS_OPERATE_LOG> listLog = null;
//手动上报 保存并发送 通知安全员
if (risk.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp)
{
Guid UserId = Guid.Empty;
string userName = String.Empty;
#region 2
var master = GetEntity<T_FM_USER>(risk.USER_ID.Value, "Nav_Department");
if (master.Nav_Department == null)
{
throw new Exception("未获取到您的组织信息,操作失败!");
}
if (master.Nav_Department.USER_ID.HasValue && master.Nav_Department.USER_ID.Value == risk.USER_ID.Value)
{
//如果自己是负责人 就是自己
UserId = risk.USER_ID.Value;
userName = master.NAME;
}
else if (master.Nav_Department.DEPARTMENT_STATUS == 2)
{
//部门类型 安环部 之类的 也是自己
UserId = risk.USER_ID.Value;
userName = master.NAME;
}
else
{
//找安全员 如果没有 找负责人
// 班组 班长 否则 安全员 FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3
if (master.Nav_Department.DEPARTMENT_TYPE == 20)
2025-08-25 09:56:57 +08:00
{
if (master.Nav_Department.USER_ID.HasValue)
{
UserId = master.Nav_Department.USER_ID.Value;
userName = GetEntity<T_FM_USER>(UserId)?.NAME;
}
else
{
var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("负责人"));
if (userSafe != null)
{
UserId = userSafe.ID;
userName = userSafe.NAME;
}
}
}
else
{
var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("安全员"));
if (userSafe != null)
{
UserId = userSafe.ID;
userName = userSafe.NAME;
}
else
{
userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("负责人"));
if (userSafe != null)
{
UserId = userSafe.ID;
userName = userSafe.NAME;
}
}
}
}
if (UserId == Guid.Empty)//没找到给自己
{
UserId = risk.USER_ID.Value;
userName = master.NAME;
}
#endregion
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_PersonAdd, entity.ORG_ID.Value, DateTime.Now, null, null);
taskMaster = NotificationTaskService.InsertUserNoticeTaskModel("手动隐患上报-信息完善", entity.ID, risk.ORG_ID, UserId, userName, DateTime.Now, dtEnd, 0, "BS073");//原 BS061
if (entity.TaskID != Guid.Empty)
{
taskEnd = NotificationTaskService.GetEntityTask(entity.TaskID, "BS072_SHOWPRINT");
}
listLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskUpSD, risk.ID, risk.USER_ID.Value, null, new List<Guid>() { UserId }, new List<string>() { userName }, risk.ORG_ID, entity.ID);
}
entity.RiskContentState = null;
this.UnifiedCommit(() =>
{
if (risk != null)
UpdateEntityNoCommit(risk);
if (entity != null)
UpdateEntityNoCommit(entity);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (taskMaster != null)
UpdateEntityNoCommit(taskMaster);
if (taskEnd != null)
UpdateEntityNoCommit(taskEnd);
if (listLog != null && listLog.Any())
BantchSaveEntityNoCommit(listLog);
});
return true;
});
}
/// <summary>
/// 选择整改实施单位 加载 责任人 验收人
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("GetDpartMentMasterInfo")]
public PagedActionResult<T_FM_DEPARTMENT> GetDpartMentMasterInfo([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData<T_FM_DEPARTMENT>((result) =>
{
Expression<Func<T_FM_DEPARTMENT, bool>> expression = e => !e.IS_DELETED && e.ENABLE_STATUS == 0 && e.ORG_ID == pageFilter.OrgId;
//var listDepartmentPage = this.GetPageEntities(expression, pageFilter, "Nav_User", "Nav_Parent.Nav_User");//框架报错
//var c = this.GetPageEntities(expression, pageFilter);
//result = this.GetPageEntities(expression, pageFilter, "Nav_User");//框架报错
var sad = GetOrderPageEntities(expression, pageFilter, "Nav_User");
var listDepartmentAll = this.GetEntities(expression, pageFilter, "Nav_User");//, "Nav_Parent"
result.TotalCount = listDepartmentAll.Count();
//result.Data = listDepartment;
//result.TotalCount = listDepartment.Count();
if (result.TotalCount > 0)
{
var listDepartment = listDepartmentAll.OrderBy(e => e.NAME).Skip((pageFilter.PageIndex - 1) * pageFilter.Limit).Take(pageFilter.Limit);
List<Guid> listDepID = new List<Guid>();
//责任人
listDepID = listDepartment.Where(e => !e.USER_ID.HasValue).Select(x => x.ID).ToList();
if (listDepID != null && listDepID.Any())
{
listDepID = listDepID.Distinct().ToList();
var listRole = GetEntities<T_PF_APPROVAL_ROLE>(e => e.NAME.Contains("负责人"), null, null);
var listRoleID = listRole.Select(e => e.ID);
if (listRoleID != null && listRoleID.Any())
{
var listHeader = GetEntities<T_FM_USER>(e => listDepID.Contains(e.DEPARTMENT_ID.Value) && e.APPROVE_ROLE_ID.HasValue && listRoleID.Contains(e.APPROVE_ROLE_ID.Value), null, null);
foreach (var item in listDepartment)
{
if (!item.USER_ID.HasValue)
{
T_FM_USER userTemp = null;
userTemp = listHeader.FirstOrDefault(x => x.DEPARTMENT_ID == item.ID);
if (userTemp != null)
item.Nav_User = userTemp;
}
}
}
}
//验收人
listDepID = listDepartment.Where(e => e.PARENT_ID.HasValue).Select(e => e.PARENT_ID.Value).ToList();
if (listDepID != null && listDepID.Any())
{
listDepID = listDepID.Distinct().ToList();
var listP = GetEntities<T_FM_DEPARTMENT>(e => listDepID.Contains(e.ID), null);
var listRole = GetEntities<T_PF_APPROVAL_ROLE>(e => e.NAME.Contains("安全员"), null, null);
if (listRole != null && listRole.Any())
{
var listRoleID = listRole.Select(e => e.ID);
var listHeader = GetEntities<T_FM_USER>(e => listDepID.Contains(e.DEPARTMENT_ID.Value) && e.APPROVE_ROLE_ID.HasValue && listRoleID.Contains(e.APPROVE_ROLE_ID.Value), null, null);
foreach (var item in listP)
{
T_FM_USER userTemp = null;
userTemp = listHeader.FirstOrDefault(x => x.DEPARTMENT_ID == item.ID);
if (userTemp != null)
item.Nav_User = userTemp;//安全员临时装入此字段
}
}
//数据(父级部门及验收人)组装
foreach (var item in listDepartment)
{
if (item.PARENT_ID.HasValue)
{
item.Nav_Parent = listP.FirstOrDefault(e => e.ID == item.PARENT_ID.Value);
}
}
}
result.Data = listDepartment;
}
});
}
/// <summary>
/// 手动上报 指定责任单位 选择检查问题 按 问题等级 同时带出 系统整改期限
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderPagedQuestion")]
public PagedActionResult<T_BS_CHECK_QUESTION> OrderPagedQuestion([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData(delegate (PagedActionResult<T_BS_CHECK_QUESTION> result)
{
Guid? CHECK_CONTENTS_ID = null;
Guid? RISK_AREA_ID = null;
Guid? CHECK_TYPE_ID = null;
Guid? CHECK_TYPE_LEVEL_ID = null;
int? CHECKOBJECT = null;
Guid? CHECK_PROJECT_ID = null;
Guid? CHECK_PROJECT_CATEGORY_ID = null;
if (pageFilter.FilterGroup.Rules.Any())
{
foreach (var item in pageFilter.FilterGroup.Rules)
{
try
{
switch (item.Field)
{
case "CHECK_CONTENTS_ID":
CHECK_CONTENTS_ID = new Guid(item.Value.ToString());
break;
case "RISK_AREA_ID":
RISK_AREA_ID = new Guid(item.Value.ToString());
break;
case "CHECK_TYPE_ID":
CHECK_TYPE_ID = new Guid(item.Value.ToString());
break;
case "CHECK_TYPE_LEVEL_ID":
CHECK_TYPE_LEVEL_ID = new Guid(item.Value.ToString());
break;
case "CHECK_PROJECT_CATEGORY_ID":
CHECK_PROJECT_CATEGORY_ID = new Guid(item.Value.ToString());
break;
case "CHECK_PROJECT_ID":
CHECK_PROJECT_ID = new Guid(item.Value.ToString());
break;
case "CHECKOBJECT":
CHECKOBJECT = int.Parse(item.Value.ToString());
break;
default:
break;
}
}
catch { }
}
pageFilter.FilterGroup.Rules.Clear();
}
IEnumerable<Guid> listQuestionID = null;
IEnumerable<T_BS_CHECK_MAIN> listMain = null;
if (CHECK_CONTENTS_ID != null)
{
Expression<Func<T_BS_CHECK_MAIN, bool>> expression = e => e.CHECK_CONTENTS_ID.HasValue && e.CHECK_QUESTION_ID.HasValue;
if (CHECK_CONTENTS_ID != null)
expression = expression.And(e => e.CHECK_CONTENTS_ID == CHECK_CONTENTS_ID.Value);
if (RISK_AREA_ID != null)
expression = expression.And(e => e.RISK_AREA_ID == RISK_AREA_ID.Value);
if (CHECK_TYPE_ID != null)
expression = expression.And(e => e.CHECK_TYPE_ID == CHECK_TYPE_ID.Value);
if (CHECK_TYPE_LEVEL_ID != null)
expression = expression.And(e => e.CHECK_TYPE_LEVEL_ID == CHECK_TYPE_LEVEL_ID.Value);
if (CHECK_PROJECT_ID != null)
expression = expression.And(e => e.CHECK_PROJECT_ID == CHECK_PROJECT_ID.Value);
if (CHECK_PROJECT_CATEGORY_ID != null)
expression = expression.And(e => e.CHECK_PROJECT_CATEGORY_ID == CHECK_PROJECT_CATEGORY_ID.Value);
if (CHECKOBJECT != null)
expression = expression.And(e => e.CHECKOBJECT == CHECKOBJECT.Value);
listMain = GetEntities(expression, null, null);
}
if (listMain != null && listMain.Any())
{
listQuestionID = listMain.Select(e => e.CHECK_QUESTION_ID.Value).Distinct();
}
if (listQuestionID != null && listQuestionID.Any())
{
pageFilter.Include.Clear();
pageFilter.Sort = "DESCREPTION";
var resultT = GetOrderPageEntities<T_BS_CHECK_QUESTION>(e => listQuestionID.Contains(e.ID), pageFilter, null);
if (resultT.TotalCount > 0)
{
int RequestType = DataHelper.GetRequestType(HttpContext.Request.Headers);
foreach (var item in resultT.Data)
{
int delayDays = GetDealyDays((int)item.QUESTION_LEVEL) + 1;
item.LastDateSystem = DateTime.Now.Date.AddDays(delayDays).AddSeconds(-1);
if (RequestType == 2)
{
if (item.QUESTION_LEVEL > 0)
{
item.QUESTION_LEVEL_SHOW = item.QUESTION_LEVEL.GetDescription();
}
}
item.Nav_Main = listMain.FirstOrDefault(e => e.CHECK_QUESTION_ID == item.ID);
}
}
result.Data = resultT.Data;
result.TotalCount = resultT.TotalCount;
}
});
}
//隐患上报和通知调整,取消整改通知责任人
//1、明确需求 哪个步骤需要取消
//2、BS061 去除 变成 BS042 审批流(审批流按 BS061 责任单位 责任通知人 获取数据 整改实施单位 整改责任人(手动) (多添加 检查项目、项目分类 判断显示隐藏)
// BS006 加(整改期限 系统整改期限(查看) 整改实施单位 整改责任人 验收人)
/// <summary>
/// 隐患上报表 (BS073)
/// </summary>
/// <param name="entityContent"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpPost, Route("FullUpdateNew")]
public JsonActionResult<bool> FullUpdateNew([FromBody] T_BS_RISK_SUBMIT_CONTENT entityContent)
{
return SafeExecute<bool>(() =>
{
if (entityContent.SUBMIT_STATUS == (int)BSSubmitStatusEnum.NewContnet)
{
//新问题 //转给车间安全员 (如果层级较高 就是对应层级的安全员)
DateTime? TASK_ENDDT = null;
T_FM_NOTIFICATION_TASK taskEnd = null;
if (entityContent.TaskID != Guid.Empty)
{
taskEnd = NotificationTaskService.GetEntityTask(entityContent.TaskID, "BS073_SHOWPRINT");
if (taskEnd != null)
{
TASK_ENDDT = taskEnd.TASK_ENDDT;
}
}
Guid UserIDNext = Guid.Empty;
string UserNAMENext = null;
GetSaferNext(ref UserIDNext, ref UserNAMENext);
if (UserIDNext == Guid.Empty)
{
throw new Exception("获取对应安全员信息失败,请联系管理人员!");
}
#region // 找安全员
////[Description("部门层级")] FMDepartmentType 部门 = 0,// 车间 = 1, // 班组 = 2, //公司 = 3
//var depID = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value;
//var depLoginDep = GetEntity<T_FM_DEPARTMENT>(depID);
//if (depLoginDep.DEPARTMENT_TYPE == 20)
2025-08-25 09:56:57 +08:00
//{
// depID = depLoginDep.PARENT_ID.Value;
//}
//var ApproveRole = GetEntities<T_PF_APPROVAL_ROLE>(e => !e.IS_DELETED && e.NAME.Contains("安全员"), null, null);
//if (ApproveRole != null && ApproveRole.Any())
//{
// var listApproveRoleID = ApproveRole.Select(e => e.ID);
// var listUser = GetEntities<T_FM_USER>(e => e.DEPARTMENT_ID == depID && e.ENABLE_STATUS == 0 && !e.IS_DELETED && e.APPROVE_ROLE_ID.HasValue && listApproveRoleID.Contains(e.APPROVE_ROLE_ID.Value), null);
// if (listUser != null && listUser.Any())
// {
// if (listUser.Count() == 1)
// {
// var userNext = listUser.ToList()[0];
// UserIDNext = userNext.ID;
// UserNAMENext = userNext.NAME;
// }
// else
// {
// switch (depLoginDep.DEPARTMENT_TYPE)
// {
// case 1:
// case 2:
// var approle = ApproveRole.FirstOrDefault(e => e.NAME.Contains("车间"));
// if (approle != null)
// {
// var userApprole = listUser.FirstOrDefault(e => e.APPROVE_ROLE_ID.Value == approle.ID);
// if (userApprole != null)
// {
// UserIDNext = userApprole.ID;
// UserNAMENext = userApprole.NAME;
// }
// }
// break;
// case 3:
// //公司级 给 安环部安全员
// var approleSafe = ApproveRole.FirstOrDefault(e => e.NAME.Contains("安"));
// if (approleSafe != null)
// {
// var userApprole = listUser.FirstOrDefault(e => e.APPROVE_ROLE_ID.Value == approleSafe.ID);
// if (userApprole != null)
// {
// UserIDNext = userApprole.ID;
// UserNAMENext = userApprole.NAME;
// }
// }
// break;
// default:
// break;
// }
// if (UserIDNext == null)
// {
// var userNext = listUser.ToList()[0];
// UserIDNext = userNext.ID;
// UserNAMENext = userNext.NAME;
// }
// }
// }
//}
//if (UserIDNext == null)//找不到就他自己 比如对应组织找不到安全员
//{
// UserIDNext = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
// UserNAMENext = GetEntity<T_FM_USER>(UserIDNext.Value).NAME;
//}
#endregion
List<T_BS_OPERATE_LOG> listLog = new List<T_BS_OPERATE_LOG>();
listLog.AddRange(OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskUpSDNew, entityContent.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { UserIDNext }, new List<string>() { UserNAMENext }, entityContent.ORG_ID, entityContent.ID, null, false, TASK_ENDDT));
//新问题
//状态值变小
var taskNext = NotificationTaskService.InsertUserNoticeTaskModel("手动隐患上报-新问题", entityContent.ID, entityContent.ORG_ID, UserIDNext, UserNAMENext, DateTime.Now, 0, "BS078", FMTASKTYPE.Default);
//页面合并 方法修改 此处需要清空
entityContent.CHECK_MAIN_ID = null;
entityContent.Nav_CheckMain = null;
entityContent.NEW_USERID = UserIDNext;
this.UnifiedCommit(() =>
{
UpdateEntity(entityContent);
UpdateEntity(taskNext);
if (taskEnd != null)
UpdateEntity(taskEnd);
if (listLog != null && listLog.Any())
BantchSaveEntityNoCommit(listLog);
});
}
else
{
bool isHandNew = false;//是否手动隐患上报新流程 第一级完善
//保存 保存并发送
var entity = entityContent.Nav_Submit;
if (entity == null)
{
//页面传值过来是null
entity = GetEntity<T_BS_RISK_SUBMIT>(entityContent.RISK_SUBMIT_ID.Value);
entity.SUBMIT_STATUS = entityContent.SUBMIT_STATUS;
if (entityContent.CHECK_TYPE_ID.HasValue)
entity.CHECK_TYPE_ID = entityContent.CHECK_TYPE_ID;
if (entityContent.CHECK_TYPE_LEVEL_ID.HasValue)
entity.CHECK_TYPE_LEVEL_ID = entityContent.CHECK_TYPE_LEVEL_ID;
if (entityContent.CHECKOBJECT.HasValue)
entity.CHECKOBJECT = entityContent.CHECKOBJECT;
}
else
{
//获取页面传参
entity.SUBMIT_STATUS = entityContent.SUBMIT_STATUS;
if (entityContent.CHECK_TYPE_ID.HasValue)
entity.CHECK_TYPE_ID = entityContent.CHECK_TYPE_ID;
if (entityContent.CHECK_TYPE_LEVEL_ID.HasValue)
entity.CHECK_TYPE_LEVEL_ID = entityContent.CHECK_TYPE_LEVEL_ID;
entity.CHECKOBJECT = entityContent.CHECKOBJECT;
}
var files = entityContent.Nav_Files;
entityContent.Nav_Files = null;
var listRiskQuestionReason = entityContent.Nav_ListRiskQuestionReason;
entityContent.Nav_ListRiskQuestionReason = null;
if (!entity.CHECK_ID.HasValue && !entityContent.DEAL_DEPARTMENT_ID.HasValue && !entityContent.DEAL_USER_ID.HasValue && !entityContent.CHECK_USER_ID.HasValue)
{
isHandNew = true;
}
#region
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)
{
//手动上报
if (!entity.CHECKOBJECT.HasValue)
throw new Exception("请选择检查范围!");
if (!entity.CHECK_TYPE_ID.HasValue)
throw new Exception("请选择检查类型!");
if (!entity.CHECK_TYPE_LEVEL_ID.HasValue)
throw new Exception("请选择检查层级!");
if (files == null)
throw new Exception("请上传附件,手动上报必须上传附件!");
if (DataHelper.GetRequestType(HttpContext.Request.Headers) != 2 || (DataHelper.GetRequestType(HttpContext.Request.Headers) == 2 && DateTime.Now.Month > 2))
{
//移动端 修改 版本兼容
if (!entityContent.CHECK_PROJECT_ID.HasValue)
throw new Exception("请选择的检查项目!");
if (!entityContent.CHECK_PROJECT_CATEGORY_ID.HasValue)
throw new Exception("请选择的检查项目分类!");
}
if (!entityContent.RISK_AREA_ID.HasValue)
throw new Exception("检查区域不能为空!");
if (string.IsNullOrEmpty(entityContent.ADDRESS))
throw new Exception("隐患地点不能为空!");
if (!entityContent.CHECK_CONTENTS_ID.HasValue)
throw new Exception("检查内容不能为空!");
if (!entityContent.CHECK_QUESTION_ID.HasValue)
throw new Exception("检查问题不能为空!");
if (string.IsNullOrEmpty(entityContent.DESCREPTION))
throw new Exception("检查问题不能为空!");
if (entityContent.QUESTION_LEVEL == 0)
throw new Exception("问题等级不能为空!");
if (string.IsNullOrEmpty(entityContent.DEMAND))
throw new Exception("整改建议与措施不能为空!");
if (!entityContent.LastDateUser.HasValue)
throw new Exception("整改期限不能为空!");
else if (!entityContent.LastDateSystem.HasValue)
throw new Exception("系统整改期限不能为空!");
else if (entityContent.LastDateUser.Value > entityContent.LastDateSystem.Value)
throw new Exception("整改期限不能大于系统整改期限!");
else
entityContent.LastDateUser = entityContent.LastDateUser.Value.Date.AddDays(1).AddSeconds(-1);
if (listRiskQuestionReason == null || !listRiskQuestionReason.Any())
throw new Exception("隐患原因不能为空!");
if (!isHandNew)
{
if (!entityContent.DEAL_DEPARTMENT_ID.HasValue)
throw new Exception("整改实施单位不能为空!");
if (!entityContent.DEAL_USER_ID.HasValue)
throw new Exception("整改责任人不能为空!");
else
{
entityContent.USER_ID = entityContent.DEAL_USER_ID;
entityContent.DEPARTMENT_ID = entityContent.DEAL_DEPARTMENT_ID;
}
if (!entityContent.CHECK_USER_ID.HasValue)
throw new Exception("验收人不能为空!");
if (entityContent.DEAL_USER_ID.Value == entityContent.CHECK_USER_ID)
throw new Exception("整改责任人和验收人不能同一个人!");
}
}
#endregion
//entity.SUBMIT_TYPE = (int)SUBMIT_TYPE.User;
if (!entity.CHECKTIME.HasValue)
entity.CHECKTIME = DateTime.Now;
if (string.IsNullOrEmpty(entity.CODE))
entity.CODE = "YHSB" + DateTime.Now.ToString("yyyyMMddHHmm");
//安全检查修改为隐患已上报
T_BS_SAFE_CHECK modelCheck = null;
if (entity.CHECK_ID.HasValue)
{
modelCheck = this.GetEntity<T_BS_SAFE_CHECK>(entity.CHECK_ID.Value, new string[] { "Nav_ListSafeCheckDetail" });
if (modelCheck != null)
modelCheck.RISKSTATE = (int)RISKSTATE.Reported;
}
List<Guid> listApproveId = new List<Guid>();
List<Guid> listId = new List<Guid>();
List<string> listParam = new List<string>();
List<Guid> ListDepIDNone = new List<Guid>(); //责任部门ID
//通知表单
List<T_BS_RISK_SUBMIT_NOTICE> listSubmitNotice = new List<T_BS_RISK_SUBMIT_NOTICE>();
//foreach (var item in listRiskSubminContentl)
//{
//rowIndex++;
if (entityContent.DEPARTMENT_ID.HasValue)
{
ListDepIDNone.Add(entityContent.DEPARTMENT_ID.Value);
}
else
{
ListDepIDNone.Add(Guid.Empty);
}
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp && string.IsNullOrEmpty(entityContent.NAME) && entityContent.QUESTION_LEVEL > 0)
{
try
{
entityContent.NAME = ((BSQuestionLevelEnum)entityContent.QUESTION_LEVEL).GetDescription() + "级隐患";
//手动上报车间级巡回检查A
}
catch { }
}
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp && !isHandNew)//不是手动隐患上报 第一级完善
{
var subTemp = listSubmitNotice.FirstOrDefault(e => e.QUESTION_LEVEL == entityContent.QUESTION_LEVEL);
if (subTemp == null)
{
#region
T_BS_RISK_SUBMIT_NOTICE modelNotice = new T_BS_RISK_SUBMIT_NOTICE();
modelNotice.ID = Guid.NewGuid();
modelNotice.CODE = entityContent.CODE + "_" + (listParam.Count() + 1).ToString();
modelNotice.NAME = ((BSQuestionLevelEnum)entityContent.QUESTION_LEVEL).GetDescription();
if (entityContent.NAME.Contains(entityContent.NAME))
{
modelNotice.NAME = entityContent.NAME;
}
else
{
modelNotice.NAME = entityContent.NAME + modelNotice.NAME;
}
modelNotice.RISK_SUBMIT_ID = entityContent.RISK_SUBMIT_ID.Value;
modelNotice.QUESTION_LEVEL = entityContent.QUESTION_LEVEL;
modelNotice.NOTICETIME = DateTime.Now;
modelNotice.RiskContentState = (int)RiskContentState.Notice;
modelNotice.APPROVE_ID = Guid.NewGuid();
modelNotice.ORG_ID = entityContent.ORG_ID;
#endregion
listSubmitNotice.Add(modelNotice);
entityContent.APPROVE_ID = modelNotice.APPROVE_ID;
entityContent.RISK_SUBMIT_NOTICE_ID = modelNotice.ID;
listId.Add(modelNotice.ID);
listParam.Add(modelNotice.QUESTION_LEVEL.ToString());
listApproveId.Add(modelNotice.APPROVE_ID.Value);
}
else
{
entityContent.APPROVE_ID = subTemp.APPROVE_ID;
entityContent.RISK_SUBMIT_NOTICE_ID = subTemp.ID;
}
}
if (listRiskQuestionReason != null && listRiskQuestionReason.Any())
{
foreach (var item in listRiskQuestionReason)
{
item.ORG_ID = entity.ORG_ID;
item.Nav_RiskReason = null;
}
}
if (files.Count > 0)
{
foreach (var item in files)
{
item.Nav_ImgFile = null;
item.RISK_SUBMIT_ID = entity.ID;
}
}
//如果 有问题ID
//问题等级 和 整改建议与措施 不能修改
if (entityContent.Nav_SafeCheckDetail == null && entityContent.SAFE_CHECK_DETAIL_ID != null)
{
entityContent.Nav_SafeCheckDetail = GetEntity<T_BS_SAFE_CHECK_DETAIL>(e => e.ID == entityContent.SAFE_CHECK_DETAIL_ID);
}
if (entityContent.Nav_SafeCheckDetail != null && entityContent.Nav_SafeCheckDetail.CHECKRESULT == (int)CHECKRESULTEnum.Same)
{
if (entityContent.Nav_CheckMain == null && entityContent.CHECK_MAIN_ID.HasValue)
{
entityContent.Nav_CheckMain = GetEntity<T_BS_CHECK_MAIN>(e => e.ID == entityContent.CHECK_MAIN_ID, new string[] { "Nav_CheckQuestion" });
}
if (entityContent.Nav_CheckMain != null && entityContent.Nav_CheckMain.Nav_CheckQuestion != null)
{
if (entityContent.CHECK_QUESTION_ID != entityContent.Nav_CheckMain.Nav_CheckQuestion.ID)
{
var checkMain = GetEntity<T_BS_CHECK_MAIN>(e => e.CHECK_QUESTION_ID == entityContent.CHECK_QUESTION_ID && e.CHECK_PROJECT_ID == entityContent.Nav_CheckMain.CHECK_PROJECT_ID && e.CHECK_PROJECT_CATEGORY_ID == entityContent.Nav_CheckMain.CHECK_PROJECT_CATEGORY_ID && e.CHECK_PROJECT_CATEGORY_ID == entityContent.Nav_CheckMain.CHECK_PROJECT_CATEGORY_ID && e.CHECKCONTENT == entityContent.Nav_CheckMain.CHECKCONTENT);
if (checkMain == null)
{
//检查问题与描述一致 检查问题不能修改
throw new Exception("整改建议与措施【" + entityContent.Nav_CheckMain.Nav_CheckQuestion.DEMAND + "】不能修改,操作失败!");
}
}
}
}
if (!entity.USER_ID.HasValue)
{
entity.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
}
if (entity.DEPARTMENT_ID == null)
{
entity.DEPARTMENT_ID = GetEntity<T_FM_USER>(entity.USER_ID.Value).DEPARTMENT_ID;
}
if (entityContent.TaskID != Guid.Empty && !entity.STARTTIME.HasValue)
{
var task = GetEntity<T_FM_NOTIFICATION_TASK>(entityContent.TaskID);
entity.STARTTIME = task.CREATE_TIME;
}
//记录完善人信息
entity.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
entity.CREATE_TIME = DateTime.Now;
if (entity.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp)
{
this.UnifiedCommit(() =>
{
if (entityContent != null)
UpdateEntityNoCommit(entityContent);
if (entity != null)
UpdateEntityNoCommit(entity);
if (modelCheck != null)
UpdateEntityNoCommit(modelCheck);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (listRiskQuestionReason != null && listRiskQuestionReason.Any())
BantchSaveEntityNoCommit(listRiskQuestionReason);
});
}
else
{
if (isHandNew)
{
//新流程 单子 给 自己对应车间(及以上)的安全员
Guid UserIDNext = Guid.Empty;
string UserNAMENext = string.Empty;
GetSaferNext(ref UserIDNext, ref UserNAMENext);
if (UserIDNext == Guid.Empty)
{
throw new Exception("获取对应安全员信息失败,请联系管理人员!");
}
DateTime? TASK_ENDDT = null;
T_FM_NOTIFICATION_TASK taskEnd = null;
if (entityContent.TaskID != Guid.Empty)
{
taskEnd = NotificationTaskService.GetEntityTask(entityContent.TaskID, "BS073_SHOWPRINT");
if (taskEnd != null)
{
TASK_ENDDT = taskEnd.TASK_ENDDT;
}
}
List<T_BS_OPERATE_LOG> listLog = new List<T_BS_OPERATE_LOG>();
listLog.AddRange(OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskInfoCompleteSD, entityContent.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { UserIDNext }, new List<string>() { UserNAMENext }, entityContent.ORG_ID, entityContent.ID, null, false, TASK_ENDDT)); // RiskUpSD => RiskInfoCompleteSD 信息完善选择新问题
var taskNext = NotificationTaskService.InsertUserNoticeTaskModel("手动隐患上报-指定责任单位", entityContent.ID, entityContent.ORG_ID, UserIDNext, UserNAMENext, DateTime.Now, 0, "BS081", FMTASKTYPE.Default);
this.UnifiedCommit(() =>
{
UpdateEntity(taskNext);
if (taskEnd != null)
UpdateEntity(taskEnd);
if (listLog != null && listLog.Any())
BantchSaveEntityNoCommit(listLog);
if (entityContent != null)
UpdateEntityNoCommit(entityContent);
if (entity != null)
UpdateEntityNoCommit(entity);
if (modelCheck != null)
UpdateEntityNoCommit(modelCheck);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (listRiskQuestionReason != null && listRiskQuestionReason.Any())
BantchSaveEntityNoCommit(listRiskQuestionReason);
//if (listSubmitNotice.Any())
// BantchSaveEntityNoCommit(listSubmitNotice);
});
}
else
{
//旧流程
//手动隐患上报 为了让整改通知 数据权限正常 修改部门信息为 责任部门信息
if (entityContent.DEPARTMENT_ID.HasValue && entity.DEPARTMENT_ID != entityContent.DEPARTMENT_ID)
{
entity.DEPARTMENT_ID = entityContent.DEPARTMENT_ID;
}
List<string> listSerialCode = new List<string>();
var index = entity.CODE.IndexOf(DateTime.Now.Year.ToString());
if (index == -1)
{
index = entity.CODE.IndexOf((DateTime.Now.Year - 1).ToString());
}
string yearMonth = string.Empty;
if (index > 0)
{
yearMonth = entity.CODE.Substring(index);
}
else
{
yearMonth = DateTime.Now.ToString("yyyyMMddHHmmss");
}
string code = "YHSB" + yearMonth;
if (code.Length > 20)
{
code = code.Substring(0, 15);
}
listSerialCode.Add(code);
if (listParam.Count > 1)
{
for (int i = 1; i < listParam.Count; i++)
{
listSerialCode.Add(code + i.ToString());
}
}
//如果是手动隐患上报 根据明细的 整改责任人 来走审批流 20240118
Guid? ApproveIDDependUserID = entityContent.DEAL_USER_ID;
List<int> listLevel = new List<int>() { entityContent.QUESTION_LEVEL };
Dictionary<int, List<Guid>> dic = new Dictionary<int, List<Guid>>();
dic.Add(entityContent.QUESTION_LEVEL, new List<Guid>() { entityContent.ID });
//??????
////给通知责任人 发送通知
////通知责任人 确定 后 走审批流
MFlowPermitService.InsertApproveRisk(listSerialCode, "BS006", listId, "BS006_SHOWPRINT", entityContent.TaskID, true, () =>
{
if (entityContent != null)
UpdateEntityNoCommit(entityContent);
if (entity != null)
UpdateEntityNoCommit(entity);
if (listSubmitNotice.Any())
BantchSaveEntityNoCommit(listSubmitNotice);
if (modelCheck != null)
UpdateEntityNoCommit(modelCheck);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (listRiskQuestionReason != null && listRiskQuestionReason.Any())
BantchSaveEntityNoCommit(listRiskQuestionReason);
}, listParam, listApproveId, ApproveIDDependUserID, "BS073_SHOWPRINT", null, ListDepIDNone, FMTASKTYPE.BS_RiskUp_Audit, null, null, ((int)OPERATEPOINT_Enums.RiskInfoCompleteSD), entity.ID, listLevel, dic);// null =>ApproveIDDependUserID
}
}
}
return true;
});
}
/// <summary>
/// 隐患上报表 新问题 (BS078)
///
/// </summary>
/// <param name="entityContent"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpPost, Route("FullUpdateRiskAndMain")]
public JsonActionResult<bool> FullUpdateRiskAndMain([FromBody] T_BS_RISK_SUBMIT_CONTENT entityContent)
{
return SafeExecute<bool>(() =>
{
var checkMain = entityContent.Nav_CheckMain;
if (entityContent.CHECK_MAIN_ID.HasValue && entityContent.CHECK_MAIN_ID.Value != Guid.Empty && checkMain.ID != entityContent.CHECK_MAIN_ID)
{
checkMain.ID = entityContent.CHECK_MAIN_ID.Value;
}
#region
if (checkMain.CHECK_TYPE_ID == null)
checkMain.CHECK_TYPE_ID = entityContent.Nav_Submit.CHECK_TYPE_ID;
if (checkMain.CHECK_TYPE_LEVEL_ID == null)
checkMain.CHECK_TYPE_LEVEL_ID = entityContent.Nav_Submit.CHECK_TYPE_LEVEL_ID;
if (checkMain.CHECK_TYPE_LEVEL_ID == null && entityContent.CHECK_TYPE_LEVEL_ID != null)
checkMain.CHECK_TYPE_LEVEL_ID = entityContent.CHECK_TYPE_LEVEL_ID;
if (checkMain == null)
{
throw new Exception("获取信息完善数据失败!");
}
if (checkMain.CHECK_TYPE_ID == null)
{
throw new Exception("获取检查类型失败!");
}
if (checkMain.CHECK_TYPE_LEVEL_ID == null)
{
throw new Exception("获取检查层级失败!");
}
if (checkMain.Nav_CheckProject == null)
{
throw new Exception("获取检查项目失败!");
}
if (checkMain.Nav_CheckProjectCategory == null)
{
throw new Exception("获取检查项目分类失败!");
}
if (string.IsNullOrEmpty(checkMain.CHECKCONTENT))
{
throw new Exception("请填写检查内容!");
}
if (!string.IsNullOrEmpty(checkMain?.Nav_CheckQuestion?.DESCREPTION))
{
checkMain.DESCREPTION = checkMain.Nav_CheckQuestion.DESCREPTION;
}
if (!string.IsNullOrEmpty(checkMain?.Nav_CheckQuestion?.DEMAND))
{
checkMain.DEMAND = checkMain.Nav_CheckQuestion.DEMAND;
}
if (string.IsNullOrEmpty(checkMain.DESCREPTION))
{
throw new Exception("请填写检查问题描述!");
}
if (string.IsNullOrEmpty(checkMain.DEMAND))
{
throw new Exception("请填写整改建议与措施!");
}
if (checkMain.QUESTION_LEVEL == 0)
{
throw new Exception("请选择检查问题等级!");
}
if (!entityContent.DEAL_DEPARTMENT_ID.HasValue)
{
throw new Exception("获取整改实施单位失败!");
}
#endregion
checkMain.CHECK_TYPE_ID = entityContent.CHECK_TYPE_ID;// checkMain.Nav_CheckType.ID;
checkMain.CHECK_TYPE_LEVEL_ID = entityContent.CHECK_TYPE_LEVEL_ID;// checkMain.Nav_CheckTypeLevel.ID;
checkMain.CHECK_PROJECT_ID = entityContent.CHECK_PROJECT_ID;// checkMain.Nav_CheckProject.ID;
checkMain.CHECK_PROJECT_CATEGORY_ID = entityContent.CHECK_PROJECT_CATEGORY_ID;// checkMain.Nav_CheckProjectCategory.ID;
checkMain.RISK_AREA_ID = entityContent.RISK_AREA_ID;
checkMain.ORG_ID = entityContent.ORG_ID;
checkMain.Nav_CheckType = null;
checkMain.Nav_CheckTypeLevel = null;
checkMain.Nav_CheckProject = null;
checkMain.Nav_CheckProjectCategory = null;
checkMain.Nav_CheckQuestion = null;
#region checkMain UpdateMore
T_BS_CHECK_CONTENTS modelContents = null;
var contents = GetEntities<T_BS_CHECK_CONTENTS>(e => e.CHECKOBJECT == (BSMineTypeEnum)checkMain.CHECKOBJECT && !e.IS_DELETED && e.CHECKCONTENT == checkMain.CHECKCONTENT, null, null);
bool isAddContent = false;
bool isNeedAddQuestion = false;
if (contents != null && contents.Any())
{
modelContents = contents.ToList()[0];
}
else
{
isAddContent = true;
isNeedAddQuestion = true;//添加了检查内容 一定会 添加 检查问题
modelContents = new T_BS_CHECK_CONTENTS()
{
ID = Guid.NewGuid(),
ORG_ID = entityContent.ORG_ID,
CHECKCONTENT = checkMain.CHECKCONTENT,
CHECKOBJECT = (BSMineTypeEnum)checkMain.CHECKOBJECT,
CREATE_TIME = DateTime.Now,
CREATER_ID = checkMain.CREATER_ID
};
}
checkMain.CHECK_CONTENTS_ID = modelContents.ID;//检查内容赋值
T_BS_CHECK_QUESTION modelQuestion = null;
BSQuestionLevelEnum quesLevel = (BSQuestionLevelEnum)checkMain.QUESTION_LEVEL;
entityContent.QUESTION_LEVEL = checkMain.QUESTION_LEVEL;
var questionCheck = GetEntity<T_BS_CHECK_QUESTION>(e => e.CHECK_CONTENTS_ID == modelContents.ID && e.DEMAND == checkMain.DEMAND && e.DESCREPTION == checkMain.DESCREPTION && e.QUESTION_LEVEL == quesLevel);
if (questionCheck == null)
isNeedAddQuestion = true;
else
modelQuestion = questionCheck;
if (isNeedAddQuestion)
{
modelQuestion = new T_BS_CHECK_QUESTION()
{
ID = Guid.NewGuid(),
ORG_ID = checkMain.ORG_ID,
CHECK_CONTENTS_ID = modelContents.ID,
DEMAND = checkMain.DEMAND,
DESCREPTION = checkMain.DESCREPTION,
QUESTION_LEVEL = quesLevel,
NUM = 1,
ENABLE_STATUS = 0,
SERIOUS_RISK = (quesLevel == BSQuestionLevelEnum. ? 1 : 0),
CREATE_TIME = DateTime.Now,
CREATER_ID = checkMain.CREATER_ID
};
}
checkMain.CHECK_QUESTION_ID = modelQuestion.ID;//检查问题赋值
bool isAddMain = false;
bool isAddMainDep = false;
T_BS_CHECK_CONTENT_MAIN_DEPARTMENT modelMainDep = null;
if (isNeedAddQuestion || isAddContent)
{
//没有加 检查内容 和 检查检查问题
var listMain = GetEntities<T_BS_CHECK_MAIN>(e => e.CHECK_QUESTION_ID.HasValue && e.CHECK_QUESTION_ID.HasValue && !e.IS_DELETED && e.RISK_AREA_ID.HasValue && e.CHECK_QUESTION_ID == checkMain.CHECK_QUESTION_ID && e.CHECK_CONTENTS_ID == checkMain.CHECK_CONTENTS_ID && e.CHECK_TYPE_ID == checkMain.CHECK_TYPE_ID && e.CHECK_TYPE_LEVEL_ID == checkMain.CHECK_TYPE_LEVEL_ID && e.RISK_AREA_ID.Value == checkMain.RISK_AREA_ID && e.CHECKCONTENT == checkMain.CHECKCONTENT && e.CHECK_QUESTION_ID == checkMain.CHECK_QUESTION_ID && e.CHECK_PROJECT_ID == checkMain.CHECK_PROJECT_ID && e.CHECK_PROJECT_CATEGORY_ID == checkMain.CHECK_PROJECT_CATEGORY_ID, null, null);
if (listMain != null && listMain.Any())
{
var mainID = listMain.Select(e => e.ID);
var listMainDep = GetEntities<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT>(e => e.MAIN_ID.HasValue && e.DEPARTMENT_ID.HasValue && mainID.Contains(e.MAIN_ID.Value) && e.DEPARTMENT_ID.Value == entityContent.DEAL_DEPARTMENT_ID.Value, null, null);
if (listMainDep != null && listMainDep.Any())
{
//库里有完全一样的
var MAIN_ID = listMainDep.ToList()[0].MAIN_ID.Value;
checkMain = listMain.First(e => e.ID == MAIN_ID);
}
else
{
isAddMain = false;
checkMain = listMain.ToList()[0];
isAddMainDep = true;
}
}
else
{
isAddMain = true;
isAddMainDep = true;
}
}
if (isAddMain)
{
checkMain.ISRISK = (checkMain.QUESTION_LEVEL == 10 ? true : false);
checkMain.ENABLE_STATUS = 1;//先不可用 最后变成可用
checkMain.IS_DELETED = false;
checkMain.NUM = 1;
}
if (isAddMainDep)
{
//需要添加 责任组织
modelMainDep = new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
{
ID = Guid.NewGuid(),
ORG_ID = checkMain.ORG_ID,
MAIN_ID = checkMain.ID,
DEPARTMENT_ID = entityContent.DEAL_DEPARTMENT_ID.Value,
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head,
CREATE_TIME = DateTime.Now,
CREATER_ID = checkMain.CREATER_ID
};
}
#endregion
//保存 保存并发送
var entity = entityContent.Nav_Submit;
if (entity == null)
{
//页面传值过来是null
entity = GetEntity<T_BS_RISK_SUBMIT>(entityContent.RISK_SUBMIT_ID.Value);
entity.SUBMIT_STATUS = entityContent.SUBMIT_STATUS;
if (entityContent.CHECK_TYPE_ID.HasValue)
entity.CHECK_TYPE_ID = entityContent.CHECK_TYPE_ID;
if (entityContent.CHECK_TYPE_LEVEL_ID.HasValue)
entity.CHECK_TYPE_LEVEL_ID = entityContent.CHECK_TYPE_LEVEL_ID;
if (entityContent.CHECKOBJECT.HasValue)
entity.CHECKOBJECT = entityContent.CHECKOBJECT;
}
else
{
//获取页面传参
entity.SUBMIT_STATUS = entityContent.SUBMIT_STATUS;
if (entityContent.CHECK_TYPE_ID.HasValue)
entity.CHECK_TYPE_ID = entityContent.CHECK_TYPE_ID;
if (entityContent.CHECK_TYPE_LEVEL_ID.HasValue)
entity.CHECK_TYPE_LEVEL_ID = entityContent.CHECK_TYPE_LEVEL_ID;
entity.CHECKOBJECT = entityContent.CHECKOBJECT;
}
var files = entityContent.Nav_Files;
entityContent.Nav_Files = null;
var listRiskQuestionReason = entityContent.Nav_ListRiskQuestionReason;
entityContent.Nav_ListRiskQuestionReason = null;
#region
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)
{
if (!entityContent.LastDateUser.HasValue)
throw new Exception("整改期限不能为空!");
else if (!entityContent.LastDateSystem.HasValue)
throw new Exception("系统整改期限不能为空!");
else if (entityContent.LastDateUser.Value > entityContent.LastDateSystem.Value)
throw new Exception("整改期限不能大于系统整改期限!");
else
entityContent.LastDateUser = entityContent.LastDateUser.Value.Date.AddDays(1).AddSeconds(-1);
if (listRiskQuestionReason == null || !listRiskQuestionReason.Any())
throw new Exception("隐患原因不能为空!");
if (!entityContent.DEAL_DEPARTMENT_ID.HasValue)
throw new Exception("整改实施单位不能为空!");
if (!entityContent.DEAL_USER_ID.HasValue)
throw new Exception("整改责任人不能为空!");
else
{
entityContent.USER_ID = entityContent.DEAL_USER_ID;
entityContent.DEPARTMENT_ID = entityContent.DEAL_DEPARTMENT_ID;
}
if (!entityContent.CHECK_USER_ID.HasValue)
throw new Exception("验收人不能为空!");
if (entityContent.DEAL_USER_ID.Value == entityContent.CHECK_USER_ID)
throw new Exception("整改责任人和验收人不能同一个人!");
}
#endregion
//entity.SUBMIT_TYPE = (int)SUBMIT_TYPE.User;
if (!entity.CHECKTIME.HasValue)
entity.CHECKTIME = DateTime.Now;
if (string.IsNullOrEmpty(entity.CODE))
entity.CODE = "YHSB" + DateTime.Now.ToString("yyyyMMddHHmm");
//安全检查修改为隐患已上报
T_BS_SAFE_CHECK modelCheck = null;
if (entity.CHECK_ID.HasValue)
{
modelCheck = this.GetEntity<T_BS_SAFE_CHECK>(entity.CHECK_ID.Value, new string[] { "Nav_ListSafeCheckDetail" });
if (modelCheck != null)
modelCheck.RISKSTATE = (int)RISKSTATE.Reported;
}
List<Guid> listApproveId = new List<Guid>();
List<Guid> listId = new List<Guid>();
List<string> listParam = new List<string>();
List<Guid> ListDepIDNone = new List<Guid>(); //责任部门ID
//通知表单
List<T_BS_RISK_SUBMIT_NOTICE> listSubmitNotice = new List<T_BS_RISK_SUBMIT_NOTICE>();
//foreach (var item in listRiskSubminContentl)
//{
//rowIndex++;
if (entityContent.DEPARTMENT_ID.HasValue)
{
ListDepIDNone.Add(entityContent.DEPARTMENT_ID.Value);
}
else
{
ListDepIDNone.Add(Guid.Empty);
}
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp && string.IsNullOrEmpty(entityContent.NAME) && entityContent.QUESTION_LEVEL > 0)
{
try
{
entityContent.NAME = ((BSQuestionLevelEnum)checkMain.QUESTION_LEVEL).GetDescription() + "隐患";
//手动上报车间级巡回检查A
}
catch { }
}
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)//不是手动隐患上报 第一级完善
{
var subTemp = listSubmitNotice.FirstOrDefault(e => e.QUESTION_LEVEL == checkMain.QUESTION_LEVEL);
if (subTemp == null)
{
#region
T_BS_RISK_SUBMIT_NOTICE modelNotice = new T_BS_RISK_SUBMIT_NOTICE();
modelNotice.ID = Guid.NewGuid();
modelNotice.CODE = entityContent.CODE + "_" + (listParam.Count() + 1).ToString();
modelNotice.NAME = ((BSQuestionLevelEnum)checkMain.QUESTION_LEVEL).GetDescription();
if (entityContent.NAME.Contains(entityContent.NAME))
{
modelNotice.NAME = entityContent.NAME;
}
else
{
modelNotice.NAME = entityContent.NAME + modelNotice.NAME;
}
modelNotice.RISK_SUBMIT_ID = entityContent.RISK_SUBMIT_ID.Value;
modelNotice.QUESTION_LEVEL = checkMain.QUESTION_LEVEL;// entityContent.QUESTION_LEVEL;
modelNotice.NOTICETIME = DateTime.Now;
modelNotice.RiskContentState = (int)RiskContentState.Notice;
modelNotice.APPROVE_ID = Guid.NewGuid();
modelNotice.ORG_ID = entityContent.ORG_ID;
#endregion
listSubmitNotice.Add(modelNotice);
entityContent.APPROVE_ID = modelNotice.APPROVE_ID;
entityContent.RISK_SUBMIT_NOTICE_ID = modelNotice.ID;
listId.Add(modelNotice.ID);
listParam.Add(checkMain.QUESTION_LEVEL.ToString());
listApproveId.Add(modelNotice.APPROVE_ID.Value);
}
else
{
entityContent.APPROVE_ID = subTemp.APPROVE_ID;
entityContent.RISK_SUBMIT_NOTICE_ID = subTemp.ID;
}
}
if (listRiskQuestionReason != null && listRiskQuestionReason.Any())
{
foreach (var item in listRiskQuestionReason)
{
item.ORG_ID = entity.ORG_ID;
item.Nav_RiskReason = null;
}
}
if (files.Count > 0)
{
foreach (var item in files)
{
item.Nav_ImgFile = null;
item.RISK_SUBMIT_ID = entity.ID;
}
}
if (!entity.USER_ID.HasValue)
{
entity.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
}
if (entity.DEPARTMENT_ID == null)
{
entity.DEPARTMENT_ID = GetEntity<T_FM_USER>(entity.USER_ID.Value).DEPARTMENT_ID;
}
if (entityContent.TaskID != Guid.Empty && !entity.STARTTIME.HasValue)
{
var task = GetEntity<T_FM_NOTIFICATION_TASK>(entityContent.TaskID);
entity.STARTTIME = task.CREATE_TIME;
}
//记录完善人信息
entity.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
entity.CREATE_TIME = DateTime.Now;
entityContent.CHECKCONTENT = checkMain.CHECKCONTENT;
entityContent.CHECK_CONTENTS_ID = checkMain.CHECK_CONTENTS_ID;
entityContent.CHECK_QUESTION_ID = checkMain.CHECK_QUESTION_ID;
entityContent.DEMAND = checkMain.DEMAND;
entityContent.DESCREPTION = checkMain.DESCREPTION;
entityContent.Nav_CheckMain = null;
entity.Nav_Check = null;
entity.Nav_CheckTypeLevel = null;
if (entity.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp)
{
this.UnifiedCommit(() =>
{
if (checkMain != null)
UpdateEntityNoCommit(checkMain);
if (modelContents != null)
UpdateEntityNoCommit(modelContents);
if (modelQuestion != null)
UpdateEntityNoCommit(modelQuestion);
if (modelMainDep != null)
UpdateEntityNoCommit(modelMainDep);
if (entityContent != null)
UpdateEntityNoCommit(entityContent);
if (entity != null)
UpdateEntityNoCommit(entity);
if (modelCheck != null)
UpdateEntityNoCommit(modelCheck);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (listRiskQuestionReason != null && listRiskQuestionReason.Any())
BantchSaveEntityNoCommit(listRiskQuestionReason);
});
}
else
{
//旧流程
//手动隐患上报 为了让整改通知 数据权限正常 修改部门信息为 责任部门信息
if (entityContent.DEPARTMENT_ID.HasValue && entity.DEPARTMENT_ID != entityContent.DEPARTMENT_ID)
{
entity.DEPARTMENT_ID = entityContent.DEPARTMENT_ID;
}
List<string> listSerialCode = new List<string>();
var index = entity.CODE.IndexOf(DateTime.Now.Year.ToString());
if (index == -1)
{
index = entity.CODE.IndexOf((DateTime.Now.Year - 1).ToString());
}
string yearMonth = string.Empty;
if (index > 0)
{
yearMonth = entity.CODE.Substring(index);
}
else
{
yearMonth = DateTime.Now.ToString("yyyyMMddHHmmss");
}
string code = "YHSB" + yearMonth;
if (code.Length > 20)
{
code = code.Substring(0, 15);
}
listSerialCode.Add(code);
if (listParam.Count > 1)
{
for (int i = 1; i < listParam.Count; i++)
{
listSerialCode.Add(code + i.ToString());
}
}
//如果是手动隐患上报 根据明细的 整改责任人 来走审批流 20240118
Guid? ApproveIDDependUserID = entityContent.DEAL_USER_ID;
List<int> listLevel = new List<int>() { checkMain.QUESTION_LEVEL };
Dictionary<int, List<Guid>> dic = new Dictionary<int, List<Guid>>();
dic.Add(checkMain.QUESTION_LEVEL, new List<Guid>() { entityContent.ID });
//??????
////给通知责任人 发送通知
////通知责任人 确定 后 走审批流
MFlowPermitService.InsertApproveRisk(listSerialCode, "BS006", listId, "BS006_SHOWPRINT", entityContent.TaskID, true, () =>
{
if (checkMain != null)
UpdateEntityNoCommit(checkMain);
if (modelContents != null)
UpdateEntityNoCommit(modelContents);
if (modelQuestion != null)
UpdateEntityNoCommit(modelQuestion);
if (modelMainDep != null)
UpdateEntityNoCommit(modelMainDep);
if (entityContent != null)
UpdateEntityNoCommit(entityContent);
if (entity != null)
UpdateEntityNoCommit(entity);
if (listSubmitNotice.Any())
BantchSaveEntityNoCommit(listSubmitNotice);
if (modelCheck != null)
UpdateEntityNoCommit(modelCheck);
if (files != null && files.Any())
BantchSaveEntityNoCommit(files);
if (listRiskQuestionReason != null && listRiskQuestionReason.Any())
BantchSaveEntityNoCommit(listRiskQuestionReason);
}, listParam, listApproveId, ApproveIDDependUserID, "BS073_SHOWPRINT", null, ListDepIDNone, FMTASKTYPE.BS_RiskUp_Audit, null, null, ((int)OPERATEPOINT_Enums.RiskInfoCompleteSDNew), entity.ID, listLevel, dic);// null =>ApproveIDDependUserID RiskInfoCompleteSD (新问题填写 RiskInfoCompleteSDNew
}
return true;
});
}
/// <summary>
/// 手动隐患上报 指定责任单位 责任人 验收人
/// </summary>
/// <param name="entityContent"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpPost, Route("DesignationDealUser")]
public JsonActionResult<bool> DesignationDealUser([FromBody] T_BS_RISK_SUBMIT_CONTENT entityContent)
{
return SafeExecute<bool>(() =>
{
//保存 保存并发送
var entity = entityContent.Nav_Submit;
if (entity == null)
{
//页面传值过来是null
entity = GetEntity<T_BS_RISK_SUBMIT>(entityContent.RISK_SUBMIT_ID.Value);
entity.SUBMIT_STATUS = entityContent.SUBMIT_STATUS;
//if (entityContent.CHECK_TYPE_ID.HasValue)
// entity.CHECK_TYPE_ID = entityContent.CHECK_TYPE_ID;
//if (entityContent.CHECK_TYPE_LEVEL_ID.HasValue)
// entity.CHECK_TYPE_LEVEL_ID = entityContent.CHECK_TYPE_LEVEL_ID;
//if (entityContent.CHECKOBJECT.HasValue)
// entity.CHECKOBJECT = entityContent.CHECKOBJECT;
}
//else
//{
// //获取页面传参
// entity.SUBMIT_STATUS = entityContent.SUBMIT_STATUS;
// if (entityContent.CHECK_TYPE_ID.HasValue)
// entity.CHECK_TYPE_ID = entityContent.CHECK_TYPE_ID;
// if (entityContent.CHECK_TYPE_LEVEL_ID.HasValue)
// entity.CHECK_TYPE_LEVEL_ID = entityContent.CHECK_TYPE_LEVEL_ID;
// entity.CHECKOBJECT = entityContent.CHECKOBJECT;
//}
//var files = entityContent.Nav_Files;
//entityContent.Nav_Files = null;
//var listRiskQuestionReason = entityContent.Nav_ListRiskQuestionReason;
//entityContent.Nav_ListRiskQuestionReason = null;
#region
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)
{
if (!entityContent.DEAL_DEPARTMENT_ID.HasValue)
throw new Exception("整改实施单位不能为空!");
if (!entityContent.DEAL_USER_ID.HasValue)
throw new Exception("整改责任人不能为空!");
else
{
entityContent.USER_ID = entityContent.DEAL_USER_ID;
entityContent.DEPARTMENT_ID = entityContent.DEAL_DEPARTMENT_ID;
}
if (!entityContent.CHECK_USER_ID.HasValue)
throw new Exception("验收人不能为空!");
if (entityContent.DEAL_USER_ID.Value == entityContent.CHECK_USER_ID)
throw new Exception("整改责任人和验收人不能同一个人!");
}
#endregion
//entity.SUBMIT_TYPE = (int)SUBMIT_TYPE.User;
if (!entity.CHECKTIME.HasValue)
entity.CHECKTIME = DateTime.Now;
if (string.IsNullOrEmpty(entity.CODE))
entity.CODE = "YHSB" + DateTime.Now.ToString("yyyyMMddHHmm");
List<Guid> listApproveId = new List<Guid>();
List<Guid> listId = new List<Guid>();
List<string> listParam = new List<string>();
List<Guid> ListDepIDNone = new List<Guid>(); //责任部门ID
//通知表单
List<T_BS_RISK_SUBMIT_NOTICE> listSubmitNotice = new List<T_BS_RISK_SUBMIT_NOTICE>();
//foreach (var item in listRiskSubminContentl)
//{
//rowIndex++;
if (entityContent.DEPARTMENT_ID.HasValue)
{
ListDepIDNone.Add(entityContent.DEPARTMENT_ID.Value);
}
else
{
ListDepIDNone.Add(Guid.Empty);
}
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp && string.IsNullOrEmpty(entityContent.NAME) && entityContent.QUESTION_LEVEL > 0)
{
try
{
entityContent.NAME = ((BSQuestionLevelEnum)entityContent.QUESTION_LEVEL).GetDescription() + "级隐患";
//手动上报车间级巡回检查A
}
catch { }
}
if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp)//不是手动隐患上报 第一级完善
{
var subTemp = listSubmitNotice.FirstOrDefault(e => e.QUESTION_LEVEL == entityContent.QUESTION_LEVEL);
if (subTemp == null)
{
#region
T_BS_RISK_SUBMIT_NOTICE modelNotice = new T_BS_RISK_SUBMIT_NOTICE();
modelNotice.ID = Guid.NewGuid();
modelNotice.CODE = entityContent.CODE + "_" + (listParam.Count() + 1).ToString();
modelNotice.NAME = ((BSQuestionLevelEnum)entityContent.QUESTION_LEVEL).GetDescription();
if (entityContent.NAME.Contains(entityContent.NAME))
{
modelNotice.NAME = entityContent.NAME;
}
else
{
modelNotice.NAME = entityContent.NAME + modelNotice.NAME;
}
modelNotice.RISK_SUBMIT_ID = entityContent.RISK_SUBMIT_ID.Value;
modelNotice.QUESTION_LEVEL = entityContent.QUESTION_LEVEL;
modelNotice.NOTICETIME = DateTime.Now;
modelNotice.RiskContentState = (int)RiskContentState.Notice;
modelNotice.APPROVE_ID = Guid.NewGuid();
modelNotice.ORG_ID = entityContent.ORG_ID;
#endregion
listSubmitNotice.Add(modelNotice);
entityContent.APPROVE_ID = modelNotice.APPROVE_ID;
entityContent.RISK_SUBMIT_NOTICE_ID = modelNotice.ID;
listId.Add(modelNotice.ID);
listParam.Add(modelNotice.QUESTION_LEVEL.ToString());
listApproveId.Add(modelNotice.APPROVE_ID.Value);
}
else
{
entityContent.APPROVE_ID = subTemp.APPROVE_ID;
entityContent.RISK_SUBMIT_NOTICE_ID = subTemp.ID;
}
}
//if (listRiskQuestionReason != null && listRiskQuestionReason.Any())
//{
// foreach (var item in listRiskQuestionReason)
// {
// item.ORG_ID = entity.ORG_ID;
// item.Nav_RiskReason = null;
// }
//}
//if (files.Count > 0)
//{
// foreach (var item in files)
// {
// item.Nav_ImgFile = null;
// item.RISK_SUBMIT_ID = entity.ID;
// }
//}
//如果 有问题ID
//问题等级 和 整改建议与措施 不能修改
if (entityContent.Nav_SafeCheckDetail == null && entityContent.SAFE_CHECK_DETAIL_ID != null)
{
entityContent.Nav_SafeCheckDetail = GetEntity<T_BS_SAFE_CHECK_DETAIL>(e => e.ID == entityContent.SAFE_CHECK_DETAIL_ID);
}
if (entityContent.Nav_SafeCheckDetail != null && entityContent.Nav_SafeCheckDetail.CHECKRESULT == (int)CHECKRESULTEnum.Same)
{
if (entityContent.Nav_CheckMain == null && entityContent.CHECK_MAIN_ID.HasValue)
{
entityContent.Nav_CheckMain = GetEntity<T_BS_CHECK_MAIN>(e => e.ID == entityContent.CHECK_MAIN_ID, new string[] { "Nav_CheckQuestion" });
}
if (entityContent.Nav_CheckMain != null && entityContent.Nav_CheckMain.Nav_CheckQuestion != null)
{
if (entityContent.CHECK_QUESTION_ID != entityContent.Nav_CheckMain.Nav_CheckQuestion.ID)
{
var checkMain = GetEntity<T_BS_CHECK_MAIN>(e => e.CHECK_QUESTION_ID == entityContent.CHECK_QUESTION_ID && e.CHECK_PROJECT_ID == entityContent.Nav_CheckMain.CHECK_PROJECT_ID && e.CHECK_PROJECT_CATEGORY_ID == entityContent.Nav_CheckMain.CHECK_PROJECT_CATEGORY_ID && e.CHECK_PROJECT_CATEGORY_ID == entityContent.Nav_CheckMain.CHECK_PROJECT_CATEGORY_ID && e.CHECKCONTENT == entityContent.Nav_CheckMain.CHECKCONTENT);
if (checkMain == null)
{
//检查问题与描述一致 检查问题不能修改
throw new Exception("整改建议与措施【" + entityContent.Nav_CheckMain.Nav_CheckQuestion.DEMAND + "】不能修改,操作失败!");
}
}
}
}
if (!entity.USER_ID.HasValue)
{
entity.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
}
if (entity.DEPARTMENT_ID == null)
{
entity.DEPARTMENT_ID = GetEntity<T_FM_USER>(entity.USER_ID.Value).DEPARTMENT_ID;
}
if (entityContent.TaskID != Guid.Empty && !entity.STARTTIME.HasValue)
{
var task = GetEntity<T_FM_NOTIFICATION_TASK>(entityContent.TaskID);
entity.STARTTIME = task.CREATE_TIME;
}
//记录完善人信息
entity.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
entity.CREATE_TIME = DateTime.Now;
if (entity.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp)
{
this.UnifiedCommit(() =>
{
if (entityContent != null)
UpdateEntityNoCommit(entityContent);
if (entity != null)
UpdateEntityNoCommit(entity);
//if (files != null && files.Any())
// BantchSaveEntityNoCommit(files);
//if (listRiskQuestionReason != null && listRiskQuestionReason.Any())
// BantchSaveEntityNoCommit(listRiskQuestionReason);
});
}
else
{
//手动隐患上报 为了让整改通知 数据权限正常 修改部门信息为 责任部门信息
if (entityContent.DEPARTMENT_ID.HasValue && entity.DEPARTMENT_ID != entityContent.DEPARTMENT_ID)
{
entity.DEPARTMENT_ID = entityContent.DEPARTMENT_ID;
}
List<string> listSerialCode = new List<string>();
var index = entity.CODE.IndexOf(DateTime.Now.Year.ToString());
if (index == -1)
{
index = entity.CODE.IndexOf((DateTime.Now.Year - 1).ToString());
}
string yearMonth = string.Empty;
if (index > 0)
{
yearMonth = entity.CODE.Substring(index);
}
else
{
yearMonth = DateTime.Now.ToString("yyyyMMddHHmmss");
}
string code = "YHSB" + yearMonth;
if (code.Length > 20)
{
code = code.Substring(0, 15);
}
listSerialCode.Add(code);
if (listParam.Count > 1)
{
for (int i = 1; i < listParam.Count; i++)
{
listSerialCode.Add(code + i.ToString());
}
}
//如果是手动隐患上报 根据明细的 整改责任人 来走审批流 20240118
Guid? ApproveIDDependUserID = entityContent.DEAL_USER_ID;
List<int> listLevel = new List<int>() { entityContent.QUESTION_LEVEL };
Dictionary<int, List<Guid>> dic = new Dictionary<int, List<Guid>>();
dic.Add(entityContent.QUESTION_LEVEL, new List<Guid>() { entityContent.ID });
//??????
////给通知责任人 发送通知
////通知责任人 确定 后 走审批流
MFlowPermitService.InsertApproveRisk(listSerialCode, "BS006", listId, "BS006_SHOWPRINT", entityContent.TaskID, true, () =>
{
if (entityContent != null)
UpdateEntityNoCommit(entityContent);
if (entity != null)
UpdateEntityNoCommit(entity);
if (listSubmitNotice.Any())
BantchSaveEntityNoCommit(listSubmitNotice);
//if (files != null && files.Any())
// BantchSaveEntityNoCommit(files);
//if (listRiskQuestionReason != null && listRiskQuestionReason.Any())
// BantchSaveEntityNoCommit(listRiskQuestionReason);
}, listParam, listApproveId, ApproveIDDependUserID, "BS073_SHOWPRINT", null, ListDepIDNone, FMTASKTYPE.BS_RiskUp_Audit, null, null, ((int)OPERATEPOINT_Enums.RiskInfoCompleteSDNew), entity.ID, listLevel, dic);// null =>ApproveIDDependUserID RiskInfoCompleteSD
}
return true;
});
}
/// <summary>
/// 获取手动上报信息完善 下一个接收的人(车间及以上的安全员)
/// 如果是 安环部的成员 那么给自己
/// </summary>
/// <param name="UserIDNext"></param>
/// <param name="UserNAMENext"></param>
private void GetSaferNext(ref Guid UserIDNext, ref string UserNAMENext)
{
//[Description("部门层级")] FMDepartmentType 部门 = 0,// 车间 = 1, // 班组 = 2, //公司 = 3
var depID = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value;
var depLoginDep = GetEntity<T_FM_DEPARTMENT>(depID);
if (depLoginDep.DEPARTMENT_STATUS == (int)FMDepartmentStatus.)
{
UserIDNext = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
UserNAMENext = GetEntity<T_FM_USER>(UserIDNext).NAME;
}
else
{
int DEPARTMENT_TYPE = depLoginDep.DEPARTMENT_TYPE;
if (depLoginDep.DEPARTMENT_TYPE == 20)
2025-08-25 09:56:57 +08:00
{
depID = depLoginDep.PARENT_ID.Value;
}
var ApproveRole = GetEntities<T_PF_APPROVAL_ROLE>(e => !e.IS_DELETED && e.NAME.Contains("安全员"), null, null);
if (ApproveRole != null && ApproveRole.Any())
{
var listApproveRoleID = ApproveRole.Select(e => e.ID);
var listUser = GetEntities<T_FM_USER>(e => e.DEPARTMENT_ID == depID && e.ENABLE_STATUS == 0 && !e.IS_DELETED && e.APPROVE_ROLE_ID.HasValue && listApproveRoleID.Contains(e.APPROVE_ROLE_ID.Value), null);
int RecursionMaxTime = 2;//最大递归次数
T_FM_DEPARTMENT depRec = null;
while (RecursionMaxTime > 0 && (listUser == null || listUser.Count() < 1))
{
depRec = GetEntity<T_FM_DEPARTMENT>(depID);
if (!depRec.PARENT_ID.HasValue)
{
RecursionMaxTime = 0;
break;
}
listUser = GetEntities<T_FM_USER>(e => e.DEPARTMENT_ID == depRec.PARENT_ID.Value && e.ENABLE_STATUS == 0 && !e.IS_DELETED && e.APPROVE_ROLE_ID.HasValue && listApproveRoleID.Contains(e.APPROVE_ROLE_ID.Value), null);
if (listUser != null && listUser.Any())
{
DEPARTMENT_TYPE = depLoginDep.DEPARTMENT_TYPE;
}
RecursionMaxTime--;
}
if (listUser != null && listUser.Any())
{
if (listUser.Count() == 1)
{
var userNext = listUser.ToList()[0];
UserIDNext = userNext.ID;
UserNAMENext = userNext.NAME;
}
else
{
switch (DEPARTMENT_TYPE)
{
2025-11-20 12:14:56 +08:00
case 15:
case 20:
2025-08-25 09:56:57 +08:00
var approle = ApproveRole.FirstOrDefault(e => e.NAME.Contains("车间"));
if (approle != null)
{
var userApprole = listUser.FirstOrDefault(e => e.APPROVE_ROLE_ID.Value == approle.ID);
if (userApprole != null)
{
UserIDNext = userApprole.ID;
UserNAMENext = userApprole.NAME;
}
}
break;
2025-11-20 12:14:56 +08:00
case 5:
2025-08-25 09:56:57 +08:00
//公司级 给 安环部安全员
var approleSafe = ApproveRole.FirstOrDefault(e => e.NAME.Contains("安"));
if (approleSafe != null)
{
var userApprole = listUser.FirstOrDefault(e => e.APPROVE_ROLE_ID.Value == approleSafe.ID);
if (userApprole != null)
{
UserIDNext = userApprole.ID;
UserNAMENext = userApprole.NAME;
}
}
break;
default:
break;
}
if (UserIDNext == Guid.Empty)
{
var userNext = listUser.ToList()[0];
UserIDNext = userNext.ID;
UserNAMENext = userNext.NAME;
}
}
}
}
if (UserIDNext == Guid.Empty)//找不到就他自己 比如对应组织找不到安全员
{
UserIDNext = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
UserNAMENext = GetEntity<T_FM_USER>(UserIDNext)?.NAME;
}
}
}
/// <summary>
/// 验收人 确认
/// 按整改明细给 整改落实人发送 整改通知
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("CheckerCheckToActual")]
public JsonActionResult<bool> CheckerCheckToActual([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
//确定 / 驳回 确定(给责任人 BS042_SHOWPRINT 发送通知 驳回 (隐患通知责任人)发送通知 BS042
Guid id = new Guid(filter.Keyword);
DateTime dtNow = DateTime.Now;
var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
var TaskID = new Guid(filter.Parameter1);
var entity = GetEntity<T_BS_RISK_SUBMIT_NOTICE_PERSON>(id, new string[] { "Nav_ListRiskSubmitContent.Nav_UserActualDeal", "Nav_ListRiskSubmitContent.Nav_Files" });
var listRiskSubminContentl = entity.Nav_ListRiskSubmitContent;
if (listRiskSubminContentl != null && listRiskSubminContentl.Count() > 1)
{
listRiskSubminContentl = listRiskSubminContentl.FindAll(e => e.CHECK_USER_ID == LoginID);//DEAL_USER_ID
if (listRiskSubminContentl == null || !listRiskSubminContentl.Any())
{
throw new Exception("只有验收人才能验收!");
}
}
else if (listRiskSubminContentl[0].CHECK_USER_ID != LoginID)//DEAL_USER_ID
{
throw new Exception("只有验收人才能验收!");
}
int CodeTemp = 0;
//同意
List<T_BS_RISK_SUBMIT_CONTENT_DEAL> listContentDeal = new List<T_BS_RISK_SUBMIT_CONTENT_DEAL>();
List<T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE> listDealF = new List<T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE>();
List<T_FM_NOTIFICATION_TASK> listNoticeDeal = new List<T_FM_NOTIFICATION_TASK>();
T_BS_RISK_SUBMIT_CONTENT_DEAL dealTemp = null;
List<T_BS_OPERATE_LOG> listLog = new List<T_BS_OPERATE_LOG>();
listRiskSubminContentl.ForEach(item =>
{
if (item.CHECK_USER_ID == LoginID)
item.ISCHECKERCHECK = true;
if (item.DEAL_USER_ID == LoginID)
item.ISDEALUSERCHECK = true;
if (item.ISDEALUSERCHECK && item.ISCHECKERCHECK)
{
item.RiskContentState = (int)RiskContentState.ActualDealChange;//item.RiskContentState = (int)RiskContentState.ArrangeDeal;
}
});
T_FM_NOTIFICATION_TASK task = null;
GetEntityTask(TaskID, ref task);
DateTime? TASK_ENDDT = null;
if (task != null)
{
TASK_ENDDT = task.TASK_ENDDT;
}
//给验收人 发送通知
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_ActualDealNotice, entity.ORG_ID.Value, DateTime.Now, null, null);
foreach (var item in listRiskSubminContentl)
{
//数据处理
CodeTemp++;
#region
dealTemp = new T_BS_RISK_SUBMIT_CONTENT_DEAL();
dealTemp.ID = Guid.NewGuid();
dealTemp.ORG_ID = item.ORG_ID;
dealTemp.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID;
dealTemp.RISK_SUBMIT_NOTICE_ID = item.RISK_SUBMIT_NOTICE_ID;
dealTemp.RISK_SUBMIT_NOTICE_PERSON_ID = item.RISK_SUBMIT_NOTICE_PERSON_ID;
dealTemp.RISK_SUBMIT_CONTENT_ID = item.ID;
dealTemp.CODE = item.CODE + "_" + CodeTemp;
dealTemp.NAME = item.NAME.Replace("隐患整改通知:", "");
//dealTemp.ENDDATE = item.LastDateUser;//整改结束时间
dealTemp.QUESTION_LEVEL = item.QUESTION_LEVEL;
dealTemp.DEALSITUATION = (int)DealSituation.Temp;
dealTemp.DEAL_USER_ID = item.DEAL_USER_ID;
dealTemp.ACTUAL_DEAL_USER_ID = item.ACTUAL_DEAL_USER_ID;
dealTemp.CHECK_USER_ID = item.CHECK_USER_ID;
listContentDeal.Add(dealTemp);
//附件
if (item.Nav_Files != null && item.Nav_Files.Any())
{
foreach (var itemF in item.Nav_Files)
{
listDealF.Add(new T_BS_RISK_SUBMIT_CONTENT_DEAL_FILE()
{
ID = Guid.NewGuid(),
RISK_SUBMIT_CONTENT_DEAL_ID = dealTemp.ID,
IMG_FILE_ID = itemF.IMG_FILE_ID,
IS_DELETED = false,
ORG_ID = item.ORG_ID,
ENTITY_ORG_TPYE = item.ENTITY_ORG_TPYE,
FLOW_STATUS = item.FLOW_STATUS,
FLOW_SEND_STATUS = item.FLOW_SEND_STATUS,
//FORM_ID
//FLOW_ID
//CREATE_TIME
//MODIFY_TIME
//CREATER_ID
//MODIFIER_ID
});
}
}
#endregion
//每个整改责任人 收到待办
//var notice = NotificationTaskService.InsertUserNoticeTaskModel("指定整改落实人:" + dealTemp.NAME, item.ID, entity.ORG_ID, item.DEAL_USER_ID.Value, item.Nav_UserDeal.NAME, dtNow, (dtTsakEnd > item.LastDateUser.Value ? item.LastDateUser.Value : dtTsakEnd), (int)FMNoticeTypeEnum.消息, "BS049");
var check = listNoticeDeal.FirstOrDefault(e => e.USER_ID == dealTemp.ACTUAL_DEAL_USER_ID.Value);
if (check == null)
{
string title = "整改落实人确认:" + entity.NAME.Replace("隐患整改通知:", "");
var notice = NotificationTaskService.InsertUserNoticeTaskModel(title, dealTemp.RISK_SUBMIT_NOTICE_PERSON_ID.Value, entity.ORG_ID, dealTemp.ACTUAL_DEAL_USER_ID.Value, item.Nav_UserActualDeal.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum., "BS042_ACTUALCHECK");//BS042_SHOWPRINT
notice.CREATE_TIME = dtNow;
listNoticeDeal.Add(notice);
listLog.AddRange(OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskNoticeCheckerCheck, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { dealTemp.ACTUAL_DEAL_USER_ID.Value }, new List<string>() { item.Nav_UserActualDeal.NAME }, entity.ORG_ID, item.ID, null, false, TASK_ENDDT));
}
}
/// 整改落实人 确认整改通知单 系统发送整改单给整改落实人
//UpdateActualDealRecord
if (listRiskSubminContentl[0].ACTUAL_DEAL_USER_ID.HasValue && listRiskSubminContentl[0].DEAL_USER_ID.HasValue && listRiskSubminContentl[0].ACTUAL_DEAL_USER_ID.Value == listRiskSubminContentl[0].DEAL_USER_ID.Value)
{
//整改责任人 与落实人 同一个
//整改落实人确认 待办默认处理
listNoticeDeal[0].TASK_DT = DateTime.Now;
if (listNoticeDeal[0].TASK_ENDDT >= listNoticeDeal[0].TASK_DT)
listNoticeDeal[0].NOTICE_STATUS = FMNoticeStatusEnum..GetInt();
else
listNoticeDeal[0].NOTICE_STATUS = FMNoticeStatusEnum..GetInt();
//状态修改
listRiskSubminContentl[0].RiskContentState = (int)RiskContentState.ActualDealCheck;
//发送待办(隐患整改单)
listNoticeDeal.Add(NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + listRiskSubminContentl[0].NAME.Replace("隐患整改通知:", ""), listContentDeal[0].ID, listRiskSubminContentl[0].ORG_ID, listRiskSubminContentl[0].ACTUAL_DEAL_USER_ID.Value, listRiskSubminContentl[0].Nav_UserActualDeal.NAME, DateTime.Now, listRiskSubminContentl[0].LastDateUser.Value, (int)FMNoticeTypeEnum., "BS044"));
}
//OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskAssignActure, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, ListNoticeAll, ListNoticeAllNAME, entity.ORG_ID, item.ID, null, false, TASK_ENDDT);
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);//保存状态
if (listContentDeal.Count > 0)
BantchSaveEntity(listContentDeal);//保存待整改明细
if (listDealF != null && listDealF.Any())//附件
BantchSaveEntity(listDealF); //附件
if (listRiskSubminContentl != null && listRiskSubminContentl.Any())//隐患上报明细表
BantchSaveEntity(listRiskSubminContentl); //保存子表
if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单
BantchSaveEntity(listNoticeDeal);
if (listLog != null && listLog.Any())//操作日志
BantchSaveEntity(listLog);
if (task != null)//代办消息 清除
UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
});
return true;
});
}
/// <summary>
/// 隐患上报信息完善 添加删除事件
/// </summary>
/// <param name="ID"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpGet, Route("RiskDel")]
public JsonActionResult<bool> RiskDel(Guid ID)
{
return SafeExecute<bool>(() =>
{
var entityContent = GetEntity<T_BS_RISK_SUBMIT_CONTENT>(ID);
if (entityContent == null)
{
throw new Exception("获取操作信息失败!");
}
if (entityContent.RiskContentState == (int)RiskContentState.ReportedReject)
{
throw new Exception("该单已删除,点击右上角[X]按钮关闭该页面!");
}
var task = GetEntity<T_FM_NOTIFICATION_TASK>(e => e.SOURCE_DATA_ID.HasValue && e.SOURCE_DATA_ID.Value == ID && e.NOTICE_STATUS == 0);
if (task == null)
{
throw new Exception("获取待办信息失败!");
}
if (task.USER_ID != APT.Infrastructure.Api.AppContext.CurrentSession.UserID)
{
throw new Exception("您不是该单的信息完善人员,操作失败!");
}
task.NOTICE_STATUS = (int)FMNoticeStatusEnum.;
task.MODIFY_TIME = DateTime.Now;
task.MODIFIER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (entityContent.DESCRIBE.Length < 480)
{
entityContent.DESCRIBE = task.USER_NAME + ":终止上报信息完善";
}
entityContent.RiskContentState = (int)RiskContentState.ReportedReject;
T_BS_RISK_SUBMIT sub = null;
if (entityContent.RISK_SUBMIT_ID.HasValue)
{
sub = GetEntity<T_BS_RISK_SUBMIT>(entityContent.RISK_SUBMIT_ID.Value);
sub.SUBMIT_STATUS = (int)BSSubmitStatusEnum.AuditRefuse;
}
this.UnifiedCommit(() =>
{
if (sub != null)
UpdateEntityNoCommit(sub);
if (entityContent != null)
UpdateEntityNoCommit(entityContent);
if (task != null)
UpdateEntityNoCommit(task);
});
return true;
});
}
#endregion
#region 线
/// <summary>
/// 手动隐患上报 单次 一张图片 必备输入信息 imgID = CONTENT_ID
/// </summary>
/// <returns></returns>
[HttpPost, Route("UploadFileRiskCache")]
public JsonActionResult<dynamic> UploadFileRiskCache()
{
return SafeExecute<dynamic>(() =>
{
dynamic result = new ExpandoObject();
var httpRequest = HttpContext.Request;
Microsoft.AspNetCore.Http.IFormCollection formInfo = httpRequest.Form;
var strOrgId = formInfo["OrgId"][0]; // 获取 组织
if (string.IsNullOrEmpty(strOrgId))
throw new Exception("组织不允许为空");
var orgId = new Guid(strOrgId);
var now = DateTime.Now;
var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
#region
var strImgID = string.Empty;
if (formInfo.ContainsKey("imgFileID"))
{
strImgID = formInfo["imgFileID"][0];
}
Guid ImgID = Guid.Empty;
if (strImgID != null && !string.IsNullOrEmpty(strImgID))
{
try
{
ImgID = new Guid(strImgID.ToString());
}
catch { }
}
if (ImgID == Guid.Empty)
ImgID = Guid.NewGuid();
string filePath = GetFilePath(orgId);
var fullFilePath = $"{ ConfigurationManager.AppSettings["Img_Local"]}{filePath}";
ImageConverterFactory imageConverterFactory = new ImageConverterFactory();
var host = ConfigurationManager.AppSettings["SapInvokeHost"];
List<T_PF_FILE> fileList = new List<T_PF_FILE>();
List<T_PF_IMG_FILE> imgFileList = new List<T_PF_IMG_FILE>();
List<T_PF_IMG_FILE_DETAIL> imgFileDetailList = new List<T_PF_IMG_FILE_DETAIL>();
var files = formInfo.Files;
if (!Directory.Exists(fullFilePath))
{
Directory.CreateDirectory(fullFilePath);
}
foreach (var item in files)
{
if (item != null)
{
//文件后缀
var fileExtension = Path.GetExtension(item.FileName);
var strDateTime = DateTime.Now.ToString("yyMMddhhmmssfff"); //取得时间字符串
var strRan = Convert.ToString(new Random().Next(100, 999)); //生成三位随机数
var saveName = strDateTime + strRan + fileExtension;
string fileName = item.FileName;
//插入图片数据
using (FileStream fs = System.IO.File.Create(fullFilePath + saveName))//fullFilePath + fileName wyw
{
item.CopyTo(fs);
fs.Flush();
}
if (fileExtension == ".jpg" || fileExtension == ".png" || fileExtension == ".jpeg")
{
using (FileStream inputFileStream = new FileStream(fullFilePath + saveName, FileMode.Open, FileAccess.Read))
{
MemoryStream compressedStream = CompressImageFileStream(inputFileStream);
inputFileStream.Close();
using (FileStream outputFileStream = new FileStream(fullFilePath + saveName, FileMode.Create, FileAccess.Write))
{
compressedStream.CopyTo(outputFileStream);
}
}
}
var pos = fileName.LastIndexOf(".");
var extendName = fileName.Substring(pos);
List<ConvertImageFile> list = new List<ConvertImageFile>();
bool isSuppot = imageConverterFactory.Support(extendName);
bool isSaveSelf = true;
T_PF_IMG_FILE imgFile = new T_PF_IMG_FILE
{
ID = ImgID,
FILE_NAME = fileName,
FILE_TYPE = item.ContentType,
ORG_ID = orgId,
CREATER_ID = LoginID,
CREATE_TIME = now
};
var inputStream = item.OpenReadStream();
//支持转换时,按类型转为图片,否则直接存储
if (isSuppot)
{
if (!string.IsNullOrEmpty(host))
{
ConvertImageFileParam param = new ConvertImageFileParam();
param.FileName = fileName;
Byte[] fileData = new Byte[(int)item.Length];
Stream sr = inputStream;//创建数据流对象
sr.Read(fileData, 0, (int)item.Length);
param.FileData = fileData;
string url = host + "ImageConvert/ImageConvert";
ConvertImageFileParam retModel =
WebUtils.Execute<ConvertImageFileParam>(url, param, string.Empty, SendType.Post);
if (retModel != null && retModel.Files != null && retModel.Files.Any())
list.AddRange(retModel.Files);
}
else
{
var convert = imageConverterFactory.CreateImageConverter(fileName);
convert.ConvertToImage(fileName, inputStream, list);
}
if (isSaveSelf)//保存自身数据
{
Byte[] fileData = new Byte[(int)item.Length];
Stream sr = inputStream;//创建数据流对象
sr.Read(fileData, 0, (int)item.Length);
T_PF_FILE file = new T_PF_FILE
{
FILE_NAME = fileName,
FILE_TYPE = item.ContentType,
//FILE_DATA = fileData,
ORG_ID = orgId,
//FILE_PATH = filePath + fileName
FILE_PATH = filePath + saveName,//wyw,
CREATER_ID = LoginID,
CREATE_TIME = now
};
imgFile.FILE_ID = file.ID;
imgFile.Nav_File = file;
fileList.Add(file);
}
}
else
{
ConvertImageFile tmpImgFile = new ConvertImageFile();
//tmpImgFile.FileName = fileName;
tmpImgFile.FileName = saveName;//wyw
tmpImgFile.FileType = item.ContentType;
Byte[] fileData = new Byte[(int)item.Length];
Stream sr = inputStream;//创建数据流对象
sr.Read(fileData, 0, (int)item.Length);
tmpImgFile.FileData = fileData;
list.Add(tmpImgFile);
}
//保存文件数据
if (list.Any())
{
int i = 1;
foreach (var fileitem in list)
{
T_PF_FILE file = new T_PF_FILE
{
ID = Guid.NewGuid(),
FILE_NAME = fileitem.FileName,
FILE_TYPE = fileitem.FileType,
//FILE_DATA = fileitem.FileData,
//FILE_PATH = filePath + fileName,
FILE_PATH = filePath + saveName,//wyw,
ORG_ID = orgId,
CREATER_ID = LoginID,
CREATE_TIME = now
};
if (!isSuppot && isSaveSelf)
{
imgFile.FILE_ID = file.ID;
imgFile.Nav_File = file;
}
if (string.IsNullOrEmpty(imgFile.FILE_PATH) && !string.IsNullOrEmpty(file.FILE_PATH))
imgFile.FILE_PATH = file.FILE_PATH;
T_PF_IMG_FILE_DETAIL detail = new T_PF_IMG_FILE_DETAIL
{
ORG_ID = orgId,
IMG_FILE_ID = imgFile.ID,
FILE_ID = file.ID,
NUM = i,
CREATER_ID = LoginID,
CREATE_TIME = now
};
i++;
fileList.Add(file);
imgFileDetailList.Add(detail);
}
}
imgFileList.Add(imgFile);
result.imgFileID = imgFile.ID;
result.imgFilePath = imgFile.Nav_File?.FILE_PATH;
}
}
#endregion
#region
T_BS_RISK_SUBMIT risk = new T_BS_RISK_SUBMIT();
T_BS_RISK_SUBMIT_CONTENT entity = new T_BS_RISK_SUBMIT_CONTENT();
List<T_BS_RISK_SUBMIT_CONTENT_FILE> listFiles = new List<T_BS_RISK_SUBMIT_CONTENT_FILE>();
#region entity SUBMIT_CONTENT
entity.ID = ImgID;
entity.ORG_ID = orgId;
entity.RiskContentState = int.Parse(formInfo["RiskContentState"]);
if (string.IsNullOrEmpty(entity.CODE))
{
entity.CODE = "SDLX" + now.ToString("yyyyMMddHHmm");
}
try
{
entity.RISK_AREA_ID = new Guid(formInfo["RISK_AREA_ID"]);
}
catch { }
entity.ADDRESS = formInfo["ADDRESS"];
entity.DESCRIBE = formInfo["DESCRIBE"];
if (entity.RiskContentState == 10)
{
if (!entity.RISK_AREA_ID.HasValue)
{
throw new Exception("检查区域不能为空!");
}
if (string.IsNullOrEmpty(entity.ADDRESS))
{
throw new Exception("隐患地点不能为空!");
}
}
if (string.IsNullOrEmpty(entity.DESCRIBE))
{
throw new Exception("请填写上报描述!");
}
else if (entity.DESCRIBE.Length > 500)
{
throw new Exception("上报描述不能超过500字");
}
#endregion
#region risk SUBMIT
if (entity.RISK_SUBMIT_ID == null || entity.RISK_SUBMIT_ID == Guid.Empty)
{
risk = new T_BS_RISK_SUBMIT();
risk.ID = Guid.NewGuid();
risk.ORG_ID = entity.ORG_ID;
risk.SUBMIT_STATUS = entity.RiskContentState;
risk.NAME = "手动隐患上报";
risk.CREATE_TIME = DateTime.Now;
risk.CREATER_ID = LoginID;
risk.SUBMIT_TYPE = (int)SUBMIT_TYPE.User;
risk.CHECKTIME = Convert.ToDateTime(formInfo["CREATE_TIME"]);
risk.CODE = entity.CODE;
risk.USER_ID = LoginID;
risk.DEPARTMENT_ID = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
if (risk.DEPARTMENT_ID == null || risk.DEPARTMENT_ID == Guid.Empty)
risk.DEPARTMENT_ID = APT.Infrastructure.Api.AppContext.DepartmentID;
entity.RISK_SUBMIT_ID = risk.ID;
}
else
{
risk = GetEntity<T_BS_RISK_SUBMIT>(entity.RISK_SUBMIT_ID.Value);
risk.SUBMIT_STATUS = entity.RiskContentState;
}
#endregion
#region
T_FM_NOTIFICATION_TASK taskMaster = null;
T_FM_NOTIFICATION_TASK taskEnd = null;
List<T_BS_OPERATE_LOG> listLog = null;
//手动上报 保存并发送 通知安全员
if (risk.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp)
{
Guid UserId = Guid.Empty;
string userName = String.Empty;
#region 2
var master = GetEntity<T_FM_USER>(risk.USER_ID.Value, "Nav_Department");
if (master.Nav_Department == null)
{
throw new Exception("未获取到您的组织信息,操作失败!");
}
if (master.Nav_Department.USER_ID.HasValue && master.Nav_Department.USER_ID.Value == risk.USER_ID.Value)
{
//如果自己是负责人 就是自己
UserId = risk.USER_ID.Value;
userName = master.NAME;
}
else
{
//找安全员 如果没有 找负责人
// 班组 班长 否则 安全员 FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3
if (master.Nav_Department.DEPARTMENT_TYPE == 20)
2025-08-25 09:56:57 +08:00
{
if (master.Nav_Department.USER_ID.HasValue)
{
UserId = master.Nav_Department.USER_ID.Value;
userName = GetEntity<T_FM_USER>(UserId)?.NAME;
}
else
{
var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("负责人"));
if (userSafe != null)
{
UserId = userSafe.ID;
userName = userSafe.NAME;
}
}
}
else
{
var userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("安全员"));
if (userSafe != null)
{
UserId = userSafe.ID;
userName = userSafe.NAME;
}
else
{
userSafe = GetEntity<T_FM_USER>(e => !e.IS_DELETED && e.DEPARTMENT_ID == master.DEPARTMENT_ID && e.Nav_ApproveRole.NAME.Contains("负责人"));
if (userSafe != null)
{
UserId = userSafe.ID;
userName = userSafe.NAME;
}
}
}
}
if (UserId == Guid.Empty)//没找到给自己
{
UserId = risk.USER_ID.Value;
userName = master.NAME;
}
#endregion
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_PersonAdd, entity.ORG_ID.Value, DateTime.Now, null, null);
taskMaster = NotificationTaskService.InsertUserNoticeTaskModel("手动隐患上报-信息完善", entity.ID, risk.ORG_ID, UserId, userName, DateTime.Now, dtEnd, 0, "BS073");//原 BS061
if (entity.TaskID != Guid.Empty)
{
taskEnd = NotificationTaskService.GetEntityTask(entity.TaskID, "BS072_SHOWPRINT");
}
listLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskUpSD, risk.ID, risk.USER_ID.Value, null, new List<Guid>() { UserId }, new List<string>() { userName }, risk.ORG_ID, entity.ID);
}
#endregion
#region CONTENT_FILE
//隐患上报信息附件
foreach (var item in imgFileList)
{
listFiles.Add(new T_BS_RISK_SUBMIT_CONTENT_FILE()
{
ID = Guid.NewGuid(),
ORG_ID = orgId,
CREATE_TIME = now,
CREATER_ID = LoginID,
RISK_SUBMIT_ID = risk.ID,
RISK_SUBMIT_CONTENT_ID = entity.ID,
IMG_FILE_ID = item.ID
});
}
#endregion
entity.RiskContentState = null;
#endregion
#region
try
{
//为了不让隐患上报数据冲突 entity.ID 前端直接传入
this.UnifiedCommit(() =>
{
if (fileList != null && fileList.Any())
BantchSaveEntityNoCommit(fileList);
if (imgFileList != null && imgFileList.Any())
BantchSaveEntityNoCommit(imgFileList);
if (imgFileDetailList != null && imgFileDetailList.Any())
BantchSaveEntityNoCommit(imgFileDetailList);
if (risk != null)
UpdateEntityNoCommit(risk);
if (entity != null)
UpdateEntityNoCommit(entity);
if (taskMaster != null)
UpdateEntityNoCommit(taskMaster);
if (taskEnd != null)
UpdateEntityNoCommit(taskEnd);
if (listFiles != null && listFiles.Any())
BantchSaveEntityNoCommit(listFiles);
if (listLog != null && listLog.Any())
BantchSaveEntityNoCommit(listLog);
});
}
catch
{
//提交错误
result.imgFileID = "";
result.imgFilePath = "";
}
#endregion
return result;
});
}
/// <summary>
/// 根据OrgId获取文件夹名称
/// </summary>
/// <param name="OrgId"></param>
/// <returns></returns>
private string GetFilePath(Guid OrgId)
{
string orgid = OrgId.ToString().ToUpperInvariant();
string pathHead = "";
if (OrgId != new Guid())
{
List<EnumberEntity> listHead = EnumToList<FilePathHead>();
var info = listHead.FirstOrDefault(e => e.Desction == orgid);
if (info != null)
{
pathHead = info.EnumName;
}
}
DateTime dtNow = DateTime.Now;
var filePath = string.Format("/{0}/{1}/{2}/", dtNow.ToString("yyyy"), dtNow.ToString("yyyyMM"), dtNow.ToString("yyyyMMdd"));
return string.IsNullOrEmpty(pathHead) ? filePath : "/" + pathHead + filePath;
}
#endregion
#region Excel
/// <summary>
/// 生成入参对应整改记录Excel
/// </summary>
/// <param name="filter">整改单IDS</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpPost, Route("GetOutPutData")]
public JsonActionResult<string> GetOutPutData([FromBody] KeywordFilter filter)
{
return SafeExecute<string>(() =>
{
if (string.IsNullOrEmpty(filter.Keyword))
{
throw new Exception("获取导出信息失败!");
}
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + APT.Infrastructure.Api.AppContext.CurrentSession.UserName + "_" + new Random().Next(100, 999) + ".xlsx";
#region
var listIds = filter.Keyword.Split(',', StringSplitOptions.RemoveEmptyEntries);
List<Guid> listID = new List<Guid>();
foreach (var item in listIds)
{
listID.Add(new Guid(item));
}
var listRiskSubmit = GetEntities<T_BS_RISK_SUBMIT>(e => listID.Contains(e.ID), null, "Nav_ListRiskSubmitContent").ToList();
if (listRiskSubmit == null || !listRiskSubmit.Any())
{
throw new Exception("未获取到导出信息!");
}
var listCheckID = listRiskSubmit.Where(e => e.CHECK_ID.HasValue).Select(e => e.CHECK_ID.Value);
List<T_BS_SAFE_CHECK> listCheck = new List<T_BS_SAFE_CHECK>();
T_BS_SAFE_CHECK modelCheck = null;
if (listCheckID != null && listCheckID.Any())
{
listCheck = GetEntities<T_BS_SAFE_CHECK>(e => listCheckID.Contains(e.ID), null, "Nav_Department").ToList();
}
#endregion
#region
int rowIndex = 0;
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("隐患整改反馈单");
#region
//表头样式
ICellStyle cellStyleHead = workbook.CreateCellStyle();
// 设置字体
IFont fontHead = workbook.CreateFont();
fontHead.FontName = "Arial";
fontHead.FontHeightInPoints = 20;
fontHead.Boldweight = (short)FontBoldWeight.Bold;
cellStyleHead.SetFont(fontHead);
// 设置对齐方式
cellStyleHead.Alignment = HorizontalAlignment.Center;
cellStyleHead.VerticalAlignment = VerticalAlignment.Center;
////表头样式
//ICellStyle cellStyleNO = workbook.CreateCellStyle();
//// 设置字体
//IFont fontNO = workbook.CreateFont();
//fontNO.FontName = "宋体";
//fontNO.FontHeightInPoints = 11;
//fontNO.Boldweight = (short)FontBoldWeight.Bold;
//cellStyleNO.Alignment = HorizontalAlignment.Right;
//cellStyleNO.VerticalAlignment = VerticalAlignment.Center;
//cellStyleNO.SetFont(fontNO);
//ICellStyle cellStyleNOC = workbook.CreateCellStyle();
//// 设置字体
//IFont fontNOC = workbook.CreateFont();
//fontNOC.FontName = "宋体";
//fontNOC.FontHeightInPoints = 11;
//fontNOC.Boldweight = (short)FontBoldWeight.Bold;
//cellStyleNOC.Alignment = HorizontalAlignment.Left;
//cellStyleNOC.VerticalAlignment = VerticalAlignment.Center;
//cellStyleNOC.SetFont(fontNO);
// 设置对齐方式
cellStyleHead.Alignment = HorizontalAlignment.Center;
cellStyleHead.VerticalAlignment = VerticalAlignment.Center;
ICellStyle cellStyle = workbook.CreateCellStyle();
// 设置字体
IFont font = workbook.CreateFont();
font.FontName = "宋体";
font.FontHeightInPoints = 11;
font.Boldweight = (short)FontBoldWeight.Bold;
cellStyle.SetFont(font);
// 设置边框
cellStyle.BorderBottom = BorderStyle.Thin;
cellStyle.BorderLeft = BorderStyle.Thin;
cellStyle.BorderRight = BorderStyle.Thin;
cellStyle.BorderTop = BorderStyle.Thin;
cellStyle.WrapText = true;
cellStyle.BottomBorderColor = HSSFColor.Black.Index;
cellStyle.LeftBorderColor = HSSFColor.Black.Index;
cellStyle.RightBorderColor = HSSFColor.Black.Index;
cellStyle.TopBorderColor = HSSFColor.Black.Index;
// 设置对齐方式
cellStyle.Alignment = HorizontalAlignment.Center;
cellStyle.VerticalAlignment = VerticalAlignment.Center;
//检查内容样式
ICellStyle cellStyleRight = workbook.CreateCellStyle();
// 设置字体
IFont fontLeft = workbook.CreateFont();
fontLeft.FontName = "宋体";
fontLeft.FontHeightInPoints = 11;
fontLeft.Boldweight = (short)FontBoldWeight.Bold;
cellStyleRight.SetFont(fontLeft);
// 设置边框
cellStyleRight.BorderBottom = BorderStyle.Thin;
cellStyleRight.BorderLeft = BorderStyle.Thin;
cellStyleRight.BorderRight = BorderStyle.Thin;
cellStyleRight.BorderTop = BorderStyle.Thin;
cellStyleRight.WrapText = true;
//// 设置背景色
//cellStyle.FillForegroundColor = IndexedColors.LightYellow.Index;
//cellStyle.FillPattern = FillPattern.SolidForeground;
// 设置对齐方式
cellStyleRight.Alignment = HorizontalAlignment.Right;
cellStyleRight.VerticalAlignment = VerticalAlignment.Center;
#endregion
sheet.SetColumnWidth(0, 5 * 256);
sheet.SetColumnWidth(1, 18 * 256);
//sheet.SetColumnWidth(1, 30 * 256);
sheet.SetColumnWidth(2, 13 * 256);
sheet.SetColumnWidth(6, 15 * 256);
sheet.SetColumnWidth(7, 18 * 256);
sheet.DefaultRowHeight = 330;
List<Guid> listUserID = new List<Guid>();
foreach (var item in listRiskSubmit)
{
foreach (var itemC in item.Nav_ListRiskSubmitContent)
{
if (itemC.CHECK_USER_ID.HasValue && !listUserID.Contains(itemC.CHECK_USER_ID.Value))
{
listUserID.Add(itemC.CHECK_USER_ID.Value);
}
if (itemC.DEAL_USER_ID.HasValue && !listUserID.Contains(itemC.DEAL_USER_ID.Value))
{
listUserID.Add(itemC.DEAL_USER_ID.Value);
}
}
}
List<T_FM_USER> listUser = null;
T_FM_USER modelUser = null;
string FILE_PATH = string.Empty;
if (listUserID != null && listUserID.Any())
{
listUser = GetEntities<T_FM_USER>(e => listUserID.Contains(e.ID), null, null).ToList();
}
var fileP = ConfigurationManager.AppSettings["Img_Local"];//文件位置
int colNumber = 8;
int heightTimes = 1;
int heightTimesStare = 1;
string Stare = "";
//按信息导出
for (int i = 0; i < listRiskSubmit.Count; i++)
{
#region 1
IRow row = sheet.CreateRow(rowIndex);
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 0, colNumber - 1));// 起始行 , 结束行(合并单元格的行数相同,所以是起始行) , 起始列 结束列比想要合并的最后一列多1
ICell cell = row.CreateCell(0); // 在合并区域的左上角单元格写入数据
row.Height = 700;
cell.SetCellValue("安全生产隐患整改反馈单");
cell.CellStyle = cellStyleHead;
#endregion
#region //编号第2行 验收单位或部门 验收日期
//rowIndex++;
//sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 0, 1));//验收单位或部门
//sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 2, 3));//验收单位或部门
//sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 4, 5));//验收日期
//sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 6, 7));//验收日期
//IRow row2 = sheet.CreateRow(rowIndex);
//ICell cellEmpty1 = row2.CreateCell(1);
//cellEmpty1.CellStyle = cellStyle;
//ICell cellEmpty3 = row2.CreateCell(3);
//cellEmpty3.CellStyle = cellStyle;
//ICell cellEmpty5 = row2.CreateCell(5);
//cellEmpty5.CellStyle = cellStyle;
//ICell cellEmpty7 = row2.CreateCell(7);
//cellEmpty7.CellStyle = cellStyle;
//ICell cell0 = row2.CreateCell(0);
//cell0.SetCellValue("验收单位或部门");
//cell0.CellStyle = cellStyle;
//ICell cell4 = row2.CreateCell(4);
//cell4.SetCellValue("验收日期");
//cell4.CellStyle = cellStyle;
#endregion
#region 3
rowIndex++;
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 0, 1));
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 2, colNumber - 1));//验收单位或部门
IRow row3 = sheet.CreateRow(rowIndex);
for (int j = 1; j < colNumber; j++)
{
if (j == 2)
continue;
ICell cell3jEmpty = row3.CreateCell(j);
cell3jEmpty.CellStyle = cellStyle;
}
ICell cell30 = row3.CreateCell(0);
cell30.SetCellValue("下达隐患整改通知部门");
cell30.CellStyle = cellStyle;
if (listRiskSubmit[i].CHECK_ID.HasValue)
{
modelCheck = listCheck.FirstOrDefault(e => e.ID == listRiskSubmit[i].CHECK_ID.Value);
}
else
{
modelCheck = null;
}
ICell cell32 = row3.CreateCell(2);
if (modelCheck != null && modelCheck.Nav_Department != null && !string.IsNullOrEmpty(modelCheck.Nav_Department.NAME))
{
cell32.SetCellValue(modelCheck?.Nav_Department?.NAME);
}
else
{
cell32.SetCellValue("");
}
cell32.CellStyle = cellStyle;
#endregion
#region 4
rowIndex++;
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 0, 1));//验收单位或部门
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 2, 3));//验收单位或部门
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 4, 5));//验收日期
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 6, 7));//验收日期
IRow row4 = sheet.CreateRow(rowIndex);
ICell cellEmpty41 = row4.CreateCell(1);
cellEmpty41.CellStyle = cellStyle;
ICell cellEmpty43 = row4.CreateCell(3);
cellEmpty43.CellStyle = cellStyle;
ICell cellEmpty45 = row4.CreateCell(5);
cellEmpty45.CellStyle = cellStyle;
ICell cellEmpty47 = row4.CreateCell(7);
cellEmpty47.CellStyle = cellStyle;
ICell cell40 = row4.CreateCell(0);
cell40.SetCellValue("隐患整改通知单编号");
cell40.CellStyle = cellStyle;
ICell cell44 = row4.CreateCell(4);
cell44.SetCellValue("检查日期");
cell44.CellStyle = cellStyle;
ICell cell42 = row4.CreateCell(2);
cell42.SetCellValue(listRiskSubmit[i].CODE);
cell42.CellStyle = cellStyle;
ICell cell46 = row4.CreateCell(6);
cell46.CellStyle = cellStyle;
if (modelCheck != null && modelCheck.CHECKTIME.HasValue)
{
cell46.SetCellValue(modelCheck.CHECKTIME.Value.ToString("yyyy-MM-dd"));
}
else
{
cell46.SetCellValue("");
}
#endregion
#region 5
rowIndex++;
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 1, 2));//验收单位或部门
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 3, 4));//验收单位或部门
IRow row5 = sheet.CreateRow(rowIndex);
row5.Height = 400;
ICell cellEmpty52 = row5.CreateCell(2);
cellEmpty52.CellStyle = cellStyle;
ICell cellEmpty54 = row5.CreateCell(4);
cellEmpty54.CellStyle = cellStyle;
ICell cell50 = row5.CreateCell(0);
cell50.SetCellValue("序号");
cell50.CellStyle = cellStyle;
ICell cell51 = row5.CreateCell(1);
cell51.SetCellValue("检查内容");
cell51.CellStyle = cellStyle;
ICell cell53 = row5.CreateCell(3);
cell53.SetCellValue("整改情况");
cell53.CellStyle = cellStyle;
ICell cell55 = row5.CreateCell(5);
cell55.SetCellValue("责任人");
cell55.CellStyle = cellStyle;
ICell cell56 = row5.CreateCell(6);
cell56.SetCellValue("完成时间");
cell56.CellStyle = cellStyle;
ICell cell57 = row5.CreateCell(7);
cell57.SetCellValue("验收人");
cell57.CellStyle = cellStyle;
#endregion
#region 6
for (int j = 0; j < listRiskSubmit[i].Nav_ListRiskSubmitContent.Count; j++)
{
rowIndex++;
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 1, 2));//验收单位或部门
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 3, 4));//验收单位或部门
IRow row6 = sheet.CreateRow(rowIndex);
ICell cell60 = row6.CreateCell(0);
cell60.SetCellValue(j + 1);
cell60.CellStyle = cellStyle;
ICell cellEmpty62 = row6.CreateCell(2);
cellEmpty62.CellStyle = cellStyle;
ICell cellEmpty64 = row6.CreateCell(4);
cellEmpty64.CellStyle = cellStyle;
//检查内容
ICell cellEmpty61 = row6.CreateCell(1);
cellEmpty61.CellStyle = cellStyle;
cellEmpty61.SetCellValue(listRiskSubmit[i].Nav_ListRiskSubmitContent[j].DESCREPTION);
heightTimes = 1;
heightTimesStare = 1;
//14个字 分行
if (listRiskSubmit[i].Nav_ListRiskSubmitContent[j].DESCREPTION != null && listRiskSubmit[i].Nav_ListRiskSubmitContent[j].DESCREPTION.Length > 13)
{
heightTimes = (int)Math.Ceiling((decimal)(listRiskSubmit[i].Nav_ListRiskSubmitContent[j].DESCREPTION.Length / 13.0));
}
//整改情况
ICell cellEmpty63 = row6.CreateCell(3);
cellEmpty63.CellStyle = cellStyle;
if (listRiskSubmit[i].Nav_ListRiskSubmitContent[j].RiskContentState.HasValue)
{
Stare = ((RiskContentState)listRiskSubmit[i].Nav_ListRiskSubmitContent[j].RiskContentState.Value).GetDescription();
cellEmpty63.SetCellValue(Stare);
if (Stare.Length > 8)
{
heightTimesStare = (int)Math.Ceiling((decimal)(Stare.Length / 8.0));
}
}
else
cellEmpty63.SetCellValue("");
if (heightTimes > 1 || heightTimesStare > 1)
{
//行高处理
row6.Height = (short)(sheet.DefaultRowHeight * Math.Max(heightTimes, heightTimesStare));
}
// 5 责任人
ICell cell65 = row6.CreateCell(5);
cell65.CellStyle = cellStyle;
modelUser = null;
if (listRiskSubmit[i].Nav_ListRiskSubmitContent[j].DEAL_USER_ID.HasValue)
{
modelUser = listUser.FirstOrDefault(e => e.ID == listRiskSubmit[i].Nav_ListRiskSubmitContent[j].DEAL_USER_ID.Value);
}
cell65.SetCellValue((modelUser != null && !string.IsNullOrEmpty(modelUser.NAME)) ? modelUser.NAME : "");
// 6 完成时间
ICell cellEmpty66 = row6.CreateCell(6);
cellEmpty66.CellStyle = cellStyle;
if (listRiskSubmit[i].Nav_ListRiskSubmitContent[j].OKDATE.HasValue)
cellEmpty66.SetCellValue(listRiskSubmit[i].Nav_ListRiskSubmitContent[j].OKDATE.Value.ToString("yyyy-MM-dd"));
else
cellEmpty66.SetCellValue("");
// 7 验收人
ICell cellEmpty67 = row6.CreateCell(7);
cellEmpty67.CellStyle = cellStyle;
if (listRiskSubmit[i].Nav_ListRiskSubmitContent[j].ISCHECKERCHECK && listRiskSubmit[i].Nav_ListRiskSubmitContent[j].CHECK_USER_ID.HasValue)
{
FILE_PATH = "";
modelUser = listUser.FirstOrDefault(e => e.ID == listRiskSubmit[i].Nav_ListRiskSubmitContent[j].CHECK_USER_ID.Value);
if (modelUser != null && modelUser.FILE_PATH != null && modelUser.FILE_PATH.Length > 0)
{
FILE_PATH = modelUser.FILE_PATH;
}
ShowImg(workbook, sheet, fileP, FILE_PATH, rowIndex, 7);
}
}
#endregion
rowIndex += 5;
}
#endregion
#region
var fileNameP = ConfigurationManager.AppSettings["File_DownLoad"];
var fullFilePart = $"{fileP}{fileNameP}";
var fullFilePath = $"{fileP}{fileNameP}{fileName}";
string Result = $"{fileNameP}{fileName}";
//如果没有文件夹 创建
//如果文件夹下有超过10个文件 按时间 删除多余的
if (!Directory.Exists(fullFilePart))
{
Directory.CreateDirectory(fullFilePart);
}
else
{
FileInfo[] files = new DirectoryInfo(fullFilePart).GetFiles();
if (files.Length > 10)
{
var listFilesOrder = files.OrderBy(e => e.CreationTime).ToList();
for (int i = 0; i < files.Length - 10; i++)
{
listFilesOrder[i].Delete();
}
}
}
// 写入到文件
using (FileStream file = new FileStream(fullFilePath, FileMode.Create, FileAccess.Write))
{
workbook.Write(file);
}
// 关闭工作簿资源
workbook.Close();
#endregion
//return $"{fileNameP}{fileName}";
return Result;
});
}
public void ShowImg(IWorkbook workbook, ISheet sheet, string fileConfig, string filePath, int rowIndex, int colIndex)
{
try
{
byte[] imgBytes = System.IO.File.ReadAllBytes(fileConfig + filePath);
int pictureIdx = workbook.AddPicture(imgBytes, PictureType.JPEG);
// 创建Drawing对象
XSSFDrawing drawing = (XSSFDrawing)sheet.CreateDrawingPatriarch(); // 对于.xlsx文件
// HSSFDrawing drawing = (HSSFDrawing)sheet.CreateDrawingPatriarch(); // 对于.xls文件
// 创建ClientAnchor对象并设置位置和大小
// 参数依次为:起始列偏移量、起始行偏移量、结束列偏移量、结束行偏移量、起始列号、起始行号、结束列号、结束行号
//XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, 1, 1, 2, 3); // 示例位置,请根据需要调整
//XSSFClientAnchor anchor = new XSSFClientAnchor(10, 20, 100, 80, colIndex, rowIndex, colIndex + 1, rowIndex + 1); // 示例位置,请根据需要调整
XSSFClientAnchor anchor = new XSSFClientAnchor(10, 10, 0, 0, colIndex, rowIndex, colIndex + 1, rowIndex + 1); // 示例位置,请根据需要调整
// 创建图片对象并插入到Excel中
IPicture pict = drawing.CreatePicture(anchor, pictureIdx);
// 如果需要调整图片大小可以使用Resize方法注意并非所有版本的NPOI都支持直接Resize方法可能需要手动计算并设置偏移量
pict.Resize(0.9);// 注意此行代码可能需要根据NPOI版本和具体实现进行调整
}
catch { }
}
#endregion
}
}