diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java index fef3ebe..41ba61e 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java @@ -145,8 +145,8 @@ public class ContractController implements BusinessControllerMarker { @PostMapping("/submit/erp") @Operation(summary = "提交ERP") @PreAuthorize("@ss.hasPermission('base:contract:erp')") - public CommonResult> submitErp(@RequestBody List ids) { - return success(contractService.submitErp(ids)); + public CommonResult submitErp(@RequestParam("id") Long id) { + return success(contractService.submitErp(id)); } @GetMapping("/list/up-not-relation") 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 6e44a5c..e5886a1 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 @@ -102,10 +102,10 @@ public interface ContractService { /** * 提交ERP * - * @param ids 合同ID集合 - * @return + * @param id 合同ID + * @return 提交结果 */ - List submitErp(List ids); + JSONObject submitErp(Long id); /** * 删除合同 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 b6a5b21..3457ebb 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 @@ -1317,55 +1317,52 @@ public class ContractServiceImpl implements ContractService { } @Override - public List submitErp(List ids) { + public JSONObject submitErp(Long id) { - List results = new ArrayList<>(); + JSONObject result = new JSONObject(); - // 遍历合同ID集合 - ids.forEach(id -> { + // 查询合同信息 + ContractMainDO contractMainDO = contractMainMapper.selectById(id); - // 查询合同信息 - ContractMainDO contractMainDO = contractMainMapper.selectById(id); + // 合同数据不存在 + if (contractMainDO == null) { + throw exception(CONTRACT_NOT_EXISTS); + } - if (contractMainDO != null) { + // 合同状态校验 + if (!(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(contractMainDO.getStatus()) + || DictEnum.BSE_CTRT_STS_VOID.getCode().equals(contractMainDO.getStatus()) + || DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus()))) { - // 合同状态校验 - if (!(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(contractMainDO.getStatus()) - || DictEnum.BSE_CTRT_STS_VOID.getCode().equals(contractMainDO.getStatus()) - || DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus()))) { + throw exception(CONTRACT_STATUS_NOT_SUBMIT_ERP, + DictEnum.getByCodeAndType(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel()); + } - throw exception(CONTRACT_STATUS_NOT_SUBMIT_ERP, - DictEnum.getByCodeAndType(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel()); - } + // 生成ERP合同映射表 + ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); - // 生成ERP合同映射表 - ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); + // 调用ERP模块 + JSONObject erpResult = sendToErp(erpContractVO); + log.info("合同提交ERP结果:{}", erpResult); + result.putOnce("success", erpResult.getBool("success")); - // 调用ERP模块 - JSONObject erpResult = sendToErp(erpContractVO); - log.info("合同提交ERP结果:{}", erpResult); - String result = id - +"-"+erpResult.getBool("success") - +(erpResult.getBool("success") ? "" : "-" + erpResult.getStr("errMsg")); - results.add(result); + // 更新合同状态 + if (erpResult.getBool("success")) { + contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); + contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_FIND.getCode()); + contractMainMapper.updateById(contractMainDO); - // 更新合同状态 - if (erpResult.getBool("success")) { - contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); - contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_FIND.getCode()); - contractMainMapper.updateById(contractMainDO); - } else { - contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_PUSH_ERROR.getCode()); - contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_RLBK.getCode()); - contractMainDO.setCause(erpResult.getStr("errMsg")); - contractMainMapper.updateById(contractMainDO); - } - } else { - results.add(id+"-"+"false"+"-"+CONTRACT_NOT_EXISTS); - } - }); + result.putOnce("data", erpResult.getStr("data")); + } else { + contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_PUSH_ERROR.getCode()); + contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_RLBK.getCode()); + contractMainDO.setCause(erpResult.getStr("errMsg")); + contractMainMapper.updateById(contractMainDO); - return results; + result.putOnce("data", erpResult.getStr("errMsg")); + } + + return result; } private JSONObject sendToErp(ErpContractSaveReqVO erpContractVO) { @@ -1554,10 +1551,10 @@ public class ContractServiceImpl implements ContractService { // 更新合同 contractMainMapper.updateById(contractMainDO); - }); - // 重新提交erp - submitErp(ids); + // 重新提交erp + submitErp(id); + }); return true; } @@ -1585,10 +1582,10 @@ public class ContractServiceImpl implements ContractService { // 更新合同 contractMainMapper.updateById(contractMainDO); - }); - // 重新提交erp - submitErp(ids); + // 重新提交erp + submitErp(id); + }); return true; }