feat: 企标复审计划批量发起问题
This commit is contained in:
+20
-4
@@ -8,6 +8,8 @@ import com.jero.common.aspect.TranslationAspect;
|
|||||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.common.system.vo.LoginUser;
|
import com.jero.common.system.vo.LoginUser;
|
||||||
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
|
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
||||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||||
import com.jero.modules.activiti.process.common.entity.CommonVO;
|
import com.jero.modules.activiti.process.common.entity.CommonVO;
|
||||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||||
@@ -19,6 +21,7 @@ import com.jero.modules.activiti.process.esRecheck.service.ProcessEsRecheckServi
|
|||||||
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
||||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||||
|
import com.jero.modules.activiti.service.ProcessAllService;
|
||||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRecheckPlan;
|
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRecheckPlan;
|
||||||
@@ -38,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static com.jero.modules.activiti.process.esRecheck.entity.RecheckTaskNameConstant.*;
|
import static com.jero.modules.activiti.process.esRecheck.entity.RecheckTaskNameConstant.*;
|
||||||
@@ -83,6 +87,9 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
|
|||||||
@Resource
|
@Resource
|
||||||
private EnterpriseStandardRecheckPlanService esRecheckPlanService;
|
private EnterpriseStandardRecheckPlanService esRecheckPlanService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProcessAllService processAllService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startProcess(ESRecheckDataVO recheckData) {
|
public void startProcess(ESRecheckDataVO recheckData) {
|
||||||
// 执行流程发起前的操作
|
// 执行流程发起前的操作
|
||||||
@@ -343,8 +350,8 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
|
|||||||
String deptId = es.getMainDraftingUnit();
|
String deptId = es.getMainDraftingUnit();
|
||||||
String standardNo = es.getStandardNumber();
|
String standardNo = es.getStandardNumber();
|
||||||
if (StrUtil.isBlank(deptId)) {
|
if (StrUtil.isBlank(deptId)) {
|
||||||
log.error("企标复审流程发起失败,企标编号为{}的企标部门ID为空,无法找到其联络人", standardNo);
|
log.error("企标编号为{}的企标部门ID为空,无法找到其联络人", standardNo);
|
||||||
return;
|
throw new JeroBootException("企标编号为" + standardNo + "的主起草部门为空,无法找到其联络人");
|
||||||
}
|
}
|
||||||
String standardizationUser = contactManageService.findContactUserByDept(deptId);
|
String standardizationUser = contactManageService.findContactUserByDept(deptId);
|
||||||
String standardEngineer = null;
|
String standardEngineer = null;
|
||||||
@@ -352,8 +359,17 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
|
|||||||
standardEngineer = contactManageService.findStandardEngineerByDept(deptId);
|
standardEngineer = contactManageService.findStandardEngineerByDept(deptId);
|
||||||
}
|
}
|
||||||
if (StrUtil.isBlank(standardizationUser) && StrUtil.isBlank(standardEngineer)) {
|
if (StrUtil.isBlank(standardizationUser) && StrUtil.isBlank(standardEngineer)) {
|
||||||
log.error("企标复审流程发起失败,无法找到企标编号为{}的联络人和标准化工程师", standardNo);
|
log.error("无法找到企标编号为{}的联络人和标准化工程师", standardNo);
|
||||||
return;
|
throw new JeroBootException("无法找到企标编号为" + standardNo + "的联络人和标准化工程师", standardNo);
|
||||||
|
}
|
||||||
|
// 判断有没有正在进行中的复审流程
|
||||||
|
List<ProcessAll> processAlls = processAllService.list(new LambdaQueryWrapper<ProcessAll>()
|
||||||
|
.eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_RECHECK.getValue())
|
||||||
|
.like(ProcessAll::getPrcName, recheckPlan.getStandardNo())
|
||||||
|
.ne(ProcessAll::getPrcStatus, ProcessStatusEnum.WITHDRAWN.getValue()));
|
||||||
|
if (!processAlls.isEmpty()) {
|
||||||
|
log.error("企标编号为{}的企标已经有复审流程在运行中", standardNo);
|
||||||
|
throw new JeroBootException("企标编号为" + standardNo + "的企标已经有复审流程在运行中");
|
||||||
}
|
}
|
||||||
// 构建发起流程数据
|
// 构建发起流程数据
|
||||||
ESRecheckDataVO esRecheckDataVO = getEsRecheckDataVO(es, standardizationUser, standardEngineer, recheckPlan);
|
ESRecheckDataVO esRecheckDataVO = getEsRecheckDataVO(es, standardizationUser, standardEngineer, recheckPlan);
|
||||||
|
|||||||
+14
-7
@@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||||
import com.jero.modules.activiti.process.common.entity.CommonVO;
|
|
||||||
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
|
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
|
||||||
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.activiti.process.esRecheck.service.ProcessEsRecheckService;
|
||||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRecheckPlan;
|
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRecheckPlan;
|
||||||
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
|
import com.jero.modules.laws.enterprise.entity.dto.ESQueryCommonDTO;
|
||||||
@@ -18,7 +15,6 @@ import com.jero.modules.laws.enterprise.service.EnterpriseStandardRecheckPlanSer
|
|||||||
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
||||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||||
import com.jero.modules.laws.system.service.ILawsContactManageService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.quartz.Job;
|
import org.quartz.Job;
|
||||||
import org.quartz.JobExecutionContext;
|
import org.quartz.JobExecutionContext;
|
||||||
@@ -28,7 +24,10 @@ import javax.annotation.Resource;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.*;
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.jero.modules.activiti.process.esRecheck.entity.ProcessRecheckConstants.*;
|
import static com.jero.modules.activiti.process.esRecheck.entity.ProcessRecheckConstants.*;
|
||||||
@@ -121,7 +120,11 @@ public class ESRecheckPlanJob implements Job {
|
|||||||
recheckPlan.setRecheckDate(recheckDate);
|
recheckPlan.setRecheckDate(recheckDate);
|
||||||
esRecheckPlanService.save(recheckPlan);
|
esRecheckPlanService.save(recheckPlan);
|
||||||
// 自动发起流程
|
// 自动发起流程
|
||||||
recheckService.autoStartProcess(es, recheckPlan);
|
try {
|
||||||
|
recheckService.autoStartProcess(es, recheckPlan);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("企标编号{}复审流程发起失败,原因:{}", es.getStandardNumber(), e.getMessage());
|
||||||
|
}
|
||||||
log.info("企标编号为{}的企标已经达到35个月,已经自动发起复审流程", es.getStandardNumber());
|
log.info("企标编号为{}的企标已经达到35个月,已经自动发起复审流程", es.getStandardNumber());
|
||||||
} else {
|
} else {
|
||||||
// 如果已经有复审计划,则需要判断是否到达复审日期前一个月,如果到达则需要发起流程,已经发起过流程的不能重复发送
|
// 如果已经有复审计划,则需要判断是否到达复审日期前一个月,如果到达则需要发起流程,已经发起过流程的不能重复发送
|
||||||
@@ -140,7 +143,11 @@ public class ESRecheckPlanJob implements Job {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (now.isAfter(minusMonths) && now.isBefore(recheckLocalDate)) {
|
if (now.isAfter(minusMonths) && now.isBefore(recheckLocalDate)) {
|
||||||
recheckService.autoStartProcess(es, recheckPlan);
|
try {
|
||||||
|
recheckService.autoStartProcess(es, recheckPlan);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("企标编号{}复审流程发起失败,原因:{}", es.getStandardNumber(), e.getMessage());
|
||||||
|
}
|
||||||
log.info("企标编号为{}的企标已经达到复审日期前一个月,已经自动发起复审流程", es.getStandardNumber());
|
log.info("企标编号为{}的企标已经达到复审日期前一个月,已经自动发起复审流程", es.getStandardNumber());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -94,7 +94,7 @@ public class EnterpriseStandardRecheckPlanServiceImpl extends ServiceImpl<Enterp
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void batchStartRecheckPlan(String recheckPlanIds) {
|
public synchronized void batchStartRecheckPlan(String recheckPlanIds) {
|
||||||
if (StrUtil.isBlank(recheckPlanIds)) {
|
if (StrUtil.isBlank(recheckPlanIds)) {
|
||||||
throw new JeroBootException("请选择要启动的复审计划");
|
throw new JeroBootException("请选择要启动的复审计划");
|
||||||
}
|
}
|
||||||
@@ -113,7 +113,7 @@ public class EnterpriseStandardRecheckPlanServiceImpl extends ServiceImpl<Enterp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!errMsgList.isEmpty()) {
|
if (!errMsgList.isEmpty()) {
|
||||||
throw new JeroBootException(String.join(",", errMsgList));
|
throw new JeroBootException(String.join("<br>", errMsgList));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user