From d580e2878b61fba18e7217238510e6dcad908c7b 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: Fri, 6 Feb 2026 17:59:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salesorder/SalesOrderController.java | 4 +- .../entrustorder/EntrustOrderDetailDO.java | 2 +- .../EntrustOrderOrderServiceImplImpl.java | 33 +++++-- .../SalesOrderDetailServiceImpl.java | 85 ++++++++++++------- .../salesorder/SalesOrderServiceImpl.java | 7 ++ .../admin/erp/vo/ErpOrderSaveReqVO.java | 3 + .../admin/erp/vo/MaterialInfomationApiVO.java | 4 +- .../erp/ErpErpMaterialCorrServiceImpl.java | 18 ++-- .../service/erp/ErpMaterialServiceImpl.java | 36 +++----- 9 files changed, 122 insertions(+), 70 deletions(-) diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java index 3f1b8468..bb1fb929 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java @@ -212,7 +212,7 @@ public class SalesOrderController implements BusinessControllerMarker { //feign测试 @GetMapping("/get-sales-order-details-by-order-id") - public CommonResult getSalesOrderDetailsByOrderId(@RequestParam("orderId") Long orderId) { - return success(orderApi.getSalesOrderDetailsById(orderId)); + public CommonResult getSalesOrderDetailsByOrderId(@RequestParam("orderId") String orderId) { + return success(orderApi.getOrderByOrderNos(List.of(orderId.toString()))); } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java index e0a2ba5f..cce9e98b 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/entrustorder/EntrustOrderDetailDO.java @@ -135,7 +135,7 @@ public class EntrustOrderDetailDO extends BusinessBaseDO { * 是否启用 */ @TableField("IS_ENB") - private Boolean isEnable; + private String isEnable; /** * 短文本 */ diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java index c94fe27a..73c39b45 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/entrustorder/EntrustOrderOrderServiceImplImpl.java @@ -37,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; import com.zt.plat.framework.common.pojo.PageResult; @@ -275,8 +276,11 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic } log.info("提交订单到ERP:【{}】,订单明细信息:【{}】", id, entrustOrderDetailListByOrderId); ErpOrderSaveReqVO erpOrderSaveReqVO = new ErpOrderSaveReqVO(); + //构建请求数据 buildErp061Data(erpOrderSaveReqVO, entrustOrderOrderDO, entrustOrderDetailListByOrderId); + + Long localOrderId = entrustOrderOrderDO.getId(); String result = erpOrderService.submitOrderToErp061(erpOrderSaveReqVO); log.info("提交订单到ERP:【{}】,结果:【{}】", id, result); @@ -285,7 +289,7 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic String erpId = null; // ERP订单号(PO_NUMBER) try { if (StringUtils.isNotBlank(result)) { - // 解析顶层JSON对象(原代码冗余解析问题修复) + // 解析顶层JSON对象 JSONObject rootJson = JSONObject.parseObject(result); String eResp = rootJson.getString("E_RESP"); if (StringUtils.isNotBlank(eResp)) { @@ -358,7 +362,7 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic index.getAndSet(index.get() + 1); ErpOrderUpdateReqVO.item item = new ErpOrderUpdateReqVO.item(); // item item.setPo_item(Long.valueOf(detail.getLineNumber()));//行号 - item.setMaterial(getMtrlZhongtongCode(detail.getSendMaterialNumber()));//物料号 + item.setMaterial(completePrefix(getMtrlZhongtongCode(detail.getSendMaterialNumber())));//物料号 item.setPlant(detail.getReceiveFactoryNumber());//工厂 item.setStge_loc(detail.getReceiveWarehouseNumber());//库位 item.setQuantity(String.valueOf(detail.getForecastQuantity()));// 数量 @@ -375,7 +379,7 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic comp.setPo_item(Long.valueOf(detail.getLineNumber())); comp.setSched_line(index.get()); // 计划行号 -> 计划行号(保持一致) comp.setItem_no(index.get()); // 项目编号 -> 项目编号 - comp.setMaterial(getMtrlZhongtongCode(detail.getSendMaterialNumber())); // 物料号 -> 物料号 + comp.setMaterial(completePrefix(getMtrlZhongtongCode(detail.getSendMaterialNumber()))); // 物料号 -> 物料号 comp.setPlant(detail.getReceiveFactoryNumber()); // 收货工厂 -> 收货工厂 comp.setEntry_quantity(detail.getForecastQuantity()); // 委托加工需求数量 -> 委托加工需求数量 comp.setEntry_uom(detail.getSendUnit()); // 组件计量单位 -> 组件计量单位 @@ -393,7 +397,7 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic // 1. 处理抬头信息(Head) ErpOrderSaveReqVO.Head head = new ErpOrderSaveReqVO.Head(); - head.setComp_code(order.getCpName()); // 公司编码 -> 公司代码 + head.setComp_code(order.getCpNum()); // 公司编码 -> 公司代码 head.setVendor(order.getSupplierNumber()); // 客商编码 -> 供应商帐号 head.setDoc_type(order.getType()); // 订单类型 -> 采购凭证类型 head.setDoc_date(order.getVoucherDate() != null ? order.getVoucherDate().format(DateTimeFormatter.ofPattern("yyyyMMdd")) : null); // 凭证日期 -> 采购凭证日期 @@ -413,10 +417,13 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic //item List items = new ArrayList<>(); List itexes = new ArrayList<>(); + List comps = new ArrayList<>(); + AtomicInteger index = new AtomicInteger(); entrustOrderDetailList.forEach(detail -> { + index.getAndIncrement(); ErpOrderSaveReqVO.Item item = new ErpOrderSaveReqVO.Item(); item.setPo_item(detail.getLineNumber() != null ? detail.getLineNumber() : null); // 行项目 -> 行号 - item.setMaterial(getMtrlZhongtongCode(detail.getSendMaterialNumber())); // 物料编码 -> 物料号 + item.setMaterial(completePrefix(getMtrlZhongtongCode(detail.getSendMaterialNumber()))); // 物料编码 -> 物料号 item.setPlant(detail.getReceiveFactoryNumber()); // 收货工厂编码 -> 工厂 item.setStge_loc(detail.getReceiveWarehouseNumber()); // 收货库位编码 -> 库存地点 item.setQuantity(detail.getForecastQuantity()); // 暂估数量 -> 数量 @@ -436,7 +443,6 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic //item.setVendrbatch(String.valueOf(detail.getExternalLineNumber())); // 外部行项目号 -> 外部行项目号 // item.setNote_xq(detail.getRemark()); // 备注信息-需求单位 -> 备注信息-需求单位 // item.setNote_wl(detail.getRmkMtrl()); // 备注信息-物料详细 -> 备注信息-物料详细 - item.setGr_basediv("1");//TODO GR发票校验 // 处理交货起止日期(格式:YYYYMMDD-YYYYMMDD) StringBuilder vendMat = new StringBuilder(); if (detail.getDeliveryCargoBeginDate() != null) { @@ -460,15 +466,18 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic // 列表-comp ErpOrderSaveReqVO.Comp comp = new ErpOrderSaveReqVO.Comp(); - comp.setSched_line(detail.getLineNumber() != null ? detail.getLineNumber() : null); // 计划行号 -> 计划行号 - comp.setItem_no(detail.getLineNumber() != null ? detail.getLineNumber() : null); // 项目编号 -> 项目编号 - comp.setMaterial(getMtrlZhongtongCode(detail.getSendMaterialNumber())); // 物料号 -> 物料号 + comp.setPo_item(detail.getLineNumber()); +// comp.setSched_line(index.get()); // 计划行号 -> 计划行号 +// comp.setItem_no(index.get()); // 项目编号 -> 项目编号 + comp.setMaterial(completePrefix(getMtrlZhongtongCode(detail.getSendMaterialNumber()))); // 物料号 -> 物料号 comp.setPlant(detail.getReceiveFactoryNumber()); // 收货工厂 -> 收货工厂 comp.setEntry_quantity(detail.getForecastQuantity()); // 委托加工需求数量 -> 委托加工需求数量 comp.setEntry_uom(detail.getSendUnit()); // 组件计量单位 -> 组件计量单位 + comps.add(comp); }); erpOrderSaveReqVO.setItems(items); erpOrderSaveReqVO.setItex(itexes); + erpOrderSaveReqVO.setComps(comps); //列表-acct不需要委托订单不需要填写 } @@ -490,5 +499,11 @@ public class EntrustOrderOrderServiceImplImpl implements EntrustOrderOrderServic } return mtrlZhongtongCode; } + private String completePrefix(String str) { + String target = str == null ? "" : str; + if (target.length() >= 18) return target; + String temp = "000000000000000000" + target; + return temp.substring(temp.length() - 18); + } } \ 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/salesorder/SalesOrderDetailServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java index ebbb293d..885f466c 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java @@ -93,27 +93,55 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService { @Override @Transactional(rollbackFor = Exception.class) public List createSalesOrderDetail(List createReqVOS) { - List salesOrderDetailDOS = BeanUtils.toBean(createReqVOS, SalesOrderDetailDO.class); + // 1. VO转DO,同时修复orderId赋值:通过索引一一对应,避免覆盖 + List salesOrderDetailDOS = new ArrayList<>(); + for (SalesOrderDetailSaveReqVO reqVO : createReqVOS) { + SalesOrderDetailDO detailDO = BeanUtils.toBean(reqVO, SalesOrderDetailDO.class); + // 一一对应设置orderId,从当前VO获取,避免循环覆盖 + detailDO.setOrderId(Long.valueOf(reqVO.getOrderId())); + salesOrderDetailDOS.add(detailDO); + } + + // 2. 处理每个明细的物料信息+价格条件(扁平化+标准JSON) salesOrderDetailDOS.forEach(salesOrderDetail -> { // 设置物料信息 setElemInfo(salesOrderDetail); - createReqVOS.forEach(createReqVO -> salesOrderDetail.setOrderId(Long.valueOf(createReqVO.getOrderId()))); - List jsonArrays = JSONArray.parseArray(salesOrderDetail.getPriceConditionDetail(), JSONArray.class); + String priceConditionDetail = salesOrderDetail.getPriceConditionDetail(); + // 空值校验,避免空指针 + if (priceConditionDetail == null || priceConditionDetail.isEmpty()) { + return; + } + + // 定义一维集合,收集扁平化后的JSON对象(直接存对象,而非字符串) + List flatJsonList = new ArrayList<>(); + // 解析原嵌套JSON数组 + List jsonArrays = JSONArray.parseArray(priceConditionDetail, JSONArray.class); for (JSONArray jsonArray : jsonArrays) { + if (jsonArray == null || jsonArray.isEmpty()) { + continue; + } for (int i = 0; i < jsonArray.size(); i++) { - // 解析单个JSON字符串为JSONObject - JSONObject jsonObject = JSONObject.parseObject(jsonArray.getString(i)); - // 添加updateflag字段 + String originalJsonStr = jsonArray.getString(i); + if (originalJsonStr == null || originalJsonStr.isEmpty()) { + continue; + } + JSONObject jsonObject = JSONObject.parseObject(originalJsonStr); + // 添加flag为U jsonObject.put("flag", ErpConstants.SALES_DOCUMENT_REQUEST_FLAG_U); - // 将处理后的JSON对象转为字符串并加入strList - String processedJson = jsonObject.toString(); log.info(jsonObject.toString()); + // 收集处理后的JSON对象 + flatJsonList.add(jsonObject); } } - salesOrderDetail.setPriceConditionDetail(jsonArrays.toString()); + + // 核心修复:将一维JSON对象集合转为【标准JSON一维数组字符串】 + JSONArray standardJsonArray = new JSONArray(flatJsonList); + salesOrderDetail.setPriceConditionDetail(standardJsonArray.toJSONString()); }); + // 3. 批量插入 salesOrderDetailMapper.insertBatch(salesOrderDetailDOS); + // 4. DO转VO返回 return BeanUtils.toBean(salesOrderDetailDOS, SalesOrderDetailRespVO.class); } @@ -139,47 +167,46 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService { return; } - // 2. 解析外层JSON数组(原逻辑是List,符合嵌套数组结构) + // 2. 解析外层JSON数组(原嵌套数组) List outerJsonArrays = JSONArray.parseArray(priceConditionDetail, JSONArray.class); if (item.getId() != null && !outerJsonArrays.isEmpty()) { - // 遍历外层数组 - for (int outerIdx = 0; outerIdx < outerJsonArrays.size(); outerIdx++) { - JSONArray innerJsonArray = outerJsonArrays.get(outerIdx); + // 核心修改:定义一维集合,收集所有扁平后的元素 + List flatProcessedElements = new ArrayList<>(); + + // 遍历外层数组,扁平化所有内层元素 + for (JSONArray innerJsonArray : outerJsonArrays) { if (innerJsonArray == null || innerJsonArray.isEmpty()) { continue; } - - // 3. 处理内层数组元素:过滤D,修改I为U - List processedElements = new ArrayList<>(); + // 遍历当前内层数组的每个元素,做flag处理 for (int innerIdx = 0; innerIdx < innerJsonArray.size(); innerIdx++) { String originalJsonStr = innerJsonArray.getString(innerIdx); - // 空JSON字符串校验 if (originalJsonStr == null || originalJsonStr.isEmpty()) { continue; } JSONObject jsonObject = JSONObject.parseObject(originalJsonStr); String flag = jsonObject.getString("flag"); - // 根据flag处理:D删除,I改U,其他保留(若有) + // 根据flag处理:D删除,I改U,其他保留 if (ErpConstants.SALES_DOCUMENT_REQUEST_FLAG_D.equals(flag)) { - // flag为D,跳过(即删除该元素) - continue; + continue; // D直接跳过(删除) } else if (ErpConstants.SALES_DOCUMENT_REQUEST_FLAG_I.equals(flag)) { - // flag为I,修改为U jsonObject.put("flag", ErpConstants.SALES_DOCUMENT_REQUEST_FLAG_U); - processedElements.add(jsonObject); + flatProcessedElements.add(jsonObject); // 加入一维集合 } else { - // 其他情况(如已有U),保留原对象 - processedElements.add(jsonObject); + flatProcessedElements.add(jsonObject); // 其他flag直接加入 } } - // 4. 替换内层数组为处理后的结果 - JSONArray newInnerJsonArray = JSONArray.parseArray(JSONArray.toJSONString(processedElements)); - outerJsonArrays.set(outerIdx, newInnerJsonArray); } + + // 3. 把扁平后的一维集合转为JSON数组,直接作为最终结果 + JSONArray finalOneDimensionalArray = JSONArray.parseArray(JSONArray.toJSONString(flatProcessedElements)); + // 4. 重新设置处理后的JSON字符串(此时就是[{},{}]格式) + item.setPriceConditionDetail(finalOneDimensionalArray.toString()); + } else { + // 无外层数组/无ID时,保持原空值(避免写入空数组[],可根据业务调整) + item.setPriceConditionDetail(priceConditionDetail); } - // 5. 重新设置处理后的JSON字符串 - item.setPriceConditionDetail(outerJsonArrays.toString()); }); // 6. 批量插入/更新 salesOrderDetailMapper.insertOrUpdate(beanList); 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 4c6e9d75..9449a454 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 @@ -331,6 +331,8 @@ public class SalesOrderServiceImpl implements SalesOrderService { // 成功:更新为FIND状态 upVo.setErpStatus(OrderStatusEnum.FIND.getCode()); upVo.setCause("ERP订单提交成功,SAP单号:" + salesdocument); + //价格条件flag变更为U + updateConditionFlag(salesOrderDetailByOrderId); } else { // 失败:拼接详细原因 StringBuilder failMsg = new StringBuilder("ERP订单提交失败:"); @@ -364,6 +366,11 @@ public class SalesOrderServiceImpl implements SalesOrderService { } + private void updateConditionFlag(List salesOrderDetailList){ + log.info("更新明细的价格条件操作类型为U,ID:【{}】", salesOrderDetailList.stream().map(SalesOrderDetailRespVO::getId).toList()); + salesOrderDetailService.updateSalesOrderDetailList(BeanUtils.toBean(salesOrderDetailList,SalesOrderDetailSaveReqVO.class)); + } + @Override @Transactional 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 755010a0..8bf9f9e6 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 @@ -216,6 +216,9 @@ public class ErpOrderSaveReqVO { @Schema(description = "委托加工物料信息") @Data public static class Comp { + @Schema(description = "行号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "行号不能为空") + private Integer po_item; @Schema(description = "计划行号(从1开始)", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "计划行号不能为空") private Integer sched_line; // ETENR NUMC4 diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/MaterialInfomationApiVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/MaterialInfomationApiVO.java index 0aac8340..e7e369e5 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/MaterialInfomationApiVO.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/vo/MaterialInfomationApiVO.java @@ -10,6 +10,8 @@ public class MaterialInfomationApiVO extends PageParam { private String materialNumber; @Schema(description = "物料名称") private String materialName; - @Schema(description = "部门编号") + @Schema(description = "部门ID") private String deptId; + @Schema(description = "部门编号") + private String companyCode; } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java index 39af9e95..f687cd95 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpErpMaterialCorrServiceImpl.java @@ -31,17 +31,23 @@ public class ErpErpMaterialCorrServiceImpl implements ErpErpMaterialCorrService{ @Override public List create(ErpMaterialCorrSaveReqVO reqVO) { + CommonResult dept = deptApi.getDept(reqVO.getDeptId()); + DeptRespDTO data = dept.getData(); + if (data==null||data.getCode().isEmpty()) { + throw exception(new ErrorCode(1027004000, "部门或部门公司编码不存在,部门编号为:{}"), reqVO.getDeptId().toString()); + } List erpMaterialCorrDOS=new ArrayList<>(); reqVO.getMaterials().forEach(materials -> { //判断是否存在 - if (erpErpMaterialCorrMapper.selectOne(ErpMaterialCorrDO::getMaterialParentId,reqVO.getMaterialParentId(), ErpMaterialCorrDO::getMaterialId,materials.getMaterialId()) != null) { + if (erpErpMaterialCorrMapper.selectOne( + new LambdaQueryWrapperX() + .eq(ErpMaterialCorrDO::getMaterialParentId, reqVO.getMaterialParentId()) + .eq(ErpMaterialCorrDO::getMaterialId, materials.getMaterialId()) + .eqIfPresent(ErpMaterialCorrDO::getCompanyCode, data.getCode()) + .eqIfPresent(ErpMaterialCorrDO::getDeptId, reqVO.getDeptId()) + ) != null) { return; } - CommonResult dept = deptApi.getDept(reqVO.getDeptId()); - DeptRespDTO data = dept.getData(); - if (data==null||data.getCode().isEmpty()) { - throw exception(new ErrorCode(1027004000, "部门或部门公司编码不存在,部门编号为:{}"), reqVO.getDeptId().toString()); - } erpMaterialCorrDOS.add(ErpMaterialCorrDO.builder() .materialParentId(reqVO.getMaterialParentId()) .materialParentCode(reqVO.getMaterialParentCode()) diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java index fad4ce37..d8f9f65a 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java @@ -25,6 +25,7 @@ import com.zt.plat.module.erp.utils.MyRedisConfig; import com.zt.plat.module.erp.enums.OftenEnum; import com.zt.plat.module.erp.dal.dataobject.erp.ErpMaterialDO; import com.zt.plat.module.erp.dal.mysql.erp.ErpMaterialMapper; +import com.zt.plat.module.system.api.dept.DeptApi; import jakarta.annotation.Resource; import jakarta.validation.constraints.NotNull; import org.springframework.stereotype.Service; @@ -65,6 +66,9 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { @Resource private DepartmentMaterialApi departmentMaterialApi; + @Resource + private DeptApi deptApi; + @Override public ErpMaterialRespVO createErpMaterial(ErpMaterialSaveReqVO createReqVO) { // 校验存在 @@ -389,35 +393,23 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { @Override public PageResult getErpProdMaterialByApi(MaterialInfomationApiVO vo) { - MaterialInfomationPageReqDTO materialInfomationPageReqDTO = new MaterialInfomationPageReqDTO(); - materialInfomationPageReqDTO.setCode(vo.getMaterialNumber()); - materialInfomationPageReqDTO.setName(vo.getMaterialName()); - CommonResult> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(materialInfomationPageReqDTO); - PageResult data = materialInfomationPage.getData(); + DepartmentMaterialPageReqDTO pageReqDTO = new DepartmentMaterialPageReqDTO(); + pageReqDTO.setMaterialNumber(vo.getMaterialNumber()); + pageReqDTO.setMaterialName(vo.getMaterialName()); + pageReqDTO.setDeptId(Long.valueOf(vo.getDeptId())); + pageReqDTO.setPageSize(vo.getPageSize()); + pageReqDTO.setPageNo(vo.getPageNo()); + CommonResult> departmentMaterialPage = departmentMaterialApi.getDepartmentMaterialPage(pageReqDTO); + PageResult data = departmentMaterialPage.getData(); if (data == null || data.getList() == null || data.getList().isEmpty()) { return new PageResult<>(); } - PageResult departmentMaterialPage =new PageResult<>(); - List dtos=new ArrayList<>(); - data.getList().forEach(item -> { - DepartmentMaterialRespDTO departmentMaterialRespDTO = new DepartmentMaterialRespDTO(); - departmentMaterialRespDTO.setId(item.getId()); - departmentMaterialRespDTO.setMaterialNumber(item.getCode()); - departmentMaterialRespDTO.setMaterialName(item.getName()); - departmentMaterialRespDTO.setClassesId(item.getClassesId()); - departmentMaterialRespDTO.setRemark(item.getRemark()); - departmentMaterialRespDTO.setCreateTime(item.getCreateTime()); - departmentMaterialRespDTO.setFlatAttributes(item.getFlatAttributes()); - dtos.add(departmentMaterialRespDTO); - }); - departmentMaterialPage.setList(dtos); - departmentMaterialPage.setTotal( materialInfomationPage.getData().getTotal()); List erpMaterialDOList = new ArrayList<>(); - departmentMaterialPage.getList().forEach(item -> { + data.getList().forEach(item -> { ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(item)); erpMaterialDOList.add(erpMaterialDO); }); - return new PageResult<>(erpMaterialDOList, departmentMaterialPage.getTotal()); + return new PageResult<>(erpMaterialDOList, departmentMaterialPage.getData().getTotal()); } @Override