mh_sms/APT.MicroApi/APT.SC.WebApi/Controllers/Api/TIController/TIPlanCheckController.cs
2024-01-22 09:17:01 +08:00

163 lines
7.0 KiB
C#

using APT.BaseData.Domain.Entities;
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.SC;
using APT.MS.Domain.Entities.TI;
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.SC
{
[Route("api/TI/TIProjectCheck")]
public class TIPlanCheckController : AuthorizeApiController<T_TI_PROJECT_CHECK>
{
IFMFlowPermitService MFlowPermitService { get; set; }
IPFApproveCallBackService ApproveCallBackService { get; set; }
IFMNotificationTaskService NotificationTaskService { get; set; }
public TIPlanCheckController(IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService, IFMNotificationTaskService notificationTaskService)
{
MFlowPermitService = mFlowPermitService;
ApproveCallBackService = approveCallBackService;
NotificationTaskService = notificationTaskService;
}
/// <summary>
/// 安全生产费用使用 修改
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_TI_PROJECT_CHECK entity)
{
return SafeExecute<bool>(() =>
{
if (entity.STATUS != PFStandardStatus.Draft && entity.STATUS != PFStandardStatus.Archived)
{
throw new Exception("获取操作方式有误!");
}
if (entity.BEGINTIME.HasValue)
{
entity.BEGINTIME = DateTime.Now;
//if (entity.BEGINTIME.Value >= DateTime.Now)
//{
// throw new Exception("发起时间不能大于当前时间!");
//}
}
if (entity.DEPARTMENT_ID == null)
{
throw new Exception("请选择发起部门!");
}
if (entity.USER_ID == null)
{
throw new Exception("请选择发起人!");
}
if (entity.PROJECT_ID == Guid.Empty)
{
throw new Exception("请选择项目编号!");
}
if (entity.STATUS == PFStandardStatus.Archived)
{
if (entity.RESULT == 0)
{
throw new Exception("请选择验收结果!");
}
}
var files = entity.Nav_Files;//附件
entity.Nav_Files = null;
var WFFiles = entity.Nav_WFFiles;
entity.Nav_WFFiles = null;
T_TI_PROJECT proj = null;
T_TI_PROJECT_MONEY modelMoney = null;
T_FM_NOTIFICATION_TASK task = null;
T_FM_NOTIFICATION_TASK taskEnd = null;
if (entity.STATUS == PFStandardStatus.Archived && entity.PROJECT_ID != Guid.Empty)
{
proj = GetEntity<T_TI_PROJECT>(entity.PROJECT_ID, new string[] { "Nav_Manger" });
if (proj == null)
{
throw new Exception("获取立项申请/任务书上报失败!");
}
else if (proj.ISCHECK)
{
throw new Exception("该项目已结题验收!");
}
else
{
proj.ISCHECK = true;
}
if (files == null || !files.Any())
{
throw new Exception("请上传项目成果附件!");
}
if (WFFiles == null || !WFFiles.Any())
{
throw new Exception("请上传审批附件!");
}
if (proj.MANAGER_ID.HasValue)
{
var modelCheck = GetEntity<T_TI_PROJECT_MONEY>(e => e.PROJECT_ID == proj.ID && !e.IS_DELETED);
if (modelCheck == null)
{
modelMoney = new T_TI_PROJECT_MONEY();
modelMoney.ID = Guid.NewGuid();
modelMoney.BEGINTIME = DateTime.Now;
modelMoney.DEPARTMENT_ID = proj.Nav_Manger.DEPARTMENT_ID;
modelMoney.USER_ID = proj.MANAGER_ID;//MANAGER_ID
modelMoney.PROJECT_ID = proj.ID;
modelMoney.STATUS = PFStandardStatus.Draft;
modelMoney.IS_DELETED = false;
modelMoney.ORG_ID = entity.ORG_ID;
//modelMoney.ENTITY_ORG_TPYE =;
//modelMoney.FORM_ID =;
//modelMoney.FLOW_STATUS =;
//modelMoney.FLOW_SEND_STATUS =;
//modelMoney.FLOW_ID =;
//modelMoney.CREATE_TIME =;
//modelMoney.MODIFY_TIME =;
//modelMoney.CREATER_ID =;
//modelMoney.MODIFIER_ID =;
task = NotificationTaskService.InsertUserNoticeTaskModel("项目经费管理", modelMoney.ID, entity.ORG_ID, proj.MANAGER_ID.Value, proj.Nav_Manger.NAME, DateTime.Now, (int)FMNoticeTypeEnum., "TI016", BaseData.Domain.Enums.FMTASKTYPE.TI_MONEY);
}
}
if (entity.TaskID!=Guid.Empty)
{
taskEnd = NotificationTaskService.GetEntityTask(entity.TaskID, "TI014_SHOWPRINT");
}
}
this.UnifiedCommit(() =>
{
if (entity != null)
UpdateEntityNoCommit(entity); //保存主表 NoCommit
if (WFFiles != null && WFFiles.Any())//审批附件
BantchSaveEntityNoCommit(WFFiles);
if (files != null && files.Any())//项目成果附件
BantchSaveEntityNoCommit(files);
if (proj != null)//项目修改
UpdateEntityNoCommit(proj);
if (modelMoney != null) //项目经费管理
AddEntityNoCommit(modelMoney);
if (task != null) //给项目负责人发送待办
AddEntityNoCommit(task);
if (taskEnd != null) //给项目负责人发送待办
UpdateEntityNoCommit(taskEnd);
});
return true;
});
}
}
}