按企业库自动更新检查清单
This commit is contained in:
parent
4245c9f6fc
commit
855028cd08
@ -74,7 +74,8 @@ namespace APT.PP.WebApi.Controllers.Api
|
|||||||
public List<CheckListDetail> details { get; set; }
|
public List<CheckListDetail> details { get; set; }
|
||||||
}
|
}
|
||||||
public class CheckListDetail
|
public class CheckListDetail
|
||||||
{
|
{
|
||||||
|
public Guid? ID { get; set; }
|
||||||
public string RISK_NAME { get; set; }
|
public string RISK_NAME { get; set; }
|
||||||
public Guid? RISK_AREA_ID { get; set; }
|
public Guid? RISK_AREA_ID { get; set; }
|
||||||
|
|
||||||
@ -85,7 +86,10 @@ namespace APT.PP.WebApi.Controllers.Api
|
|||||||
|
|
||||||
public string CHECKPROOF { get; set; }
|
public string CHECKPROOF { get; set; }
|
||||||
|
|
||||||
public string CHECKSTANDARD { get; set; }
|
public string CHECKSTANDARD { get; set; }
|
||||||
|
public Guid? ENTERPRISE_LIBRARY_DETAIL_ID { get; set; }
|
||||||
|
public Guid? ENTERPRISE_LIBRARY_ID { get; set; }
|
||||||
|
public string MEASURES_NAME { get; set; }
|
||||||
}
|
}
|
||||||
[Route("api/PP/SKController")]
|
[Route("api/PP/SKController")]
|
||||||
[TypeFilter(typeof(CustomActionFilterAttribute))]
|
[TypeFilter(typeof(CustomActionFilterAttribute))]
|
||||||
@ -5938,6 +5942,260 @@ namespace APT.PP.WebApi.Controllers.Api
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 定时更新系统管理下面的检查清单
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pageFilter"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("UpdateCheckList")]
|
||||||
|
public JsonActionResult<bool> UpdateCheckList([FromBody] KeywordFilter filter)
|
||||||
|
{
|
||||||
|
return SafeExecute<bool>(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var deleteHidIds = this.GetEntities<T_SK_CHECK_SET_CONTENTS_HIDDEN>(t => true, new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList();
|
||||||
|
var deleteConIds = this.GetEntities<T_SK_CHECK_SET_CONTENTS>(t => true, new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList();
|
||||||
|
var deleteSetIds = this.GetEntities<T_SK_CHECK_SET>(t => true, new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList();
|
||||||
|
List<T_SK_CHECK_SET> sets = new List<T_SK_CHECK_SET>();
|
||||||
|
List<T_SK_CHECK_SET_CONTENTS> setContents = new List<T_SK_CHECK_SET_CONTENTS>();
|
||||||
|
List<T_SK_CHECK_SET_CONTENTS_HIDDEN> setConHiddens = new List<T_SK_CHECK_SET_CONTENTS_HIDDEN>();
|
||||||
|
List<CheckListNew> list = new List<CheckListNew>();
|
||||||
|
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART> conDepartlist = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>();
|
||||||
|
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_User");
|
||||||
|
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && t.DEPARTMENT_ID != null && !t.CODE.Contains("admin") && t.Nav_Person != null, new BaseFilter(filter.OrgId), "Nav_Person", "Nav_ApproveRole");
|
||||||
|
var productions = this.GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList();
|
||||||
|
//企业库
|
||||||
|
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_Area").ToList();
|
||||||
|
var libIds = librarys.Select(t => t.ID).ToList();
|
||||||
|
//管控层级
|
||||||
|
var libraryDeparts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DEPART>(t => !t.IS_DELETED && libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).ToList();
|
||||||
|
//管控措施
|
||||||
|
var libraryDetails = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => !t.IS_DELETED && libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).ToList();
|
||||||
|
var libDetailIds = libraryDetails.Select(t => t.ID).ToList();
|
||||||
|
//检查内容
|
||||||
|
var contents = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(t => !t.IS_DELETED && libDetailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_Contents").ToList();
|
||||||
|
var libContentIds = libraryDetails.Select(t => t.ID).ToList();
|
||||||
|
//检查层级
|
||||||
|
var contentDeparts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(t => !t.IS_DELETED && libContentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList();
|
||||||
|
//隐患描述
|
||||||
|
//var contentHiddens = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList();
|
||||||
|
//辨识岗位
|
||||||
|
var posts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(t => !t.IS_DELETED && libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList();
|
||||||
|
//岗位排查
|
||||||
|
var checkTypeIds = this.GetEntities<T_SK_CHECK_TYPE>(t => t.NAME == "岗位排查", new BaseFilter(filter.OrgId)).Select(x => x.ID).ToList();
|
||||||
|
//检查清单(生产单元+检查层级+检查类型+检查周期+检查部门:取辨识部门+检查对象:取辨识岗位)
|
||||||
|
if (contentDeparts != null && contentDeparts.Any())
|
||||||
|
{
|
||||||
|
foreach (var item in contentDeparts)
|
||||||
|
{
|
||||||
|
var conFirst = contents.FirstOrDefault(t => t.ID == item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID);
|
||||||
|
var detailFirst = libraryDetails.FirstOrDefault(t => t.ID == conFirst?.ENTERPRISE_LIBRARY_DETAIL_ID);
|
||||||
|
var libFirst = librarys.FirstOrDefault(t => t.ID == detailFirst?.ENTERPRISE_LIBRARY_ID);
|
||||||
|
if (item.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.CHECK_TYPE_ID))
|
||||||
|
{
|
||||||
|
var postFirst = posts.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_ID == libFirst?.ID && t.DEPARTMENT_ID == item.DEPARTMENT_ID);
|
||||||
|
if (postFirst != null && postFirst.Nav_PostDetails != null && postFirst.Nav_PostDetails.Any())
|
||||||
|
{
|
||||||
|
foreach (var item2 in postFirst.Nav_PostDetails)
|
||||||
|
{
|
||||||
|
//去除有审批角色的人
|
||||||
|
var userCharge = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID == item2.POST_ID && t.APPROVE_ROLE_ID != null);
|
||||||
|
if (userCharge == null)
|
||||||
|
{
|
||||||
|
T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
|
||||||
|
de.MineType = libFirst != null ? libFirst.MineType : SKProductionUnit.All;
|
||||||
|
de.PRODUCTION_UNIT_ID = libFirst != null ? libFirst.PRODUCTION_UNIT_ID : null;
|
||||||
|
de.CHECK_TYPE_ID = item.CHECK_TYPE_ID;
|
||||||
|
de.TYPE_NAME = item.Nav_CheckType?.NAME;
|
||||||
|
de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID;
|
||||||
|
de.CHECK_CYCLE = item.CHECK_CYCLE;
|
||||||
|
de.CHECK_TYPE = item.CHECK_TYPE;
|
||||||
|
de.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||||||
|
de.DEPART_NAME = item.Nav_Department?.NAME;
|
||||||
|
de.POST_ID = item2.POST_ID;
|
||||||
|
de.POST_NAME = item2.Nav_Post?.NAME;
|
||||||
|
conDepartlist.Add(de);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (item.CHECK_TYPE == SKDepartmentTypeEnum.班组级)
|
||||||
|
{
|
||||||
|
item.POST_NAME = "班组负责人";
|
||||||
|
}
|
||||||
|
else if (item.CHECK_TYPE == SKDepartmentTypeEnum.车间级)
|
||||||
|
{
|
||||||
|
item.POST_NAME = "车间安全员";
|
||||||
|
}
|
||||||
|
else if (item.CHECK_TYPE == SKDepartmentTypeEnum.部门级)
|
||||||
|
{
|
||||||
|
item.POST_NAME = "部门安全员";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
item.POST_NAME = "安环部安全员";
|
||||||
|
}
|
||||||
|
var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.POST_NAME);
|
||||||
|
if (userInfo == null)
|
||||||
|
{
|
||||||
|
var depart = departs.FirstOrDefault(t => t.ID == item.DEPARTMENT_ID);
|
||||||
|
if (depart != null && depart.USER_ID != null)
|
||||||
|
{
|
||||||
|
userInfo = users.FirstOrDefault(t => t.ID == depart.USER_ID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
|
||||||
|
de.MineType = libFirst != null ? libFirst.MineType : SKProductionUnit.All;
|
||||||
|
de.PRODUCTION_UNIT_ID = libFirst != null ? libFirst.PRODUCTION_UNIT_ID : null;
|
||||||
|
de.CHECK_TYPE_ID = item.CHECK_TYPE_ID;
|
||||||
|
de.TYPE_NAME = item.Nav_CheckType?.NAME;
|
||||||
|
de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID;
|
||||||
|
de.CHECK_CYCLE = item.CHECK_CYCLE;
|
||||||
|
de.CHECK_TYPE = item.CHECK_TYPE;
|
||||||
|
de.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||||||
|
de.DEPART_NAME = item.Nav_Department?.NAME;
|
||||||
|
de.POST_ID = userInfo?.Nav_Person?.POST_ID;
|
||||||
|
de.POST_NAME = item.POST_NAME;
|
||||||
|
conDepartlist.Add(de);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (conDepartlist != null && conDepartlist.Any())
|
||||||
|
{
|
||||||
|
var group = conDepartlist.GroupBy(t => new { t.PRODUCTION_UNIT_ID, t.CHECK_TYPE, t.CHECK_CYCLE, t.DEPART_NAME, t.DEPARTMENT_ID, t.CHECK_TYPE_ID, t.TYPE_NAME, t.POST_NAME, t.POST_ID }).ToList();
|
||||||
|
foreach (var item in group)
|
||||||
|
{
|
||||||
|
CheckListNew listNew = new CheckListNew();
|
||||||
|
listNew.PRODUCTION_UNIT_ID = item.Key.PRODUCTION_UNIT_ID;
|
||||||
|
listNew.Cycle = item.Key.CHECK_CYCLE;
|
||||||
|
listNew.DepartType = item.Key.CHECK_TYPE;
|
||||||
|
listNew.MineType = productions.FirstOrDefault(t => t.ID == item.Key.PRODUCTION_UNIT_ID)?.NAME;
|
||||||
|
listNew.CheckType = item.Key.TYPE_NAME;
|
||||||
|
listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription();
|
||||||
|
listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription();
|
||||||
|
listNew.Num = (int)item.Key.CHECK_TYPE;
|
||||||
|
listNew.CheckDepart = item.Key.DEPART_NAME;
|
||||||
|
listNew.CheckPostId = item.Key.POST_ID;
|
||||||
|
listNew.CheckPost = item.Key.POST_NAME;
|
||||||
|
listNew.CheckDepartId = item.Key.DEPARTMENT_ID;
|
||||||
|
listNew.CheckTypeId = item.Key.CHECK_TYPE_ID;
|
||||||
|
var depathaveIds = conDepartlist.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.POST_NAME == item.Key.POST_NAME && t.POST_ID == item.Key.POST_ID).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList();
|
||||||
|
var temps = contents.Where(t => depathaveIds.Contains(t.ID)).Distinct().ToList();
|
||||||
|
if (temps != null && temps.Any())
|
||||||
|
{
|
||||||
|
List<CheckListDetail> listDetail = new List<CheckListDetail>();
|
||||||
|
foreach (var tem in temps)
|
||||||
|
{
|
||||||
|
var detailFirst = libraryDetails.FirstOrDefault(t => t.ID == tem.ENTERPRISE_LIBRARY_DETAIL_ID);
|
||||||
|
var libFirst = librarys.FirstOrDefault(t => t.ID == detailFirst?.ENTERPRISE_LIBRARY_ID);
|
||||||
|
CheckListDetail checkListDetail = new CheckListDetail();
|
||||||
|
checkListDetail.ID = tem.ID;
|
||||||
|
checkListDetail.CHECK_CONTENTS_ID = tem.CHECK_CONTENTS_ID;
|
||||||
|
checkListDetail.CHECK_CONTENTS_NAME = tem.Nav_Contents?.CHECKCONTENT;
|
||||||
|
checkListDetail.RISK_NAME = libFirst?.RISK_NAME;
|
||||||
|
checkListDetail.ENTERPRISE_LIBRARY_ID = libFirst?.ID;
|
||||||
|
checkListDetail.RISK_AREA_ID = libFirst?.AREA_ID;
|
||||||
|
checkListDetail.RISK_AREA_NAME = libFirst?.Nav_Area?.NAME;
|
||||||
|
checkListDetail.CHECKPROOF = tem.CHECK_BASIC;
|
||||||
|
checkListDetail.CHECKSTANDARD = tem.CHECK_STANDARD;
|
||||||
|
checkListDetail.ENTERPRISE_LIBRARY_DETAIL_ID = detailFirst?.ID;
|
||||||
|
checkListDetail.MEASURES_NAME = detailFirst?.MEASURES_NAME;
|
||||||
|
listDetail.Add(checkListDetail);
|
||||||
|
}
|
||||||
|
listNew.details = listDetail.GroupBy(n => new { n.RISK_AREA_ID, n.RISK_NAME, n.CHECK_CONTENTS_ID }).Select(g => g.FirstOrDefault()).OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList();
|
||||||
|
}
|
||||||
|
list.Add(listNew);
|
||||||
|
}
|
||||||
|
list = list.OrderBy(y => y.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList();
|
||||||
|
}
|
||||||
|
if (list != null && list.Any())
|
||||||
|
{
|
||||||
|
foreach (var item in list)
|
||||||
|
{
|
||||||
|
T_SK_CHECK_SET set = new T_SK_CHECK_SET();
|
||||||
|
set.ORG_ID = filter.OrgId;
|
||||||
|
set.DEPARTMENT_ID = item.CheckDepartId;
|
||||||
|
set.POST_ID = item.CheckPostId;
|
||||||
|
set.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
|
||||||
|
set.CHECK_TYPE_ID = item.CheckTypeId;
|
||||||
|
set.CHECK_CYCLE = item.Cycle;
|
||||||
|
set.CHECK_TYPE = item.DepartType;
|
||||||
|
set.POST_NAME = item.CheckPost;
|
||||||
|
sets.Add(set);
|
||||||
|
if (item.details != null && item.details.Any())
|
||||||
|
{
|
||||||
|
var i = 1;
|
||||||
|
foreach (var item2 in item.details)
|
||||||
|
{
|
||||||
|
if (item2 != null && item2.CHECK_CONTENTS_ID != null && item2.ID != null)
|
||||||
|
{
|
||||||
|
T_SK_CHECK_SET_CONTENTS detail = new T_SK_CHECK_SET_CONTENTS();
|
||||||
|
detail.ORG_ID = filter.OrgId;
|
||||||
|
detail.CHECK_SET_ID = set.ID;
|
||||||
|
detail.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID;
|
||||||
|
detail.CHECK_CONTENT = item2.CHECK_CONTENTS_NAME;
|
||||||
|
detail.CHECK_STANDARD = item2.CHECKSTANDARD;
|
||||||
|
detail.NUM = i;
|
||||||
|
detail.AREA_ID = item2.RISK_AREA_ID;
|
||||||
|
detail.RISK_NAME = item2.RISK_NAME;
|
||||||
|
detail.ENTERPRISE_LIBRARY_ID = item2.ENTERPRISE_LIBRARY_ID;
|
||||||
|
detail.ENTERPRISE_LIBRARY_DETAIL_ID = item2.ENTERPRISE_LIBRARY_DETAIL_ID;
|
||||||
|
detail.MEASURES_NAME = item2.MEASURES_NAME;
|
||||||
|
setContents.Add(detail);
|
||||||
|
i++;
|
||||||
|
//var hiddens = contentHiddens.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == item2.ID).ToList();
|
||||||
|
//if (hiddens != null && hiddens.Any())
|
||||||
|
//{
|
||||||
|
// foreach (var item3 in hiddens)
|
||||||
|
// {
|
||||||
|
// if (item3 != null && item3.CHECK_QUESTION_ID!=null && item3.HIDDEN_LEVEL !=null)
|
||||||
|
// {
|
||||||
|
// T_SK_CHECK_SET_CONTENTS_HIDDEN hid = new T_SK_CHECK_SET_CONTENTS_HIDDEN();
|
||||||
|
// hid.ORG_ID = filter.OrgId;
|
||||||
|
// hid.CHECK_CONTENTS_SET_ID = detail.ID;
|
||||||
|
// hid.CHECK_QUESTION_ID = item3.CHECK_QUESTION_ID;
|
||||||
|
// hid.NUM = item3.NUM;
|
||||||
|
// hid.HIDDEN_LEVEL = item3 != null ? (SKHiddenLevel)item3.HIDDEN_LEVEL : SKHiddenLevel.General;
|
||||||
|
// hid.RECTIFICATION_MEASURES = item3.RECTIFICATION_MEASURES;
|
||||||
|
// hid.HIDDEN_DESCRIPTION = item3.HIDDEN_DESCRIPTION;
|
||||||
|
// setConHiddens.Add(hid);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UnifiedCommit(() =>
|
||||||
|
{
|
||||||
|
if (deleteHidIds != null && deleteHidIds.Any())
|
||||||
|
BantchDeleteEntityNoCommit<T_SK_CHECK_SET_CONTENTS_HIDDEN>(deleteHidIds);
|
||||||
|
if (deleteConIds != null && deleteConIds.Any())
|
||||||
|
BantchDeleteEntityNoCommit<T_SK_CHECK_SET_CONTENTS>(deleteConIds);
|
||||||
|
if (deleteSetIds != null && deleteSetIds.Any())
|
||||||
|
BantchDeleteEntityNoCommit<T_SK_CHECK_SET>(deleteSetIds);
|
||||||
|
if (sets != null && sets.Any())
|
||||||
|
BantchSaveEntityNoCommit(sets);
|
||||||
|
if (setContents != null && setContents.Any())
|
||||||
|
BantchSaveEntityNoCommit(setContents);
|
||||||
|
//if (setConHiddens != null && setConHiddens.Any())
|
||||||
|
// BantchSaveEntityNoCommit(setConHiddens);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(ex.StackTrace))
|
||||||
|
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
|
||||||
|
else
|
||||||
|
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user