feat(REQ-3488): 实现单位注册接口

This commit is contained in:
zhanghonghao 2025-01-10 14:58:09 +08:00
parent a6c3e41ff6
commit d1afcd27bb
16 changed files with 872 additions and 28 deletions

View File

@ -5,8 +5,10 @@ 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.CreateUnitRegisterReq;
import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterHistoryReq;
import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterReq;
import cn.axzo.orgmanax.dto.unit.register.req.UpdateUnitRegisterReq;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
@ -34,4 +36,16 @@ public interface OrgUnitRegisterApi {
@PostMapping("/api/org/unit/register/history/list")
ApiResult<PageResp<OrgUnitRegisterHistoryDTO>> listHistory(@RequestBody @Validated ListUnitRegisterHistoryReq req);
/**
* 创建单位注册信息
*/
@PostMapping("/api/org/unit/register/create")
ApiResult<OrgUnitRegisterDTO> create(@RequestBody @Validated CreateUnitRegisterReq req);
/**
* 更新单位注册信息
*/
@PostMapping("/api/org/unit/register/update")
ApiResult<OrgUnitRegisterDTO> update(@RequestBody @Validated UpdateUnitRegisterReq req);
}

View File

@ -0,0 +1,55 @@
package cn.axzo.orgmanax.dto.unit.register.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors(chain = true)
public class CreateUnitRegisterContactReq implements Serializable {
/**
* 联系人id(新增时不传修改时需要传)
*/
private Long id;
/**
* 单位id
*/
private Long organizationalUnitId;
/**
* 联系人姓名
*/
@NotBlank(message = "联系人姓名不能为空")
private String name;
/**
* 联系人手机号码
*/
@NotBlank(message = "联系人手机号码不能为空")
@Pattern(regexp = "^1\\d{10}$", message = "手机号格式不正确")
private String phone;
/**
* 联系人职务
*/
@Length(max = 20, message = "职位名字最长为20个字符")
private String position;
/**
* 备注
*/
private String memo;
}

View File

@ -0,0 +1,217 @@
package cn.axzo.orgmanax.dto.unit.register.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 企业注册表, 包括申请人与审批人, 每一次申请为一条数据
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CreateUnitRegisterReq implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 单位id
*/
private Long organizationalUnitId;
/**
* 单位名称
*/
private String name;
/**
* 单位logo url地址
*/
private String logoUrl;
/**
* 单位介绍
*/
private String introduction;
/**
* 单位类型 1:总包单位 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6.项目外班组 7.安心筑平台
*/
private Integer type;
/**
* 营业执照号图片url地址
*/
private String usccPicUrl;
/**
* 认证公函url
*/
private String certificationLetterUrl;
/**
* 企业资质证书,可以是多个
*/
private String certificationUrl;
/**
* 统一社会信用码
*/
private String uniformSocialCreditCode;
/**
* 法人代表姓名
*/
private String legalName;
/**
* 法人代表手机号
*/
private String legalPhone;
/**
* 法人代表身份证
*/
private String legalIdCard;
/**
* 单位注册地址
*/
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 memo;
/**
* 管理员手机号
*/
private String adminPhone;
/**
* 管理员姓名
*/
private String adminName;
/**
* 联系人&提交人姓名
*/
private String contactName;
/**
* 联系人&提交人手机号
*/
private String contactPhone;
/**
* 联系人&提交人职务
*/
private String contactPosition;
/**
* 主要人员信息
*/
@Valid
private List<CreateUnitRegisterContactReq> contactList;
/**
* 提交时间
*/
private Date submissionTime;
/**
* 状态0:已撤销 10:审核中,20:审核拒绝,30:审核通过
*/
private Integer approvalStatus;
/**
* 审批意见
*/
private String approvalMsg;
/**
* 审批时间
*/
private Date approvalTime;
/**
* 审批人
*/
private Long approver;
/**
* 用户确认时间(审核通过审核失败)
*/
private Date confirmAt;
/**
* 团队类型个人实名数据 {name:"姓名",phone:"手机号",idNumber:"身份证号",idFrontPhoto:"身份证正面照",idBackPhoto:"身份证反面照",faceUrl:"人脸照片"}
*/
private String corpsRealName;
/**
* 注册类型: 1:企业 2:团队
*/
private Integer mainBodyType;
/**
* 操作日志: [{"type":1,"time":1238988889}]
* 动作类型: 1:资料完善 2:协议勾选 3:审核中(提交) 4:审核完成(通过/拒绝)
*/
private String actionLog;
/**
* 营业期限(纯字符串不做解析)
*/
private String operatingPeriod;
/**
* 经营范围(纯字符串不做解析)
*/
private String businessScope;
}

View File

@ -0,0 +1,194 @@
package cn.axzo.orgmanax.dto.unit.register.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UpdateUnitRegisterReq {
private Long id;
/**
* 单位id
*/
private Long organizationalUnitId;
/**
* 单位名称
*/
private String name;
/**
* 单位logo url地址
*/
private String logoUrl;
/**
* 单位介绍
*/
private String introduction;
/**
* 单位类型 1:总包单位 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6.项目外班组 7.安心筑平台
*/
private Integer type;
/**
* 营业执照号图片url地址
*/
private String usccPicUrl;
/**
* 认证公函url
*/
private String certificationLetterUrl;
/**
* 企业资质证书,可以是多个
*/
private String certificationUrl;
/**
* 统一社会信用码
*/
private String uniformSocialCreditCode;
/**
* 法人代表姓名
*/
private String legalName;
/**
* 法人代表手机号
*/
private String legalPhone;
/**
* 法人代表身份证
*/
private String legalIdCard;
/**
* 单位注册地址
*/
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 memo;
/**
* 管理员手机号
*/
private String adminPhone;
/**
* 管理员姓名
*/
private String adminName;
/**
* 联系人&提交人姓名
*/
private String contactName;
/**
* 联系人&提交人手机号
*/
private String contactPhone;
/**
* 联系人&提交人职务
*/
private String contactPosition;
/**
* 提交时间
*/
private Date submissionTime;
/**
* 状态0:撤销 10:审核中,20:审核拒绝,30:审核通过
*/
private Integer approvalStatus;
/**
* 审批意见
*/
private String approvalMsg;
/**
* 审批时间
*/
private Date approvalTime;
/**
* 审批人
*/
private Long approver;
/**
* 用户确认时间(审核通过审核失败)
*/
private Date confirmAt;
/**
* 团队类型个人实名数据 {name:"姓名",phone:"手机号",idNumber:"身份证号",idFrontPhoto:"身份证正面照",idBackPhoto:"身份证反面照",faceUrl:"人脸照片"}
*/
private String corpsRealName;
/**
* 主体类型: 1:企业 2:团队
*/
private Integer mainBodyType;
/**
* 操作日志: {"type":1,"time":1238988889}
* 动作类型: 1:资料完善 2:协议勾选 3:审核中(提交) 4:审核完成(通过/拒绝)
*/
private String actionLog;
/**
* 工作流实例id
*/
private String processInstanceId;
}

View File

