Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # safety-eval-start/src/main/resources/templates/safetyEval.htmldev
commit
06f271df83
|
|
@ -127,4 +127,10 @@ public class QualFilingController {
|
|||
return qualFilingApi.qualificationMonitoringPageStatistics();
|
||||
}
|
||||
|
||||
@ApiOperation("获取检查项")
|
||||
@GetMapping("/check-item")
|
||||
public SingleResponse<List<QualFilingComplianceCheckResultCO>> checkItem(@ApiParam("主键ID") @RequestParam Long id) {
|
||||
return qualFilingApi.checkItem(id);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,11 @@ import org.qinan.safetyeval.client.co.institution.EvalProcessControlCO;
|
|||
import org.qinan.safetyeval.client.co.institution.EvalProcessControlDetailCO;
|
||||
import org.qinan.safetyeval.client.co.institution.EvalProjectFileCO;
|
||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||
import org.qinan.safetyeval.client.dto.institution.*;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalProcessArchiveCmd;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalProcessControlAssignCmd;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalProcessControlConfirmCmd;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalgenerateProcessControlFormCmd;
|
||||
import org.qinan.safetyeval.infrastructure.remote.SmsRemote;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
|
@ -22,18 +26,9 @@ public class EvalProcessControlController {
|
|||
|
||||
@Resource
|
||||
private EvalProcessControlApi evalProcessControlApi;
|
||||
@Resource
|
||||
private SmsRemote smsRemote;
|
||||
|
||||
/* @ApiOperation("按项目获取或保存")
|
||||
@PostMapping("/get-or-save")
|
||||
public SingleResponse<EvalProcessControlCO> getOrSave(@Validated @RequestBody EvalProcessControlSaveCmd cmd) {
|
||||
return evalProcessControlApi.getOrSave(cmd);
|
||||
}
|
||||
|
||||
@ApiOperation("按项目查询")
|
||||
@GetMapping("/get")
|
||||
public SingleResponse<EvalProcessControlCO> get(@ApiParam("项目ID") @RequestParam String projectId) {
|
||||
return evalProcessControlApi.getByProject(projectId);
|
||||
} */
|
||||
|
||||
@ApiOperation("过程控制确认")
|
||||
@PostMapping("/confirm")
|
||||
|
|
@ -71,4 +66,11 @@ public class EvalProcessControlController {
|
|||
return evalProcessControlApi.listProjectFiles(projectId);
|
||||
}
|
||||
|
||||
@ApiOperation("项目过程文件列表")
|
||||
@GetMapping("/test-sms")
|
||||
public SingleResponse<Void> testSms() {
|
||||
smsRemote.sendMessage("19122631081", "123456");
|
||||
return SingleResponse.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -34,7 +34,7 @@ public class AppEvalSignTaskController {
|
|||
}
|
||||
|
||||
@ApiOperation("签字上传")
|
||||
@PostMapping("/signAndUpload")
|
||||
@PostMapping("/signAndUpload")
|
||||
public SingleResponse<Boolean> signAndUpload(@RequestBody EditSignTaskSaveCmd cmd) {
|
||||
return evalSignTaskApi.signAndUpload(cmd);
|
||||
}
|
||||
|
|
@ -42,6 +42,9 @@ public class AppEvalSignTaskController {
|
|||
@ApiOperation("签字统计")
|
||||
@PostMapping("/signStatistics")
|
||||
public SingleResponse<EvalSignTaskStatisticsCO> signStatistics(@RequestBody EvalSignTaskPageQuery cmd) {
|
||||
if (!StringUtils.hasText(cmd.getSignerPersonnelId())) {
|
||||
cmd.setSignerPersonnelId(String.valueOf(AuthUserContextAdapter.getCurrentUserId()));
|
||||
}
|
||||
return evalSignTaskApi.signStatistics(cmd);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<QualFilingEquipmentDO> qualFilingEquipmentDOs,
|
||||
List<QualFilingMaterialDO> qualFilingMaterialDOs,
|
||||
List<QualFilingPersonnelDO> 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<String> jsonStringToList(String json) {
|
||||
return json == null ? null : JSON.parseArray(json, String.class);
|
||||
}
|
||||
}
|
||||
|
|
@ -2,12 +2,9 @@ package org.qinan.safetyeval.app.executor;
|
|||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.qinan.safetyeval.app.change.convertor.*;
|
||||
import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator;
|
||||
import org.qinan.safetyeval.client.api.QualFilingApi;
|
||||
import org.qinan.safetyeval.client.change.request.QualFilingCommitmentChangeAddCmd;
|
||||
import org.qinan.safetyeval.client.change.request.QualFilingEquipmentChangeAddCmd;
|
||||
import org.qinan.safetyeval.client.change.request.QualFilingMaterialChangeAddCmd;
|
||||
import org.qinan.safetyeval.client.change.request.QualFilingPersonnelChangeAddCmd;
|
||||
import org.qinan.safetyeval.client.co.QualFilingCO;
|
||||
import org.qinan.safetyeval.client.co.QualFilingComplianceCheckResultCO;
|
||||
import org.qinan.safetyeval.client.co.QualFilingDetailCO;
|
||||
|
|
@ -15,7 +12,6 @@ import org.qinan.safetyeval.client.co.QualFilingStatisticsCO;
|
|||
import org.qinan.safetyeval.client.dto.*;
|
||||
import org.qinan.safetyeval.domain.constant.BooleanQAEnum;
|
||||
import org.qinan.safetyeval.domain.constant.QualFilingApplyTypeEnum;
|
||||
import org.qinan.safetyeval.domain.constant.QualFilingReviewResultEnum;
|
||||
import org.qinan.safetyeval.domain.constant.QualFilingStatusEnum;
|
||||
import org.qinan.safetyeval.domain.entity.*;
|
||||
import org.qinan.safetyeval.domain.exception.BizException;
|
||||
|
|
@ -67,6 +63,19 @@ public class QualFilingExecutor implements QualFilingApi {
|
|||
@Resource
|
||||
private QualFilingPersonnelCertMapper qualFilingPersonnelCertMapper;
|
||||
|
||||
@Resource
|
||||
private QualFilingChangeCmdConvertor qualFilingChangeCmdConvertor;
|
||||
@Resource
|
||||
private QualFilingCommitmentChangeCmdConvertor qualFilingCommitmentChangeCmdConvertor;
|
||||
@Resource
|
||||
private QualFilingEquipmentChangeCmdConvertor qualFilingEquipmentChangeCmdConvertor;
|
||||
@Resource
|
||||
private QualFilingMaterialChangeCmdConvertor qualFilingMaterialChangeCmdConvertor;
|
||||
@Resource
|
||||
private QualFilingPersonnelChangeCmdConvertor qualFilingPersonnelChangeCmdConvertor;
|
||||
@Resource
|
||||
private QualFilingComplianceCmdConvertor qualFilingComplianceCmdConvertor;
|
||||
|
||||
@Override
|
||||
public SingleResponse<QualFilingCO> add(QualFilingAddCmd cmd) {
|
||||
QualFilingEntity entity = new QualFilingEntity();
|
||||
|
|
@ -228,6 +237,43 @@ public class QualFilingExecutor implements QualFilingApi {
|
|||
public void review(QualFilingReviewAddCmd cmd) {
|
||||
qualFilingDomainService.review(cmd.getFilingId(), cmd.getReviewResult()
|
||||
, cmd.getReviewResultRemark(), cmd.getFilingExpertId(), cmd.getFilingExpertName(), cmd.getReviewOpinion());
|
||||
QualFilingStatusEnum qualFilingStatusEnum = QualFilingStatusEnum.ofCode(Integer.valueOf(cmd.getReviewResult()));
|
||||
if (qualFilingStatusEnum == QualFilingStatusEnum.FILED) {
|
||||
passedSaveToChange(cmd.getFilingId());
|
||||
}
|
||||
}
|
||||
|
||||
private void passedSaveToChange(Long filingId) {
|
||||
QualFilingDO qualFilingDO = qualFilingMapper.selectById(filingId);
|
||||
// 检查是否已存在资质变更记录,若已存在则不允许再次保存
|
||||
Long changeCount = qualFilingMapper.selectCount(new LambdaQueryWrapper<QualFilingDO>()
|
||||
.eq(QualFilingDO::getFilingStatusCode, QualFilingStatusEnum.FILED.getCode())
|
||||
.eq(QualFilingDO::getId, filingId));
|
||||
if (changeCount != null && changeCount > 1) {
|
||||
throw new com.alibaba.cola.exception.BizException("存在已备案的不能重复备案");
|
||||
}
|
||||
|
||||
// 审核通过,需要新增资质变更记录
|
||||
AggregationSaveOrEditQualFilingChangeCmd cmdSync = new AggregationSaveOrEditQualFilingChangeCmd();
|
||||
|
||||
cmdSync.setQualFilingChangeAddCmd(qualFilingChangeCmdConvertor.convertDOToCmd(qualFilingDO));
|
||||
// 备案承诺书
|
||||
QualFilingCommitmentDO qualFilingCommitmentDO = qualFilingCommitmentMapper.selectOne(new LambdaQueryWrapper<QualFilingCommitmentDO>()
|
||||
.eq(QualFilingCommitmentDO::getFilingId, filingId));
|
||||
cmdSync.setQualFilingCommitmentChangeAddCmd(qualFilingCommitmentChangeCmdConvertor.convertDOToCmd(qualFilingCommitmentDO));
|
||||
// 备案装备
|
||||
List<QualFilingEquipmentDO> qualFilingEquipmentDOs = qualFilingEquipmentMapper.selectList(new LambdaQueryWrapper<QualFilingEquipmentDO>()
|
||||
.eq(QualFilingEquipmentDO::getFilingId, filingId));
|
||||
cmdSync.setQualFilingEquipmentChangeAddCmds(qualFilingEquipmentChangeCmdConvertor.convertDOListToCmdList(qualFilingEquipmentDOs));
|
||||
// 备案材料清单
|
||||
List<QualFilingMaterialDO> qualFilingMaterialDOs = qualFilingMaterialMapper.selectList(new LambdaQueryWrapper<QualFilingMaterialDO>()
|
||||
.eq(QualFilingMaterialDO::getFilingId, filingId));
|
||||
cmdSync.setQualFilingMaterialChangeAddCmds(qualFilingMaterialChangeCmdConvertor.convertDOListToCmdList(qualFilingMaterialDOs));
|
||||
// 备案人员
|
||||
List<QualFilingPersonnelDO> qualFilingPersonnelDOs = qualFilingPersonnelMapper.selectList(new LambdaQueryWrapper<QualFilingPersonnelDO>()
|
||||
.eq(QualFilingPersonnelDO::getFilingId, filingId));
|
||||
cmdSync.setQualFilingPersonnelChangeAddCmds(qualFilingPersonnelChangeCmdConvertor.convertDOListToCmdList(qualFilingPersonnelDOs));
|
||||
qualFilingChangeExecutor.aggregationSaveOrEdit(cmdSync, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -242,6 +288,28 @@ public class QualFilingExecutor implements QualFilingApi {
|
|||
return SingleResponse.success(co);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse<List<QualFilingComplianceCheckResultCO>> checkItem(Long filingId) {
|
||||
QualFilingDO qualFilingDO = qualFilingMapper.selectById(filingId);
|
||||
// 备案承诺书
|
||||
QualFilingCommitmentDO qualFilingCommitmentDO = qualFilingCommitmentMapper.selectOne(new LambdaQueryWrapper<QualFilingCommitmentDO>()
|
||||
.eq(QualFilingCommitmentDO::getFilingId, filingId));
|
||||
// 备案装备
|
||||
List<QualFilingEquipmentDO> qualFilingEquipmentDOs = qualFilingEquipmentMapper.selectList(new LambdaQueryWrapper<QualFilingEquipmentDO>()
|
||||
.eq(QualFilingEquipmentDO::getFilingId, filingId));
|
||||
// 备案材料清单
|
||||
List<QualFilingMaterialDO> qualFilingMaterialDOs = qualFilingMaterialMapper.selectList(new LambdaQueryWrapper<QualFilingMaterialDO>()
|
||||
.eq(QualFilingMaterialDO::getFilingId, filingId));
|
||||
// 备案人员
|
||||
List<QualFilingPersonnelDO> qualFilingPersonnelDOs = qualFilingPersonnelMapper.selectList(new LambdaQueryWrapper<QualFilingPersonnelDO>()
|
||||
.eq(QualFilingPersonnelDO::getFilingId, filingId));
|
||||
|
||||
// 聚合转换为合规性校验Cmd
|
||||
AggregationSaveOrEditQualFilingCmd cmdSync = qualFilingComplianceCmdConvertor.convertToCmd(
|
||||
qualFilingDO, qualFilingCommitmentDO, qualFilingEquipmentDOs, qualFilingMaterialDOs, qualFilingPersonnelDOs);
|
||||
return SingleResponse.success(ComplianceCheckUtil.complianceCheck(cmdSync, false));
|
||||
}
|
||||
|
||||
private QualFilingCO toLegacyCO(QualFilingEntity entity) {
|
||||
if (entity == null) {
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -46,8 +46,7 @@ import org.springframework.util.StringUtils;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
|
|
@ -134,8 +133,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
|
|||
public SingleResponse<Void> confirm(EvalProcessControlConfirmCmd cmd) {
|
||||
Long projectId = cmd.getProjectId();
|
||||
EvalProjectEntity project = evalProjectNodeSupport.requireProject(projectId);
|
||||
// 校验前置节点是否全部完成(过程控制节点除外)
|
||||
assertPreNodesCompleted(project);
|
||||
// 校验前置节点是否全部完成(过程控制、归档节点除外)
|
||||
assertPreNodesCompleted(project, Arrays.asList(ProjectStageEnum.PROCESS_CONTROL, ProjectStageEnum.ARCHIVE));
|
||||
// 判断项目是否归档
|
||||
if (project.getArchiveFlag() != null && project.getArchiveFlag() == 1) {
|
||||
throw new BizException(ErrorCode.EVAL_PROJECT_ARCHIVED);
|
||||
|
|
@ -177,8 +176,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
|
|||
public SingleResponse<Void> assign(EvalProcessControlAssignCmd cmd) {
|
||||
Long projectId = cmd.getProjectId();
|
||||
EvalProjectEntity project = evalProjectNodeSupport.requireProject(projectId);
|
||||
// 校验前置节点是否全部完成(过程控制节点除外)
|
||||
assertPreNodesCompleted(project);
|
||||
// 校验前置节点是否全部完成(过程控制、归档节点除外)
|
||||
assertPreNodesCompleted(project, Arrays.asList(ProjectStageEnum.PROCESS_CONTROL, ProjectStageEnum.ARCHIVE));
|
||||
// 判断项目是否归档
|
||||
if (project.getArchiveFlag() != null && project.getArchiveFlag() == 1) {
|
||||
throw new BizException(ErrorCode.EVAL_PROJECT_ARCHIVED);
|
||||
|
|
@ -305,8 +304,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
|
|||
public SingleResponse<EvalProcessControlCO> generateProcessControlForm(EvalgenerateProcessControlFormCmd cmd) {
|
||||
Long projectId = Long.parseLong(cmd.getProjectId());
|
||||
EvalProjectEntity project = evalProjectNodeSupport.requireProject(projectId);
|
||||
// 校验前置节点是否全部完成(过程控制节点除外)
|
||||
assertPreNodesCompleted(project);
|
||||
// 校验前置节点是否全部完成(过程控制、归档节点除外)
|
||||
assertPreNodesCompleted(project, Arrays.asList(ProjectStageEnum.PROCESS_CONTROL, ProjectStageEnum.ARCHIVE));
|
||||
// TODO 归档交接单生成功能暂未实现
|
||||
return SingleResponse.success(null);
|
||||
}
|
||||
|
|
@ -319,8 +318,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
|
|||
if (project.getArchiveFlag() != null && project.getArchiveFlag() == 1) {
|
||||
throw new BizException(ErrorCode.EVAL_ARCHIVE_ALREADY_DONE);
|
||||
}
|
||||
// 校验前置节点是否全部完成(过程控制节点除外)
|
||||
assertPreNodesCompleted(project);
|
||||
// 校验前置节点是否全部完成(过程控制、归档节点除外)
|
||||
assertPreNodesCompleted(project, Collections.singletonList(ProjectStageEnum.ARCHIVE));
|
||||
|
||||
EvalProcessControlEntity entity = evalProcessControlGateway.getByProjectId(projectId, project.getOrgId());
|
||||
if (entity == null) {
|
||||
|
|
@ -609,9 +608,9 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
|
|||
}
|
||||
|
||||
/**
|
||||
* 过程控制前置节点校验:除 PROCESS_CONTROL 节点外,其余节点 state 必须全部为 1(完成)。
|
||||
* 过程控制前置节点校验:除传入的 excludedStages 节点外,其余节点 state 必须全部为 1(完成)。
|
||||
*/
|
||||
private void assertPreNodesCompleted(EvalProjectEntity project) {
|
||||
private void assertPreNodesCompleted(EvalProjectEntity project, List<ProjectStageEnum> excludedStages) {
|
||||
String projectNode = project.getProjectNode();
|
||||
if (!StringUtils.hasText(projectNode)) {
|
||||
throw new BizException(ErrorCode.EVAL_PROCESS_PRE_NODES_INCOMPLETE);
|
||||
|
|
@ -620,8 +619,11 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
|
|||
if (CollectionUtils.isEmpty(nodes)) {
|
||||
throw new BizException(ErrorCode.EVAL_PROCESS_PRE_NODES_INCOMPLETE);
|
||||
}
|
||||
Set<String> excludedVals = excludedStages.stream()
|
||||
.map(ProjectStageEnum::getVal)
|
||||
.collect(Collectors.toSet());
|
||||
boolean allCompleted = nodes.stream()
|
||||
.filter(n -> !ProjectStageEnum.PROCESS_CONTROL.getVal().equals(n.getType()))
|
||||
.filter(n -> !excludedVals.contains(n.getType()))
|
||||
.allMatch(n -> n.getState() != null && n.getState() == 1);
|
||||
if (!allCompleted) {
|
||||
throw new BizException(ErrorCode.EVAL_PROCESS_PRE_NODES_INCOMPLETE);
|
||||
|
|
|
|||
|
|
@ -174,13 +174,6 @@ public class EvalTechReviewExecutor implements EvalTechReviewApi {
|
|||
EvalTechReviewEntity entity = evalTechReviewGateway.getByProjectId(projectId, project.getOrgId());
|
||||
if (entity == null) {
|
||||
throw new BizException(ErrorCode.EVAL_TECH_REVIEW_NOT_FOUND);
|
||||
// // 没有数据则新增,并下发签字任务
|
||||
// entity = new EvalTechReviewEntity();
|
||||
// entity.setOrgId(project.getOrgId());
|
||||
// entity.setProjectId(projectId);
|
||||
// entity.setStatusCode(1);
|
||||
// entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
|
||||
// evalTechReviewGateway.save(entity);
|
||||
} else {
|
||||
entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
|
||||
evalTechReviewGateway.modify(entity);
|
||||
|
|
|
|||
|
|
@ -147,25 +147,8 @@ public class QualOnSiteReviewUpdateCmdExe {
|
|||
if (!updateRes) {
|
||||
throw new BizException("数据已被更新,请刷新重试");
|
||||
}
|
||||
|
||||
// 审查通过时,更新备案状态为已备案
|
||||
if (passed) {
|
||||
// 基本信息
|
||||
QualFilingDO qualFilingDO = qualFilingMapper.selectByOrgIdLastOne(reviewDO.getOrgId());
|
||||
QualFilingEntity filingEntity = new QualFilingEntity();
|
||||
filingEntity.setId(qualFilingDO.getId());
|
||||
filingEntity.setFilingStatusCode(QualFilingStatusEnum.FILED.getCode());
|
||||
filingEntity.setFilingStatusName(QualFilingStatusEnum.FILED.getName());
|
||||
qualFilingGateway.modify(filingEntity);
|
||||
|
||||
qualFilingDO.setFilingStatusCode(filingEntity.getFilingStatusCode());
|
||||
// 审核通过,同步生成资质变更记录
|
||||
passedSaveToChange(qualFilingDO);
|
||||
}
|
||||
|
||||
// 保存审查结果文件
|
||||
saveFileList(cmd.getId(), cmd.getFileList());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -187,35 +170,5 @@ public class QualOnSiteReviewUpdateCmdExe {
|
|||
}
|
||||
}
|
||||
|
||||
private void passedSaveToChange(QualFilingDO qualFilingDO) {
|
||||
Long filingId = qualFilingDO.getId();
|
||||
// 检查是否已存在资质变更记录,若已存在则不允许再次保存
|
||||
Long changeCount = qualFilingChangeMapper.selectCount(new LambdaQueryWrapper<QualFilingChangeDO>()
|
||||
.eq(QualFilingChangeDO::getFilingId, filingId));
|
||||
if (changeCount != null && changeCount > 0) {
|
||||
throw new BizException("已经保存不能再次保存");
|
||||
}
|
||||
|
||||
// 审核通过,需要新增资质变更记录
|
||||
AggregationSaveOrEditQualFilingChangeCmd cmdSync = new AggregationSaveOrEditQualFilingChangeCmd();
|
||||
|
||||
cmdSync.setQualFilingChangeAddCmd(qualFilingChangeCmdConvertor.convertDOToCmd(qualFilingDO));
|
||||
// 备案承诺书
|
||||
QualFilingCommitmentDO qualFilingCommitmentDO = qualFilingCommitmentMapper.selectOne(new LambdaQueryWrapper<QualFilingCommitmentDO>()
|
||||
.eq(QualFilingCommitmentDO::getFilingId, filingId));
|
||||
cmdSync.setQualFilingCommitmentChangeAddCmd(qualFilingCommitmentChangeCmdConvertor.convertDOToCmd(qualFilingCommitmentDO));
|
||||
// 备案装备
|
||||
List<QualFilingEquipmentDO> qualFilingEquipmentDOs = qualFilingEquipmentMapper.selectList(new LambdaQueryWrapper<QualFilingEquipmentDO>()
|
||||
.eq(QualFilingEquipmentDO::getFilingId, filingId));
|
||||
cmdSync.setQualFilingEquipmentChangeAddCmds(qualFilingEquipmentChangeCmdConvertor.convertDOListToCmdList(qualFilingEquipmentDOs));
|
||||
// 备案材料清单
|
||||
List<QualFilingMaterialDO> qualFilingMaterialDOs = qualFilingMaterialMapper.selectList(new LambdaQueryWrapper<QualFilingMaterialDO>()
|
||||
.eq(QualFilingMaterialDO::getFilingId, filingId));
|
||||
cmdSync.setQualFilingMaterialChangeAddCmds(qualFilingMaterialChangeCmdConvertor.convertDOListToCmdList(qualFilingMaterialDOs));
|
||||
// 备案人员
|
||||
List<QualFilingPersonnelDO> qualFilingPersonnelDOs = qualFilingPersonnelMapper.selectList(new LambdaQueryWrapper<QualFilingPersonnelDO>()
|
||||
.eq(QualFilingPersonnelDO::getFilingId, filingId));
|
||||
cmdSync.setQualFilingPersonnelChangeAddCmds(qualFilingPersonnelChangeCmdConvertor.convertDOListToCmdList(qualFilingPersonnelDOs));
|
||||
qualFilingChangeExecutor.aggregationSaveOrEdit(cmdSync, true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,4 +48,6 @@ public interface QualFilingApi {
|
|||
PageResponse<QualFilingCO> qualificationMonitoringPage(QualificationMonitoringQuery query);
|
||||
|
||||
SingleResponse<QualFilingStatisticsCO> qualificationMonitoringPageStatistics();
|
||||
|
||||
SingleResponse<List<QualFilingComplianceCheckResultCO>> checkItem(Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
package org.qinan.safetyeval.client.co.institution;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 项目节点完成进度中的单个节点对象
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class ProjectNodeCO {
|
||||
/**
|
||||
* @ProjectNode
|
||||
|
|
@ -15,4 +17,9 @@ public class ProjectNodeCO {
|
|||
* 0未完成 1完成
|
||||
*/
|
||||
private Integer state;
|
||||
|
||||
public ProjectNodeCO(String type, Integer state) {
|
||||
this.type = type;
|
||||
this.state = state;
|
||||
}
|
||||
}
|
||||
|
|
@ -21,7 +21,9 @@ public enum ProjectStageEnum {
|
|||
REPORT_PREPARATION("REPORT_PREPARATION", "报告编制", "NODE_05"),
|
||||
INTERNAL_REVIEW("INTERNAL_REVIEW", "内部审核", "NODE_06"),
|
||||
TECHNICAL_REVIEW("TECHNICAL_REVIEW", "技术审核", "NODE_07"),
|
||||
PROCESS_CONTROL("PROCESS_CONTROL", "过程控制", "NODE_08");
|
||||
PROCESS_CONTROL("PROCESS_CONTROL", "过程控制", "NODE_08"),
|
||||
ARCHIVE("ARCHIVE", "归档", "NODE_09"),
|
||||
;
|
||||
|
||||
@Getter
|
||||
private final String val;
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ public enum ErrorCode {
|
|||
EVAL_ARCHIVE_SIGN_INCOMPLETE("06-05-017", "签字未完成,无法归档"),
|
||||
EVAL_HANDOVER_FORM_NOT_CREATED("06-05-018", "归档交接单未生成,无法归档"),
|
||||
EVAL_PROJECT_ERROR("06-05-019", "项目不存在"),
|
||||
EVAL_PROCESS_PRE_NODES_INCOMPLETE("06-05-020", "前置节点未完成,无法操作过程控制"),
|
||||
EVAL_PROCESS_PRE_NODES_INCOMPLETE("06-05-020", "前置节点未完成,无法操作"),
|
||||
EVAL_PROJECT_NODE_NOT_FOUND("06-05-021", "节点不存在"),
|
||||
|
||||
// ---- 监督检查告知(phase2 P3) ----
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.qinan.safetyeval.client.co.institution.ProjectNodeCO;
|
||||
import org.qinan.safetyeval.domain.constant.EvalProjectProgressStatEnum;
|
||||
import org.qinan.safetyeval.domain.constant.ProjectStageEnum;
|
||||
import org.qinan.safetyeval.domain.entity.EvalProjectEntity;
|
||||
import org.qinan.safetyeval.domain.gateway.EvalProjectGateway;
|
||||
import org.qinan.safetyeval.domain.query.EvalProjectQuery;
|
||||
|
|
@ -46,8 +47,6 @@ public class EvalProjectGatewayImpl implements EvalProjectGateway {
|
|||
@Resource
|
||||
private OrgContextResolver orgContextResolver;
|
||||
@Autowired
|
||||
private EvalSignTaskMapper evalSignTaskMapper;
|
||||
@Autowired
|
||||
private EvalSurveyMapper evalSurveyMapper;
|
||||
|
||||
@Override
|
||||
|
|
@ -58,7 +57,11 @@ public class EvalProjectGatewayImpl implements EvalProjectGateway {
|
|||
dataObject.setArchiveFlag(0);
|
||||
}
|
||||
InsertFieldDefaults.apply(dataObject);
|
||||
dataObject.setProjectNode("[{\"type\":\"RISK_ANALYSIS\",\"state\":0},{\"type\":\"BUSINESS_CONTRACT\",\"state\":0},{\"type\":\"PROJECT_GROUP\",\"state\":0},{\"type\":\"SITE_SURVEY\",\"state\":0},{\"type\":\"REPORT_PREPARATION\",\"state\":0},{\"type\":\"INTERNAL_REVIEW\",\"state\":0},{\"type\":\"TECHNICAL_REVIEW\",\"state\":0},{\"type\":\"PROCESS_CONTROL\",\"state\":0}]");
|
||||
List<ProjectNodeCO> projectNodes = new ArrayList<>();
|
||||
for (ProjectStageEnum stage : ProjectStageEnum.values()) {
|
||||
projectNodes.add(new ProjectNodeCO(stage.getVal(), 0));
|
||||
}
|
||||
dataObject.setProjectNode(JSON.toJSONString(projectNodes));
|
||||
evalProjectMapper.insert(dataObject);
|
||||
entity.setId(dataObject.getId());
|
||||
return entity;
|
||||
|
|
|
|||
|
|
@ -268,7 +268,8 @@ public class QualFilingGatewayImpl implements QualFilingGateway {
|
|||
* @param reviewOpinion 审核意见
|
||||
*/
|
||||
@Override
|
||||
public void review(Long filingId, String reviewResult, String reviewResultRemark, Long filingExpertId, String filingExpertName, String reviewOpinion) {
|
||||
public void review(Long filingId, String reviewResult, String reviewResultRemark
|
||||
, Long filingExpertId, String filingExpertName, String reviewOpinion) {
|
||||
// 保存审核记录
|
||||
QualFilingReviewDO qualFilingReviewDO = new QualFilingReviewDO();
|
||||
qualFilingReviewDO.setFilingId(filingId);
|
||||
|
|
@ -282,8 +283,6 @@ public class QualFilingGatewayImpl implements QualFilingGateway {
|
|||
// 更新备案状态
|
||||
QualFilingDO filing = new QualFilingDO();
|
||||
QualFilingStatusEnum qualFilingStatusEnum = QualFilingStatusEnum.ofCode(Integer.valueOf(reviewResult));
|
||||
qualFilingStatusEnum = qualFilingStatusEnum == QualFilingStatusEnum.FILED
|
||||
? QualFilingStatusEnum.CONDITION_COMPLIANCE_PASS : qualFilingStatusEnum;
|
||||
filing.setFilingStatusCode(qualFilingStatusEnum.getCode());
|
||||
filing.setFilingStatusName(qualFilingStatusEnum.getName());
|
||||
filing.setApproveTime(LocalDateTime.now());
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public class EvalReportQueryServiceImpl implements EvalReportQueryService {
|
|||
if (report.getFileUrl() != null) {
|
||||
EvalProjectFileCO co = new EvalProjectFileCO();
|
||||
co.setProcessName(ProjectStageEnum.PROCESS_CONTROL.getMsg());
|
||||
co.setItemName("归档报告");
|
||||
co.setItemName(ProjectStageEnum.PROCESS_CONTROL.getMsg());
|
||||
co.setProjectDocUrl(report.getFileUrl());
|
||||
files.add(co);
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue