176 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			176 lines
		
	
	
		
			7.4 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 APT.WebApi.Models;
							 | 
						|||
| 
								 | 
							
								using Microsoft.AspNetCore.Mvc;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Linq.Expressions;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace APT.BS.WebApi.Controllers.Api
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    [Route("api/BS/BSRiskSubmitContentTemp")]
							 | 
						|||
| 
								 | 
							
								    public partial class BSRiskSubmitContentTempController : AuthorizeApiController<T_BS_RISK_SUBMIT_CONTENT_TEMP>
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        IFMFlowPermitService MFlowPermitService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IFMNotificationTaskService NotificationTaskService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IPFCodeRuleService CodeRuleService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IPFApproveCallBackService ApproveCallBackService { get; set; }
							 | 
						|||
| 
								 | 
							
								        public BSRiskSubmitContentTempController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService, IPFApproveCallBackService approveCallBackService)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            NotificationTaskService = notificationTaskService;
							 | 
						|||
| 
								 | 
							
								            MFlowPermitService = mFlowPermitService;
							 | 
						|||
| 
								 | 
							
								            CodeRuleService = codeRuleService;
							 | 
						|||
| 
								 | 
							
								            ApproveCallBackService = approveCallBackService;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 隐患上报详情待入库
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="entity"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("FullUpdate")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> FullUpdate([FromBody] T_BS_RISK_SUBMIT_CONTENT_TEMP entity)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                //问题ID 判断检查问题描述 整改建议与措施  
							 | 
						|||
| 
								 | 
							
								                //如果不完全一致 添加问题 修改问题ID
							 | 
						|||
| 
								 | 
							
								                //入库
							 | 
						|||
| 
								 | 
							
								                //给审核人 添加待办
							 | 
						|||
| 
								 | 
							
								                Guid UserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
							 | 
						|||
| 
								 | 
							
								                if (entity.USER_ID_EDIT.HasValue)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (entity.USER_ID_EDIT.Value != UserId)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (APT.Infrastructure.Api.AppContext.CurrentSession.UserName != "admin")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var userDel = GetEntity<T_FM_USER>(entity.USER_ID_EDIT.Value);
							 | 
						|||
| 
								 | 
							
								                            throw new Exception("您没有权限处理此隐患,请联系【" + userDel.NAME + "】(安环部负责人)处理!");
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    //未指定 就是当前的人
							 | 
						|||
| 
								 | 
							
								                    entity.USER_ID_EDIT = UserId;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (entity.ORDERTYPE == OrderType.Temp)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    //保存草稿
							 | 
						|||
| 
								 | 
							
								                    UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        UpdateEntityNoCommit(entity);
							 | 
						|||
| 
								 | 
							
								                    });
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    //保存信息
							 | 
						|||
| 
								 | 
							
								                    //判断是否需要新增问题
							 | 
						|||
| 
								 | 
							
								                    //如果需要 审批流
							 | 
						|||
| 
								 | 
							
								                    bool isAdd = false;
							 | 
						|||
| 
								 | 
							
								                    bool isAddQues = true;
							 | 
						|||
| 
								 | 
							
								                    T_BS_CHECK_QUESTION ques = null;
							 | 
						|||
| 
								 | 
							
								                    if (entity.CHECK_QUESTION_ID != null && entity.CHECK_QUESTION_ID.HasValue)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        entity.Nav_CheckQuestion = this.GetEntity<T_BS_CHECK_QUESTION>(entity.CHECK_QUESTION_ID.Value);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (entity.Nav_CheckQuestion != null && (entity.DEMAND != entity.Nav_CheckQuestion.DEMAND || entity.DESCREPTION != entity.Nav_CheckQuestion.DESCREPTION))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        ques = GetEntity<T_BS_CHECK_QUESTION>(e => e.DEMAND == entity.DEMAND && e.DESCREPTION == entity.DESCREPTION);// && e.DESCREPTION == entity.Nav_CheckQuestion.DESCREPTION
							 | 
						|||
| 
								 | 
							
								                        if (ques != null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            isAddQues = false;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        isAddQues = false;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (!isAddQues)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var CheckMain = GetEntity<T_BS_CHECK_MAIN>(e => e.CHECKCONTENT == entity.CHECKCONTENT && e.CHECKCONTENT == entity.CHECKCONTENT && e.CHECK_QUESTION_ID == entity.CHECK_QUESTION_ID);
							 | 
						|||
| 
								 | 
							
								                        if (CheckMain == null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            isAdd = true;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        isAdd = true;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (isAdd)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        //取审批流水码
							 | 
						|||
| 
								 | 
							
								                        var sysFilter = new SystemCodeFilter();
							 | 
						|||
| 
								 | 
							
								                        sysFilter.CodeType = (int)PFCodeRuleType.审批流编码;
							 | 
						|||
| 
								 | 
							
								                        sysFilter.Count = 1;
							 | 
						|||
| 
								 | 
							
								                        sysFilter.OrgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
							 | 
						|||
| 
								 | 
							
								                        string serialCode = CodeRuleService.NewGenSerial(sysFilter);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        entity.APPROVE_ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								                        MFlowPermitService.InsertApprove(serialCode, "BS048", null, entity.ID, "BS048_SHOWPRINT", entity.TaskID, true, () =>
							 | 
						|||
| 
								 | 
							
								                         {
							 | 
						|||
| 
								 | 
							
								                             if (entity != null)
							 | 
						|||
| 
								 | 
							
								                                 UpdateEntityNoCommit(entity);
							 | 
						|||
| 
								 | 
							
								                         }, entity.APPROVE_ID.Value);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        //无需新增问题
							 | 
						|||
| 
								 | 
							
								                        entity.ISINSERT = true;
							 | 
						|||
| 
								 | 
							
								                        T_FM_NOTIFICATION_TASK finishNotice = null;
							 | 
						|||
| 
								 | 
							
								                        if (entity.TaskID != new Guid())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            finishNotice = NotificationTaskService.GetTaskFinishModel(entity.TaskID);//wyw 之前方法 巡回安全检查填写会报错
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (ques != null && ques.IS_DELETED)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                //如果是已删除的问题
							 | 
						|||
| 
								 | 
							
								                                ques.IS_DELETED = false;
							 | 
						|||
| 
								 | 
							
								                                entity.CHECK_QUESTION_ID = ques.ID;
							 | 
						|||
| 
								 | 
							
								                                UpdateEntityNoCommit(ques);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            UpdateEntityNoCommit(entity);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            if (finishNotice != null)
							 | 
						|||
| 
								 | 
							
								                                UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 隐患上报详情待入库 审批回调
							 | 
						|||
| 
								 | 
							
								        /// api/BS/BSRiskSubmit/DealEnd
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="id"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpGet, Route("ApproveBackBS048")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> ApproveBackBS048(string id)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return ApproveCallBackService.CallBack("BS/BSRiskSubmitContentTemp/ApproveBackBS048", id);
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |