From 266921822b3a104524db7296849aded73c6f3875 Mon Sep 17 00:00:00 2001 From: pan-houxiang <2663608154@qq.com> Date: Thu, 20 Nov 2025 11:38:47 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=B3=9B=E5=BE=AE=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloud/app/api/plugin/FWDefaultApprovalStatusPlugin.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lc123/cloud/app/api/plugin/FWDefaultApprovalStatusPlugin.java b/lc123/cloud/app/api/plugin/FWDefaultApprovalStatusPlugin.java index 408ad8e..708d3cf 100644 --- a/lc123/cloud/app/api/plugin/FWDefaultApprovalStatusPlugin.java +++ b/lc123/cloud/app/api/plugin/FWDefaultApprovalStatusPlugin.java @@ -1,13 +1,8 @@ package tqq9.lc123.cloud.app.api.plugin; import kd.bos.bill.AbstractBillPlugIn; -import kd.bos.dataentity.OperateOption; -import kd.bos.dataentity.entity.DynamicObject; -import kd.bos.entity.operate.result.OperationResult; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; -import kd.bos.servicehelper.BusinessDataServiceHelper; -import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.sdk.plugin.Plugin; import org.apache.commons.lang3.StringUtils; From 15e6b97f4289913063b6108ab8f50b144c1152aa Mon Sep 17 00:00:00 2001 From: sez Date: Thu, 20 Nov 2025 14:08:11 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=BC=82=E5=9C=B0=E9=80=80=E8=B4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lc123/cloud/app/plugin/operate/im/YdthPurInConvertPlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lc123/cloud/app/plugin/operate/im/YdthPurInConvertPlugin.java b/lc123/cloud/app/plugin/operate/im/YdthPurInConvertPlugin.java index 64bd256..2021301 100644 --- a/lc123/cloud/app/plugin/operate/im/YdthPurInConvertPlugin.java +++ b/lc123/cloud/app/plugin/operate/im/YdthPurInConvertPlugin.java @@ -216,7 +216,7 @@ public class YdthPurInConvertPlugin extends AbstractConvertPlugIn implements Plu entry.set("remainjoinpricebaseqty", qty);//剩余应付基本数量 entry.set("unverifyqty", qty); //未核销数量 entry.set("unverifybaseqty", qty); //未核销基本数量 - + entry.set("baseqty",qty);//基本数量-反写规则用到 entry.set("taxrateid", bd_taxrate);//税率 entry.set("price", tqq9_price_ydth);//不含税单价 entry.set("taxamount", tqq9_taxamount_ydth);//税额 @@ -240,7 +240,7 @@ public class YdthPurInConvertPlugin extends AbstractConvertPlugIn implements Plu newEntry.set("remainjoinpricebaseqty", qty);//剩余应付基本数量 newEntry.set("unverifyqty", qty); //未核销数量 newEntry.set("unverifybaseqty", qty); //未核销基本数量 - + newEntry.set("baseqty",qty);//基本数量-反写规则用到 newEntry.set("taxrateid", bd_taxrate);//税率 newEntry.set("price", tqq9_price_ydth);//不含税单价 newEntry.set("taxamount", tqq9_taxamount_ydth);//税额 From 3bf1405120fd226fe10a73f01b5c2e6031e9146b Mon Sep 17 00:00:00 2001 From: sez Date: Thu, 20 Nov 2025 14:44:48 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E7=A8=8E=E7=8E=87=EF=BC=88%=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lc123/cloud/app/plugin/form/pm/PurRefundApplyFormPlugin.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lc123/cloud/app/plugin/form/pm/PurRefundApplyFormPlugin.java b/lc123/cloud/app/plugin/form/pm/PurRefundApplyFormPlugin.java index 5125107..575893c 100644 --- a/lc123/cloud/app/plugin/form/pm/PurRefundApplyFormPlugin.java +++ b/lc123/cloud/app/plugin/form/pm/PurRefundApplyFormPlugin.java @@ -69,13 +69,14 @@ public class PurRefundApplyFormPlugin extends AbstractBillPlugIn implements Befo addNew.set("tqq9_licenseno_ydth", dynamicObject.get("tqq9_licenseno")); addNew.set("tqq9_priceandtax_ydth", dynamicObject.get("priceandtax")); //addNew.set("tqq9_amountandtax_ydth", dynamicObject.get("amountandtax")); + addNew.set("tqq9_ph_ydth", dynamicObject.get("tqq9_ph")); addNew.set("tqq9_productdate_ydth", dynamicObject.get("tqq9_productdate")); addNew.set("tqq9_expiredate_ydth", dynamicObject.get("tqq9_expiredate")); addNew.set("tqq9_cgthflid", dynamicObject.get("id")); addNew.set("tqq9_price_ydth", dynamicObject.get("price")); addNew.set("tqq9_taxrateid_ydth", dynamicObject.get("taxrateid")); - + addNew.set("tqq9_taxrate_ydth", dynamicObject.get("taxrate")); this.getModel().updateEntryCache(tqq9_entryentity); this.getView().updateView("tqq9_entryentity"); } From aaf89f5fc71588845fcc0bf6ce20a0426307f79f 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: Thu, 20 Nov 2025 14:52:35 +0800 Subject: [PATCH 4/5] =?UTF-8?q?1.=E9=87=91=E9=A2=9D=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cas/PurOrderUnReversePayBillPlugin.java | 2 +- .../operate/im/SaleOutBillConvertPlugin.java | 34 ++++++++++++++++--- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/lc123/cloud/app/plugin/operate/cas/PurOrderUnReversePayBillPlugin.java b/lc123/cloud/app/plugin/operate/cas/PurOrderUnReversePayBillPlugin.java index dc15593..10f0286 100644 --- a/lc123/cloud/app/plugin/operate/cas/PurOrderUnReversePayBillPlugin.java +++ b/lc123/cloud/app/plugin/operate/cas/PurOrderUnReversePayBillPlugin.java @@ -68,7 +68,7 @@ public class PurOrderUnReversePayBillPlugin extends AbstractOperationServicePlug paybill.set("unsettleamount", unsettleamount);//未结算金额 paybill.set("unsettleamountbase", unsettleamountbase);//未结算金额(本位币) paybill.set("entry", entries); - SaveServiceHelper.save(new DynamicObject[]{paybill});// } + SaveServiceHelper.save(new DynamicObject[]{paybill});// } } } diff --git a/lc123/cloud/app/plugin/operate/im/SaleOutBillConvertPlugin.java b/lc123/cloud/app/plugin/operate/im/SaleOutBillConvertPlugin.java index 9f4acfe..96c375c 100644 --- a/lc123/cloud/app/plugin/operate/im/SaleOutBillConvertPlugin.java +++ b/lc123/cloud/app/plugin/operate/im/SaleOutBillConvertPlugin.java @@ -97,8 +97,8 @@ public class SaleOutBillConvertPlugin extends AbstractConvertPlugIn implements P } String batch = jsonMap.get("batch") != null ? jsonMap.get("batch").toString() : null; // 批次 String fromZone = jsonMap.get("fromZone") != null ? jsonMap.get("fromZone").toString() : null; // 库区 - DynamicObject bd_warehouse=null; - if(fromZone!=null){ + DynamicObject bd_warehouse = null; + if (fromZone != null) { String wareNumber = wareTypeMap.get(fromZone); bd_warehouse = BusinessDataServiceHelper.loadSingle("bd_warehouse", new QFilter[]{new QFilter("number", QCP.equals, wareNumber)}); } @@ -113,13 +113,14 @@ public class SaleOutBillConvertPlugin extends AbstractConvertPlugIn implements P // 处理第一次逻辑 if (i == 0) { // 第一次直接赋值 + BigDecimal qty = entry.getBigDecimal("qty");//原数量 entry.set("qty", quantity); entry.set("baseqty", quantity); entry.set("tqq9_goods", tqq9_goodspackage); entry.set("producedate", manufactureDate); entry.set("expirydate", expirationDate); entry.set("lotnumber", batch); - if(bd_warehouse!=null){ + if (bd_warehouse != null) { entry.set("warehouse", bd_warehouse); } entry.set("tqq9_wmsdetailid", wmsDetailId); @@ -128,6 +129,18 @@ public class SaleOutBillConvertPlugin extends AbstractConvertPlugIn implements P entry.set("tqq9_scs", tqq9_proxyandfactory); DynamicObjectCollection billentry_lk = entry.getDynamicObjectCollection("billentry_lk"); billentry_lk.clear(); + BigDecimal amount = entry.getBigDecimal("amount");//金额 + BigDecimal taxamount = entry.getBigDecimal("taxamount");//税额 + BigDecimal amountandtax = entry.getBigDecimal("amountandtax");//税额 + amount=amount.multiply(quantity).divide(qty); + taxamount=taxamount.multiply(quantity).divide(qty); + amountandtax=amountandtax.multiply(quantity).divide(qty); + entry.set("amount", amount); + entry.set("curamount", amount); + entry.set("taxamount", taxamount); + entry.set("curtaxamount", taxamount); + entry.set("amountandtax", amountandtax); + entry.set("curamountandtax", amountandtax); } else { DataEntityPropertyCollection properties = entry.getDataEntityType().getProperties(); // 后续循环复制entry并赋值 @@ -135,13 +148,14 @@ public class SaleOutBillConvertPlugin extends AbstractConvertPlugIn implements P for (IDataEntityProperty property : properties) { newEntry.set(property.getName(), entry.get(property.getName())); } + BigDecimal qty = entry.getBigDecimal("qty");//原数量 newEntry.set("qty", quantity); newEntry.set("baseqty", quantity); newEntry.set("tqq9_goods", tqq9_goodspackage); newEntry.set("producedate", manufactureDate); newEntry.set("expirydate", expirationDate); newEntry.set("lotnumber", batch); - if(bd_warehouse!=null){ + if (bd_warehouse != null) { newEntry.set("warehouse", bd_warehouse); } newEntry.set("tqq9_wmsdetailid", wmsDetailId); @@ -150,6 +164,18 @@ public class SaleOutBillConvertPlugin extends AbstractConvertPlugIn implements P newEntry.set("tqq9_scs", tqq9_proxyandfactory); DynamicObjectCollection billentry_lk = newEntry.getDynamicObjectCollection("billentry_lk"); billentry_lk.clear(); + BigDecimal amount = entry.getBigDecimal("amount");//金额 + BigDecimal taxamount = entry.getBigDecimal("taxamount");//税额 + BigDecimal amountandtax = entry.getBigDecimal("amountandtax");//税额 + amount=amount.multiply(quantity).divide(qty); + taxamount=taxamount.multiply(quantity).divide(qty); + amountandtax=amountandtax.multiply(quantity).divide(qty); + entry.set("amount", amount); + entry.set("curamount", amount); + entry.set("taxamount", taxamount); + entry.set("curtaxamount", taxamount); + entry.set("amountandtax", amountandtax); + entry.set("curamountandtax", amountandtax); // 处理完新entry后的逻辑(比如加入集合或其他操作) iterator.add(newEntry); } From 1faf8499d4c1c9d45c461b580224e06deac5bef1 Mon Sep 17 00:00:00 2001 From: sez Date: Thu, 20 Nov 2025 15:09:28 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E5=8D=95=E6=8F=90=E4=BA=A4=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/operate/im/OtherInYdthPlugin.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lc123/cloud/app/plugin/operate/im/OtherInYdthPlugin.java b/lc123/cloud/app/plugin/operate/im/OtherInYdthPlugin.java index 2573b34..266872d 100644 --- a/lc123/cloud/app/plugin/operate/im/OtherInYdthPlugin.java +++ b/lc123/cloud/app/plugin/operate/im/OtherInYdthPlugin.java @@ -1,11 +1,13 @@ package tqq9.lc123.cloud.app.plugin.operate.im; import com.alibaba.fastjson.JSONObject; +import kd.bos.dataentity.OperateOption; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.botp.runtime.ConvertOperationResult; import kd.bos.entity.botp.runtime.PushArgs; import kd.bos.entity.botp.runtime.SourceBillReport; +import kd.bos.entity.operate.result.OperationResult; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; import kd.bos.entity.plugin.PreparePropertysEventArgs; import kd.bos.entity.plugin.args.AfterOperationArgs; @@ -15,8 +17,10 @@ import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.botp.ConvertServiceHelper; +import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.bos.util.StringUtils; import kd.sdk.plugin.Plugin; +import tqq9.lc123.cloud.app.api.utils.Constants; import tqq9.lc123.cloud.app.plugin.utils.BotpParamUtils; import java.math.BigDecimal; @@ -149,6 +153,38 @@ public class OtherInYdthPlugin extends AbstractOperationServicePlugIn implements } } + + //获取下推单据id准备提交审核操作 + Set targetBillIds = pushResult.getTargetBillIds(); + DynamicObject[] load = new DynamicObject[targetBillIds.size()]; + Iterator iterator = targetBillIds.iterator(); + for (int i = 0; iterator.hasNext(); i++) { + Object next = iterator.next(); + DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(IM_PURINBILL, new QFilter[]{new QFilter("id", QCP.equals, next)}); + load[i] = dynamicObject1; + } + //开始提交 + OperateOption operateOption = OperateOption.create(); + OperationResult sumbitResult = OperationServiceHelper.executeOperate(Constants.TYPE_SUBMIT, IM_PURINBILL, load, operateOption); + if (!sumbitResult.isSuccess()) { + if (Objects.nonNull(sumbitResult.getAllErrorOrValidateInfo())) { + logger.info("采购入库单提交失败: " + sumbitResult.getAllErrorOrValidateInfo().toString()); + } + OperationResult deleteResult = OperationServiceHelper.executeOperate(Constants.TYPE_DELETE, IM_PURINBILL, load, operateOption); + } else { + //开始审核 + OperationResult auditResult = OperationServiceHelper.executeOperate(Constants.TYPE_AUDIT, IM_PURINBILL, load, operateOption); + if (!auditResult.isSuccess()) { + if (Objects.nonNull(auditResult.getAllErrorOrValidateInfo())) { + logger.info("采购入库单审核失败: " + auditResult.getAllErrorOrValidateInfo().toString()); + } + + OperationResult unsubmitResult = OperationServiceHelper.executeOperate(Constants.TYPE_UNSUBMIT, IM_PURINBILL, load, operateOption); + OperationResult deleteResult = OperationServiceHelper.executeOperate(Constants.TYPE_DELETE, IM_PURINBILL, load, operateOption); + } + + + } } }