diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/app/AppEvalSignTaskController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/app/AppEvalSignTaskController.java index baeb3d2..c67eea4 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/app/AppEvalSignTaskController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/app/AppEvalSignTaskController.java @@ -34,7 +34,7 @@ public class AppEvalSignTaskController { } @ApiOperation("签字上传") - @PostMapping("/signAndUpload") + @PostMapping("/signAndUpload") public SingleResponse signAndUpload(@RequestBody EditSignTaskSaveCmd cmd) { return evalSignTaskApi.signAndUpload(cmd); } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/change/convertor/QualFilingComplianceCmdConvertor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/change/convertor/QualFilingComplianceCmdConvertor.java new file mode 100644 index 0000000..d98b3fc --- /dev/null +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/change/convertor/QualFilingComplianceCmdConvertor.java @@ -0,0 +1,75 @@ +package org.qinan.safetyeval.app.change.convertor; + +import com.alibaba.fastjson.JSON; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Named; +import org.qinan.safetyeval.client.dto.AggregationSaveOrEditQualFilingCmd; +import org.qinan.safetyeval.client.dto.QualFilingAddCmd; +import org.qinan.safetyeval.client.dto.QualFilingCommitmentAddCmd; +import org.qinan.safetyeval.client.dto.QualFilingEquipmentAddCmd; +import org.qinan.safetyeval.client.dto.QualFilingMaterialAddCmd; +import org.qinan.safetyeval.client.dto.QualFilingPersonnelAddCmd; +import org.qinan.safetyeval.infrastructure.dataobject.QualFilingCommitmentDO; +import org.qinan.safetyeval.infrastructure.dataobject.QualFilingDO; +import org.qinan.safetyeval.infrastructure.dataobject.QualFilingEquipmentDO; +import org.qinan.safetyeval.infrastructure.dataobject.QualFilingMaterialDO; +import org.qinan.safetyeval.infrastructure.dataobject.QualFilingPersonnelDO; + +import java.util.List; + +/** + * 备案合规性校验聚合Cmd转换器 + * 将备案各DO聚合转换为 {@link AggregationSaveOrEditQualFilingCmd}(用于合规性校验) + * + * @author safety-eval + */ +@Mapper(componentModel = "spring") +public interface QualFilingComplianceCmdConvertor { + + /** + * 聚合转换:根据备案各DO组装合规性校验所需的聚合Cmd + */ + @Mapping(target = "qualFilingAddCmd", source = "qualFilingDO") + @Mapping(target = "qualFilingCommitmentAddCmd", source = "qualFilingCommitmentDO") + @Mapping(target = "qualFilingEquipmentAddCmds", source = "qualFilingEquipmentDOs") + @Mapping(target = "qualFilingMaterialAddCmds", source = "qualFilingMaterialDOs") + @Mapping(target = "qualFilingPersonnelAddCmds", source = "qualFilingPersonnelDOs") + @Mapping(target = "qualFilingPersonnelCertAddCmds", ignore = true) + AggregationSaveOrEditQualFilingCmd convertToCmd(QualFilingDO qualFilingDO, + QualFilingCommitmentDO qualFilingCommitmentDO, + List qualFilingEquipmentDOs, + List qualFilingMaterialDOs, + List qualFilingPersonnelDOs); + + /** + * 备案基本信息DO转Cmd(businessScope 由 JSON 字符串解析为 List) + */ + @Mapping(target = "businessScope", source = "businessScope", qualifiedByName = "jsonStringToList") + QualFilingAddCmd convertFilingDOToCmd(QualFilingDO qualFilingDO); + + /** + * 备案承诺书DO转Cmd + */ + QualFilingCommitmentAddCmd convertCommitmentDOToCmd(QualFilingCommitmentDO qualFilingCommitmentDO); + + /** + * 备案装备DO转Cmd + */ + QualFilingEquipmentAddCmd convertEquipmentDOToCmd(QualFilingEquipmentDO qualFilingEquipmentDO); + + /** + * 备案材料DO转Cmd + */ + QualFilingMaterialAddCmd convertMaterialDOToCmd(QualFilingMaterialDO qualFilingMaterialDO); + + /** + * 备案人员DO转Cmd + */ + QualFilingPersonnelAddCmd convertPersonnelDOToCmd(QualFilingPersonnelDO qualFilingPersonnelDO); + + @Named("jsonStringToList") + default List jsonStringToList(String json) { + return json == null ? null : JSON.parseArray(json, String.class); + } +} diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingExecutor.java index 4d6da61..69d6ce1 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingExecutor.java @@ -73,6 +73,8 @@ public class QualFilingExecutor implements QualFilingApi { private QualFilingMaterialChangeCmdConvertor qualFilingMaterialChangeCmdConvertor; @Resource private QualFilingPersonnelChangeCmdConvertor qualFilingPersonnelChangeCmdConvertor; + @Resource + private QualFilingComplianceCmdConvertor qualFilingComplianceCmdConvertor; @Override public SingleResponse add(QualFilingAddCmd cmd) { @@ -289,28 +291,23 @@ public class QualFilingExecutor implements QualFilingApi { @Override public SingleResponse> checkItem(Long filingId) { QualFilingDO qualFilingDO = qualFilingMapper.selectById(filingId); - - // 审核通过,需要新增资质变更记录 - AggregationSaveOrEditQualFilingCmd cmdSync = new AggregationSaveOrEditQualFilingCmd(); - - cmdSync.setQualFilingAddCmd(qualFilingChangeCmdConvertor.convertDOToCmd(qualFilingDO)); // 备案承诺书 QualFilingCommitmentDO qualFilingCommitmentDO = qualFilingCommitmentMapper.selectOne(new LambdaQueryWrapper() .eq(QualFilingCommitmentDO::getFilingId, filingId)); - cmdSync.setQualFilingCommitmentAddCmd(qualFilingCommitmentChangeCmdConvertor.convertDOToCmd(qualFilingCommitmentDO)); // 备案装备 List qualFilingEquipmentDOs = qualFilingEquipmentMapper.selectList(new LambdaQueryWrapper() .eq(QualFilingEquipmentDO::getFilingId, filingId)); - cmdSync.setQualFilingEquipmentAddCmds(qualFilingEquipmentChangeCmdConvertor.convertDOListToCmdList(qualFilingEquipmentDOs)); // 备案材料清单 List qualFilingMaterialDOs = qualFilingMaterialMapper.selectList(new LambdaQueryWrapper() .eq(QualFilingMaterialDO::getFilingId, filingId)); - cmdSync.setQualFilingMaterialAddCmds(qualFilingMaterialChangeCmdConvertor.convertDOListToCmdList(qualFilingMaterialDOs)); // 备案人员 List qualFilingPersonnelDOs = qualFilingPersonnelMapper.selectList(new LambdaQueryWrapper() .eq(QualFilingPersonnelDO::getFilingId, filingId)); - cmdSync.setQualFilingPersonnelAddCmds(qualFilingPersonnelChangeCmdConvertor.convertDOListToCmdList(qualFilingPersonnelDOs)); - return SingleResponse.success(ComplianceCheckUtil.complianceCheck(cmdSync,false)); + + // 聚合转换为合规性校验Cmd + AggregationSaveOrEditQualFilingCmd cmdSync = qualFilingComplianceCmdConvertor.convertToCmd( + qualFilingDO, qualFilingCommitmentDO, qualFilingEquipmentDOs, qualFilingMaterialDOs, qualFilingPersonnelDOs); + return SingleResponse.success(ComplianceCheckUtil.complianceCheck(cmdSync, false)); } private QualFilingCO toLegacyCO(QualFilingEntity entity) {