相关方用户新增和部门新增校验是否完善企业信息

main
zhaokai 2025-12-01 17:13:16 +08:00
parent 06d2957b4f
commit 2bc55c2e2f
7 changed files with 68 additions and 4 deletions

View File

@ -74,4 +74,9 @@ public class ZcloudCorpFacadeImpl implements ZcloudCorpFacade {
List<ZcloudCorpInfoCO> zcloudCorpCo = corpInfoCoConvertor.converCOsToDubboCOs(list);
return MultiResponse.of(zcloudCorpCo);
}
@Override
public SingleResponse<Boolean> verifyCorpInfo() {
return SingleResponse.of(corpInfoService.verifyCorpInfo());
}
}

View File

@ -120,6 +120,11 @@ public class CorpInfoController {
public PageResponse<CorpUserMiddleCO> corpUserMiddlePage(@Validated @RequestBody CorpUserMiddleQry qry) {
return corpInfoService.corpUserMiddlePage(qry);
}
@ApiOperation("企业信息是否完善")
@PostMapping("/verifyCorpInfo")
public SingleResponse<Boolean> verifyCorpInfo() {
return SingleResponse.of(corpInfoService.verifyCorpInfo());
}
}

View File

@ -4,7 +4,9 @@ import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.exception.BizException;
import com.zcloud.basic.info.command.convertor.DepartmentSuperviseCoConvertor;
import com.zcloud.basic.info.command.query.CorpInfoQueryExe;
import com.zcloud.basic.info.domain.enums.CommonFlagEnum;
import com.zcloud.basic.info.domain.enums.CorpTypeEnum;
import com.zcloud.basic.info.domain.gateway.DepartmentGateway;
import com.zcloud.basic.info.domain.gateway.DepartmentSuperviseGateway;
import com.zcloud.basic.info.domain.model.DepartmentE;
@ -36,10 +38,15 @@ public class DepartmentAddExe {
private final DepartmentGateway departmentGateway;
private final DepartmentSuperviseGateway departmentSuperviseGateway;
private final DepartmentRepository departmentRepository;
private final CorpInfoQueryExe corpInfoQueryExe;
@Transactional(rollbackFor = Exception.class)
public Long execute(DepartmentAddCmd cmd) {
Boolean b = corpInfoQueryExe.verifyCorpInfo();
if (!b) {
throw new BizException("请先完善企业信息");
}
DepartmentE examTypeE = new DepartmentE();
//名字校验重复
if (departmentRepository.existsByName(cmd.getName())) {

View File

@ -10,6 +10,7 @@ import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.system.client.role.response.RoleCO;
import com.zcloud.basic.info.command.convertor.UserCoConvertor;
import com.zcloud.basic.info.command.query.CorpInfoQueryExe;
import com.zcloud.basic.info.domain.gateway.CorpInfoGateway;
import com.zcloud.basic.info.domain.gateway.UserEmploymentLogGateway;
import com.zcloud.basic.info.domain.gateway.UserGateway;
@ -61,10 +62,16 @@ public class UserAddExe {
private final UserRepository userRepository;
@DubboReference
private ConfDictTreeFacade confDictTreeFacade;
private final CorpInfoQueryExe corpInfoQueryExe;
@Transactional(rollbackFor = Exception.class)
public boolean execute(UserAddCmd cmd) {
Boolean b = corpInfoQueryExe.verifyCorpInfo();
if (!b) {
throw new BizException("请先完善企业信息");
}
SSOUser ssoUser = AuthContext.getCurrentUser();
Long tenantId = ssoUser.getTenantId();
UserE userE = new UserE();

View File

@ -2,10 +2,14 @@ package com.zcloud.basic.info.command.query;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.exception.BizException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.jjb.saas.system.client.tenant.request.TenantAddCmd;
import com.zcloud.basic.info.command.convertor.CorpInfoCoConvertor;
import com.zcloud.basic.info.domain.enums.CorpFormTypeEnum;
import com.zcloud.basic.info.domain.enums.CorpTypeEnum;
import com.zcloud.basic.info.domain.enums.UserTypeEnum;
import com.zcloud.basic.info.domain.model.CorpDepartmentE;
import com.zcloud.basic.info.domain.model.CorpInfoE;
import com.zcloud.basic.info.domain.model.DepartmentE;
@ -20,6 +24,7 @@ import com.zcloud.basic.info.persistence.dataobject.UserQualificationInfoDO;
import com.zcloud.basic.info.persistence.repository.*;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
@ -61,7 +66,7 @@ public class CorpInfoQueryExe {
}
PageResponse<CorpInfoDO> pageResponse = corpInfoRepository.listPage(parmas);
List<CorpInfoCO> examCenterCOS = corpInfoCoConvertor.converDOsToCOs(pageResponse.getData());
if(CollUtil.isEmpty(examCenterCOS)){
if (CollUtil.isEmpty(examCenterCOS)) {
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//examCenterCOS获取id集合
@ -72,7 +77,7 @@ public class CorpInfoQueryExe {
.collect(Collectors.groupingBy(CorpFormDO::getInfoId));
// 组装营业执照和多选框
examCenterCOS.forEach(info -> {
if(CollUtil.isNotEmpty(groupedByCorpInfoId )&&CollUtil.isNotEmpty(groupedByCorpInfoId.get(info.getId()))){
if (CollUtil.isNotEmpty(groupedByCorpInfoId) && CollUtil.isNotEmpty(groupedByCorpInfoId.get(info.getId()))) {
//infoByTypeList name按照逗号分隔
info.setSelectfromString(groupedByCorpInfoId.get(info.getId()).stream()
.map(CorpFormDO::getItemName)
@ -144,7 +149,7 @@ public class CorpInfoQueryExe {
Map<String, Object> parmas = PageQueryHelper.toHashMap(qry);
PageResponse<CorpInfoDO> pageResponse = corpInfoRepository.corpUserMiddlePage(parmas);
List<CorpUserMiddleCO> examCenterCOS = corpInfoCoConvertor.converDOsToMiddleCOs(pageResponse.getData());
if(CollUtil.isEmpty(examCenterCOS)){
if (CollUtil.isEmpty(examCenterCOS)) {
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//examCenterCOS获取id集合
@ -176,7 +181,7 @@ public class CorpInfoQueryExe {
info.setSafetyUserCount(0L);
}
if(CollUtil.isNotEmpty(groupedByCorpInfoId )&&CollUtil.isNotEmpty(groupedByCorpInfoId.get(info.getId()))){
if (CollUtil.isNotEmpty(groupedByCorpInfoId) && CollUtil.isNotEmpty(groupedByCorpInfoId.get(info.getId()))) {
//infoByTypeList name按照逗号分隔
info.setSelectfromString(groupedByCorpInfoId.get(info.getId()).stream()
.map(CorpFormDO::getItemName)
@ -199,5 +204,32 @@ public class CorpInfoQueryExe {
List<CorpInfoDO> list = corpInfoRepository.list(dOQueryWrapper);
return corpInfoCoConvertor.converDOsToCOs(list);
}
public Boolean verifyCorpInfo() {
CorpInfoDO corpInfoDO = corpInfoRepository.getById(AuthContext.getCurrentUser().getTenantId());
if (corpInfoDO == null) {
throw new BizException("企业不存在");
}
//是相关方才会校验
List<Integer> enterpriseType = CorpTypeEnum.getCodesByEnterpriseType(UserTypeEnum.XGF.getCode());
if (!enterpriseType.contains(corpInfoDO.getType())) {
return true;
}
//corpName,省份编码,单位经营地址,企业规模,法定代表人姓名,主要负责人电话,成立日期,职工人数,资产总额,营业执照开始时间,只要有一个不为空
if (StringUtils.isEmpty(corpInfoDO.getCorpName())
|| StringUtils.isEmpty(corpInfoDO.getProvince())
|| StringUtils.isEmpty(corpInfoDO.getAddressBusiness())
|| corpInfoDO.getScaleType()==null
|| StringUtils.isEmpty(corpInfoDO.getLrName())
|| StringUtils.isEmpty(corpInfoDO.getContactsPhone())
|| corpInfoDO.getCreateDate() == null
|| corpInfoDO.getEmployees()==null
|| corpInfoDO.getTotalAssets()==null
|| corpInfoDO.getLicenseStart()==null) {
return false;
}
return true;
}
}

View File

@ -117,5 +117,11 @@ public class CorpInfoServiceImpl implements CorpInfoServiceI {
public List<CorpInfoCO> listByCorpIds(Collection<Long> collection) {
return corpInfoQueryExe.listByCorpIds(collection);
}
@Override
public Boolean verifyCorpInfo() {
return corpInfoQueryExe.verifyCorpInfo();
}
}

View File

@ -46,5 +46,7 @@ public interface CorpInfoServiceI {
List<CorpInfoCO> getCorpList();
List<CorpInfoCO> listByCorpIds(Collection<Long> collection);
Boolean verifyCorpInfo();
}