合同内容校验

This commit is contained in:
guojunyun
2025-09-29 17:57:59 +08:00
parent a596b6f320
commit 1d9521b0d1
2 changed files with 17 additions and 16 deletions

View File

@@ -192,6 +192,7 @@ public class ContractSaveReqVO {
@Schema(description = "代理方;与ERP(ZLIFNR)对应,拓展信息", example = "代理方") @Schema(description = "代理方;与ERP(ZLIFNR)对应,拓展信息", example = "代理方")
private String agent; private String agent;
@NotBlank(message = "合同类别不能为空")
@Schema(description = "类别;与ERP(HTLB)对应,拓展信息", example = "PROCESSING") @Schema(description = "类别;与ERP(HTLB)对应,拓展信息", example = "PROCESSING")
private String category; private String category;

View File

@@ -112,7 +112,7 @@ public class ContractServiceImpl implements ContractService {
// 合同状态保存为草稿 // 合同状态保存为草稿
contractMainDO.setStatus(ContractStatusEnum.DRAFT.getCode()); contractMainDO.setStatus(ContractStatusEnum.DRAFT.getCode());
// 生成系统合同编号 // 生成系统合同编号
contractMainDO.setSystemContractNumber(generateSystemContractNumber(reqVO.getContractType())); contractMainDO.setSystemContractNumber(generateSystemContractNumber(reqVO.getCategory()));
// 保存合同主信息 // 保存合同主信息
contractMainMapper.insert(contractMainDO); contractMainMapper.insert(contractMainDO);
@@ -639,15 +639,15 @@ public class ContractServiceImpl implements ContractService {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_DRCT_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_DRCT_LABEL);
} }
// 签署日期不能为空 // 签署日期不能为空
if (contract.getSignDate() != null) { if (contract.getSignDate() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_SGN_DT_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_SGN_DT_LABEL);
} }
// 开始日期不能为空 // 开始日期不能为空
if (contract.getStartDate() != null) { if (contract.getStartDate() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_STRT_DT_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_STRT_DT_LABEL);
} }
// 结束日期不能为空 // 结束日期不能为空
if (contract.getEndDate() != null) { if (contract.getEndDate() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_END_DT_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_END_DT_LABEL);
} }
// 签署地不能为空 // 签署地不能为空
@@ -661,11 +661,11 @@ public class ContractServiceImpl implements ContractService {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_CUR_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_CUR_LABEL);
} }
// 本币金额不能为空 // 本币金额不能为空
if (contract.getBasicAmount() != null) { if (contract.getBasicAmount() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_BSC_AMT_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_BSC_AMT_LABEL);
} }
// 原币金额不能为空 // 原币金额不能为空
if (contract.getCooAmount() != null) { if (contract.getCooAmount() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_COO_AMT_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_COO_AMT_LABEL);
} }
// 是否有履约保证金不能为空 // 是否有履约保证金不能为空
@@ -675,11 +675,11 @@ public class ContractServiceImpl implements ContractService {
// 是否有履约保证金为是的情况 // 是否有履约保证金为是的情况
if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasDeposit())) { if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasDeposit())) {
// 原币履约保证金不能为空 // 原币履约保证金不能为空
if (contract.getCooAmountDeposit() != null) { if (contract.getCooAmountDeposit() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_COO_AMT_DPST_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_COO_AMT_DPST_LABEL);
} }
// 本币履约保证金不能为空 // 本币履约保证金不能为空
if (contract.getBasicAmountDeposit() != null) { if (contract.getBasicAmountDeposit() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_BSC_AMT_DPST_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_BSC_AMT_DPST_LABEL);
} }
} }
@@ -690,11 +690,11 @@ public class ContractServiceImpl implements ContractService {
// 是否有预付款为是的情况 // 是否有预付款为是的情况
if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasPrepayment())) { if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasPrepayment())) {
// 预付款比例不能为空 // 预付款比例不能为空
if (contract.getPrepaymentRatio() != null) { if (contract.getPrepaymentRatio() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_PPYM_RTIO_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_PPYM_RTIO_LABEL);
} }
// 预付款金额不能为空 // 预付款金额不能为空
if (contract.getPrepaymentAmount() != null) { if (contract.getPrepaymentAmount() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_PPYM_AMT_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_PPYM_AMT_LABEL);
} }
} }
@@ -705,11 +705,11 @@ public class ContractServiceImpl implements ContractService {
// 是否有质保金为是的情况 // 是否有质保金为是的情况
if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasPrepayment())) { if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasPrepayment())) {
// 质保金比例不能为空 // 质保金比例不能为空
if (contract.getQualityRatio() != null) { if (contract.getQualityRatio() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_QLT_RTIO_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_QLT_RTIO_LABEL);
} }
// 质保金金额不能为空 // 质保金金额不能为空
if (contract.getQualityAmount() != null) { if (contract.getQualityAmount() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_QLT_AMT_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_QLT_AMT_LABEL);
} }
} }
@@ -726,7 +726,7 @@ public class ContractServiceImpl implements ContractService {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_DTL_MTRL_NAME_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_DTL_MTRL_NAME_LABEL);
} }
// 数量不能为空 // 数量不能为空
if (detail.getQuantity() != null) { if (detail.getQuantity() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_DTL_QTY_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_DTL_QTY_LABEL);
} }
// 计量单位不能为空 // 计量单位不能为空
@@ -770,11 +770,11 @@ public class ContractServiceImpl implements ContractService {
* 单据名称(拼音)-类型-公司编码-年月日-六位编号 * 单据名称(拼音)-类型-公司编码-年月日-六位编号
* 如请款单: QKD-ZGQK-3000-20250915-00001 * 如请款单: QKD-ZGQK-3000-20250915-00001
* *
* @param contractType 合同类 * @param category 合同类
* *
* @return 系统合同编号 * @return 系统合同编号
*/ */
private String generateSystemContractNumber(String contractType) { private String generateSystemContractNumber(String category) {
// 单据名称(拼音) // 单据名称(拼音)
String documentName = "XTHT"; String documentName = "XTHT";
@@ -784,7 +784,7 @@ public class ContractServiceImpl implements ContractService {
String yearMounth8Bit = LocalDate.now() String yearMounth8Bit = LocalDate.now()
.format(DateTimeFormatter.ofPattern(DateConstants.DATE_FORMAT_YEAR_MONTH_DAY_8_BIT)); .format(DateTimeFormatter.ofPattern(DateConstants.DATE_FORMAT_YEAR_MONTH_DAY_8_BIT));
// 查询最大编号 // 查询最大编号
String numPrefix = documentName+"-"+contractType+"-"+companyId+"-"+yearMounth8Bit; String numPrefix = documentName+"-"+category+"-"+companyId+"-"+yearMounth8Bit;
QueryWrapper<ContractMainDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<ContractMainDO> queryWrapper = new QueryWrapper<>();
queryWrapper.likeRight("SYS_CTRT_NUM", numPrefix); queryWrapper.likeRight("SYS_CTRT_NUM", numPrefix);
queryWrapper.orderByDesc("SYS_CTRT_NUM"); queryWrapper.orderByDesc("SYS_CTRT_NUM");