Merge branch 'feature/REQ-3488-zhh' into 'feature/REQ-3488'
feat(REQ-3488): 批量保存资质申请记录接口实现 See merge request universal/infrastructure/backend/orgmanax!179
This commit is contained in:
commit
b351cdba8e
@ -5,10 +5,7 @@ import cn.axzo.foundation.result.ApiResult;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationOuTypeDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationsApplyDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationOuTypeReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationsApplyReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.UpdateQualificationsApplyReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.*;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@ -51,6 +48,12 @@ public interface OrgUnitQualificationApi {
|
||||
@PostMapping("/api/org/qualification-ou-type/list")
|
||||
ApiResult<PageResp<OrgQualificationOuTypeDTO>> listOuType(@RequestBody @Validated ListQualificationOuTypeReq req);
|
||||
|
||||
/**
|
||||
* 批量保存资质申请记录
|
||||
*/
|
||||
@PostMapping("/api/org/qualifications-apply/saveBatch")
|
||||
ApiResult<Void> qualificationsApplySaveBatch(@RequestBody @Validated SaveBatchQualificationsApplyReq req);
|
||||
|
||||
@PostMapping("/api/org/qualifications-apply/update")
|
||||
ApiResult<Void> updateQualificationsApply(@RequestBody @Validated UpdateQualificationsApplyReq req);
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
package cn.axzo.orgmanax.dto.unit.qualification.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/15
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SaveBatchQualificationsApplyReq {
|
||||
|
||||
/**
|
||||
* 资质申请记录列表
|
||||
*/
|
||||
@Valid
|
||||
@NotEmpty(message = "资质申请记录列表不能为空")
|
||||
private List<SaveQualificationsApplyReq> qualificationsApplyList;
|
||||
/**
|
||||
* 操作人ID
|
||||
*/
|
||||
private Long operatorId;
|
||||
}
|
||||
@ -0,0 +1,140 @@
|
||||
package cn.axzo.orgmanax.dto.unit.qualification.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2024/12/26
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Data
|
||||
@SuperBuilder
|
||||
public class SaveQualificationsApplyReq {
|
||||
|
||||
/**
|
||||
* 单位/团队注册记录id
|
||||
*/
|
||||
private Long ouRegisterId;
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 企业名称(冗余查询用)
|
||||
*/
|
||||
private String ouName;
|
||||
|
||||
/**
|
||||
* 企业主体类型(冗余查询用)
|
||||
*/
|
||||
private Integer mainBodyType;
|
||||
|
||||
/**
|
||||
* 证书名称
|
||||
* 1:建筑业企业资质证书
|
||||
* 2:房地产开发企业资质证书
|
||||
* 3:工程监理资质证书
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 资质认证到期时间
|
||||
*/
|
||||
private Date endTime;
|
||||
|
||||
/**
|
||||
* 资质文件名称
|
||||
*/
|
||||
private String fileName;
|
||||
|
||||
/**
|
||||
* 资质文件url
|
||||
*/
|
||||
private String fileUrl;
|
||||
|
||||
/**
|
||||
* 审批状态 0:已撤销 10:审核中,20:审核拒绝,30:审核通过 与单位表的状态枚举一致
|
||||
*/
|
||||
private Integer approvalStatus;
|
||||
|
||||
/**
|
||||
* 审批意见
|
||||
*/
|
||||
private String approvalMsg;
|
||||
|
||||
/**
|
||||
* 审批人身份id
|
||||
*/
|
||||
private Long approver;
|
||||
|
||||
/**
|
||||
* 审批时间
|
||||
*/
|
||||
private Date approvalTime;
|
||||
|
||||
/**
|
||||
* 操作日志: {"type":1,"time":1238988889}
|
||||
* 动作类型: 1:资料完善 2:协议勾选 3:审核中(提交) 4:审核完成(通过/拒绝)
|
||||
*/
|
||||
private String actionLog;
|
||||
|
||||
/**
|
||||
* 提交人姓名
|
||||
*/
|
||||
private String presenterName;
|
||||
|
||||
/**
|
||||
* 提交人手机号
|
||||
*/
|
||||
private String presenterPhone;
|
||||
|
||||
/**
|
||||
* 证书编号
|
||||
*/
|
||||
private String number;
|
||||
|
||||
/**
|
||||
* 资质序列/资质分类: 1:施工总承包 2:建设单位 3:监理单位 4:劳务分包 5:专业承包 30:其他
|
||||
* 建筑业企业资质证书--施工总承包、专业承包、劳务分包
|
||||
* 房地产开发企业资质证书--建设单位
|
||||
* 工程监理资质证书--监理单位
|
||||
* 其他 -- 自定义
|
||||
* REQ-1806
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 资质类别(纯手录)
|
||||
* REQ-1806
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 资质等级
|
||||
* a. 房地产开发企业资质证书(壹级、贰级、叁级、肆级)、
|
||||
* b. 建筑业企业资质证书(特级、壹级、贰级、叁级、不分)、
|
||||
* c. 工程监理资质证书(甲级、乙级、丙级)
|
||||
* REQ-1806
|
||||
*/
|
||||
private String categoryLevel;
|
||||
|
||||
/**
|
||||
* 证书类型: 1:建筑业企业资质证书 2:房地产开发企业资质证书 3:工程监理资质证书 20:其他
|
||||
*/
|
||||
private Integer qualificationType;
|
||||
|
||||
/**
|
||||
* 工作流实例id
|
||||
*/
|
||||
private String processInstanceId;
|
||||
|
||||
|
||||
}
|
||||
@ -2,6 +2,7 @@ package cn.axzo.orgmanax.infra.dao.qualification.repository;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.entity.QualificationsApply;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public interface QualificationsApplyUpsertRepository {
|
||||
@ -13,4 +14,6 @@ public interface QualificationsApplyUpsertRepository {
|
||||
void update(QualificationsApply qualificationsApply);
|
||||
|
||||
void delete(Long id);
|
||||
|
||||
void saveBatch(List<QualificationsApply> qualificationsApplyList);
|
||||
}
|
||||
@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@ -43,4 +44,9 @@ public class QualificationsApplyUpsertRepositoryImpl implements QualificationsAp
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveBatch(List<QualificationsApply> qualificationsApplyList) {
|
||||
qualificationsApplyDao.saveBatch(qualificationsApplyList);
|
||||
}
|
||||
|
||||
}
|
||||
@ -6,10 +6,7 @@ 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.OrgQualificationOuTypeDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationsApplyDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationOuTypeReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationsApplyReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.UpdateQualificationsApplyReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.*;
|
||||
import cn.axzo.orgmanax.server.unit.service.QualificationService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@ -48,6 +45,12 @@ public class UnitQualificationController implements OrgUnitQualificationApi {
|
||||
return ApiResult.success(qualificationService.listOuType(req));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> qualificationsApplySaveBatch(SaveBatchQualificationsApplyReq req) {
|
||||
qualificationService.qualificationsApplySaveBatch(req);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> updateQualificationsApply(UpdateQualificationsApplyReq req) {
|
||||
qualificationService.updateQualificationsApply(req);
|
||||
|
||||
@ -0,0 +1,10 @@
|
||||
package cn.axzo.orgmanax.server.unit.foundation;
|
||||
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.QualificationsApplyCreator;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface QualificationFoundationService {
|
||||
|
||||
void saveApplyList(List<QualificationsApplyCreator> applyList);
|
||||
}
|
||||
@ -0,0 +1,142 @@
|
||||
package cn.axzo.orgmanax.server.unit.foundation.dto;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.entity.QualificationsApply;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/15
|
||||
*/
|
||||
@Data
|
||||
public class QualificationsApplyCreator {
|
||||
|
||||
/**
|
||||
* 单位/团队注册记录id
|
||||
*/
|
||||
private Long ouRegisterId;
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 企业名称(冗余查询用)
|
||||
*/
|
||||
private String ouName;
|
||||
|
||||
/**
|
||||
* 企业主体类型(冗余查询用)
|
||||
*/
|
||||
private Integer mainBodyType;
|
||||
|
||||
/**
|
||||
* 证书名称
|
||||
* 1:建筑业企业资质证书
|
||||
* 2:房地产开发企业资质证书
|
||||
* 3:工程监理资质证书
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 资质认证到期时间
|
||||
*/
|
||||
private Date endTime;
|
||||
|
||||
/**
|
||||
* 资质文件名称
|
||||
*/
|
||||
private String fileName;
|
||||
|
||||
/**
|
||||
* 资质文件url
|
||||
*/
|
||||
private String fileUrl;
|
||||
|
||||
/**
|
||||
* 审批状态 0:已撤销 10:审核中,20:审核拒绝,30:审核通过 与单位表的状态枚举一致
|
||||
*/
|
||||
private Integer approvalStatus;
|
||||
|
||||
/**
|
||||
* 审批意见
|
||||
*/
|
||||
private String approvalMsg;
|
||||
|
||||
/**
|
||||
* 审批人身份id
|
||||
*/
|
||||
private Long approver;
|
||||
|
||||
/**
|
||||
* 审批时间
|
||||
*/
|
||||
private Date approvalTime;
|
||||
|
||||
/**
|
||||
* 操作日志: {"type":1,"time":1238988889}
|
||||
* 动作类型: 1:资料完善 2:协议勾选 3:审核中(提交) 4:审核完成(通过/拒绝)
|
||||
*/
|
||||
private String actionLog;
|
||||
|
||||
/**
|
||||
* 提交人姓名
|
||||
*/
|
||||
private String presenterName;
|
||||
|
||||
/**
|
||||
* 提交人手机号
|
||||
*/
|
||||
private String presenterPhone;
|
||||
|
||||
/**
|
||||
* 证书编号
|
||||
*/
|
||||
private String number;
|
||||
|
||||
/**
|
||||
* 资质序列/资质分类: 1:施工总承包 2:建设单位 3:监理单位 4:劳务分包 5:专业承包 30:其他
|
||||
* 建筑业企业资质证书--施工总承包、专业承包、劳务分包
|
||||
* 房地产开发企业资质证书--建设单位
|
||||
* 工程监理资质证书--监理单位
|
||||
* 其他 -- 自定义
|
||||
* REQ-1806
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 资质类别(纯手录)
|
||||
* REQ-1806
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 资质等级
|
||||
* a. 房地产开发企业资质证书(壹级、贰级、叁级、肆级)、
|
||||
* b. 建筑业企业资质证书(特级、壹级、贰级、叁级、不分)、
|
||||
* c. 工程监理资质证书(甲级、乙级、丙级)
|
||||
* REQ-1806
|
||||
*/
|
||||
private String categoryLevel;
|
||||
|
||||
/**
|
||||
* 证书类型: 1:建筑业企业资质证书 2:房地产开发企业资质证书 3:工程监理资质证书 20:其他
|
||||
*/
|
||||
private Integer qualificationType;
|
||||
|
||||
/**
|
||||
* 工作流实例id
|
||||
*/
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 转换实体
|
||||
*/
|
||||
public QualificationsApply toEntity() {
|
||||
return BeanUtil.copyProperties(this, QualificationsApply.class);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package cn.axzo.orgmanax.server.unit.foundation.impl;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.entity.QualificationsApply;
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.repository.QualificationsApplyUpsertRepository;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.QualificationFoundationService;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.QualificationsApplyCreator;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/15
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class QualificationFoundationServiceImpl implements QualificationFoundationService {
|
||||
|
||||
private final QualificationsApplyUpsertRepository qualificationsApplyUpsertRepository;
|
||||
|
||||
@Override
|
||||
public void saveApplyList(List<QualificationsApplyCreator> applyCreatorList) {
|
||||
List<QualificationsApply> contactList = applyCreatorList.stream().map(QualificationsApplyCreator::toEntity).collect(Collectors.toList());
|
||||
qualificationsApplyUpsertRepository.saveBatch(contactList);
|
||||
}
|
||||
}
|
||||
@ -4,10 +4,7 @@ import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationOuTypeDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationsApplyDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationOuTypeReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationsApplyReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.UpdateQualificationsApplyReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -23,4 +20,5 @@ public interface QualificationService {
|
||||
|
||||
void updateQualificationsApply(UpdateQualificationsApplyReq req);
|
||||
|
||||
void qualificationsApplySaveBatch(SaveBatchQualificationsApplyReq req);
|
||||
}
|
||||
@ -6,14 +6,13 @@ import cn.axzo.orgmanax.common.config.BizResultCode;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationOuTypeDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.dto.OrgQualificationsApplyDTO;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationOuTypeReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.ListQualificationsApplyReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.UpdateQualificationsApplyReq;
|
||||
import cn.axzo.orgmanax.dto.unit.qualification.req.*;
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.entity.QualificationsApply;
|
||||
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.foundation.QualificationFoundationService;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.QualificationsApplyCreator;
|
||||
import cn.axzo.orgmanax.server.unit.service.QualificationService;
|
||||
import cn.axzo.orgmanax.server.unit.service.processor.QualificationApplyProcessor;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
@ -39,6 +38,7 @@ public class QualificationServiceImpl implements QualificationService {
|
||||
private final QualificationOuTypeQueryRepository qualificationOuTypeQueryRepository;
|
||||
private final QualificationQueryRepository qualificationQueryRepository;
|
||||
private final QualificationsApplyQueryRepository qualificationsApplyQueryRepository;
|
||||
private final QualificationFoundationService qualificationFoundationService;
|
||||
private final ApplicationContext applicationContext;
|
||||
|
||||
@Override
|
||||
@ -92,4 +92,10 @@ public class QualificationServiceImpl implements QualificationService {
|
||||
processor.process(processContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void qualificationsApplySaveBatch(SaveBatchQualificationsApplyReq req) {
|
||||
List<QualificationsApplyCreator> applyList = BeanUtil.copyToList(req.getQualificationsApplyList(), QualificationsApplyCreator.class);
|
||||
qualificationFoundationService.saveApplyList(applyList);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user