@ -18,24 +18,24 @@ import java.util.List;
import java.util.Optional;
import java.util.Set;
public interface OrganizationalUnitRegisterQueryRepository {
public interface UnitRegisterQueryRepository {
PageResp<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> page(OrganizationalUnitRegisterQueryRepository.ListReq paramReq);
PageResp<UnitRegisterQueryRepository.OrganizationalUnitRegisterResp> page(UnitRegisterQueryRepository.ListReq paramReq);
default List<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> list(OrganizationalUnitRegisterQueryRepository.ListReq req) {
OrganizationalUnitRegisterQueryRepository.PageReq pageReq = BeanUtil.toBean(req, OrganizationalUnitRegisterQueryRepository.PageReq.class);
default List<UnitRegisterQueryRepository.OrganizationalUnitRegisterResp> list(UnitRegisterQueryRepository.ListReq req) {
UnitRegisterQueryRepository.PageReq pageReq = BeanUtil.toBean(req, UnitRegisterQueryRepository.PageReq.class);
pageReq.setPage(1);
pageReq.setPageSize(1000);
return page(pageReq).getData();
}
default OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp one(OrganizationalUnitRegisterQueryRepository.OneReq req) {
default UnitRegisterQueryRepository.OrganizationalUnitRegisterResp one(UnitRegisterQueryRepository.OneReq req) {
return oneOpt(req).orElse(null);
}
default Optional<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> oneOpt(OrganizationalUnitRegisterQueryRepository.OneReq req) {
default Optional<UnitRegisterQueryRepository.OrganizationalUnitRegisterResp> oneOpt(UnitRegisterQueryRepository.OneReq req) {
req.check();
OrganizationalUnitRegisterQueryRepository.PageReq page = BeanUtil.toBean(req, OrganizationalUnitRegisterQueryRepository.PageReq.class);
UnitRegisterQueryRepository.PageReq page = BeanUtil.toBean(req, UnitRegisterQueryRepository.PageReq.class);
page.setPage(1);
page.setPageSize(1);
return page(page).getData().stream().findFirst();
@ -115,7 +115,7 @@ public interface OrganizationalUnitRegisterQueryRepository {
@AllArgsConstructor
@Data
@SuperBuilder
class PageReq extends OrganizationalUnitRegisterQueryRepository.ListReq implements IPageReq {
class PageReq extends UnitRegisterQueryRepository.ListReq implements IPageReq {
@CriteriaField(ignore = true)
Integer page;
@CriteriaField(ignore = true)

View File

@ -0,0 +1,20 @@
package cn.axzo.orgmanax.infra.dao.register.repository;
import cn.axzo.orgmanax.infra.dao.register.entity.OrganizationalUnitRegister;
public interface UnitRegisterUpsertRepository {
/**
* 创建企业注册信息
*
* @param organizationalUnitRegister organizationalUnitRegister
*/
void save(OrganizationalUnitRegister organizationalUnitRegister);
/**
* 更新企业注册信息
*
* @param organizationalUnitRegister organizationalUnitRegister
*/
void update(OrganizationalUnitRegister organizationalUnitRegister);
}

View File

@ -5,19 +5,20 @@ 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.axzo.orgmanax.infra.dao.register.repository.UnitRegisterQueryRepository;
import cn.axzo.trade.datasecurity.core.util.DataSecurityHelper;
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 java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2024/12/26
@ -25,7 +26,7 @@ import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
@Slf4j
public class OrganizationalUnitRegisterQueryRepositoryImpl implements OrganizationalUnitRegisterQueryRepository {
public class UnitRegisterQueryRepositoryImpl implements UnitRegisterQueryRepository {
private final OrganizationalUnitRegisterDao organizationalUnitRegisterDao;
@ -40,9 +41,9 @@ public class OrganizationalUnitRegisterQueryRepositoryImpl implements Organizati
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();
IPage<UnitRegisterQueryRepository.OrganizationalUnitRegisterResp> results = organizationalUnitRegisterDao.page(page, wrapper).convert(e -> BeanUtil.toBean(e, UnitRegisterQueryRepository.OrganizationalUnitRegisterResp.class));
PageResp<UnitRegisterQueryRepository.OrganizationalUnitRegisterResp> resp = PageConverter.toResp(results);
List<UnitRegisterQueryRepository.OrganizationalUnitRegisterResp> records = resp.getData();
CollUtil.isEmpty(records);
return resp;
}

View File

@ -0,0 +1,30 @@
package cn.axzo.orgmanax.infra.dao.register.repository.impl;
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.UnitRegisterUpsertRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2025/1/10
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class UnitRegisterUpsertRepositoryImpl implements UnitRegisterUpsertRepository {
private final OrganizationalUnitRegisterDao unitRegisterDao;
@Override
public void save(OrganizationalUnitRegister organizationalUnitRegister) {
unitRegisterDao.save(organizationalUnitRegister);
}
@Override
public void update(OrganizationalUnitRegister organizationalUnitRegister) {
unitRegisterDao.updateById(organizationalUnitRegister);
}
}

View File

@ -25,7 +25,7 @@ public class UnitContactUpsertRepositoryImpl implements UnitContactUpsertReposit
@Override
public void saveBatch(List<OrganizationalContact> contactList) {
unitContactDao.saveBatch(contactList);
}
@Override

View File

@ -5,9 +5,11 @@ 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.CreateUnitRegisterReq;
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 cn.axzo.orgmanax.dto.unit.register.req.UpdateUnitRegisterReq;
import cn.axzo.orgmanax.server.unit.service.UnitRegisterService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -21,16 +23,26 @@ import org.springframework.web.bind.annotation.RestController;
@RequiredArgsConstructor
public class UnitRegisterController implements OrgUnitRegisterApi {
private final RegisterService registerService;
private final UnitRegisterService unitRegisterService;
@Override
public ApiResult<PageResp<OrgUnitRegisterDTO>> list(ListUnitRegisterReq req) {
return ApiResult.success(registerService.list(req));
return ApiResult.success(unitRegisterService.list(req));
}
@Override
public ApiResult<PageResp<OrgUnitRegisterHistoryDTO>> listHistory(ListUnitRegisterHistoryReq req) {
return ApiResult.success(registerService.listHistory(req));
return ApiResult.success(unitRegisterService.listHistory(req));
}
@Override
public ApiResult<OrgUnitRegisterDTO> create(CreateUnitRegisterReq req) {
return ApiResult.success(unitRegisterService.createRegister(req));
}
@Override
public ApiResult<OrgUnitRegisterDTO> update(UpdateUnitRegisterReq req) {
return ApiResult.success(unitRegisterService.updateRegister(req));
}
}

View File

@ -0,0 +1,11 @@
package cn.axzo.orgmanax.server.unit.foundation;
import cn.axzo.orgmanax.dto.unit.register.dto.OrgUnitRegisterDTO;
import cn.axzo.orgmanax.server.unit.foundation.dto.UnitRegisterCreator;
public interface UnitRegisterFoundationService {
OrgUnitRegisterDTO create(UnitRegisterCreator creator);
OrgUnitRegisterDTO update(UnitRegisterCreator creator);
}

View File

@ -0,0 +1,230 @@
package cn.axzo.orgmanax.server.unit.foundation.dto;
import cn.axzo.orgmanax.dto.unit.register.req.CreateUnitRegisterContactReq;
import cn.axzo.orgmanax.infra.dao.register.entity.ContactExtra;
import cn.axzo.orgmanax.infra.dao.register.entity.NeatContact;
import cn.axzo.orgmanax.infra.dao.register.entity.OrganizationalUnitRegister;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2025/1/10
*/
@Data
public class UnitRegisterCreator {
/**
* 主键
*/
private Long id;
/**
* 单位id
*/
private Long organizationalUnitId;
/**
* 单位名称
*/
private String name;
/**
* 单位logo url地址
*/
private String logoUrl;
/**
* 单位介绍
*/
private String introduction;
/**
* 单位类型 1:总包单位 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6.项目外班组 7.安心筑平台
*/
private Integer type;
/**
* 营业执照号图片url地址
*/
private String usccPicUrl;
/**
* 认证公函url
*/
private String certificationLetterUrl;
/**
* 企业资质证书,可以是多个
*/
private String certificationUrl;
/**
* 统一社会信用码
*/
private String uniformSocialCreditCode;
/**
* 法人代表姓名
*/
private String legalName;
/**
* 法人代表手机号
*/
private String legalPhone;
/**
* 法人代表身份证
*/
private String legalIdCard;
/**
* 单位注册地址
*/
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 memo;
/**
* 管理员手机号
*/
private String adminPhone;
/**
* 管理员姓名
*/
private String adminName;
/**
* 联系人&提交人姓名
*/
private String contactName;
/**
* 联系人&提交人手机号
*/
private String contactPhone;
/**
* 联系人&提交人职务
*/
private String contactPosition;
/**
* 提交时间
*/
private Date submissionTime;
/**
* 状态0:撤销 10:审核中,20:审核拒绝,30:审核通过
*/
private Integer approvalStatus;
/**
* 审批意见
*/
private String approvalMsg;
/**
* 审批时间
*/
private Date approvalTime;
/**
* 审批人
*/
private Long approver;
/**
* 用户确认时间(审核通过审核失败)
*/
private Date confirmAt;
/**
* 团队类型个人实名数据 {name:"姓名",phone:"手机号",idNumber:"身份证号",idFrontPhoto:"身份证正面照",idBackPhoto:"身份证反面照",faceUrl:"人脸照片"}
*/
private String corpsRealName;
/**
* 主体类型: 1:企业 2:团队
*/
private Integer mainBodyType;
/**
* 操作日志: {"type":1,"time":1238988889}
* 动作类型: 1:资料完善 2:协议勾选 3:审核中(提交) 4:审核完成(通过/拒绝)
*/
private String actionLog;
/**
* 营业期限(纯字符串不做解析)
*/
private String operatingPeriod;
/**
* 经营范围(纯字符串不做解析)
*/
private String businessScope;
/**
* 工作流实例id
*/
private String processInstanceId;
private List<CreateUnitRegisterContactReq> contactList;
/**
* 转换实体
*/
public OrganizationalUnitRegister toEntity() {
OrganizationalUnitRegister ouRegisterHistory = BeanUtil.copyProperties(this, OrganizationalUnitRegister.class);
if (CollUtil.isNotEmpty(contactList)) {
List<NeatContact> neatContactList = BeanUtil.copyToList(contactList, NeatContact.class);
ContactExtra contactExtra = new ContactExtra();
contactExtra.setContactList(neatContactList);
ouRegisterHistory.setContactExtra(contactExtra);
}
return ouRegisterHistory;
}
}

View File

@ -32,7 +32,6 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class UnitFoundationServiceImpl implements UnitFoundationService {
private final UnitUpsertRepository unitUpsertRepository;
private final UnitQueryRepository unitQueryRepository;
private final EventProducer<Void> organizationalProducer;

View File

@ -0,0 +1,38 @@
package cn.axzo.orgmanax.server.unit.foundation.impl;
import cn.axzo.orgmanax.dto.unit.register.dto.OrgUnitRegisterDTO;
import cn.axzo.orgmanax.infra.dao.register.entity.OrganizationalUnitRegister;
import cn.axzo.orgmanax.infra.dao.register.repository.UnitRegisterUpsertRepository;
import cn.axzo.orgmanax.server.unit.foundation.UnitRegisterFoundationService;
import cn.axzo.orgmanax.server.unit.foundation.dto.UnitRegisterCreator;
import cn.hutool.core.bean.BeanUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2025/1/10
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class UnitRegisterFoundationServiceImpl implements UnitRegisterFoundationService {
private final UnitRegisterUpsertRepository unitRegisterUpsertRepository;
@Override
public OrgUnitRegisterDTO create(UnitRegisterCreator creator) {
OrganizationalUnitRegister unitRegister = creator.toEntity();
unitRegisterUpsertRepository.save(unitRegister);
return BeanUtil.copyProperties(unitRegister, OrgUnitRegisterDTO.class);
}
@Override
public OrgUnitRegisterDTO update(UnitRegisterCreator creator) {
OrganizationalUnitRegister unitRegister = creator.toEntity();
unitRegisterUpsertRepository.update(unitRegister);
return BeanUtil.copyProperties(unitRegister, OrgUnitRegisterDTO.class);
}
}

View File

@ -3,10 +3,12 @@ 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.CreateUnitRegisterReq;
import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterHistoryReq;
import cn.axzo.orgmanax.dto.unit.register.req.ListUnitRegisterReq;
import cn.axzo.orgmanax.dto.unit.register.req.UpdateUnitRegisterReq;
public interface RegisterService {
public interface UnitRegisterService {
/**
* 查询单位注册信息
@ -14,4 +16,8 @@ public interface RegisterService {
PageResp<OrgUnitRegisterDTO> list(ListUnitRegisterReq req);
PageResp<OrgUnitRegisterHistoryDTO> listHistory(ListUnitRegisterHistoryReq req);
OrgUnitRegisterDTO createRegister(CreateUnitRegisterReq req);
OrgUnitRegisterDTO updateRegister(UpdateUnitRegisterReq req);
}

View File

@ -2,11 +2,15 @@ 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.CreateUnitRegisterReq;
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.dto.unit.register.req.UpdateUnitRegisterReq;
import cn.axzo.orgmanax.infra.dao.register.repository.UnitRegisterQueryRepository;
import cn.axzo.orgmanax.infra.dao.register.repository.OuRegisterHistoryQueryRepository;
import cn.axzo.orgmanax.server.unit.service.RegisterService;
import cn.axzo.orgmanax.server.unit.foundation.UnitRegisterFoundationService;
import cn.axzo.orgmanax.server.unit.foundation.dto.UnitRegisterCreator;
import cn.axzo.orgmanax.server.unit.service.UnitRegisterService;
import cn.axzo.orgmanax.server.util.mapstruct.UnitRegisterContactMapStruct;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONUtil;
@ -26,15 +30,16 @@ import java.util.stream.Collectors;
@Slf4j
@RequiredArgsConstructor
@Service
public class RegisterServiceImpl implements RegisterService {
public class UnitRegisterServiceImpl implements UnitRegisterService {
private final OrganizationalUnitRegisterQueryRepository organizationalUnitRegisterQueryRepository;
private final UnitRegisterQueryRepository unitRegisterQueryRepository;
private final OuRegisterHistoryQueryRepository ouRegisterHistoryQueryRepository;
private final UnitRegisterFoundationService unitRegisterFoundationService;
@Override
public PageResp<OrgUnitRegisterDTO> list(ListUnitRegisterReq req) {
OrganizationalUnitRegisterQueryRepository.ListReq listReq = BeanUtil.copyProperties(req, OrganizationalUnitRegisterQueryRepository.ListReq.class);
PageResp<OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp> page = organizationalUnitRegisterQueryRepository.page(listReq);
UnitRegisterQueryRepository.ListReq listReq = BeanUtil.copyProperties(req, UnitRegisterQueryRepository.ListReq.class);
PageResp<UnitRegisterQueryRepository.OrganizationalUnitRegisterResp> page = unitRegisterQueryRepository.page(listReq);
return PageResp.<OrgUnitRegisterDTO>builder()
.current(page.getCurrent())
.total(page.getTotal())
@ -55,7 +60,19 @@ public class RegisterServiceImpl implements RegisterService {
.build();
}
private OrgUnitRegisterDTO transformToRegisterDTO(OrganizationalUnitRegisterQueryRepository.OrganizationalUnitRegisterResp registerResp) {
@Override
public OrgUnitRegisterDTO createRegister(CreateUnitRegisterReq req) {
UnitRegisterCreator creator = BeanUtil.copyProperties(req, UnitRegisterCreator.class);
return unitRegisterFoundationService.create(creator);
}
@Override
public OrgUnitRegisterDTO updateRegister(UpdateUnitRegisterReq req) {
UnitRegisterCreator creator = BeanUtil.copyProperties(req, UnitRegisterCreator.class);
return unitRegisterFoundationService.update(creator);
}
private OrgUnitRegisterDTO transformToRegisterDTO(UnitRegisterQueryRepository.OrganizationalUnitRegisterResp registerResp) {
OrgUnitRegisterDTO registerDTO = BeanUtil.copyProperties(registerResp, OrgUnitRegisterDTO.class);
if (StringUtils.isNotBlank(registerResp.getCorpsRealName())) {
registerDTO.setCorpsRealNameObj(JSONUtil.toBean(registerResp.getCorpsRealName(), OrgUnitRegisterRealNameDTO.class));