Merge remote-tracking branch 'origin/feature/REQ-3488' into feature/REQ-3488

This commit is contained in:
liuyang 2024-12-26 18:31:30 +08:00
commit 07e8782b20
39 changed files with 1561 additions and 37 deletions

View File

@ -0,0 +1,32 @@
package cn.axzo.orgmanax.api.teamlog.feign;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq;
import cn.axzo.orgmanax.dto.teamlog.dto.TeamLogDTO;
import cn.axzo.orgmanax.dto.teamlog.req.TeamLogPageReq;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author zhanghongbo
* @date 2024/12/25
*/
@FeignClient(
value = "orgmanax",
url = "${axzo.service.orgmanax:http://orgmanax:8080}")
public interface TeamLogApi {
/**
* 分页列表接口
* XXX本接口默认分页单页最多返回1000条数据调用方使用时需注意
*
* @param req
* @return
* @see ListNodeUserReq#getPageSize()
*/
@PostMapping("/api/team-log/list")
ApiResult<PageResp<TeamLogDTO>> list(@RequestBody @Validated TeamLogPageReq req);
}

View File

@ -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<PageResp<OrgUnitRegisterDTO>> list(@RequestBody @Validated ListUnitRegisterReq req);
}
/**
* 分页获取企业入驻历史信息
*/
@PostMapping("/api/org/unit/register/history/list")
ApiResult<PageResp<OrgUnitRegisterHistoryDTO>> listHistory(@RequestBody @Validated ListUnitRegisterHistoryReq req);
}

View File

@ -0,0 +1,13 @@
# 查询
POST {{host}}/api/team-log/list
Content-Type: application/json
Accept: application/json
{
"page": 1,
"pageSize": 20,
"teamIds": [10358],
"type": "CHANGE_TEAM_OWNER"
}
###

View File

@ -37,4 +37,14 @@ public interface OrgJobConstants {
String CODE_KEY = "code";
String OLD_NEW_JOB_CODE_MAP_KEY = "job_code_mapping";
Integer JOB_PAGE_SIZE = 1000;
/**
* 系统操作人的personId
*/
Long SYSTEM_OPERATOR_ID = -1L;
/**
* 默认岗位的标识
*/
Integer ORG_JOB_DEF_FLAG = 1;
}

View File

@ -0,0 +1,66 @@
package cn.axzo.orgmanax.dto.teamlog.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 平台班组变更日志表
* </p>
*
* @author autoGenerator
* @since 2023-04-14
*/
@Data
public class TeamLogDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
private Long id;
/**
* 平台班组id
*/
private Long platTeamId;
/**
* log类型
*/
private String type;
/**
* 变更描述
*/
private String content;
/**
* 相关参数
*/
private String param;
/**
* 操作人身份id
*/
private Long operatorId;
/**
* 是否删除 0否1是
*/
private Long isDelete;
/**
* 创建时间
*/
private Date createAt;
/**
* 更新时间
*/
private Date updateAt;
}

View File

@ -0,0 +1,22 @@
package cn.axzo.orgmanax.dto.teamlog.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 平台班组日志类型
* @author zhangtianyu
* @date 2023/4/14 4:00 PM
**/
@Getter
@AllArgsConstructor
public enum PlatTeamLogType {
/**
* 更换班组长
*/
CHANGE_TEAM_OWNER("更换班组长", "将原班组长%s更换为%s"),
;
private final String desc;
private final String content;
}

View File

@ -0,0 +1,43 @@
package cn.axzo.orgmanax.dto.teamlog.req;
import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.orgmanax.dto.teamlog.enums.PlatTeamLogType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* @author zhanghongbo
* @date 2024/12/17
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class TeamLogPageReq extends PageReqV2 {
/**
* 平台班组日志类型
*/
@NotNull(message = "type must not null")
private PlatTeamLogType type;
/**
* 班组id列表
*/
private List<Long> teamIds;
/**
* 开始时间(对于创建时间)
*/
private Date start;
/**
* 结束时间(对于创建时间)
*/
private Date end;
}

View File

@ -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;
}

View File

@ -7,6 +7,7 @@ import lombok.experimental.SuperBuilder;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@NoArgsConstructor
@SuperBuilder
@ -19,6 +20,11 @@ public class OrgUnitRegisterDTO implements Serializable {
*/
private long id;
/**
* 单位id
*/
private Long organizationalUnitId;
/**
* 单位名称
*/
@ -28,6 +34,10 @@ public class OrgUnitRegisterDTO implements Serializable {
* 提交时间
*/
private Date submissionTime;
/**
* 审批时间
*/
private Date approvalTime;
/**
* 状态0:已撤销 10:审核中,20:审核拒绝,30:审核通过
@ -59,4 +69,124 @@ public class OrgUnitRegisterDTO implements Serializable {
*/
private Integer registerType;
/**
* 用户确认状态 1已确认有用户确认时间 2未确认
*/
private Integer confirmStatus = 2;
/**
* 营业期限(纯字符串不做解析)
*/
private String operatingPeriod;
/**
* 经营范围(纯字符串不做解析)
*/
private String businessScope;
/**
* 工作流实例id
*/
private String processInstanceId;
/**
* 单位logo url地址
*/
private String logoUrl;
/**
* 单位介绍
*/
private String introduction;
/**
* 营业执照号图片url地址
*/
private String usccPicUrl;
/**
* 认证公函
*/
private String certificationLetterUrl;
/**
* 企业资质证书可以是多个
*/
private String certificationUrl;
/**
* 统一社会信用码
*/
private String uniformSocialCreditCode;
/**
* 法人代表姓名
*/
private String legalName;
/**
* 单位注册地址
*/
private String registeredAddress;
/**
* 省市区区编码/隔开
*/
private String areaCode;
/**
* 省市区名字/隔开(四川省/成都市/武侯区)
*/
private String areaName;
/**
* 企业详细地址
*/
private String address;
/**
* 企业poi地址
*/
private String addressPoi;
/**
* 经纬度/隔开经度纬度(124.32421/142.424432)
*/
private String longLat;
/**
* 官网
**/
private String website;
/**
* 管理员手机号
*/
private String adminPhone;
/**
* 管理员姓名
*/
private String adminName;
/**
* 联系人&提交人职务
*/
private String contactPosition;
/**
* 操作日志
*/
private List<OrgUnitRegisterLogDTO> ouRegisterLogs;
/**
* 主要人员信息
*/
private List<OrgUnitRegisterContactDTO> contactList;
/**
* 团队类型个人实名数据 {name:"姓名",phone:"手机号",idNumber:"身份证号",idFrontPhoto:"身份证正面照",idBackPhoto:"身份证反面照",faceUrl:"人脸照片"}
*/
private OrgUnitRegisterRealNameDTO corpsRealNameObj;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -47,19 +47,28 @@ public class ListUnitRegisterReq extends PageReqV2 {
*/
private Date submissionTimeEnd;
/**
* 提交人手机号
*/
private String phone;
/**
* 主体类型: 1:企业 2:团队
*/
private Integer mainBodyType;
/**
* 注册类型 1-单位注册 2-施工资质注册
**/
private Integer registerType;
* 统一社会信用代码
*/
private String uniformSocialCreditCode;
/**
* 单位id
*/
private Long organizationalUnitId;
/**
* 工作流实例id
*/
private String processInstanceId;
/**
* 联系人&提交人手机号
*/
private String contactPhone;
}

View File

@ -1,24 +0,0 @@
package cn.axzo.orgmanax.infra.constants;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
/**
* @description 岗位相关的常量
* @author luofu
* @version 1.0
* @date 2024/9/12
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class OrgJobConstant {
/**
* 系统操作人的personId
*/
public static final long SYSTEM_OPERATOR_ID = -1L;
/**
* 默认岗位的标识
*/
public static final int ORG_JOB_DEF_FLAG = 1;
}

View File

@ -1,6 +1,5 @@
package cn.axzo.orgmanax.infra.dao.orgjob.dao;
import cn.axzo.orgmanax.infra.constants.OrgJobConstant;
import cn.axzo.orgmanax.infra.dao.orgjob.entity.OrgJob;
import cn.axzo.orgmanax.infra.dao.orgjob.mapper.OrgJobMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -36,7 +35,7 @@ public class OrgJobDao extends ServiceImpl<OrgJobMapper, OrgJob> {
if (Objects.isNull(id)) {
return 0;
}
operatorId = Optional.ofNullable(operatorId).orElse(OrgJobConstant.SYSTEM_OPERATOR_ID);
operatorId = Optional.ofNullable(operatorId).orElse(-1L);
return getBaseMapper().remove(id, operatorId);
}

View File

@ -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<OuRegisterHistoryMapper, OuRegisterHistory> {
}

View File

@ -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;
}

View File

@ -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<OuRegisterHistory> {
}

View File

@ -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<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> page(OrganizationalUnitRegisterQueryRepository.ListReq paramReq);
default List<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> 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<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> 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<Long> 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<Long> ids;
/**
* 用于遍历数据
*/
@CriteriaField(field = "id", operator = Operator.GT)
private Long idGt;
@CriteriaField(field = "approvalStatus", operator = Operator.IN)
private Set<Integer> 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<String> sort;
}
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
class OrganizationalUnitRegisterResp extends OrganizationalUnitRegister {
// 按需扩展字段占个位避免报错
private String todo;
}
}

View File

@ -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<OuRegisterHistoryQueryRepository.OuRegisterHistoryResp> page(OuRegisterHistoryQueryRepository.ListReq paramReq);
default List<OuRegisterHistoryQueryRepository.OuRegisterHistoryResp> 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<OuRegisterHistoryQueryRepository.OuRegisterHistoryResp> 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<Long> 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<String> sort;
}
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
class OuRegisterHistoryResp extends OuRegisterHistory {
// 按需扩展字段占个位避免报错
private String todo;
}
}

View File

@ -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<OrganizationalUnitRegisterResp> page(ListReq req) {
IPage<OrganizationalUnitRegister> page = PageConverter.toMybatis(req, OrganizationalUnitRegister.class);
QueryWrapper<OrganizationalUnitRegister> wrapper = QueryWrapperHelper.fromBean(req, OrganizationalUnitRegister.class);
if (!BooleanUtil.isTrue(req.getIncludeDeleted())) {
wrapper.eq("is_delete", 0);
}
IPage<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> results = organizationalUnitRegisterDao.page(page, wrapper).convert(e -> BeanUtil.toBean(e, OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp.class));
PageResp<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> resp = PageConverter.toResp(results);
List<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> records = resp.getData();
CollUtil.isEmpty(records);
return resp;
}
}

View File

@ -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<OuRegisterHistoryResp> page(ListReq req) {
IPage<OuRegisterHistory> page = PageConverter.toMybatis(req, OuRegisterHistory.class);
QueryWrapper<OuRegisterHistory> wrapper = QueryWrapperHelper.fromBean(req, OuRegisterHistory.class);
if (!BooleanUtil.isTrue(req.getIncludeDeleted())) {
wrapper.eq("is_delete", 0);
}
IPage<OuRegisterHistoryQueryRepository.OuRegisterHistoryResp> results = ouRegisterHistoryDao.page(page, wrapper).convert(e -> BeanUtil.toBean(e, OuRegisterHistoryQueryRepository.OuRegisterHistoryResp.class));
PageResp<OuRegisterHistoryQueryRepository.OuRegisterHistoryResp> resp = PageConverter.toResp(results);
List<OuRegisterHistoryQueryRepository.OuRegisterHistoryResp> records = resp.getData();
CollUtil.isEmpty(records);
return resp;
}
}

View File

@ -0,0 +1,19 @@
package cn.axzo.orgmanax.infra.dao.teamlog.dao;
import cn.axzo.orgmanax.infra.dao.teamlog.entity.PlatTeamLog;
import cn.axzo.orgmanax.infra.dao.teamlog.mapper.PlatTeamLogMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 平台班组变更日志表 服务实现类
* </p>
*
* @author autoGenerator
* @since 2023-04-14
*/
@Service
public class PlatTeamLogDao extends ServiceImpl<PlatTeamLogMapper, PlatTeamLog> {
}

View File

@ -0,0 +1,91 @@
package cn.axzo.orgmanax.infra.dao.teamlog.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 平台班组变更日志表
* </p>
*
* @author autoGenerator
* @since 2023-04-14
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("plat_team_log")
public class PlatTeamLog implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 平台班组id
*/
@TableField("plat_team_id")
private Long platTeamId;
/**
* log类型
*/
@TableField("type")
private String type;
/**
* 变更描述
*/
@TableField("content")
private String content;
/**
* 相关参数
*/
@TableField("param")
private String param;
/**
* 操作人身份id
*/
@TableField("operator_id")
private Long operatorId;
/**
* 是否删除 0否1是
*/
@TableField("is_delete")
private Long isDelete;
/**
* 创建时间
*/
@TableField("create_at")
private Date createAt;
/**
* 更新时间
*/
@TableField("update_at")
private Date updateAt;
}

View File

@ -0,0 +1,16 @@
package cn.axzo.orgmanax.infra.dao.teamlog.mapper;
import cn.axzo.orgmanax.infra.dao.teamlog.entity.PlatTeamLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 平台班组变更日志表 Mapper 接口
* </p>
*
* @author autoGenerator
* @since 2023-04-14
*/
public interface PlatTeamLogMapper extends BaseMapper<PlatTeamLog> {
}

View File

@ -0,0 +1,107 @@
package cn.axzo.orgmanax.infra.dao.teamlog.repository;
import cn.axzo.foundation.dao.support.wrapper.CriteriaField;
import cn.axzo.foundation.dao.support.wrapper.Operator;
import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.teamlog.enums.PlatTeamLogType;
import cn.axzo.orgmanax.dto.teamlog.req.TeamLogPageReq;
import cn.axzo.orgmanax.infra.dao.nodeuser.entity.OrganizationalNodeUser;
import cn.axzo.orgmanax.infra.dao.nodeuser.repository.NodeUserQueryRepository;
import cn.axzo.orgmanax.infra.dao.teamlog.entity.PlatTeamLog;
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;
/**
* @author zhanghongbo
* @date 2024/12/25
*/
public interface PlatTeamLogRepository {
PageResp<TeamLogResp> page(PageReq req);
default List<TeamLogResp> list(PageReq req) {
return page(req).getData();
}
default TeamLogResp one(OneReq req) {
return oneOpt(req).orElse(null);
}
default Optional<TeamLogResp> oneOpt(OneReq req) {
PageReq page = BeanUtil.toBean(req, PageReq.class);
page.setPage(1);
page.setPageSize(1);
return page(page).getData().stream().findFirst();
}
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
class PageReq extends PageReqV2 {
/**
* 主键id
*/
@CriteriaField
private Long id;
/**
* 平台班组日志类型
*/
@CriteriaField
private String type;
/**
* 班组id列表
*/
@CriteriaField(field = "platTeamId", operator = Operator.IN)
private List<Long> teamIds;
/**
* 开始时间(对于创建时间)
*/
@CriteriaField(field = "createAt", operator = Operator.GE)
private Date start;
/**
* 结束时间(对于创建时间)
*/
@CriteriaField(field = "createAt", operator = Operator.LE)
private Date end;
/**
* 是都包含删除(默认走查询未删除)
*/
@CriteriaField(ignore = true)
private Boolean includeDeleted;
}
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
class TeamLogResp extends PlatTeamLog {
private String xx;
}
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
class OneReq {
/**
* 主键id
*/
private Long id;
}
}

View File

@ -0,0 +1,47 @@
package cn.axzo.orgmanax.infra.dao.teamlog.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.teamlog.dao.PlatTeamLogDao;
import cn.axzo.orgmanax.infra.dao.teamlog.entity.PlatTeamLog;
import cn.axzo.orgmanax.infra.dao.teamlog.repository.PlatTeamLogRepository;
import cn.axzo.orgmanax.infra.util.CommonUtil;
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.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository;
/**
* @author zhanghongbo
* @date 2024/12/25
*/
@Repository
@Slf4j
@AllArgsConstructor
public class PlatTeamLogRepositoryImpl implements PlatTeamLogRepository {
private PlatTeamLogDao platTeamLogDao;
@Override
public PageResp<TeamLogResp> page(PageReq req) {
IPage<PlatTeamLog> page = PageConverter.toMybatis(req, PlatTeamLog.class);
QueryWrapper<PlatTeamLog> wrapper = QueryWrapperHelper.fromBean(req, PlatTeamLog.class);
// 处理删除标记
if (!BooleanUtil.isTrue(req.getIncludeDeleted())) {
wrapper.eq("is_delete", 0);
}
IPage<TeamLogResp> results = platTeamLogDao.page(page, wrapper)
.convert(e -> BeanUtil.toBean(e, TeamLogResp.class));
if (CollUtil.isEmpty(results.getRecords())) {
return CommonUtil.getEmptyPage(req, TeamLogResp.class);
}
return PageConverter.toResp(results);
}
}

View File

@ -0,0 +1,26 @@
package cn.axzo.orgmanax.infra.util;
import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.foundation.page.PageResp;
import com.baomidou.mybatisplus.extension.api.R;
import com.google.common.collect.ImmutableList;
import lombok.experimental.UtilityClass;
/**
* @author zhanghongbo
* @date 2024/12/26
*/
@UtilityClass
public class CommonUtil {
/**
* 获取空集合分页数据
* @param req
* @param rClass
* @param <R>
* @return
*/
public static <R> PageResp<R> getEmptyPage(PageReqV2 req, Class<R> rClass){
return PageResp.<R>builder().size(req.getPageSize()).current(req.getPage()).total(0L).data(ImmutableList.of()).build();
}
}

View File

@ -7,8 +7,12 @@ import cn.azxo.framework.common.model.CommonResponse;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
@Slf4j
@RestControllerAdvice
@ -29,6 +33,26 @@ public class ExceptionControllerAdvice {
return ApiResult.error(BizResultCode.UNKNOWN_ERROR.getErrorCode(), extractMessage(ex));
}
@ExceptionHandler(value = MethodArgumentNotValidException.class)
public ApiResult handleArgumentValidException(MethodArgumentNotValidException e){
log.warn("handleArgumentValidException Exception", e);
BindingResult bindingResult = e.getBindingResult();
StringBuilder errorMsg = new StringBuilder();
for (FieldError fieldError : bindingResult.getFieldErrors()) {
if (-1 == errorMsg.indexOf(fieldError.getDefaultMessage())) {
errorMsg.append(fieldError.getDefaultMessage()).append(",");
}
}
errorMsg.deleteCharAt(errorMsg.length() - 1);
return ApiResult.error(BizResultCode.INVALID_PARAM.getErrorCode(), errorMsg.toString());
}
@ExceptionHandler(value = MethodArgumentTypeMismatchException.class)
public ApiResult handleMethodArgumentTypeMismatchException(MethodArgumentTypeMismatchException e){
log.warn("handleMethodArgumentTypeMismatchException Exception", e);
return ApiResult.error(BizResultCode.INVALID_PARAM.getErrorCode(), e.getMessage());
}
/**
* 捕捉Exception异常
*

View File

@ -0,0 +1,28 @@
package cn.axzo.orgmanax.server.teamlog.controller;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.api.teamlog.feign.TeamLogApi;
import cn.axzo.orgmanax.dto.teamlog.dto.TeamLogDTO;
import cn.axzo.orgmanax.dto.teamlog.req.TeamLogPageReq;
import cn.axzo.orgmanax.server.teamlog.service.TeamLogService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RestController;
/**
* @author zhanghongbo
* @date 2024/12/25
*/
@RestController
@Slf4j
@AllArgsConstructor
public class TeamLogController implements TeamLogApi {
private TeamLogService teamLogService;
@Override
public ApiResult<PageResp<TeamLogDTO>> list(TeamLogPageReq req) {
return ApiResult.success(teamLogService.page(req));
}
}

View File

@ -0,0 +1,13 @@
package cn.axzo.orgmanax.server.teamlog.foundation;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.teamlog.dto.TeamLogDTO;
import cn.axzo.orgmanax.dto.teamlog.req.TeamLogPageReq;
/**
* @author zhanghongbo
* @date 2024/12/26
*/
public interface TeamLogFoundationService {
PageResp<TeamLogDTO> page(TeamLogPageReq req);
}

View File

@ -0,0 +1,40 @@
package cn.axzo.orgmanax.server.teamlog.foundation.impl;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.job.dto.OrgJobDTO;
import cn.axzo.orgmanax.dto.teamlog.dto.TeamLogDTO;
import cn.axzo.orgmanax.dto.teamlog.req.TeamLogPageReq;
import cn.axzo.orgmanax.infra.dao.teamlog.entity.PlatTeamLog;
import cn.axzo.orgmanax.infra.dao.teamlog.repository.PlatTeamLogRepository;
import cn.axzo.orgmanax.server.teamlog.foundation.TeamLogFoundationService;
import cn.hutool.core.bean.BeanUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author zhanghongbo
* @date 2024/12/26
*/
@Service
@Slf4j
@AllArgsConstructor
public class TeamLogFoundationServiceImpl implements TeamLogFoundationService {
private PlatTeamLogRepository platTeamLogRepository;
@Override
public PageResp<TeamLogDTO> page(TeamLogPageReq req) {
PlatTeamLogRepository.PageReq pageReq = BeanUtil.copyProperties(req, PlatTeamLogRepository.PageReq.class);
pageReq.setType(req.getType().name());
PageResp<PlatTeamLogRepository.TeamLogResp> page = platTeamLogRepository.page(pageReq);
return PageResp.<TeamLogDTO>builder()
.size(page.getSize())
.current(page.getCurrent())
.total(page.getTotal())
.data(BeanUtil.copyToList(page.getData(), TeamLogDTO.class))
.build();
}
}

