218 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			218 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using APT.BaseData.Domain.Entities;
 | 
						|
using APT.BaseData.Domain.Enums;
 | 
						|
using APT.Infrastructure.Core;
 | 
						|
using System;
 | 
						|
using APT.BaseData.Domain.Entities.FM;
 | 
						|
using APT.BaseData.Domain.IServices.FM;
 | 
						|
using APT.Infrastructure.Api;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
using APT.MS.Domain.Enums;
 | 
						|
using APT.BaseData.Domain.Enums.PF;
 | 
						|
using APT.BaseData.Domain.IServices;
 | 
						|
using System.Linq.Expressions;
 | 
						|
using Newtonsoft.Json;
 | 
						|
using APT.BaseData.Domain.IServices.BS;
 | 
						|
using APT.MS.Domain.Entities.BS;
 | 
						|
 | 
						|
 | 
						|
namespace APT.BaseData.Services.Services.BS
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// 安全检查
 | 
						|
    /// </summary>
 | 
						|
    public class BSSafeCheckService : CommonService, IBSSafeCheckService
 | 
						|
    {
 | 
						|
        public BSSafeCheckService(IRepository repository)
 | 
						|
            : base(repository)
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 危险源辨识 添加安全检查
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="RISK_AREA_ID">区域ID</param>
 | 
						|
        /// <param name="dicProjctContents">辨识对象 list<管控措施></param>
 | 
						|
        /// <param name="DateID">用户ID</param>
 | 
						|
        /// <param name="DEPARTMENTID">部门ID</param>
 | 
						|
        /// <param name="OrgId"></param>
 | 
						|
        /// <param name="DateID"></param>
 | 
						|
        public void HazardsIni(Guid RISK_AREA_ID, Dictionary<string, List<string>> dicProjctContents, Guid UserID, Guid DEPARTMENTID, Guid OrgId, Guid DateID, ref T_BS_SAFE_CHECK modelCheck, ref List<T_BS_CHECK_PROJECT> listProject, ref List<T_BS_SAFE_CHECK_DETAIL> listDetail)
 | 
						|
        {
 | 
						|
            modelCheck = new T_BS_SAFE_CHECK();
 | 
						|
            modelCheck.ID = DateID;
 | 
						|
            modelCheck.ORG_ID = OrgId;
 | 
						|
            DateTime dtNow = DateTime.Now;
 | 
						|
 | 
						|
            modelCheck.NAME = "危险源辨识触发安全检查";
 | 
						|
            modelCheck.CODE = dtNow.ToString("yyyyMMddHHmmss");
 | 
						|
            //变成可空
 | 
						|
            //modelCheck.CHECK_TYPE_ID =           ;
 | 
						|
            //modelCheck.CHECKOBJECT =           ;
 | 
						|
            //modelCheck.CHECK_TYPE_LEVEL_ID =           ;
 | 
						|
 | 
						|
            modelCheck.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
 | 
						|
            modelCheck.CREACTTYPE = CREACTTYPEEnum.HazardsAdd;
 | 
						|
            modelCheck.IS_DELETED = false;
 | 
						|
            modelCheck.CREATE_TIME = dtNow;
 | 
						|
            modelCheck.CREATER_ID = UserID;
 | 
						|
            modelCheck.STATUCHECK = 0;// HMAuditStatusEnmu.草稿;
 | 
						|
            modelCheck.STATUSPLAN = 0;// HMAuditStatusEnmu.草稿;
 | 
						|
            modelCheck.DEPARTMENTID = DEPARTMENTID;
 | 
						|
            modelCheck.USERID_DOPLAN = UserID;
 | 
						|
            modelCheck.RISKSTATE = 0;
 | 
						|
 | 
						|
            //modelCheck.PLAN_SET_ID =           ;
 | 
						|
            //modelCheck.CHECKTIME =           ;
 | 
						|
            //modelCheck.ENTITY_ORG_TPYE =           ;
 | 
						|
            //modelCheck.FORM_ID =           ;
 | 
						|
            //modelCheck.FLOW_STATUS =           ;
 | 
						|
            //modelCheck.FLOW_SEND_STATUS =           ;
 | 
						|
            //modelCheck.FLOW_ID =           ;
 | 
						|
            //modelCheck.MODIFY_TIME =           ;
 | 
						|
            //modelCheck.MODIFIER_ID =           ;
 | 
						|
            //modelCheck.APPROVE_ID =           ;
 | 
						|
            //modelCheck.APPROVE_CHECKAUDIT_ID =           ;
 | 
						|
            //modelCheck.APPROVE_TEMP_ID =           ;
 | 
						|
            //modelCheck.CheckUsers =           ;
 | 
						|
 | 
						|
 | 
						|
            listDetail = new List<T_BS_SAFE_CHECK_DETAIL>();
 | 
						|
            listProject = new List<T_BS_CHECK_PROJECT>();
 | 
						|
            int rowNO = 0;
 | 
						|
            T_BS_CHECK_PROJECT operateProject = null;
 | 
						|
            foreach (var item in dicProjctContents)
 | 
						|
            {
 | 
						|
                operateProject = GetEntity<T_BS_CHECK_PROJECT>(e => e.NAME == item.Key);
 | 
						|
                if (operateProject == null)
 | 
						|
                {
 | 
						|
                    operateProject = new T_BS_CHECK_PROJECT();
 | 
						|
                    operateProject.NAME = item.Key;
 | 
						|
                    operateProject.ID = Guid.NewGuid();
 | 
						|
                    operateProject.CREATER_ID = UserID;
 | 
						|
                    operateProject.CREATE_TIME = dtNow;
 | 
						|
                    operateProject.ENABLE_STATUS = 0;
 | 
						|
                    operateProject.IS_DELETED = false;
 | 
						|
                    operateProject.ORG_ID = OrgId;
 | 
						|
                    listProject.Add(operateProject);
 | 
						|
                }
 | 
						|
                for (int i = 0; i < item.Value.Count; i++)
 | 
						|
                {
 | 
						|
                    rowNO++;
 | 
						|
                    T_BS_SAFE_CHECK_DETAIL modelDetail = new T_BS_SAFE_CHECK_DETAIL();
 | 
						|
                    modelDetail.ID = Guid.NewGuid();
 | 
						|
                    modelDetail.SAFE_CHECK_ID = DateID;
 | 
						|
                    modelDetail.CHECKTYPE = 0;
 | 
						|
                    modelDetail.IS_DELETED = false;
 | 
						|
                    modelDetail.ORG_ID = OrgId;
 | 
						|
                    modelDetail.CREATE_TIME = dtNow;
 | 
						|
                    modelDetail.CREATER_ID = UserID;
 | 
						|
                    modelDetail.ROW_NO = rowNO;
 | 
						|
                    modelDetail.CHECKCONTENT = item.Value[i];
 | 
						|
                    modelDetail.CHECK_PROJECT_ID = operateProject.ID;
 | 
						|
                    modelDetail.RISK_AREA_ID = RISK_AREA_ID;
 | 
						|
 | 
						|
                    //modelDetail.CHECK_MAIN_ID =         ;
 | 
						|
                    //modelDetail.REMARK_RESULT =         ;
 | 
						|
                    //modelDetail.QUESTION_LEVEL =         ;
 | 
						|
                    //modelDetail.ENTITY_ORG_TPYE =         ;
 | 
						|
                    //modelDetail.FORM_ID =         ;
 | 
						|
                    //modelDetail.FLOW_STATUS =         ;
 | 
						|
                    //modelDetail.FLOW_SEND_STATUS =         ;
 | 
						|
                    //modelDetail.FLOW_ID =         ;
 | 
						|
                    //modelDetail.MODIFY_TIME =         ;
 | 
						|
                    //modelDetail.MODIFIER_ID =         ;
 | 
						|
                    //modelDetail.CHECKRESULT =         ;
 | 
						|
                    //modelDetail.CHECKPROOF =         ;
 | 
						|
                    //modelDetail.CHECK_PROJECT_PROJECT_CATEGORY_ID =         ;
 | 
						|
                    //modelDetail.CHECK_QUESTION_ID =         ;
 | 
						|
                    //modelDetail.SERIOUS_RISK =         ;
 | 
						|
 | 
						|
                    listDetail.Add(modelDetail);
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            //UnifiedCommit(() =>
 | 
						|
            //{
 | 
						|
            //    if (modelCheck != null)//添加安全检查
 | 
						|
            //        AddEntity(modelCheck);
 | 
						|
            //    if (listProject.Any())//添加检查项目
 | 
						|
            //        BantchSaveEntityNoCommit(listProject);
 | 
						|
            //    if (listDetail.Any())//添加审批详情
 | 
						|
            //        BantchSaveEntityNoCommit(listDetail);
 | 
						|
            //});
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 获取对应截止时间
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="Quency"></param>
 | 
						|
        /// <param name="dtNow"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public DateTime GetEndTime(BSPLANCHECKFREQUENCYEnum Quency, DateTime? dtNow = null)
 | 
						|
        {
 | 
						|
            DateTime dtResult = DateTime.Now;
 | 
						|
            if (!dtNow.HasValue)
 | 
						|
                dtNow = DateTime.Now;
 | 
						|
            switch (Quency)
 | 
						|
            {
 | 
						|
                case BSPLANCHECKFREQUENCYEnum.None://每年
 | 
						|
                //case BSPLANCHECKFREQUENCYEnum.OneTime://
 | 
						|
                case BSPLANCHECKFREQUENCYEnum.Year://每年
 | 
						|
                    dtResult = Convert.ToDateTime(dtNow.Value.ToString("yyyy-12-31 23:59:59"));
 | 
						|
                    break;
 | 
						|
                case BSPLANCHECKFREQUENCYEnum.HalfYear:
 | 
						|
                    if (dtNow.Value.Month <= 6)
 | 
						|
                    {
 | 
						|
                        dtResult = Convert.ToDateTime(dtNow.Value.ToString("yyyy-06-30 23:59:59"));
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        dtResult = Convert.ToDateTime(dtNow.Value.ToString("yyyy-12-31 23:59:59"));
 | 
						|
                    }
 | 
						|
                    break;
 | 
						|
                case BSPLANCHECKFREQUENCYEnum.Date://每天
 | 
						|
                    dtResult = dtNow.Value.Date.AddDays(1).AddSeconds(-1);
 | 
						|
                    break;
 | 
						|
                case BSPLANCHECKFREQUENCYEnum.Week://每周
 | 
						|
                    int iweek = (int)dtNow.Value.DayOfWeek;
 | 
						|
                    dtResult = dtNow.Value.Date.AddDays(-1 * iweek).AddDays(8).AddSeconds(-1);
 | 
						|
                    break;
 | 
						|
                case BSPLANCHECKFREQUENCYEnum.Month://每月
 | 
						|
                    dtResult = Convert.ToDateTime(dtNow.Value.ToString("yyyy-MM-01 00:00:00")).AddMonths(1).AddSeconds(-1);
 | 
						|
                    break;
 | 
						|
                case BSPLANCHECKFREQUENCYEnum.Quarter://每季度
 | 
						|
                    switch (dtNow.Value.Month)
 | 
						|
                    {
 | 
						|
                        case 1:
 | 
						|
                        case 2:
 | 
						|
                        case 3:
 | 
						|
                            dtResult = Convert.ToDateTime(dtNow.Value.Year + "-03-31 23:59:59");
 | 
						|
                            break;
 | 
						|
                        case 4:
 | 
						|
                        case 5:
 | 
						|
                        case 6:
 | 
						|
                            dtResult = Convert.ToDateTime(dtNow.Value.Year + "-06-30 23:59:59");
 | 
						|
                            break;
 | 
						|
                        case 7:
 | 
						|
                        case 8:
 | 
						|
                        case 9:
 | 
						|
                            dtResult = Convert.ToDateTime(dtNow.Value.Year + "-09-30 23:59:59");
 | 
						|
                            break;
 | 
						|
                        case 10:
 | 
						|
                        case 11:
 | 
						|
                        case 12:
 | 
						|
                        default:
 | 
						|
                            dtResult = Convert.ToDateTime(dtNow.Value.Year + "-12-31 23:59:59");
 | 
						|
                            break;
 | 
						|
                    }
 | 
						|
                    break;
 | 
						|
                default:
 | 
						|
                    break;
 | 
						|
            }
 | 
						|
            return dtResult;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |