fix: 年度制修订流程结束后自动发起企标制修订流程生成企标编号BUG
This commit is contained in:
+32
-4
@@ -3,19 +3,25 @@ package com.jero.modules.activiti.process.esAnnualInit.listener;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit;
|
import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit;
|
||||||
import com.jero.modules.activiti.process.esAnnualInit.service.impl.ProcessEsAnnualInitServiceImpl;
|
import com.jero.modules.activiti.process.esAnnualInit.service.impl.ProcessEsAnnualInitServiceImpl;
|
||||||
|
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPRevisionType;
|
||||||
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
|
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
|
||||||
import com.jero.modules.activiti.process.esRevision.entity.vo.ESRevisionDataVO;
|
import com.jero.modules.activiti.process.esRevision.entity.vo.ESRevisionDataVO;
|
||||||
import com.jero.modules.activiti.process.esRevision.service.EsRevisionService;
|
import com.jero.modules.activiti.process.esRevision.service.EsRevisionService;
|
||||||
|
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
||||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
||||||
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
||||||
|
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.activiti.engine.delegate.DelegateExecution;
|
import org.activiti.engine.delegate.DelegateExecution;
|
||||||
import org.activiti.engine.delegate.ExecutionListener;
|
import org.activiti.engine.delegate.ExecutionListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: Mzaxd
|
* @author: Mzaxd
|
||||||
@@ -34,6 +40,9 @@ public class ProcessESAnnualInitEndListener implements ExecutionListener {
|
|||||||
@Resource
|
@Resource
|
||||||
private EsRevisionService esRevisionService;
|
private EsRevisionService esRevisionService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private EnterpriseStandardUtil esUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程结束之后需要把数据存入企标计划数据库
|
* 流程结束之后需要把数据存入企标计划数据库
|
||||||
*
|
*
|
||||||
@@ -58,16 +67,35 @@ public class ProcessESAnnualInitEndListener implements ExecutionListener {
|
|||||||
for (EnterpriseStandardPlan esp : enterpriseStandardPlans) {
|
for (EnterpriseStandardPlan esp : enterpriseStandardPlans) {
|
||||||
esp.setApplicationCategory(esp.getProjectType());
|
esp.setApplicationCategory(esp.getProjectType());
|
||||||
}
|
}
|
||||||
espService.saveBatch(enterpriseStandardPlans);
|
// 生成企标编号
|
||||||
log.info("数据存入企标计划数据库");
|
Map<String, Object> map = new HashMap<>();
|
||||||
// 自动发起制修订流程
|
String newStandardNumber;
|
||||||
log.info("自动发起企标制修订流程");
|
// 获取当前年份
|
||||||
|
Calendar date = Calendar.getInstance();
|
||||||
|
String curYearNumber = String.valueOf(date.get(Calendar.YEAR));
|
||||||
for (EnterpriseStandardPlan esp : enterpriseStandardPlans) {
|
for (EnterpriseStandardPlan esp : enterpriseStandardPlans) {
|
||||||
|
// 制定生成新企标编号
|
||||||
|
if (esp.getApplicationCategory().equals(ESPRevisionType.ENACT.getValue())) {
|
||||||
|
map.put(FieldCommon.ENTERPRISE_STANDARD_CODE, esp.getEnStandardCode());
|
||||||
|
map.put(FieldCommon.ENTERPRISE_NAME_CODE, esp.getEnNameCode());
|
||||||
|
map.put(FieldCommon.STANDARD_CATEGORY_CODE, esp.getStandardCategoryCode());
|
||||||
|
map.put(FieldCommon.YEAR_NUMBER, curYearNumber);
|
||||||
|
newStandardNumber = esUtil.generateStandardNumber(map);
|
||||||
|
esp.setNewEnStandardNo(newStandardNumber);
|
||||||
|
}
|
||||||
|
// 修订只改年代号
|
||||||
|
if (esp.getApplicationCategory().equals(ESPRevisionType.MODIFY.getValue())) {
|
||||||
|
newStandardNumber = esUtil.changeStandardNumberYearNumber(esp.getOriginEnStandardNo(), curYearNumber);
|
||||||
|
esp.setNewEnStandardNo(newStandardNumber);
|
||||||
|
}
|
||||||
|
espService.save(esp);
|
||||||
|
log.info("数据存入企标计划数据库");
|
||||||
ESRevisionDataVO revisionDataVO = new ESRevisionDataVO();
|
ESRevisionDataVO revisionDataVO = new ESRevisionDataVO();
|
||||||
ProcessEsRevision revision = new ProcessEsRevision();
|
ProcessEsRevision revision = new ProcessEsRevision();
|
||||||
revision.setEspId(esp.getId());
|
revision.setEspId(esp.getId());
|
||||||
revisionDataVO.setData(revision);
|
revisionDataVO.setData(revision);
|
||||||
esRevisionService.autoStartProcess(revisionDataVO);
|
esRevisionService.autoStartProcess(revisionDataVO);
|
||||||
|
log.info("自动发起企标制修订流程");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+31
-4
@@ -7,16 +7,21 @@ import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPRevisionTy
|
|||||||
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
|
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
|
||||||
import com.jero.modules.activiti.process.esRevision.entity.vo.ESRevisionDataVO;
|
import com.jero.modules.activiti.process.esRevision.entity.vo.ESRevisionDataVO;
|
||||||
import com.jero.modules.activiti.process.esRevision.service.EsRevisionService;
|
import com.jero.modules.activiti.process.esRevision.service.EsRevisionService;
|
||||||
|
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
||||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
||||||
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
||||||
|
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.activiti.engine.delegate.DelegateExecution;
|
import org.activiti.engine.delegate.DelegateExecution;
|
||||||
import org.activiti.engine.delegate.ExecutionListener;
|
import org.activiti.engine.delegate.ExecutionListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: Mzaxd
|
* @author: Mzaxd
|
||||||
@@ -35,6 +40,9 @@ public class ProcessESAnnualReportEndListener implements ExecutionListener {
|
|||||||
@Resource
|
@Resource
|
||||||
private EsRevisionService esRevisionService;
|
private EsRevisionService esRevisionService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private EnterpriseStandardUtil esUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 流程结束之后需要把数据存入企标计划数据库
|
* 流程结束之后需要把数据存入企标计划数据库
|
||||||
*
|
*
|
||||||
@@ -59,16 +67,35 @@ public class ProcessESAnnualReportEndListener implements ExecutionListener {
|
|||||||
for (EnterpriseStandardPlan esp : enterpriseStandardPlans) {
|
for (EnterpriseStandardPlan esp : enterpriseStandardPlans) {
|
||||||
esp.setApplicationCategory(esp.getProjectType());
|
esp.setApplicationCategory(esp.getProjectType());
|
||||||
}
|
}
|
||||||
espService.saveBatch(enterpriseStandardPlans);
|
// 生成企标编号
|
||||||
log.info("数据存入企标计划数据库");
|
Map<String, Object> map = new HashMap<>();
|
||||||
// 自动发起制修订流程
|
String newStandardNumber;
|
||||||
log.info("自动发起企标制修订流程");
|
// 获取当前年份
|
||||||
|
Calendar date = Calendar.getInstance();
|
||||||
|
String curYearNumber = String.valueOf(date.get(Calendar.YEAR));
|
||||||
for (EnterpriseStandardPlan esp : enterpriseStandardPlans) {
|
for (EnterpriseStandardPlan esp : enterpriseStandardPlans) {
|
||||||
|
// 制定生成新企标编号
|
||||||
|
if (esp.getApplicationCategory().equals(ESPRevisionType.ENACT.getValue())) {
|
||||||
|
map.put(FieldCommon.ENTERPRISE_STANDARD_CODE, esp.getEnStandardCode());
|
||||||
|
map.put(FieldCommon.ENTERPRISE_NAME_CODE, esp.getEnNameCode());
|
||||||
|
map.put(FieldCommon.STANDARD_CATEGORY_CODE, esp.getStandardCategoryCode());
|
||||||
|
map.put(FieldCommon.YEAR_NUMBER, curYearNumber);
|
||||||
|
newStandardNumber = esUtil.generateStandardNumber(map);
|
||||||
|
esp.setNewEnStandardNo(newStandardNumber);
|
||||||
|
}
|
||||||
|
// 修订只改年代号
|
||||||
|
if (esp.getApplicationCategory().equals(ESPRevisionType.MODIFY.getValue())) {
|
||||||
|
newStandardNumber = esUtil.changeStandardNumberYearNumber(esp.getOriginEnStandardNo(), curYearNumber);
|
||||||
|
esp.setNewEnStandardNo(newStandardNumber);
|
||||||
|
}
|
||||||
|
espService.save(esp);
|
||||||
|
log.info("数据存入企标计划数据库");
|
||||||
ESRevisionDataVO revisionDataVO = new ESRevisionDataVO();
|
ESRevisionDataVO revisionDataVO = new ESRevisionDataVO();
|
||||||
ProcessEsRevision revision = new ProcessEsRevision();
|
ProcessEsRevision revision = new ProcessEsRevision();
|
||||||
revision.setEspId(esp.getId());
|
revision.setEspId(esp.getId());
|
||||||
revisionDataVO.setData(revision);
|
revisionDataVO.setData(revision);
|
||||||
esRevisionService.autoStartProcess(revisionDataVO);
|
esRevisionService.autoStartProcess(revisionDataVO);
|
||||||
|
log.info("自动发起企标制修订流程");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -413,7 +413,7 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
|||||||
item.setMainDraftingUnitResponsiblePerson(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getMainDraftingUnitResponsiblePerson(), listDict));
|
item.setMainDraftingUnitResponsiblePerson(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getMainDraftingUnitResponsiblePerson(), listDict));
|
||||||
item.setStandardPromoter(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getStandardPromoter(), listDict));
|
item.setStandardPromoter(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getStandardPromoter(), listDict));
|
||||||
item.setWorkGroup(excelUtils.translateDictValue("name", "id", "laws_working_group", item.getWorkGroup(), listDict));
|
item.setWorkGroup(excelUtils.translateDictValue("name", "id", "laws_working_group", item.getWorkGroup(), listDict));
|
||||||
item.setEnStandardSystem(excelUtils.translateDictValue("node_name", "id", "laws_tree_node", item.getWorkGroup(), listDict));
|
item.setEnStandardSystem(excelUtils.translateDictValue("node_name", "id", "laws_tree_node", item.getEnStandardSystem(), listDict));
|
||||||
item.setDraftPlannedCompleteDate(importUtil.convertDate(item.getDraftPlannedCompleteDateString()));
|
item.setDraftPlannedCompleteDate(importUtil.convertDate(item.getDraftPlannedCompleteDateString()));
|
||||||
item.setSolicitationDraftPlanCompleteDate(importUtil.convertDate(item.getSolicitationDraftPlanCompleteDateString()));
|
item.setSolicitationDraftPlanCompleteDate(importUtil.convertDate(item.getSolicitationDraftPlanCompleteDateString()));
|
||||||
item.setPlanApprovalDate(importUtil.convertDate(item.getPlanApprovalDateString()));
|
item.setPlanApprovalDate(importUtil.convertDate(item.getPlanApprovalDateString()));
|
||||||
|
|||||||
+4
-1
@@ -189,7 +189,10 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
|||||||
// 人员
|
// 人员
|
||||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, variables);
|
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, variables);
|
||||||
// 根据流程实例id更新流程总表
|
// 根据流程实例id更新流程总表
|
||||||
String standardNo = StrUtil.isNotBlank(esp.getNewEnStandardNo()) ? esp.getNewEnStandardNo() : esp.getOriginEnStandardNo();
|
String standardNo = esp.getNewEnStandardNo();
|
||||||
|
if (StrUtil.isBlank(standardNo)) {
|
||||||
|
throw new JeroBootException("企标计划Id为{}的企标计划新企标编号为空,无法正常自动发起制修订流程", esp.getId());
|
||||||
|
}
|
||||||
String newStandardName = esp.getNewEnStandardName();
|
String newStandardName = esp.getNewEnStandardName();
|
||||||
String revisionType = esp.getProjectType().equals(ESPRevisionType.ENACT.getValue()) ? "制定" : "修订";
|
String revisionType = esp.getProjectType().equals(ESPRevisionType.ENACT.getValue()) ? "制定" : "修订";
|
||||||
String prcName = standardNo + "-" + newStandardName + "-" + revisionType;
|
String prcName = standardNo + "-" + newStandardName + "-" + revisionType;
|
||||||
|
|||||||
+14
@@ -100,6 +100,20 @@ public class EnterpriseStandardUtil {
|
|||||||
return standardNumber;
|
return standardNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 改变企标编号的年代号
|
||||||
|
*
|
||||||
|
* @param oldStandardNumber 老企标编号
|
||||||
|
* @param newYearNumber 新年代号
|
||||||
|
* @return 新企标编号
|
||||||
|
*/
|
||||||
|
public String changeStandardNumberYearNumber(String oldStandardNumber, String newYearNumber) {
|
||||||
|
// 截取-前面的内容
|
||||||
|
String oldStandardNumberPrefix = oldStandardNumber.substring(0, oldStandardNumber.lastIndexOf('-'));
|
||||||
|
String newStandardNumber = oldStandardNumberPrefix + "-" + newYearNumber;
|
||||||
|
log.info("改变年代号后的新企标标准号:{}", newStandardNumber);
|
||||||
|
return newStandardNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private String transEsCode(String esCode) {
|
private String transEsCode(String esCode) {
|
||||||
|
|||||||
Reference in New Issue
Block a user