diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualOnSiteReviewController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualOnSiteReviewController.java index 8645851..9ba322b 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualOnSiteReviewController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualOnSiteReviewController.java @@ -16,6 +16,7 @@ import org.qinan.safetyeval.client.review.request.QualOnSiteReviewUpdateCmd; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewMonitorCo; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewOrgCo; +import org.qinan.safetyeval.client.review.response.QualOnSiteReviewResultCo; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewStatisticsCo; import org.qinan.safetyeval.domain.constant.QualOnSiteReviewStatusEnum; import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter; @@ -94,6 +95,12 @@ public class QualOnSiteReviewController implements Serializable { return Response.buildSuccess(); } + @GetMapping("/result-detail/{id}") + @ApiOperation("查询审查结果明细(上传信息)") + public SingleResponse getReviewResult(@PathVariable Long id) { + return SingleResponse.of(qualOnSiteReviewServiceI.getReviewResult(id)); + } + @DeleteMapping("/{id}") @ApiOperation("删除资质现场核查(单个)") public Response deletedById(@PathVariable("id") Long id) { diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/executor/command/QualOnSiteReviewUpdateCmdExe.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/executor/command/QualOnSiteReviewUpdateCmdExe.java index 41ae9b5..d8317ff 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/executor/command/QualOnSiteReviewUpdateCmdExe.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/executor/command/QualOnSiteReviewUpdateCmdExe.java @@ -62,7 +62,20 @@ public class QualOnSiteReviewUpdateCmdExe { */ @Transactional(rollbackFor = Exception.class) public boolean execute(QualOnSiteReviewUpdateCmd qualOnSiteReviewUpdateCmd) { + // 查询现有记录 + QualOnSiteReviewDO existingReview = qualOnSiteReviewQueryService.getById(qualOnSiteReviewUpdateCmd.getId()); + if (existingReview == null) { + throw new BizException("资质现场核查记录不存在"); + } + QualOnSiteReviewE qualOnSiteReviewE = qualOnSiteReviewCmdConvertor.convertCmdToE(qualOnSiteReviewUpdateCmd); + + // 已完成(核查通过/核查不通过)的记录,修改时不改变状态 + String existingStatus = existingReview.getStatus(); + if (QualOnSiteReviewStatusEnum.REVIEW_PASSED.getCode().equals(existingStatus)) { + qualOnSiteReviewE.setStatus(null); + } + Boolean updateRes = qualOnSiteReviewE.update(); if (!updateRes) { throw new BizException("数据已被更新,请刷新重试"); diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/executor/query/QualOnSiteReviewListQueryExe.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/executor/query/QualOnSiteReviewListQueryExe.java index 80ca679..8377242 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/executor/query/QualOnSiteReviewListQueryExe.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/executor/query/QualOnSiteReviewListQueryExe.java @@ -1,12 +1,19 @@ package org.qinan.safetyeval.app.review.executor.query; +import com.alibaba.cola.exception.BizException; import lombok.AllArgsConstructor; +import org.qinan.safetyeval.client.file.response.QualOnSiteReviewFileCo; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo; +import org.qinan.safetyeval.client.review.response.QualOnSiteReviewResultCo; +import org.qinan.safetyeval.domain.constant.QualOnSiteReviewStatusEnum; import org.qinan.safetyeval.infrastructure.convertor.QualOnSiteReviewDoConvertor; import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO; +import org.qinan.safetyeval.infrastructure.persistence.queryservice.QualOnSiteReviewFileQueryService; import org.qinan.safetyeval.infrastructure.persistence.queryservice.QualOnSiteReviewQueryService; import org.springframework.stereotype.Component; +import java.util.List; + /** * 资质现场核查查询执行器 * @@ -19,6 +26,7 @@ public class QualOnSiteReviewListQueryExe { private final QualOnSiteReviewQueryService qualOnSiteReviewQueryService; private final QualOnSiteReviewDoConvertor qualOnSiteReviewDoConvertor; + private final QualOnSiteReviewFileQueryService qualOnSiteReviewFileQueryService; /** * 根据ID查找资质现场核查对象 @@ -31,4 +39,31 @@ public class QualOnSiteReviewListQueryExe { return qualOnSiteReviewDoConvertor.converDoToCo(qualOnSiteReviewDO); } + /** + * 查询审查结果明细(上传信息) + * + * @param id 资质现场核查ID + * @return 审查结果明细 + */ + public QualOnSiteReviewResultCo executeResult(Long id) { + QualOnSiteReviewDO qualOnSiteReviewDO = qualOnSiteReviewQueryService.getById(id); + if (qualOnSiteReviewDO == null) { + throw new BizException("资质现场核查记录不存在"); + } + QualOnSiteReviewResultCo resultCo = new QualOnSiteReviewResultCo(); + resultCo.setId(qualOnSiteReviewDO.getId()); + resultCo.setOrgId(qualOnSiteReviewDO.getOrgId()); + resultCo.setReviewDateStart(qualOnSiteReviewDO.getReviewDateStart()); + resultCo.setReviewLeader(qualOnSiteReviewDO.getReviewLeader()); + resultCo.setReviewOpinion(qualOnSiteReviewDO.getReviewOpinion()); + resultCo.setReviewResult(isReviewPassed(qualOnSiteReviewDO.getStatus())); + List fileList = qualOnSiteReviewFileQueryService.listByQualOnSiteReviewId(id); + resultCo.setFileList(fileList); + return resultCo; + } + + private Boolean isReviewPassed(String status) { + return QualOnSiteReviewStatusEnum.REVIEW_PASSED.getCode().equals(status); + } + } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/service/QualOnSiteReviewServiceI.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/service/QualOnSiteReviewServiceI.java index 7009e7b..ca9c818 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/service/QualOnSiteReviewServiceI.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/service/QualOnSiteReviewServiceI.java @@ -10,6 +10,7 @@ import org.qinan.safetyeval.client.review.request.QualOnSiteReviewUpdateCmd; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewMonitorCo; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewOrgCo; +import org.qinan.safetyeval.client.review.response.QualOnSiteReviewResultCo; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewStatisticsCo; /** @@ -91,6 +92,14 @@ public interface QualOnSiteReviewServiceI { */ boolean uploadReviewResult(QualOnSiteReviewResultUploadCmd qualOnSiteReviewResultUploadCmd); + /** + * 查询审查结果明细(上传信息) + * + * @param id 资质现场核查ID + * @return 审查结果明细 + */ + QualOnSiteReviewResultCo getReviewResult(Long id); + /** * 资质现场核查统计 * diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/service/impl/QualOnSiteReviewServiceImpl.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/service/impl/QualOnSiteReviewServiceImpl.java index d4f607b..def28a8 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/service/impl/QualOnSiteReviewServiceImpl.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/review/service/impl/QualOnSiteReviewServiceImpl.java @@ -17,6 +17,7 @@ import org.qinan.safetyeval.client.review.request.QualOnSiteReviewUpdateCmd; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewMonitorCo; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewOrgCo; +import org.qinan.safetyeval.client.review.response.QualOnSiteReviewResultCo; import org.qinan.safetyeval.client.review.response.QualOnSiteReviewStatisticsCo; import org.springframework.stereotype.Service; @@ -81,6 +82,11 @@ public class QualOnSiteReviewServiceImpl implements QualOnSiteReviewServiceI { return qualOnSiteReviewUpdateCommandExe.execute(qualOnSiteReviewResultUploadCmd); } + @Override + public QualOnSiteReviewResultCo getReviewResult(Long id) { + return qualOnSiteReviewListQueryExe.executeResult(id); + } + @Override public QualOnSiteReviewStatisticsCo statistics(Long orgId) { return qualOnSiteReviewPageQueryExe.executeStatistics(orgId); diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/review/response/QualOnSiteReviewResultCo.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/review/response/QualOnSiteReviewResultCo.java new file mode 100644 index 0000000..667f100 --- /dev/null +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/review/response/QualOnSiteReviewResultCo.java @@ -0,0 +1,46 @@ +package org.qinan.safetyeval.client.review.response; + +import com.alibaba.cola.dto.ClientObject; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.qinan.safetyeval.client.file.response.QualOnSiteReviewFileCo; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 资质现场核查-审查结果明细Co + * + * @Author: ltq + * @date 2026-07-20 15:17:00 + */ +@Data +public class QualOnSiteReviewResultCo extends ClientObject implements Serializable { + private static final long serialVersionUID = 1L; + + @JsonFormat(shape = JsonFormat.Shape.STRING) + @ApiModelProperty(value = "资质现场核查id") + private Long id; + + @ApiModelProperty(value = "受审查机构ID") + @JsonFormat(shape = JsonFormat.Shape.STRING) + private Long orgId; + + @ApiModelProperty(value = "现场审查日期") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime reviewDateStart; + + @ApiModelProperty(value = "审查组长") + private String reviewLeader; + + @ApiModelProperty(value = "审查结论:true通过/false不通过") + private Boolean reviewResult; + + @ApiModelProperty(value = "审查意见") + private String reviewOpinion; + + @ApiModelProperty(value = "审查结果文件") + private List fileList; +} diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/QualOnSiteReviewFileQueryService.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/QualOnSiteReviewFileQueryService.java index 5340f64..239f8e9 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/QualOnSiteReviewFileQueryService.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/QualOnSiteReviewFileQueryService.java @@ -5,6 +5,8 @@ import org.qinan.safetyeval.client.file.request.QualOnSiteReviewFilePageQry; import org.qinan.safetyeval.client.file.response.QualOnSiteReviewFileCo; import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewFileDO; +import java.util.List; + /** * 资质现场核查-文件信息 * @@ -28,4 +30,12 @@ public interface QualOnSiteReviewFileQueryService { * @return */ PageResponse listQualOnSiteReviewFilePage(QualOnSiteReviewFilePageQry qualOnSiteReviewFilePageQry); + + /** + * 根据资质现场核查ID查询文件列表 + * + * @param qualOnSiteReviewId 资质现场核查ID + * @return 文件CO列表 + */ + List listByQualOnSiteReviewId(Long qualOnSiteReviewId); } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/impl/QualOnSiteReviewFileQueryServiceImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/impl/QualOnSiteReviewFileQueryServiceImpl.java index 1f6ebe0..b01129f 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/impl/QualOnSiteReviewFileQueryServiceImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/impl/QualOnSiteReviewFileQueryServiceImpl.java @@ -39,4 +39,10 @@ public class QualOnSiteReviewFileQueryServiceImpl implements QualOnSiteReviewFil return PageHelper.pageToResponse(qualOnSiteReviewFileDoPage, qualOnSiteReviewFileCoS); } + @Override + public List listByQualOnSiteReviewId(Long qualOnSiteReviewId) { + List qualOnSiteReviewFileDOS = qualOnSiteReviewFileRepository.listByQualOnSiteReviewId(qualOnSiteReviewId); + return qualOnSiteReviewFileDoConvertor.converDosToCos(qualOnSiteReviewFileDOS); + } + } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/repository/QualOnSiteReviewFileRepository.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/repository/QualOnSiteReviewFileRepository.java index 8beb78e..c64f20d 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/repository/QualOnSiteReviewFileRepository.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/repository/QualOnSiteReviewFileRepository.java @@ -5,6 +5,8 @@ import com.jjb.saas.framework.repository.repo.BaseRepository; import org.qinan.safetyeval.client.file.request.QualOnSiteReviewFilePageQry; import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewFileDO; +import java.util.List; + /** * 资质现场核查-文件信息 * @@ -20,6 +22,14 @@ public interface QualOnSiteReviewFileRepository extends BaseRepository listByQualOnSiteReviewId(Long qualOnSiteReviewId); + /** * 分页查找资质现场核查-文件信息对象 * diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/repository/impl/QualOnSiteReviewFileRepositoryImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/repository/impl/QualOnSiteReviewFileRepositoryImpl.java index 5e526fe..40c8150 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/repository/impl/QualOnSiteReviewFileRepositoryImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/repository/impl/QualOnSiteReviewFileRepositoryImpl.java @@ -13,6 +13,7 @@ import org.qinan.safetyeval.infrastructure.persistence.repository.QualOnSiteRevi import org.springframework.stereotype.Service; import java.util.Arrays; +import java.util.List; /** * 资质现场核查-文件信息 @@ -31,6 +32,11 @@ public class QualOnSiteReviewFileRepositoryImpl extends BaseRepositoryImpl listByQualOnSiteReviewId(Long qualOnSiteReviewId) { + return super.lambdaQuery().eq(QualOnSiteReviewFileDO::getQualOnSiteReviewId, qualOnSiteReviewId).eq(QualOnSiteReviewFileDO::getDeleteEnum, BooleanEnum.FALSE.getValue()).list(); + } + @Override public IPage listQualOnSiteReviewFilePage(IPage iPage, QualOnSiteReviewFilePageQry qualOnSiteReviewFilePageQry) { QueryWrapper qualOnSiteReviewFileDoQueryWrapper = new QueryWrapper<>();