From 05ae9fc3834d200028b00eb84f1c2642fea06932 Mon Sep 17 00:00:00 2001 From: zzs Date: Thu, 19 Dec 2024 16:10:07 +0800 Subject: [PATCH] =?UTF-8?q?improve:=E4=BC=98=E5=8C=96=E4=B8=8B=E6=8E=A8?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E4=B8=AD=E9=80=BB=E8=BE=91=EF=BC=8C=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E6=9F=A5=E8=AF=A2=E6=95=88=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 40a3632539a6bebd52b7c0c3865c5be2e6257e1e) --- .../list/AbstractVersionListPlugin.java | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/yem/wm/sys/formplugin/list/AbstractVersionListPlugin.java b/src/main/java/com/yem/wm/sys/formplugin/list/AbstractVersionListPlugin.java index 622fec0f..657da19c 100644 --- a/src/main/java/com/yem/wm/sys/formplugin/list/AbstractVersionListPlugin.java +++ b/src/main/java/com/yem/wm/sys/formplugin/list/AbstractVersionListPlugin.java @@ -1,6 +1,9 @@ package com.yem.wm.sys.formplugin.list; import java.util.EventObject; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -122,14 +125,27 @@ public class AbstractVersionListPlugin extends AbstractListPlugin { if (BillFormId.equals("yem_es_storagetrans")) { entityNumber = BillFormId; } - if (entityNumber.length() > 0) { - for (ListSelectedRow SelectedData : listSelectedData) { - DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(SelectedData.getPrimaryKeyValue(), entityNumber); - String billNo = SelectedData.getBillNo(); - boolean yem_changing = dynamicObject.getBoolean("yem_changing"); - if (yem_changing) { - this.getView().showErrorNotification("单据【" + billNo + "】正在变更中,禁止下推!"); - e.setCancel(true); + if (!entityNumber.isEmpty()) { + + Set ids = new HashSet<>(); + + for (ListSelectedRow datum : listSelectedData) { + Long keyValue = (Long) datum.getPrimaryKeyValue(); + ids.add(keyValue); + } + + Map loads = BusinessDataServiceHelper.loadFromCache(entityNumber, "id, billno, yem_changing", new QFilter[]{new QFilter("id", "in", ids)}); + + for (ListSelectedRow selectedRow : listSelectedData) { + Object primaryKeyValue = selectedRow.getPrimaryKeyValue(); + if (loads.containsKey(primaryKeyValue)) { + DynamicObject dynamicObject = loads.get(primaryKeyValue); + String billno = dynamicObject.getString("billno"); + boolean yem_changing = dynamicObject.getBoolean("yem_changing"); + if (yem_changing) { + this.getView().showErrorNotification("单据【" + billno + "】正在变更中,禁止下推!"); + e.setCancel(true); + } } } }