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;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|