feat: 自动发起企标复审流程

This commit is contained in:
2023-11-27 10:42:27 +08:00
parent 56aaa477d7
commit e2ebee91cf
6 changed files with 136 additions and 1 deletions
@@ -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;
}
}