315 lines
15 KiB
C#
315 lines
15 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.HM;
|
|
using APT.MS.Domain.Entities.WB;
|
|
using APT.MS.Domain.Enums;
|
|
using APT.Utility;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace APT.SC.WebApi.Controllers.Api.WB
|
|
{
|
|
[Route("api/WB/WBHiddenDangerNotify")]
|
|
public class WBHiddenDangerNotifyController : AuthorizeApiController<T_WB_HIDDEN_DANGER_NOTIFY>
|
|
{
|
|
IFMNotificationTaskService NotificationTaskService { get; set; }
|
|
IFMFlowPermitService MFlowPermitService { get; set; }
|
|
IPFApproveCallBackService ApproveCallBackService { get; set; }
|
|
public WBHiddenDangerNotifyController(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_HIDDEN_DANGER_NOTIFY entity)
|
|
{
|
|
return SafeExecute(() =>
|
|
{
|
|
//T_FM_NOTIFICATION_TASK finishNotice = null;
|
|
//T_FM_NOTIFICATION_TASK sendNotice = null;
|
|
var Nav_Details = entity.Nav_Details;
|
|
var Nav_Files = entity.Nav_Files;
|
|
entity.Nav_Details = null;
|
|
entity.Nav_Files = null;
|
|
List<T_WB_HIDDEN_DANGER_NOTIFY_DETAIL_FILE> Files = new List<T_WB_HIDDEN_DANGER_NOTIFY_DETAIL_FILE>();
|
|
entity.LAUNCH_USER_ID = (Guid)APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
|
foreach (var item in Nav_Details)
|
|
{
|
|
item.ROW_NUM = item.ROW_NUM + 1;
|
|
if (item.Nav_Files != null && item.Nav_Files.Count() > 0)
|
|
{
|
|
item.Nav_Files.ForEach(nf =>
|
|
{
|
|
nf.PARENT_ID = item.ID;
|
|
});
|
|
Files.AddRange(item.Nav_Files);
|
|
item.Nav_Files = 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.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
|
|
{
|
|
var project = GetEntity<T_WB_PROJECT_INPUT>(entity.PROJECT_ID, "Nav_SceneUser");
|
|
//var userID = project.SCENE_USER_ID;
|
|
//var userNAME = GetEntity<T_FM_USER>(userID).NAME;
|
|
//entity.STATUS = PFStandardStatus.Approving;
|
|
//sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程隐患整改通知单-审批", entity.ID, entity.ORG_ID, userID, userNAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB037_SHOWPRINT");
|
|
//if (entity.TaskID != Guid.Empty)
|
|
//{
|
|
// finishNotice = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID);
|
|
//}
|
|
|
|
Dictionary<int, T_FM_USER> dicApproveUser = new Dictionary<int, T_FM_USER>();
|
|
dicApproveUser.Add(1, project.Nav_SceneUser);//建设项目现场负责人
|
|
string Msg = "";
|
|
approve = MFlowPermitService.GetApproveInfo("WB037", null, entity.ID, "WB037_SHOWPRINT", entity.TaskID, "WB037_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;
|
|
approve.Nav_ApproveDetails = null;
|
|
|
|
}
|
|
UnifiedCommit(() =>
|
|
{
|
|
UpdateEntityNoCommit(entity);
|
|
if (Nav_Details != null && Nav_Details.Any())
|
|
BantchSaveEntityNoCommit(Nav_Details);
|
|
if (Nav_Files != null && Nav_Files.Any())
|
|
BantchSaveEntityNoCommit(Nav_Files);
|
|
if (Files != null && Files.Any())
|
|
BantchSaveEntityNoCommit(Files);
|
|
//if (sendNotice != null)
|
|
// AddEntityNoCommit(sendNotice);
|
|
//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("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();
|
|
var sendUserID = Guid.Empty;
|
|
var sendUserNAME = "";
|
|
var users = GetEntities<T_WB_SAFE_CHECK_TASK_DETAIL_USER>(t => t.Nav_Record.Nav_Parent.ID == id, new BaseFilter(orgId));
|
|
var currUser = users.FirstOrDefault(t => t.USER_ID == userID);
|
|
T_FM_NOTIFICATION_TASK finishTask = null;
|
|
T_FM_NOTIFICATION_TASK sendNotice = null;
|
|
currUser.DEAL_STATUS = UserDealStatusEnum.已处理;
|
|
currUser.MODIFY_TIME = DateTime.Now;
|
|
T_WB_SAFE_CHECK_TASK model = null;
|
|
var todoCount = users.Count(t => t.DEAL_STATUS == 0);
|
|
if (todoCount == 0)
|
|
{
|
|
model = GetEntity<T_WB_SAFE_CHECK_TASK>(id);
|
|
model.STATUS = PFStandardStatus.Reading;
|
|
}
|
|
if (taskID != Guid.Empty)
|
|
{
|
|
finishTask = NotificationTaskService.FOGetTaskFinishModel(taskID, id);
|
|
}
|
|
UnifiedCommit(() =>
|
|
{
|
|
UpdateEntityNoCommit(model);
|
|
UpdateEntityNoCommit(currUser);
|
|
if (sendNotice != null)
|
|
AddEntityNoCommit(sendNotice);
|
|
if (finishTask != null)
|
|
UpdateEntityNoCommit(finishTask);
|
|
|
|
});
|
|
return true;
|
|
});
|
|
}
|
|
|
|
///// <summary>
|
|
///// 审核通过
|
|
///// </summary>
|
|
///// <param name="pageFilter"></param>
|
|
///// <returns></returns>
|
|
//[HttpPost, Route("UserAgree")]
|
|
//public JsonActionResult<bool> UserAgree([FromBody] T_WB_HIDDEN_DANGER_NOTIFY entity)
|
|
//{
|
|
// return SafeExecute<bool>(() =>
|
|
// {
|
|
// entity = GetEntity<T_WB_HIDDEN_DANGER_NOTIFY>(entity.ID);
|
|
// var notify = GetEntity<T_WB_HIDDEN_DANGER_NOTIFY>(t => t.ID == entity.ID);
|
|
// var currUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
|
// T_FM_NOTIFICATION_TASK sendNotice = null;
|
|
// notify.STATUS = PFStandardStatus.Archived;
|
|
// T_WB_HIDDEN_DANGER_RECORD record = new T_WB_HIDDEN_DANGER_RECORD();
|
|
// record.ID = Guid.NewGuid();
|
|
// record.ORG_ID = entity.ORG_ID;
|
|
// record.NOTIFY_ID = entity.ID;
|
|
// List<T_WB_HIDDEN_DANGER_RECORD_DETAIL> recordDetails = new List<T_WB_HIDDEN_DANGER_RECORD_DETAIL>();
|
|
// List<T_WB_HIDDEN_DANGER_RECORD_DETAIL_BEFORE_FILE> beforeFiles = new List<T_WB_HIDDEN_DANGER_RECORD_DETAIL_BEFORE_FILE>();
|
|
|
|
// BaseFilter recordFilter = new BaseFilter(entity.ORG_ID);
|
|
// recordFilter.Include = new string[] { "Nav_Files" };
|
|
// var notifyDetails = GetEntities<T_WB_HIDDEN_DANGER_NOTIFY_DETAIL>(t => t.PARENT_ID == entity.ID, recordFilter);
|
|
// foreach (var notifyDetail in notifyDetails)
|
|
// {
|
|
// T_WB_HIDDEN_DANGER_RECORD_DETAIL recordDetail = new T_WB_HIDDEN_DANGER_RECORD_DETAIL();
|
|
// recordDetail.ID = Guid.NewGuid();
|
|
// recordDetail.ORG_ID = entity.ORG_ID;
|
|
// recordDetail.PARENT_ID = record.ID;
|
|
// recordDetail.ROW_NUM = notifyDetail.ROW_NUM;
|
|
// recordDetail.MineType = notifyDetail.MineType;
|
|
// //recordDetail.AREA = notifyDetail.AREA;
|
|
// recordDetail.AREA_ID = notifyDetail.AREA_ID;
|
|
// recordDetail.CHECK_CONTENT = notifyDetail.CHECK_CONTENT;
|
|
// recordDetail.CHECK_BASIS = notifyDetail.CHECK_BASIS;
|
|
// recordDetail.REMARK = notifyDetail.REMARK;
|
|
// recordDetail.ADRESS = notifyDetail.ADRESS;
|
|
// recordDetail.END_TIME = notifyDetail.END_TIME;
|
|
// recordDetails.Add(recordDetail);
|
|
// foreach (var file in notifyDetail.Nav_Files)
|
|
// {
|
|
// T_WB_HIDDEN_DANGER_RECORD_DETAIL_BEFORE_FILE file1 = new T_WB_HIDDEN_DANGER_RECORD_DETAIL_BEFORE_FILE();
|
|
// file1.ID = file.ID;
|
|
// file1.ORG_ID = file.ORG_ID;
|
|
// file1.IMG_FILE_ID = file.IMG_FILE_ID;
|
|
// file1.PARENT_ID = recordDetail.ID;
|
|
// beforeFiles.Add(file1);
|
|
// }
|
|
// }
|
|
// var project = GetEntity<T_WB_PROJECT_INPUT>(entity.PROJECT_ID);
|
|
// var user = GetEntity<T_FM_USER>(t => t.CODE == project.WB_USER_CODE);
|
|
// sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程隐患整改记录", record.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB039");
|
|
// var finishTask = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID);
|
|
// UnifiedCommit(() =>
|
|
// {
|
|
// UpdateEntityNoCommit(notify);
|
|
// if (finishTask != null)
|
|
// UpdateEntityNoCommit(finishTask);
|
|
// if (sendNotice != null)
|
|
// AddEntityNoCommit(sendNotice);
|
|
// if (record != null)
|
|
// AddEntityNoCommit(record);
|
|
// if (recordDetails != null && recordDetails.Any())
|
|
// BantchSaveEntityNoCommit(recordDetails);
|
|
// if (beforeFiles != null && beforeFiles.Any())
|
|
// BantchSaveEntityNoCommit(beforeFiles);
|
|
|
|
// });
|
|
// 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/WBHiddenDangerNotify/UserAgreeNew", entity);
|
|
});
|
|
}
|
|
|
|
/// <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 checkRecord = GetEntity<T_WB_HIDDEN_DANGER_NOTIFY>(t => t.ID == id);
|
|
checkRecord.STATUS = PFStandardStatus.Rejected;
|
|
checkRecord.AUDIT_OPINION = opinion;
|
|
checkRecord.AUDIT_OPINION += "<br/>审核时间:" + DateTime.Now;
|
|
var finishTask = NotificationTaskService.FOGetTaskFinishModel(taskID, id);
|
|
|
|
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程隐患整改通知单-审批驳回", id, orgId, (Guid)checkRecord.LAUNCH_USER_ID, GetEntity<T_FM_USER>(t => t.ID == checkRecord.LAUNCH_USER_ID).NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB037");
|
|
UnifiedCommit(() =>
|
|
{
|
|
if (sendNotice != null)
|
|
AddEntityNoCommit(sendNotice);
|
|
if (finishTask != null)
|
|
UpdateEntityNoCommit(finishTask);
|
|
if (checkRecord != null)
|
|
UpdateEntityNoCommit(checkRecord);
|
|
});
|
|
return true;
|
|
});
|
|
}
|
|
}
|
|
}
|