Merge branch 'master' of http://121.41.2.71:3000/wyw/mh_jy_safe
This commit is contained in:
commit
7493821ba1
@ -324,6 +324,7 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
T_FM_NOTIFICATION_TASK finishNotice = null;
|
T_FM_NOTIFICATION_TASK finishNotice = null;
|
||||||
//发消息
|
//发消息
|
||||||
T_FM_NOTIFICATION_TASK notice = null;
|
T_FM_NOTIFICATION_TASK notice = null;
|
||||||
|
T_FM_NOTIFICATION_TASK curentTask = null;
|
||||||
//细表
|
//细表
|
||||||
List<T_PF_APPROVE_DETAIL> appdetails = new List<T_PF_APPROVE_DETAIL>();
|
List<T_PF_APPROVE_DETAIL> appdetails = new List<T_PF_APPROVE_DETAIL>();
|
||||||
if (operaterID == null)
|
if (operaterID == null)
|
||||||
@ -486,10 +487,11 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
|
|
||||||
//当前节点
|
//当前节点
|
||||||
T_PF_APPROVE_DETAIL curentApprove = null;
|
T_PF_APPROVE_DETAIL curentApprove = null;
|
||||||
|
|
||||||
string JsonApproveDetail = string.Empty;
|
string JsonApproveDetail = string.Empty;
|
||||||
GetApproveNodes(appdetails, ref curentApprove, ref JsonApproveDetail);
|
GetApproveNodes(appdetails, ref curentApprove, ref JsonApproveDetail);
|
||||||
|
|
||||||
DealOperateApproveDetail(ref sendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息 wyw
|
DealOperateApproveDetail(ref sendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove,ref curentTask);//整理操作者审批流相关信息 wyw
|
||||||
|
|
||||||
if (sendMessage)
|
if (sendMessage)
|
||||||
{
|
{
|
||||||
@ -621,7 +623,9 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
if (finishNotice != null && finishNotice.ID != Guid.Empty)
|
if (finishNotice != null && finishNotice.ID != Guid.Empty)
|
||||||
UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
|
UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
|
||||||
if (notice != null)
|
if (notice != null)
|
||||||
AddEntityNoCommit(notice);
|
AddEntityNoCommit(notice);
|
||||||
|
if (curentTask != null)
|
||||||
|
AddEntityNoCommit(curentTask);
|
||||||
if (listBSLog != null && listBSLog.Any())
|
if (listBSLog != null && listBSLog.Any())
|
||||||
BantchSaveEntityNoCommit(listBSLog);//有修改和新增
|
BantchSaveEntityNoCommit(listBSLog);//有修改和新增
|
||||||
});
|
});
|
||||||
@ -806,6 +810,7 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
}
|
}
|
||||||
List<T_PF_APPROVE_TEMP> listApproveTemp = approveTemplist.ToList();
|
List<T_PF_APPROVE_TEMP> listApproveTemp = approveTemplist.ToList();
|
||||||
T_FM_USER userTemp = null;
|
T_FM_USER userTemp = null;
|
||||||
|
T_FM_NOTIFICATION_TASK curentTask = null;
|
||||||
if (listParam != null && listParam.Count > 0)
|
if (listParam != null && listParam.Count > 0)
|
||||||
{
|
{
|
||||||
#region 根据参数获取审批模板
|
#region 根据参数获取审批模板
|
||||||
@ -871,12 +876,13 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
|
|
||||||
|
|
||||||
//当前节点
|
//当前节点
|
||||||
T_PF_APPROVE_DETAIL curentApprove = null;
|
T_PF_APPROVE_DETAIL curentApprove = null;
|
||||||
|
|
||||||
string JsonApproveDetail = string.Empty;
|
string JsonApproveDetail = string.Empty;
|
||||||
GetApproveNodes(appdetailsTemp, ref curentApprove, ref JsonApproveDetail);// GetApproveNodes(appdetails, ref curentApprove);
|
GetApproveNodes(appdetailsTemp, ref curentApprove, ref JsonApproveDetail);// GetApproveNodes(appdetails, ref curentApprove);
|
||||||
bool isSendMessagePer = isSendMessage;//当前是否发送待办
|
bool isSendMessagePer = isSendMessage;//当前是否发送待办
|
||||||
|
|
||||||
DealOperateApproveDetail(ref isSendMessagePer, operaterID, ref appdetailsTemp, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息
|
DealOperateApproveDetail(ref isSendMessagePer, operaterID, ref appdetailsTemp, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove, ref curentTask);//整理操作者审批流相关信息
|
||||||
|
|
||||||
if (isSendMessagePer)
|
if (isSendMessagePer)
|
||||||
{
|
{
|
||||||
@ -1001,7 +1007,7 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
string JsonApproveDetail = string.Empty;
|
string JsonApproveDetail = string.Empty;
|
||||||
GetApproveNodes(appdetails, ref curentApprove, ref JsonApproveDetail);
|
GetApproveNodes(appdetails, ref curentApprove, ref JsonApproveDetail);
|
||||||
|
|
||||||
DealOperateApproveDetail(ref isSendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息
|
DealOperateApproveDetail(ref isSendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove,ref curentTask);//整理操作者审批流相关信息
|
||||||
|
|
||||||
if (isSendMessage)
|
if (isSendMessage)
|
||||||
{
|
{
|
||||||
@ -1056,7 +1062,9 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
if (finishNotice != null)
|
if (finishNotice != null)
|
||||||
UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
|
UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
|
||||||
if (listNotice.Count > 0)
|
if (listNotice.Count > 0)
|
||||||
BantchAddEntityNoCommit(listNotice);
|
BantchAddEntityNoCommit(listNotice);
|
||||||
|
if (curentTask!=null)
|
||||||
|
AddEntityNoCommit(curentTask);
|
||||||
});
|
});
|
||||||
|
|
||||||
//如果 审批流需要执行默认审批 调用 回调方法
|
//如果 审批流需要执行默认审批 调用 回调方法
|
||||||
@ -1135,7 +1143,8 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
List<T_PF_APPROVE> listApprove = new List<T_PF_APPROVE>();
|
List<T_PF_APPROVE> listApprove = new List<T_PF_APPROVE>();
|
||||||
List<T_BS_OPERATE_LOG> listBSLog = new List<T_BS_OPERATE_LOG>();
|
List<T_BS_OPERATE_LOG> listBSLog = new List<T_BS_OPERATE_LOG>();
|
||||||
List<T_PF_APPROVE_DETAIL> appdetails = new List<T_PF_APPROVE_DETAIL>();
|
List<T_PF_APPROVE_DETAIL> appdetails = new List<T_PF_APPROVE_DETAIL>();
|
||||||
List<T_PF_APPROVE_DETAIL> appdetailsTemp = null;
|
List<T_PF_APPROVE_DETAIL> appdetailsTemp = null;
|
||||||
|
T_FM_NOTIFICATION_TASK curentTask = null;
|
||||||
IEnumerable<T_PF_APPROVAL_ROLE> iEnumApprovalRole = null;
|
IEnumerable<T_PF_APPROVAL_ROLE> iEnumApprovalRole = null;
|
||||||
//上个消息
|
//上个消息
|
||||||
T_FM_NOTIFICATION_TASK finishNotice = null;
|
T_FM_NOTIFICATION_TASK finishNotice = null;
|
||||||
@ -1326,7 +1335,7 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
GetApproveNodes(appdetailsTemp, ref curentApprove, ref JsonApproveDetail);// GetApproveNodes(appdetails, ref curentApprove);
|
GetApproveNodes(appdetailsTemp, ref curentApprove, ref JsonApproveDetail);// GetApproveNodes(appdetails, ref curentApprove);
|
||||||
bool isSendMessagePer = isSendMessage;//当前是否发送待办
|
bool isSendMessagePer = isSendMessage;//当前是否发送待办
|
||||||
|
|
||||||
DealOperateApproveDetail(ref isSendMessagePer, operaterID, ref appdetailsTemp, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息
|
DealOperateApproveDetail(ref isSendMessagePer, operaterID, ref appdetailsTemp, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove, ref curentTask);//整理操作者审批流相关信息
|
||||||
|
|
||||||
if (isSendMessagePer)
|
if (isSendMessagePer)
|
||||||
{
|
{
|
||||||
@ -1469,7 +1478,7 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
string JsonApproveDetail = string.Empty;
|
string JsonApproveDetail = string.Empty;
|
||||||
GetApproveNodes(appdetails, ref curentApprove, ref JsonApproveDetail);
|
GetApproveNodes(appdetails, ref curentApprove, ref JsonApproveDetail);
|
||||||
|
|
||||||
DealOperateApproveDetail(ref isSendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息
|
DealOperateApproveDetail(ref isSendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove,ref curentTask);//整理操作者审批流相关信息
|
||||||
|
|
||||||
if (isSendMessage)
|
if (isSendMessage)
|
||||||
{
|
{
|
||||||
@ -1543,7 +1552,9 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
if (finishNotice != null)
|
if (finishNotice != null)
|
||||||
UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
|
UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
|
||||||
if (listNotice.Count > 0)
|
if (listNotice.Count > 0)
|
||||||
BantchAddEntityNoCommit(listNotice);
|
BantchAddEntityNoCommit(listNotice);
|
||||||
|
if (curentTask != null)
|
||||||
|
AddEntityNoCommit(curentTask);
|
||||||
});
|
});
|
||||||
|
|
||||||
//如果 审批流需要执行默认审批 调用 回调方法
|
//如果 审批流需要执行默认审批 调用 回调方法
|
||||||
@ -2075,7 +2086,7 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
/// <param name="listDATA_ID"></param>
|
/// <param name="listDATA_ID"></param>
|
||||||
/// <param name="approve"></param>
|
/// <param name="approve"></param>
|
||||||
/// <param name="curentApprove"></param>
|
/// <param name="curentApprove"></param>
|
||||||
private static void DealOperateApproveDetail(ref bool isSendMessage, Guid? operaterID, ref List<T_PF_APPROVE_DETAIL> appdetails, ref string CALLBACK_INTERFACE, List<string> listDATA_ID, T_PF_APPROVE approve, ref T_PF_APPROVE_DETAIL curentApprove)
|
private static void DealOperateApproveDetail(ref bool isSendMessage, Guid? operaterID, ref List<T_PF_APPROVE_DETAIL> appdetails, ref string CALLBACK_INTERFACE, List<string> listDATA_ID, T_PF_APPROVE approve, ref T_PF_APPROVE_DETAIL curentApprove,ref T_FM_NOTIFICATION_TASK curentTask)
|
||||||
{
|
{
|
||||||
if (appdetails != null && appdetails.Count > 0)
|
if (appdetails != null && appdetails.Count > 0)
|
||||||
{
|
{
|
||||||
@ -2083,6 +2094,20 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
var approveOperater = appdetails.FirstOrDefault(e => e.APPROVE_USER_ID == operaterID);
|
var approveOperater = appdetails.FirstOrDefault(e => e.APPROVE_USER_ID == operaterID);
|
||||||
if (approveOperater != null)
|
if (approveOperater != null)
|
||||||
{
|
{
|
||||||
|
//本人默认审批,存入一条已办
|
||||||
|
curentTask = new T_FM_NOTIFICATION_TASK();
|
||||||
|
curentTask.CODE = DateTime.Now.ToString("yyyyMMddHHmmss");
|
||||||
|
curentTask.NOTICE_TITLE = approve.NAME + "审批";
|
||||||
|
curentTask.SOURCE_DATA_ID = approve.ID;
|
||||||
|
curentTask.ORG_ID = approve.ORG_ID;
|
||||||
|
curentTask.ID = Guid.NewGuid();
|
||||||
|
curentTask.TASK_STARTDT = DateTime.Now;
|
||||||
|
curentTask.TASK_ENDDT = DateTime.Now.AddHours(24);
|
||||||
|
curentTask.NOTICE_TYPE = (int)FMNoticeTypeEnum.消息;
|
||||||
|
curentTask.NOTICE_STATUS = (int)FMNoticeStatusEnum.正常已办;
|
||||||
|
curentTask.USER_ID = (Guid)operaterID;
|
||||||
|
curentTask.USER_NAME = approveOperater.Nav_ApproveUser?.NAME;
|
||||||
|
curentTask.SOURCE_FORMCODE = approve.APPROVE_CODE;
|
||||||
//设置为已审批
|
//设置为已审批
|
||||||
approveOperater.IS_CURRENT = false;
|
approveOperater.IS_CURRENT = false;
|
||||||
approveOperater.NODE_APPROVE_STATUS = (int)NodeApproveStatus.Done;
|
approveOperater.NODE_APPROVE_STATUS = (int)NodeApproveStatus.Done;
|
||||||
@ -2817,9 +2842,10 @@ namespace APT.BaseData.Services.Services.FM
|
|||||||
finishTask = NotificationTaskService.GetTaskFinishModel(finishTaskId.Value, taskEndSourceFormCode);//wyw 之前方法 巡回安全检查填写会报错
|
finishTask = NotificationTaskService.GetTaskFinishModel(finishTaskId.Value, taskEndSourceFormCode);//wyw 之前方法 巡回安全检查填写会报错
|
||||||
}
|
}
|
||||||
|
|
||||||
T_PF_APPROVE_DETAIL curentApprove = null;
|
T_PF_APPROVE_DETAIL curentApprove = null;
|
||||||
|
T_FM_NOTIFICATION_TASK curentTask = null;
|
||||||
bool isMsg = false;
|
bool isMsg = false;
|
||||||
DealOperateApproveDetail(ref isMsg, LoginID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息 wyw
|
DealOperateApproveDetail(ref isMsg, LoginID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove,ref curentTask);//整理操作者审批流相关信息 wyw
|
||||||
if (curentApprove == null)
|
if (curentApprove == null)
|
||||||
{
|
{
|
||||||
//Msg = "获取审批流当前节点信息失败";
|
//Msg = "获取审批流当前节点信息失败";
|
||||||
|
|||||||
@ -11423,7 +11423,22 @@ namespace APT.BaseData.Services.DomainServices
|
|||||||
{
|
{
|
||||||
t.ISCHECK = true;
|
t.ISCHECK = true;
|
||||||
t.CHECKTIME = DateTime.Now;
|
t.CHECKTIME = DateTime.Now;
|
||||||
});
|
});
|
||||||
|
//存入一条已办
|
||||||
|
T_FM_NOTIFICATION_TASK notice = new T_FM_NOTIFICATION_TASK();
|
||||||
|
notice.CODE = DateTime.Now.ToString("yyyyMMddHHmmss");
|
||||||
|
notice.NOTICE_TITLE = entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + entity.Nav_CheckType?.NAME + "-确认";
|
||||||
|
notice.SOURCE_DATA_ID = entity.ID;
|
||||||
|
notice.ORG_ID = entity.ORG_ID;
|
||||||
|
notice.ID = Guid.NewGuid();
|
||||||
|
notice.TASK_STARTDT = DateTime.Now;
|
||||||
|
notice.TASK_ENDDT = DateTime.Now.AddHours(24);
|
||||||
|
notice.NOTICE_TYPE = (int)FMNoticeTypeEnum.消息;
|
||||||
|
notice.NOTICE_STATUS = (int)FMNoticeStatusEnum.正常已办;
|
||||||
|
notice.USER_ID = (Guid)entity.APPLY_USER_ID;
|
||||||
|
notice.USER_NAME = entity.Nav_ApplyUser?.NAME;
|
||||||
|
notice.SOURCE_FORMCODE = "SK006_SHOWPRINT";
|
||||||
|
sendNotices.Add(notice);
|
||||||
}
|
}
|
||||||
userIds = userIds.Distinct().ToList();
|
userIds = userIds.Distinct().ToList();
|
||||||
if (userIds != null && userIds.Any())
|
if (userIds != null && userIds.Any())
|
||||||
@ -11438,8 +11453,8 @@ namespace APT.BaseData.Services.DomainServices
|
|||||||
}
|
}
|
||||||
var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0');
|
var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0');
|
||||||
//发消息
|
//发消息
|
||||||
sendNotices = NotificationTaskService.InsertUserNoticeTaskModels(entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + date + entity.Nav_CheckType?.NAME + "-确认", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
sendNotices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels(entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + date + entity.Nav_CheckType?.NAME + "-确认", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||||||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK006_SHOWPRINT");
|
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK006_SHOWPRINT"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -530,7 +530,7 @@ namespace APT.FM.WebApi.Controllers.Api.FM
|
|||||||
{
|
{
|
||||||
return SafeExecute<bool>(() =>
|
return SafeExecute<bool>(() =>
|
||||||
{
|
{
|
||||||
//var allUsers = this.GetEntities<T_FM_USER>(t => t.IS_DELETED == false, null, "Nav_ApproveRole");
|
var allUsers = this.GetEntities<T_FM_USER>(t => t.IS_DELETED == false, null, "Nav_ApproveRole");
|
||||||
var isAdd = this.GetEntity<T_FM_USER>(entity.ID.ToString(), "Nav_ApproveRole", "Nav_BelongRoles");
|
var isAdd = this.GetEntity<T_FM_USER>(entity.ID.ToString(), "Nav_ApproveRole", "Nav_BelongRoles");
|
||||||
string dbRuleStr = string.Empty;
|
string dbRuleStr = string.Empty;
|
||||||
var userList = new List<T_FM_USER>();
|
var userList = new List<T_FM_USER>();
|
||||||
@ -793,25 +793,28 @@ namespace APT.FM.WebApi.Controllers.Api.FM
|
|||||||
if (isExist != null)
|
if (isExist != null)
|
||||||
this.ThrowError("070001");
|
this.ThrowError("070001");
|
||||||
}
|
}
|
||||||
//删除旧的排班,在新的排班里面加入
|
var oldUser = allUsers.FirstOrDefault(t => t.ID == entity.ID);
|
||||||
deleteDepartScheIds = this.GetEntities<T_FM_DEPARTMENT_SCHEDULING_DETAIL>(t =>t.Nav_DepartmentScheduling!=null && t.Nav_DepartmentScheduling.DATE_TIME >= DateTime.Now.Date && t.Nav_DepartmentScheduling.START_TIME >= DateTime.Now && t.PERSON_ID == entity.PERSON_ID,new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
|
if (oldUser != null && oldUser.DEPARTMENT_ID != entity.DEPARTMENT_ID)
|
||||||
if (departScheIds != null && departScheIds.Any())
|
|
||||||
{
|
{
|
||||||
var departScheDetailTemps = this.GetEntities<T_FM_DEPARTMENT_SCHEDULING_DETAIL>(t => departScheIds.Contains(t.DEPARTMENT_SCHEDULING_ID) && t.PERSON_ID == entity.PERSON_ID, new BaseFilter(entity.ORG_ID)).ToList();
|
//删除旧的排班,在新的排班里面加入
|
||||||
foreach (var id in departScheIds)
|
deleteDepartScheIds = this.GetEntities<T_FM_DEPARTMENT_SCHEDULING_DETAIL>(t => t.Nav_DepartmentScheduling != null && t.Nav_DepartmentScheduling.DATE_TIME >= DateTime.Now.Date && t.Nav_DepartmentScheduling.START_TIME >= DateTime.Now && t.PERSON_ID == entity.PERSON_ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
|
||||||
|
if (departScheIds != null && departScheIds.Any())
|
||||||
{
|
{
|
||||||
var detail = departScheDetailTemps.FirstOrDefault(t => t.DEPARTMENT_SCHEDULING_ID == id);
|
var departScheDetailTemps = this.GetEntities<T_FM_DEPARTMENT_SCHEDULING_DETAIL>(t => departScheIds.Contains(t.DEPARTMENT_SCHEDULING_ID) && t.PERSON_ID == entity.PERSON_ID, new BaseFilter(entity.ORG_ID)).ToList();
|
||||||
if (detail == null)
|
foreach (var id in departScheIds)
|
||||||
{
|
{
|
||||||
T_FM_DEPARTMENT_SCHEDULING_DETAIL de = new T_FM_DEPARTMENT_SCHEDULING_DETAIL();
|
var detail = departScheDetailTemps.FirstOrDefault(t => t.DEPARTMENT_SCHEDULING_ID == id);
|
||||||
de.ORG_ID = entity.ORG_ID;
|
if (detail == null)
|
||||||
de.DEPARTMENT_SCHEDULING_ID = id;
|
{
|
||||||
de.PERSON_ID = entity.PERSON_ID.Value;
|
T_FM_DEPARTMENT_SCHEDULING_DETAIL de = new T_FM_DEPARTMENT_SCHEDULING_DETAIL();
|
||||||
departScheDetails.Add(de);
|
de.ORG_ID = entity.ORG_ID;
|
||||||
|
de.DEPARTMENT_SCHEDULING_ID = id;
|
||||||
|
de.PERSON_ID = entity.PERSON_ID.Value;
|
||||||
|
departScheDetails.Add(de);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//}
|
//}
|
||||||
|
|
||||||
if (entity.APPROVE_ROLE_ID != null)
|
if (entity.APPROVE_ROLE_ID != null)
|
||||||
|
|||||||
@ -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;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,15 +1,18 @@
|
|||||||
using APT.BaseData.Domain.Entities.FM;
|
using APT.BaseData.Domain.ApiModel.Platform;
|
||||||
using APT.Infrastructure.Core;
|
using APT.BaseData.Domain.Entities.FM;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
using APT.Infrastructure.Api;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System;
|
|
||||||
using System.Linq;
|
|
||||||
using APT.Utility;
|
|
||||||
using APT.MS.Domain.Entities.BI;
|
|
||||||
using APT.BaseData.Domain.IServices.BI;
|
using APT.BaseData.Domain.IServices.BI;
|
||||||
using APT.BaseData.Domain.ApiModel.Platform;
|
using APT.Infrastructure.Api;
|
||||||
using APT.Infrastructure.Api.Redis;
|
using APT.Infrastructure.Api.Redis;
|
||||||
|
using APT.Infrastructure.Core;
|
||||||
|
using APT.MS.Domain.Entities.BI;
|
||||||
|
using APT.MS.Domain.Entities.HM;
|
||||||
|
using APT.MS.Domain.Entities.SK;
|
||||||
|
using APT.Utility;
|
||||||
|
using log4net.Core;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace APT.SC.WebApi.Controllers.Api.BI
|
namespace APT.SC.WebApi.Controllers.Api.BI
|
||||||
{
|
{
|
||||||
@ -2113,6 +2116,36 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 风险等级占比
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="filter">过滤实体</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("GetHomeRiskLevel")]
|
||||||
|
public JsonActionResult<List<T_FM_RISK_LEVEL_PROPORTION>> GetHomeRiskLevel([FromBody] KeywordFilter filter)
|
||||||
|
{
|
||||||
|
return SafeExecute(() =>
|
||||||
|
{
|
||||||
|
|
||||||
|
List<T_FM_RISK_LEVEL_PROPORTION> result = new List<T_FM_RISK_LEVEL_PROPORTION>();
|
||||||
|
BaseFilter baseFilter = new BaseFilter(filter.GetOrgId());
|
||||||
|
baseFilter.SelectField = new string[] { "EVALUATE_LEVEL" };
|
||||||
|
var evaluateRisks = GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => t.EVALUATE_LEVEL != null && t.ENABLE_STATUS == 0, baseFilter).OrderBy(i => i.EVALUATE_LEVEL).ToList();
|
||||||
|
var distinctLevelTypes = evaluateRisks.GroupBy(m => new { m.EVALUATE_LEVEL }).Select(group => new { group.Key.EVALUATE_LEVEL, count = group.Count() }).ToList();
|
||||||
|
int i = 1;
|
||||||
|
foreach (var item in distinctLevelTypes)
|
||||||
|
{
|
||||||
|
T_FM_RISK_LEVEL_PROPORTION riskLevelProportion = new T_FM_RISK_LEVEL_PROPORTION();
|
||||||
|
riskLevelProportion.COUNT = item.count;
|
||||||
|
riskLevelProportion.NUM = i;
|
||||||
|
riskLevelProportion.RISK_LEVEL = item.EVALUATE_LEVEL.GetDescription();
|
||||||
|
riskLevelProportion.ORG_ID = filter.GetOrgId();
|
||||||
|
result.Add(riskLevelProportion);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -415,7 +415,6 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
|||||||
}
|
}
|
||||||
if (result != null && result.Any())
|
if (result != null && result.Any())
|
||||||
{
|
{
|
||||||
var steps = this.GetEntities<T_HM_OPERATION_STEP>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
|
||||||
foreach (var da in result)
|
foreach (var da in result)
|
||||||
{
|
{
|
||||||
var temps = details.Where(t => t.company == da.company).ToList();
|
var temps = details.Where(t => t.company == da.company).ToList();
|
||||||
@ -426,7 +425,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
|||||||
{
|
{
|
||||||
var JobTodayDetail = new JobTodayDetail();
|
var JobTodayDetail = new JobTodayDetail();
|
||||||
JobTodayDetail.qty = de.qty;
|
JobTodayDetail.qty = de.qty;
|
||||||
JobTodayDetail.jobName = steps.FirstOrDefault(t => t.ID == Guid.Parse(de.jobName))?.NAME;
|
JobTodayDetail.jobName = de.jobName;
|
||||||
JobTodayDetail.company = de.company;
|
JobTodayDetail.company = de.company;
|
||||||
detailTemps.Add(JobTodayDetail);
|
detailTemps.Add(JobTodayDetail);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ using APT.BaseData.Domain.IServices;
|
|||||||
using APT.BaseData.Domain.IServices.FM;
|
using APT.BaseData.Domain.IServices.FM;
|
||||||
using APT.BaseData.Services.DomainServices;
|
using APT.BaseData.Services.DomainServices;
|
||||||
using APT.BaseData.Services.Services.FM;
|
using APT.BaseData.Services.Services.FM;
|
||||||
|
using APT.Infrastructure.Api;
|
||||||
using APT.Infrastructure.Api.Redis;
|
using APT.Infrastructure.Api.Redis;
|
||||||
using APT.Infrastructure.Core;
|
using APT.Infrastructure.Core;
|
||||||
using APT.MS.Domain.Entities.BI;
|
using APT.MS.Domain.Entities.BI;
|
||||||
@ -32,6 +33,7 @@ using InfluxData.Net.Kapacitor.Models;
|
|||||||
using log4net.Filter;
|
using log4net.Filter;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.Mvc.Filters;
|
using Microsoft.AspNetCore.Mvc.Filters;
|
||||||
|
using Microsoft.Data.SqlClient;
|
||||||
using MySqlX.XDevAPI.Common;
|
using MySqlX.XDevAPI.Common;
|
||||||
using NPOI.SS.Formula.Functions;
|
using NPOI.SS.Formula.Functions;
|
||||||
using Renci.SshNet.Common;
|
using Renci.SshNet.Common;
|
||||||
@ -46,6 +48,7 @@ using System.Linq.Expressions;
|
|||||||
using System.Net.NetworkInformation;
|
using System.Net.NetworkInformation;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using static APT.SC.WebApi.Controllers.Api.BI.BIKanBanController;
|
||||||
|
|
||||||
namespace APT.SC.WebApi.Controllers.Api.BIController
|
namespace APT.SC.WebApi.Controllers.Api.BIController
|
||||||
{
|
{
|
||||||
@ -139,6 +142,37 @@ namespace APT.SC.WebApi.Controllers.Api.BIController
|
|||||||
public string departmentName { get; set; }
|
public string departmentName { get; set; }
|
||||||
public int num { get; set; }
|
public int num { get; set; }
|
||||||
public List<DepartmentInfo> deptInfos { get; set; }
|
public List<DepartmentInfo> deptInfos { get; set; }
|
||||||
|
}
|
||||||
|
public class TaskViewInfo
|
||||||
|
{
|
||||||
|
public string MOULD_NAME { get; set; }
|
||||||
|
public string FORM_NAME { get; set; }
|
||||||
|
|
||||||
|
public string COMPANY_NAME { get; set; }
|
||||||
|
public int TOTAL_QTY { get; set; }
|
||||||
|
public int NORMAL_FINISH { get; set; }
|
||||||
|
public int OVER_FINISH { get; set; }
|
||||||
|
public int DOING { get; set; }
|
||||||
|
public int UNFINISH { get; set; }
|
||||||
|
public int OVER_UNFINISH { get; set; }
|
||||||
|
public string FINISH_RATE { get; set; }
|
||||||
|
public string NORMAL_RATE { get; set; }
|
||||||
|
public List<TaskViewInfoDetail> details { get; set; }
|
||||||
|
}
|
||||||
|
public class TaskViewInfoDetail
|
||||||
|
{
|
||||||
|
public string MOULD_NAME { get; set; }
|
||||||
|
public string FORM_NAME { get; set; }
|
||||||
|
|
||||||
|
public string COMPANY_NAME { get; set; }
|
||||||
|
public string NOTICE_TITLE { get; set; }
|
||||||
|
public DateTime? TASK_STARTDT { get; set; }
|
||||||
|
|
||||||
|
public DateTime? TASK_ENDDT { get; set; }
|
||||||
|
|
||||||
|
public DateTime? TASK_DT { get; set; }
|
||||||
|
public string NOTICE_STATUS { get; set; }
|
||||||
|
public string USER_NAME { get; set; }
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
@ -11140,6 +11174,99 @@ namespace APT.SC.WebApi.Controllers.Api.BIController
|
|||||||
/// 存储信息
|
/// 存储信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<T_FM_WORK_TICKET_COMPLETION> result { get; set; }
|
public List<T_FM_WORK_TICKET_COMPLETION> result { get; set; }
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 系统运行情况报表
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="entity"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("GetTaskViewInfo")]
|
||||||
|
public JsonActionResult<List<TaskViewInfo>> GetTaskViewInfo([FromBody] KeywordFilter filter)
|
||||||
|
{
|
||||||
|
string connhead = ConfigurationManager.ConnectionStrings["head"];
|
||||||
|
JsonActionResult<List<TaskViewInfo>> result = new JsonActionResult<List<TaskViewInfo>>();
|
||||||
|
result.Data = new List<TaskViewInfo>();
|
||||||
|
DataTable Table = new DataTable();
|
||||||
|
using (SqlConnection connection = new SqlConnection(connhead))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
//各公司待办明细
|
||||||
|
string sql = "select * from vhome_task_data_form ";
|
||||||
|
SqlCommand com = new SqlCommand(sql, connection);
|
||||||
|
SqlDataAdapter Data = new SqlDataAdapter(com);
|
||||||
|
Data.Fill(Table);
|
||||||
|
connection.Close();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(ex.StackTrace))
|
||||||
|
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
|
||||||
|
else
|
||||||
|
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
|
||||||
|
}
|
||||||
|
if (Table != null && Table.Rows.Count > 0)
|
||||||
|
{
|
||||||
|
List<TaskViewInfoDetail> listAddNew = new List<TaskViewInfoDetail>();
|
||||||
|
|
||||||
|
foreach (DataRow item in Table.Rows)
|
||||||
|
{
|
||||||
|
listAddNew.Add(new TaskViewInfoDetail()
|
||||||
|
{
|
||||||
|
COMPANY_NAME = item["db_name"] != null ? item["db_name"].ToString() : null,
|
||||||
|
MOULD_NAME = item["MODEL_NAME"] != null ? item["MODEL_NAME"].ToString() : null,
|
||||||
|
FORM_NAME = item["FORM_NAME"] != null ? item["FORM_NAME"].ToString() : null,
|
||||||
|
NOTICE_TITLE = item["NOTICE_TITLE"] != null ? item["NOTICE_TITLE"].ToString() : null,
|
||||||
|
NOTICE_STATUS = item["NOTICE_STATUS"] != null ? item["NOTICE_STATUS"].ToString() : null,
|
||||||
|
TASK_DT = item["TASK_DT"] != null ? Convert.ToDateTime(item["TASK_DT"].ToString()) : null,
|
||||||
|
TASK_STARTDT = item["TASK_STARTDT"] != null ? Convert.ToDateTime(item["TASK_STARTDT"].ToString()) : null,
|
||||||
|
TASK_ENDDT = item["TASK_ENDDT"] != null ? Convert.ToDateTime(item["TASK_ENDDT"].ToString()) : null,
|
||||||
|
USER_NAME = item["USER_NAME"] != null ? item["USER_NAME"].ToString() : null
|
||||||
|
});
|
||||||
|
}
|
||||||
|
var taskGroup = listAddNew.GroupBy(t => new { t.COMPANY_NAME, t.MOULD_NAME, t.FORM_NAME }).ToList();
|
||||||
|
if (taskGroup != null && taskGroup.Any())
|
||||||
|
{
|
||||||
|
foreach (var item in taskGroup)
|
||||||
|
{
|
||||||
|
var details = listAddNew.Where(t => t.COMPANY_NAME == item.Key.COMPANY_NAME && t.MOULD_NAME == item.Key.MOULD_NAME && t.FORM_NAME == item.Key.FORM_NAME).ToList();
|
||||||
|
TaskViewInfo info = new TaskViewInfo();
|
||||||
|
info.COMPANY_NAME = item.Key.COMPANY_NAME;
|
||||||
|
info.MOULD_NAME = item.Key.MOULD_NAME;
|
||||||
|
info.FORM_NAME = item.Key.FORM_NAME;
|
||||||
|
info.TOTAL_QTY = details.Count();
|
||||||
|
info.NORMAL_FINISH = details.Count(t => t.NOTICE_STATUS == "1");
|
||||||
|
info.OVER_FINISH = details.Count(t => t.NOTICE_STATUS == "2");
|
||||||
|
info.DOING = details.Count(t => t.NOTICE_STATUS == "0" && t.TASK_ENDDT >= DateTime.Now);
|
||||||
|
info.UNFINISH = details.Count(t => t.NOTICE_STATUS == "0");
|
||||||
|
info.OVER_UNFINISH = details.Count(t => t.NOTICE_STATUS == "0" && t.TASK_ENDDT < DateTime.Now);
|
||||||
|
info.FINISH_RATE = info.TOTAL_QTY == 0 ? "0" : ((double)(info.NORMAL_FINISH + info.OVER_FINISH) / info.TOTAL_QTY * 100).ToString("0.00");
|
||||||
|
info.NORMAL_RATE = info.TOTAL_QTY == 0 ? "0" : ((double)info.NORMAL_FINISH / info.TOTAL_QTY * 100).ToString("0.00");
|
||||||
|
if (details != null && details.Any())
|
||||||
|
{
|
||||||
|
info.details = new List<TaskViewInfoDetail>();
|
||||||
|
foreach (var de in details)
|
||||||
|
{
|
||||||
|
TaskViewInfoDetail dd = new TaskViewInfoDetail();
|
||||||
|
dd.COMPANY_NAME = de.COMPANY_NAME;
|
||||||
|
dd.MOULD_NAME = de.MOULD_NAME;
|
||||||
|
dd.FORM_NAME = de.FORM_NAME;
|
||||||
|
dd.NOTICE_TITLE = de.NOTICE_TITLE;
|
||||||
|
dd.NOTICE_STATUS = de.NOTICE_STATUS;
|
||||||
|
dd.TASK_DT = de.TASK_DT == DateTime.MinValue ? null : de.TASK_DT;
|
||||||
|
dd.TASK_STARTDT = de.TASK_STARTDT;
|
||||||
|
dd.TASK_ENDDT = de.TASK_ENDDT;
|
||||||
|
dd.USER_NAME = de.USER_NAME;
|
||||||
|
info.details.Add(dd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result.Data.Add(info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1610,7 +1610,7 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
//throw new Exception("生产单元,检查层级,检查类型,检查周期都不能为空");
|
//throw new Exception("生产单元,检查层级,检查类型,检查周期都不能为空");
|
||||||
}
|
}
|
||||||
var departId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
|
var departId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
|
||||||
var checkSet = this.GetEntity<T_SK_CHECK_SET>(t => t.PRODUCTION_UNIT_ID == entity.PRODUCTION_UNIT_ID && t.CHECK_CYCLE == entity.PLANCHECKFREQUENCY && t.CHECK_TYPE == entity.DEPARTMENT_TYPE && t.DEPARTMENT_ID == Guid.Parse(departId.ToString()));
|
var checkSet = this.GetEntity<T_SK_CHECK_SET>(t => t.PRODUCTION_UNIT_ID == entity.PRODUCTION_UNIT_ID && t.CHECK_CYCLE == entity.PLANCHECKFREQUENCY && t.CHECK_TYPE == entity.DEPARTMENT_TYPE && t.DEPARTMENT_ID == Guid.Parse(departId.ToString()) && t.CHECK_TYPE_ID == entity.CHECK_TYPE_ID);
|
||||||
if (checkSet == null)
|
if (checkSet == null)
|
||||||
{
|
{
|
||||||
result.ErrorMessage = "未找到对应的检查清单,请手动添加检查内容";
|
result.ErrorMessage = "未找到对应的检查清单,请手动添加检查内容";
|
||||||
@ -1676,7 +1676,11 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
T_SK_HIDDEN_DANGER_REPORT dangerReport = null;
|
T_SK_HIDDEN_DANGER_REPORT dangerReport = null;
|
||||||
T_SK_HIDDEN_DANGER_HAND_REPORT hand = null;
|
T_SK_HIDDEN_DANGER_HAND_REPORT hand = null;
|
||||||
T_SK_HIDDEN_DANGER_CONFIRM confirm= null;
|
T_SK_HIDDEN_DANGER_CONFIRM confirm= null;
|
||||||
|
T_SK_SECURITY_INSPECTION_RECORD_SUMMARY recordSum = null;
|
||||||
|
List<T_SK_SECURITY_INSPECTION_RECORD> safeRecords = new List<T_SK_SECURITY_INSPECTION_RECORD>();
|
||||||
|
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE> rectifyNotices = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE>();
|
||||||
List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD> rectifyRecords = new List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD>();
|
List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD> rectifyRecords = new List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD>();
|
||||||
|
|
||||||
Guid Keyword = new Guid(filter.Keyword);
|
Guid Keyword = new Guid(filter.Keyword);
|
||||||
//检查通知
|
//检查通知
|
||||||
var check = GetEntity<T_SK_SECURITY_INSPECTION_NOTICE>(Keyword);
|
var check = GetEntity<T_SK_SECURITY_INSPECTION_NOTICE>(Keyword);
|
||||||
@ -1695,7 +1699,8 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
{
|
{
|
||||||
confirmId = confirm.ID;
|
confirmId = confirm.ID;
|
||||||
sourceIds.Add(confirm.ID);
|
sourceIds.Add(confirm.ID);
|
||||||
rectifyNoticeIds = GetEntities<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE>(e => e.HIDDEN_DANGER_CONFIRM_ID != null && e.HIDDEN_DANGER_CONFIRM_ID == confirm.ID, filter).Select(t => t.ID).ToList();
|
rectifyNotices = GetEntities<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE>(e => e.HIDDEN_DANGER_CONFIRM_ID != null && e.HIDDEN_DANGER_CONFIRM_ID == confirm.ID, filter).ToList();
|
||||||
|
rectifyNoticeIds = rectifyNotices.Select(t => t.ID).ToList();
|
||||||
if (rectifyNoticeIds != null && rectifyNoticeIds.Any())
|
if (rectifyNoticeIds != null && rectifyNoticeIds.Any())
|
||||||
{
|
{
|
||||||
sourceIds.AddRange(rectifyNoticeIds);
|
sourceIds.AddRange(rectifyNoticeIds);
|
||||||
@ -1710,16 +1715,17 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
sourceIds.AddRange(rectifyRecordIds);
|
sourceIds.AddRange(rectifyRecordIds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GetAutoNext(sourceIds, check, safeNoticeId, hand, handId,confirm, confirmId, safeRecordIds, safeRecordSumId, dangerReportId, dangerReport, rectifyNoticeIds, rectifyRecordIds, rectifyRecords, ref result);
|
GetAutoNext(sourceIds, check, safeNoticeId, hand, handId, confirm, confirmId, safeRecordIds, safeRecords, safeRecordSumId, recordSum, dangerReportId, dangerReport, rectifyNoticeIds, rectifyNotices, rectifyRecordIds, rectifyRecords, ref result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
safeNoticeId = check.ID;
|
safeNoticeId = check.ID;
|
||||||
sourceIds.Add(check.ID);
|
sourceIds.Add(check.ID);
|
||||||
safeRecordIds = GetEntities<T_SK_SECURITY_INSPECTION_RECORD>(e => e.SECURITY_INSPECTION_NOTICE_ID != null && e.SECURITY_INSPECTION_NOTICE_ID == check.ID, filter).Select(m=>m.ID).ToList();
|
safeRecords = GetEntities<T_SK_SECURITY_INSPECTION_RECORD>(e => e.SECURITY_INSPECTION_NOTICE_ID != null && e.SECURITY_INSPECTION_NOTICE_ID == check.ID, filter).ToList();
|
||||||
|
safeRecordIds = safeRecords.Select(m => m.ID).ToList();
|
||||||
sourceIds.AddRange(safeRecordIds);
|
sourceIds.AddRange(safeRecordIds);
|
||||||
var recordSum= GetEntity<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>(e => e.SECURITY_INSPECTION_NOTICE_ID != null && e.SECURITY_INSPECTION_NOTICE_ID == check.ID);
|
recordSum= GetEntity<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>(e => e.SECURITY_INSPECTION_NOTICE_ID != null && e.SECURITY_INSPECTION_NOTICE_ID == check.ID);
|
||||||
if (recordSum != null)
|
if (recordSum != null)
|
||||||
{
|
{
|
||||||
safeRecordSumId = recordSum.ID;
|
safeRecordSumId = recordSum.ID;
|
||||||
@ -1729,7 +1735,8 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
{
|
{
|
||||||
dangerReportId = dangerReport.ID;
|
dangerReportId = dangerReport.ID;
|
||||||
sourceIds.Add(dangerReport.ID);
|
sourceIds.Add(dangerReport.ID);
|
||||||
rectifyNoticeIds = GetEntities<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE>(e => e.HIDDEN_DANGER_REPORT_ID != null && e.HIDDEN_DANGER_REPORT_ID == dangerReport.ID,filter).Select(t=>t.ID).ToList();
|
rectifyNotices = GetEntities<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE>(e => e.HIDDEN_DANGER_REPORT_ID != null && e.HIDDEN_DANGER_REPORT_ID == dangerReport.ID,filter).ToList();
|
||||||
|
rectifyNoticeIds = rectifyNotices.Select(t => t.ID).ToList();
|
||||||
if (rectifyNoticeIds != null && rectifyNoticeIds.Any())
|
if (rectifyNoticeIds != null && rectifyNoticeIds.Any())
|
||||||
{
|
{
|
||||||
sourceIds.AddRange(rectifyNoticeIds);
|
sourceIds.AddRange(rectifyNoticeIds);
|
||||||
@ -1745,13 +1752,13 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GetAutoNext(sourceIds,check, safeNoticeId,hand, handId, confirm,confirmId, safeRecordIds, safeRecordSumId, dangerReportId, dangerReport, rectifyNoticeIds, rectifyRecordIds, rectifyRecords, ref result);
|
GetAutoNext(sourceIds,check, safeNoticeId,hand, handId, confirm,confirmId, safeRecordIds, safeRecords,safeRecordSumId, recordSum,dangerReportId, dangerReport, rectifyNoticeIds, rectifyNotices, rectifyRecordIds, rectifyRecords, ref result);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
private void GetAutoNext(List<Guid> sourceIds, T_SK_SECURITY_INSPECTION_NOTICE check, Guid? safeNoticeId, T_SK_HIDDEN_DANGER_HAND_REPORT hand,Guid? handId, T_SK_HIDDEN_DANGER_CONFIRM confirm,Guid? confirmId, List<Guid> safeRecordIds, Guid? safeRecordSumId, Guid? dangerReportId, T_SK_HIDDEN_DANGER_REPORT dangerReport, List<Guid> rectifyNoticeIds, List<Guid> rectifyRecordIds, List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD> rectifyRecords, ref List<OperateLog> result)
|
private void GetAutoNext(List<Guid> sourceIds, T_SK_SECURITY_INSPECTION_NOTICE check, Guid? safeNoticeId, T_SK_HIDDEN_DANGER_HAND_REPORT hand,Guid? handId, T_SK_HIDDEN_DANGER_CONFIRM confirm,Guid? confirmId, List<Guid> safeRecordIds, List<T_SK_SECURITY_INSPECTION_RECORD> safeRecords, Guid? safeRecordSumId, T_SK_SECURITY_INSPECTION_RECORD_SUMMARY recordSum, Guid? dangerReportId, T_SK_HIDDEN_DANGER_REPORT dangerReport, List<Guid> rectifyNoticeIds, List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE> rectifyNotices,List<Guid> rectifyRecordIds, List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD> rectifyRecords, ref List<OperateLog> result)
|
||||||
{
|
{
|
||||||
var approveIds = new List<Guid>();
|
var approveIds = new List<Guid>();
|
||||||
var approves = new List<T_PF_APPROVE>();
|
var approves = new List<T_PF_APPROVE>();
|
||||||
@ -1908,6 +1915,33 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.STATUS = 0;
|
start1.STATUS = 0;
|
||||||
noticeLog.logList.Add(start1);
|
noticeLog.logList.Add(start1);
|
||||||
}
|
}
|
||||||
|
//归档
|
||||||
|
if (check.STATUS == PFStandardStatus.Archived || check.STATUS == PFStandardStatus.Close)
|
||||||
|
{
|
||||||
|
OperateLogList start = new OperateLogList();
|
||||||
|
start.ID = safeNoticeId;
|
||||||
|
start.CODE = "SK006_SHOWPRINT";
|
||||||
|
start.USER_NAME = temp1.USER_NAME;
|
||||||
|
start.NAME = "安全检查通知归档";
|
||||||
|
start.DEAL_DATE = check.MODIFY_TIME;
|
||||||
|
start.CREATE_TIME = check.CREATE_TIME;
|
||||||
|
start.STATUS = 5 ;
|
||||||
|
noticeLog.logList.Add(start);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//手动发起的检查通知
|
||||||
|
OperateLogList start = new OperateLogList();
|
||||||
|
start.ID = check.ID;
|
||||||
|
start.CODE = "SK006_SHOWPRINT";
|
||||||
|
start.USER_NAME = checkUser.NAME;
|
||||||
|
start.NAME = "安全检查通知归档";
|
||||||
|
start.DEAL_DATE = check.MODIFY_TIME;
|
||||||
|
start.CREATE_TIME = check.CREATE_TIME;
|
||||||
|
start.STATUS = 0;
|
||||||
|
noticeLog.logList.Add(start);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
result.Add(noticeLog);
|
result.Add(noticeLog);
|
||||||
#endregion
|
#endregion
|
||||||
@ -1935,6 +1969,36 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start.CREATE_TIME = temp1.CREATE_TIME;
|
start.CREATE_TIME = temp1.CREATE_TIME;
|
||||||
start.STATUS = temp1.NOTICE_STATUS == 1 ? 5 : temp1.NOTICE_STATUS == 2 ? 10 : temp1.NOTICE_STATUS == 4 ? 15 : (temp1.NOTICE_STATUS == 0 && temp1.TASK_ENDDT >= DateTime.Now) ? 16 : (temp1.TASK_ENDDT < DateTime.Now && temp1.NOTICE_STATUS == 0) ? 20 : 0;
|
start.STATUS = temp1.NOTICE_STATUS == 1 ? 5 : temp1.NOTICE_STATUS == 2 ? 10 : temp1.NOTICE_STATUS == 4 ? 15 : (temp1.NOTICE_STATUS == 0 && temp1.TASK_ENDDT >= DateTime.Now) ? 16 : (temp1.TASK_ENDDT < DateTime.Now && temp1.NOTICE_STATUS == 0) ? 20 : 0;
|
||||||
recordLog.logList.Add(start);
|
recordLog.logList.Add(start);
|
||||||
|
var record = safeRecords.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID);
|
||||||
|
if (record != null)
|
||||||
|
{
|
||||||
|
//归档
|
||||||
|
if (record.STATUS == PFStandardStatus.Archived || record.STATUS == PFStandardStatus.Close)
|
||||||
|
{
|
||||||
|
OperateLogList start1 = new OperateLogList();
|
||||||
|
start1.ID = temp1.SOURCE_DATA_ID;
|
||||||
|
start1.CODE = "SK010_SHOWPRINT";
|
||||||
|
start1.USER_NAME = temp1.USER_NAME;
|
||||||
|
start1.NAME = "安全检查记录归档";
|
||||||
|
start1.DEAL_DATE = record.MODIFY_TIME;
|
||||||
|
start1.CREATE_TIME = record.CREATE_TIME;
|
||||||
|
start1.STATUS = 5;
|
||||||
|
recordLog.logList.Add(start1);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OperateLogList start1 = new OperateLogList();
|
||||||
|
start1.ID = temp1.SOURCE_DATA_ID;
|
||||||
|
start1.CODE = "SK010_SHOWPRINT";
|
||||||
|
start1.USER_NAME = temp1.USER_NAME;
|
||||||
|
start1.NAME = "安全检查记录归档";
|
||||||
|
start1.DEAL_DATE = record.MODIFY_TIME;
|
||||||
|
start1.CREATE_TIME = record.CREATE_TIME;
|
||||||
|
start1.STATUS = 0;
|
||||||
|
recordLog.logList.Add(start1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var temp3 = itemps.Where(t => t.NOTICE_STATUS != 1).OrderByDescending(n => n.NOTICE_STATUS).ThenBy(m => m.MODIFY_TIME).ToList();
|
var temp3 = itemps.Where(t => t.NOTICE_STATUS != 1).OrderByDescending(n => n.NOTICE_STATUS).ThenBy(m => m.MODIFY_TIME).ToList();
|
||||||
@ -1951,8 +2015,39 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start.CREATE_TIME = temp1.CREATE_TIME;
|
start.CREATE_TIME = temp1.CREATE_TIME;
|
||||||
start.STATUS = temp1.NOTICE_STATUS == 1 ? 5 : temp1.NOTICE_STATUS == 2 ? 10 : temp1.NOTICE_STATUS == 4 ? 15 : (temp1.NOTICE_STATUS == 0 && temp1.TASK_ENDDT >= DateTime.Now) ? 16 : (temp1.TASK_ENDDT < DateTime.Now && temp1.NOTICE_STATUS == 0) ? 20 : 0;
|
start.STATUS = temp1.NOTICE_STATUS == 1 ? 5 : temp1.NOTICE_STATUS == 2 ? 10 : temp1.NOTICE_STATUS == 4 ? 15 : (temp1.NOTICE_STATUS == 0 && temp1.TASK_ENDDT >= DateTime.Now) ? 16 : (temp1.TASK_ENDDT < DateTime.Now && temp1.NOTICE_STATUS == 0) ? 20 : 0;
|
||||||
recordLog.logList.Add(start);
|
recordLog.logList.Add(start);
|
||||||
|
var record = safeRecords.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID);
|
||||||
|
if (record != null)
|
||||||
|
{
|
||||||
|
//归档
|
||||||
|
if (record.STATUS == PFStandardStatus.Archived || record.STATUS == PFStandardStatus.Close)
|
||||||
|
{
|
||||||
|
OperateLogList start1 = new OperateLogList();
|
||||||
|
start1.ID = temp1.SOURCE_DATA_ID;
|
||||||
|
start1.CODE = "SK010_SHOWPRINT";
|
||||||
|
start1.USER_NAME = temp1.USER_NAME;
|
||||||
|
start1.NAME = "安全检查记录归档";
|
||||||
|
start1.DEAL_DATE = record.MODIFY_TIME;
|
||||||
|
start1.CREATE_TIME = record.CREATE_TIME;
|
||||||
|
start1.STATUS = 5;
|
||||||
|
recordLog.logList.Add(start1);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OperateLogList start1 = new OperateLogList();
|
||||||
|
start1.ID = temp1.SOURCE_DATA_ID;
|
||||||
|
start1.CODE = "SK010_SHOWPRINT";
|
||||||
|
start1.USER_NAME = temp1.USER_NAME;
|
||||||
|
start1.NAME = "安全检查记录归档";
|
||||||
|
start1.DEAL_DATE = record.MODIFY_TIME;
|
||||||
|
start1.CREATE_TIME = record.CREATE_TIME;
|
||||||
|
start1.STATUS = 0;
|
||||||
|
recordLog.logList.Add(start1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1965,6 +2060,15 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.CREATE_TIME = null;
|
start1.CREATE_TIME = null;
|
||||||
start1.STATUS = 0;
|
start1.STATUS = 0;
|
||||||
recordLog.logList.Add(start1);
|
recordLog.logList.Add(start1);
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = null;
|
||||||
|
start2.CODE = "SK010_SHOWPRINT";
|
||||||
|
start2.USER_NAME = "检查人";
|
||||||
|
start2.NAME = "安全检查记录归档";
|
||||||
|
start2.DEAL_DATE = null;
|
||||||
|
start2.CREATE_TIME = null;
|
||||||
|
start2.STATUS = 0;
|
||||||
|
recordLog.logList.Add(start2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1978,6 +2082,15 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.CREATE_TIME = null;
|
start1.CREATE_TIME = null;
|
||||||
start1.STATUS = 0;
|
start1.STATUS = 0;
|
||||||
recordLog.logList.Add(start1);
|
recordLog.logList.Add(start1);
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = null;
|
||||||
|
start2.CODE = "SK010_SHOWPRINT";
|
||||||
|
start2.USER_NAME = "检查人";
|
||||||
|
start2.NAME = "安全检查记录归档";
|
||||||
|
start2.DEAL_DATE = null;
|
||||||
|
start2.CREATE_TIME = null;
|
||||||
|
start2.STATUS = 0;
|
||||||
|
recordLog.logList.Add(start2);
|
||||||
}
|
}
|
||||||
result.Add(recordLog);
|
result.Add(recordLog);
|
||||||
#endregion
|
#endregion
|
||||||
@ -2016,6 +2129,32 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.CREATE_TIME = item.CREATE_TIME;
|
start1.CREATE_TIME = item.CREATE_TIME;
|
||||||
start1.STATUS = item.NOTICE_STATUS == 1 ? 5 : item.NOTICE_STATUS == 2 ? 10 : item.NOTICE_STATUS == 4 ? 15 : (item.NOTICE_STATUS == 0 && item.TASK_ENDDT >= DateTime.Now) ? 16 : (item.TASK_ENDDT < DateTime.Now && item.NOTICE_STATUS == 0) ? 20 : 0;
|
start1.STATUS = item.NOTICE_STATUS == 1 ? 5 : item.NOTICE_STATUS == 2 ? 10 : item.NOTICE_STATUS == 4 ? 15 : (item.NOTICE_STATUS == 0 && item.TASK_ENDDT >= DateTime.Now) ? 16 : (item.TASK_ENDDT < DateTime.Now && item.NOTICE_STATUS == 0) ? 20 : 0;
|
||||||
recordSumLog.logList.Add(start1);
|
recordSumLog.logList.Add(start1);
|
||||||
|
//归档
|
||||||
|
if (recordSum.STATUS == PFStandardStatus.Archived)
|
||||||
|
{
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = safeRecordSumId;
|
||||||
|
start2.CODE = "SK012_SHOWPRINT";
|
||||||
|
start2.USER_NAME = item.USER_NAME;
|
||||||
|
start2.NAME = "安全检查记录汇总归档";
|
||||||
|
start2.DEAL_DATE = recordSum.MODIFY_TIME;
|
||||||
|
start2.CREATE_TIME = recordSum.CREATE_TIME;
|
||||||
|
start2.STATUS = 5;
|
||||||
|
recordSumLog.logList.Add(start2);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = safeRecordSumId;
|
||||||
|
start2.CODE = "SK012_SHOWPRINT";
|
||||||
|
start2.USER_NAME = item.USER_NAME;
|
||||||
|
start2.NAME = "安全检查记录汇总归档";
|
||||||
|
start2.DEAL_DATE = recordSum.MODIFY_TIME;
|
||||||
|
start2.CREATE_TIME = recordSum.CREATE_TIME;
|
||||||
|
start2.STATUS = 0;
|
||||||
|
recordSumLog.logList.Add(start2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var temp4 = temp2.Where(t => t.NOTICE_STATUS != 1).OrderByDescending(n => n.NOTICE_STATUS).ThenBy(m => m.MODIFY_TIME).ToList();
|
var temp4 = temp2.Where(t => t.NOTICE_STATUS != 1).OrderByDescending(n => n.NOTICE_STATUS).ThenBy(m => m.MODIFY_TIME).ToList();
|
||||||
@ -2032,6 +2171,31 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.CREATE_TIME = item.CREATE_TIME;
|
start1.CREATE_TIME = item.CREATE_TIME;
|
||||||
start1.STATUS = item.NOTICE_STATUS == 1 ? 5 : item.NOTICE_STATUS == 2 ? 10 : item.NOTICE_STATUS == 4 ? 15 : (item.NOTICE_STATUS == 0 && item.TASK_ENDDT >= DateTime.Now) ? 16 : (item.TASK_ENDDT < DateTime.Now && item.NOTICE_STATUS == 0) ? 20 : 0;
|
start1.STATUS = item.NOTICE_STATUS == 1 ? 5 : item.NOTICE_STATUS == 2 ? 10 : item.NOTICE_STATUS == 4 ? 15 : (item.NOTICE_STATUS == 0 && item.TASK_ENDDT >= DateTime.Now) ? 16 : (item.TASK_ENDDT < DateTime.Now && item.NOTICE_STATUS == 0) ? 20 : 0;
|
||||||
recordSumLog.logList.Add(start1);
|
recordSumLog.logList.Add(start1);
|
||||||
|
//归档
|
||||||
|
if (recordSum.STATUS == PFStandardStatus.Archived)
|
||||||
|
{
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = safeRecordSumId;
|
||||||
|
start2.CODE = "SK012_SHOWPRINT";
|
||||||
|
start2.USER_NAME = item.USER_NAME;
|
||||||
|
start2.NAME = "安全检查记录汇总归档";
|
||||||
|
start2.DEAL_DATE = recordSum.MODIFY_TIME;
|
||||||
|
start2.CREATE_TIME = recordSum.CREATE_TIME;
|
||||||
|
start2.STATUS = 5;
|
||||||
|
recordSumLog.logList.Add(start2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = safeRecordSumId;
|
||||||
|
start2.CODE = "SK012_SHOWPRINT";
|
||||||
|
start2.USER_NAME = item.USER_NAME;
|
||||||
|
start2.NAME = "安全检查记录汇总归档";
|
||||||
|
start2.DEAL_DATE = recordSum.MODIFY_TIME;
|
||||||
|
start2.CREATE_TIME = recordSum.CREATE_TIME;
|
||||||
|
start2.STATUS = 0;
|
||||||
|
recordSumLog.logList.Add(start2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2046,6 +2210,15 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.CREATE_TIME = null;
|
start1.CREATE_TIME = null;
|
||||||
start1.STATUS = 0;
|
start1.STATUS = 0;
|
||||||
recordSumLog.logList.Add(start1);
|
recordSumLog.logList.Add(start1);
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = null;
|
||||||
|
start2.CODE = "SK012_SHOWPRINT";
|
||||||
|
start2.USER_NAME = "检查人";
|
||||||
|
start2.NAME = "安全检查记录汇总归档";
|
||||||
|
start2.DEAL_DATE = null;
|
||||||
|
start2.CREATE_TIME = null;
|
||||||
|
start2.STATUS = 0;
|
||||||
|
recordSumLog.logList.Add(start2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2068,6 +2241,15 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.CREATE_TIME = null;
|
start1.CREATE_TIME = null;
|
||||||
start1.STATUS = 0;
|
start1.STATUS = 0;
|
||||||
recordSumLog.logList.Add(start1);
|
recordSumLog.logList.Add(start1);
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = null;
|
||||||
|
start2.CODE = "SK012_SHOWPRINT";
|
||||||
|
start2.USER_NAME = "检查人";
|
||||||
|
start2.NAME = "安全检查记录汇总归档";
|
||||||
|
start2.DEAL_DATE = null;
|
||||||
|
start2.CREATE_TIME = null;
|
||||||
|
start2.STATUS = 0;
|
||||||
|
recordSumLog.logList.Add(start2);
|
||||||
}
|
}
|
||||||
result.Add(recordSumLog);
|
result.Add(recordSumLog);
|
||||||
#endregion
|
#endregion
|
||||||
@ -2211,6 +2393,40 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.CREATE_TIME = null;
|
start1.CREATE_TIME = null;
|
||||||
start1.STATUS = 0;
|
start1.STATUS = 0;
|
||||||
hiddenReportLog.logList.Add(start1);
|
hiddenReportLog.logList.Add(start1);
|
||||||
|
OperateLogList start3 = new OperateLogList();
|
||||||
|
start3.ID = null;
|
||||||
|
start3.CODE = "SK014_SHOWPRINT";
|
||||||
|
start3.USER_NAME = "整改责任人";
|
||||||
|
start3.NAME = "隐患上报归档";
|
||||||
|
start3.DEAL_DATE = null;
|
||||||
|
start3.CREATE_TIME = null;
|
||||||
|
start3.STATUS = 0;
|
||||||
|
hiddenReportLog.logList.Add(start3);
|
||||||
|
}
|
||||||
|
//归档
|
||||||
|
if (dangerReport.STATUS == PFStandardStatus.Archived)
|
||||||
|
{
|
||||||
|
OperateLogList start3 = new OperateLogList();
|
||||||
|
start3.ID = null;
|
||||||
|
start3.CODE = "SK014_SHOWPRINT";
|
||||||
|
start3.USER_NAME = "整改责任人";
|
||||||
|
start3.NAME = "隐患上报归档";
|
||||||
|
start3.DEAL_DATE = dangerReport.MODIFY_TIME;
|
||||||
|
start3.CREATE_TIME = dangerReport.CREATE_TIME;
|
||||||
|
start3.STATUS = 5;
|
||||||
|
hiddenReportLog.logList.Add(start3);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OperateLogList start3 = new OperateLogList();
|
||||||
|
start3.ID = null;
|
||||||
|
start3.CODE = "SK014_SHOWPRINT";
|
||||||
|
start3.USER_NAME = "整改责任人";
|
||||||
|
start3.NAME = "隐患上报归档";
|
||||||
|
start3.DEAL_DATE = dangerReport.MODIFY_TIME;
|
||||||
|
start3.CREATE_TIME = dangerReport.CREATE_TIME;
|
||||||
|
start3.STATUS = 0;
|
||||||
|
hiddenReportLog.logList.Add(start3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2242,6 +2458,15 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.CREATE_TIME = null;
|
start1.CREATE_TIME = null;
|
||||||
start1.STATUS = 0;
|
start1.STATUS = 0;
|
||||||
hiddenReportLog.logList.Add(start1);
|
hiddenReportLog.logList.Add(start1);
|
||||||
|
OperateLogList start3 = new OperateLogList();
|
||||||
|
start3.ID = null;
|
||||||
|
start3.CODE = "SK014_SHOWPRINT";
|
||||||
|
start3.USER_NAME = "整改责任人";
|
||||||
|
start3.NAME = "隐患上报归档";
|
||||||
|
start3.DEAL_DATE = null;
|
||||||
|
start3.CREATE_TIME = null;
|
||||||
|
start3.STATUS = 0;
|
||||||
|
hiddenReportLog.logList.Add(start3);
|
||||||
}
|
}
|
||||||
result.Add(hiddenReportLog);
|
result.Add(hiddenReportLog);
|
||||||
#endregion
|
#endregion
|
||||||
@ -2259,9 +2484,19 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start.USER_NAME = handUser.NAME;
|
start.USER_NAME = handUser.NAME;
|
||||||
start.NAME = "手动隐患上报";
|
start.NAME = "手动隐患上报";
|
||||||
start.DEAL_DATE = hand.STATUS == PFStandardStatus.Draft ? null : hand.MODIFY_TIME;
|
start.DEAL_DATE = hand.STATUS == PFStandardStatus.Draft ? null : hand.MODIFY_TIME;
|
||||||
start.CREATE_TIME = check.CREATE_TIME;
|
start.CREATE_TIME = hand.CREATE_TIME;
|
||||||
start.STATUS = hand.STATUS == PFStandardStatus.Draft ? 16 : 5;
|
start.STATUS = hand.STATUS == PFStandardStatus.Draft ? 16 : 5;
|
||||||
handLog.logList.Add(start);
|
handLog.logList.Add(start);
|
||||||
|
//归档
|
||||||
|
OperateLogList startA = new OperateLogList();
|
||||||
|
startA.ID = handId;
|
||||||
|
startA.CODE = "SK016_SHOWPRINT";
|
||||||
|
startA.USER_NAME = handUser.NAME;
|
||||||
|
startA.NAME = "手动隐患上报归档";
|
||||||
|
startA.DEAL_DATE = hand.STATUS == PFStandardStatus.Draft ? null : hand.MODIFY_TIME;
|
||||||
|
startA.CREATE_TIME = hand.CREATE_TIME;
|
||||||
|
startA.STATUS = hand.STATUS == PFStandardStatus.Archived ? 5 : 0;
|
||||||
|
handLog.logList.Add(startA);
|
||||||
#endregion
|
#endregion
|
||||||
#region 隐患确认单
|
#region 隐患确认单
|
||||||
OperateLog confirmLog = new OperateLog();
|
OperateLog confirmLog = new OperateLog();
|
||||||
@ -2382,6 +2617,16 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start2.STATUS = 0;
|
start2.STATUS = 0;
|
||||||
confirmLog.logList.Add(start2);
|
confirmLog.logList.Add(start2);
|
||||||
}
|
}
|
||||||
|
//归档
|
||||||
|
OperateLogList start4 = new OperateLogList();
|
||||||
|
start4.ID = null;
|
||||||
|
start4.CODE = "SK018_SHOWPRINT";
|
||||||
|
start4.USER_NAME = "整改责任人";
|
||||||
|
start4.NAME = "隐患确认单归档";
|
||||||
|
start4.DEAL_DATE = confirm.MODIFY_TIME;
|
||||||
|
start4.CREATE_TIME = confirm.CREATE_TIME;
|
||||||
|
start4.STATUS = confirm.STATUS == PFStandardStatus.Archived ? 5:0;
|
||||||
|
confirmLog.logList.Add(start4);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2412,6 +2657,15 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start3.CREATE_TIME = null;
|
start3.CREATE_TIME = null;
|
||||||
start3.STATUS = 0;
|
start3.STATUS = 0;
|
||||||
confirmLog.logList.Add(start3);
|
confirmLog.logList.Add(start3);
|
||||||
|
OperateLogList start4 = new OperateLogList();
|
||||||
|
start4.ID = null;
|
||||||
|
start4.CODE = "SK018_SHOWPRINT";
|
||||||
|
start4.USER_NAME = "整改责任人";
|
||||||
|
start4.NAME = "隐患确认单归档";
|
||||||
|
start4.DEAL_DATE = null;
|
||||||
|
start4.CREATE_TIME = null;
|
||||||
|
start4.STATUS = 0;
|
||||||
|
confirmLog.logList.Add(start4);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
@ -2486,6 +2740,32 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.STATUS = 0;
|
start1.STATUS = 0;
|
||||||
rectifyNoticeLog.logList.Add(start1);
|
rectifyNoticeLog.logList.Add(start1);
|
||||||
}
|
}
|
||||||
|
//归档
|
||||||
|
var rectifyNotice = rectifyNotices.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID);
|
||||||
|
if (rectifyNotice != null && rectifyNotice.STATUS == PFStandardStatus.Archived)
|
||||||
|
{
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = temp1.SOURCE_DATA_ID;
|
||||||
|
start2.CODE = "SK020_SHOWPRINT";
|
||||||
|
start2.USER_NAME = temp1.USER_NAME;
|
||||||
|
start2.NAME = "隐患整改通知归档";
|
||||||
|
start2.DEAL_DATE = rectifyNotice.MODIFY_TIME;
|
||||||
|
start2.CREATE_TIME = rectifyNotice.CREATE_TIME;
|
||||||
|
start2.STATUS = 5;
|
||||||
|
rectifyNoticeLog.logList.Add(start2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = temp1.SOURCE_DATA_ID;
|
||||||
|
start2.CODE = "SK020_SHOWPRINT";
|
||||||
|
start2.USER_NAME = temp1.USER_NAME;
|
||||||
|
start2.NAME = "隐患整改通知归档";
|
||||||
|
start2.DEAL_DATE = rectifyNotice.MODIFY_TIME;
|
||||||
|
start2.CREATE_TIME = rectifyNotice.CREATE_TIME;
|
||||||
|
start2.STATUS = 0;
|
||||||
|
rectifyNoticeLog.logList.Add(start2);
|
||||||
|
}
|
||||||
result.Add(rectifyNoticeLog);
|
result.Add(rectifyNoticeLog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2512,6 +2792,15 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.CREATE_TIME = null;
|
start1.CREATE_TIME = null;
|
||||||
start1.STATUS = 0;
|
start1.STATUS = 0;
|
||||||
rectifyNoticeLog.logList.Add(start1);
|
rectifyNoticeLog.logList.Add(start1);
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = null;
|
||||||
|
start2.CODE = "SK020_SHOWPRINT";
|
||||||
|
start2.USER_NAME = "整改责任人";
|
||||||
|
start2.NAME = "隐患整改通知归档";
|
||||||
|
start2.DEAL_DATE = null;
|
||||||
|
start2.CREATE_TIME = null;
|
||||||
|
start2.STATUS = 0;
|
||||||
|
rectifyNoticeLog.logList.Add(start2);
|
||||||
result.Add(rectifyNoticeLog);
|
result.Add(rectifyNoticeLog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2538,6 +2827,15 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start1.CREATE_TIME = null;
|
start1.CREATE_TIME = null;
|
||||||
start1.STATUS = 0;
|
start1.STATUS = 0;
|
||||||
rectifyNoticeLog.logList.Add(start1);
|
rectifyNoticeLog.logList.Add(start1);
|
||||||
|
OperateLogList start2 = new OperateLogList();
|
||||||
|
start2.ID = null;
|
||||||
|
start2.CODE = "SK020_SHOWPRINT";
|
||||||
|
start2.USER_NAME = "整改责任人";
|
||||||
|
start2.NAME = "隐患整改通知归档";
|
||||||
|
start2.DEAL_DATE = null;
|
||||||
|
start2.CREATE_TIME = null;
|
||||||
|
start2.STATUS = 0;
|
||||||
|
rectifyNoticeLog.logList.Add(start2);
|
||||||
result.Add(rectifyNoticeLog);
|
result.Add(rectifyNoticeLog);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
@ -2644,13 +2942,39 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//归档
|
||||||
|
var rectifyRecord= rectifyRecords.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID);
|
||||||
|
if (rectifyRecord != null && rectifyRecord.STATUS == PFStandardStatus.Archived)
|
||||||
|
{
|
||||||
|
OperateLogList start1 = new OperateLogList();
|
||||||
|
start1.ID = temp1.SOURCE_DATA_ID;
|
||||||
|
start1.CODE = "SK022_SHOWPRINT";
|
||||||
|
start1.USER_NAME = temp1.USER_NAME;
|
||||||
|
start1.NAME = "隐患整改记录归档";
|
||||||
|
start1.DEAL_DATE = rectifyRecord.MODIFY_TIME;
|
||||||
|
start1.CREATE_TIME = rectifyRecord.CREATE_TIME;
|
||||||
|
start1.STATUS = 5;
|
||||||
|
refRecordLog.logList.Add(start1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OperateLogList start1 = new OperateLogList();
|
||||||
|
start1.ID = temp1.SOURCE_DATA_ID;
|
||||||
|
start1.CODE = "SK022_SHOWPRINT";
|
||||||
|
start1.USER_NAME = temp1.USER_NAME;
|
||||||
|
start1.NAME = "隐患整改记录归档";
|
||||||
|
start1.DEAL_DATE = rectifyRecord.MODIFY_TIME;
|
||||||
|
start1.CREATE_TIME = rectifyRecord.CREATE_TIME;
|
||||||
|
start1.STATUS = 0;
|
||||||
|
refRecordLog.logList.Add(start1);
|
||||||
|
}
|
||||||
result.Add(refRecordLog);
|
result.Add(refRecordLog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OperateLog refRecordLog = new OperateLog();
|
OperateLog refRecordLog = new OperateLog();
|
||||||
refRecordLog.FORM_NAME = "隐患整改通知";
|
refRecordLog.FORM_NAME = "隐患整改记录";
|
||||||
refRecordLog.logList = new List<OperateLogList>();
|
refRecordLog.logList = new List<OperateLogList>();
|
||||||
OperateLogList start = new OperateLogList();
|
OperateLogList start = new OperateLogList();
|
||||||
start.ID = null;
|
start.ID = null;
|
||||||
@ -2679,6 +3003,15 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start2.CREATE_TIME = null;
|
start2.CREATE_TIME = null;
|
||||||
start2.STATUS = 0;
|
start2.STATUS = 0;
|
||||||
refRecordLog.logList.Add(start2);
|
refRecordLog.logList.Add(start2);
|
||||||
|
OperateLogList start3 = new OperateLogList();
|
||||||
|
start3.ID = null;
|
||||||
|
start3.CODE = "SK022_SHOWPRINT";
|
||||||
|
start3.USER_NAME = "审批人";
|
||||||
|
start3.NAME = "隐患整改记录归档";
|
||||||
|
start3.DEAL_DATE = null;
|
||||||
|
start3.CREATE_TIME = null;
|
||||||
|
start3.STATUS = 0;
|
||||||
|
refRecordLog.logList.Add(start3);
|
||||||
result.Add(refRecordLog);
|
result.Add(refRecordLog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2714,6 +3047,15 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
start2.CREATE_TIME = null;
|
start2.CREATE_TIME = null;
|
||||||
start2.STATUS = 0;
|
start2.STATUS = 0;
|
||||||
refRecordLog.logList.Add(start2);
|
refRecordLog.logList.Add(start2);
|
||||||
|
OperateLogList start3 = new OperateLogList();
|
||||||
|
start3.ID = null;
|
||||||
|
start3.CODE = "SK022_SHOWPRINT";
|
||||||
|
start3.USER_NAME = "审批人";
|
||||||
|
start3.NAME = "隐患整改记录归档";
|
||||||
|
start3.DEAL_DATE = null;
|
||||||
|
start3.CREATE_TIME = null;
|
||||||
|
start3.STATUS = 0;
|
||||||
|
refRecordLog.logList.Add(start3);
|
||||||
result.Add(refRecordLog);
|
result.Add(refRecordLog);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -17,7 +17,14 @@ using System.Linq.Expressions;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace APT.SK.WebApi.Controllers.Api
|
namespace APT.SK.WebApi.Controllers.Api
|
||||||
{
|
{
|
||||||
|
public class GetAll
|
||||||
|
{
|
||||||
|
public T_SK_SECURITY_INSPECTION_RECORD_SUMMARY data1 { get; set; }
|
||||||
|
public T_SK_HIDDEN_DANGER_REPORT data2 { get; set; }
|
||||||
|
public List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE> data3 { get; set; }
|
||||||
|
public List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD> data4 { get; set; }
|
||||||
|
}
|
||||||
[Route("api/SK/SKSecurityInspectionRecordSummary")]
|
[Route("api/SK/SKSecurityInspectionRecordSummary")]
|
||||||
public partial class SecurityInspectionRecordSummaryController : AuthorizeApiController<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>
|
public partial class SecurityInspectionRecordSummaryController : AuthorizeApiController<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>
|
||||||
{
|
{
|
||||||
@ -949,7 +956,80 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获得检查汇总,隐患上报,整改通知,整改记录
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="filter">过滤实体</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("SKGetAll")]
|
||||||
|
public JsonActionResult<GetAll> SKGetAll([FromBody] KeywordFilter filter)
|
||||||
|
{
|
||||||
|
|
||||||
|
var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString();
|
||||||
|
if (string.IsNullOrEmpty(id))
|
||||||
|
this.ThrowError("060010");
|
||||||
|
filter.IgnoreDataRule = true;
|
||||||
|
var newfilter = new BaseFilter(filter.OrgId);
|
||||||
|
newfilter.IgnoreDataRule = true;
|
||||||
|
var result = new JsonActionResult<GetAll>();
|
||||||
|
result.Data = new GetAll();
|
||||||
|
var ids = new List<Guid>();
|
||||||
|
result.Data.data1 = this.GetEntity<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>(id, new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType","Nav_ProductionUnit",
|
||||||
|
"Nav_CheckRecordFiles.Nav_ImgFile"});
|
||||||
|
if (result.Data.data1 != null)
|
||||||
|
{
|
||||||
|
var details = this.GetEntities<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL>(t => t.SECURITY_INSPECTION_RECORD_SUMMARY_ID == Guid.Parse(id), new BaseFilter(filter.OrgId), "Nav_RiskArea", "Nav_Contents", "Nav_Question", "Nav_CheckRecordDetailBasics.Nav_Law", "Nav_CheckRecordDetailFiles.Nav_ImgFile");
|
||||||
|
if (details.Any())
|
||||||
|
{
|
||||||
|
var detailIds = details.Select(t => t.ID).ToList();
|
||||||
|
var users = this.GetEntities<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_USER>(t => detailIds.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_User.Nav_UserSignFiles.Nav_ImgFile");
|
||||||
|
foreach (var detail in details)
|
||||||
|
{
|
||||||
|
var userTemps = users.Where(t => t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID == detail.ID).ToList();
|
||||||
|
detail.Nav_CheckRecordDetailUsers = userTemps.OrderByDescending(t => t.ISMAINCHECK).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//有隐患的排前面
|
||||||
|
var tempsYes = details.Where(t => t.CHECK_RESULT == SKCheckResultEnum.Yes).OrderBy(m => m.RISK_AREA_ID).ToList();
|
||||||
|
var tempsNo = details.Where(t => t.CHECK_RESULT != SKCheckResultEnum.Yes).OrderBy(m => m.RISK_AREA_ID).ToList();
|
||||||
|
tempsYes.AddRange(tempsNo);
|
||||||
|
result.Data.data1.Nav_CheckRecordDetails = tempsYes.OrderByDescending(n => (int)n.MARK).ToList();
|
||||||
|
//隐患上报
|
||||||
|
result.Data.data2 = this.GetEntity<T_SK_HIDDEN_DANGER_REPORT>(t => t.SECURITY_INSPECTION_RECORD_SUMMARY_ID == Guid.Parse(id), new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType","Nav_ProductionUnit",
|
||||||
|
"Nav_ReportFiles.Nav_ImgFile"});
|
||||||
|
if (result.Data.data2 != null)
|
||||||
|
{
|
||||||
|
result.Data.data4 = new List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD>();
|
||||||
|
var detail2s = this.GetEntities<T_SK_HIDDEN_DANGER_REPORT_DETAIL>(t => t.HIDDEN_DANGER_REPORT_ID == result.Data.data2.ID, new BaseFilter(filter.OrgId), "Nav_RiskArea", "Nav_Contents", "Nav_Question", "Nav_RecitifyUser.Nav_UserSignFiles", "Nav_ReportDetailBasics.Nav_Law", "Nav_ReportDetailFiles.Nav_ImgFile");
|
||||||
|
result.Data.data2.Nav_ReportDetails = detail2s.OrderBy(m => m.RISK_AREA_ID).ToList();
|
||||||
|
//整改通知
|
||||||
|
result.Data.data3 = this.GetEntities<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE>(t => t.HIDDEN_DANGER_REPORT_ID == result.Data.data2.ID, newfilter, new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType","Nav_ProductionUnit",
|
||||||
|
"Nav_RectifyFiles.Nav_ImgFile"}).ToList();
|
||||||
|
if (result.Data.data3 != null && result.Data.data3.Any())
|
||||||
|
{
|
||||||
|
var data3Ids = result.Data.data3.Select(t => t.ID).ToList();
|
||||||
|
ids.AddRange(data3Ids);
|
||||||
|
var detail3s = this.GetEntities<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL>(t => data3Ids.Contains(t.HIDDEN_DANGER_RECTIFY_NOTICE_ID), new BaseFilter(filter.OrgId), "Nav_RiskArea", "Nav_Contents", "Nav_Question", "Nav_RecitifyUser", "Nav_ImplementUser", "Nav_AcceptUser", "Nav_RectifyDetailFiles.Nav_ImgFile", "Nav_RectifyDetailBasics.Nav_Law");
|
||||||
|
foreach (var de in result.Data.data3)
|
||||||
|
{
|
||||||
|
de.Nav_RectifyDetails = detail3s.Where(t => t.HIDDEN_DANGER_RECTIFY_NOTICE_ID == de.ID).OrderBy(m => m.RISK_AREA_ID).ToList();
|
||||||
|
}
|
||||||
|
if (ids.Any())
|
||||||
|
{
|
||||||
|
var data4 = this.GetEntities<T_SK_HIDDEN_DANGER_RECTIFY_RECORD>(t => ids.Contains((Guid)t.HIDDEN_DANGER_RECTIFY_NOTICE_ID) && t.HIDDEN_DANGER_RECTIFY_NOTICE_ID != null, newfilter, new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType","Nav_RiskArea","Nav_Contents","Nav_Question","Nav_ProductionUnit",
|
||||||
|
"Nav_RecitifyUser.Nav_Department","Nav_RecitifyUser.Nav_UserSignFiles.Nav_ImgFile","Nav_ImplementUser.Nav_UserSignFiles.Nav_ImgFile","Nav_AcceptUser.Nav_UserSignFiles","Nav_AcceptUser","Nav_RectifyPhotoas.Nav_ImgFile","Nav_RectifyPhotobs.Nav_ImgFile","Nav_RectifyFiles.Nav_ImgFile","Nav_RectifyBasics.Nav_Law"}).ToList();
|
||||||
|
result.Data.data4.AddRange(data4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var data4Temp = this.GetEntities<T_SK_HIDDEN_DANGER_RECTIFY_RECORD>(t => t.HIDDEN_DANGER_REPORT_ID == result.Data.data2.ID, newfilter, new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType","Nav_RiskArea","Nav_Contents","Nav_Question","Nav_ProductionUnit",
|
||||||
|
"Nav_RecitifyUser.Nav_Department","Nav_RecitifyUser.Nav_UserSignFiles.Nav_ImgFile","Nav_ImplementUser.Nav_UserSignFiles.Nav_ImgFile","Nav_AcceptUser.Nav_UserSignFiles","Nav_AcceptUser","Nav_RectifyPhotoas.Nav_ImgFile","Nav_RectifyPhotobs.Nav_ImgFile","Nav_RectifyFiles.Nav_ImgFile","Nav_RectifyBasics.Nav_Law"}).ToList();
|
||||||
|
result.Data.data4.AddRange(data4Temp);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user