From 37c3a10b001141aef3d3e8e901a0b8606f08e357 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Fri, 17 Oct 2025 17:17:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=90=88=E5=90=8C=E6=97=B6?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=90=88=E5=90=8C=E7=8A=B6=E6=80=81=20?= =?UTF-8?q?=E5=90=88=E5=90=8C=E5=AE=A1=E6=A0=B8=E6=97=B6=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=20=E6=8F=90=E4=BA=A4erp=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/ErrorCodeConstants.java | 1 + .../enums/contract/DictEnum.java | 5 ++ .../admin/contract/ContractController.java | 2 +- .../service/contract/ContractService.java | 2 +- .../service/contract/ContractServiceImpl.java | 48 ++++++++++++------- 5 files changed, 38 insertions(+), 20 deletions(-) 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 ac8df7a..71ea501 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 @@ -25,4 +25,5 @@ public interface ErrorCodeConstants { ErrorCode CONTRACT_STATUS_NOT_DELETE = new ErrorCode(1_027_000_010, "{}状态合同不允许删除"); ErrorCode CONTRACT_ERP_RCV_DLVY_NOT_EXISTS = new ErrorCode(1_027_000_011, "不存在的收支类型或收支类型为空"); ErrorCode CONTRACT_STATUS_NOT_ARCHIVE = new ErrorCode(1_027_000_012, "{}状态合同不允许归档"); + ErrorCode CONTRACT_STATUS_NOT_SUBMIT_ERP = new ErrorCode(1_027_000_013, "{}状态合同不允许提交ERP"); } 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 d2aa970..7887456 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 @@ -5,6 +5,11 @@ package com.zt.plat.module.contractorder.enums.contract; */ public enum DictEnum { + /** ERP请求状态 */ + ERP_REQ_STS_RLBK("失败","RLBK",null), + ERP_REQ_STS_RCVG("执行中","RCVG",null), + ERP_REQ_STS_FIND("成功","FIND",null), + ERP_REQ_STS_WAIT("待上传","WAIT",null), /** 业务关联类型 */ BSE_SYS_REL_TP_ORDER("订单","ORDER",null), BSE_SYS_REL_TP_CONTRACT("合同","CONTRACT",null), 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..f862935 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,7 +145,7 @@ public class ContractController implements BusinessControllerMarker { @PostMapping("/submit/erp") @Operation(summary = "提交ERP") @PreAuthorize("@ss.hasPermission('base:contract:erp')") - public CommonResult> submitErp(@RequestBody List ids) { + public CommonResult submitErp(@RequestBody List ids) { return success(contractService.submitErp(ids)); } 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 d17780a..0aaa0b5 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 @@ -104,7 +104,7 @@ public interface ContractService { * @param ids 合同ID集合 * @return */ - List submitErp(List ids); + Boolean submitErp(List ids); /** * 删除合同 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 7451ddb..e3660fd 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 @@ -54,9 +54,7 @@ import org.springframework.transaction.annotation.Transactional; import java.io.ByteArrayOutputStream; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.LinkedHashSet; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -1001,6 +999,9 @@ public class ContractServiceImpl implements ContractService { // 删除品位不计价规则 contractNotMapper.delete(TableFieldConstants.BSE_CTRT_NT_CTRT_ID, id.toString()); + // 更新合同状态 + contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_DELETED.getCode()); + contractMainMapper.updateById(contractMainDO); // 删除合同数据 contractMainMapper.deleteById(id); @@ -1113,8 +1114,7 @@ public class ContractServiceImpl implements ContractService { } // 合同状态校验 - if (!(DictEnum.BSE_CTRT_STS_DRAFT.getCode().equals(contractMainDO.getStatus()) - || DictEnum.BSE_CTRT_STS_WAIT_AUDIT.getCode().equals(contractMainDO.getStatus()))) { + if (!DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode().equals(contractMainDO.getStatus())) { throw exception(CONTRACT_STATUS_NOT_APPROVAL, DictEnum.getByCode(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel()); @@ -1287,10 +1287,7 @@ public class ContractServiceImpl implements ContractService { } @Override - public List submitErp(List ids) { - - // 返回结果 - List result = new ArrayList<>(); + public Boolean submitErp(List ids) { // 遍历合同ID集合 ids.forEach(id -> { @@ -1300,24 +1297,39 @@ public class ContractServiceImpl implements ContractService { 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()))) { + + throw exception(CONTRACT_STATUS_NOT_SUBMIT_ERP, + DictEnum.getByCode(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel()); + } + // 生成ERP合同映射表 ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); // 调用ERP模块 - String erpResult = null; - try { - erpResult = erpContractService.submitErp(erpContractVO); - } catch (Exception e) { - erpResult = e.getMessage(); - } + Map erpResult = sendToErp(erpContractVO); log.info("合同提交ERP结果:{}", erpResult); - result.add(id.toString() + ":" + erpResult); } else { - result.add(id.toString() + ":" + CONTRACT_NOT_EXISTS); + throw exception(CONTRACT_NOT_EXISTS); } }); - return result; + return true; + } + + private Map sendToErp(ErpContractSaveReqVO erpContractVO) { + Map erpResult = new HashMap<>(); + try { + String result = erpContractService.submitErp(erpContractVO); + erpResult.put(true, result); + } catch (Exception e) { + erpResult.put(false, e.getMessage()); + } + + return erpResult; } @Override