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

This commit is contained in:
liuyang 2024-12-26 16:22:57 +08:00
commit 1d3d998ec7
40 changed files with 1350 additions and 632 deletions

View File

@ -1,8 +1,15 @@
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.qualification.dto.OrgQualificationDTO;
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationsApplyDTO;
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationReq;
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationsApplyReq;
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;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@ -23,4 +30,15 @@ public interface OrgUnitQualificationApi {
@PostMapping("api/org/qualification/types")
ApiResult<List<Integer>> getQualificationTypesByUnitId(@RequestParam("unitId") Long unitId);
/**
* 分页获取资质
*/
@PostMapping("/api/org/qualification/list")
ApiResult<PageResp<OrgQualificationDTO>> list(@RequestBody @Validated ListQualificationReq req);
/**
* 分页获取资质申请记录
*/
@PostMapping("/api/org/qualifications-apply/list")
ApiResult<PageResp<OrgQualificationsApplyDTO>> listApply(@RequestBody @Validated ListQualificationsApplyReq req);
}

View File

@ -0,0 +1,29 @@
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.req.ListUnitRegisterReq;
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;
/**
* 单位注册API
*
* @author tanjie@axzo.cn
*/
@FeignClient(
value = "orgmanax",
url = "${axzo.service.orgmanax:http://orgmanax:8080}")
public interface OrgUnitRegisterApi {
/**
* 分页获取单位注册信息
*/
@PostMapping("/api/org/unit/register/list")
ApiResult<PageResp<OrgUnitRegisterDTO>> list(@RequestBody @Validated ListUnitRegisterReq req);
}

View File

@ -0,0 +1,95 @@
package cn.axzo.orgmanax.dto.unit.qualification.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.io.Serializable;
import java.util.Date;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2024/12/26
*/
@NoArgsConstructor
@SuperBuilder
@Data
@AllArgsConstructor
public class OrgQualificationDTO implements Serializable {
private Long id;
/**
* 单位id
*/
private Long ouId;
/**
* 企业名称(冗余查询用)
*/
private String ouName;
/**
* 证书编号
*/
private String number;
/**
* 证书名称
* 建筑业企业资质证书
* 房地产开发企业资质证书
* 工程监理资质证书
* 自定义
*/
private String name;
/**
* 资质认证到期时间
*/
private Date endTime;
/**
* 资质文件名称
*/
private String fileName;
/**
* 资质文件url
*/
private String fileUrl;
private Date createAt;
private Date updateAt;
/**
* 资质序列 1:施工总承包 2:建设单位 3:监理单位 4:劳务分包 5:专业承包 30:其他
* 建筑业企业资质证书--施工总承包专业承包劳务分包
* 房地产开发企业资质证书--建设单位
* 工程监理资质证书--监理单位
* 其他 -- 自定义
*/
private Integer type;
/**
* 资质类别(纯手录)
* REQ-1806
*/
private String category;
/**
* 资质等级
* a. 房地产开发企业资质证书壹级贰级叁级肆级
* b. 建筑业企业资质证书特级壹级贰级叁级不分
* c. 工程监理资质证书甲级乙级丙级
* REQ-1806
*/
private String categoryLevel;
/**
* 证书名称类型: 1:建筑业企业资质证书 2:房地产开发企业资质证书 3:工程监理资质证书 20:其他
*/
private Integer qualificationType;
}

View File

@ -0,0 +1,118 @@
package cn.axzo.orgmanax.dto.unit.qualification.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2024/12/26
*/
@NoArgsConstructor
@SuperBuilder
@Data
@AllArgsConstructor
public class OrgQualificationsApplyDTO implements Serializable {
private Long id;
/**
* 证书名称
* 建筑业企业资质证书
* 房地产开发企业资质证书
* 工程监理资质证书
*/
private String name;
/**
* 企业主体类型 1-企业 2-团队
*/
private Integer mainBodyType;
/**
* 资质认证到期时间
*/
private Date endTime;
/**
* 资质文件名称
*/
private String fileName;
/**
* 资质文件url
*/
private String fileUrl;
/**
* 审批状态 0:已撤销 10:审核中,20:审核拒绝,30:审核通过
*/
private Integer approvalStatus;
/**
* 审批意见
*/
private String approvalMsg;
/**
* 提交人姓名
*/
private String presenterName;
/**
* 提交人手机号
*/
private String presenterPhone;
/**
* 证书编号
*/
@NotBlank
private String number;
/**
* 资质关联的企业团队ID - 可能为空
**/
private Long ouId;
private String ouName;
/**
* 资质序列/资质分类 1:施工总承包 2:建设单位 3:监理单位 4:劳务分包 5:专业承包 30:其他
* 建筑业企业资质证书--施工总承包专业承包劳务分包
* 房地产开发企业资质证书--建设单位
* 工程监理资质证书--监理单位
* 其他 -- 自定义
*/
private Integer type;
/**
* 资质类别(纯手录)
* REQ-1806
*/
private String category;
/**
* 资质等级
* a. 房地产开发企业资质证书壹级贰级叁级肆级
* b. 建筑业企业资质证书特级壹级贰级叁级不分
* c. 工程监理资质证书甲级乙级丙级
* REQ-1806
*/
private String categoryLevel;
/**
* 证书类型: 1:建筑业企业资质证书 2:房地产开发企业资质证书 3:工程监理资质证书 20:其他
*/
private Integer qualificationType;
private Date createAt;
private Date updateAt;
}

