diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmpItmPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmpItmPageReqVO.java index 527a46f9..4a374c45 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmpItmPageReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmpItmPageReqVO.java @@ -32,4 +32,7 @@ public class TmpItmPageReqVO extends PageParam { @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDate[] createTime; + + @Schema(description = "状态") + private String sts; } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplFldPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplFldPageReqVO.java index 82a9c553..814a4063 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplFldPageReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplFldPageReqVO.java @@ -28,6 +28,10 @@ public class TmplFldPageReqVO extends PageParam { @Schema(description = "备注") private String rmk; + + @Schema(description = "状态") + private String sts; + @Schema(description = "是否必填") private String isMust; diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplItmMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplItmMapper.java index 99b718e4..41faaae7 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplItmMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplItmMapper.java @@ -15,6 +15,7 @@ public interface TmplItmMapper extends BaseMapperX { .likeIfPresent(TmplItmDO::getItmName, reqVO.getItmName()) .likeIfPresent(TmplItmDO::getItmNum, reqVO.getItmNum()) .eqIfPresent(TmplItmDO::getRmk, reqVO.getRmk()) + .eqIfPresent(TmplItmDO::getSts, reqVO.getSts()) .betweenIfPresent(TmplItmDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(TmplItmDO::getId)); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplTpFldMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplTpFldMapper.java index 920f4650..0a592231 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplTpFldMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplTpFldMapper.java @@ -17,6 +17,7 @@ public interface TmplTpFldMapper extends BaseMapperX { .eqIfPresent(TmplTpFldDO::getFldDoc, reqVO.getFldDoc()) .eqIfPresent(TmplTpFldDO::getIsMust, reqVO.getIsMust()) .eqIfPresent(TmplTpFldDO::getDatTp, reqVO.getDatTp()) + .eqIfPresent(TmplTpFldDO::getSts, reqVO.getSts()) .betweenIfPresent(TmplTpFldDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(TmplTpFldDO::getId)); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplTpMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplTpMapper.java index 746e4e36..9a5fb8bd 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplTpMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/tmpltp/TmplTpMapper.java @@ -29,6 +29,7 @@ public interface TmplTpMapper extends BaseMapperX { .eqIfPresent(TmplTpDO::getPrnId, reqVO.getPrnId()) .eqIfPresent(TmplTpDO::getSrt, reqVO.getSrt()) .eqIfPresent(TmplTpDO::getSts, reqVO.getSts()) + .eqIfPresent(TmplTpDO::getSts, reqVO.getSts()) .betweenIfPresent(TmplTpDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(TmplTpDO::getId)); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java index 48191c2e..c5efe3cd 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java @@ -252,8 +252,8 @@ public class TmplTpServiceImpl extends ServiceImpl imple // 1. 根据条件查询匹配的节点 List matchedNodes = baseMapper.selectList(new LambdaQueryWrapper() - .eq(name != null && !name.isEmpty(), TmplTpDO::getName, name) - .eq(num != null && !num.isEmpty(), TmplTpDO::getNum, num)); + .like(name != null && !name.isEmpty(), TmplTpDO::getName, name) + .like(num != null && !num.isEmpty(), TmplTpDO::getNum, num)); if (matchedNodes.isEmpty()) { return new ArrayList<>(); diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml index 36597586..6209a21e 100644 --- a/zt-module-base/zt-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/tmpltp/TmplTpMapper.xml @@ -21,6 +21,7 @@ AND rel.DELETED = 0 AND tp.DELETED = 0 AND tp.id = #{id} + and itm.sts=1 diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java index 707a8908..89c1993c 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java @@ -30,4 +30,7 @@ public class Partner { private String partnerType; // 客商类型 @Schema(description = "境内/外") private String domesticOrOverseas; // 境内/外 + + @Schema(description = "erp合同编号") + private String erpContractPaperNumber; // erp合同编号 } \ No newline at end of file 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 6a2ebcc3..b3edc42d 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 @@ -28,5 +28,6 @@ public interface ErrorCodeConstants { ErrorCode CONTRACT_STATUS_NOT_SUBMIT_ERP = new ErrorCode(1_027_000_013, "{}状态合同不允许提交ERP"); ErrorCode CONTRACT_ORDER_EXISTS = new ErrorCode(1_027_000_014, "关联订单已存在"); ErrorCode CONTRACT_SUBMIT_ERP_FAIL = new ErrorCode(1_027_000_015, "合同提交erp失败:{}"); - ErrorCode CONTRACT_UNKNOWN_OPERATE = new ErrorCode(1_027_000_015, "未知的操作"); + ErrorCode CONTRACT_UNKNOWN_OPERATE = new ErrorCode(1_027_000_016, "未知的操作"); + ErrorCode CONTRACT_PARTNER_NOT_EXISTS = new ErrorCode(1_027_000_017, "客商信息不存在"); } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java index c5ad9e48..8df642dc 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/contract/DictEnum.java @@ -8,6 +8,14 @@ import lombok.Getter; @Getter public enum DictEnum { + /** 业务类型 */ + BSN_TP_3("物流合同","3",null), + /** ERP合同类型编码 */ + ERP_CTRT_HTLXBH_SAP02NCOZC("SAP铜非施工合同支出类","SAP02NCOZC",null), + /** 交易方式 */ + HS_PYBL_TP_PRE_PAY("先款后货","PRE_PAY",null), + /** ERP合同类别 */ + ERP_CTRT_HTLB_1("购销合同","1",null), /** ERP请求状态 */ ERP_REQ_STS_RLBK("失败","RLBK",null), ERP_REQ_STS_RCVG("执行中","RCVG",null), diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index c22010fd..5395f2da 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -182,21 +182,55 @@ public class ContractApiImpl implements ContractApi { if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) throw exception(CONTRACT_NOT_EXISTS); contractId = systemRelativityDO.getDownId(); contractMainMapper.deleteById(contractId); + // 删除动态条款信息 + contractOtherFormMapper.delete("CTRT_MAIN_ID", contractId.toString()); + contractOtherFieldMapper.delete("CTRT_MAIN_ID", contractId.toString()); + return success(true); } else { throw exception(CONTRACT_UNKNOWN_OPERATE); } - // 提交合同到erp - // 生成ERP合同映射表 - ErpContractSaveReqVO erpContractVO = contractService.getErpContract(contractMainDO); + // 根据客商信息列表提交多个合同映射到erp + if (reqVO.getPartnerList() == null || reqVO.getPartnerList().isEmpty()) { + throw exception(CONTRACT_PARTNER_NOT_EXISTS); + } - // 调用ERP模块 - JSONObject erpResult = contractService.sendToErp(erpContractVO); - log.info("合同提交ERP结果:{}", erpResult); + // 合同主信息-合同编号 + String contractPaperNumber = contractMainDO.getContractPaperNumber(); + // 合同主信息-合同名称 + String contractName = contractMainDO.getContractName(); + for (int i = 0; i < reqVO.getPartnerList().size(); i++) { + Partner partner = reqVO.getPartnerList().get(i); - // 调用ERP失败 - if (!erpResult.getBool("success")) { - throw exception(CONTRACT_SUBMIT_ERP_FAIL, erpResult.getStr("errMsg")); + // 根据客商信息设置合同信息 + // 合同编号 + contractMainDO.setContractPaperNumber(contractPaperNumber + "_" + String.format("%03d", (i+1))); + reqVO.getPartnerList().get(i) + .setErpContractPaperNumber(contractPaperNumber + "_" + String.format("%03d", (i+1))); + // 合同名称 + contractMainDO.setContractName(contractName + "_" + String.format("%03d", (i+1))); + // 境内/境外 -> 客商信息:境内/外 + contractMainDO.setIsDomestic(partner.getDomesticOrOverseas()); + // 乙方公司编号(销售方) -> 客商信息:供应商代码 + contractMainDO.setSalesCompanyNumber(partner.getPartnerCode()); + // ERP乙方公司编码 + contractMainDO.setErpSalesCompanyNumber(partner.getPartnerCode()); + // 乙方公司名称 -> 客商信息:供应商名称 + contractMainDO.setSalesCompanyName(partner.getPartnerName()); + // ERP乙方公司名称 + contractMainDO.setErpSalesCompanyName(partner.getPartnerName()); + + // 生成ERP合同映射表 + ErpContractSaveReqVO erpContractVO = contractService.getErpContract(contractMainDO); + + // 调用ERP模块 + JSONObject erpResult = contractService.sendToErp(erpContractVO); + log.info("合同提交ERP结果:{}", erpResult); + + // 调用ERP失败 + if (!erpResult.getBool("success")) { + throw exception(CONTRACT_SUBMIT_ERP_FAIL, erpResult.getStr("errMsg")); + } } // 删除动态条款信息 @@ -335,22 +369,25 @@ public class ContractApiImpl implements ContractApi { } return CommonResult.success(purchaseOrderDetails); } + private ContractMainDO getcontractMainDO(ContractRequest reqVO) { // 合同主信息表映射 ContractMainDO contractMainDO = new ContractMainDO(); + // 系统合同编号 + contractMainDO.setSystemContractNumber(contractService.generateSystemContractNumber(DictEnum.ERP_CTRT_HTLXBH_SAP02NCOZC.getCode())); // 合同编号 contractMainDO.setContractPaperNumber(reqVO.getContractCode()); // 合同名称 contractMainDO.setContractName(reqVO.getContractName()); // 施工类型编号 默认值:SAP02NCOZC - contractMainDO.setConstructionTypeNumber("SAP02NCOZC"); + contractMainDO.setConstructionTypeNumber(DictEnum.ERP_CTRT_HTLXBH_SAP02NCOZC.getCode()); // 施工类型名称 默认值:铜非施工合同支出类 - contractMainDO.setConstructionTypeName("SAP铜非施工合同支出类"); + contractMainDO.setConstructionTypeName(DictEnum.ERP_CTRT_HTLXBH_SAP02NCOZC.getLabel()); // 类别 默认值:购销合同(1) - contractMainDO.setCategory("1"); + contractMainDO.setCategory(DictEnum.ERP_CTRT_HTLB_1.getCode()); // 是否虚拟合同 默认值:否(0) - contractMainDO.setContractVirtual("0"); + contractMainDO.setContractVirtual(DictEnum.ERP_CTRT_YN_NO.getCode()); // 代理方 默认值:NULL // 签署日期 -> 签约日期 (40-签约必填, 格式: yyyyMMdd) DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); @@ -372,11 +409,11 @@ public class ContractApiImpl implements ContractApi { // 状态 默认值:正在执行(EF) 执行中 contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); // 是否有预付款 默认值:否 - contractMainDO.setHasPrepayment("0"); + contractMainDO.setHasPrepayment(DictEnum.ERP_CTRT_YN_NO.getCode()); // 预付款比例 默认值:NULL // 预付款金额 默认值:NULL // 是否有质保金 默认值:否 - contractMainDO.setHasQualityAmount("0"); + contractMainDO.setHasQualityAmount(DictEnum.ERP_CTRT_YN_NO.getCode()); // 质保金比例 默认值:NULL // 质保金金额 默认值:NULL // 是否内部企业 @@ -385,20 +422,16 @@ public class ContractApiImpl implements ContractApi { contractMainDO.setDirection(DictEnum.ERP_RCV_DLVY_EXPENSES.getCode()); // 是否框架合同 contractMainDO.setIsFramework(reqVO.getIsFramework()); - // 境内/境外 -> 客商信息:境内/外 - if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { - contractMainDO.setIsDomestic(reqVO.getPartnerList().get(0).getDomesticOrOverseas()); - } // 建筑服务发生地 默认值:NULL // 达到收款条件金额 默认值:NULL // 是否有履约保证金 默认值:否 - contractMainDO.setHasDeposit("0"); + contractMainDO.setHasDeposit(DictEnum.ERP_CTRT_YN_NO.getCode()); // 原币履约保证金 默认值:NULL // 本币履约保证金 默认值:NULL // 交易方式 默认值:先款后货 - contractMainDO.setHasPayable("PRE_PAY"); + contractMainDO.setHasPayable(DictEnum.HS_PYBL_TP_PRE_PAY.getCode()); // 合同类型 默认值:物流合同 - contractMainDO.setContractType("3"); + contractMainDO.setContractType(DictEnum.BSN_TP_3.getCode()); // 签署地 -> 签约地 (40-签约必填) contractMainDO.setSignPlace(reqVO.getSignSite()); // 甲方公司编号(采购方) -> 账套代码 @@ -410,18 +443,6 @@ public class ContractApiImpl implements ContractApi { contractMainDO.setErpPurchaseCompanyName(""); // 甲方地址 默认值:NULL // 甲方法定代表人 默认值:NULL - // 乙方公司编号(销售方) -> 客商信息:供应商代码 - if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { - contractMainDO.setSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode()); - // ERP乙方公司编码 - contractMainDO.setErpSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode()); - } - // 乙方公司名称 -> 客商信息:供应商名称 - if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { - contractMainDO.setSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName()); - // ERP乙方公司名称 - contractMainDO.setErpSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName()); - } // 乙方地址 默认值:NULL // 乙方企业负责人 默认值:NULL diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java index a68502b1..9bea3a39 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java @@ -150,7 +150,7 @@ public class PrchOrdDtlSaveReqVO { private String isEnb; @Schema(description = "科目分配详情;科目分配类别为K或P时使用(JSON)") - private JSONObject actsCtgrDtl; + private String actsCtgrDtl; @Schema(description = "委托加工详情;委托加工订单使用(JSON)") private String enttDtl; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java index 76ae5c99..eb7438e9 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java @@ -30,7 +30,7 @@ public class PurchaseOrderSaveReqVO { @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "公司编码;推送ERP(必须)不能为空") - private String companyNumber; + private String cpNum; @Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "客商编码;推送ERP(必须)不能为空") diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java index bb9301fb..499eadcd 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java @@ -19,7 +19,7 @@ public class SalesOrderDetailSaveReqVO { @Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "行项目;推送ERP(必须)不能为空") - private Long lineNumber; + private Long lineNumber; @Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @NotEmpty(message = "物料名称不能为空") @@ -47,7 +47,7 @@ public class SalesOrderDetailSaveReqVO { @Schema(description = "计量单位;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "计量单位;推送ERP(必须)不能为空") - private String unit; + private String unt; @Schema(description = "开票类型;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotEmpty(message = "开票类型;推送ERP(必须)不能为空") diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java index 818c2a93..62286882 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java @@ -207,4 +207,6 @@ public interface ContractService { JSONObject sendToErp(ErpContractSaveReqVO erpContractVO); ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO); + + String generateSystemContractNumber(String category); } 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 26f48aa5..2dfb4f83 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 @@ -26,11 +26,13 @@ import com.zt.plat.module.contractorder.api.dto.contract.*; import com.zt.plat.module.contractorder.api.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.*; +import com.zt.plat.module.contractorder.enums.DateConstants; +import com.zt.plat.module.contractorder.enums.DictTypeConstants; +import com.zt.plat.module.contractorder.enums.ProcessConstants; +import com.zt.plat.module.contractorder.enums.TableFieldConstants; import com.zt.plat.module.contractorder.enums.contract.DictEnum; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractPageReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO; -import com.zt.plat.module.erp.dal.dataobject.erp.ErpCompanyDO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpContractDO; import com.zt.plat.module.erp.service.erp.ErpCompanyService; import com.zt.plat.module.erp.service.erp.ErpContractService; @@ -145,30 +147,14 @@ public class ContractServiceImpl implements ContractService { // 合同主信息 ContractMainDO contractMainDO = BeanUtils.toBean(reqVO, ContractMainDO.class); - // 校验ERP的公司 - if (StringUtils.isNotEmpty(reqVO.getPurchaseCompanyNumber()) - || StringUtils.isNotEmpty(reqVO.getSalesCompanyNumber())) { - if (StringUtils.isNotEmpty(reqVO.getPurchaseCompanyNumber())) { - ErpCompanyDO erpCompany = erpCompanyService.getErpCompanyByNumber(reqVO.getPurchaseCompanyNumber()); - if (erpCompany == null) { - throw exception(CONTRACT_ERP_COMPANY_PLEASE_BIND, ApiConstants.PURCHASE); - } else { - contractMainDO.setErpPurchaseCompanyNumber(erpCompany.getNumber()); - contractMainDO.setErpPurchaseCompanyName(erpCompany.getName()); - } - } - if (StringUtils.isNotEmpty(reqVO.getSalesCompanyNumber())) { - ErpCompanyDO erpCompany = erpCompanyService.getErpCompanyByNumber(reqVO.getSalesCompanyNumber()); - if (erpCompany == null) { - throw exception(CONTRACT_ERP_COMPANY_PLEASE_BIND, ApiConstants.SALES); - } else { - contractMainDO.setErpSalesCompanyNumber(erpCompany.getNumber()); - contractMainDO.setErpSalesCompanyName(erpCompany.getName()); - } - } - } - - + // ERP甲方公司编号 + contractMainDO.setErpPurchaseCompanyNumber(reqVO.getPurchaseCompanyNumber()); + // ERP甲方公司名称 + contractMainDO.setErpPurchaseCompanyName(reqVO.getPurchaseCompanyName()); + // ERP乙方公司编码 + contractMainDO.setErpSalesCompanyNumber(reqVO.getSalesCompanyNumber()); + // ERP乙方公司名称 + contractMainDO.setErpSalesCompanyName(reqVO.getSalesCompanyName()); // 合同状态保存为草稿 contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_DRAFT.getCode()); // 生成系统合同编号 @@ -731,28 +717,14 @@ public class ContractServiceImpl implements ContractService { // 请求更新的合同信息 ContractMainDO newContractMainDO = BeanUtils.toBean(reqVO, ContractMainDO.class); - // 校验ERP的公司 - if (StringUtils.isNotEmpty(reqVO.getPurchaseCompanyNumber()) - || StringUtils.isNotEmpty(reqVO.getSalesCompanyNumber())) { - if (StringUtils.isNotEmpty(reqVO.getPurchaseCompanyNumber())) { - ErpCompanyDO erpCompany = erpCompanyService.getErpCompanyByNumber(reqVO.getPurchaseCompanyNumber()); - if (erpCompany == null) { - throw exception(CONTRACT_ERP_COMPANY_PLEASE_BIND, ApiConstants.PURCHASE); - } else { - newContractMainDO.setErpPurchaseCompanyNumber(erpCompany.getNumber()); - newContractMainDO.setErpPurchaseCompanyName(erpCompany.getName()); - } - } - if (StringUtils.isNotEmpty(reqVO.getSalesCompanyNumber())) { - ErpCompanyDO erpCompany = erpCompanyService.getErpCompanyByNumber(reqVO.getSalesCompanyNumber()); - if (erpCompany == null) { - throw exception(CONTRACT_ERP_COMPANY_PLEASE_BIND, ApiConstants.SALES); - } else { - newContractMainDO.setErpSalesCompanyNumber(erpCompany.getNumber()); - newContractMainDO.setErpSalesCompanyName(erpCompany.getName()); - } - } - } + // ERP甲方公司编号 + newContractMainDO.setErpPurchaseCompanyNumber(reqVO.getPurchaseCompanyNumber()); + // ERP甲方公司名称 + newContractMainDO.setErpPurchaseCompanyName(reqVO.getPurchaseCompanyName()); + // ERP乙方公司编码 + newContractMainDO.setErpSalesCompanyNumber(reqVO.getSalesCompanyNumber()); + // ERP乙方公司名称 + newContractMainDO.setErpSalesCompanyName(reqVO.getSalesCompanyName()); // 删除关联信息 // 查询合同明细 @@ -1635,7 +1607,7 @@ public class ContractServiceImpl implements ContractService { operationId = "1"; } else { // 3、如果009接口返回值中“合同编号”字段不存在值,根据合同主键查询映射表中是否存在没有删除的数据,如果有,值为“1”,如果没有,值为“0” - ErpContractDO erpContract = erpContractService.getErpContractByMainId(contractMainDO.getId()); + ErpContractDO erpContract = erpContractService.getErpContractByPaperNumber(contractMainDO.getContractPaperNumber()); if (erpContract != null) { operationId = "1"; } else { @@ -1971,7 +1943,8 @@ public class ContractServiceImpl implements ContractService { * * @return 系统合同编号 */ - private String generateSystemContractNumber(String category) { + @Override + public String generateSystemContractNumber(String category) { // 单据名称(拼音) String documentName = "XTHT"; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java index 8ebb0121..8f95c9d5 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java @@ -555,6 +555,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } @Override + @Transactional(rollbackFor=Exception.class) public boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO) { PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseorderReqVO.getId()); if (ObjectUtils.isEmpty(purchaseOrderDO)) { @@ -570,9 +571,9 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData(); //如果审核通过 - if (BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(approvalDetail.getStatus())) { + if ("WAIT_PUSH".equals(purchaseorderReqVO.getStatus())) { purchaseOrderDO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode()); - } else if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(approvalDetail.getStatus())) { + } else { //如果审核不通过 purchaseOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode()); } @@ -582,7 +583,6 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { purchaseOrderDO.setTaskId(undoTask.getId()); } purchaseOrderMapper.updateById(purchaseOrderDO); //更新状态 - // 需要调用bpm 审核接口更新审批中的状态 if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(purchaseorderReqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) { if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) { @@ -599,7 +599,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { bpmProcessInstanceApi.rejectTask(btrrDto); } } - return false; + return true; } @Override diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java index f46abdd1..9348cdc4 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java @@ -328,9 +328,9 @@ public class SalesOrderServiceImpl implements SalesOrderService { badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData(); //如果审核通过 - if (BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(approvalDetail.getStatus())) { + if ("WAIT_PUSH".equals(salesOrderReviewReqVO.getStatus())) { salesOrderDO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode()); - } else if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(approvalDetail.getStatus())) { + } else { //如果审核不通过 salesOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode()); } @@ -357,7 +357,7 @@ public class SalesOrderServiceImpl implements SalesOrderService { bpmProcessInstanceApi.rejectTask(btrrDto); } } - return false; + return true; } @Override diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractService.java index dfd863ad..1da12148 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractService.java @@ -55,12 +55,12 @@ public interface ErpContractService { ErpContractDO getErpContract(Long id); /** - * 获得ERP合同映射通过合同主信息主键 + * 获得ERP合同映射通过合同编号 * - * @param contractMainId 合同主信息主键 + * @param paperNumber 合同编号 * @return ERP合同映射 */ - ErpContractDO getErpContractByMainId(Long contractMainId); + ErpContractDO getErpContractByPaperNumber(String paperNumber); /** * 获得ERP合同映射分页 diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java index 21f750c8..b3f15f8c 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpContractServiceImpl.java @@ -104,8 +104,8 @@ public class ErpContractServiceImpl implements ErpContractService { } @Override - public ErpContractDO getErpContractByMainId(Long contractMainId) { - return erpContractMapper.selectOne("CTRT_MAIN_ID", contractMainId); + public ErpContractDO getErpContractByPaperNumber(String paperNumber) { + return erpContractMapper.selectOne("CTRT_PPR_NUM", paperNumber); } @Override @@ -231,8 +231,8 @@ public class ErpContractServiceImpl implements ErpContractService { // 转换为DO ErpContractDO erpContract = BeanUtils.toBean(erpContractVO, ErpContractDO.class); - // 根据合同主信息ID查询合同映射 - ErpContractDO erpContractDO = getErpContractByMainId(erpContract.getContractMainId()); + // 根据合同编号查询合同映射 + ErpContractDO erpContractDO = getErpContractByPaperNumber(erpContract.getContractPaperNumber()); if (erpContractDO == null) { // 不存在映射表则新增 erpContract.setDeleted(false);