1.1.66 订单激活时校验甲方客户基础信息接口。

dev
yinq 3 weeks ago
parent 4a2fe54433
commit f16a1f2707

@ -12,6 +12,7 @@ import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.web.core.BaseController;
import org.dromara.oa.erp.domain.bo.ErpProjectInfoBo;
import org.dromara.oa.erp.domain.vo.ErpContractOrderPurchaseMaterialVo;
import org.dromara.oa.erp.domain.vo.ErpPartyACustomerValidateVo;
import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo;
import org.dromara.oa.erp.service.IErpContractOrderService;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -108,5 +109,16 @@ public class ErpContractOrderController extends BaseController {
@PathVariable("projectId") Long projectId) {
return R.ok(erpContractOrderService.queryPurchaseMaterialList(projectId));
}
/**
*
*
* @param contractId ID
*/
@GetMapping("/validPartyACustomer/{contractId}")
public R<ErpPartyACustomerValidateVo> validPartyACustomerForOrderActivate(@NotNull(message = "合同ID不能为空")
@PathVariable("contractId") Long contractId) {
return R.ok(erpContractOrderService.checkPartyACustomerForOrderActivate(contractId));
}
}

@ -0,0 +1,58 @@
package org.dromara.oa.erp.domain.vo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
*
*
* @author Cursor
*/
@Data
public class ErpPartyACustomerValidateVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
private Boolean valid;
/**
* ID
*/
private Long oneCustomerId;
/**
*
*/
private String customerName;
/**
*
*/
private Boolean ossIdMissing;
/**
*
*/
private Boolean taxNumberMissing;
/**
*
*/
private Boolean bankAccountOpeningMissing;
/**
*
*/
private Boolean bankNumberMissing;
/**
*
*/
private String message;
}

@ -2,6 +2,7 @@ package org.dromara.oa.erp.service;
import org.dromara.oa.erp.domain.bo.ErpProjectInfoBo;
import org.dromara.oa.erp.domain.vo.ErpContractOrderPurchaseMaterialVo;
import org.dromara.oa.erp.domain.vo.ErpPartyACustomerValidateVo;
import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -97,5 +98,13 @@ public interface IErpContractOrderService {
* @return ID
*/
Long resolveContractIdByProjectId(Long projectId);
/**
*
*
* @param contractId ID
* @return
*/
ErpPartyACustomerValidateVo checkPartyACustomerForOrderActivate(Long contractId);
}

@ -30,6 +30,7 @@ import org.dromara.oa.erp.domain.bo.ErpProjectContractsBo;
import org.dromara.oa.erp.domain.bo.ErpProjectPlanStageBo;
import org.dromara.oa.erp.domain.vo.ErpContractInfoVo;
import org.dromara.oa.erp.domain.vo.ErpContractOrderPurchaseMaterialVo;
import org.dromara.oa.erp.domain.vo.ErpPartyACustomerValidateVo;
import org.dromara.oa.erp.domain.vo.ErpProjectInfoVo;
import org.dromara.oa.erp.mapper.ErpContractInfoMapper;
import org.dromara.oa.erp.mapper.ErpContractMaterialMapper;
@ -703,24 +704,70 @@ public class ErpContractOrderServiceImpl implements IErpContractOrderService {
/**
*
*
* @param oneCustomerId ID
* @param contractId ID
* @return
*/
private void validPartyACustomerForOrderActivate(Long oneCustomerId) {
if (oneCustomerId == null) {
return;
@Override
public ErpPartyACustomerValidateVo checkPartyACustomerForOrderActivate(Long contractId) {
if (contractId == null) {
ErpPartyACustomerValidateVo result = new ErpPartyACustomerValidateVo();
result.setValid(true);
return result;
}
ErpContractInfoVo contractInfoVo = contractInfoMapper.selectVoById(contractId);
if (contractInfoVo == null) {
throw new ServiceException("合同信息不存在");
}
return buildPartyACustomerValidateResult(contractInfoVo.getOneCustomerId());
}
/**
*
*
* @param oneCustomerId ID
* @return
*/
private ErpPartyACustomerValidateVo buildPartyACustomerValidateResult(Long oneCustomerId) {
ErpPartyACustomerValidateVo result = new ErpPartyACustomerValidateVo();
result.setValid(true);
if (oneCustomerId == null) {
return result;
}
result.setOneCustomerId(oneCustomerId);
CrmCustomerInfoVo customerInfo = crmCustomerInfoService.queryById(oneCustomerId);
if (customerInfo == null) {
throw new ServiceException("合同甲方客户信息不存在,请先在客户管理中维护客户信息");
result.setValid(false);
result.setMessage("合同甲方客户信息不存在,请先在客户管理中维护客户信息");
return result;
}
if (StringUtils.isBlank(customerInfo.getOssId())
|| StringUtils.isBlank(customerInfo.getTaxNumber())
|| StringUtils.isBlank(customerInfo.getBankAccountOpening())
|| StringUtils.isBlank(customerInfo.getBankNumber())) {
result.setCustomerName(customerInfo.getCustomerName());
boolean ossIdMissing = StringUtils.isBlank(customerInfo.getOssId());
boolean taxNumberMissing = StringUtils.isBlank(customerInfo.getTaxNumber());
boolean bankAccountOpeningMissing = StringUtils.isBlank(customerInfo.getBankAccountOpening());
boolean bankNumberMissing = StringUtils.isBlank(customerInfo.getBankNumber());
result.setOssIdMissing(ossIdMissing);
result.setTaxNumberMissing(taxNumberMissing);
result.setBankAccountOpeningMissing(bankAccountOpeningMissing);
result.setBankNumberMissing(bankNumberMissing);
if (ossIdMissing || taxNumberMissing || bankAccountOpeningMissing || bankNumberMissing) {
result.setValid(false);
String customerName = StringUtils.isNotBlank(customerInfo.getCustomerName())
? customerInfo.getCustomerName()
: String.valueOf(oneCustomerId);
throw new ServiceException("客户【" + customerName + "】的附件、税号、开户银行、银行账号不能为空,请先在客户管理中完善!");
result.setMessage("客户【" + customerName + "】的附件、税号、开户银行、银行账号不能为空,请完善客户信息");
}
return result;
}
/**
*
*
* @param oneCustomerId ID
*/
private void validPartyACustomerForOrderActivate(Long oneCustomerId) {
ErpPartyACustomerValidateVo result = buildPartyACustomerValidateResult(oneCustomerId);
if (!Boolean.TRUE.equals(result.getValid())) {
throw new ServiceException(result.getMessage());
}
}

Loading…
Cancel
Save