View File

@ -0,0 +1,18 @@
package cn.axzo.orgmanax.server.teamlog.service;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.teamlog.dto.TeamLogDTO;
import cn.axzo.orgmanax.dto.teamlog.req.TeamLogPageReq;
/**
* @author zhanghongbo
* @date 2024/12/26
*/
public interface TeamLogService {
/**
* 分页查询班组日志
* @param req
* @return
*/
PageResp<TeamLogDTO> page(TeamLogPageReq req);
}

View File

@ -0,0 +1,33 @@
package cn.axzo.orgmanax.server.teamlog.service.impl;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.teamlog.dto.TeamLogDTO;
import cn.axzo.orgmanax.dto.teamlog.req.TeamLogPageReq;
import cn.axzo.orgmanax.infra.dao.teamlog.repository.PlatTeamLogRepository;
import cn.axzo.orgmanax.server.teamlog.foundation.TeamLogFoundationService;
import cn.axzo.orgmanax.server.teamlog.service.TeamLogService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @author zhanghongbo
* @date 2024/12/26
*/
@Service
@Slf4j
@AllArgsConstructor
public class TeamLogServiceImpl implements TeamLogService {
private TeamLogFoundationService teamLogFoundationService;
/**
* 分页查询班组日志
* @param req
* @return
*/
@Override
public PageResp<TeamLogDTO> page(TeamLogPageReq req) {
return teamLogFoundationService.page(req);
}
}

View File

@ -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<PageResp<OrgUnitRegisterDTO>> list(ListUnitRegisterReq req) {
return null;
return ApiResult.success(registerService.list(req));
}
@Override
public ApiResult<PageResp<OrgUnitRegisterHistoryDTO>> listHistory(ListUnitRegisterHistoryReq req) {
return ApiResult.success(registerService.listHistory(req));
}
}

View File

@ -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<OrgUnitRegisterDTO> list(ListUnitRegisterReq req);
PageResp<OrgUnitRegisterHistoryDTO> listHistory(ListUnitRegisterHistoryReq req);
}

View File

@ -0,0 +1,72 @@
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<OrgUnitRegisterDTO> list(ListUnitRegisterReq req) {
OrganizationalUnitRegisterQueryRepository.ListReq listReq = BeanUtil.copyProperties(req, OrganizationalUnitRegisterQueryRepository.ListReq.class);
PageResp<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> page = organizationalUnitRegisterQueryRepository.page(listReq);
return PageResp.<OrgUnitRegisterDTO>builder()
.current(page.getCurrent())
.total(page.getTotal())
.size(page.getSize())
.data(page.getData().stream().map(this::transformToRegisterDTO).collect(Collectors.toList()))
.build();
}
@Override
public PageResp<OrgUnitRegisterHistoryDTO> listHistory(ListUnitRegisterHistoryReq req) {
OuRegisterHistoryQueryRepository.ListReq listReq = BeanUtil.copyProperties(req, OuRegisterHistoryQueryRepository.ListReq.class);
PageResp<OuRegisterHistoryQueryRepository.OuRegisterHistoryResp> page = ouRegisterHistoryQueryRepository.page(listReq);
return PageResp.<OrgUnitRegisterHistoryDTO>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<OrgUnitRegisterContactDTO> contactResList = UnitRegisterContactMapStruct.INSTANCE.neat2ResList(registerResp.safeGetContactExtra().getContactList());
registerDTO.setContactList(contactResList);
registerDTO.setApprovalTime(Objects.equals(registerResp.getApprovalStatus(), 30) ? registerResp.getApprovalTime() : null);
return registerDTO;
}
}

View File

@ -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<OrgUnitRegisterContactDTO> neat2ResList(List<NeatContact> req);
}