From 49ea2185628db8b898c9676a83da319ea8a6de53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B2=91=E6=BA=AA?= <1015733727@qq.com> Date: Fri, 26 Jun 2026 17:27:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=9B=91=E7=AE=A1=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/OrgQualificationController.java | 9 +++++++ safety-eval-app/pom.xml | 12 +++++++++ .../app/executor/OrgInfoExecutor.java | 8 ++++++ .../executor/OrgQualificationExecutor.java | 23 +++++++++++++++++ .../client/api/OrgQualificationApi.java | 5 ++++ .../qinan/safetyeval/client/co/OrgInfoCO.java | 4 +++ .../client/dto/OrgInfoPageQuery.java | 25 +++++++++++++++++++ .../domain/entity/OrgInfoEntity.java | 4 +++ .../gateway/OrgQualificationGateway.java | 4 +++ .../safetyeval/domain/query/OrgInfoQuery.java | 22 ++++++++++++++++ .../OrgQualificationDomainService.java | 6 +++++ .../gatewayimpl/OrgInfoGatewayImpl.java | 22 ++++++++++++++++ .../OrgQualificationGatewayImpl.java | 9 +++++++ 13 files changed, 153 insertions(+) diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgQualificationController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgQualificationController.java index cea012f..44eb3d9 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgQualificationController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/OrgQualificationController.java @@ -1,6 +1,7 @@ package org.qinan.safetyeval.adapter.web; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; import org.qinan.safetyeval.client.dto.PageResponse; import org.qinan.safetyeval.client.dto.SingleResponse; import io.swagger.annotations.ApiOperation; @@ -13,6 +14,8 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; +import java.util.Map; /** * 机构资质证书适配层(Controller) @@ -56,4 +59,10 @@ public class OrgQualificationController { public PageResponse page(@Validated OrgQualificationPageQuery query) { return orgQualificationApi.page(query); } + + @ApiOperation("分类查询机构资质证书") + @GetMapping("/classGet") + public SingleResponse>> classGet(@ApiParam (value = "机构信息id") @RequestParam Long id) { + return orgQualificationApi.classGet(id); + } } diff --git a/safety-eval-app/pom.xml b/safety-eval-app/pom.xml index ab00085..7fe237e 100644 --- a/safety-eval-app/pom.xml +++ b/safety-eval-app/pom.xml @@ -41,4 +41,16 @@ provided + + + + org.apache.maven.plugins + maven-compiler-plugin + + 11 + 11 + + + + \ No newline at end of file diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java index 5d5dde2..42d562f 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgInfoExecutor.java @@ -172,6 +172,13 @@ public class OrgInfoExecutor implements OrgInfoApi { domainQuery.setAuthStatusCode(query.getAuthStatusCode()); // 管理员可跨租户查询机构信息,此处保留前端传入的tenantId domainQuery.setTenantId(query.getTenantId()); + domainQuery.setDistrictName(query.getDistrictName()); + domainQuery.setState(query.getState()); + domainQuery.setCreateTimeStart(query.getCreateTimeStart()); + domainQuery.setCreateTimeEnd(query.getCreateTimeEnd()); + domainQuery.setRegisterAddress(query.getRegisterAddress()); + domainQuery.setFilingTypeCode(query.getFilingTypeCode()); + domainQuery.setFilingRecordStatusCode(query.getFilingRecordStatusCode()); PageResult pageResult = orgInfoDomainService.page(domainQuery); @@ -238,6 +245,7 @@ public class OrgInfoExecutor implements OrgInfoApi { co.setAttachmentUrls(entity.getAttachmentUrls()); co.setState(entity.getState()); co.setTenantId(entity.getTenantId()); + co.setCreateTime(entity.getCreateTime()); return co; } } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgQualificationExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgQualificationExecutor.java index a503d31..31bd717 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgQualificationExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/OrgQualificationExecutor.java @@ -16,6 +16,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** * 机构资质证书执行器(App层) * @@ -99,6 +103,25 @@ public class OrgQualificationExecutor implements OrgQualificationApi { pageResult.getTotal()); } + @Override + public SingleResponse>> classGet(Long id) { + List list = orgQualificationDomainService.classGet(id); + return SingleResponse.success(list.stream() + .map(this::toCO) + .collect(Collectors.groupingBy(this::resolveLicenseGroupKey, Collectors.toList()))); + } + + /** licenseTypeCode 可能为空(如营业执照),分组键回退到 licenseTypeName */ + private String resolveLicenseGroupKey(OrgQualificationCO co) { + if (co.getLicenseTypeCode() != null && !co.getLicenseTypeCode().isBlank()) { + return co.getLicenseTypeCode(); + } + if (co.getLicenseTypeName() != null && !co.getLicenseTypeName().isBlank()) { + return co.getLicenseTypeName(); + } + return "default"; + } + private OrgQualificationCO toCO(OrgQualificationEntity entity) { if (entity == null) { return null; diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgQualificationApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgQualificationApi.java index d0761b8..e3304bf 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgQualificationApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/OrgQualificationApi.java @@ -7,6 +7,9 @@ import org.qinan.safetyeval.client.dto.OrgQualificationAddCmd; import org.qinan.safetyeval.client.dto.OrgQualificationModifyCmd; import org.qinan.safetyeval.client.dto.OrgQualificationPageQuery; +import java.util.List; +import java.util.Map; + /** * 机构资质证书接口定义(Client层) * @@ -23,4 +26,6 @@ public interface OrgQualificationApi { SingleResponse delete(Long id); PageResponse page(OrgQualificationPageQuery query); + + SingleResponse>> classGet(Long id); } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgInfoCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgInfoCO.java index 6c944f0..c266ff8 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgInfoCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/OrgInfoCO.java @@ -2,6 +2,7 @@ package org.qinan.safetyeval.client.co; import java.math.BigDecimal; import java.time.LocalDate; +import java.time.LocalDateTime; import lombok.Data; /** @@ -149,4 +150,7 @@ public class OrgInfoCO { /** 单位ID */ private Long orgId; + + /** 创建时间(开户时间) */ + private LocalDateTime createTime; } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgInfoPageQuery.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgInfoPageQuery.java index 6adca9f..f93d352 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgInfoPageQuery.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/OrgInfoPageQuery.java @@ -1,7 +1,9 @@ package org.qinan.safetyeval.client.dto; +import java.time.LocalDate; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; /** * 机构信息分页查询参数 @@ -23,4 +25,27 @@ public class OrgInfoPageQuery extends BasePageQuery { /** 租户ID */ private Long tenantId; + + /** 属地名称 */ + private String districtName; + + /** 状态(0启用1禁用) */ + private Integer state; + + /** 开户时间(创建时间)起 */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate createTimeStart; + + /** 开户时间(创建时间)止 */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate createTimeEnd; + + /** 注册地址(模糊) */ + private String registerAddress; + + /** 备案类型编码(1审核备案2确认备案) */ + private String filingTypeCode; + + /** 备案状态编码(1已备案2未备案) */ + private Integer filingRecordStatusCode; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/OrgInfoEntity.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/OrgInfoEntity.java index 422818c..6026603 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/OrgInfoEntity.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/OrgInfoEntity.java @@ -4,6 +4,7 @@ import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; +import java.time.LocalDateTime; /** * 机构信息领域实体 @@ -152,4 +153,7 @@ public class OrgInfoEntity { private Long orgId; /** 创建人 */ private Long createId; + + /** 创建时间(开户时间) */ + private LocalDateTime createTime; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/OrgQualificationGateway.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/OrgQualificationGateway.java index d49866d..78b4a11 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/OrgQualificationGateway.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/gateway/OrgQualificationGateway.java @@ -4,6 +4,8 @@ import org.qinan.safetyeval.domain.entity.OrgQualificationEntity; import org.qinan.safetyeval.domain.query.OrgQualificationQuery; import org.qinan.safetyeval.domain.query.PageResult; +import java.util.List; + /** * 机构资质证书Gateway接口(Domain层定义) * @@ -22,4 +24,6 @@ public interface OrgQualificationGateway { void delete(Long id); PageResult page(OrgQualificationQuery query); + + List classGet(Long id); } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/query/OrgInfoQuery.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/query/OrgInfoQuery.java index eb11ac3..ecf5f70 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/query/OrgInfoQuery.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/query/OrgInfoQuery.java @@ -1,5 +1,6 @@ package org.qinan.safetyeval.domain.query; +import java.time.LocalDate; import lombok.Data; /** @@ -27,4 +28,25 @@ public class OrgInfoQuery { /** 租户ID */ private Long tenantId; + + /** 属地名称 */ + private String districtName; + + /** 状态(0启用1禁用) */ + private Integer state; + + /** 创建时间起 */ + private LocalDate createTimeStart; + + /** 创建时间止 */ + private LocalDate createTimeEnd; + + /** 注册地址(模糊) */ + private String registerAddress; + + /** 备案类型编码(1审核备案2确认备案) */ + private String filingTypeCode; + + /** 备案状态编码(1已备案2未备案) */ + private Integer filingRecordStatusCode; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/OrgQualificationDomainService.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/OrgQualificationDomainService.java index 4470a4b..4a55525 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/OrgQualificationDomainService.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/OrgQualificationDomainService.java @@ -10,6 +10,8 @@ import org.qinan.safetyeval.domain.query.PageResult; import javax.annotation.Resource; import org.springframework.stereotype.Service; +import java.util.List; + /** * 机构资质证书领域服务 * @@ -48,4 +50,8 @@ public class OrgQualificationDomainService { public PageResult page(OrgQualificationQuery query) { return orgQualificationGateway.page(query); } + + public List classGet(Long id) { + return orgQualificationGateway.classGet(id); + } } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java index 1cb86a4..9da1072 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgInfoGatewayImpl.java @@ -170,6 +170,27 @@ public class OrgInfoGatewayImpl implements OrgInfoGateway { if (query.getTenantId() != null) { wrapper.eq(OrgInfoDO::getTenantId, query.getTenantId()); } + if (StringUtils.hasText(query.getDistrictName())) { + wrapper.eq(OrgInfoDO::getDistrictName, query.getDistrictName()); + } + if (query.getState() != null) { + wrapper.eq(OrgInfoDO::getState, query.getState()); + } + if (query.getCreateTimeStart() != null) { + wrapper.ge(OrgInfoDO::getCreateTime, query.getCreateTimeStart().atStartOfDay()); + } + if (query.getCreateTimeEnd() != null) { + wrapper.lt(OrgInfoDO::getCreateTime, query.getCreateTimeEnd().plusDays(1).atStartOfDay()); + } + if (StringUtils.hasText(query.getRegisterAddress())) { + wrapper.like(OrgInfoDO::getRegisterAddress, query.getRegisterAddress()); + } + if (StringUtils.hasText(query.getFilingTypeCode())) { + wrapper.eq(OrgInfoDO::getFilingTypeCode, query.getFilingTypeCode()); + } + if (query.getFilingRecordStatusCode() != null) { + wrapper.eq(OrgInfoDO::getFilingRecordStatusCode, query.getFilingRecordStatusCode()); + } Page page = new Page<>(query.getPageNum(), query.getPageSize()); IPage result = orgInfoMapper.selectPage(page, wrapper); @@ -323,6 +344,7 @@ public class OrgInfoGatewayImpl implements OrgInfoGateway { entity.setAttachmentUrls(dataObject.getAttachmentUrls()); entity.setState(dataObject.getState()); entity.setTenantId(dataObject.getTenantId()); + entity.setCreateTime(dataObject.getCreateTime()); return entity; } } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgQualificationGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgQualificationGatewayImpl.java index 629f6f9..500eb4e 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgQualificationGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/OrgQualificationGatewayImpl.java @@ -96,6 +96,15 @@ public class OrgQualificationGatewayImpl implements OrgQualificationGateway { return PageResult.of(entities, result.getTotal(), result.getCurrent(), result.getSize()); } + @Override + public List classGet(Long id) { + return orgQualificationMapper.selectList(new LambdaQueryWrapper() + .eq(OrgQualificationDO::getOrgId, id) + .eq(OrgQualificationDO::getDeleteEnum, "false")).stream() + .map(this::toEntity) + .collect(Collectors.toList()); + } + private OrgQualificationDO toDO(OrgQualificationEntity entity) { OrgQualificationDO dataObject = new OrgQualificationDO(); dataObject.setOrgId(orgContextResolver.resolveOrgId(entity.getOrgId()));