Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	safety-eval-start/src/main/resources/templates/safetyEval.html
dev
huwei 2026-07-31 15:16:20 +08:00
commit 06f271df83
22 changed files with 238 additions and 3679 deletions

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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 {
/**
* DOCmd
*/
@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);
/**
* DOCmdbusinessScope JSON List
*/
@Mapping(target = "businessScope", source = "businessScope", qualifiedByName = "jsonStringToList")
QualFilingAddCmd convertFilingDOToCmd(QualFilingDO qualFilingDO);
/**
* DOCmd
*/
QualFilingCommitmentAddCmd convertCommitmentDOToCmd(QualFilingCommitmentDO qualFilingCommitmentDO);
/**
* DOCmd
*/
QualFilingEquipmentAddCmd convertEquipmentDOToCmd(QualFilingEquipmentDO qualFilingEquipmentDO);
/**
* DOCmd
*/
QualFilingMaterialAddCmd convertMaterialDOToCmd(QualFilingMaterialDO qualFilingMaterialDO);
/**
* DOCmd
*/
QualFilingPersonnelAddCmd convertPersonnelDOToCmd(QualFilingPersonnelDO qualFilingPersonnelDO);
@Named("jsonStringToList")
default List<String> jsonStringToList(String json) {
return json == null ? null : JSON.parseArray(json, String.class);
}
}

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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);
}
}

View File

@ -48,4 +48,6 @@ public interface QualFilingApi {
PageResponse<QualFilingCO> qualificationMonitoringPage(QualificationMonitoringQuery query);
SingleResponse<QualFilingStatisticsCO> qualificationMonitoringPageStatistics();
SingleResponse<List<QualFilingComplianceCheckResultCO>> checkItem(Long id);
}

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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 ----

View File

@ -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;

View File

@ -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());

View File

@ -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 one or more lines are too long