feat: 企标制修订流程-最终监听器

This commit is contained in:
2023-12-25 11:35:20 +08:00
parent ecf253b638
commit 4b17cfd2e2
3 changed files with 80 additions and 50 deletions
@@ -1,48 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.activiti.process.esChange.mapper.ProcessEsChangeMapper">
<resultMap id="BaseResultMap" type="com.jero.modules.activiti.process.esChange.entity.ProcessEsChange">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="orgCode" column="org_code" jdbcType="VARCHAR"/>
<result property="delFlag" column="del_flag" jdbcType="TINYINT"/>
<result property="processInstanceId" column="process_instance_id" jdbcType="VARCHAR"/>
<result property="standardNumber" column="standard_number" jdbcType="VARCHAR"/>
<result property="standardName" column="standard_name" jdbcType="VARCHAR"/>
<result property="standardSystem" column="standard_system" jdbcType="VARCHAR"/>
<result property="standardCategory" column="standard_category" jdbcType="VARCHAR"/>
<result property="gradeClassification" column="grade_classification" jdbcType="VARCHAR"/>
<result property="englishName" column="english_name" jdbcType="VARCHAR"/>
<result property="releaseDate" column="release_date" jdbcType="TIMESTAMP"/>
<result property="implementationDate" column="implementation_date" jdbcType="TIMESTAMP"/>
<result property="tryFlag" column="try_flag" jdbcType="TINYINT"/>
<result property="trialPeriod" column="trial_period" jdbcType="VARCHAR"/>
<result property="partName" column="part_name" jdbcType="VARCHAR"/>
<result property="mainDraftingUser" column="main_drafting_user" jdbcType="VARCHAR"/>
<result property="mainDraftingUnit" column="main_drafting_unit" jdbcType="VARCHAR"/>
<result property="standardScope" column="standard_scope" jdbcType="VARCHAR"/>
<result property="substituteStandardNumber" column="substitute_standard_number" jdbcType="VARCHAR"/>
<result property="quotedStandard" column="quoted_standard" jdbcType="VARCHAR"/>
<result property="associatedFile" column="associated_file" jdbcType="VARCHAR"/>
<result property="acquisitionDegree" column="acquisition_degree" jdbcType="VARCHAR"/>
<result property="internationalStandardNum" column="international_standard_num" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,create_by,create_time,
update_by,update_time,org_code,
del_flag,process_instance_id,standard_number,
standard_name,standard_system,standard_category,
grade_classification,english_name,release_date,
implementation_date,try_flag,trial_period,
part_name,main_drafting_user,main_drafting_unit,
standard_scope,substitute_standard_number,quoted_standard,
associated_file,acquisition_degree,international_standard_num
</sql>
</mapper>
@@ -140,7 +140,6 @@ public class ProcessEsRevision implements Serializable {
/**
* 评审日期
*/
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "评审日期")
@@ -1,16 +1,95 @@
package com.jero.modules.activiti.process.esRevision.listener;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus;
import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision;
import com.jero.modules.activiti.process.esRevision.entity.vo.ReviewMeetingDetailVO;
import com.jero.modules.activiti.process.esRevision.service.EsRevisionService;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.common.service.ILawsCommonService;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardReviewMeetingRecord;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRmrEvaluateDetail;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardReviewMeetingRecordService;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardRmrEvaluateDetailService;
import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.ExecutionListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.*;
/**
* @author: Mzaxd
* @Date: 2023/12/19 11:59
*/
@Component
public class ProcessESRevisionEndListener implements ExecutionListener {
@Resource
private EnterpriseStandardPlanService espService;
@Resource
private EsRevisionService esRevisionService;
@Resource
private EnterpriseStandardReviewMeetingRecordService rmrService;
@Resource
private EnterpriseStandardRmrEvaluateDetailService rmrDetailService;
@Resource
private ILawsCommonService lawsCommonService;
@Resource
private ILawsEnterpriseStandardService esService;
@Override
public void notify(DelegateExecution delegateExecution) {
// 获取流程实例Id
String processInstanceId = delegateExecution.getProcessInstanceId();
// 根据流程Id获取业务数据
LambdaQueryWrapper<ProcessEsRevision> revisionWrapper = new LambdaQueryWrapper<>();
revisionWrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId);
// 获取企标相关数据
ProcessEsRevision data = esRevisionService.getOne(revisionWrapper);
Map<String, Object> variables = JSON.parseObject(data.getBusinessJson(), Map.class);
String inspectContentJson = data.getInspectContentJson();
List<LinkedHashMap<String, Object>> inspectContentList;
if (StrUtil.isNotBlank(inspectContentJson)) {
inspectContentList =
JSON.parseObject(inspectContentJson, new TypeReference<List<LinkedHashMap<String, Object>>>() {});
variables.put(FieldCommon.CHECK_LIST, inspectContentList);
}
// 发布企标
lawsCommonService.commonAdd(variables);
String espId = data.getEspId();
EnterpriseStandardPlan esp = espService.getById(espId);
String newStandardNo = esp.getNewEnStandardNo();
LambdaQueryWrapper<LawsEnterpriseStandard> esWrapper = new LambdaQueryWrapper<>();
esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, newStandardNo);
LawsEnterpriseStandard es = esService.getOne(esWrapper);
// 保存评审会记录
EnterpriseStandardReviewMeetingRecord esRmr = new EnterpriseStandardReviewMeetingRecord();
esRmr.setStandardId(es.getId());
esRmr.setStandardNo(es.getStandardNumber());
esRmr.setReviewDate(data.getReviewDate());
rmrService.save(esRmr);
// 保存评审会评审结果
List<ReviewMeetingDetailVO> reviewMeetingDetailVOS = data.parseReviewMeetingDetails();
List<EnterpriseStandardRmrEvaluateDetail> rmrEvaluateDetails =
BeanCopyUtils.copyBeanList(reviewMeetingDetailVOS, EnterpriseStandardRmrEvaluateDetail.class);
rmrEvaluateDetails.forEach(r -> r.setReviewMeetingId(esRmr.getId()));
rmrDetailService.saveBatch(rmrEvaluateDetails);
// 企标计划改为已完成
esp.setProjectStatus(ESPProjectStatus.COMPLETED.getValue());
espService.updateById(esp);
}
}