feat: 自动发起企标复审流程
This commit is contained in:
+50
-1
@@ -1,12 +1,19 @@
|
||||
package com.jero.modules.laws.enterprise.job;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.modules.activiti.process.common.entity.CommonVO;
|
||||
import com.jero.modules.activiti.process.esRecheck.entity.ProcessEsRecheck;
|
||||
import com.jero.modules.activiti.process.esRecheck.entity.vo.ESRecheckDataVO;
|
||||
import com.jero.modules.activiti.process.esRecheck.service.ProcessEsRecheckService;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRecheckPlan;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardRecheckPlanService;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.laws.system.service.ILawsContactManageService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
@@ -16,6 +23,7 @@ import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -34,6 +42,12 @@ public class ESRecheckPlanJob implements Job {
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardService esService;
|
||||
|
||||
@Resource
|
||||
private ILawsContactManageService contactManageService;
|
||||
|
||||
@Resource
|
||||
private ProcessEsRecheckService recheckService;
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
List<LawsEnterpriseStandard> allEs = esService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>().eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getValue()));
|
||||
@@ -55,7 +69,7 @@ public class ESRecheckPlanJob implements Job {
|
||||
if (plusMonths.isBefore(now)) {
|
||||
// 判断是否已经存在复审计划
|
||||
List<EnterpriseStandardRecheckPlan> recheckPlans = recheckPlanMap.get(es.getId());
|
||||
if (recheckPlans == null || recheckPlans.size() == 0) {
|
||||
if (recheckPlans == null || recheckPlans.isEmpty()) {
|
||||
// 企标已经达到35个月,需要重新复审
|
||||
EnterpriseStandardRecheckPlan recheckPlan = new EnterpriseStandardRecheckPlan();
|
||||
recheckPlan.setStandardId(es.getId());
|
||||
@@ -66,9 +80,44 @@ public class ESRecheckPlanJob implements Job {
|
||||
Date recheckDate = Date.from(zdtRecheck.toInstant());
|
||||
recheckPlan.setRecheckDate(recheckDate);
|
||||
esRecheckPlanService.save(recheckPlan);
|
||||
// 自动发起流程
|
||||
// 找到各自企标的联络人,如果找不到联络人则发给标准化工程师
|
||||
String deptId = es.getMainDraftingUnit();
|
||||
if (StrUtil.isBlank(deptId)) {
|
||||
log.error("企标复审流程发起失败,企标Id为{}的企标部门ID为空,无法找到其联络人", deptId);
|
||||
continue;
|
||||
}
|
||||
String standardizationUser = contactManageService.findContactUserByDept(deptId);
|
||||
String standardEngineer = null;
|
||||
if (StrUtil.isBlank(standardizationUser)) {
|
||||
standardEngineer = contactManageService.findStandardEngineerByDept(deptId);
|
||||
}
|
||||
if (StrUtil.isBlank(standardizationUser) && StrUtil.isBlank(standardEngineer)) {
|
||||
log.error("企标复审流程发起失败,无法找到企标Id为{}的联络人和标准化工程师", deptId);
|
||||
continue;
|
||||
}
|
||||
// 构建发起流程数据
|
||||
ESRecheckDataVO esRecheckDataVO = this.getEsRecheckDataVO(es, standardizationUser, standardEngineer);
|
||||
// 发起流程
|
||||
recheckService.autoStartProcess(esRecheckDataVO);
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("企标复审计划定时任务执行完成");
|
||||
}
|
||||
|
||||
private ESRecheckDataVO getEsRecheckDataVO(LawsEnterpriseStandard es, String standardizationUser, String standardEngineer) {
|
||||
ESRecheckDataVO esRecheckDataVO = new ESRecheckDataVO();
|
||||
ProcessEsRecheck recheck = new ProcessEsRecheck();
|
||||
recheck.setStandardId(es.getId());
|
||||
CommonVO commonVO = new CommonVO();
|
||||
commonVO.setPrcName(es.getStandardNumber() + "-" + es.getStandardName() + "-复审");
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("standardizationUser", standardizationUser);
|
||||
map.put("standardEngineer", standardEngineer);
|
||||
esRecheckDataVO.setCommon(commonVO);
|
||||
esRecheckDataVO.setData(recheck);
|
||||
esRecheckDataVO.setFlowUser(map);
|
||||
return esRecheckDataVO;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user