From 6e329bb970bc88fe4839d2c514808da959153209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=B0=8F=E4=BC=9F?= Date: Wed, 2 Apr 2025 15:19:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=98=E6=AC=BE=E4=BC=9A=E8=AE=A1=E7=A7=91?= =?UTF-8?q?=E7=9B=AE=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/ContractPriceChangedWarnPlugin.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractPriceChangedWarnPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractPriceChangedWarnPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractPriceChangedWarnPlugin.java new file mode 100644 index 0000000..85215d6 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractPriceChangedWarnPlugin.java @@ -0,0 +1,44 @@ +package zcgj.zcdev.zcdev.pr.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.sdk.plugin.Plugin; + +/** + * 收入/支出合同计量提交时,系统校验计量清单变动的单价, + * 当清单项单价变动过大(超过原单价的2倍或低于0.5倍)时, + * 弹出提醒“请注意,清单项:【xx资源名称】、【xx资源名称】的单价变动较大, + * 请检查是否存在错误”,且对应清单项的“说明”必填。 + */ +public class ContractPriceChangedWarnPlugin extends AbstractBillPlugIn implements Plugin { + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String price = e.getProperty().getName(); + if(price.equals("currentprice")){ + StringBuilder sb = new StringBuilder(); + ChangeData[] changeSet = e.getChangeSet(); + for(ChangeData changeData : changeSet){ + int rowIndex = changeData.getRowIndex(); + DynamicObject oldValue = (DynamicObject) changeData.getOldValue(); + DynamicObject newValue = (DynamicObject) changeData.getNewValue(); + int oldPrice = oldValue.getInt("currentprice"); + int newPrice = newValue.getInt("currentprice"); + if((newPrice >= oldPrice * 2)||(newPrice <= oldPrice * 0.5)){ + String resname = (String)this.getModel().getValue("resname", rowIndex); + sb.append(resname).append(","); + } + } + if(sb.length()>0){ + sb.deleteCharAt(sb.length()-1); + this.getView().showTipNotification( + "请注意,清单项:"+sb.toString()+"的单价变动较大,\n" + + " 请检查是否存在错误"); + } + + } + } +}