From 3ad87d6d29008af9ee1428f0bfe6ff35763c1aa3 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Fri, 10 Oct 2025 10:41:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=97=B6=EF=BC=8C=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E7=94=B2=E6=96=B9=E5=92=8C=E4=B9=99=E6=96=B9=E7=9A=84?= =?UTF-8?q?ERP=E7=9A=84=E5=85=AC=E5=8F=B8=E7=BC=96=E7=A0=81=E5=92=8CERP?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E5=90=8D=E7=A7=B0=E6=98=AF=E5=90=A6=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=EF=BC=8C=E4=B8=8D=E5=AD=98=E5=9C=A8=E5=88=99=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E2=80=9C=E8=AF=B7=E5=85=88=E7=BB=91=E5=AE=9AERP?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E4=BF=A1=E6=81=AF=E2=80=9D=20=E5=90=88?= =?UTF-8?q?=E5=90=8C=E4=B8=BB=E4=BF=A1=E6=81=AF=E8=A1=A8=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contractorder/enums/ApiConstants.java | 3 ++ .../enums/ErrorCodeConstants.java | 1 + .../zt-module-contract-order-server/pom.xml | 5 +++ .../vo/contract/ContractSaveReqVO.java | 5 ++- .../dataobject/contract/ContractMainDO.java | 31 +++++++++++++++++-- .../service/contract/ContractServiceImpl.java | 19 ++++++++++++ .../plat/module/erp/enums/ApiConstants.java | 1 + .../erp/service/erp/ErpCompanyService.java | 8 +++++ .../service/erp/ErpCompanyServiceImpl.java | 13 +++++--- 9 files changed, 78 insertions(+), 8 deletions(-) diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ApiConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ApiConstants.java index f99bcef..7fba414 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ApiConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ApiConstants.java @@ -20,4 +20,7 @@ public class ApiConstants { public static final String VERSION = "1.0.0"; + public static final String PURCHASE = "甲方"; + + public static final String SALES = "乙方"; } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java index 57c28fb..050bbd5 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java @@ -21,4 +21,5 @@ public interface ErrorCodeConstants { ErrorCode CONTRACT_DATA_NOT_EXISTS = new ErrorCode(1_027_000_006, "{}不存在"); ErrorCode CONTRACT_STATUS_NOT_SUBMIT_APPROVAL = new ErrorCode(1_027_000_007, "{}状态合同不允许提交审核"); ErrorCode CONTRACT_STATUS_NOT_APPROVAL = new ErrorCode(1_027_000_008, "{}状态合同不允许审核"); + ErrorCode CONTRACT_ERP_COMPANY_PLEASE_BIND = new ErrorCode(1_027_000_009, "请先绑定{}ERP公司信息"); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/pom.xml b/zt-module-contract-order/zt-module-contract-order-server/pom.xml index 2894858..cf916c2 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/pom.xml +++ b/zt-module-contract-order/zt-module-contract-order-server/pom.xml @@ -136,6 +136,11 @@ zt-module-bpm-api ${revision} + + com.zt.plat + zt-module-erp-server + ${revision} + diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractSaveReqVO.java index ea8a563..361069c 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/ContractSaveReqVO.java @@ -208,6 +208,9 @@ public class ContractSaveReqVO { @Schema(description = "达到收款条件金额;与ERP(DDSKJE)对应,拓展信息,销售合同,且类型为SAP02COSR必填") private BigDecimal payeeConditionAmount; + @Schema(description = "是否内部企业(字典:ERP_CTRT_YN)") + private String isInternal; + // 模板部分 @Schema(description = "模板实例主键", example = "10196") private Long instanceId; @@ -221,6 +224,6 @@ public class ContractSaveReqVO { // 参数降级规则 private List demotes; - // 品位不计价配置 + // 品位不计价规则 private List nots; } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java index 4cc33ce..b8ce37d 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java @@ -40,7 +40,7 @@ public class ContractMainDO extends BusinessBaseDO { @TableField("SYS_CTRT_NUM") private String systemContractNumber; /** - * 状态 + * 状态(字典: BSE_CTRT_STS) */ @TableField("STS") private String status; @@ -60,7 +60,7 @@ public class ContractMainDO extends BusinessBaseDO { @TableField("CTRT_VRTL") private String contractVirtual; /** - * 是否先款后货 + * 交易方式(字典: HS_PYBL_TP) */ @TableField("HS_PYBL") private String hasPayable; @@ -270,7 +270,7 @@ public class ContractMainDO extends BusinessBaseDO { @TableField("STP") private Integer step; /** - * ERP请求状态 + * ERP请求状态(字典: ERP_REQ_STS) */ @TableField("ERP_STS") private String erpStatus; @@ -364,4 +364,29 @@ public class ContractMainDO extends BusinessBaseDO { */ @TableField("SALE_CTCT_ADR") private String salesContactAddress; + /** + * ERP甲方公司编号 + */ + @TableField("ERP_PRCH_CPN_NUM") + private String erpPurchaseCompanyNumber; + /** + * ERP甲方公司名称 + */ + @TableField("ERP_PRCH_CPN_NAME") + private String erpPurchaseCompanyName; + /** + * ERP乙方公司编码 + */ + @TableField("ERP_SALE_CPN_NUM") + private String erpSalesCompanyNumber; + /** + * ERP乙方公司名称 + */ + @TableField("ERP_SALE_CPN_NAME") + private String erpSalesCompanyName; + /** + * 是否内部企业(字典:ERP_CTRT_YN) + */ + @TableField("IS_INTL") + private String isInternal; } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index a9918d3..616eb58 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -19,11 +19,13 @@ import com.zt.plat.module.bpm.api.task.dto.BpmTaskRespDTO; import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*; import com.zt.plat.module.contractorder.dal.dataobject.contract.*; import com.zt.plat.module.contractorder.dal.mysql.contract.*; +import com.zt.plat.module.contractorder.enums.ApiConstants; import com.zt.plat.module.contractorder.enums.DateConstants; import com.zt.plat.module.contractorder.enums.ProcessConstants; import com.zt.plat.module.contractorder.enums.TableFieldConstants; import com.zt.plat.module.contractorder.enums.contract.ContractStatusEnum; import com.zt.plat.module.contractorder.enums.contract.ErpCtrtYesNoEnum; +import com.zt.plat.module.erp.service.erp.ErpCompanyService; import com.zt.plat.module.system.api.user.AdminUserApi; import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; import jakarta.annotation.Resource; @@ -83,6 +85,8 @@ public class ContractServiceImpl implements ContractService { private BpmTaskApi bpmTaskApi; @Resource private ContractDemoteMapper contractDemoteMapper; + @Resource + private ErpCompanyService erpCompanyService; @Override public PageResult getContractPage(ContractPageReqVO pageReqVO) { @@ -109,6 +113,21 @@ public class ContractServiceImpl implements ContractService { } } + // 校验ERP的公司 + if (StringUtils.isNotEmpty(reqVO.getPurchaseCompanyNumber()) + || StringUtils.isNotEmpty(reqVO.getSalesCompanyNumber())) { + if (StringUtils.isNotEmpty(reqVO.getPurchaseCompanyNumber())) { + if (erpCompanyService.getErpCompanyByNumber(reqVO.getPurchaseCompanyNumber()) == null) { + throw exception(CONTRACT_ERP_COMPANY_PLEASE_BIND, ApiConstants.PURCHASE); + } + } + if (StringUtils.isNotEmpty(reqVO.getSalesCompanyNumber())) { + if (erpCompanyService.getErpCompanyByNumber(reqVO.getSalesCompanyNumber()) == null) { + throw exception(CONTRACT_ERP_COMPANY_PLEASE_BIND, ApiConstants.SALES); + } + } + } + // 合同主信息 ContractMainDO contractMainDO = BeanUtils.toBean(reqVO, ContractMainDO.class); // 合同状态保存为草稿 diff --git a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ApiConstants.java b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ApiConstants.java index 1a4ca8c..c01411b 100644 --- a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ApiConstants.java +++ b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ApiConstants.java @@ -20,4 +20,5 @@ public class ApiConstants { public static final String VERSION = "1.0.0"; + public static final String TABLE_FIELD_SPLY_ERP_CPN_NUM = "NUM"; } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java index 21a23e6..2dd2cee 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyService.java @@ -62,4 +62,12 @@ public interface ErpCompanyService { PageResult getErpCompanyPage(ErpCompanyPageReqVO pageReqVO); void callErpRfcInterface(); + + /** + * 通过公司编码获得ERP公司 + * + * @param number 公司编码 + * @return ERP公司 + */ + ErpCompanyDO getErpCompanyByNumber(String number); } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java index 5f86f82..464b7d6 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpCompanyServiceImpl.java @@ -7,14 +7,14 @@ import com.xxl.job.core.handler.annotation.XxlJob; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; -import com.zt.plat.module.erp.utils.ErpConfig; -import com.zt.plat.module.erp.utils.MyRedisConfig; -import com.zt.plat.module.erp.enums.OftenEnum; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpCompanyPageReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpCompanyRespVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpCompanySaveReqVO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpCompanyDO; import com.zt.plat.module.erp.dal.mysql.erp.ErpCompanyMapper; +import com.zt.plat.module.erp.enums.OftenEnum; +import com.zt.plat.module.erp.utils.ErpConfig; +import com.zt.plat.module.erp.utils.MyRedisConfig; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -27,7 +27,7 @@ import java.util.Map; import java.util.stream.Collectors; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.zt.plat.module.erp.enums.ErrorCodeConstants.ERP_BOM_NOT_EXISTS; +import static com.zt.plat.module.erp.enums.ApiConstants.TABLE_FIELD_SPLY_ERP_CPN_NUM; import static com.zt.plat.module.erp.enums.ErrorCodeConstants.ERP_COMPANY_NOT_EXISTS; import static dm.jdbc.util.DriverUtil.log; @@ -136,6 +136,11 @@ public class ErpCompanyServiceImpl implements ErpCompanyService { } } + @Override + public ErpCompanyDO getErpCompanyByNumber(String number) { + return erpCompanyMapper.selectOne(TABLE_FIELD_SPLY_ERP_CPN_NUM, number); + } + /** * 处理数据,区分新增和更新 */