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.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit;
|
||||
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.vo.ESRevisionDataVO;
|
||||
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.service.EnterpriseStandardPlanService;
|
||||
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
||||
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.delegate.DelegateExecution;
|
||||
import org.activiti.engine.delegate.ExecutionListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
@@ -34,6 +40,9 @@ public class ProcessESAnnualInitEndListener implements ExecutionListener {
|
||||
@Resource
|
||||
private EsRevisionService esRevisionService;
|
||||
|
||||
@Resource
|
||||
private EnterpriseStandardUtil esUtil;
|
||||
|
||||
/**
|
||||
* 流程结束之后需要把数据存入企标计划数据库
|
||||
*
|
||||
@@ -58,16 +67,35 @@ public class ProcessESAnnualInitEndListener implements ExecutionListener {
|
||||
for (EnterpriseStandardPlan esp : enterpriseStandardPlans) {
|
||||
esp.setApplicationCategory(esp.getProjectType());
|
||||
}
|
||||
espService.saveBatch(enterpriseStandardPlans);
|
||||
log.info("数据存入企标计划数据库");
|
||||
// 自动发起制修订流程
|
||||
log.info("自动发起企标制修订流程");
|
||||
// 生成企标编号
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
String newStandardNumber;
|
||||
// 获取当前年份
|
||||
Calendar date = Calendar.getInstance();
|
||||
String curYearNumber = String.valueOf(date.get(Calendar.YEAR));
|
||||
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();
|
||||
ProcessEsRevision revision = new ProcessEsRevision();
|
||||
revision.setEspId(esp.getId());
|
||||
revisionDataVO.setData(revision);
|
||||
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.vo.ESRevisionDataVO;
|
||||
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.service.EnterpriseStandardPlanService;
|
||||
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
|
||||
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.delegate.DelegateExecution;
|
||||
import org.activiti.engine.delegate.ExecutionListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
@@ -35,6 +40,9 @@ public class ProcessESAnnualReportEndListener implements ExecutionListener {
|
||||
@Resource
|
||||
private EsRevisionService esRevisionService;
|
||||
|
||||
@Resource
|
||||
private EnterpriseStandardUtil esUtil;
|
||||
|
||||
/**
|
||||
* 流程结束之后需要把数据存入企标计划数据库
|
||||
*
|
||||
@@ -59,16 +67,35 @@ public class ProcessESAnnualReportEndListener implements ExecutionListener {
|
||||
for (EnterpriseStandardPlan esp : enterpriseStandardPlans) {
|
||||
esp.setApplicationCategory(esp.getProjectType());
|
||||
}
|
||||
espService.saveBatch(enterpriseStandardPlans);
|
||||
log.info("数据存入企标计划数据库");
|
||||
// 自动发起制修订流程
|
||||
log.info("自动发起企标制修订流程");
|
||||
// 生成企标编号
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
String newStandardNumber;
|
||||
// 获取当前年份
|
||||
Calendar date = Calendar.getInstance();
|
||||
String curYearNumber = String.valueOf(date.get(Calendar.YEAR));
|
||||
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();
|
||||
ProcessEsRevision revision = new ProcessEsRevision();
|
||||
revision.setEspId(esp.getId());
|
||||
revisionDataVO.setData(revision);
|
||||
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.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.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.setSolicitationDraftPlanCompleteDate(importUtil.convertDate(item.getSolicitationDraftPlanCompleteDateString()));
|
||||
item.setPlanApprovalDate(importUtil.convertDate(item.getPlanApprovalDateString()));
|
||||
|
||||
+4
-1
@@ -189,7 +189,10 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
||||
// 人员
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, variables);
|
||||
// 根据流程实例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 revisionType = esp.getProjectType().equals(ESPRevisionType.ENACT.getValue()) ? "制定" : "修订";
|
||||
String prcName = standardNo + "-" + newStandardName + "-" + revisionType;
|
||||
|
||||
+14
@@ -100,6 +100,20 @@ public class EnterpriseStandardUtil {
|
||||
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) {
|
||||
|
||||
Reference in New Issue
Block a user