change filing query logic
parent
9ebdafe5a2
commit
083bebf2ac
|
|
@ -7,6 +7,7 @@ import org.qinan.safetyeval.client.api.QualFilingChangeApi;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO;
|
import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingChangeCO;
|
import org.qinan.safetyeval.client.co.QualFilingChangeCO;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO;
|
import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO;
|
||||||
|
import org.qinan.safetyeval.client.co.QualFilingChangeOrgCO;
|
||||||
import org.qinan.safetyeval.client.dto.*;
|
import org.qinan.safetyeval.client.dto.*;
|
||||||
import org.qinan.safetyeval.infrastructure.utils.RequestHandlerUtil;
|
import org.qinan.safetyeval.infrastructure.utils.RequestHandlerUtil;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
@ -43,10 +44,10 @@ public class QualFilingChangeController {
|
||||||
|
|
||||||
@ApiOperation("分页查询备案变更-机构端")
|
@ApiOperation("分页查询备案变更-机构端")
|
||||||
@GetMapping("/org/page")
|
@GetMapping("/org/page")
|
||||||
public PageResponse<QualFilingChangeCO> orgPage(@Validated QualFilingChangePageQuery query) {
|
public PageResponse<QualFilingChangeOrgCO> orgPage(@Validated QualFilingChangePageQuery query) {
|
||||||
Long orgId = RequestHandlerUtil.getOrgId();
|
Long orgId = RequestHandlerUtil.getOrgId();
|
||||||
query.setOrgId(orgId);
|
query.setOrgId(orgId);
|
||||||
return qualFilingChangeApi.page(query);
|
return qualFilingChangeApi.orgPage(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingChangeCO;
|
import org.qinan.safetyeval.client.co.QualFilingChangeCO;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO;
|
import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingChangeHistoryCO;
|
import org.qinan.safetyeval.client.co.QualFilingChangeHistoryCO;
|
||||||
|
import org.qinan.safetyeval.client.co.QualFilingChangeOrgCO;
|
||||||
import org.qinan.safetyeval.client.dto.*;
|
import org.qinan.safetyeval.client.dto.*;
|
||||||
import org.qinan.safetyeval.domain.change.gateway.*;
|
import org.qinan.safetyeval.domain.change.gateway.*;
|
||||||
import org.qinan.safetyeval.domain.change.model.*;
|
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.QualFilingDomainService;
|
||||||
import org.qinan.safetyeval.domain.service.QualFilingReviewDomainService;
|
import org.qinan.safetyeval.domain.service.QualFilingReviewDomainService;
|
||||||
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
|
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
|
||||||
|
import org.qinan.safetyeval.infrastructure.mapper.QualFilingChangeMapper;
|
||||||
import org.qinan.safetyeval.infrastructure.utils.RequestHandlerUtil;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -47,6 +51,9 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
|
||||||
@Autowired(required = false)
|
@Autowired(required = false)
|
||||||
private QualFilingChangeDomainService qualFilingChangeDomainService;
|
private QualFilingChangeDomainService qualFilingChangeDomainService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private QualFilingChangeMapper qualFilingChangeMapper;
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Autowired(required = false)
|
@Autowired(required = false)
|
||||||
private QualFilingDomainService qualFilingDomainService;
|
private QualFilingDomainService qualFilingDomainService;
|
||||||
|
|
@ -174,6 +181,21 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
|
||||||
pageResult.getTotal());
|
pageResult.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<QualFilingChangeOrgCO> 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<QualFilingChangeOrgCO> page = new Page<>(domainQuery.getPageNum(), domainQuery.getPageSize());
|
||||||
|
IPage<QualFilingChangeOrgCO> result = qualFilingChangeMapper.orgPage(page, domainQuery);
|
||||||
|
return PageResponse.of(result.getRecords(), result.getTotal());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SingleResponse<Long> start(Long filingId) {
|
public SingleResponse<Long> start(Long filingId) {
|
||||||
return SingleResponse.success(qualFilingOrchestrator.startChange(filingId));
|
return SingleResponse.success(qualFilingOrchestrator.startChange(filingId));
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO;
|
import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingChangeHistoryCO;
|
import org.qinan.safetyeval.client.co.QualFilingChangeHistoryCO;
|
||||||
import org.qinan.safetyeval.client.co.QualFilingChangeCO;
|
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.AggregationSaveOrEditQualFilingChangeCmd;
|
||||||
import org.qinan.safetyeval.client.dto.PageResponse;
|
import org.qinan.safetyeval.client.dto.PageResponse;
|
||||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||||
|
|
@ -31,6 +32,8 @@ public interface QualFilingChangeApi {
|
||||||
|
|
||||||
PageResponse<QualFilingChangeCO> page(QualFilingChangePageQuery query);
|
PageResponse<QualFilingChangeCO> page(QualFilingChangePageQuery query);
|
||||||
|
|
||||||
|
PageResponse<QualFilingChangeOrgCO> orgPage(QualFilingChangePageQuery query);
|
||||||
|
|
||||||
SingleResponse<Long> start(Long filingId);
|
SingleResponse<Long> start(Long filingId);
|
||||||
|
|
||||||
SingleResponse<Void> submit(QualFilingChangeSubmitCmd cmd);
|
SingleResponse<Void> submit(QualFilingChangeSubmitCmd cmd);
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
* <p>
|
||||||
|
* 机构端分页查询专用,由 Mapper XML 直接映射返回,无需 Entity 中转转换。
|
||||||
|
* 每个 filing_id 只取最新一条变更记录。
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
|
@ -1,9 +1,18 @@
|
||||||
package org.qinan.safetyeval.infrastructure.mapper;
|
package org.qinan.safetyeval.infrastructure.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
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.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;
|
import org.qinan.safetyeval.infrastructure.dataobject.QualFilingChangeDO;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface QualFilingChangeMapper extends BaseMapper<QualFilingChangeDO> {
|
public interface QualFilingChangeMapper extends BaseMapper<QualFilingChangeDO> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机构端分页查询:每个filing_id只取最新一条变更记录,直接返回CO
|
||||||
|
*/
|
||||||
|
IPage<QualFilingChangeOrgCO> orgPage(IPage<QualFilingChangeOrgCO> page, @Param("query") QualFilingChangeQuery query);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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`
|
`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`
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
<!-- 机构端分页查询结果映射(直接映射为CO,无需Entity中转) -->
|
||||||
|
<resultMap id="OrgCOResultMap" type="org.qinan.safetyeval.client.co.QualFilingChangeOrgCO">
|
||||||
|
<id column="id" property="id"/>
|
||||||
|
<result column="org_id" property="orgId"/>
|
||||||
|
<result column="filing_id" property="filingId"/>
|
||||||
|
<result column="change_filing_id" property="changeFilingId"/>
|
||||||
|
<result column="reject_reason" property="rejectReason"/>
|
||||||
|
<result column="filing_review_id" property="filingReviewId"/>
|
||||||
|
<result column="submit_time" property="submitTime"/>
|
||||||
|
<result column="filing_territory_code" property="filingTerritoryCode"/>
|
||||||
|
<result column="filing_territory_name" property="filingTerritoryName"/>
|
||||||
|
<result column="filing_unit_name" property="filingUnitName"/>
|
||||||
|
<result column="filing_unit_type_code" property="filingUnitTypeCode"/>
|
||||||
|
<result column="filing_unit_type_name" property="filingUnitTypeName"/>
|
||||||
|
<result column="filing_no" property="filingNo"/>
|
||||||
|
<result column="business_scope" property="businessScope"/>
|
||||||
|
<result column="register_address" property="registerAddress"/>
|
||||||
|
<result column="office_address" property="officeAddress"/>
|
||||||
|
<result column="credit_code" property="creditCode"/>
|
||||||
|
<result column="qual_cert_no" property="qualCertNo"/>
|
||||||
|
<result column="legal_person_phone" property="legalPersonPhone"/>
|
||||||
|
<result column="contact_phone" property="contactPhone"/>
|
||||||
|
<result column="info_disclosure_url" property="infoDisclosureUrl"/>
|
||||||
|
<result column="fixed_asset_amount" property="fixedAssetAmount"/>
|
||||||
|
<result column="archive_room_area" property="archiveRoomArea"/>
|
||||||
|
<result column="fulltime_evaluator_count" property="fulltimeEvaluatorCount"/>
|
||||||
|
<result column="registered_engineer_count" property="registeredEngineerCount"/>
|
||||||
|
<result column="workplace_area" property="workplaceArea"/>
|
||||||
|
<result column="unit_intro" property="unitIntro"/>
|
||||||
|
<result column="attachment_url" property="attachmentUrl"/>
|
||||||
|
<result column="filing_status_code" property="filingStatusCode"/>
|
||||||
|
<result column="filing_status_name" property="filingStatusName"/>
|
||||||
|
<result column="tenant_id" property="tenantId"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<!-- 机构端分页查询:每个filing_id只取最新一条变更记录,直接返回CO -->
|
||||||
|
<select id="orgPage" resultMap="OrgCOResultMap">
|
||||||
|
SELECT * FROM (
|
||||||
|
SELECT
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY qfc.filing_id ORDER BY qfc.id DESC) AS rn,
|
||||||
|
qfc.*
|
||||||
|
FROM qual_filing_change qfc
|
||||||
|
<where>
|
||||||
|
qfc.delete_enum = 'false'
|
||||||
|
AND qfc.org_id = #{query.orgId}
|
||||||
|
<if test="query.filingNo != null and query.filingNo != ''">
|
||||||
|
AND qfc.filing_no = #{query.filingNo}
|
||||||
|
</if>
|
||||||
|
<if test="query.filingStatusCode != null">
|
||||||
|
AND qfc.filing_status_code = #{query.filingStatusCode}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
) temp
|
||||||
|
WHERE temp.rn = 1
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue