This commit is contained in:
何美荣 2024-06-07 11:33:42 +08:00
parent 5e11201784
commit 3a6db20fdc

View File

@ -30,6 +30,7 @@
using APT.BaseData.Services.DomainServices;
using APT.BaseData.Services.Services.FM;
using APT.BaseData.Services.Sys;
using APT.MS.Domain.Entities.FO;
[Route("api/PF/PFApprove")]
public partial class ApproveController : AuthorizeApiController<T_PF_APPROVE>
@ -219,6 +220,16 @@
}
}
}
if (ret == "FO/FOCrucialLicenseJob/BackUpdate")
{
BackUpdate_FOJobCrucialLicense(dbApprove.DATA_ID.ToString(), () => JobChangeApproveStatus(dbApprove, task));
return "";
}
if (ret == "FO/FOJobEventRecord/BackUpdate")
{
BackUpdate_FOJobEventRecord(dbApprove.DATA_ID.ToString(), () => JobChangeApproveStatus(dbApprove, task));
return "";
}
}
else
{
@ -418,7 +429,19 @@
}
}
}
private void JobChangeApproveStatus(T_PF_APPROVE dbApprove, T_FM_NOTIFICATION_TASK task)//, Type dbTypeEnd = null, MethodInfo methodInfoEnd = null
{
var details = dbApprove.Nav_ApproveDetails;
dbApprove.Nav_ApproveDetails = null;
details.ForEach(i => i.Nav_Approve = null);
if (task != null)
this.UpdateEntityNoCommit(task);
this.UpdateEntityNoCommit(dbApprove);
this.BantchUpdateEntityNoCommit(details);
//if (methodInfoEnd != null)
// methodInfoEnd.MakeGenericMethod(new Type[] { dbTypeEnd }).Invoke(this, new object[] { dbApprove.DATA_ID.ToString() });
}
private void ChangeApproveStatus(T_PF_APPROVE dbApprove, T_FM_NOTIFICATION_TASK task)//, Type dbTypeEnd = null, MethodInfo methodInfoEnd = null
{
var details = dbApprove.Nav_ApproveDetails;
@ -927,5 +950,119 @@
});
return true;
}
/// <summary>
/// 工作票回调函数
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
private bool BackUpdate_FOJobCrucialLicense(string id, Action action)
{
//var entity = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(id, false, "Nav_OperationStep", "Nav_ApplyUser", "Nav_CrucialLicensePerson");
var entity = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(id, new string[] { "Nav_OperationStep", "Nav_ApplyUser", "Nav_CrucialLicensePerson" });// wyw
entity.IS_PUBLISH = (int)FOPreMeetingStatusEnum.;
//触发技术交底表
var tech = new T_FO_TECH_DISCLOSURE_FROM();
var techUsers = new List<T_FO_TECH_DISCLOSURE_PERSON>();
var notices = new List<T_FM_NOTIFICATION_TASK>();
var techForm = this.GetEntity<T_FO_TECH_DISCLOSURE_FROM>(t => t.JOB_NAME_ID == entity.ID);
if (techForm == null)
{
//取审批流水码
var sysFilter = new SystemCodeFilter();
sysFilter.CodeType = (int)PFCodeRuleType.;
sysFilter.Count = 1;
sysFilter.OrgId = entity.ORG_ID;
var codes = CodeRuleService.NewGenSerial(sysFilter);
var codeList = codes.Split(new char[] { ',' });
//主表
tech.CODE = codeList[0];
tech.ORG_ID = entity.ORG_ID;
tech.OPERATION_STEP_ID = entity.OPERATION_STEP_ID;
tech.JOB_NAME_ID = entity.ID;
tech.JOB_LOCATION = entity.JOB_LOCATION;
tech.DISCLOSURE_PERSON_ID = entity.APPLY_USER_ID;
tech.IS_AUTO = (int)ISImportantEnum.;
tech.IS_OUTSOURCE = false;
tech.RELATED_ID = null;
if (entity.MONITOR_USER_ID != null)
{
T_FO_TECH_DISCLOSURE_PERSON person = new T_FO_TECH_DISCLOSURE_PERSON();
person.ORG_ID = entity.ORG_ID;
person.USER_ID = entity.MONITOR_USER_ID;
person.TECH_DISCLOSURE_FROM_ID = tech.ID;
person.CREATER_ID = entity.CREATER_ID;
techUsers.Add(person);
}
if (entity.Nav_CrucialLicensePerson != null && entity.Nav_CrucialLicensePerson.Any())
{
entity.Nav_CrucialLicensePerson.ForEach(t =>
{
T_FO_TECH_DISCLOSURE_PERSON person = new T_FO_TECH_DISCLOSURE_PERSON();
person.ORG_ID = t.ORG_ID;
person.USER_ID = t.USER_ID;
person.TECH_DISCLOSURE_FROM_ID = tech.ID;
person.CREATER_ID = t.CREATER_ID;
techUsers.Add(person);
});
}
techUsers = techUsers.Distinct(t => t.USER_ID).ToList();
var userIds = entity.Nav_CrucialLicensePerson.Select(t => (Guid)t.USER_ID).Distinct().ToList();
if (!userIds.Contains((Guid)entity.MONITOR_USER_ID))
{
techUsers.Where(t => t.USER_ID == entity.MONITOR_USER_ID).ForEach(m => m.DEAL_STATUS = FOUserShiftStatusEnum.);
}
var UserNames = new List<string>();
var user = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum. && (userIds.Contains(t.ID) || t.ID == entity.APPLY_USER_ID), new BaseFilter(entity.ORG_ID));
var userFirst = user.FirstOrDefault(t => t.ID == entity.APPLY_USER_ID);
foreach (var u in userIds)
{
var current = user.FirstOrDefault(t => t.ID == u);
UserNames.Add(current?.NAME);
}
//DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.JobSite, entity.ORG_ID.Value, DateTime.Now, null, null);
if (userFirst != null)
{
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("安全技术交底表(" + entity.JOB_DATE.Value.ToShortDateString().Replace("/", "") + ")", tech.ID, entity.ORG_ID, entity.APPLY_USER_ID.Value, userFirst?.NAME, DateTime.Now,
entity.JOB_DATE.Value, (int)FMNoticeTypeEnum., "FO019"));
}
if (userIds != null && userIds.Any())
{
notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("关键作业/许可作业工作票确认(" + entity.JOB_DATE.Value.ToShortDateString().Replace("/", "") + ")", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
entity.JOB_DATE.Value, (int)FMNoticeTypeEnum., "FO017_SHOWPRINT"));
}
}
else
{
entity.IS_PUBLISH = (int)FOPreMeetingStatusEnum.;
tech = null; techUsers = null; notices = null;
}
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
if (notices != null && notices.Any())
this.BantchSaveEntityNoCommit(notices);
if (tech != null)
this.UpdateEntityNoCommit(tech);
if (techUsers != null && techUsers.Any())
this.BantchSaveEntityNoCommit(techUsers);
if (action != null)
action();
});
return true;
}
private bool BackUpdate_FOJobEventRecord(string id, Action action)
{
var entity = this.GetEntity<T_FO_JOB_EVENT_RECORD>(id, "Nav_Details");
entity.FORM_STATUS = (int)FOTeamActivityState.;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
if (action != null)
action();
});
return true;
}
}
}