fix: 法规符合性评估库

This commit is contained in:
2024-07-24 12:01:25 +08:00
parent 16716e7a34
commit 4eee252ceb
5 changed files with 41 additions and 26 deletions
@@ -23,6 +23,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -70,9 +71,22 @@ public class ProcessSCCEndListener implements ExecutionListener {
Page<ProcessApprovalRecord> processApprovalRecordPage = processApprovalRecordService
.pageList(page, processApprovalRecord, COMPLETED_RECORD_LIST);
List<ProcessApprovalRecord> processApprovalRecordList = processApprovalRecordPage.getRecords();
// 找到流程数据
LambdaQueryWrapper<ProcessStandardComplianceCheck> sccWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> sccDetailWrapper = new LambdaQueryWrapper<>();
String processInstanceId = delegateExecution.getProcessInstanceId();
sccWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, processInstanceId);
ProcessStandardComplianceCheck scc = sccService.getOne(sccWrapper);
// 找到条款数据
sccDetailWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId());
List<ProcessStandardComplianceCheckDetail> list = sccDetailService.list(sccDetailWrapper);
// 找到流程的所有评估人
boolean distribute = (boolean) delegateExecution.getVariable(DISTRIBUTE);
String allAssessors;
Date valuationTime = list.stream()
.map(ProcessStandardComplianceCheckDetail::getValuationTime)
.max(Comparator.naturalOrder())
.orElse(new Date());
if (distribute) {
allAssessors = processApprovalRecordList.stream()
.filter(task -> task.getNodeId().equals(DESIGNER_ENGINEER_EVALUATION))
@@ -89,15 +103,6 @@ public class ProcessSCCEndListener implements ExecutionListener {
.map(ProcessApprovalRecord::getUserId)
.distinct()
.collect(Collectors.joining(","));
LambdaQueryWrapper<ProcessStandardComplianceCheck> sccWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> sccDetailWrapper = new LambdaQueryWrapper<>();
// 找到流程数据
String processInstanceId = delegateExecution.getProcessInstanceId();
sccWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, processInstanceId);
ProcessStandardComplianceCheck scc = sccService.getOne(sccWrapper);
// 找到条款数据
sccDetailWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId());
List<ProcessStandardComplianceCheckDetail> list = sccDetailService.list(sccDetailWrapper);
// 入库保存
LambdaQueryWrapper<LawsConformityAssessmentLibrary> calWrapper = new LambdaQueryWrapper<>();
calWrapper.eq(LawsConformityAssessmentLibrary::getStandardNumber, scc.getStandardNumber());
@@ -106,6 +111,7 @@ public class ProcessSCCEndListener implements ExecutionListener {
if (lawsConformityAssessmentLibrary == null) {
lawsConformityAssessmentLibrary = BeanCopyUtils.copyBean(scc, LawsConformityAssessmentLibrary.class);
lawsConformityAssessmentLibrary.setId(null);
lawsConformityAssessmentLibrary.setValuationTime(valuationTime);
lawsConformityAssessmentLibrary.setAllApprovalUser(allApprovalUsers);
lawsConformityAssessmentLibrary.setAllAssessor(allAssessors);
calService.save(lawsConformityAssessmentLibrary);
@@ -123,6 +129,12 @@ public class ProcessSCCEndListener implements ExecutionListener {
// 更新评估日期
lawsConformityAssessmentLibrary.setAllApprovalUser(allApprovalUsers);
lawsConformityAssessmentLibrary.setAllAssessor(allAssessors);
// 如果大于原来的评估日期,则更新
if (lawsConformityAssessmentLibrary.getValuationTime() == null ||
lawsConformityAssessmentLibrary.getValuationTime().before(valuationTime)
) {
lawsConformityAssessmentLibrary.setValuationTime(valuationTime);
}
calService.updateById(lawsConformityAssessmentLibrary);
}
@@ -84,7 +84,6 @@ public class LawsConformityAssessmentLibrary implements Serializable {
/**
* 适用市场
*/
@TableField(exist = false)
@ApiModelProperty(value = "适用市场")
@Dict(dicCode = "market_state")
private String applicableMarket;
@@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
*
* @TableName laws_conformity_assessment_library_detail
@@ -98,6 +98,7 @@ public class LawsConformityAssessmentLibraryDetail implements Serializable {
/**
* 评估结果
*/
@Dict(dicCode = "evaluation_result")
@ApiModelProperty(value = "评估结果")
private String result;
@@ -6,7 +6,6 @@
<resultMap id="BaseResultMap" type="com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibrary">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="source" column="source" jdbcType="VARCHAR"/>
<result property="standardId" column="standard_id" jdbcType="VARCHAR"/>
<result property="standardNumber" column="standard_number" jdbcType="VARCHAR"/>
<result property="standardName" column="standard_name" jdbcType="VARCHAR"/>
@@ -14,21 +13,21 @@
</resultMap>
<sql id="Base_Column_List">
id,source,standard_id,
id,standard_id,
standard_number,standard_name,valuation_time
</sql>
<select id="queryByPage" resultType="com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibrary">
select
cs.id,
cs.standard_id,
d.standard_number,
d.standard_name,
d.applicable_market,
cs.valuation_time
select cs.id,
cs.standard_id,
IF(cs.standard_id IS NOT NULL, d.standard_number, cs.standard_number) AS standard_number,
IF(cs.standard_id IS NOT NULL, d.standard_name, cs.standard_name) AS standard_name,
lms.country as applicableMarket,
cs.valuation_time
from laws_conformity_assessment_library cs
left join laws_domestic_standard as d on d.id = cs.standard_id
${ew.customSqlSegment}
left join laws_domestic_standard as d on d.id = cs.standard_id
left join laws_market_standard as lms on lms.id = cs.applicable_market
${ew.customSqlSegment}
</select>
<select id="detail"
@@ -84,8 +84,12 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl<Laws
"d.standard_number", lawsConformityAssessmentLibrary.getStandardNumber());
queryWrapper.like(StringUtils.isNotBlank(lawsConformityAssessmentLibrary.getStandardName()),
"d.standard_name", lawsConformityAssessmentLibrary.getStandardName());
if (StringUtils.isNotBlank(lawsConformityAssessmentLibrary.getApplicableMarket())) {
queryWrapper.in("d.applicable_market", Arrays.asList(lawsConformityAssessmentLibrary.getApplicableMarket().split(",")));
String applicableMarkets = lawsConformityAssessmentLibrary.getApplicableMarket();
if (StringUtils.isNotBlank(applicableMarkets)) {
String[] split = applicableMarkets.split(",");
for (String splitStr : split) {
queryWrapper.like("lms.country", splitStr);
}
}
if (StringUtils.isNotBlank(lawsConformityAssessmentLibrary.getSelections())) {
queryWrapper.in("cs.id", Arrays.asList(lawsConformityAssessmentLibrary.getSelections().split(",")));