using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Domain.IServices.FM; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.DM; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; namespace APT.SC.WebApi.Controllers.Api.DM { [Route("api/DM/DMDeviceOverhaul")] public class DeviceOverhaulController : AuthorizeApiController { IFMNotificationTaskService NotificationTaskService { get; set; } public DeviceOverhaulController(IFMNotificationTaskService notificationTaskService) { NotificationTaskService = notificationTaskService; } /// /// 更新 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody]T_DM_DEVICE_OVERHAUL entity) { return SafeExecute(() => { var files = entity.Nav_Files; entity.Nav_Files = null; T_FM_NOTIFICATION_TASK sendNotice = null; T_FM_NOTIFICATION_TASK finishNotice = null; T_DM_DEVICE_BASE_OVERHAUL overhaul=null; List overhaulFiles = new List(); if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) { finishNotice = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID,entity.ID, "DM021_SHOWPRINT"); if (entity.STATUS== PFStandardStatus.Draft) { entity.STATUS = PFStandardStatus.Sign; var repair = GetEntity(entity.REPAIR_ID.Value); if (repair != null) { sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("设备设施检修记录-"+entity.MACHINE_NAME+"-待验收", entity.ID, entity.ORG_ID, (Guid)repair.USER_ID, GetEntity(repair.USER_ID.Value).NAME, DateTime.Now, DateTime.Now.AddDays(1), 0, "DM022"); } } else if (entity.STATUS == PFStandardStatus.Sign) { entity.STATUS = PFStandardStatus.Archived; overhaul = new T_DM_DEVICE_BASE_OVERHAUL { ID=Guid.NewGuid(), ORG_ID = entity.ORG_ID, DEVICE_BASE_ID = (Guid)entity.DEVICE_BASE_ID, OVERHAUL_TIME = entity.OVERHAUL_TIME, MALFUCTION = entity.MALFUCTION, DESCRIPTION = entity.DESCRIPTION, USER_ID = entity.USER_ID, EXTERNAL_SUPPORT = entity.EXTERNAL_SUPPORT, }; foreach(var item in files) { var newFile = new T_DM_DEVICE_BASE_OVERHAUL_FILE { FILE_PARENT_ID=overhaul.ID, IMG_FILE_ID=item.IMG_FILE_ID, ORG_ID=item.ORG_ID, }; overhaulFiles.Add(newFile); } } } UnifiedCommit(() => { UpdateEntity(entity); if (files != null && files.Any()) BantchSaveEntityNoCommit(files); if (sendNotice != null) AddEntityNoCommit(sendNotice); if (finishNotice != null) UpdateEntityNoCommit(finishNotice); if(overhaul!=null) AddEntityNoCommit(overhaul); if(overhaulFiles!=null&&overhaulFiles.Any()) BantchAddEntityNoCommit(overhaulFiles); }); return true; }); } } }