View File

@ -0,0 +1,63 @@
package cn.axzo.orgmanax.dto.unit.qualification.req;
import cn.axzo.foundation.dao.support.wrapper.CriteriaField;
import cn.axzo.foundation.dao.support.wrapper.Operator;
import cn.axzo.foundation.page.PageReqV2;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
import java.util.Set;
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
public class ListQualificationReq extends PageReqV2 {
@CriteriaField(field = "id", operator = Operator.IN)
private Set<Long> ids;
/**
* 单位id
*/
@CriteriaField
private Long ouId;
/**
* 单位id
*/
@CriteriaField(field = "ouId", operator = Operator.IN)
private List<Long> ouIds;
/**
* 证书编号
*/
@CriteriaField
private String number;
/**
* 证书名称
* 1:建筑业企业资质证书
* 2:房地产开发企业资质证书
* 3:工程监理资质证书
*/
@CriteriaField
private String name;
/**
* 查询返回数据包含逻辑删除数据即查询未删除和已删除的数据
*/
@CriteriaField(ignore = true)
private Boolean includeDeleted;
@CriteriaField(ignore = true)
Integer page;
@CriteriaField(ignore = true)
Integer pageSize;
@CriteriaField(ignore = true)
List<String> sort;
}

View File

@ -0,0 +1,92 @@
package cn.axzo.orgmanax.dto.unit.qualification.req;
import cn.axzo.foundation.dao.support.wrapper.CriteriaField;
import cn.axzo.foundation.dao.support.wrapper.Operator;
import cn.axzo.foundation.page.PageReqV2;
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.Set;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2024/12/26
*/
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
public class ListQualificationsApplyReq extends PageReqV2 {
/**
* 资质ID
*/
@CriteriaField
private Long id;
/**
* 资质主键ID
*/
@CriteriaField(field = "id", operator = Operator.IN)
private Set<Long> ids;
/**
* 单位/团队注册记录id
*/
@CriteriaField
private Long ouRegisterId;
/**
* 证书编号精准匹配
*/
@CriteriaField
private String number;
/**
* 单位id
*/
@CriteriaField
private Long ouId;
/**
* 单位ids
*/
@CriteriaField(field = "ouId", operator = Operator.IN)
private Set<Long> ouIds;
/**
* 企业名称(冗余查询用)
*/
@CriteriaField
private String ouName;
/**
* 审批状态 0:已撤销 10:审核中,20:审核拒绝,30:审核通过 与单位表的状态枚举一致
*/
@CriteriaField(field = "approvalStatus", operator = Operator.IN)
private Set<Integer> approvalStatus;
@CriteriaField(field = "createAt", operator = Operator.GE)
private Date startCreateAt;
@CriteriaField(field = "createAt", operator = Operator.LE)
private Date endCreateAt;
/**
* 工作流实例id
*/
@CriteriaField
private String processInstanceId;
/**
* 查询返回数据包含逻辑删除数据即查询未删除和已删除的数据
*/
@CriteriaField(ignore = true)
private Boolean includeDeleted;
@CriteriaField(ignore = true)
Integer page;
@CriteriaField(ignore = true)
Integer pageSize;
@CriteriaField(ignore = true)
List<String> sort;
}

View File

@ -0,0 +1,62 @@
package cn.axzo.orgmanax.dto.unit.register.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.io.Serializable;
import java.util.Date;
@NoArgsConstructor
@SuperBuilder
@Data
@AllArgsConstructor
public class OrgUnitRegisterDTO implements Serializable {
/**
* 主键id
*/
private long id;
/**
* 单位名称
*/
private String name;
/**
* 提交时间
*/
private Date submissionTime;
/**
* 状态0:已撤销 10:审核中,20:审核拒绝,30:审核通过
*/
private Integer approvalStatus;
/**
* 审批意见
*/
private String approvalMsg;
/**
* 联系人&提交人姓名
*/
private String contactName;
/**
* 联系人&提交人手机号
*/
private String contactPhone;
/**
* 主体类型 1:企业 2:团队
*/
private Integer mainBodyType;
/**
* 注册类型 1:单位注册 2:施工资质注册
*/
private Integer registerType;
}

View File

@ -0,0 +1,65 @@
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;
import java.util.Date;
import java.util.Set;
@EqualsAndHashCode(callSuper = true)
@Data
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
public class ListUnitRegisterReq extends PageReqV2 {
/**
* ids
*/
private Set<Long> ids;
/**
* 审批状态 0:已撤销 10:审核中,20:审核拒绝,30:审核通过
*/
private Set<Integer> approvalStatus;
/**
* 单位名称(模糊匹配)
*/
private String nameLike;
/**
* 单位名称(全匹配)
*/
private String nameEquals;
/**
* 开始提交时间
*/
private Date submissionTimeStart;
/**
* 截止提交时间
*/
private Date submissionTimeEnd;
/**
* 提交人手机号
*/
private String phone;
/**
* 主体类型: 1:企业 2:团队
*/
private Integer mainBodyType;
/**
* 注册类型 1-单位注册 2-施工资质注册
**/
private Integer registerType;
}

View File

