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