From 083bebf2aca66c7083096538c24921c519b13d63 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Tue, 7 Jul 2026 10:27:23 +0800 Subject: [PATCH] change filing query logic --- .../web/QualFilingChangeController.java | 5 +- .../executor/QualFilingChangeExecutor.java | 22 ++++ .../client/api/QualFilingChangeApi.java | 3 + .../client/co/QualFilingChangeOrgCO.java | 111 ++++++++++++++++++ .../mapper/QualFilingChangeMapper.java | 9 ++ .../mapper/QualFilingChangeMapper.xml | 56 +++++++++ 6 files changed, 204 insertions(+), 2 deletions(-) create mode 100644 safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingChangeOrgCO.java diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingChangeController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingChangeController.java index e2b2c87..2bf9e83 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingChangeController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/QualFilingChangeController.java @@ -7,6 +7,7 @@ import org.qinan.safetyeval.client.api.QualFilingChangeApi; import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO; import org.qinan.safetyeval.client.co.QualFilingChangeCO; import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO; +import org.qinan.safetyeval.client.co.QualFilingChangeOrgCO; import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.infrastructure.utils.RequestHandlerUtil; import org.springframework.validation.annotation.Validated; @@ -43,10 +44,10 @@ public class QualFilingChangeController { @ApiOperation("分页查询备案变更-机构端") @GetMapping("/org/page") - public PageResponse orgPage(@Validated QualFilingChangePageQuery query) { + public PageResponse orgPage(@Validated QualFilingChangePageQuery query) { Long orgId = RequestHandlerUtil.getOrgId(); query.setOrgId(orgId); - return qualFilingChangeApi.page(query); + return qualFilingChangeApi.orgPage(query); } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java index 4f11fff..241348a 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/QualFilingChangeExecutor.java @@ -7,6 +7,7 @@ import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO; import org.qinan.safetyeval.client.co.QualFilingChangeCO; import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO; import org.qinan.safetyeval.client.co.QualFilingChangeHistoryCO; +import org.qinan.safetyeval.client.co.QualFilingChangeOrgCO; import org.qinan.safetyeval.client.dto.*; import org.qinan.safetyeval.domain.change.gateway.*; import org.qinan.safetyeval.domain.change.model.*; @@ -23,7 +24,10 @@ import org.qinan.safetyeval.domain.service.QualFilingChangeDomainService; import org.qinan.safetyeval.domain.service.QualFilingDomainService; import org.qinan.safetyeval.domain.service.QualFilingReviewDomainService; import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter; +import org.qinan.safetyeval.infrastructure.mapper.QualFilingChangeMapper; import org.qinan.safetyeval.infrastructure.utils.RequestHandlerUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -47,6 +51,9 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { @Autowired(required = false) private QualFilingChangeDomainService qualFilingChangeDomainService; + @Resource + private QualFilingChangeMapper qualFilingChangeMapper; + @Lazy @Autowired(required = false) private QualFilingDomainService qualFilingDomainService; @@ -174,6 +181,21 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi { pageResult.getTotal()); } + @Override + public PageResponse orgPage(QualFilingChangePageQuery query) { + QualFilingChangeQuery domainQuery = new QualFilingChangeQuery(); + domainQuery.setPageNum(query.getCurrent()); + domainQuery.setPageSize(query.getSize()); + domainQuery.setOrgId(query.getOrgId()); + domainQuery.setFilingNo(query.getFilingNo()); + domainQuery.setFilingStatusCode(query.getFilingStatusCode()); + + // 直连 infrastructure 层 Mapper,跳过 domain,由 XML 直接返回 CO,无需转换 + Page page = new Page<>(domainQuery.getPageNum(), domainQuery.getPageSize()); + IPage result = qualFilingChangeMapper.orgPage(page, domainQuery); + return PageResponse.of(result.getRecords(), result.getTotal()); + } + @Override public SingleResponse start(Long filingId) { return SingleResponse.success(qualFilingOrchestrator.startChange(filingId)); diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingChangeApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingChangeApi.java index 62e30b3..38179cb 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingChangeApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/QualFilingChangeApi.java @@ -4,6 +4,7 @@ import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO; import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO; import org.qinan.safetyeval.client.co.QualFilingChangeHistoryCO; import org.qinan.safetyeval.client.co.QualFilingChangeCO; +import org.qinan.safetyeval.client.co.QualFilingChangeOrgCO; import org.qinan.safetyeval.client.dto.AggregationSaveOrEditQualFilingChangeCmd; import org.qinan.safetyeval.client.dto.PageResponse; import org.qinan.safetyeval.client.dto.SingleResponse; @@ -31,6 +32,8 @@ public interface QualFilingChangeApi { PageResponse page(QualFilingChangePageQuery query); + PageResponse orgPage(QualFilingChangePageQuery query); + SingleResponse start(Long filingId); SingleResponse submit(QualFilingChangeSubmitCmd cmd); diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingChangeOrgCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingChangeOrgCO.java new file mode 100644 index 0000000..8eef130 --- /dev/null +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/QualFilingChangeOrgCO.java @@ -0,0 +1,111 @@ +package org.qinan.safetyeval.client.co; + +import java.math.BigDecimal; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 备案变更机构端CO(Client Object) + *

+ * 机构端分页查询专用,由 Mapper XML 直接映射返回,无需 Entity 中转转换。 + * 每个 filing_id 只取最新一条变更记录。 + *

+ * + * @author safety-eval + */ +@Data +public class QualFilingChangeOrgCO { + + @ApiModelProperty(value = "主键ID") + private Long id; + + @ApiModelProperty(value = "机构ID") + private Long orgId; + + @ApiModelProperty(value = "备案申请ID") + private Long filingId; + + @ApiModelProperty(value = "审核ID") + private Long filingReviewId; + + @ApiModelProperty(value = "变更备案ID") + private Long changeFilingId; + + @ApiModelProperty(value = "驳回原因") + private String rejectReason; + + @ApiModelProperty(value = "提交时间") + private java.time.LocalDateTime submitTime; + + @ApiModelProperty(value = "备案地区编码") + private String filingTerritoryCode; + + @ApiModelProperty(value = "备案地区名称") + private String filingTerritoryName; + + @ApiModelProperty(value = "备案单位名称") + private String filingUnitName; + + @ApiModelProperty(value = "备案单位类型编码") + private String filingUnitTypeCode; + + @ApiModelProperty(value = "备案单位类型名称") + private String filingUnitTypeName; + + @ApiModelProperty(value = "备案编号") + private String filingNo; + + @ApiModelProperty(value = "经营范围") + private String businessScope; + + @ApiModelProperty(value = "注册地址") + private String registerAddress; + + @ApiModelProperty(value = "办公地址") + private String officeAddress; + + @ApiModelProperty(value = "统一社会信用代码") + private String creditCode; + + @ApiModelProperty(value = "资质证书编号") + private String qualCertNo; + + @ApiModelProperty(value = "法定代表人电话") + private String legalPersonPhone; + + @ApiModelProperty(value = "联系电话") + private String contactPhone; + + @ApiModelProperty(value = "信息公开网址") + private String infoDisclosureUrl; + + @ApiModelProperty(value = "固定资产总额") + private Long fixedAssetAmount; + + @ApiModelProperty(value = "档案室面积") + private BigDecimal archiveRoomArea; + + @ApiModelProperty(value = "专职评价人员数量") + private Integer fulltimeEvaluatorCount; + + @ApiModelProperty(value = "注册安全工程师数量") + private Integer registeredEngineerCount; + + @ApiModelProperty(value = "办公场所面积") + private BigDecimal workplaceArea; + + @ApiModelProperty(value = "单位简介") + private String unitIntro; + + @ApiModelProperty(value = "附件地址") + private String attachmentUrl; + + @ApiModelProperty(value = "备案状态编码(1已备案2审核中3已打回4变更审核中5暂存)") + private Integer filingStatusCode; + + @ApiModelProperty(value = "备案状态名称") + private String filingStatusName; + + @ApiModelProperty(value = "租户ID") + private Long tenantId; +} diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/QualFilingChangeMapper.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/QualFilingChangeMapper.java index 967138a..32ab04a 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/QualFilingChangeMapper.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/mapper/QualFilingChangeMapper.java @@ -1,9 +1,18 @@ package org.qinan.safetyeval.infrastructure.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.qinan.safetyeval.client.co.QualFilingChangeOrgCO; +import org.qinan.safetyeval.domain.query.QualFilingChangeQuery; import org.qinan.safetyeval.infrastructure.dataobject.QualFilingChangeDO; @Mapper public interface QualFilingChangeMapper extends BaseMapper { + + /** + * 机构端分页查询:每个filing_id只取最新一条变更记录,直接返回CO + */ + IPage orgPage(IPage page, @Param("query") QualFilingChangeQuery query); } diff --git a/safety-eval-infrastructure/src/main/resources/mapper/QualFilingChangeMapper.xml b/safety-eval-infrastructure/src/main/resources/mapper/QualFilingChangeMapper.xml index 8c3217a..3201a32 100644 --- a/safety-eval-infrastructure/src/main/resources/mapper/QualFilingChangeMapper.xml +++ b/safety-eval-infrastructure/src/main/resources/mapper/QualFilingChangeMapper.xml @@ -52,4 +52,60 @@ `id`, `org_id`, `filing_id`, `change_filing_id`, `filing_review_id`, `reject_reason`, `submit_time`, `filing_territory_code`, `filing_territory_name`, `filing_unit_name`, `filing_unit_type_code`, `filing_unit_type_name`, `filing_no`, `business_scope`, `register_address`, `office_address`, `credit_code`, `qual_cert_no`, `legal_person_phone`, `contact_phone`, `info_disclosure_url`, `fixed_asset_amount`, `archive_room_area`, `fulltime_evaluator_count`, `registered_engineer_count`, `workplace_area`, `unit_intro`, `attachment_url`, `filing_status_code`, `filing_status_name`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +