mh_jy_safe/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs
2025-08-25 09:56:57 +08:00

9217 lines
483 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 == 0 || master.Nav_Department.DEPARTMENT_TYPE == 3) //部门 公司
// {
// //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 == 3 || master.Nav_Department.DEPARTMENT_STATUS == 2)
// {
// 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 == 2)
// {
// 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 == 2)
{
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 == 2)
{
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 == 2)
//{
// 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 == 2)
{
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)
{
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 == 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 == 2)
{
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
}
}