@ -2,13 +2,11 @@ package cn.axzo.orgmanax.dto.unit.req;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.io.Serializable;
import java.util.Date;
@SuperBuilder
@AllArgsConstructor
@ -201,4 +199,5 @@ public class CreateUnitReq implements Serializable {
*/
private Long operatorId;
private Boolean createWorkspace;
}

View File

@ -1,9 +1,15 @@
package cn.axzo.orgmanax.dto.unit.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class CreateUnitResp implements Serializable {

View File

@ -0,0 +1,11 @@
package cn.axzo.orgmanax.infra.dao.qualification.dao;
import cn.axzo.orgmanax.infra.dao.qualification.entity.Qualification;
import cn.axzo.orgmanax.infra.dao.qualification.mapper.QualificationMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
@Repository
public class QualificationDao extends ServiceImpl<QualificationMapper, Qualification> {
}

View File

@ -0,0 +1,122 @@
package cn.axzo.orgmanax.infra.dao.qualification.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
*/
@TableName(value = "qualifications", autoResultMap = true)
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
public class Qualification implements Serializable {
private static final long serialVersionUID = -92011957938725711L;
/**
* 主键
*/
@TableId(
type = IdType.AUTO
)
private Long id;
/**
* 单位id
*/
private Long ouId;
/**
* 企业名称(冗余查询用)
*/
private String ouName;
/**
* 证书编号
*/
private String number;
/**
* 证书名称
* 1:建筑业企业资质证书
* 2:房地产开发企业资质证书
* 3:工程监理资质证书
*/
private String name;
/**
* 资质认证到期时间
*/
private Date endTime;
/**
* 资质文件名称
*/
private String fileName;
/**
* 资质文件url
*/
private String fileUrl;
/**
* 资质序列/资质分类 1:施工总承包 2:建设单位 3:监理单位 4:劳务分包 5:专业承包 30:其他
* 建筑业企业资质证书--施工总承包专业承包劳务分包
* 房地产开发企业资质证书--建设单位
* 工程监理资质证书--监理单位
* 其他 -- 自定义
*/
private Integer type;
/**
* 资质类别(纯手录)
* REQ-1806
*/
private String category;
/**
* 资质等级
* a. 房地产开发企业资质证书壹级贰级叁级肆级
* b. 建筑业企业资质证书特级壹级贰级叁级不分
* c. 工程监理资质证书甲级乙级丙级
* REQ-1806
*/
private String categoryLevel;
/**
* 证书类型: 1:建筑业企业资质证书 2:房地产开发企业资质证书 3:工程监理资质证书 20:其他
*/
private Integer qualificationType;
/**
* 是否删除 0否,其他是
*/
private Long isDelete = 0L;
/**
* 创建时间
*/
private Date createAt;
/**
* 更新时间
*/
private Date updateAt;
}

View File

@ -0,0 +1,10 @@
package cn.axzo.orgmanax.infra.dao.qualification.mapper;
import cn.axzo.orgmanax.infra.dao.qualification.entity.Qualification;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface QualificationMapper extends BaseMapper<Qualification> {
}

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.infra.dao.qualification.repositrory;
package cn.axzo.orgmanax.infra.dao.qualification.repository;
import cn.axzo.foundation.dao.support.wrapper.CriteriaField;
import cn.axzo.foundation.dao.support.wrapper.Operator;
@ -91,6 +91,8 @@ public interface QualificationOuTypeQueryRepository {
private Set<Long> qualificationIds;
@CriteriaField(field = "type", operator = Operator.IN)
private Set<Integer> types;
@CriteriaField(ignore = true)
private Boolean includeDeleted;
}
@EqualsAndHashCode(callSuper = true)

View File

@ -0,0 +1,135 @@
package cn.axzo.orgmanax.infra.dao.qualification.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.qualification.entity.Qualification;
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 QualificationQueryRepository {
PageResp<QualificationResp> page(ListReq paramReq);
default List<QualificationResp> list(ListReq req) {
PageReq pageReq = BeanUtil.toBean(req, PageReq.class);
pageReq.setPage(1);
pageReq.setPageSize(1000);
return page(pageReq).getData();
}
default QualificationResp one(OneReq req) {
return oneOpt(req).orElse(null);
}
default Optional<QualificationResp> oneOpt(OneReq req) {
req.check();
PageReq page = BeanUtil.toBean(req, 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;
/**
* 单位id
*/
private Long ouId;
/**
* 单位id
*/
private List<Long> ouIds;
/**
* 证书编号
*/
private String number;
/**
* 证书名称
* 1:建筑业企业资质证书
* 2:房地产开发企业资质证书
* 3:工程监理资质证书
*/
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 = "ouId", operator = Operator.IN)
private Set<Long> ouIds;
@CriteriaField
private String number;
@CriteriaField
private String name;
@CriteriaField(ignore = true)
private Boolean includeDeleted;
}
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Data
@SuperBuilder
class PageReq extends 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 QualificationResp extends Qualification {
// 按需扩展字段占个位避免报错
private String todo;
}
}

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.infra.dao.qualification.repositrory;
package cn.axzo.orgmanax.infra.dao.qualification.repository;
import cn.axzo.foundation.dao.support.wrapper.CriteriaField;
import cn.axzo.foundation.dao.support.wrapper.Operator;
@ -112,6 +112,8 @@ public interface QualificationsApplyQueryRepository {
private Date startCreateAt;
@CriteriaField(field = "createAt", operator = Operator.LE)
private Date endCreateAt;
@CriteriaField(ignore = true)
private Boolean includeDeleted;
}
@EqualsAndHashCode(callSuper = true)

View File

@ -1,13 +1,14 @@
package cn.axzo.orgmanax.infra.dao.qualification.repositrory.impl;
package cn.axzo.orgmanax.infra.dao.qualification.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.qualification.dao.QualificationOuTypeDao;
import cn.axzo.orgmanax.infra.dao.qualification.entity.QualificationOuType;
import cn.axzo.orgmanax.infra.dao.qualification.repositrory.QualificationOuTypeQueryRepository;
import cn.axzo.orgmanax.infra.dao.qualification.repository.QualificationOuTypeQueryRepository;
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;
@ -31,6 +32,9 @@ public class QualificationOuTypeQueryRepositoryImpl implements QualificationOuTy
public PageResp<QualificationOuTypeResp> page(ListReq req) {
IPage<QualificationOuType> page = PageConverter.toMybatis(req, QualificationOuType.class);
QueryWrapper<QualificationOuType> wrapper = QueryWrapperHelper.fromBean(req, QualificationOuType.class);
if (!BooleanUtil.isTrue(req.getIncludeDeleted())) {
wrapper.eq("is_delete", 0);
}
IPage<QualificationOuTypeQueryRepository.QualificationOuTypeResp> results = qualificationOuTypeDao.page(page, wrapper).convert(e -> BeanUtil.toBean(e, QualificationOuTypeQueryRepository.QualificationOuTypeResp.class));
PageResp<QualificationOuTypeQueryRepository.QualificationOuTypeResp> resp = PageConverter.toResp(results);
List<QualificationOuTypeQueryRepository.QualificationOuTypeResp> records = resp.getData();

View File

@ -0,0 +1,44 @@
package cn.axzo.orgmanax.infra.dao.qualification.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.qualification.dao.QualificationDao;
import cn.axzo.orgmanax.infra.dao.qualification.entity.Qualification;
import cn.axzo.orgmanax.infra.dao.qualification.repository.QualificationQueryRepository;
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/24
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class QualificationQueryRepositoryImpl implements QualificationQueryRepository {
private final QualificationDao qualificationDao;
@Override
public PageResp<QualificationResp> page(ListReq req) {
IPage<Qualification> page = PageConverter.toMybatis(req, Qualification.class);
QueryWrapper<Qualification> wrapper = QueryWrapperHelper.fromBean(req, Qualification.class);
if (!BooleanUtil.isTrue(req.getIncludeDeleted())) {
wrapper.eq("is_delete", 0);
}
IPage<QualificationQueryRepository.QualificationResp> results = qualificationDao.page(page, wrapper).convert(e -> BeanUtil.toBean(e, QualificationQueryRepository.QualificationResp.class));
PageResp<QualificationQueryRepository.QualificationResp> resp = PageConverter.toResp(results);
List<QualificationQueryRepository.QualificationResp> records = resp.getData();
CollUtil.isEmpty(records);
return resp;
}
}

View File

@ -1,13 +1,14 @@
package cn.axzo.orgmanax.infra.dao.qualification.repositrory.impl;
package cn.axzo.orgmanax.infra.dao.qualification.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.qualification.dao.QualificationsApplyDao;
import cn.axzo.orgmanax.infra.dao.qualification.entity.QualificationsApply;
import cn.axzo.orgmanax.infra.dao.qualification.repositrory.QualificationsApplyQueryRepository;
import cn.axzo.orgmanax.infra.dao.qualification.repository.QualificationsApplyQueryRepository;
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;
@ -31,6 +32,9 @@ public class QualificationsApplyQueryRepositoryImpl implements QualificationsApp
public PageResp<QualificationsApplyResp> page(ListReq req) {
IPage<QualificationsApply> page = PageConverter.toMybatis(req, QualificationsApply.class);
QueryWrapper<QualificationsApply> wrapper = QueryWrapperHelper.fromBean(req, QualificationsApply.class);
if (!BooleanUtil.isTrue(req.getIncludeDeleted())) {
wrapper.eq("is_delete", 0);
}
IPage<QualificationsApplyQueryRepository.QualificationsApplyResp> results = qualificationsApplyDao.page(page, wrapper).convert(e -> BeanUtil.toBean(e, QualificationsApplyQueryRepository.QualificationsApplyResp.class));
PageResp<QualificationsApplyQueryRepository.QualificationsApplyResp> resp = PageConverter.toResp(results);
List<QualificationsApplyQueryRepository.QualificationsApplyResp> records = resp.getData();

View File

@ -0,0 +1,15 @@
package cn.axzo.orgmanax.infra.dao.register.dao;
import cn.axzo.orgmanax.infra.dao.register.entity.OrganizationalUnitRegister;
import cn.axzo.orgmanax.infra.dao.register.mapper.OrganizationalUnitRegisterMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2024/12/26
*/
@Repository
public class OrganizationalUnitRegisterDao extends ServiceImpl<OrganizationalUnitRegisterMapper, OrganizationalUnitRegister> {
}

View File

@ -0,0 +1,19 @@
package cn.axzo.orgmanax.infra.dao.register.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ContactExtra implements Serializable {
private List<NeatContact> contactList;
}

View File

@ -0,0 +1,41 @@
package cn.axzo.orgmanax.infra.dao.register.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NeatContact implements Serializable {
/**
* 联系人姓名
*/
private String name;
/**
* 联系人手机号
*/
private String phone;
/**
* 联系人职位
*/
private String position;
/**
* 备注
*/
private String memo;
}

View File

@ -0,0 +1,261 @@
package cn.axzo.orgmanax.infra.dao.register.entity;
import cn.axzo.trade.datasecurity.core.annotation.CryptField;
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.handlers.FastjsonTypeHandler;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;
/**
* @author zhengkai.blog.csdn.net
* @description 企业注册表, 包括申请人与审批人, 每一次申请为一条数据
* @date 2022-12-19
*/
@Data
@TableName(value = "organizational_unit_register", autoResultMap = true)
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
public class OrganizationalUnitRegister implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.AUTO)
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;
/**
* 法人代表手机号
*/
@CryptField
private String legalPhone;
/**
* 法人代表身份证
*/
@CryptField
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;
/**
* 备注
*/
@TableField("memo")
private String memo;
/**
* 管理员手机号
*/
private String adminPhone;
/**
* 管理员姓名
*/
private String adminName;
/**
* 联系人&提交人姓名
*/
private String contactName;
/**
* 联系人&提交人手机号
*/
@CryptField
private String contactPhone;
/**
* 联系人&提交人职务
*/
private String contactPosition;
/**
* 提交时间
*/
private Date submissionTime;
/**
* 状态0:撤销 10:审核中,20:审核拒绝,30:审核通过
*/
@TableField("approval_status")
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;
@TableField(value = "contact_extra", typeHandler = FastjsonTypeHandler.class)
private ContactExtra contactExtra;
public ContactExtra safeGetContactExtra() {
if (Objects.isNull(this.contactExtra)) {
return new ContactExtra();
}
return this.contactExtra;
}
/**
* 是否删除 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.OrganizationalUnitRegister;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OrganizationalUnitRegisterMapper extends BaseMapper<OrganizationalUnitRegister> {
}

View File

@ -0,0 +1,4 @@
package cn.axzo.orgmanax.infra.dao.register.repository;
public interface OrganizationalUnitRegisterQueryRepository {
}

View File

@ -0,0 +1,10 @@
package cn.axzo.orgmanax.infra.dao.register.repository.impl;
import cn.axzo.orgmanax.infra.dao.register.repository.OrganizationalUnitRegisterQueryRepository;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2024/12/26
*/
public class OrganizationalUnitRegisterQueryRepositoryImpl implements OrganizationalUnitRegisterQueryRepository {
}

View File

@ -41,6 +41,8 @@ public interface UnitContactQueryRepository {
private Long organizationalUnitId;
@CriteriaField(field = "organizationalUnitId", operator = Operator.IN)
private Set<Long> organizationalUnitIds;
@CriteriaField(ignore = true)
private Boolean includeDeleted;
}
@EqualsAndHashCode(callSuper = true)

View File

@ -7,6 +7,7 @@ import cn.axzo.orgmanax.infra.dao.unit.dao.UnitContactDao;
import cn.axzo.orgmanax.infra.dao.unit.entity.OrganizationalContact;
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitContactQueryRepository;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.BooleanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
@ -28,6 +29,9 @@ public class UnitContactQueryRepositoryImpl implements UnitContactQueryRepositor
public PageResp<UnitContactResp> page(ListReq req) {
IPage<OrganizationalContact> page = PageConverter.toMybatis(req, OrganizationalContact.class);
QueryWrapper<OrganizationalContact> wrapper = QueryWrapperHelper.fromBean(req, OrganizationalContact.class);
if (!BooleanUtil.isTrue(req.getIncludeDeleted())) {
wrapper.eq("is_delete", 0);
}
IPage<UnitContactQueryRepository.UnitContactResp> results = unitContactDao.page(page, wrapper)
.convert(e -> BeanUtil.toBean(e, UnitContactQueryRepository.UnitContactResp.class));
return (PageResp<UnitContactResp>) PageConverter.toResp(results);

View File

@ -28,13 +28,13 @@ public class UnitController implements OrgUnitApi {
@Override
public ApiResult<CreateUnitResp> create(CreateUnitReq req) {
cn.axzo.orgmanax.server.unit.service.dto.CreateUnitResp resp = unitService.create(BeanUtil.copyProperties(req, cn.axzo.orgmanax.server.unit.service.dto.CreateUnitReq.class));
CreateUnitResp resp = unitService.create(req);
return ApiResult.success(BeanUtil.copyProperties(resp, CreateUnitResp.class));
}
@Override
public ApiResult<UpdateUnitResp> update(UpdateUnitReq req) {
cn.axzo.orgmanax.server.unit.service.dto.UpdateUnitResp resp = unitService.update(BeanUtil.copyProperties(req, cn.axzo.orgmanax.server.unit.service.dto.UpdateUnitReq.class));
UpdateUnitResp resp = unitService.update(req);
return ApiResult.success(BeanUtil.copyProperties(resp, UpdateUnitResp.class));
}

View File

@ -1,7 +1,12 @@
package cn.axzo.orgmanax.server.unit.controller;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.api.unit.feign.OrgUnitQualificationApi;
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationDTO;
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationsApplyDTO;
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationReq;
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationsApplyReq;
import cn.axzo.orgmanax.server.unit.service.QualificationService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
@ -25,4 +30,14 @@ public class UnitQualificationController implements OrgUnitQualificationApi {
return ApiResult.success(qualificationService.getQualificationTypesByUnitId(unitId));
}
@Override
public ApiResult<PageResp<OrgQualificationDTO>> list(ListQualificationReq req) {
return ApiResult.success(qualificationService.list(req));
}
@Override
public ApiResult<PageResp<OrgQualificationsApplyDTO>> listApply(ListQualificationsApplyReq req) {
return ApiResult.success(qualificationService.listApply(req));
}
}

View File

@ -0,0 +1,26 @@
package cn.axzo.orgmanax.server.unit.controller;
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.req.ListUnitRegisterReq;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author : zhanghonghao@axzo.cn
* @since : 2024/12/26
*/
@RestController
@RequestMapping
@RequiredArgsConstructor
public class UnitRegisterController implements OrgUnitRegisterApi {
@Override
public ApiResult<PageResp<OrgUnitRegisterDTO>> list(ListUnitRegisterReq req) {
return null;
}
}

View File

@ -1,9 +1,18 @@
package cn.axzo.orgmanax.server.unit.service;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationDTO;
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationsApplyDTO;
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationReq;
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationsApplyReq;
import java.util.List;
public interface QualificationService {
List<Integer> getQualificationTypesByUnitId(Long unitId);
PageResp<OrgQualificationDTO> list(ListQualificationReq req);
PageResp<OrgQualificationsApplyDTO> listApply(ListQualificationsApplyReq req);
}

View File

@ -0,0 +1,4 @@
package cn.axzo.orgmanax.server.unit.service;
public interface RegisterService {
}

View File

@ -1,12 +1,12 @@
package cn.axzo.orgmanax.server.unit.service;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.unit.req.ListUnitReq;
import cn.axzo.orgmanax.dto.unit.dto.OrgUnitDTO;
import cn.axzo.orgmanax.server.unit.service.dto.CreateUnitReq;
import cn.axzo.orgmanax.server.unit.service.dto.CreateUnitResp;
import cn.axzo.orgmanax.server.unit.service.dto.UpdateUnitReq;
import cn.axzo.orgmanax.server.unit.service.dto.UpdateUnitResp;
import cn.axzo.orgmanax.dto.unit.req.CreateUnitReq;
import cn.axzo.orgmanax.dto.unit.req.ListUnitReq;
import cn.axzo.orgmanax.dto.unit.req.UpdateUnitReq;
import cn.axzo.orgmanax.dto.unit.resp.CreateUnitResp;
import cn.axzo.orgmanax.dto.unit.resp.UpdateUnitResp;
public interface UnitService {

View File

@ -1,196 +0,0 @@
package cn.axzo.orgmanax.server.unit.service.dto;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
@Data
public class CreateUnitReq {
/**
* 父单位id
*/
private Long parentId;
/**
* 单位名称
*/
private String name;
/**
* 单位logo url地址
*/
private String logoUrl;
/**
* 单位介绍
*/
private String introduction;
/**
* 单位类型 1:总包单位 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6.项目外班组 7.安心筑平台
*/
private Integer type;
/**
* 单位性质0其他 1团队 2企业 3班组
*/
private Integer nature;
/**
* 营业执照号图片url地址
*/
private String usccPicUrl;
/**
* 认证公函
*/
private String certificationLetterUrl;
/**
* 统一社会信用码
*/
private String uniformSocialCreditCode;
/**
* 法人代表姓名
*/
private String legalName;
/**
* 法人手机号
*/
private String legalPhone;
/**
* 法人代表身份证
*/
private String legalIdCard;
/**
* 班组长身份id
*/
private Long identityId;
/**
* 身份类型 1.无身份 2.班组长
*/
private Integer identityType;
/**
* 单位注册地址
*/
private String registeredAddress;
/**
* 存续状态
*/
private String survivalStatus;
/**
* 省市区区编码,/隔开
*/
private String areaCode;
/**
* 省市区名字,/隔开(四川省/成都市/武侯区)
*/
private String areaName;
/**
* 企业详细地址
*/
private String address;
/**
* 企业POI地址
*/
private String addressPoi;
/**
* 经纬度,/隔开经度纬度(124.32421/142.424432)
*/
private String longLat;
/**
* 官网
*/
private String website;
/**
* 状态0:初始化10:审核中,20:审核拒绝,30:审核通过,40:未认证,50:已认证
*/
private Integer status;
/**
* 是否启用:0禁用1启用
*/
private Integer enable;
/**
* 来源场景0:其他1:客户注册,2:平台录入,3:总包创建,4:网络抓取,5:班组创建
*/
private Integer sceneType;
/**
* 备注
*/
private String memo;
/**
* 扩展字段
*/
private JSONObject extra;
/**
* 企业标签1正式企业 2测试企业
*/
private Integer entTag;
/**
* 营业期限(纯字符串不做解析)
*/
private String operatingPeriod;
/**
* 经营范围(纯字符串不做解析)
*/
private String businessScope;
/**
* 企业邮箱
*/
private String email;
/**
* 企业电话
*/
private String telephone;
/**
* 省编码
*/
private String provinceCode;
/**
* 省份名称
*/
private String provinceName;
/**
* 市编码
*/
private String cityCode;
/**
* 市名称
*/
private String cityName;
/**
* 操作人
*/
private Long operatorId;
private Boolean createWorkspace;
}

View File

@ -1,21 +0,0 @@
package cn.axzo.orgmanax.server.unit.service.dto;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class CreateUnitResp {
/**
* 单位ID
*/
private Long id;
}

View File

@ -1,197 +0,0 @@
package cn.axzo.orgmanax.server.unit.service.dto;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
@Data
public class UpdateUnitReq {
/**
* id
*/
private Long id;
/**
* 父单位id
*/
private Long parentId;
/**
* 单位名称
*/
private String name;
/**
* 单位logo url地址
*/
private String logoUrl;
/**
* 单位介绍
*/
private String introduction;
/**
* 单位类型 1:总包单位 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6.项目外班组 7.安心筑平台
*/
private Integer type;
/**
* 单位性质0其他 1团队 2企业 3班组
*/
private Integer nature;
/**
* 营业执照号图片url地址
*/
private String usccPicUrl;
/**
* 认证公函
*/
private String certificationLetterUrl;
/**
* 统一社会信用码
*/
private String uniformSocialCreditCode;
/**
* 法人代表姓名
*/
private String legalName;
/**
* 法人手机号
*/
private String legalPhone;
/**
* 法人代表身份证
*/
private String legalIdCard;
/**
* 班组长身份id
*/
private Long identityId;
/**
* 身份类型 1.无身份 2.班组长
*/
private Integer identityType;
/**
* 单位注册地址
*/
private String registeredAddress;
/**
* 存续状态
*/
private String survivalStatus;
/**
* 省市区区编码,/隔开
*/
private String areaCode;
/**
* 省市区名字,/隔开(四川省/成都市/武侯区)
*/
private String areaName;
/**
* 企业详细地址
*/
private String address;
/**
* 企业POI地址
*/
private String addressPoi;
/**
* 经纬度,/隔开经度纬度(124.32421/142.424432)
*/
private String longLat;
/**
* 官网
*/
private String website;
/**
* 状态0:初始化10:审核中,20:审核拒绝,30:审核通过,40:未认证,50:已认证
*/
private Integer status;
/**
* 是否启用:0禁用1启用
*/
private Integer enable;
/**
* 来源场景0:其他1:客户注册,2:平台录入,3:总包创建,4:网络抓取,5:班组创建
*/
private Integer sceneType;
/**
* 备注
*/
private String memo;
/**
* 扩展字段
*/
private JSONObject extra;
/**
* 企业标签1正式企业 2测试企业
*/
private Integer entTag;
/**
* 营业期限(纯字符串不做解析)
*/
private String operatingPeriod;
/**
* 经营范围(纯字符串不做解析)
*/
private String businessScope;
/**
* 企业邮箱
*/
private String email;
/**
* 企业电话
*/
private String telephone;
/**
* 省编码
*/
private String provinceCode;
/**
* 省份名称
*/
private String provinceName;
/**
* 市编码
*/
private String cityCode;
/**
* 市名称
*/
private String cityName;
/**
* 历史平台班组的同步数据0还未同步1同步完成
*/
private Integer syncState;
}

View File

@ -1,194 +0,0 @@
package cn.axzo.orgmanax.server.unit.service.dto;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
@Data
public class UpdateUnitResp {
/**
* id
*/
private Long id;
/**
* 父单位id
*/
private Long parentId;
/**
* 单位名称
*/
private String name;
/**
* 单位logo url地址
*/
private String logoUrl;
/**
* 单位介绍
*/
private String introduction;
/**
* 单位类型 1:总包单位 2:建设单位 3:监理单位 4:劳务分包 5:专业分包 6.项目外班组 7.安心筑平台
*/
private Integer type;
/**
* 单位性质0其他 1团队 2企业 3班组
*/
private Integer nature;
/**
* 营业执照号图片url地址
*/
private String usccPicUrl;
/**
* 认证公函
*/
private String certificationLetterUrl;
/**
* 统一社会信用码
*/
private String uniformSocialCreditCode;
/**
* 法人代表姓名
*/
private String legalName;
/**
* 法人手机号
*/
private String legalPhone;
/**
* 法人代表身份证
*/
private String legalIdCard;
/**
* 班组长身份id
*/
private Long identityId;
/**
* 身份类型 1.无身份 2.班组长
*/
private Integer identityType;
/**
* 单位注册地址
*/
private String registeredAddress;
/**
* 存续状态
*/
private String survivalStatus;
/**
* 省市区区编码,/隔开
*/
private String areaCode;
/**
* 省市区名字,/隔开(四川省/成都市/武侯区)
*/
private String areaName;
/**
* 企业详细地址
*/
private String address;
/**
* 企业POI地址
*/
private String addressPoi;
/**
* 经纬度,/隔开经度纬度(124.32421/142.424432)
*/
private String longLat;
/**
* 官网
*/
private String website;
/**
* 状态0:初始化10:审核中,20:审核拒绝,30:审核通过,40:未认证,50:已认证
*/
private Integer status;
/**
* 是否启用:0禁用1启用
*/
private Integer enable;
/**
* 来源场景0:其他1:客户注册,2:平台录入,3:总包创建,4:网络抓取,5:班组创建
*/
private Integer sceneType;
/**
* 备注
*/
private String memo;
/**
* 扩展字段
*/
private JSONObject extra;
/**
* 企业标签1正式企业 2测试企业
*/
private Integer entTag;
/**
* 营业期限(纯字符串不做解析)
*/
private String operatingPeriod;
/**
* 经营范围(纯字符串不做解析)
*/
private String businessScope;
/**
* 企业邮箱
*/
private String email;
/**
* 企业电话
*/
private String telephone;
/**
* 省编码
*/
private String provinceCode;
/**
* 省份名称
*/
private String provinceName;
/**
* 市编码
*/
private String cityCode;
/**
* 市名称
*/
private String cityName;
}

View File

@ -1,7 +1,15 @@
package cn.axzo.orgmanax.server.unit.service.impl;
import cn.axzo.orgmanax.infra.dao.qualification.repositrory.QualificationOuTypeQueryRepository;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationDTO;
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationsApplyDTO;
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationReq;
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationsApplyReq;
import cn.axzo.orgmanax.infra.dao.qualification.repository.QualificationOuTypeQueryRepository;
import cn.axzo.orgmanax.infra.dao.qualification.repository.QualificationQueryRepository;
import cn.axzo.orgmanax.infra.dao.qualification.repository.QualificationsApplyQueryRepository;
import cn.axzo.orgmanax.server.unit.service.QualificationService;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -21,6 +29,8 @@ import java.util.stream.Collectors;
public class QualificationServiceImpl implements QualificationService {
private final QualificationOuTypeQueryRepository qualificationOuTypeQueryRepository;
private final QualificationQueryRepository qualificationQueryRepository;
private final QualificationsApplyQueryRepository qualificationsApplyQueryRepository;
@Override
public List<Integer> getQualificationTypesByUnitId(Long unitId) {
@ -33,4 +43,18 @@ public class QualificationServiceImpl implements QualificationService {
return qualificationOuTypeRespList.stream().map(QualificationOuTypeQueryRepository.QualificationOuTypeResp::getType).collect(Collectors.toList());
}
@Override
public PageResp<OrgQualificationDTO> list(ListQualificationReq req) {
QualificationQueryRepository.ListReq listReq = BeanUtil.copyProperties(req, QualificationQueryRepository.ListReq.class);
PageResp<QualificationQueryRepository.QualificationResp> page = qualificationQueryRepository.page(listReq);
return PageResp.<OrgQualificationDTO>builder().current(page.getCurrent()).total(page.getTotal()).size(page.getSize()).data(BeanUtil.copyToList(page.getData(), OrgQualificationDTO.class)).build();
}
@Override
public PageResp<OrgQualificationsApplyDTO> listApply(ListQualificationsApplyReq req) {
QualificationsApplyQueryRepository.ListReq listReq = BeanUtil.copyProperties(req, QualificationsApplyQueryRepository.ListReq.class);
PageResp<QualificationsApplyQueryRepository.QualificationsApplyResp> page = qualificationsApplyQueryRepository.page(listReq);
return PageResp.<OrgQualificationsApplyDTO>builder().current(page.getCurrent()).total(page.getTotal()).size(page.getSize()).data(BeanUtil.copyToList(page.getData(), OrgQualificationsApplyDTO.class)).build();
}
}

View File

@ -1,13 +1,15 @@
package cn.axzo.orgmanax.server.unit.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import cn.axzo.apollo.workspace.api.v2.workspace.req.WorkspaceUpsertReq;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.dto.node.req.ProcessNodeReq;
import cn.axzo.orgmanax.dto.unit.req.ListUnitReq;
import cn.axzo.orgmanax.dto.unit.dto.OrgUnitDTO;
import cn.axzo.orgmanax.dto.nodeuser.enums.NodeUserTypeEnum;
import cn.axzo.orgmanax.dto.unit.dto.OrgUnitDTO;
import cn.axzo.orgmanax.dto.unit.req.CreateUnitReq;
import cn.axzo.orgmanax.dto.unit.req.ListUnitReq;
import cn.axzo.orgmanax.dto.unit.req.UpdateUnitReq;
import cn.axzo.orgmanax.dto.unit.resp.CreateUnitResp;
import cn.axzo.orgmanax.dto.unit.resp.UpdateUnitResp;
import cn.axzo.orgmanax.infra.client.workspace.WorkspaceGateway;
import cn.axzo.orgmanax.infra.dao.unit.entity.OrganizationalUnit;
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitQueryRepository;
@ -16,10 +18,6 @@ import cn.axzo.orgmanax.server.node.service.NodeService;
import cn.axzo.orgmanax.server.unit.foundation.UnitFoundationService;
import cn.axzo.orgmanax.server.unit.foundation.dto.UnitCreator;
import cn.axzo.orgmanax.server.unit.service.UnitService;
import cn.axzo.orgmanax.server.unit.service.dto.CreateUnitReq;
import cn.axzo.orgmanax.server.unit.service.dto.CreateUnitResp;
import cn.axzo.orgmanax.server.unit.service.dto.UpdateUnitReq;
import cn.axzo.orgmanax.server.unit.service.dto.UpdateUnitResp;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.BooleanUtil;
import com.alibaba.fastjson.JSONObject;
@ -29,6 +27,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.support.TransactionTemplate;
import java.math.BigDecimal;
import java.util.Date;
@Slf4j
@RequiredArgsConstructor
@Service