improve:优化下推变更中逻辑,提交查询效率

This commit is contained in:
zzs 2024-12-19 16:10:07 +08:00
parent 8927475eab
commit 40a3632539

View File

@ -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<Long> ids = new HashSet<>();
for (ListSelectedRow datum : listSelectedData) {
Long keyValue = (Long) datum.getPrimaryKeyValue();
ids.add(keyValue);
}
Map<Object, DynamicObject> 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);
}
}
}
}