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); + } } } }