From ea02e5af4e5ac3d051dba1a12fb895d9abeb3b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Sun, 25 Jan 2026 16:57:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=A5=E6=96=99=E5=8A=A0=E5=B7=A5=E8=AE=A2?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchaseorder/ErrorCodeConstants.java | 1 + .../EntrustOrderOrderController.java | 2 + .../service/contract/ContractServiceImpl.java | 16 ++- .../PurchaseOrderServiceImpl.java | 106 +++++++++++++----- .../salesorder/SalesOrderServiceImpl.java | 38 ++++++- .../admin/erp/vo/ErpOrderSaveReqVO.java | 5 +- .../erp/service/erp/ErpOrderServiceImpl.java | 23 ++-- .../zt/plat/module/erp/utils/ErpConfig.java | 2 +- 8 files changed, 142 insertions(+), 51 deletions(-) diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java index de4b96dc..4e25805f 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java @@ -18,4 +18,5 @@ public interface ErrorCodeConstants { ErrorCode Sales_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_030, "销售订单不存在"); ErrorCode Sales_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_040, "销售订单明细不存在"); ErrorCode ORDER_DONT_SUBMIT = new ErrorCode(1_008_000_050, "该订单不支持审批"); + ErrorCode MTRL_CODE_NOT_EXISTS = new ErrorCode(1_008_000_150, "中铜物料不存在"); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java index ce5d2255..ae374398 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/entrustorder/EntrustOrderOrderController.java @@ -155,5 +155,7 @@ public class EntrustOrderOrderController implements BusinessControllerMarker { entrustOrderOrderService.closeOrder(ids); return success(true); } + //委托加工订单提交erp + } \ 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 857ec50c..0c24843e 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 @@ -61,9 +61,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; @@ -1569,8 +1567,8 @@ public class ContractServiceImpl implements ContractService { } // 生成ERP合同映射表 - // ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); TODO ERP暂时返回成功 - ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO(); + ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); //TODO ERP暂时返回成功 + //ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO(); // 调用ERP模块 JSONObject erpResult = sendToErp(erpContractVO); @@ -1818,16 +1816,16 @@ public class ContractServiceImpl implements ContractService { JSONObject erpResult = new JSONObject(); // TODO 暂时返回成功 - erpResult.putOnce("success", true); - erpResult.putOnce("data", "success"); - /*HashMap result = erpContractService.submitErp(erpContractVO); +// erpResult.putOnce("success", true); +// erpResult.putOnce("data", "success"); + Map 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; } 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 be6bc10f..e686be0b 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 @@ -5,10 +5,15 @@ import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.zt.plat.framework.common.exception.ErrorCode; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; +import com.zt.plat.module.base.api.materialinfomation.MaterialInfomationApi; +import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO; +import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationRespDTO; +import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationSimplePageReqDTO; import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi; import com.zt.plat.module.bpm.api.task.BpmTaskApi; import com.zt.plat.module.bpm.api.task.dto.*; @@ -30,6 +35,7 @@ import com.zt.plat.module.contractorder.util.constants.ProcessDefinitionKeyConst import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderUpdateReqVO; import com.zt.plat.module.erp.service.erp.ErpOrderService; +import com.zt.plat.module.erp.service.erp.WarehouseFactoryService; import com.zt.plat.module.system.api.sequence.SequenceApi; import com.zt.plat.module.system.api.user.AdminUserApi; import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; @@ -61,7 +67,8 @@ import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeCons public class PurchaseOrderServiceImpl implements PurchaseOrderService { @Resource private ErpOrderService erpOrderService; - + @Resource + private MaterialInfomationApi materialInfomationApi; @Resource private PurchaseOrderMapper purchaseOrderMapper; @Resource @@ -86,7 +93,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { @Resource private SystemRelativityMapper systemRelativityMapper; - + @Resource + private WarehouseFactoryService warehouseFactoryService; @Override @Transactional(rollbackFor = Exception.class) public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) { @@ -282,15 +290,32 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { JSONArray jsonArray = JSONArray.from(actsCtgrDtlList); erpOrderSaveReqVO.setAccts(jsonArray); // 3. 处理行项目信息(Item) - List details = purchaseOrderWithDetailsVO.getOrderDetails(); + List details = prchOrdDtlMapper.selectList(PrchOrdDtlDO::getOrdId,order.getId()); if (details != null && !details.isEmpty()) { List items = new ArrayList<>(); + List itexes=new ArrayList<>(); for (PrchOrdDtlDO detail : details) { ErpOrderSaveReqVO.Item item = new ErpOrderSaveReqVO.Item(); + MaterialInfomationPageReqDTO infomationPageReqDTO=new MaterialInfomationPageReqDTO(); + infomationPageReqDTO.setPageSize(10000); + infomationPageReqDTO.setCode(detail.getMtrlNum()); + CommonResult> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(infomationPageReqDTO); + if (materialInfomationPage.getData()==null || materialInfomationPage.getData().getList().isEmpty()){ + throw exception(MTRL_CODE_NOT_EXISTS); + + } + MaterialInfomationRespDTO materialInfomationRespDTO = materialInfomationPage.getData().getList().get(0); + Map flatAttributes = materialInfomationRespDTO.getFlatAttributes(); + //获取中铜物料编码 + String mtrlZhongtongCode = flatAttributes.getOrDefault("mtrlZhongtongCode", "").toString(); + if (mtrlZhongtongCode.isEmpty()){ + throw exception(MTRL_CODE_NOT_EXISTS); + } + //查询库位绑定编码 // 3.1 行项目基本信息 item.setPo_item(detail.getLineNum() != null ? detail.getLineNum().intValue() : null); // 行项目 -> 行号 - item.setMaterial(detail.getMtrlNum()); // 物料编码 -> 物料号 + item.setMaterial(mtrlZhongtongCode); // 物料编码 -> 物料号 item.setPlant(detail.getRcvFactNum()); // 收货工厂编码 -> 工厂 item.setStge_loc(detail.getRcvWrhNum()); // 收货库位编码 -> 库存地点 item.setQuantity(detail.getQty()); // 暂估数量 -> 数量 @@ -309,7 +334,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { item.setVendrbatch(String.valueOf(detail.getOutLineNum())); // 外部行项目号 -> 外部行项目号 item.setNote_xq(detail.getRmkUnt()); // 备注信息-需求单位 -> 备注信息-需求单位 item.setNote_wl(detail.getRmkMtrl()); // 备注信息-物料详细 -> 备注信息-物料详细 - + item.setGr_basediv("1");//TODO GR发票校验 // 处理交货起止日期(格式:YYYYMMDD-YYYYMMDD) StringBuilder vendMat = new StringBuilder(); if (detail.getBgnDt() != null) { @@ -320,14 +345,13 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { vendMat.append(detail.getDdlDt().format(DateTimeFormatter.ofPattern("yyyyMMdd"))); } item.setVend_mat(vendMat.toString()); - // 3.2 行项目扩展信息(Itex) ErpOrderSaveReqVO.Itex itex = new ErpOrderSaveReqVO.Itex(); itex.setZmatnr(detail.getSaleMtrlNum()); // 销售物料号 -> 销售物料号 itex.setZaufnr(detail.getInOrd()); // 统计型内部订单 -> 统计型内部订单 itex.setZpurty(detail.getPrchCtgr()); // 采购类别 -> 采购类别 itex.setZmenge(detail.getOrigWet()); // 原料湿重 -> 原料湿重 - item.setItex(itex); + itexes.add(itex); // 3.4 委托加工物料信息(Comp) - 简化处理,实际需解析JSON // List comps = new ArrayList<>(); @@ -344,33 +368,57 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { items.add(item); } erpOrderSaveReqVO.setItems(items); + erpOrderSaveReqVO.setItex(itexes); } + //todo 4. 推送ERP并处理返回结果 - // String result = erpOrderService.submitOrderToErp061(erpOrderSaveReqVO); - log.info("订单推送成功,订单id【{}】", order.getId()); - String result="3333"; - // 解析ERP返回的ID - JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(Map.of("id",R()))); - String erpId = jsonObject.getString("id"); - if (result != null) { //todo 需要改为真实返回的数据 - JSONObject job = JSONObject.parseObject(JSONObject.toJSONString(Map.of("salesdocument",R()))); - String id = job.containsKey("id")?jsonObject.getString("id"):null; - if (id != null) { - PurchaseOrderDO upVo = new PurchaseOrderDO(); - upVo.setId(purchaseOrderWithDetailsVO.getPurchaseOrder().getId()); - upVo.setOrderSAPNumber(id); - upVo.setErpStatus(OrderStatusEnum.FIND.getCode()); - purchaseOrderMapper.updateById(upVo); - }else { - PurchaseOrderDO upVo = new PurchaseOrderDO(); - upVo.setId(purchaseOrderWithDetailsVO.getPurchaseOrder().getId()); - upVo.setOrderSAPNumber(id); - upVo.setErpStatus(OrderStatusEnum.RLBK.getCode()); - upVo.setCause("ERP返回结果为空");//TODO 这里先写死 - purchaseOrderMapper.updateById(upVo); + + String result = erpOrderService.submitOrderToErp061(erpOrderSaveReqVO); + Long localOrderId = purchaseOrderWithDetailsVO.getPurchaseOrder().getId(); + log.info("订单推送ERP请求完成,本地订单ID【{}】,ERP返回原始结果【{}】", localOrderId, result); + + // 初始化更新对象,设置基础订单ID + PurchaseOrderDO upVo = new PurchaseOrderDO(); + upVo.setId(localOrderId); + String erpId = null; // ERP订单号(PO_NUMBER) + try { + if (StringUtils.isNotBlank(result)) { + // 解析顶层JSON对象(原代码冗余解析问题修复) + JSONObject rootJson = JSONObject.parseObject(result); + String eResp = rootJson.getString("E_RESP"); + if (StringUtils.isNotBlank(eResp)) { + // 解析E_RESP为JSON对象,获取PO_NUMBER + JSONObject eRespJson = JSONObject.parseObject(eResp); + erpId = eRespJson.getString("PO_NUMBER"); + } } + // 3. 根据ERP订单号是否有效,设置本地订单更新属性 + if (StringUtils.isNotBlank(erpId)) { + // ERP返回有效订单号,更新为成功状态 + upVo.setOrderSAPNumber(erpId); + upVo.setErpStatus(OrderStatusEnum.FIND.getCode()); // 推送成功状态 + log.info("订单推送ERP成功,本地订单ID【{}】,ERP订单号【{}】,已更新本地状态", localOrderId, erpId); + } else { + upVo.setOrderSAPNumber(null); + upVo.setErpStatus(OrderStatusEnum.RLBK.getCode()); + String failCause = StringUtils.isBlank(result) ? "ERP接口返回结果为空/纯空白" + : StringUtils.isBlank(JSONObject.parseObject(result).getString("E_RESP")) ? "ERP返回E_RESP字段为空/纯空白" + : "ERP返回E_RESP中未包含有效PO_NUMBER订单号"; + upVo.setCause(failCause); + log.warn("订单推送ERP失败,本地订单ID【{}】,失败原因【{}】", localOrderId, failCause); + } + + purchaseOrderMapper.updateById(upVo); + + }catch (Exception e) { + upVo.setOrderSAPNumber(null); + upVo.setErpStatus(OrderStatusEnum.RLBK.getCode()); // 异常时强制置为失败状态 + upVo.setCause("ERP返回结果解析/处理异常:" + e.getMessage()); + // 异常时仍需更新数据库,保证订单状态一致性 + purchaseOrderMapper.updateById(upVo); + log.error("订单推送ERP发生异常,本地订单ID【{}】,异常信息如下", localOrderId, e); } }); return "ERP推送成功"; 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 3971c4f6..d27a8bed 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 @@ -10,6 +10,9 @@ import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; +import com.zt.plat.module.base.api.materialinfomation.MaterialInfomationApi; +import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO; +import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationRespDTO; import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi; import com.zt.plat.module.bpm.api.task.BpmTaskApi; import com.zt.plat.module.bpm.api.task.dto.*; @@ -81,6 +84,8 @@ public class SalesOrderServiceImpl implements SalesOrderService { @Resource private ContractService contractService; + @Resource + private MaterialInfomationApi materialInfomationApi; @@ -192,18 +197,46 @@ public class SalesOrderServiceImpl implements SalesOrderService { head.setDivision(salesOrderDO.getPdtGrpCdg());// 产品组 head.setReq_date_h(salesOrderDO.getVoucherDate()); // 交货日期 head.setSales_grp(salesOrderDO.getPurchaseGroup()); // 销售组 + // head.setSales_off(salesOrderDO.getSaleOrgzName()); // 销售办事处 + head.setCust_grp1("10"); // 客户组 + head.setPurch_no_c(salesOrderDO.getContractNumber()); + head.setName(salesOrderDO.getContractName()); + // head.setRef_1(); + // head.setPurch_date(); + // head.setOrd_reason(); + head.setCurrency(salesOrderDO.getCurrencyNumber()); // 货币码 + // head.setTaxclass(1); erpSalesOrderSaveReqVO.setHead(head); // 销售订单明细 List items = new ArrayList<>(); for (SalesOrderDetailRespVO salesOrderDetailRespVO : salesOrderDetailByOrderId) { + MaterialInfomationPageReqDTO infomationPageReqDTO=new MaterialInfomationPageReqDTO(); + infomationPageReqDTO.setPageSize(10000); + infomationPageReqDTO.setCode(salesOrderDetailRespVO.getMaterialNumber()); + CommonResult> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(infomationPageReqDTO); + if (materialInfomationPage.getData()==null || materialInfomationPage.getData().getList().isEmpty()){ + throw exception(MTRL_CODE_NOT_EXISTS); + + } + MaterialInfomationRespDTO materialInfomationRespDTO = materialInfomationPage.getData().getList().get(0); + Map flatAttributes = materialInfomationRespDTO.getFlatAttributes(); + //获取中铜物料编码 + String mtrlZhongtongCode = flatAttributes.getOrDefault("mtrlZhongtongCode", "").toString(); + if (mtrlZhongtongCode.isEmpty()){ + throw exception(MTRL_CODE_NOT_EXISTS); + } ErpSalesOrderSaveReqVO.Item item = new ErpSalesOrderSaveReqVO.Item(); item.setItem_categ(String.valueOf(salesOrderDetailRespVO.getLineNumber())); - item.setMaterial(salesOrderDetailRespVO.getMaterialNumber()); + item.setMaterial(mtrlZhongtongCode); item.setPlant(salesOrderDetailRespVO.getFactoryNumber()); item.setStore_loc(salesOrderDetailRespVO.getShippingPlace()); item.setSales_unit(salesOrderDetailRespVO.getUnit()); item.setDlvschduse(salesOrderDetailRespVO.getInvoiceType()); item.setTarget_qty(salesOrderDetailRespVO.getQuantity()); + item.setItm_number(Math.toIntExact(salesOrderDetailRespVO.getLineNumber())); + item.setItem_categ(salesOrderDetailRespVO.getProjectCategory()); + item.setShip_point(salesOrderDetailRespVO.getShippingPlace()); // 装运地点 + item.setAcct_assgt(salesOrderDetailRespVO.getMetalAcctasscatGroup());//todo 物料科目分配组 items.add(item); } erpSalesOrderSaveReqVO.setItems(items); @@ -235,8 +268,7 @@ public class SalesOrderServiceImpl implements SalesOrderService { } }); erpSalesOrderSaveReqVO.setConds(conds); - // String result = erpOrderService.submitOrderToErp091(erpSalesOrderSaveReqVO); - String result="3333"; + String result = erpOrderService.submitOrderToErp091(erpSalesOrderSaveReqVO); if (result != null) { JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(Map.of("salesdocument",R()))); String salesdocument = jsonObject.containsKey("salesdocument")?jsonObject.getString("salesdocument"):null; diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpOrderSaveReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpOrderSaveReqVO.java index 5a6ecc9a..4934e792 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpOrderSaveReqVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/ErpOrderSaveReqVO.java @@ -35,6 +35,9 @@ public class ErpOrderSaveReqVO { @NotEmpty(message = "采购订单行项目列表不能为空") private List items; + @Valid + private List itex; // 行项目扩展信息 + private JSONArray accts; // 科目分配信息(科目分配类别为K或P时使用) @Valid private List comps; // 委托加工物料信息(委托加工订单时使用) @@ -165,8 +168,6 @@ public class ErpOrderSaveReqVO { @Schema(description = "交货起止日期(格式:YYYYMMDD-YYYYMMDD)") private String vend_mat; // IDNLF CHAR22 - @Valid - private Itex itex; // 行项目扩展信息 } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpOrderServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpOrderServiceImpl.java index a16b02cb..bd5984e8 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpOrderServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpOrderServiceImpl.java @@ -1,6 +1,8 @@ package com.zt.plat.module.erp.service.erp; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.module.erp.api.ErpExternalApi; import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO; @@ -33,23 +35,26 @@ public class ErpOrderServiceImpl implements ErpOrderService { req.put("exte", createVo.getExte()); req.put("acct", createVo.getAccts()); reqDTO.setReq(req); - return submitToErp(reqDTO); } private ErpSubmitReqDTO buildBaseReqDTO(ErpOrderSaveReqVO vo, String funcnr) { ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO(); +// reqDTO.setFuncnr(funcnr); +// reqDTO.setBskey(vo.getOrderNo()); +// reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); +// reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname())); reqDTO.setFuncnr(funcnr); reqDTO.setBskey(vo.getOrderNo()); - reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); - reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname())); + reqDTO.setUsrid("100048799"); + reqDTO.setUsrnm("夏丽丽"); return reqDTO; } private String submitToErp(ErpSubmitReqDTO reqDTO) { Map response = erpExternalApi.submitDataToErp(reqDTO); - return response.get("resStr"); + return JSONObject.toJSONString(response); } @@ -86,10 +91,11 @@ public class ErpOrderServiceImpl implements ErpOrderService { Map req = new HashMap<>(); req.put("head", createVo.getHead()); req.put("item", createVo.getItems()); - req.put("conds", createVo.getConds()); + req.put("conds", JSONArray.parseArray(createVo.getConds().toString())); req.put("partn_es", createVo.getPartn_es()); req.put("partn_numb", createVo.getPartn_numb()); reqDTO.setReq(req); + String reqJson = com.alibaba.fastjson2.JSON.toJSONString(reqDTO); return submitToErp(reqDTO); } @@ -107,8 +113,11 @@ public class ErpOrderServiceImpl implements ErpOrderService { ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO(); reqDTO.setFuncnr(funcnr); reqDTO.setBskey(vo.getOrderNo()); - reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); - reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname())); + reqDTO.setUsrid("100048799"); + reqDTO.setUsrnm("夏丽丽"); +// reqDTO.setBskey(vo.getOrderNo()); +// reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); +// reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname())); return reqDTO; } } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java index 63224e52..9e5b4565 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/utils/ErpConfig.java @@ -82,7 +82,7 @@ public class ErpConfig { if (succeed && "S".equals(dataObject.getString("E_FLAG"))) { String flag = "S"; JSONArray E_RESP = dataObject.containsKey("E_DATA") ? dataObject.getJSONArray("E_DATA") : null; - String E_MSG = dataObject.containsKey("E_MSG") ? dataObject.getString("E_MSG") : null; + String E_MSG = dataObject.containsKey("E_MSG") ? dataObject.getString("E_MSG") : ""; resMap.put("E_RESP", E_RESP); resMap.put("resStr", E_MSG); resMap.put("flag", flag);