diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/unit/feign/OrgUnitRegisterApi.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/unit/feign/OrgUnitRegisterApi.java index 2238386..c2fce27 100644 --- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/unit/feign/OrgUnitRegisterApi.java +++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/unit/feign/OrgUnitRegisterApi.java @@ -4,6 +4,8 @@ package cn.axzo.orgmanax.api.unit.feign; import cn.axzo.foundation.page.PageResp; import cn.axzo.foundation.result.ApiResult; import cn.axzo.orgmanax.dto.unit.register.dto.OrgUnitRegisterDTO; +import cn.axzo.orgmanax.dto.unit.register.dto.OrgUnitRegisterHistoryDTO; +import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterHistoryReq; import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterReq; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; @@ -26,4 +28,10 @@ public interface OrgUnitRegisterApi { @PostMapping("/api/org/unit/register/list") ApiResult> list(@RequestBody @Validated ListUnitRegisterReq req); -} + /** + * 分页获取企业入驻历史信息 + */ + @PostMapping("/api/org/unit/register/history/list") + ApiResult> listHistory(@RequestBody @Validated ListUnitRegisterHistoryReq req); + +} \ No newline at end of file diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterContactDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterContactDTO.java new file mode 100644 index 0000000..5ab934f --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterContactDTO.java @@ -0,0 +1,52 @@ +package cn.axzo.orgmanax.dto.unit.register.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Accessors(chain = true) +public class OrgUnitRegisterContactDTO implements Serializable { + + /** + * 联系人id(新增时不传,修改时需要传) + */ + private Long id; + + /** + * 单位id + */ + + private Long organizationalUnitId; + + /** + * 联系人姓名 + */ + + private String name; + + /** + * 联系人手机号码 + */ + + private String phone; + + /** + * 联系人职务 + */ + + private String position; + + /** + * 备注 + */ + + private String memo; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterDTO.java index 4c4092b..bd28572 100644 --- a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterDTO.java +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterDTO.java @@ -7,6 +7,7 @@ import lombok.experimental.SuperBuilder; import java.io.Serializable; import java.util.Date; +import java.util.List; @NoArgsConstructor @SuperBuilder @@ -18,6 +19,10 @@ public class OrgUnitRegisterDTO implements Serializable { * 主键id */ private long id; + /** + * 单位id(审批通过时有效) + */ + private Long ouId; /** * 单位名称 @@ -28,6 +33,10 @@ public class OrgUnitRegisterDTO implements Serializable { * 提交时间 */ private Date submissionTime; + /** + * 审批时间 + */ + private Date approvalTime; /** * 状态:0:已撤销 ,10:审核中,20:审核拒绝,30:审核通过 @@ -59,4 +68,24 @@ public class OrgUnitRegisterDTO implements Serializable { */ private Integer registerType; + /** + * 用户确认状态 1已确认(有用户确认时间) 2未确认 + */ + private Integer confirmStatus = 2; + + /** + * 操作日志 + */ + private List ouRegisterLogs; + + /** + * 主要人员信息 + */ + private List contactList; + + /** + * 团队类型个人实名数据 {name:"姓名",phone:"手机号",idNumber:"身份证号",idFrontPhoto:"身份证正面照",idBackPhoto:"身份证反面照",faceUrl:"人脸照片"} + */ + private OrgUnitRegisterRealNameDTO corpsRealNameObj; + } \ No newline at end of file diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterHistoryDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterHistoryDTO.java new file mode 100644 index 0000000..864d529 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterHistoryDTO.java @@ -0,0 +1,52 @@ +package cn.axzo.orgmanax.dto.unit.register.dto; + +import lombok.Data; + +import java.util.Date; + +@Data +public class OrgUnitRegisterHistoryDTO { + + private Long id; + + /** + * 单位注册记录id + */ + private String applyNum; + + /** + * 企业统一社会信用代码 + */ + private String usccNumber; + + /** + * 动作类型 1、提交申请 2、重新提交 3、审核通过 4、审核拒绝 + */ + private Integer activeType; + + /** + * 操作人身份id + */ + private Long actorId; + + /** + * 操作人姓名 + */ + private String actorName; + + /** + * 备注 + */ + private String comment; + + /** + * 创建时间 + */ + private Date createAt; + + /** + * 申请人手机号 + */ + private String applyPhone; + +} \ No newline at end of file diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterLogDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterLogDTO.java new file mode 100644 index 0000000..c2b9596 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterLogDTO.java @@ -0,0 +1,21 @@ +package cn.axzo.orgmanax.dto.unit.register.dto; + +import lombok.Data; + +/** + * 单位注册操作日志 + */ +@Data +public class OrgUnitRegisterLogDTO { + + /** + * 动作类型: 1:资料完善 2:协议勾选 3:审核中(提交) 4:审核完成(通过/拒绝) + */ + private Integer type; + + /** + * 动作发生时间 + */ + private Long time; + +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterRealNameDTO.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterRealNameDTO.java new file mode 100644 index 0000000..22bcc5b --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/dto/OrgUnitRegisterRealNameDTO.java @@ -0,0 +1,41 @@ +package cn.axzo.orgmanax.dto.unit.register.dto; + +import lombok.Data; + +/** + * 实名制 + */ +@Data +public class OrgUnitRegisterRealNameDTO { + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String phone; + + /** + * 身份证号 + */ + private String idNumber; + + /** + * 身份证正面照 + */ + private String idFrontPhoto; + + /** + * 身份证反面照 + */ + private String idBackPhoto; + + /** + * 人脸照片 + */ + private String faceUrl; + +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/req/ListUnitRegisterHistoryReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/req/ListUnitRegisterHistoryReq.java new file mode 100644 index 0000000..7c6bb22 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/req/ListUnitRegisterHistoryReq.java @@ -0,0 +1,30 @@ +package cn.axzo.orgmanax.dto.unit.register.req; + +import cn.axzo.foundation.page.PageReqV2; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author : zhanghonghao@axzo.cn + * @since : 2024/12/26 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class ListUnitRegisterHistoryReq extends PageReqV2 { + + /** + * 统一社会信用代码 + */ + private String usccNumber; + + /** + * 申请人手机号 + */ + private String applyPhone; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/req/ListUnitRegisterReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/req/ListUnitRegisterReq.java index 8ac828d..9541852 100644 --- a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/req/ListUnitRegisterReq.java +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/unit/register/req/ListUnitRegisterReq.java @@ -62,4 +62,23 @@ public class ListUnitRegisterReq extends PageReqV2 { **/ private Integer registerType; + /** + * 统一社会信用代码 + */ + private String uniformSocialCreditCode; + + /** + * 单位id + */ + private Long organizationalUnitId; + + /** + * 工作流实例id + */ + private String processInstanceId; + + /** + * 联系人&提交人手机号 + */ + private String contactPhone; } \ No newline at end of file diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/dao/OuRegisterHistoryDao.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/dao/OuRegisterHistoryDao.java new file mode 100644 index 0000000..0a6e909 --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/dao/OuRegisterHistoryDao.java @@ -0,0 +1,15 @@ +package cn.axzo.orgmanax.infra.dao.register.dao; + +import cn.axzo.orgmanax.infra.dao.register.entity.OuRegisterHistory; +import cn.axzo.orgmanax.infra.dao.register.mapper.OuRegisterHistoryMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Repository; + +/** + * @author : zhanghonghao@axzo.cn + * @since : 2024/12/26 + */ +@Repository +public class OuRegisterHistoryDao extends ServiceImpl { + +} \ No newline at end of file diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/entity/OuRegisterHistory.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/entity/OuRegisterHistory.java new file mode 100644 index 0000000..198e4c5 --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/entity/OuRegisterHistory.java @@ -0,0 +1,87 @@ +package cn.axzo.orgmanax.infra.dao.register.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; +import lombok.experimental.Accessors; +import lombok.experimental.SuperBuilder; + +import java.io.Serializable; +import java.util.Date; + +/** + * 企业入驻历史 + * + * @author makejava + * @since 2022-06-05 10:59:30 + */ +@Data +@TableName(value = "ou_register_history", autoResultMap = true) +@Accessors(chain = true) +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = false) +public class OuRegisterHistory implements Serializable { + + private static final long serialVersionUID = -92011957938725711L; + + /** + * 主键 + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 单位注册记录id + */ + private String applyNum; + + /** + * 企业统一社会信用代码 + */ + private String usccNumber; + + /** + * 动作类型 1、提交申请 2、重新提交 3、审核通过 4、审核拒绝 + */ + private Integer activeType; + + /** + * 操作人身份id + */ + private Long actorId; + + /** + * 操作人姓名 + */ + private String actorName; + + /** + * 备注 + */ + private String comment; + + /** + * 申请人手机号 + */ + private String applyPhone; + + /** + * 是否删除 0否,其他是 + */ + private Long isDelete = 0L; + + /** + * 创建时间 + */ + private Date createAt; + + /** + * 更新时间 + */ + private Date updateAt; +} + diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/mapper/OuRegisterHistoryMapper.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/mapper/OuRegisterHistoryMapper.java new file mode 100644 index 0000000..b01dd5f --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/mapper/OuRegisterHistoryMapper.java @@ -0,0 +1,10 @@ +package cn.axzo.orgmanax.infra.dao.register.mapper; + +import cn.axzo.orgmanax.infra.dao.register.entity.OuRegisterHistory; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OuRegisterHistoryMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/OrganizationalUnitRegisterQueryRepository.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/OrganizationalUnitRegisterQueryRepository.java index 9664ace..592ec2d 100644 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/OrganizationalUnitRegisterQueryRepository.java +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/OrganizationalUnitRegisterQueryRepository.java @@ -1,4 +1,137 @@ package cn.axzo.orgmanax.infra.dao.register.repository; +import cn.axzo.foundation.dao.support.wrapper.CriteriaField; +import cn.axzo.foundation.dao.support.wrapper.Operator; +import cn.axzo.foundation.page.IPageReq; +import cn.axzo.foundation.page.PageReqV2; +import cn.axzo.foundation.page.PageResp; +import cn.axzo.orgmanax.infra.dao.register.entity.OrganizationalUnitRegister; +import cn.hutool.core.bean.BeanUtil; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; +import java.util.List; +import java.util.Optional; +import java.util.Set; + public interface OrganizationalUnitRegisterQueryRepository { + + PageResp page(OrganizationalUnitRegisterQueryRepository.ListReq paramReq); + + default List list(OrganizationalUnitRegisterQueryRepository.ListReq req) { + OrganizationalUnitRegisterQueryRepository.PageReq pageReq = BeanUtil.toBean(req, OrganizationalUnitRegisterQueryRepository.PageReq.class); + pageReq.setPage(1); + pageReq.setPageSize(1000); + return page(pageReq).getData(); + } + + default OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp one(OrganizationalUnitRegisterQueryRepository.OneReq req) { + return oneOpt(req).orElse(null); + } + + default Optional oneOpt(OrganizationalUnitRegisterQueryRepository.OneReq req) { + req.check(); + OrganizationalUnitRegisterQueryRepository.PageReq page = BeanUtil.toBean(req, OrganizationalUnitRegisterQueryRepository.PageReq.class); + page.setPage(1); + page.setPageSize(1); + return page(page).getData().stream().findFirst(); + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class OneReq { + + /** + * id + */ + private Long id; + + /** + * id集合 + */ + private Set ids; + + /** + * 企业主体类型(冗余查询用) + */ + private Integer mainBodyType; + + /** + * 名称 + */ + private String name; + + public void check() { + } + } + + @EqualsAndHashCode(callSuper = true) + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class ListReq extends PageReqV2 { + @CriteriaField + private Long id; + @CriteriaField(field = "id", operator = Operator.IN) + private Set ids; + /** + * 用于遍历数据 + */ + @CriteriaField(field = "id", operator = Operator.GT) + private Long idGt; + @CriteriaField(field = "approvalStatus", operator = Operator.IN) + private Set approvalStatusList; + @CriteriaField(field = "name", operator = Operator.SW) + private String nameRightLike; + @CriteriaField + private String name; + @CriteriaField(field = "submissionTime", operator = Operator.GE) + private Date submissionTimeStart; + @CriteriaField(field = "submissionTime", operator = Operator.LE) + private Date submissionTimeEnd; + @CriteriaField + private String contactPhone; + @CriteriaField + private Integer mainBodyType; + @CriteriaField + private String uniformSocialCreditCode; + @CriteriaField + private Long organizationalUnitId; + @CriteriaField + private String processInstanceId; + @CriteriaField(ignore = true) + private Boolean includeDeleted; + } + + @EqualsAndHashCode(callSuper = true) + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class PageReq extends OrganizationalUnitRegisterQueryRepository.ListReq implements IPageReq { + @CriteriaField(ignore = true) + Integer page; + @CriteriaField(ignore = true) + Integer pageSize; + @CriteriaField(ignore = true) + List sort; + } + + @EqualsAndHashCode(callSuper = true) + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class OrganizationalUnitRegisterResp extends OrganizationalUnitRegister { + // 按需扩展字段,占个位。避免报错 + private String todo; + } + } \ No newline at end of file diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/OuRegisterHistoryQueryRepository.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/OuRegisterHistoryQueryRepository.java new file mode 100644 index 0000000..48bbdea --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/OuRegisterHistoryQueryRepository.java @@ -0,0 +1,122 @@ +package cn.axzo.orgmanax.infra.dao.register.repository; + +import cn.axzo.foundation.dao.support.wrapper.CriteriaField; +import cn.axzo.foundation.dao.support.wrapper.Operator; +import cn.axzo.foundation.page.IPageReq; +import cn.axzo.foundation.page.PageReqV2; +import cn.axzo.foundation.page.PageResp; +import cn.axzo.orgmanax.infra.dao.register.entity.OuRegisterHistory; +import cn.hutool.core.bean.BeanUtil; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; +import java.util.Optional; +import java.util.Set; + +public interface OuRegisterHistoryQueryRepository { + + PageResp page(OuRegisterHistoryQueryRepository.ListReq paramReq); + + default List list(OuRegisterHistoryQueryRepository.ListReq req) { + OuRegisterHistoryQueryRepository.PageReq pageReq = BeanUtil.toBean(req, OuRegisterHistoryQueryRepository.PageReq.class); + pageReq.setPage(1); + pageReq.setPageSize(1000); + return page(pageReq).getData(); + } + + default OuRegisterHistoryQueryRepository.OuRegisterHistoryResp one(OuRegisterHistoryQueryRepository.OneReq req) { + return oneOpt(req).orElse(null); + } + + default Optional oneOpt(OuRegisterHistoryQueryRepository.OneReq req) { + req.check(); + OuRegisterHistoryQueryRepository.PageReq page = BeanUtil.toBean(req, OuRegisterHistoryQueryRepository.PageReq.class); + page.setPage(1); + page.setPageSize(1); + return page(page).getData().stream().findFirst(); + } + + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class OneReq { + + /** + * id + */ + private Long id; + + /** + * 申请人手机号 + */ + private String applyPhone; + + /** + * 企业统一社会信用代码 + */ + private String usccNumber; + + public void check() { + } + + } + + @EqualsAndHashCode(callSuper = true) + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class ListReq extends PageReqV2 { + @CriteriaField + private Long id; + @CriteriaField(field = "id", operator = Operator.IN) + private Set ids; + /** + * 用于遍历数据 + */ + @CriteriaField(field = "id", operator = Operator.GT) + private Long idGt; + /** + * 申请人手机号 + */ + @CriteriaField + private String applyPhone; + + /** + * 企业统一社会信用代码 + */ + @CriteriaField + private String usccNumber; + @CriteriaField(ignore = true) + private Boolean includeDeleted; + } + + @EqualsAndHashCode(callSuper = true) + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class PageReq extends OuRegisterHistoryQueryRepository.ListReq implements IPageReq { + @CriteriaField(ignore = true) + Integer page; + @CriteriaField(ignore = true) + Integer pageSize; + @CriteriaField(ignore = true) + List sort; + } + + @EqualsAndHashCode(callSuper = true) + @NoArgsConstructor + @AllArgsConstructor + @Data + @SuperBuilder + class OuRegisterHistoryResp extends OuRegisterHistory { + // 按需扩展字段,占个位。避免报错 + private String todo; + } +} diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/impl/OrganizationalUnitRegisterQueryRepositoryImpl.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/impl/OrganizationalUnitRegisterQueryRepositoryImpl.java index 7342071..a381fbf 100644 --- a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/impl/OrganizationalUnitRegisterQueryRepositoryImpl.java +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/impl/OrganizationalUnitRegisterQueryRepositoryImpl.java @@ -1,10 +1,44 @@ package cn.axzo.orgmanax.infra.dao.register.repository.impl; +import cn.axzo.foundation.dao.support.converter.PageConverter; +import cn.axzo.foundation.dao.support.mysql.QueryWrapperHelper; +import cn.axzo.foundation.page.PageResp; +import cn.axzo.orgmanax.infra.dao.register.dao.OrganizationalUnitRegisterDao; +import cn.axzo.orgmanax.infra.dao.register.entity.OrganizationalUnitRegister; import cn.axzo.orgmanax.infra.dao.register.repository.OrganizationalUnitRegisterQueryRepository; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.BooleanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; /** * @author : zhanghonghao@axzo.cn * @since : 2024/12/26 */ +@Service +@RequiredArgsConstructor +@Slf4j public class OrganizationalUnitRegisterQueryRepositoryImpl implements OrganizationalUnitRegisterQueryRepository { + + private final OrganizationalUnitRegisterDao organizationalUnitRegisterDao; + + @Override + public PageResp page(ListReq req) { + IPage page = PageConverter.toMybatis(req, OrganizationalUnitRegister.class); + QueryWrapper wrapper = QueryWrapperHelper.fromBean(req, OrganizationalUnitRegister.class); + if (!BooleanUtil.isTrue(req.getIncludeDeleted())) { + wrapper.eq("is_delete", 0); + } + IPage results = organizationalUnitRegisterDao.page(page, wrapper).convert(e -> BeanUtil.toBean(e, OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp.class)); + PageResp resp = PageConverter.toResp(results); + List records = resp.getData(); + CollUtil.isEmpty(records); + return resp; + } } diff --git a/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/impl/OuRegisterHistoryQueryRepositoryImpl.java b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/impl/OuRegisterHistoryQueryRepositoryImpl.java new file mode 100644 index 0000000..e160d50 --- /dev/null +++ b/orgmanax-infra/src/main/java/cn/axzo/orgmanax/infra/dao/register/repository/impl/OuRegisterHistoryQueryRepositoryImpl.java @@ -0,0 +1,44 @@ +package cn.axzo.orgmanax.infra.dao.register.repository.impl; + +import cn.axzo.foundation.dao.support.converter.PageConverter; +import cn.axzo.foundation.dao.support.mysql.QueryWrapperHelper; +import cn.axzo.foundation.page.PageResp; +import cn.axzo.orgmanax.infra.dao.register.dao.OuRegisterHistoryDao; +import cn.axzo.orgmanax.infra.dao.register.entity.OuRegisterHistory; +import cn.axzo.orgmanax.infra.dao.register.repository.OuRegisterHistoryQueryRepository; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.BooleanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author : zhanghonghao@axzo.cn + * @since : 2024/12/26 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class OuRegisterHistoryQueryRepositoryImpl implements OuRegisterHistoryQueryRepository { + + private final OuRegisterHistoryDao ouRegisterHistoryDao; + + @Override + public PageResp page(ListReq req) { + IPage page = PageConverter.toMybatis(req, OuRegisterHistory.class); + QueryWrapper wrapper = QueryWrapperHelper.fromBean(req, OuRegisterHistory.class); + if (!BooleanUtil.isTrue(req.getIncludeDeleted())) { + wrapper.eq("is_delete", 0); + } + IPage results = ouRegisterHistoryDao.page(page, wrapper).convert(e -> BeanUtil.toBean(e, OuRegisterHistoryQueryRepository.OuRegisterHistoryResp.class)); + PageResp resp = PageConverter.toResp(results); + List records = resp.getData(); + CollUtil.isEmpty(records); + return resp; + } +} diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/controller/UnitRegisterController.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/controller/UnitRegisterController.java index 6882099..2331efc 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/controller/UnitRegisterController.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/controller/UnitRegisterController.java @@ -4,7 +4,10 @@ import cn.axzo.foundation.page.PageResp; import cn.axzo.foundation.result.ApiResult; import cn.axzo.orgmanax.api.unit.feign.OrgUnitRegisterApi; import cn.axzo.orgmanax.dto.unit.register.dto.OrgUnitRegisterDTO; +import cn.axzo.orgmanax.dto.unit.register.dto.OrgUnitRegisterHistoryDTO; +import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterHistoryReq; import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterReq; +import cn.axzo.orgmanax.server.unit.service.RegisterService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -18,9 +21,16 @@ import org.springframework.web.bind.annotation.RestController; @RequiredArgsConstructor public class UnitRegisterController implements OrgUnitRegisterApi { + private final RegisterService registerService; + @Override public ApiResult> list(ListUnitRegisterReq req) { - return null; + return ApiResult.success(registerService.list(req)); + } + + @Override + public ApiResult> listHistory(ListUnitRegisterHistoryReq req) { + return ApiResult.success(registerService.listHistory(req)); } } \ No newline at end of file diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/RegisterService.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/RegisterService.java index da8cc7e..a69d9fa 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/RegisterService.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/RegisterService.java @@ -1,4 +1,17 @@ package cn.axzo.orgmanax.server.unit.service; +import cn.axzo.foundation.page.PageResp; +import cn.axzo.orgmanax.dto.unit.register.dto.OrgUnitRegisterDTO; +import cn.axzo.orgmanax.dto.unit.register.dto.OrgUnitRegisterHistoryDTO; +import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterHistoryReq; +import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterReq; + public interface RegisterService { -} + + /** + * 查询单位注册信息 + */ + PageResp list(ListUnitRegisterReq req); + + PageResp listHistory(ListUnitRegisterHistoryReq req); +} \ No newline at end of file diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/impl/RegisterServiceImpl.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/impl/RegisterServiceImpl.java new file mode 100644 index 0000000..a53cbd6 --- /dev/null +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/unit/service/impl/RegisterServiceImpl.java @@ -0,0 +1,73 @@ +package cn.axzo.orgmanax.server.unit.service.impl; + +import cn.axzo.foundation.page.PageResp; +import cn.axzo.orgmanax.dto.unit.register.dto.*; +import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterHistoryReq; +import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterReq; +import cn.axzo.orgmanax.infra.dao.register.repository.OrganizationalUnitRegisterQueryRepository; +import cn.axzo.orgmanax.infra.dao.register.repository.OuRegisterHistoryQueryRepository; +import cn.axzo.orgmanax.server.unit.service.RegisterService; +import cn.axzo.orgmanax.server.util.mapstruct.UnitRegisterContactMapStruct; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.json.JSONUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @author : zhanghonghao@axzo.cn + * @since : 2024/12/26 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class RegisterServiceImpl implements RegisterService { + + private final OrganizationalUnitRegisterQueryRepository organizationalUnitRegisterQueryRepository; + private final OuRegisterHistoryQueryRepository ouRegisterHistoryQueryRepository; + + @Override + public PageResp list(ListUnitRegisterReq req) { + OrganizationalUnitRegisterQueryRepository.ListReq listReq = BeanUtil.copyProperties(req, OrganizationalUnitRegisterQueryRepository.ListReq.class); + PageResp page = organizationalUnitRegisterQueryRepository.page(listReq); + return PageResp.builder() + .current(page.getCurrent()) + .total(page.getTotal()) + .size(page.getSize()) + .data(page.getData().stream().map(this::transformToRegisterDTO).collect(Collectors.toList())) + .build(); + } + + @Override + public PageResp listHistory(ListUnitRegisterHistoryReq req) { + OuRegisterHistoryQueryRepository.ListReq listReq = BeanUtil.copyProperties(req, OuRegisterHistoryQueryRepository.ListReq.class); + PageResp page = ouRegisterHistoryQueryRepository.page(listReq); + return PageResp.builder() + .current(page.getCurrent()) + .total(page.getTotal()) + .size(page.getSize()) + .data(BeanUtil.copyToList(page.getData(), OrgUnitRegisterHistoryDTO.class)) + .build(); + } + + private OrgUnitRegisterDTO transformToRegisterDTO(OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp registerResp) { + OrgUnitRegisterDTO registerDTO = BeanUtil.copyProperties(registerResp, OrgUnitRegisterDTO.class); + if (StringUtils.isNotBlank(registerResp.getCorpsRealName())) { + registerDTO.setCorpsRealNameObj(JSONUtil.toBean(registerResp.getCorpsRealName(), OrgUnitRegisterRealNameDTO.class)); + } + registerDTO.setConfirmStatus(Objects.isNull(registerResp.getConfirmAt()) ? 2 : 1); + registerDTO.setOuRegisterLogs(JSONUtil.toList(registerResp.getActionLog(), OrgUnitRegisterLogDTO.class)); + registerDTO.setRegisterType(registerResp.getMainBodyType()); + List contactResList = UnitRegisterContactMapStruct.INSTANCE.neat2ResList(registerResp.safeGetContactExtra().getContactList()); + registerDTO.setContactList(contactResList); + registerDTO.setOuId(registerResp.getOrganizationalUnitId()); + registerDTO.setApprovalTime(Objects.equals(registerResp.getApprovalStatus(), 30) ? registerResp.getApprovalTime() : null); + return registerDTO; + } + +} \ No newline at end of file diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/util/mapstruct/UnitRegisterContactMapStruct.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/util/mapstruct/UnitRegisterContactMapStruct.java new file mode 100644 index 0000000..460c312 --- /dev/null +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/util/mapstruct/UnitRegisterContactMapStruct.java @@ -0,0 +1,18 @@ +package cn.axzo.orgmanax.server.util.mapstruct; + +import cn.axzo.orgmanax.dto.unit.register.dto.OrgUnitRegisterContactDTO; +import cn.axzo.orgmanax.infra.dao.register.entity.NeatContact; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +@Mapper +public interface UnitRegisterContactMapStruct { + UnitRegisterContactMapStruct INSTANCE = Mappers.getMapper(UnitRegisterContactMapStruct.class); + + OrgUnitRegisterContactDTO neat2Res(NeatContact req); + + List neat2ResList(List req); + +}