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 ccdb7ec..c1f287a 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 @@ -1372,21 +1372,6 @@ public class ContractServiceImpl implements ContractService { return result; } - private JSONObject sendToErp(ErpContractSaveReqVO erpContractVO) { - JSONObject erpResult = new JSONObject(); - - HashMap result = erpContractService.submitErp(erpContractVO); - if ("E".equals(result.get("flag"))) { - erpResult.putOnce("success", false); - erpResult.putOnce("errMsg", result.get("resStr")+":"+result.get("E_RESP")); - } else { - erpResult.putOnce("success", true); - erpResult.putOnce("data", result); - } - - return erpResult; - } - @Override public Boolean relation(RelationReqVo reqVo) { SystemRelativityDO saveDO = new SystemRelativityDO(); @@ -1593,12 +1578,36 @@ public class ContractServiceImpl implements ContractService { return true; } - private ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) { + /** + * 合同映射数据提交到erp + * + * @param erpContractVO 合同映射数据 + * @return 提交结果 + */ + private JSONObject sendToErp(ErpContractSaveReqVO erpContractVO) { + JSONObject erpResult = new JSONObject(); + + HashMap result = erpContractService.submitErp(erpContractVO); + if ("E".equals(result.get("flag"))) { + erpResult.putOnce("success", false); + erpResult.putOnce("errMsg", result.get("resStr")+":"+result.get("E_RESP")); + } else { + erpResult.putOnce("success", true); + erpResult.putOnce("data", result); + } + + return erpResult; + } + + /** + * 通过009ERP接口查询合同信息,判定合同映射表操作标识 + * + * @param contractMainDO 合同主信息 + * @return 操作标识 + */ + private String getOperationId(ContractMainDO contractMainDO){ + String operationId = null; - ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO(); - // 合同主信息表主键:BSE_CTRT_MAIN - erpContractVO.setContractMainId(contractMainDO.getId()); - // 操作标识:OPTN_ID // 1、先调用009ERP接口查询合同信息 ErpContractPageReqVO pageReqVO = new ErpContractPageReqVO(); // BUKRS 合同签订主体公司代码 收支方向判断,如果为“支出”,传“ERP甲方公司编码”,反之传“ERP乙方公司编码” @@ -1617,19 +1626,38 @@ public class ContractServiceImpl implements ContractService { pageReqVO.setContractTypeNumber(contractMainDO.getContractPaperNumber()); // ZHTMC 合同名称 合同名称:CTRT_NAME pageReqVO.setContractName(contractMainDO.getContractName()); + + // 查询 PageResult erpContractPage = erpContractService.getErpContractPage(pageReqVO); if (erpContractPage.getTotal() > 0) { // 2、如果009接口返回值中“合同编号”字段存在值,并且与传入的相同,则OPTN_ID值为“1” - erpContractVO.setOperationId("1"); + operationId = "1"; } else { // 3、如果009接口返回值中“合同编号”字段不存在值,根据合同主键查询映射表中是否存在没有删除的数据,如果有,值为“1”,如果没有,值为“0” ErpContractDO erpContract = erpContractService.getErpContractByMainId(contractMainDO.getId()); if (erpContract != null) { - erpContractVO.setOperationId("1"); + operationId = "1"; } else { - erpContractVO.setOperationId("0"); + operationId = "0"; } } + + return operationId; + } + + /** + * 生成合同映射数据 + * + * @param contractMainDO 合同主信息 + * @return 合同映射信息 + */ + private ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) { + + ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO(); + // 合同主信息表主键:BSE_CTRT_MAIN + erpContractVO.setContractMainId(contractMainDO.getId()); + // 操作标识:OPTN_ID + erpContractVO.setOperationId(getOperationId(contractMainDO)); // 合同编号:CTRT_PPR_NUM erpContractVO.setContractPaperNumber(contractMainDO.getContractPaperNumber()); // 合同名称:CTRT_NAME