901 lines
45 KiB
C#
901 lines
45 KiB
C#
|
|
using APT.BaseData.Domain.Entities;
|
|||
|
|
using APT.BaseData.Domain.Entities.FM;
|
|||
|
|
using APT.BaseData.Domain.Enums.PF;
|
|||
|
|
using APT.BaseData.Domain.IServices;
|
|||
|
|
using APT.BaseData.Domain.IServices.FM;
|
|||
|
|
using APT.Infrastructure.Core;
|
|||
|
|
using APT.MS.Domain.Entities.FO;
|
|||
|
|
using APT.MS.Domain.Entities.LR;
|
|||
|
|
using APT.MS.Domain.Entities.WB;
|
|||
|
|
using APT.MS.Domain.Enums;
|
|||
|
|
using APT.Utility;
|
|||
|
|
using Castle.Core.Internal;
|
|||
|
|
using InfluxData.Net.InfluxDb.Models.Responses;
|
|||
|
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
|
using Microsoft.CodeAnalysis.Differencing;
|
|||
|
|
using NPOI.SS.Formula.Functions;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
|
|||
|
|
namespace APT.SC.WebApi.Controllers.Api.WB
|
|||
|
|
{
|
|||
|
|
[Route("api/WB/WBDangerousJob")]
|
|||
|
|
public class WBDangerousJobController : AuthorizeApiController<T_WB_DANGEROUS_JOB>
|
|||
|
|
{
|
|||
|
|
IFMNotificationTaskService NotificationTaskService { get; set; }
|
|||
|
|
IFMFlowPermitService MFlowPermitService { get; set; }
|
|||
|
|
IPFApproveCallBackService ApproveCallBackService { get; set; }
|
|||
|
|
public WBDangerousJobController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService)
|
|||
|
|
{
|
|||
|
|
NotificationTaskService = notificationTaskService;
|
|||
|
|
MFlowPermitService = mFlowPermitService;
|
|||
|
|
ApproveCallBackService = approveCallBackService;
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 保存
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="id"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("FullUpdate")]
|
|||
|
|
public JsonActionResult<bool> FullUpdate([FromBody] T_WB_DANGEROUS_JOB entity)
|
|||
|
|
{
|
|||
|
|
return SafeExecute(() =>
|
|||
|
|
{
|
|||
|
|
//T_FM_NOTIFICATION_TASK finishNotice = null;
|
|||
|
|
//T_FM_NOTIFICATION_TASK sendNotice = null;
|
|||
|
|
//T_WB_DANGEROUS_JOB_AUDIT newAudit = null;
|
|||
|
|
var Nav_Users = entity.Nav_Users;
|
|||
|
|
var Nav_Files = entity.Nav_Files;
|
|||
|
|
var Nav_Details = entity.Nav_Detail;
|
|||
|
|
|
|||
|
|
entity.Nav_Users = null;
|
|||
|
|
entity.Nav_Files = null;
|
|||
|
|
entity.Nav_Detail = null;
|
|||
|
|
T_PF_APPROVE approve = null;
|
|||
|
|
ICollection<T_PF_APPROVE_DETAIL> listApproveDetail = null;
|
|||
|
|
T_FM_NOTIFICATION_TASK finishTask = null;
|
|||
|
|
T_FM_NOTIFICATION_TASK nextTask = null;
|
|||
|
|
string CALLBACK_INTERFACE = "";
|
|||
|
|
List<string> listDATA_ID = new List<string>();
|
|||
|
|
if (entity.USER_ID == Guid.Empty)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请选择现场监护人!");
|
|||
|
|
}
|
|||
|
|
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
|
|||
|
|
{
|
|||
|
|
//Guid userId = Guid.Empty;
|
|||
|
|
//string userName = "";
|
|||
|
|
if (entity.STATUS == PFStandardStatus.Rejected)
|
|||
|
|
{
|
|||
|
|
var lastAudit = GetEntities<T_WB_DANGEROUS_JOB_AUDIT>(t => t.PARENT_ID == entity.ID, new BaseFilter(entity.ORG_ID));
|
|||
|
|
var lastIds = lastAudit.Select(t => t.ID).ToList();
|
|||
|
|
BantchDeleteEntity<T_WB_DANGEROUS_JOB_AUDIT>(lastIds);
|
|||
|
|
}
|
|||
|
|
if (!entity.START_TIME.HasValue)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请选择作业开始时间!");
|
|||
|
|
}
|
|||
|
|
if (!entity.END_TIME.HasValue)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请选择作业结束时间!");
|
|||
|
|
}
|
|||
|
|
if (entity.START_TIME.Value > entity.END_TIME.Value)
|
|||
|
|
{
|
|||
|
|
throw new Exception("作业开始时间不能大于作业结束时间!");
|
|||
|
|
}
|
|||
|
|
if (entity.START_TIME.Value < DateTime.Now.AddMinutes(1))
|
|||
|
|
{
|
|||
|
|
throw new Exception("作业开始时间必须大于当前时间!");
|
|||
|
|
}
|
|||
|
|
if (Nav_Users == null || !Nav_Users.Any())
|
|||
|
|
{
|
|||
|
|
throw new Exception("请选择作业人员!");
|
|||
|
|
}
|
|||
|
|
//public Guid USER_ID { get; set; }
|
|||
|
|
if (entity.USER_ID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
var checkU = Nav_Users.Where(e => e.USER_ID == entity.USER_ID);
|
|||
|
|
if (checkU != null && checkU.Any())
|
|||
|
|
{
|
|||
|
|
throw new Exception("现场监护人不能是作业人员!");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//newAudit = new T_WB_DANGEROUS_JOB_AUDIT();
|
|||
|
|
//newAudit.ID = Guid.NewGuid();
|
|||
|
|
//newAudit.ORG_ID = entity.ORG_ID;
|
|||
|
|
//newAudit.PARENT_ID = entity.ID;
|
|||
|
|
foreach (var item in Nav_Details)
|
|||
|
|
{
|
|||
|
|
item.PARENT_ID = entity.ID;
|
|||
|
|
item.ORG_ID = entity.ORG_ID;
|
|||
|
|
}
|
|||
|
|
foreach (var item in Nav_Users)
|
|||
|
|
{
|
|||
|
|
item.Nav_User = null;
|
|||
|
|
}
|
|||
|
|
var project = GetEntity<T_WB_REGISTER>(t => t.PROJECT_ID == entity.PROJECT_ID, "Nav_Item2");
|
|||
|
|
var firstAudit = project.Nav_Item2.FirstOrDefault(t => t.WORKTYPE == WORKTYPE.现场负责人);
|
|||
|
|
if (firstAudit == null)
|
|||
|
|
{
|
|||
|
|
throw new Exception("该单位人员信息未配置工种为【现场负责人】的人员!");
|
|||
|
|
}
|
|||
|
|
entity.STATUS = PFStandardStatus.Approving;
|
|||
|
|
//var user = GetEntity<T_FM_USER>(t => t.CODE == firstAudit.PHONE);
|
|||
|
|
//if (user == null)
|
|||
|
|
//{
|
|||
|
|
// user = GetEntity<T_FM_USER>(t => t.NAME == firstAudit.NAME);
|
|||
|
|
//}
|
|||
|
|
//userId = user.ID;
|
|||
|
|
//userName = user.NAME;
|
|||
|
|
//newAudit.AUDIT_STATUS = 0;
|
|||
|
|
//newAudit.USER_ID = userId;
|
|||
|
|
//sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业-现场负责人审批", entity.ID, entity.ORG_ID, userId, userName, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB013_SHOWPRINT");
|
|||
|
|
//if (entity.TaskID != Guid.Empty)
|
|||
|
|
//{
|
|||
|
|
// finishNotice = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID);
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
var projet = GetEntity<T_WB_PROJECT_INPUT>(entity.PROJECT_ID, "Nav_User", "Nav_SceneUser");
|
|||
|
|
if (projet.USER_ID == Guid.Empty)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请完善该项目【建设项目负责人】");
|
|||
|
|
}
|
|||
|
|
if (projet.SCENE_USER_ID == Guid.Empty)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请完善该项目【建设项目现场负责人】");
|
|||
|
|
}
|
|||
|
|
var register = GetEntity<T_WB_REGISTER>(e => e.PROJECT_ID == entity.PROJECT_ID);
|
|||
|
|
var listRegister2 = GetEntities<T_WB_REGISTER_2>(e => e.PARENT_ID == register.ID && e.IS_LOGIN && (e.WORKTYPE == WORKTYPE.现场负责人 || e.WORKTYPE == WORKTYPE.项目监理), null, null);
|
|||
|
|
if (listRegister2 == null)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请完善【外包单位信息登记表】中对应改项目的现场负责人与项目监理");
|
|||
|
|
}
|
|||
|
|
var listPhone1 = listRegister2.Where(e => e.WORKTYPE == WORKTYPE.现场负责人).Select(e => e.PHONE);
|
|||
|
|
if (listPhone1 == null || !listPhone1.Any() || listPhone1.Count() < 1)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请完善【外包单位信息登记表】工种为【现场负责人】信息");
|
|||
|
|
}
|
|||
|
|
var listPhone3 = listRegister2.Where(e => e.WORKTYPE == WORKTYPE.项目监理).Select(e => e.PHONE);
|
|||
|
|
//if (listPhone3 == null || !listPhone3.Any() || listPhone3.Count() < 1)
|
|||
|
|
//{
|
|||
|
|
// throw new Exception("请完善【外包单位信息登记表】工种为【项目监理】信息");
|
|||
|
|
//}
|
|||
|
|
var listPhone = listRegister2.Select(e => e.PHONE);
|
|||
|
|
var listUser = GetEntities<T_FM_USER>(e => e.PROJECT_ID == entity.PROJECT_ID && listPhone.Contains(e.PHONE), null, null);
|
|||
|
|
Dictionary<int, T_FM_USER> dicApproveUser = new Dictionary<int, T_FM_USER>();
|
|||
|
|
|
|||
|
|
var User1 = listUser.FirstOrDefault(e => listPhone1.Contains(e.PHONE) || listPhone1.Contains(e.CODE) && e.ENABLE_STATUS == 0);
|
|||
|
|
if (User1 == null)
|
|||
|
|
{
|
|||
|
|
throw new Exception("用户列表信息中该项目工种为【现场负责人】的信息缺失");
|
|||
|
|
}
|
|||
|
|
T_FM_USER User3 = null;
|
|||
|
|
if (listPhone3 != null)
|
|||
|
|
{
|
|||
|
|
User3 = listUser.FirstOrDefault(e => listPhone3.Contains(e.PHONE) || listPhone3.Contains(e.CODE) && e.ENABLE_STATUS == 0);
|
|||
|
|
//if (User3 == null)
|
|||
|
|
//{
|
|||
|
|
// throw new Exception("用户列表信息中该项目工种为【现场负责人】的信息缺失");
|
|||
|
|
//}
|
|||
|
|
}
|
|||
|
|
dicApproveUser.Add(1, User1);//外包单位现场负责人
|
|||
|
|
if (User3 != null)
|
|||
|
|
{
|
|||
|
|
dicApproveUser.Add(2, User3);//外包工程项目监理
|
|||
|
|
}
|
|||
|
|
dicApproveUser.Add(3, projet.Nav_SceneUser);//建设项目现场负责人
|
|||
|
|
dicApproveUser.Add(4, projet.Nav_User);//建设项目负责人
|
|||
|
|
string Msg = "";
|
|||
|
|
approve = MFlowPermitService.GetApproveInfo("WB013", null, entity.ID, "WB013_SHOWPRINT", entity.TaskID, "WB013_SHOWPRINT", null, dicApproveUser, null, "", ref Msg, ref finishTask, ref nextTask, ref CALLBACK_INTERFACE, ref listDATA_ID);
|
|||
|
|
if (Msg != null && !string.IsNullOrEmpty(Msg))
|
|||
|
|
{
|
|||
|
|
throw new Exception(Msg);//如果有问题 进行提示
|
|||
|
|
}
|
|||
|
|
//listApproveDetail = approve.Nav_ApproveDetails;
|
|||
|
|
listApproveDetail = approve.Nav_ApproveDetails.Where(e => e.APPROVE_USER_ID.HasValue && e.APPROVE_USER_ID != Guid.Empty).ToList();
|
|||
|
|
approve.Nav_ApproveDetails = null;
|
|||
|
|
approve.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
UpdateEntity(entity);
|
|||
|
|
if (Nav_Users != null && Nav_Users.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Nav_Users);
|
|||
|
|
if (Nav_Files != null && Nav_Files.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Nav_Files);
|
|||
|
|
if (Nav_Details != null && Nav_Details.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Nav_Details);
|
|||
|
|
//if (sendNotice != null)
|
|||
|
|
// AddEntityNoCommit(sendNotice);
|
|||
|
|
//if (newAudit != null)
|
|||
|
|
// AddEntityNoCommit(newAudit);
|
|||
|
|
//if (finishNotice != null)
|
|||
|
|
// UpdateEntityNoCommit(finishNotice);
|
|||
|
|
if (approve != null)
|
|||
|
|
UpdateEntity(approve);
|
|||
|
|
if (listApproveDetail != null && listApproveDetail.Any())
|
|||
|
|
BantchSaveEntityNoCommit(listApproveDetail);
|
|||
|
|
if (finishTask != null)
|
|||
|
|
UpdateEntity(finishTask);
|
|||
|
|
if (nextTask != null)
|
|||
|
|
UpdateEntity(nextTask);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
//执行信息
|
|||
|
|
if (!string.IsNullOrEmpty(CALLBACK_INTERFACE))
|
|||
|
|
{
|
|||
|
|
if (CALLBACK_INTERFACE.EndsWith("New"))
|
|||
|
|
{
|
|||
|
|
this.UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
ApproveCallBackService.CallBackNew(CALLBACK_INTERFACE, approve, false);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
this.UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
ApproveCallBackService.CallBack(CALLBACK_INTERFACE, listDATA_ID);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
///// <summary>
|
|||
|
|
///// 签到
|
|||
|
|
///// </summary>
|
|||
|
|
///// <param name="pageFilter"></param>
|
|||
|
|
///// <returns></returns>
|
|||
|
|
//[HttpPost, Route("UserDisAgree")]
|
|||
|
|
//public JsonActionResult<bool> UserDisAgree([FromBody] KeywordFilter filter)
|
|||
|
|
//{
|
|||
|
|
// return SafeExecute<bool>(() =>
|
|||
|
|
// {
|
|||
|
|
// var id = Guid.Parse(filter.Parameter1);
|
|||
|
|
// var taskID = Guid.Parse(filter.Parameter2);
|
|||
|
|
// var orgId = Guid.Parse(filter.Parameter3);
|
|||
|
|
// var opinion = filter.Parameter4;
|
|||
|
|
|
|||
|
|
// if (string.IsNullOrEmpty(opinion))
|
|||
|
|
// {
|
|||
|
|
// throw new Exception("请填写理由!");
|
|||
|
|
// }
|
|||
|
|
// var dangerousJob = GetEntity<T_WB_DANGEROUS_JOB>(t => t.ID == id, "Nav_Audit");
|
|||
|
|
// dangerousJob.STATUS = PFStandardStatus.Rejected;
|
|||
|
|
// var currUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
|||
|
|
// var currAudit = dangerousJob.Nav_Audit.FirstOrDefault(t => t.USER_ID == currUser);
|
|||
|
|
// currAudit.AUDIT_DATE = DateTime.Now;
|
|||
|
|
// currAudit.ISORNOT = ISORNOT.否;
|
|||
|
|
// currAudit.AUDIT_OPINION = opinion;
|
|||
|
|
// var finishTask = NotificationTaskService.FOGetTaskFinishModel(taskID, id);
|
|||
|
|
|
|||
|
|
// var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业-审批驳回", id, orgId, (Guid)dangerousJob.MODIFIER_ID, GetEntity<T_FM_USER>(t => t.ID == dangerousJob.MODIFIER_ID).NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB013");
|
|||
|
|
// UnifiedCommit(() =>
|
|||
|
|
// {
|
|||
|
|
// if (sendNotice != null)
|
|||
|
|
// AddEntityNoCommit(sendNotice);
|
|||
|
|
// if (finishTask != null)
|
|||
|
|
// UpdateEntityNoCommit(finishTask);
|
|||
|
|
// if (dangerousJob != null)
|
|||
|
|
// UpdateEntityNoCommit(dangerousJob);
|
|||
|
|
// if (currAudit != null)
|
|||
|
|
// UpdateEntityNoCommit(currAudit);
|
|||
|
|
|
|||
|
|
// });
|
|||
|
|
// return true;
|
|||
|
|
// });
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 危险作业申请审批驳回
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="model"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("UserDisAgree")]
|
|||
|
|
public JsonActionResult<bool> RejectUpdate([FromBody] T_PF_APPROVE model)
|
|||
|
|
{
|
|||
|
|
return SafeExecute(() =>
|
|||
|
|
{
|
|||
|
|
//公共 获取审批流信息
|
|||
|
|
T_PF_APPROVE modelApp = null;
|
|||
|
|
List<T_PF_APPROVE_DETAIL> listAppDetail = null;
|
|||
|
|
T_FM_NOTIFICATION_TASK taskFinish = null;
|
|||
|
|
string Msg = string.Empty;
|
|||
|
|
bool ResultGetInfo = ApproveCallBackService.GetApproject(model, ref modelApp, ref listAppDetail, ref taskFinish, ref Msg);
|
|||
|
|
if (!ResultGetInfo)
|
|||
|
|
throw new Exception("驳回失败!");
|
|||
|
|
if (modelApp == null || listAppDetail == null)
|
|||
|
|
throw new Exception("获取驳回信息失败!");
|
|||
|
|
|
|||
|
|
var dangerousJob = GetEntity<T_WB_DANGEROUS_JOB>(model.DATA_ID, null);
|
|||
|
|
dangerousJob.STATUS = PFStandardStatus.Rejected;
|
|||
|
|
var currUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
|||
|
|
var UackUserID = Guid.Empty;
|
|||
|
|
if (model.CREATER_ID.HasValue)
|
|||
|
|
{
|
|||
|
|
UackUserID = model.CREATER_ID.Value;
|
|||
|
|
}
|
|||
|
|
if (UackUserID == Guid.Empty && dangerousJob.MODIFIER_ID.HasValue)
|
|||
|
|
{
|
|||
|
|
UackUserID = dangerousJob.MODIFIER_ID.Value;
|
|||
|
|
}
|
|||
|
|
if (UackUserID == Guid.Empty && dangerousJob.CREATER_ID.HasValue)
|
|||
|
|
{
|
|||
|
|
UackUserID = dangerousJob.CREATER_ID.Value;
|
|||
|
|
}
|
|||
|
|
if (UackUserID == Guid.Empty)
|
|||
|
|
{
|
|||
|
|
throw new Exception("获取危险作业申请人信息失败!");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业-审批驳回", dangerousJob.ID, dangerousJob.ORG_ID, UackUserID, GetEntity<T_FM_USER>(UackUserID).NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB013");
|
|||
|
|
|
|||
|
|
UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
if (dangerousJob != null)
|
|||
|
|
UpdateEntityNoCommit(dangerousJob);
|
|||
|
|
if (sendNotice != null)
|
|||
|
|
AddEntityNoCommit(sendNotice);
|
|||
|
|
|
|||
|
|
if (modelApp != null)
|
|||
|
|
UpdateEntityNoCommit(modelApp);
|
|||
|
|
if (listAppDetail != null && listAppDetail.Count > 0)
|
|||
|
|
BantchUpdateEntityNoCommit(listAppDetail);
|
|||
|
|
if (taskFinish != null)
|
|||
|
|
UpdateEntityNoCommit(taskFinish);
|
|||
|
|
});
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获得单条实体数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filter">过滤实体</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("GetApprove")]
|
|||
|
|
public JsonActionResult<T_WB_DANGEROUS_JOB> GetApprove([FromBody] KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
return SafeExecute(() =>
|
|||
|
|
{
|
|||
|
|
filter.IgnoreDataRule = true;
|
|||
|
|
var result = GetEntity<T_WB_DANGEROUS_JOB>(null, filter, null);
|
|||
|
|
IEnumerable<T_PF_APPROVE> approve = GetEntities<T_PF_APPROVE>(e => e.DATA_ID == result.ID, null, "Nav_ApproveDetails.Nav_ApproveUser");
|
|||
|
|
if (approve != null && approve.Any())
|
|||
|
|
{
|
|||
|
|
result.Nav_Approve = approve.OrderByDescending(e => e.CREATE_TIME).ToList()[0];
|
|||
|
|
}
|
|||
|
|
return result;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 保存
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="id"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("FullUpdateDisclose")]
|
|||
|
|
public JsonActionResult<bool> FullUpdateDisclose([FromBody] T_WB_DANGEROUS_JOB entity)
|
|||
|
|
{
|
|||
|
|
return SafeExecute(() =>
|
|||
|
|
{
|
|||
|
|
T_FM_NOTIFICATION_TASK finishNotice = null;
|
|||
|
|
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
|||
|
|
var Nav_Users = entity.Nav_DisCloseUsers;
|
|||
|
|
var Nav_Files = entity.Nav_DisCloseFiles;
|
|||
|
|
var Nav_DisCloseDetails = entity.Nav_DisCloseDetails;
|
|||
|
|
|
|||
|
|
entity.Nav_Users = null;
|
|||
|
|
entity.Nav_Files = null;
|
|||
|
|
entity.Nav_DisCloseDetails = null;
|
|||
|
|
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
|
|||
|
|
{
|
|||
|
|
if (entity.TaskID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
finishNotice = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID, "WB019_SHOWPRINT");
|
|||
|
|
}
|
|||
|
|
if (entity.START_TIME.HasValue && entity.START_TIME.Value < DateTime.Now)
|
|||
|
|
{
|
|||
|
|
T_FM_NOTIFICATION_TASK sendNotice = null;
|
|||
|
|
entity.STATUS = PFStandardStatus.Close;
|
|||
|
|
string userName = "";
|
|||
|
|
if (entity.CREATER_ID.HasValue)
|
|||
|
|
{
|
|||
|
|
var userId = entity.CREATER_ID.Value;
|
|||
|
|
userName = GetEntity<T_FM_USER>(userId)?.NAME;
|
|||
|
|
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("危险作业申请安全技术交底已经超期,请重新发起", Guid.Empty, entity.ORG_ID, userId, userName, DateTime.Now, DateTime.Now.AddDays(1), 2, "");
|
|||
|
|
}
|
|||
|
|
if (finishNotice != null)
|
|||
|
|
{
|
|||
|
|
UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
UpdateEntityNoCommit(finishNotice);
|
|||
|
|
if (sendNotice != null)
|
|||
|
|
UpdateEntityNoCommit(sendNotice);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
throw new Exception("该危险作业申请已过期,请沟通" + (string.IsNullOrEmpty(userName) ? "" : "【" + userName + "】") + "重新申请!");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
var currUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
|||
|
|
entity.DISCLOSE_STATUS = PFStandardStatus.Sign;
|
|||
|
|
if (entity.DISCLOSE_USER_ID == currUser)
|
|||
|
|
{
|
|||
|
|
entity.DEAL_STATUS = 1;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业-交底", entity.ID, entity.ORG_ID, (Guid)entity.DISCLOSE_USER_ID, GetEntity<T_FM_USER>(t => t.ID == entity.DISCLOSE_USER_ID).NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB019_SHOWPRINT"));
|
|||
|
|
}
|
|||
|
|
foreach (var user in Nav_Users)
|
|||
|
|
{
|
|||
|
|
sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业-交底", entity.ID, entity.ORG_ID, (Guid)user.USER_ID, GetEntity<T_FM_USER>(t => t.ID == user.USER_ID).NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB019_SHOWPRINT"));
|
|||
|
|
if (user.USER_ID.HasValue && user.USER_ID == currUser)
|
|||
|
|
{
|
|||
|
|
user.DEAL_STATUS = 1;
|
|||
|
|
user.MODIFY_TIME = DateTime.Now;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
sendNotices.ForEach(o =>
|
|||
|
|
{
|
|||
|
|
if (o.USER_ID == currUser.Value)
|
|||
|
|
{
|
|||
|
|
o.NOTICE_STATUS = 1;
|
|||
|
|
o.TASK_DT = DateTime.Now;
|
|||
|
|
o.MODIFIER_ID = currUser;
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
foreach (var user in Nav_Users)
|
|||
|
|
{
|
|||
|
|
user.Nav_User = null;
|
|||
|
|
}
|
|||
|
|
UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
UpdateEntityNoCommit(entity);
|
|||
|
|
if (Nav_Users != null && Nav_Users.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Nav_Users);
|
|||
|
|
if (Nav_Files != null && Nav_Files.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Nav_Files);
|
|||
|
|
if (Nav_DisCloseDetails != null && Nav_DisCloseDetails.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Nav_DisCloseDetails);
|
|||
|
|
if (sendNotices != null && sendNotices.Any())
|
|||
|
|
BantchAddEntityNoCommit(sendNotices);
|
|||
|
|
if (finishNotice != null)
|
|||
|
|
UpdateEntityNoCommit(finishNotice);
|
|||
|
|
});
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 签到
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filter"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("discloseSign")]
|
|||
|
|
public JsonActionResult<bool> discloseSign([FromBody] KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
return SafeExecute<bool>(() =>
|
|||
|
|
{
|
|||
|
|
var id = Guid.Parse(filter.Parameter1);
|
|||
|
|
var taskID = Guid.Parse(filter.Parameter2);
|
|||
|
|
var userID = Guid.Parse(filter.Parameter3);
|
|||
|
|
var orgId = filter.GetOrgId();
|
|||
|
|
var sendUserID = Guid.Empty;
|
|||
|
|
var sendUserNAME = "";
|
|||
|
|
var users = GetEntities<T_WB_DANGEROUS_JOB_DISCLOSE_USER>(t => t.PARENT_ID == id, new BaseFilter(orgId));
|
|||
|
|
var currUser = users.FirstOrDefault(t => t.USER_ID == userID);
|
|||
|
|
T_WB_DANGEROUS_JOB model = null;
|
|||
|
|
T_FM_NOTIFICATION_TASK finishTask = null;
|
|||
|
|
T_FM_NOTIFICATION_TASK sendNotice = null;
|
|||
|
|
if (currUser == null)
|
|||
|
|
{
|
|||
|
|
model = GetEntity<T_WB_DANGEROUS_JOB>(id, "Nav_Project.Nav_SceneUser");
|
|||
|
|
model.DEAL_STATUS = 1;
|
|||
|
|
model.MODIFY_TIME = DateTime.Now;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
currUser.DEAL_STATUS = 1;
|
|||
|
|
currUser.MODIFY_TIME = DateTime.Now;
|
|||
|
|
}
|
|||
|
|
var todoCount = users.Count(t => t.DEAL_STATUS == 0);
|
|||
|
|
if (todoCount == 0)
|
|||
|
|
{
|
|||
|
|
if (model == null)
|
|||
|
|
{
|
|||
|
|
model = GetEntity<T_WB_DANGEROUS_JOB>(id, "Nav_Project.Nav_SceneUser");
|
|||
|
|
}
|
|||
|
|
//被交底人和交底人都已经签名后 触发 作业监察
|
|||
|
|
if (model.DEAL_STATUS == 1)
|
|||
|
|
{
|
|||
|
|
model.DISCLOSE_STATUS = PFStandardStatus.Archived;
|
|||
|
|
model.DISCLOSE_TIME = DateTime.Now;
|
|||
|
|
sendUserID = model.Nav_Project.SCENE_USER_ID;
|
|||
|
|
sendUserNAME = model.Nav_Project.Nav_SceneUser.NAME;
|
|||
|
|
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业监查人", id, orgId, sendUserID, sendUserNAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB021");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (taskID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
finishTask = NotificationTaskService.FOGetTaskFinishModel(taskID, id);
|
|||
|
|
}
|
|||
|
|
UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
if (model != null)
|
|||
|
|
UpdateEntityNoCommit(model);
|
|||
|
|
if (currUser != null)
|
|||
|
|
UpdateEntityNoCommit(currUser);
|
|||
|
|
if (sendNotice != null)
|
|||
|
|
AddEntityNoCommit(sendNotice);
|
|||
|
|
if (finishTask != null)
|
|||
|
|
UpdateEntityNoCommit(finishTask);
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 保存
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="entity"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("FullUpdateCheck")]
|
|||
|
|
public JsonActionResult<bool> FullUpdateCheck([FromBody] T_WB_DANGEROUS_JOB entity)
|
|||
|
|
{
|
|||
|
|
return SafeExecute(() =>
|
|||
|
|
{
|
|||
|
|
T_FM_NOTIFICATION_TASK finishNotice = null;
|
|||
|
|
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
|||
|
|
List<T_FM_NOTIFICATION_TASK> sendNotice = null;
|
|||
|
|
List<T_WB_DANGEROUS_JOB_RECORD_DETAIL> newRecordDetails = null;
|
|||
|
|
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
|
|||
|
|
{
|
|||
|
|
if (!entity.MOINTER_USER_ID.HasValue)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请选择监查人");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if (entity.MOINTER_USER_ID.Value == APT.Infrastructure.Api.AppContext.CurrentSession.UserID)
|
|||
|
|
{
|
|||
|
|
T_WB_DANGEROUS_JOB model = null;
|
|||
|
|
mointerSign(entity.ID, entity.ORG_ID.Value, ref model, ref sendNotice, ref newRecordDetails);
|
|||
|
|
//状态赋值 默认 检查人 已确认
|
|||
|
|
entity.MOINTER_DEAL_STATUS = 1;
|
|||
|
|
entity.STATUS_DETAIL = PFStandardStatus.Draft;
|
|||
|
|
entity.STATUS_MOINTER = PFStandardStatus.Draft;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业-监察人确认", entity.ID, entity.ORG_ID, (Guid)entity.MOINTER_USER_ID, GetEntity<T_FM_USER>(t => t.ID == entity.MOINTER_USER_ID).NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB021_SHOWPRINT"));
|
|||
|
|
}
|
|||
|
|
if (entity.TaskID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
finishNotice = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID, "WB021_SHOWPRINT");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
UpdateEntityNoCommit(entity);
|
|||
|
|
if (sendNotices != null && sendNotices.Any())
|
|||
|
|
BantchAddEntityNoCommit(sendNotices);
|
|||
|
|
if (finishNotice != null)
|
|||
|
|
UpdateEntityNoCommit(finishNotice);
|
|||
|
|
|
|||
|
|
|
|||
|
|
if (sendNotice != null && sendNotice.Any())//外包工程危险作业记录 外包工程危险作业监查记录
|
|||
|
|
BantchAddEntityNoCommit(sendNotice);
|
|||
|
|
if (newRecordDetails != null && newRecordDetails.Any())//记录明细
|
|||
|
|
BantchAddEntityNoCommit(newRecordDetails);
|
|||
|
|
});
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void mointerSign(Guid JOBID, Guid orgId, ref T_WB_DANGEROUS_JOB model, ref List<T_FM_NOTIFICATION_TASK> sendNotice, ref List<T_WB_DANGEROUS_JOB_RECORD_DETAIL> newRecordDetails)
|
|||
|
|
{
|
|||
|
|
model = GetEntity<T_WB_DANGEROUS_JOB>(JOBID, "Nav_MointerUser", "Nav_User", "Nav_DisCloseDetails");
|
|||
|
|
sendNotice = new List<T_FM_NOTIFICATION_TASK>();
|
|||
|
|
newRecordDetails = new List<T_WB_DANGEROUS_JOB_RECORD_DETAIL>();
|
|||
|
|
model.MOINTER_DEAL_STATUS = 1;
|
|||
|
|
var sendUserID1 = model.USER_ID;
|
|||
|
|
var sendUserNAME1 = model.Nav_User.NAME;
|
|||
|
|
var sendUserID2 = model.MOINTER_USER_ID;//监查人如果为空 就默认为操作者
|
|||
|
|
var sendUserNAME2 = model?.Nav_MointerUser?.NAME;
|
|||
|
|
if (sendUserID2 == null || sendUserID2 == Guid.Empty)
|
|||
|
|
{
|
|||
|
|
sendUserID2 = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
|||
|
|
model.MOINTER_USER_ID = sendUserID2;
|
|||
|
|
sendUserNAME2 = GetEntity<T_FM_USER>(sendUserID2.Value).NAME;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
foreach (var item in model.Nav_DisCloseDetails)
|
|||
|
|
{
|
|||
|
|
T_WB_DANGEROUS_JOB_RECORD_DETAIL newRecordDetail = new T_WB_DANGEROUS_JOB_RECORD_DETAIL();
|
|||
|
|
newRecordDetail.ID = Guid.NewGuid();
|
|||
|
|
newRecordDetail.ROW_NUM = item.ROW_NUM;
|
|||
|
|
newRecordDetail.PARENT_ID = item.PARENT_ID;
|
|||
|
|
newRecordDetail.MEASURE = item.MEASURE;
|
|||
|
|
newRecordDetail.REMARK = item.REMARK;
|
|||
|
|
newRecordDetail.ORG_ID = item.ORG_ID;
|
|||
|
|
newRecordDetail.ISORNOT = item.ISORNOT;
|
|||
|
|
newRecordDetails.Add(newRecordDetail);
|
|||
|
|
}
|
|||
|
|
model.STATUS_DETAIL = PFStandardStatus.Draft;
|
|||
|
|
model.STATUS_MOINTER = PFStandardStatus.Draft;
|
|||
|
|
sendNotice.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业记录", JOBID, orgId, sendUserID1, sendUserNAME1, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB023"));
|
|||
|
|
sendNotice.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业监查记录", JOBID, orgId, (Guid)sendUserID2, sendUserNAME2, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB025"));
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 签到
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="pageFilter"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("mointerSign")]
|
|||
|
|
public JsonActionResult<bool> mointerSign([FromBody] KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
return SafeExecute<bool>(() =>
|
|||
|
|
{
|
|||
|
|
var id = Guid.Parse(filter.Parameter1);
|
|||
|
|
var taskID = Guid.Parse(filter.Parameter2);
|
|||
|
|
var userID = Guid.Parse(filter.Parameter3);
|
|||
|
|
var orgId = filter.GetOrgId();
|
|||
|
|
T_WB_DANGEROUS_JOB model = null;
|
|||
|
|
List<T_FM_NOTIFICATION_TASK> sendNotice = new List<T_FM_NOTIFICATION_TASK>();
|
|||
|
|
List<T_WB_DANGEROUS_JOB_RECORD_DETAIL> newRecordDetails = new List<T_WB_DANGEROUS_JOB_RECORD_DETAIL>();
|
|||
|
|
T_FM_NOTIFICATION_TASK finishTask = null;
|
|||
|
|
mointerSign(id, orgId, ref model, ref sendNotice, ref newRecordDetails);
|
|||
|
|
|
|||
|
|
//var model = GetEntity<T_WB_DANGEROUS_JOB>(id, "Nav_MointerUser", "Nav_User", "Nav_DisCloseDetails");
|
|||
|
|
//model.MOINTER_DEAL_STATUS = 1;
|
|||
|
|
//var sendUserID1 = model.USER_ID;
|
|||
|
|
//var sendUserNAME1 = model.Nav_User.NAME;
|
|||
|
|
//var sendUserID2 = model.MOINTER_USER_ID;
|
|||
|
|
//var sendUserNAME2 = model.Nav_MointerUser.NAME;
|
|||
|
|
//foreach (var item in model.Nav_DisCloseDetails)
|
|||
|
|
//{
|
|||
|
|
// T_WB_DANGEROUS_JOB_RECORD_DETAIL newRecordDetail = new T_WB_DANGEROUS_JOB_RECORD_DETAIL();
|
|||
|
|
// newRecordDetail.ID = Guid.NewGuid();
|
|||
|
|
// newRecordDetail.ROW_NUM = item.ROW_NUM;
|
|||
|
|
// newRecordDetail.PARENT_ID = item.PARENT_ID;
|
|||
|
|
// newRecordDetail.MEASURE = item.MEASURE;
|
|||
|
|
// newRecordDetail.REMARK = item.REMARK;
|
|||
|
|
// newRecordDetail.ORG_ID = item.ORG_ID;
|
|||
|
|
// newRecordDetail.ISORNOT = item.ISORNOT;
|
|||
|
|
// newRecordDetails.Add(newRecordDetail);
|
|||
|
|
//}
|
|||
|
|
//model.STATUS_DETAIL = PFStandardStatus.Draft;
|
|||
|
|
//model.STATUS_MOINTER = PFStandardStatus.Draft;
|
|||
|
|
//sendNotice.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业记录", id, orgId, sendUserID1, sendUserNAME1, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB023"));
|
|||
|
|
//sendNotice.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业监查记录", id, orgId, (Guid)sendUserID2, sendUserNAME2, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB025"));
|
|||
|
|
|
|||
|
|
if (taskID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
finishTask = NotificationTaskService.FOGetTaskFinishModel(taskID, id);
|
|||
|
|
}
|
|||
|
|
UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
UpdateEntityNoCommit(model);
|
|||
|
|
if (sendNotice != null && sendNotice.Any())
|
|||
|
|
BantchAddEntityNoCommit(sendNotice);
|
|||
|
|
if (newRecordDetails != null && newRecordDetails.Any())
|
|||
|
|
BantchAddEntityNoCommit(newRecordDetails);
|
|||
|
|
if (finishTask != null)
|
|||
|
|
UpdateEntityNoCommit(finishTask);
|
|||
|
|
});
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 保存
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="id"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("FullUpdateRecord")]
|
|||
|
|
public JsonActionResult<bool> FullUpdateRecord([FromBody] T_WB_DANGEROUS_JOB entity)
|
|||
|
|
{
|
|||
|
|
return SafeExecute(() =>
|
|||
|
|
{
|
|||
|
|
T_FM_NOTIFICATION_TASK finishNotice = null;
|
|||
|
|
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
|||
|
|
var Nav_RecordDetails = entity.Nav_RecordDetails;
|
|||
|
|
List<T_WB_DANGEROUS_JOB_RECORD_DETAIL_FILE> Files = new List<T_WB_DANGEROUS_JOB_RECORD_DETAIL_FILE>();
|
|||
|
|
|
|||
|
|
entity.Nav_RecordDetails = null;
|
|||
|
|
List<int> listNotCheck = new List<int>();
|
|||
|
|
int index = 0;
|
|||
|
|
Nav_RecordDetails.ForEach(t =>
|
|||
|
|
{
|
|||
|
|
index++;
|
|||
|
|
if (t.Nav_Files != null && t.Nav_Files.Count() > 0)
|
|||
|
|
{
|
|||
|
|
t.Nav_Files.ForEach(nf =>
|
|||
|
|
{
|
|||
|
|
nf.PARENT_ID = t.ID;
|
|||
|
|
});
|
|||
|
|
Files.AddRange(t.Nav_Files);
|
|||
|
|
t.Nav_Files = null;
|
|||
|
|
}
|
|||
|
|
if (!t.ISOCONFIRM)
|
|||
|
|
{
|
|||
|
|
listNotCheck.Add(index);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
|
|||
|
|
{
|
|||
|
|
if (listNotCheck.Count > 0)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请确认所有安全措施信息,行【" + String.Join(",", listNotCheck) + "】!");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var project = GetEntity<T_WB_PROJECT_INPUT>(t => t.ID == entity.PROJECT_ID, "Nav_User", "Nav_SceneUser");
|
|||
|
|
var user2Id = project.USER_ID;
|
|||
|
|
var user2Name = project.Nav_User.NAME;
|
|||
|
|
sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业记录-审阅", entity.ID, entity.ORG_ID, user2Id, user2Name, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB023_SHOWPRINT"));
|
|||
|
|
var user3Id = project.SCENE_USER_ID;
|
|||
|
|
var user3Name = project.Nav_SceneUser.NAME;
|
|||
|
|
sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业记录-审阅", entity.ID, entity.ORG_ID, user3Id, user3Name, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB023_SHOWPRINT"));
|
|||
|
|
if (entity.MOINTER_USER_ID.HasValue && entity.MOINTER_USER_ID.Value != project.USER_ID && entity.MOINTER_USER_ID.Value != project.SCENE_USER_ID)
|
|||
|
|
{
|
|||
|
|
//待办数据去重
|
|||
|
|
var user1Id = entity.MOINTER_USER_ID;
|
|||
|
|
var user1Name = GetEntity<T_FM_USER>(user1Id.ToString()).NAME;
|
|||
|
|
sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业记录-审阅", entity.ID, entity.ORG_ID, (Guid)user1Id, user1Name, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB023_SHOWPRINT"));
|
|||
|
|
}
|
|||
|
|
if (entity.TaskID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
finishNotice = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID, "WB023_SHOWPRINT");
|
|||
|
|
}
|
|||
|
|
entity.STATUS_DETAIL = PFStandardStatus.Reading;
|
|||
|
|
}
|
|||
|
|
UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
UpdateEntityNoCommit(entity);
|
|||
|
|
if (Nav_RecordDetails != null && Nav_RecordDetails.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Nav_RecordDetails);
|
|||
|
|
if (sendNotices != null && sendNotices.Any())
|
|||
|
|
BantchAddEntityNoCommit(sendNotices);
|
|||
|
|
if (finishNotice != null)
|
|||
|
|
UpdateEntityNoCommit(finishNotice);
|
|||
|
|
if (Files.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Files);
|
|||
|
|
});
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 签到
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filter"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("recordSign")]
|
|||
|
|
public JsonActionResult<bool> recordSign([FromBody] KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
return SafeExecute<bool>(() =>
|
|||
|
|
{
|
|||
|
|
var id = Guid.Parse(filter.Parameter1);
|
|||
|
|
var taskID = Guid.Parse(filter.Parameter2);
|
|||
|
|
var userID = Guid.Parse(filter.Parameter3);
|
|||
|
|
var orgId = filter.GetOrgId();
|
|||
|
|
T_FM_NOTIFICATION_TASK finishTask = null;
|
|||
|
|
int CountD = 1;
|
|||
|
|
|
|||
|
|
if (taskID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
finishTask = NotificationTaskService.FOGetTaskFinishModel(taskID, id);
|
|||
|
|
if (finishTask != null)
|
|||
|
|
{
|
|||
|
|
CountD = GetCount<T_FM_NOTIFICATION_TASK>(e => e.SOURCE_DATA_ID == id && e.ID != taskID && e.NOTICE_STATUS == 0 && e.SOURCE_FORMCODE == finishTask.SOURCE_FORMCODE, null);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
T_WB_DANGEROUS_JOB modelJob = null;
|
|||
|
|
if (CountD == 0 && finishTask != null)
|
|||
|
|
{
|
|||
|
|
modelJob = GetEntity<T_WB_DANGEROUS_JOB>(id);
|
|||
|
|
if (finishTask.SOURCE_FORMCODE == "WB023_SHOWPRINT")
|
|||
|
|
{
|
|||
|
|
modelJob.STATUS_DETAIL = PFStandardStatus.Archived;
|
|||
|
|
}
|
|||
|
|
else if (finishTask.SOURCE_FORMCODE == "WB025_SHOWPRINT")
|
|||
|
|
{
|
|||
|
|
modelJob.STATUS_MOINTER = PFStandardStatus.Archived;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
if (finishTask != null)
|
|||
|
|
UpdateEntityNoCommit(finishTask);
|
|||
|
|
if (modelJob != null)
|
|||
|
|
UpdateEntityNoCommit(modelJob);
|
|||
|
|
});
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 保存
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="id"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("FullUpdateMointer")]
|
|||
|
|
public JsonActionResult<bool> FullUpdateMointer([FromBody] T_WB_DANGEROUS_JOB entity)
|
|||
|
|
{
|
|||
|
|
return SafeExecute(() =>
|
|||
|
|
{
|
|||
|
|
T_FM_NOTIFICATION_TASK finishNotice = null;
|
|||
|
|
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
|||
|
|
var Nav_MointerRecordDetails = entity.Nav_MointerRecordDetails;
|
|||
|
|
List<T_WB_DANGEROUS_JOB_MOINTER_RECORD_DETAIL_FILE> Files = new List<T_WB_DANGEROUS_JOB_MOINTER_RECORD_DETAIL_FILE>();
|
|||
|
|
|
|||
|
|
entity.Nav_MointerRecordDetails = null;
|
|||
|
|
Nav_MointerRecordDetails.ForEach(t =>
|
|||
|
|
{
|
|||
|
|
if (t.Nav_Files != null && t.Nav_Files.Count() > 0)
|
|||
|
|
{
|
|||
|
|
t.Nav_Files.ForEach(nf =>
|
|||
|
|
{
|
|||
|
|
nf.PARENT_ID = t.ID;
|
|||
|
|
});
|
|||
|
|
Files.AddRange(t.Nav_Files);
|
|||
|
|
t.Nav_Files = null;
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
|
|||
|
|
{
|
|||
|
|
var project = GetEntity<T_WB_PROJECT_INPUT>(t => t.ID == entity.PROJECT_ID, "Nav_User", "Nav_SceneUser");
|
|||
|
|
var user2Id = project.USER_ID;
|
|||
|
|
var user2Name = project.Nav_User.NAME;
|
|||
|
|
sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业监查记录-审阅", entity.ID, entity.ORG_ID, user2Id, user2Name, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB025_SHOWPRINT"));
|
|||
|
|
var user3Id = project.SCENE_USER_ID;
|
|||
|
|
var user3Name = project.Nav_SceneUser.NAME;
|
|||
|
|
sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业监查记录-审阅", entity.ID, entity.ORG_ID, user3Id, user3Name, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB025_SHOWPRINT"));
|
|||
|
|
if (entity.TaskID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
finishNotice = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID, "WB025_SHOWPRINT");
|
|||
|
|
}
|
|||
|
|
entity.STATUS_MOINTER = PFStandardStatus.Reading;
|
|||
|
|
}
|
|||
|
|
UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
UpdateEntityNoCommit(entity);
|
|||
|
|
if (Nav_MointerRecordDetails != null && Nav_MointerRecordDetails.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Nav_MointerRecordDetails);
|
|||
|
|
if (sendNotices != null && sendNotices.Any())
|
|||
|
|
BantchAddEntityNoCommit(sendNotices);
|
|||
|
|
if (finishNotice != null)
|
|||
|
|
UpdateEntityNoCommit(finishNotice);
|
|||
|
|
if (Files.Any())
|
|||
|
|
BantchSaveEntityNoCommit(Files);
|
|||
|
|
});
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 检查制表申请 审批流回调
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="entity"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("UserAgreeNew")]
|
|||
|
|
public JsonActionResult<bool> UserAgreeNew([FromBody] T_PF_APPROVE entity)
|
|||
|
|
{
|
|||
|
|
return SafeExecute<bool>(() =>
|
|||
|
|
{
|
|||
|
|
return ApproveCallBackService.CallBackNew("WB/WBDangerousJob/UserAgreeNew", entity);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|