From 2827c64d1237bd4684998c9ced40b5c8aa07c773 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=9A=E8=B1=86=E8=B1=86?= <13356128+sunandmoon60@user.noreply.gitee.com> Date: Tue, 11 Nov 2025 17:28:36 +0800 Subject: [PATCH] =?UTF-8?q?1.=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E4=B8=8B?= =?UTF-8?q?=E6=8E=A8=E9=87=87=E8=B4=AD=E9=80=80=E8=B4=A7=E5=87=8F=E5=8E=BB?= =?UTF-8?q?=E9=80=80=E8=B4=A7=E5=8D=A0=E5=8D=95=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../im/PurOrderPushPurRefundConverPlugin.java | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java b/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java index f56f386..23b906e 100644 --- a/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java +++ b/lc123/cloud/app/plugin/operate/im/PurOrderPushPurRefundConverPlugin.java @@ -41,6 +41,7 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp DynamicObject dataEntity = extendedDataEntity.getDataEntity(); DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry"); DynamicObject[] im_purinblil = null; + DynamicObject[] pm_purrefundapplybill = null; for (DynamicObject entry : dynamicObjectCollection) { String mainbillnumber = entry.getString("mainbillnumber"); //采购订单 @@ -55,7 +56,8 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp "billentry.discountamount,billentry.amountandtax,billentry.curamountandtax,billentry.returnqty," + "billentry.returnbaseqty,billentry.tqq9_yyhyflje,billentry.tqq9_yyhwflje,billentry.lotnumber," + "billentry.tqq9_goods,billentry.tqq9_wmsdetailid,billentry.producedate,billentry.expirydate,creator,createtime,modifier,modifytime,billentry.owner,billentry.taxrate,billentry.srcbillnumber,billentry.tqq9_inwarebillentryid", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("billstatus", QCP.equals, "C")}); - + //采购退货申请单 + pm_purrefundapplybill = BusinessDataServiceHelper.load("pm_purrefundapplybill", "id,name,billentry.material,billentry.qty,billentry.returnqty,billentry.tqq9_inwarebillentryid,", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("billstatus", QCP.equals, "C")}); } BigDecimal zero = BigDecimal.ZERO; @@ -211,17 +213,49 @@ public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn imp if (StringUtils.equals(inwarebillentryid, id)) { BigDecimal qty2 = dynamicObject1.getBigDecimal("qty"); BigDecimal add = qty2.add(qty1); + if (add.compareTo(BigDecimal.ZERO) > 0) { dynamicObject1.set("tqq9_inwarebillentryqty", add); dynamicObject1.set("tqq9_maxqty", add); dynamicObject1.set("qty", add); dynamicObject1.set("baseqty", add); + } else { + iterator.remove(); + } + } + } + } + //采购退货申请锁定数量扣减 + if (pm_purrefundapplybill != null) { + for (DynamicObject dynamicObject : pm_purrefundapplybill) { + DynamicObjectCollection billentry = dynamicObject.getDynamicObjectCollection("billentry"); + for (DynamicObject object : billentry) { + BigDecimal returnqty = object.getBigDecimal("returnqty"); + BigDecimal qty = object.getBigDecimal("qty"); + BigDecimal subtract = qty.subtract(returnqty); + if (subtract.compareTo(zero) > 0) { + String id = object.getString("tqq9_inwarebillentryid"); + ListIterator iterator = dynamicObjectCollection.listIterator(); + while (iterator.hasNext()) { + DynamicObject dynamicObject1 = iterator.next(); + String inwarebillentryid = dynamicObject1.getString("tqq9_inwarebillentryid"); + if (StringUtils.equals(inwarebillentryid, id)) { + BigDecimal qty1 = dynamicObject1.getBigDecimal("qty"); + BigDecimal subtract1 = qty1.subtract(subtract); + if (subtract1.compareTo(BigDecimal.ZERO) > 0) { + dynamicObject1.set("tqq9_inwarebillentryqty", subtract1); + dynamicObject1.set("tqq9_maxqty", subtract1); + dynamicObject1.set("qty", subtract1); + dynamicObject1.set("baseqty", subtract1); + } else { + iterator.remove(); + } + } + } + } } } } } } - } - - } \ No newline at end of file