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 { 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; } /// /// 安全生产费用使用 修改 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_TI_PROJECT_CHECK entity) { return SafeExecute(() => { 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(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(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; }); } } }