feat(REQ-3488): 实现单位注册接口
This commit is contained in:
parent
a6c3e41ff6
commit
d1afcd27bb
@ -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);
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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)
|
||||
@ -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);
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -25,7 +25,7 @@ public class UnitContactUpsertRepositoryImpl implements UnitContactUpsertReposit
|
||||
|
||||
@Override
|
||||
public void saveBatch(List<OrganizationalContact> contactList) {
|
||||
|
||||
unitContactDao.saveBatch(contactList);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -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));
|
||||
Loading…
Reference in New Issue
Block a user