feat(REQ-3488): 资质upsert接口实现
This commit is contained in:
parent
9fe926ef19
commit
8109723d4e
@ -56,4 +56,11 @@ public interface OrgUnitQualificationApi {
|
||||
|
||||
@PostMapping("/api/org/qualifications-apply/update")
|
||||
ApiResult<Void> updateQualificationsApply(@RequestBody @Validated UpdateQualificationsApplyReq req);
|
||||
|
||||
@PostMapping("/api/org/qualification/upsert")
|
||||
ApiResult<Void> upsertQualification(@RequestBody @Validated UpsertQualificationReq req);
|
||||
|
||||
@PostMapping("/api/org/qualification-ou-type/upsert")
|
||||
ApiResult<Void> upsertQualificationOuType(@RequestBody @Validated UpsertQualificationOuTypeReq req);
|
||||
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package cn.axzo.orgmanax.dto.unit.qualification.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/16
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Data
|
||||
@SuperBuilder
|
||||
public class UpsertQualificationOuTypeReq {
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
@NotNull(message = "单位id不能为空")
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 企业名称(冗余查询用)
|
||||
*/
|
||||
private String ouName;
|
||||
|
||||
/**
|
||||
* 统一社会信用代码(冗余)
|
||||
*/
|
||||
private String uscc;
|
||||
|
||||
/**
|
||||
* 资质id
|
||||
*/
|
||||
private Long qualificationId;
|
||||
|
||||
/**
|
||||
* 资质序列/单位类型: 1:施工单位(施工总承包资质) 2:建设单位(房地产开发资质)3:工程监理(工程监理资质) 4:劳务分包(施工劳务资质) 5:专业分包(专业承包资质)30:其他
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
package cn.axzo.orgmanax.dto.unit.qualification.req;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/15
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Data
|
||||
@SuperBuilder
|
||||
public class UpsertQualificationReq {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
@NotNull(message = "单位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;
|
||||
|
||||
/**
|
||||
* 证书类型: 1:建筑业企业资质证书 2:房地产开发企业资质证书 3:工程监理资质证书 20:其他
|
||||
*/
|
||||
private Integer qualificationType;
|
||||
|
||||
/**
|
||||
* 资质类别(纯手录)
|
||||
* REQ-1806
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 资质等级
|
||||
* a. 房地产开发企业资质证书(壹级、贰级、叁级、肆级)、
|
||||
* b. 建筑业企业资质证书(特级、壹级、贰级、叁级、不分)、
|
||||
* c. 工程监理资质证书(甲级、乙级、丙级)
|
||||
* REQ-1806
|
||||
*/
|
||||
private String categoryLevel;
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
package cn.axzo.orgmanax.infra.dao.qualification.repository;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.entity.QualificationOuType;
|
||||
|
||||
public interface QualificationOuTypeUpsertRepository {
|
||||
|
||||
void save(QualificationOuType qualificationOuType);
|
||||
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
package cn.axzo.orgmanax.infra.dao.qualification.repository;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.entity.Qualification;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/16
|
||||
*/
|
||||
public interface QualificationUpsertRepository {
|
||||
|
||||
|
||||
void upsert(Qualification qualification);
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package cn.axzo.orgmanax.infra.dao.qualification.repository.impl;
|
||||
|
||||
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.repository.QualificationOuTypeUpsertRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/16
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class QualificationOuTypeUpsertRepositoryImpl implements QualificationOuTypeUpsertRepository {
|
||||
|
||||
private final QualificationOuTypeDao qualificationOuTypeDao;
|
||||
|
||||
@Override
|
||||
public void save(QualificationOuType qualificationOuType) {
|
||||
qualificationOuTypeDao.save(qualificationOuType);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package cn.axzo.orgmanax.infra.dao.qualification.repository.impl;
|
||||
|
||||
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.QualificationUpsertRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/16
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class QualificationUpsertRepositoryImpl implements QualificationUpsertRepository {
|
||||
|
||||
private final QualificationDao qualificationDao;
|
||||
|
||||
@Override
|
||||
public void upsert(Qualification qualification) {
|
||||
qualificationDao.saveOrUpdate(qualification);
|
||||
}
|
||||
|
||||
}
|
||||
@ -57,4 +57,16 @@ public class UnitQualificationController implements OrgUnitQualificationApi {
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> upsertQualification(UpsertQualificationReq req) {
|
||||
qualificationService.upsertQualification(req);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> upsertQualificationOuType(UpsertQualificationOuTypeReq req) {
|
||||
qualificationService.upsertQualificationOuType(req);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,5 +1,7 @@
|
||||
package cn.axzo.orgmanax.server.unit.foundation;
|
||||
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.QualificationCreator;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.QualificationOuTypeCreator;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.QualificationsApplyCreator;
|
||||
|
||||
import java.util.List;
|
||||
@ -7,4 +9,8 @@ import java.util.List;
|
||||
public interface QualificationFoundationService {
|
||||
|
||||
void saveApplyList(List<QualificationsApplyCreator> applyList);
|
||||
|
||||
void upsertQualification(QualificationCreator qualification);
|
||||
|
||||
void upsertQualificationOuType(QualificationOuTypeCreator qualificationOuType);
|
||||
}
|
||||
@ -0,0 +1,93 @@
|
||||
package cn.axzo.orgmanax.server.unit.foundation.dto;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.entity.Qualification;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/16
|
||||
*/
|
||||
@Data
|
||||
public class QualificationCreator {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
@NotNull(message = "单位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;
|
||||
|
||||
/**
|
||||
* 证书类型: 1:建筑业企业资质证书 2:房地产开发企业资质证书 3:工程监理资质证书 20:其他
|
||||
*/
|
||||
private Integer qualificationType;
|
||||
|
||||
/**
|
||||
* 资质类别(纯手录)
|
||||
* REQ-1806
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 资质等级
|
||||
* a. 房地产开发企业资质证书(壹级、贰级、叁级、肆级)、
|
||||
* b. 建筑业企业资质证书(特级、壹级、贰级、叁级、不分)、
|
||||
* c. 工程监理资质证书(甲级、乙级、丙级)
|
||||
* REQ-1806
|
||||
*/
|
||||
private String categoryLevel;
|
||||
|
||||
/**
|
||||
* 转换实体
|
||||
*/
|
||||
public Qualification toEntity() {
|
||||
return BeanUtil.copyProperties(this, Qualification.class);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package cn.axzo.orgmanax.server.unit.foundation.dto;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.entity.QualificationOuType;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/16
|
||||
*/
|
||||
@Data
|
||||
public class QualificationOuTypeCreator {
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 企业名称(冗余查询用)
|
||||
*/
|
||||
private String ouName;
|
||||
|
||||
/**
|
||||
* 统一社会信用代码(冗余)
|
||||
*/
|
||||
private String uscc;
|
||||
|
||||
/**
|
||||
* 资质id
|
||||
*/
|
||||
private Long qualificationId;
|
||||
|
||||
/**
|
||||
* 资质序列/单位类型: 1:施工单位(施工总承包资质) 2:建设单位(房地产开发资质)3:工程监理(工程监理资质) 4:劳务分包(施工劳务资质) 5:专业分包(专业承包资质)30:其他
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 转换实体
|
||||
*/
|
||||
public QualificationOuType toEntity() {
|
||||
return BeanUtil.copyProperties(this, QualificationOuType.class);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,13 +1,22 @@
|
||||
package cn.axzo.orgmanax.server.unit.foundation.impl;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.entity.Qualification;
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.entity.QualificationOuType;
|
||||
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.QualificationOuTypeUpsertRepository;
|
||||
import cn.axzo.orgmanax.infra.dao.qualification.repository.QualificationUpsertRepository;
|
||||
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.QualificationCreator;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.QualificationOuTypeCreator;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.QualificationsApplyCreator;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -22,9 +31,34 @@ public class QualificationFoundationServiceImpl implements QualificationFoundati
|
||||
|
||||
private final QualificationsApplyUpsertRepository qualificationsApplyUpsertRepository;
|
||||
|
||||
private final QualificationUpsertRepository qualificationUpsertRepository;
|
||||
|
||||
private final QualificationOuTypeUpsertRepository qualificationOuTypeUpsertRepository;
|
||||
|
||||
private final QualificationOuTypeQueryRepository qualificationOuTypeQueryRepository;
|
||||
|
||||
@Override
|
||||
public void saveApplyList(List<QualificationsApplyCreator> applyCreatorList) {
|
||||
List<QualificationsApply> contactList = applyCreatorList.stream().map(QualificationsApplyCreator::toEntity).collect(Collectors.toList());
|
||||
qualificationsApplyUpsertRepository.saveBatch(contactList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upsertQualification(QualificationCreator qualification) {
|
||||
Qualification qualificationEntity = qualification.toEntity();
|
||||
qualificationUpsertRepository.upsert(qualificationEntity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upsertQualificationOuType(QualificationOuTypeCreator qualificationOuType) {
|
||||
QualificationOuTypeQueryRepository.ListReq listReq = new QualificationOuTypeQueryRepository.ListReq();
|
||||
listReq.setOuIds(Collections.singleton(qualificationOuType.getOuId()));
|
||||
listReq.setTypes(Collections.singleton(qualificationOuType.getType()));
|
||||
List<QualificationOuTypeQueryRepository.QualificationOuTypeResp> list = qualificationOuTypeQueryRepository.list(listReq);
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
QualificationOuType entity = qualificationOuType.toEntity();
|
||||
qualificationOuTypeUpsertRepository.save(entity);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -21,4 +21,8 @@ public interface QualificationService {
|
||||
void updateQualificationsApply(UpdateQualificationsApplyReq req);
|
||||
|
||||
void qualificationsApplySaveBatch(SaveBatchQualificationsApplyReq req);
|
||||
|
||||
void upsertQualification(UpsertQualificationReq req);
|
||||
|
||||
void upsertQualificationOuType(UpsertQualificationOuTypeReq req);
|
||||
}
|
||||
@ -12,6 +12,8 @@ import cn.axzo.orgmanax.infra.dao.qualification.repository.QualificationOuTypeQu
|
||||
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.QualificationCreator;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.QualificationOuTypeCreator;
|
||||
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;
|
||||
@ -98,4 +100,16 @@ public class QualificationServiceImpl implements QualificationService {
|
||||
qualificationFoundationService.saveApplyList(applyList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upsertQualification(UpsertQualificationReq req) {
|
||||
QualificationCreator creator = BeanUtil.copyProperties(req, QualificationCreator.class);
|
||||
qualificationFoundationService.upsertQualification(creator);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upsertQualificationOuType(UpsertQualificationOuTypeReq req) {
|
||||
QualificationOuTypeCreator creator = BeanUtil.copyProperties(req, QualificationOuTypeCreator.class);
|
||||
qualificationFoundationService.upsertQualificationOuType(creator);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user