163 lines
7.0 KiB
C#
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;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|