From cd417c2c5f915b412bfecfdeaa942ac6e5a160a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=8E?= <125556714+Topfunplus@users.noreply.github.com> Date: Tue, 3 Jun 2025 03:23:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=B7=E8=B4=AD=E5=8D=95?= =?UTF-8?q?=E8=BD=AC=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了 AfterApprovingSynchronizeRuleMES 中的产品编号字段 - 优化了 BatchTransferToPurchaseOrder 中的错误处理和批量更新逻辑 -调整了订单状态设置和错误信息记录的方式 --- .../plugin/BatchTransferToPurchaseOrder.java | 44 ++++++++++++++----- .../AfterApprovingSynchronizeRuleMES.java | 2 +- 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/pu/src/private/nc/bs/pu/m21/plugin/BatchTransferToPurchaseOrder.java b/pu/src/private/nc/bs/pu/m21/plugin/BatchTransferToPurchaseOrder.java index 23fb636..a1f35f6 100644 --- a/pu/src/private/nc/bs/pu/m21/plugin/BatchTransferToPurchaseOrder.java +++ b/pu/src/private/nc/bs/pu/m21/plugin/BatchTransferToPurchaseOrder.java @@ -1,6 +1,7 @@ package nc.bs.pu.m21.plugin; import java.util.*; +import java.util.stream.Collectors; import nc.bs.framework.common.NCLocator; import nc.bs.logging.Log; @@ -11,6 +12,7 @@ import nc.bs.pub.taskcenter.BgWorkingContext; import nc.bs.pub.taskcenter.IBackgroundWorkPlugin; import nc.bs.pubapp.AppBsContext; import nc.impl.pubapp.pattern.data.vo.VOQuery; +import nc.impl.pubapp.pattern.data.vo.VOUpdate; import nc.impl.pubapp.pattern.page.db.IDDBPage; import nc.itf.uap.pf.IPfExchangeService; import nc.util.mmf.framework.base.MMArrayUtil; @@ -26,6 +28,7 @@ import nc.vo.pubapp.pattern.exception.ExceptionUtils; import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill; import nc.vo.scmpub.res.billtype.POBillType; import nc.vo.scmpub.util.AppInfoContext; +import nccloud.commons.lang.ArrayUtils; import nccloud.dto.scmpub.script.entity.SCMScriptResultDTO; import nccloud.pubitf.riart.pflow.CloudPFlowContext; import nccloud.pubitf.scmpub.commit.service.IBatchRunScriptService; @@ -42,7 +45,7 @@ public class BatchTransferToPurchaseOrder implements IBackgroundWorkPlugin { // 1. ѯ빺ۺVO PraybillVO[] purchaseRequestVOs = getQualifiedPurchaseRequests(bgWorkingContext); logger.info("ѯ빺: " + purchaseRequestVOs.length, this.getClass(), "executeTask"); - if (purchaseRequestVOs.length <= 0) { + if (purchaseRequestVOs.length == 0) { logger.info("δҵ빺", this.getClass(), "executeTask"); return null; } @@ -186,35 +189,52 @@ public class BatchTransferToPurchaseOrder implements IBackgroundWorkPlugin { for (OrderVO orderVO : orderVOs) { // Բɹֵк OrderHeaderVO hvo = orderVO.getHVO(); + hvo.setStatus(2); OrderItemVO[] bvo = orderVO.getBVO(); for (int j = 0; j < bvo.length; j++) { int rowNum = (j + 1) * 10; - // pk_order - bvo[j].setPk_order(hvo.getPk_order()); + bvo[j].setStatus(2); bvo[j].setCrowno(String.valueOf(rowNum)); } } CloudPFlowContext cloudContext = this.getCloudPFlowContext(orderVOs); - AppInfoContext.setBtnCode("Save"); SCMScriptResultDTO scriptResult = ((IBatchRunScriptService) NCLocator.getInstance().lookup(IBatchRunScriptService.class)).runBacth(cloudContext, OrderVO.class); AbstractBill[] sucessVOs = scriptResult.getSucessVOs(); - // TODO sucessVOs ȡɹIJɹ ޷ ޷ȡ ʱ޷ + // Ҫµ + List hvoList = new ArrayList<>(vos.length - sucessVOs.length); Map errorMessageMap = scriptResult.getErrorMessageMap(); if (!errorMessageMap.isEmpty()) { errorMessageMap.keySet().forEach(key -> { String errMsg = errorMessageMap.get(key); - if (errMsg.isEmpty()) return; - // TODO ˴߼ ɹת ɹҪʹϢһһӦ ôϢ - OrderVO orderVO = orderVOs[key]; - // ôϢ - orderVO.getHVO().setVdef30(errMsg); - orderVO.getHVO().setVdef31("N"); + if (errMsg.isEmpty()) { + return; + } + PraybillVO vo = vos[key]; + // TODO Ҫȷֶγһ errMsgҲҪȡһ + vo.getHVO().setVdef30(errMsg); + vo.getHVO().setVdef31("N"); + hvoList.add(vo); logger.warn("תɲɹʱ: " + scriptResult.getErrorMessage(), this.getClass(), "processBatchTransfer"); }); } + // + PraybillHeaderVO[] hvoBatchUpdatedList = {}; + if (hvoList.isEmpty()) { + logger.warn("빺ͷʧ,ȡͷ鳤Ϊ0", this.getClass(), "processBatchTransfer"); + return; + } + for (PraybillVO hvo : hvoList) { + hvoBatchUpdatedList = ArrayUtils.add(hvoBatchUpdatedList, hvo.getHVO()); + logger.info("ѭ빺ͷ: " + hvo.getHVO().getPk_praybill(), this.getClass(), "processBatchTransfer"); + } + if (hvoBatchUpdatedList.length == 0) { + logger.warn("빺ͷʧ,ҪµΪ0", this.getClass(), "processBatchTransfer"); + } + String[] headupname = new String[]{"fbillstatus"}; + VOUpdate headupsrv = new VOUpdate<>(); + headupsrv.update(hvoBatchUpdatedList, headupname); } catch (Exception e) { logger.error("ת빺ɹʧ", e, this.getClass(), "processBatchTransfer"); - ExceptionUtils.marsh(e); } } diff --git a/so/src/private/nc/bs/so/m30/rule/approve/AfterApprovingSynchronizeRuleMES.java b/so/src/private/nc/bs/so/m30/rule/approve/AfterApprovingSynchronizeRuleMES.java index 20c8d94..7fc9532 100644 --- a/so/src/private/nc/bs/so/m30/rule/approve/AfterApprovingSynchronizeRuleMES.java +++ b/so/src/private/nc/bs/so/m30/rule/approve/AfterApprovingSynchronizeRuleMES.java @@ -146,7 +146,7 @@ public class AfterApprovingSynchronizeRuleMES implements IRule { if (bodys != null) { for (SaleOrderBVO body : bodys) { JSONObject detailItem = new JSONObject(); - detailItem.put("productNum", head.getVbillcode()); + detailItem.put("productNum", head.getVdef6()); // ֶҪֶ // dreceivedate UFDate dreceivedate = body.getDreceivedate();