531 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			531 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
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.Entities.BS;
 | 
						||
using APT.MS.Domain.Entities.HM;
 | 
						||
using APT.MS.Domain.Enums;
 | 
						||
using APT.Utility;
 | 
						||
using Microsoft.AspNetCore.Mvc;
 | 
						||
using NPOI.SS.Formula.Functions;
 | 
						||
using System;
 | 
						||
using System.Collections;
 | 
						||
using System.Collections.Generic;
 | 
						||
using System.Linq;
 | 
						||
using System.Linq.Expressions;
 | 
						||
 | 
						||
namespace APT.HM.WebApi.Controllers.Api
 | 
						||
{
 | 
						||
    [Route("api/HM/HMRiskTask")]
 | 
						||
    public partial class RiskTaskController : AuthorizeApiController<T_HM_RISK_TASK>
 | 
						||
    {
 | 
						||
        IFMFlowPermitService MFlowPermitService { get; set; }
 | 
						||
        IFMNotificationTaskService NotificationTaskService { get; set; }
 | 
						||
        IPFCodeRuleService CodeRuleService { get; set; }
 | 
						||
        IPFApproveCallBackService ApproveCallBackService { get; set; }
 | 
						||
 | 
						||
        IFMUserService UserService { get; set; }
 | 
						||
 | 
						||
        public RiskTaskController(IFMNotificationTaskService notificationTaskService, IPFCodeRuleService codeRuleService, IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService, IFMUserService userService)
 | 
						||
        {
 | 
						||
            NotificationTaskService = notificationTaskService;
 | 
						||
            CodeRuleService = codeRuleService;
 | 
						||
            MFlowPermitService = mFlowPermitService;
 | 
						||
            ApproveCallBackService = approveCallBackService;
 | 
						||
            UserService = userService;
 | 
						||
        }
 | 
						||
        /// <summary>
 | 
						||
        /// HM062更新
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="entity"></param>
 | 
						||
        /// <returns></returns>
 | 
						||
        [HttpPost, Route("FullUpdate")]
 | 
						||
        public JsonActionResult<bool> FullUpdate([FromBody] T_HM_RISK_TASK entity)
 | 
						||
        {
 | 
						||
            return SafeExecute<bool>(() =>
 | 
						||
            {
 | 
						||
                var files = entity.Nav_Files;
 | 
						||
                var riskDetail = entity.Nav_Detail;
 | 
						||
                var identifyings = entity.Nav_Identifyings;
 | 
						||
                if (identifyings.Count == 0)
 | 
						||
                {
 | 
						||
                    throw new Exception("请选择辨识对象!");
 | 
						||
                }
 | 
						||
                var areas = entity.Nav_Areas;
 | 
						||
                List<T_HM_RISK_TASK_USER> users = new List<T_HM_RISK_TASK_USER>();
 | 
						||
                foreach (var detail in riskDetail)
 | 
						||
                {
 | 
						||
                    if (detail.AREA_ID == Guid.Empty || detail.AREA_ID == null)
 | 
						||
                    {
 | 
						||
                        throw new Exception("请填写区域!");
 | 
						||
                    }
 | 
						||
                    if (detail.RECORD_USER_ID == Guid.Empty || detail.RECORD_USER_ID == null)
 | 
						||
                    {
 | 
						||
                        throw new Exception("请选择记录人员!");
 | 
						||
                    }
 | 
						||
                    if (detail.Nav_Users != null)
 | 
						||
                    {
 | 
						||
                        detail.Nav_Users.ForEach(user =>
 | 
						||
                        {
 | 
						||
                            if (user.USER_ID != detail.RECORD_USER_ID)
 | 
						||
                            {
 | 
						||
                                user.ROW_NO = 999;
 | 
						||
                            }
 | 
						||
                        });
 | 
						||
                        users.AddRange(detail.Nav_Users);
 | 
						||
                        detail.Nav_Users = null;
 | 
						||
                    }
 | 
						||
                };
 | 
						||
                if (entity.LIABLE_USER_ID == Guid.Empty || entity.LIABLE_USER_ID == null)
 | 
						||
                {
 | 
						||
                    entity.LIABLE_USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
 | 
						||
                }
 | 
						||
                entity.Nav_Files = null;
 | 
						||
                entity.Nav_Detail = null;
 | 
						||
                entity.Nav_Identifyings = null;
 | 
						||
                entity.Nav_Areas = null;
 | 
						||
                identifyings?.ForEach(identifying => { identifying.Nav_Identifying = null; identifying.Nav_Task = null; });
 | 
						||
                areas?.ForEach(areas => { areas.Nav_Area = null; areas.Nav_Task = null; });
 | 
						||
 | 
						||
                if (entity.INITIATING_DEPARTMENT == null)
 | 
						||
                {
 | 
						||
                    var user = GetEntity<T_FM_USER>(t => t.ID == APT.Infrastructure.Api.AppContext.CurrentSession.UserID);
 | 
						||
                    if (user != null)
 | 
						||
                        entity.INITIATING_DEPARTMENT = user.DEPARTMENT_ID;
 | 
						||
                }
 | 
						||
                var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
 | 
						||
                entity.STATUS = FOPreMeetingStatusEnum.草稿;
 | 
						||
                entity.APPROVECODE = null;
 | 
						||
                    //是否需要发审批流,false不发,true的时候默认只发当前审核人
 | 
						||
                    var isSendApprove = false;
 | 
						||
                    //var isFinish = Guid.Empty;
 | 
						||
                    T_FM_NOTIFICATION_TASK task = null;
 | 
						||
                if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
 | 
						||
                {
 | 
						||
                    entity.STATUS = FOPreMeetingStatusEnum.审核中;
 | 
						||
                    isSendApprove = true;
 | 
						||
                    entity.APPROVECODE = DateTime.Now.ToString("yyyyMMddHHmmss");
 | 
						||
                        //isFinish = entity.TaskID;
 | 
						||
                        if (entity.TaskID != Guid.Empty)
 | 
						||
                    {
 | 
						||
                        task = NotificationTaskService.GetEntityTask(entity.TaskID, "HM061_SHOWPRINT");
 | 
						||
                        if (task.SOURCE_DATA_ID == null)
 | 
						||
                            task.SOURCE_DATA_ID = entity.ID;
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                var param = "";
 | 
						||
                    //0908 修改按最高层级触发审批
 | 
						||
                    if (entity.LEVEL.Contains("3"))
 | 
						||
                {
 | 
						||
                    param = "GS";
 | 
						||
                }
 | 
						||
                else if (entity.LEVEL.Contains("0"))
 | 
						||
                {
 | 
						||
                    param = "BM";
 | 
						||
                }
 | 
						||
                else
 | 
						||
                {
 | 
						||
                    param = "CJ";
 | 
						||
                }
 | 
						||
 | 
						||
                MFlowPermitService.InsertApprove(entity.APPROVECODE, "HM062", param, entity.ID, "HM061_SHOWPRINT", null, isSendApprove, () =>
 | 
						||
                {
 | 
						||
                    if (entity != null)
 | 
						||
                        UpdateEntityNoCommit(entity);   //保存主表
 | 
						||
                        if (task != null)
 | 
						||
                        UpdateEntityNoCommit(task);
 | 
						||
                    if (files != null && files.Any())
 | 
						||
                        BantchSaveEntityNoCommit(files);    //保存子表
 | 
						||
                        if (identifyings != null && identifyings.Any())
 | 
						||
                        BantchSaveEntityNoCommit(identifyings);
 | 
						||
                    if (riskDetail != null && riskDetail.Any())
 | 
						||
                        BantchSaveEntityNoCommit(riskDetail);
 | 
						||
                    if (areas != null && areas.Any())
 | 
						||
                        BantchSaveEntityNoCommit(areas);
 | 
						||
                    if (users.Any())
 | 
						||
                        BantchSaveEntityNoCommit(users);    //保存孙表
 | 
						||
                    });
 | 
						||
                return true;
 | 
						||
            });
 | 
						||
        }
 | 
						||
 | 
						||
        /// <summary>
 | 
						||
        /// 审批流回调
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="id"></param>
 | 
						||
        /// <returns></returns>
 | 
						||
        [HttpGet, Route("PersonalApprove")]
 | 
						||
        public JsonActionResult<bool> PersonalApprove(string id)
 | 
						||
        {
 | 
						||
            return SafeExecute<bool>(() =>
 | 
						||
            {
 | 
						||
                return ApproveCallBackService.CallBack("HM/HMRiskTask/PersonalApprove", id);
 | 
						||
            });
 | 
						||
        }
 | 
						||
        /// <summary>
 | 
						||
        /// 获取个人的班组前会议活动
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="pageFilter"></param>
 | 
						||
        /// <returns></returns>
 | 
						||
        [HttpPost, Route("GetUserDealStatus")]
 | 
						||
        public JsonActionResult<bool> GetUserDealStatus([FromBody] T_HM_RISK_TASK entity)
 | 
						||
        {
 | 
						||
            return SafeExecute<bool>(() =>
 | 
						||
            {
 | 
						||
                var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
 | 
						||
                BaseFilter filter = new BaseFilter(orgId);
 | 
						||
                filter.Include = new string[] { "Nav_Detail.Nav_Users.Nav_User" };
 | 
						||
                var model = GetEntity<T_HM_RISK_TASK>(t => t.ID == entity.ID, filter);
 | 
						||
                //if (model.STATUS != FOPreMeetingStatusEnum.签到中)
 | 
						||
                //    return false;
 | 
						||
                var userID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
 | 
						||
                var userBool = false;
 | 
						||
                foreach (var detail in model.Nav_Detail)
 | 
						||
                {
 | 
						||
                    var count = detail.Nav_Users.Count(t => t.USER_ID == userID && t.DEAL_STATUS == 0);
 | 
						||
                    if (count > 0)  //该用户在该记录中是否参与且未同意则显示同意按钮
 | 
						||
                    {
 | 
						||
                        userBool = true;
 | 
						||
                        break;
 | 
						||
                    }
 | 
						||
                    else
 | 
						||
                    {
 | 
						||
                        userBool = false;
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                return userBool;
 | 
						||
 | 
						||
            });
 | 
						||
        }
 | 
						||
        /// <summary>
 | 
						||
        /// 签到
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="pageFilter"></param>
 | 
						||
        /// <returns></returns>
 | 
						||
        [HttpPost, Route("UserSignin")]
 | 
						||
        public JsonActionResult<bool> UserSignin([FromBody] T_HM_RISK_TASK riskTask)
 | 
						||
        {
 | 
						||
            return SafeExecute<bool>(() =>
 | 
						||
            {
 | 
						||
                var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
 | 
						||
                var userID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
 | 
						||
                var allTaskUsers = GetEntities<T_HM_RISK_TASK_USER>(t => t.Nav_Task_Detail.TASK_ID == riskTask.ID, new BaseFilter(orgId));
 | 
						||
                var filter = new BaseFilter(orgId);
 | 
						||
                filter.Include = new string[] { "Nav_Area", "Nav_User" };
 | 
						||
                var allTaskDetails = GetEntities<T_HM_RISK_TASK_DETAIL>(t => t.TASK_ID == riskTask.ID, filter);
 | 
						||
                var currUser = allTaskUsers.Where(t => t.USER_ID == userID);
 | 
						||
                var currDetail = allTaskDetails.Where(t => t.RECORD_USER_ID == userID);
 | 
						||
                foreach (var useritem in currUser)
 | 
						||
                {
 | 
						||
                    useritem.DEAL_STATUS = FOUserShiftStatusEnum.已处理;
 | 
						||
                }
 | 
						||
                foreach (var useritem in currDetail)
 | 
						||
                {
 | 
						||
                    useritem.DEAL_STATUS = FOUserShiftStatusEnum.已处理;
 | 
						||
                }
 | 
						||
                var todoCount = currDetail.Count(t => t.DEAL_STATUS == 0);
 | 
						||
                T_HM_RISK_TASK entity = null;
 | 
						||
                List<T_HM_RISK_RECORD> models = new List<T_HM_RISK_RECORD>();
 | 
						||
                List<T_HM_RISK_RECORD_USER> allUsers = new List<T_HM_RISK_RECORD_USER>();
 | 
						||
                List<T_HM_RISK_RECORD_IDENTIFYING> allIdentifyings = new List<T_HM_RISK_RECORD_IDENTIFYING>();
 | 
						||
                List<T_HM_RISK_RECORD_FILE> allFiles = new List<T_HM_RISK_RECORD_FILE>();
 | 
						||
                List<T_HM_RISK_RECORD_DETAIL> details = new List<T_HM_RISK_RECORD_DETAIL>();
 | 
						||
                List<T_HM_RISK_RECORD_DETAIL_WORKDUTY> workdutys = new List<T_HM_RISK_RECORD_DETAIL_WORKDUTY>();
 | 
						||
                List<T_HM_RISK_RECORD_DETAIL_EQUIPMENT> equipments = new List<T_HM_RISK_RECORD_DETAIL_EQUIPMENT>();
 | 
						||
                List<T_HM_RISK_RECORD_DETAIL_FACILITIES> facilities = new List<T_HM_RISK_RECORD_DETAIL_FACILITIES>();
 | 
						||
                List<T_FM_NOTIFICATION_TASK> sendNotices = null;
 | 
						||
                T_FM_NOTIFICATION_TASK finishNotice = null;
 | 
						||
                if (riskTask.TaskID != null)
 | 
						||
                {
 | 
						||
                    finishNotice = NotificationTaskService.FOGetTaskFinishModel(riskTask.TaskID, riskTask.ID);
 | 
						||
                }
 | 
						||
                entity = GetEntity<T_HM_RISK_TASK>(riskTask.ID, new string[] { "Nav_Identifyings", "Nav_Files", "Nav_Detail.Nav_Area", "Nav_Detail.Nav_User" });
 | 
						||
                var isallDone = allTaskUsers.Where(t => t.DEAL_STATUS == 0);
 | 
						||
                if (!isallDone.Any())
 | 
						||
                {
 | 
						||
                    entity.STATUS = FOPreMeetingStatusEnum.归档;
 | 
						||
                }
 | 
						||
                if (todoCount == 0 && currDetail.Any())
 | 
						||
                {
 | 
						||
                    var noticeTitles = new List<string>();
 | 
						||
                    var noticeUserIds = new List<Guid>();
 | 
						||
                    var noticeUserNames = new List<string>();
 | 
						||
                    var noticeDataIds = new List<Guid>();
 | 
						||
                    T_HM_RISK_RECORD riskRecord = new T_HM_RISK_RECORD();
 | 
						||
                    riskRecord.ID = Guid.NewGuid();
 | 
						||
                    var sysFilter1 = new SystemCodeFilter();
 | 
						||
                    sysFilter1.CodeType = (int)PFCodeRuleType.风险辨识记录编号;
 | 
						||
                    sysFilter1.Count = 1;
 | 
						||
                    sysFilter1.OrgId = orgId;
 | 
						||
                    var codes1 = CodeRuleService.NewGenSerial(sysFilter1);
 | 
						||
                    riskRecord.CODE = codes1;
 | 
						||
                    var userdepartment = GetEntity<T_FM_USER>(t => t.ID == userID && t.ENABLE_STATUS == 0);
 | 
						||
                    if (userdepartment != null)
 | 
						||
                    {
 | 
						||
                        riskRecord.INITIATING_DEPARTMENT = userdepartment.DEPARTMENT_ID;
 | 
						||
                    }
 | 
						||
                    riskRecord.NOTE_TAKER_ID = userID;
 | 
						||
                    riskRecord.STATUS = (int)FOPreMeetingStatusEnum.草稿;
 | 
						||
                    riskRecord.START_TIME = entity.START_TIME;
 | 
						||
                    riskRecord.END_TIME = entity.END_TIME;
 | 
						||
                    riskRecord.REQUEST_ID = (Guid)entity.REQUEST_ID;
 | 
						||
                    riskRecord.ORG_ID = orgId;
 | 
						||
                    riskRecord.LIABLE_USER_ID = entity.LIABLE_USER_ID;
 | 
						||
                    riskRecord.PLAN_ID = entity.PLAN_ID;
 | 
						||
                    riskRecord.LEVEL = currDetail.FirstOrDefault().LEVEL;
 | 
						||
                    riskRecord.TASK_ID = riskTask.ID;
 | 
						||
                    models.Add(riskRecord);
 | 
						||
                    noticeTitles.Add("危险源辨识记录" + DateTime.Now.ToShortDateString());
 | 
						||
                    noticeUserIds.Add((Guid)userID);
 | 
						||
                    noticeUserNames.Add(currDetail.FirstOrDefault().Nav_User.NAME);
 | 
						||
                    noticeDataIds.Add(riskRecord.ID);
 | 
						||
                    if (currDetail.Any())
 | 
						||
                    {
 | 
						||
                        var areaList = currDetail.Select(t => t.AREA_ID).ToList();
 | 
						||
                        BaseFilter baseFilter = new BaseFilter(orgId);
 | 
						||
                        baseFilter.Include = new string[] { "Nav_EvaluateRiskWorkduty", "Nav_EvaluateRiskEquipment", "Nav_DepartmentLiable", "Nav_PostLiable" };
 | 
						||
                        var identifyings = entity.Nav_Identifyings.Select(x => x.IDENTIFYING_ID).Distinct();
 | 
						||
                        var dangerDB = this.GetEntities<T_HM_EVALUATE_RISK>(t => areaList.Contains((Guid)t.AREA_ID) && identifyings.Contains((Guid)t.IDENTIFYING_ID) && t.STATUS == (int)HMOperationStepEnum.有效, baseFilter);
 | 
						||
                        foreach (var detail in currDetail)
 | 
						||
                        {
 | 
						||
                            var dangerDBAreas = dangerDB.Where(t => t.AREA_ID == detail.AREA_ID && t.LEVEL == detail.LEVEL);
 | 
						||
                            if (dangerDBAreas.Any())
 | 
						||
                            {
 | 
						||
                                foreach (var danger in dangerDBAreas)
 | 
						||
                                {
 | 
						||
                                    T_HM_RISK_RECORD_DETAIL recordDetail = new T_HM_RISK_RECORD_DETAIL();
 | 
						||
                                    recordDetail.ID = Guid.NewGuid();
 | 
						||
                                    recordDetail.RECORD_ID = riskRecord.ID;
 | 
						||
                                    recordDetail.AREA_ID = detail.AREA_ID;
 | 
						||
                                    recordDetail.IDENTIFYING_ID = danger.IDENTIFYING_ID;
 | 
						||
                                    recordDetail.ORG_ID = orgId;
 | 
						||
                                    if (danger.TYPE_ID == null)
 | 
						||
                                    {
 | 
						||
                                        throw new Exception("危险源数据库中名称:  " + danger.NAME + "  的风险类别不能为空!");
 | 
						||
                                    }
 | 
						||
                                    recordDetail.TYPE_ID = danger.TYPE_ID;
 | 
						||
                                    recordDetail.RISK_NAME = danger.NAME;
 | 
						||
                                    recordDetail.RISK_PLACE = danger.RISK_PLACE;
 | 
						||
                                    recordDetail.EVALUATE_RISK_ID = danger.ID;
 | 
						||
                                    recordDetail.OPERATION_STEP_ID = danger.OPERATION_STEP_ID;
 | 
						||
                                    recordDetail.RISK_STATUS = (HMOperationStepEnum)danger.STATUS;
 | 
						||
                                    recordDetail.MODIFY_TYPE = HMModifyEnum.数据库;
 | 
						||
                                    recordDetail.DEPARTMENT_LIABLE_ID = danger.DEPARTMENT_LIABLE_ID;
 | 
						||
                                    recordDetail.POST_LIABLE_ID = danger.POST_LIABLE_ID;
 | 
						||
                                    var liableUser = GetEntity<T_FM_USER>(t => t.DEPARTMENT_ID == danger.DEPARTMENT_LIABLE_ID && t.APPROVE_ROLE_ID == danger.POST_LIABLE_ID);
 | 
						||
                                    if (liableUser == null)
 | 
						||
                                    {
 | 
						||
                                        throw new Exception("危险源数据库中未能找到责任单位:  " + danger.Nav_DepartmentLiable.NAME + " 与责任岗位:  " + danger.Nav_PostLiable.NAME + " 对应的责任人!");
 | 
						||
                                    }
 | 
						||
                                    else
 | 
						||
                                    {
 | 
						||
                                        recordDetail.LIABLE_USER_ID = liableUser.ID;
 | 
						||
                                    }
 | 
						||
                                    if (danger.Nav_EvaluateRiskWorkduty != null)
 | 
						||
                                    {
 | 
						||
                                        foreach (var item3 in danger.Nav_EvaluateRiskWorkduty)
 | 
						||
                                        {
 | 
						||
                                            T_HM_RISK_RECORD_DETAIL_WORKDUTY workduty = new T_HM_RISK_RECORD_DETAIL_WORKDUTY();
 | 
						||
                                            workduty.WORKDUTY_ID = item3.POST_ID;
 | 
						||
                                            workduty.RISK_RECORD_DETAIL_ID = recordDetail.ID;
 | 
						||
                                            workduty.ORG_ID = orgId;
 | 
						||
                                            workdutys.Add(workduty);
 | 
						||
                                        }
 | 
						||
                                    }
 | 
						||
                                    if (danger.Nav_EvaluateRiskEquipment != null)
 | 
						||
                                    {
 | 
						||
                                        foreach (var item3 in danger.Nav_EvaluateRiskEquipment)
 | 
						||
                                        {
 | 
						||
                                            T_HM_RISK_RECORD_DETAIL_EQUIPMENT equipment = new T_HM_RISK_RECORD_DETAIL_EQUIPMENT();
 | 
						||
                                            equipment.EQUIPMENT_ID = item3.EQUIPMENT_ID;
 | 
						||
                                            equipment.RISK_RECORD_DETAIL_ID = recordDetail.ID;
 | 
						||
                                            equipment.ORG_ID = orgId;
 | 
						||
                                            equipments.Add(equipment);
 | 
						||
                                        }
 | 
						||
                                    }
 | 
						||
                                    details.Add(recordDetail);
 | 
						||
                                }
 | 
						||
                            }
 | 
						||
                            var taskUsers = allTaskUsers.Where(t => t.TASK_DETAIL_ID == detail.ID);
 | 
						||
                            //添加人员
 | 
						||
                            foreach (var user in taskUsers)
 | 
						||
                            {
 | 
						||
                                T_HM_RISK_RECORD_USER recordUser = new T_HM_RISK_RECORD_USER();
 | 
						||
                                recordUser.RECORD_ID = riskRecord.ID;
 | 
						||
                                recordUser.AREA_ID = detail.AREA_ID;
 | 
						||
                                recordUser.USER_ID = user.USER_ID;
 | 
						||
                                recordUser.ORG_ID = detail.ORG_ID;
 | 
						||
                                if (user.USER_ID != userID)
 | 
						||
                                {
 | 
						||
                                    recordUser.DEAL_STATUS = FOUserShiftStatusEnum.待处理;
 | 
						||
                                }
 | 
						||
                                else
 | 
						||
                                {
 | 
						||
                                    recordUser.DEAL_STATUS = FOUserShiftStatusEnum.已处理;
 | 
						||
                                }
 | 
						||
                                allUsers.Add(recordUser);
 | 
						||
                            }
 | 
						||
                            allUsers = allUsers.DistinctBy(u => new { u.USER_ID, u.AREA_ID }).ToList();
 | 
						||
                        }
 | 
						||
 | 
						||
                        //添加辨识对象
 | 
						||
                        if (entity.Nav_Identifyings != null)
 | 
						||
                        {
 | 
						||
                            foreach (var item in entity.Nav_Identifyings)
 | 
						||
                            {
 | 
						||
                                T_HM_RISK_RECORD_IDENTIFYING identifying = new T_HM_RISK_RECORD_IDENTIFYING();
 | 
						||
                                identifying.RECORD_ID = riskRecord.ID;
 | 
						||
                                identifying.IDENTIFYING_ID = item.IDENTIFYING_ID;
 | 
						||
                                identifying.ORG_ID = orgId;
 | 
						||
                                allIdentifyings.Add(identifying);
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        //添加附件
 | 
						||
                        if (entity.Nav_Files != null)
 | 
						||
                        {
 | 
						||
                            foreach (var fileitem in entity.Nav_Files)
 | 
						||
                            {
 | 
						||
                                T_HM_RISK_RECORD_FILE file = new T_HM_RISK_RECORD_FILE();
 | 
						||
                                file.RECORD_ID = riskRecord.ID;
 | 
						||
                                file.IMG_FILE_ID = (Guid)fileitem.IMG_FILE_ID;
 | 
						||
                                file.ORG_ID = orgId;
 | 
						||
                                allFiles.Add(file);
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                        
 | 
						||
                        sendNotices = NotificationTaskService.InsertUserNoticeTaskModels(noticeTitles, noticeDataIds, orgId, noticeUserIds, noticeUserNames, DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(7).ToShortDateString() + " 23:59:59"), 0, "HM064");
 | 
						||
                    }
 | 
						||
                    
 | 
						||
                }
 | 
						||
                UnifiedCommit(() =>
 | 
						||
                {
 | 
						||
                    BantchUpdateEntityNoCommit(currUser, "DEAL_STATUS", "MODIFY_TIME");
 | 
						||
                    if (entity != null)
 | 
						||
                        UpdateEntityNoCommit(entity, "STATUS");
 | 
						||
                    if (models != null && models.Any())
 | 
						||
                        BantchAddEntityNoCommit(models);
 | 
						||
                    if (allUsers != null && allUsers.Any())
 | 
						||
                        BantchAddEntityNoCommit(allUsers);
 | 
						||
                    if (allIdentifyings != null && allIdentifyings.Any())
 | 
						||
                        BantchAddEntityNoCommit(allIdentifyings);
 | 
						||
                    if (allFiles != null && allFiles.Any())
 | 
						||
                        BantchAddEntityNoCommit(allFiles);
 | 
						||
                    if (details != null && details.Any())
 | 
						||
                        BantchAddEntityNoCommit(details);
 | 
						||
                    if (workdutys != null && workdutys.Any())
 | 
						||
                        BantchAddEntityNoCommit(workdutys);
 | 
						||
                    if (equipments != null && equipments.Any())
 | 
						||
                        BantchAddEntityNoCommit(equipments);
 | 
						||
                    if (facilities != null && facilities.Any())
 | 
						||
                        BantchAddEntityNoCommit(facilities);
 | 
						||
                    if (sendNotices != null && sendNotices.Any())
 | 
						||
                        BantchAddEntityNoCommit(sendNotices);
 | 
						||
                    if (finishNotice != null)
 | 
						||
                        UpdateEntityNoCommit(finishNotice);
 | 
						||
                });
 | 
						||
                return true;
 | 
						||
            });
 | 
						||
        }
 | 
						||
        /// 排序分页查询数据
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="pageFilter">分页过滤实体</param>
 | 
						||
        /// <returns></returns>
 | 
						||
        [HttpPost, Route("OrderPagedAreaMineType")]
 | 
						||
        public PagedActionResult<T_HM_RISK_AREA> OrderPagedAreaMineType([FromBody] KeywordPageFilter pageFilter)
 | 
						||
        {
 | 
						||
            return SafeGetPagedData<T_HM_RISK_AREA>((result) =>
 | 
						||
            {
 | 
						||
                Expression<Func<T_HM_RISK_AREA, bool>> expression = null;
 | 
						||
                List<int> listMineType = new List<int>();
 | 
						||
                if (pageFilter.FilterGroup.Groups.Count() > 0)
 | 
						||
                {
 | 
						||
                    var filterGroup = pageFilter.FilterGroup.Groups.ToList()[0];
 | 
						||
                    if (filterGroup.Rules.Count() > 0)
 | 
						||
                    {
 | 
						||
                        foreach (var item in filterGroup.Rules)
 | 
						||
                        {
 | 
						||
                            if (item.Field == "CHECKOBJECT")
 | 
						||
                            {
 | 
						||
                                try
 | 
						||
                                {
 | 
						||
                                    listMineType.Add(int.Parse(item.Value.ToString()));
 | 
						||
                                }
 | 
						||
                                catch { }
 | 
						||
                                filterGroup.Rules.Remove(item);
 | 
						||
                                break;
 | 
						||
                            }
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                }
 | 
						||
 | 
						||
                if (listMineType == null)
 | 
						||
                {
 | 
						||
                    listMineType = UserService.GetMineType();
 | 
						||
                }
 | 
						||
                if (listMineType != null && listMineType.Count > 0)
 | 
						||
                {
 | 
						||
                    var listDepUnit = GetEntities<T_FM_DEPARTMENT_PRODUCTION_UNIT>(e => e.Nav_Enums != null && listMineType.Contains(e.Nav_Enums.VALUE), null, "Nav_Enums");
 | 
						||
                    if (listDepUnit != null && listDepUnit.Any())
 | 
						||
                    {
 | 
						||
                        List<Guid> listDepID = listDepUnit.Select(e => e.DEPARTMENT_ID).ToList();
 | 
						||
                        var listDep = GetEntities<T_FM_DEPARTMENT>(e => !e.MineType.HasValue || listDepID.Contains(e.ID), null, null);
 | 
						||
                        List<Guid> listDepId = new List<Guid>();
 | 
						||
                        if (listDep != null && listDep.Any())
 | 
						||
                        {
 | 
						||
                            listDepId = listDep.Select(e => e.ID).ToList();
 | 
						||
                        }
 | 
						||
                        if (listDepId.Count > 0)
 | 
						||
                        {
 | 
						||
                            expression = e => !e.DEPARTMENT_ID.HasValue || listDepId.Contains(e.DEPARTMENT_ID.Value);
 | 
						||
                        }
 | 
						||
                        else
 | 
						||
                        {
 | 
						||
                            expression = e => !e.DEPARTMENT_ID.HasValue;
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                }
 | 
						||
 | 
						||
 | 
						||
                PagedActionResult<T_HM_RISK_AREA> orderPageEntities = GetOrderPageEntities<T_HM_RISK_AREA>(expression, pageFilter, null);
 | 
						||
                result.Data = orderPageEntities.Data;
 | 
						||
                result.TotalCount = orderPageEntities.TotalCount;
 | 
						||
            });
 | 
						||
        }
 | 
						||
        /// <summary>
 | 
						||
        /// 审批流回调
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="id"></param>
 | 
						||
        /// <returns></returns>
 | 
						||
        [HttpPost, Route("RejectUpdate")]
 | 
						||
        public JsonActionResult<bool> RejectUpdate([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;
 | 
						||
                var record = GetEntity<T_HM_RISK_TASK>(entity.DATA_ID, new string[] { "Nav_LiableUser" });
 | 
						||
                bool ResultGetInfo = ApproveCallBackService.GetApproject(entity, ref modelApp, ref listAppDetail, ref taskFinish, ref Msg);
 | 
						||
                if (!ResultGetInfo)
 | 
						||
                    throw new Exception("驳回失败!");
 | 
						||
                record.STATUS = FOPreMeetingStatusEnum.审批拒绝;
 | 
						||
                var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("风险源辨识任务-驳回", entity.DATA_ID, record.ORG_ID, (Guid)record.LIABLE_USER_ID, record.Nav_LiableUser.NAME, DateTime.Now, DateTime.Now.AddHours(7), 0, "HM062");
 | 
						||
                UnifiedCommit(() =>
 | 
						||
                {
 | 
						||
                    if (record != null)
 | 
						||
                        UpdateEntityNoCommit(record);   //保存主表
 | 
						||
                    if (sendNotice != null)
 | 
						||
                        AddEntityNoCommit(sendNotice);
 | 
						||
                });
 | 
						||
 | 
						||
                return true;
 | 
						||
 | 
						||
 | 
						||
            });
 | 
						||
        }
 | 
						||
    }
 | 
						||
}
 |