1.采购建议报表新增查询维度

This commit is contained in:
龚豆豆 2025-12-22 17:53:47 +08:00
parent b981f02d1c
commit f2d3874c01
1 changed files with 36 additions and 4 deletions

View File

@ -21,7 +21,6 @@ import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
import java.math.BigDecimal;
@ -101,10 +100,17 @@ public class PurSuggestRptFromPlugin extends AbstractFormPlugin implements Plugi
}
DynamicObjectCollection tqq9_queryorg = dataEntity.getDynamicObjectCollection("tqq9_queryorg");
DynamicObjectCollection tqq9_querysku = dataEntity.getDynamicObjectCollection("tqq9_querysku");
DynamicObjectCollection tqq9_querypurchaser = dataEntity.getDynamicObjectCollection("tqq9_querypurchaser");
DynamicObjectCollection tqq9_querybrand = dataEntity.getDynamicObjectCollection("tqq9_querybrand");
List<String> org = new ArrayList<>();
List<String> sku = new ArrayList<>();
StringBuilder orgBuilder = new StringBuilder();
StringBuilder skuBuilder = new StringBuilder();
Set<String> purchaserSet = new HashSet<>();
// StringBuilder purchaserBuilder = new StringBuilder();
StringBuilder brandBuilder = new StringBuilder();
List<Long> brandList = new ArrayList<>();
for (DynamicObject dynamicObject : tqq9_queryorg) {
String id = dynamicObject.getString("fbasedataid.id");
org.add(id);
@ -115,6 +121,22 @@ public class PurSuggestRptFromPlugin extends AbstractFormPlugin implements Plugi
sku.add(id);
skuBuilder.append(",").append(id);
}
for (DynamicObject dynamicObject : tqq9_querypurchaser) {
String name = dynamicObject.getString("fbasedataid.operatorname");
purchaserSet.add(name);
}
// StringBuilder purchaserCondition = new StringBuilder();
// for (int i = 0; i < purchaserList.size(); i++) {
// if (i > 0) {
// purchaserCondition.append(" OR "); // 每个条件之间用 OR 连接
// }
// String name = purchaserList.get(i);
// purchaserCondition.append("tqq9_purchasertext LIKE '%").append(name).append("%'"); // 使用 LIKE 进行匹配
// }
for (DynamicObject dynamicObject : tqq9_querybrand) {
Long id = dynamicObject.getLong("fbasedataid.id");
brandList.add(id);
}
//物料Map
DynamicObject[] materials = BusinessDataServiceHelper.load("bd_material", "id,number,name,tqq9_brand,baseunit", null);
HashMap<Long, DynamicObject> materialMap = new HashMap<Long, DynamicObject>();
@ -295,8 +317,7 @@ public class PurSuggestRptFromPlugin extends AbstractFormPlugin implements Plugi
DataSet copy1 = materialpackageDataSet.copy();
DynamicObjectCollection dynamicObjects = ORM.create().toPlainDynamicObjectCollection(copy1);
int size = dynamicObjects.size();
String sizeStr = String.valueOf(size);
Iterator<DynamicObject> iterator = dynamicObjects.iterator();
while (iterator.hasNext()) {
@ -306,6 +327,11 @@ public class PurSuggestRptFromPlugin extends AbstractFormPlugin implements Plugi
DynamicObject tqq9_org = adminorgMap.get(next.getLong("tqq9_org"));
entry.set("tqq9_material", tqq9_material);//物料
entry.set("tqq9_skuname", tqq9_material.getString("name"));//名称
DynamicObject tqq9_brand = tqq9_material.getDynamicObject("tqq9_brand");
long brandId = tqq9_brand.getLong("id");
if (!brandList.contains(brandId) && !brandList.isEmpty()) {
continue;
}
entry.set("tqq9_skubrand", tqq9_material.getDynamicObject("tqq9_brand"));//品牌
entry.set("tqq9_unit", tqq9_material.getDynamicObject("baseunit"));//基本单位
entry.set("tqq9_org", tqq9_org);//业务归属组织
@ -328,6 +354,10 @@ public class PurSuggestRptFromPlugin extends AbstractFormPlugin implements Plugi
} else if (StringUtils.equals("CDLC", tqq9_org.getString("number"))) {
entry.set("tqq9_warename", "成都仓库");//仓库名称
}
String nameString = entry.getString("tqq9_purchasertext");
if ((!Arrays.stream(nameString.split(";")).anyMatch(purchaserSet::contains)&&StringUtils.isNotBlank(nameString)&&purchaserSet.size()>0)|| (purchaserSet.size()>0&&StringUtils.isBlank(nameString))) {
continue;
}
entry.set("tqq9_totalinventory", next.get("tqq9_totalinventory"));//总仓库存
entry.set("tqq9_permonthsales_sh", next.get("tqq9_permonthsales_sh"));//上海月平均销量
entry.set("tqq9_permonthsales_bj", next.get("tqq9_permonthsales_bj"));//北京月平均销量
@ -368,9 +398,11 @@ public class PurSuggestRptFromPlugin extends AbstractFormPlugin implements Plugi
entry.set("tqq9_ranking", next.get("tqq9_ranking"));// 排名
entryentity.add(entry);
}
int size = entryentity.size();
String sizeStr = String.valueOf(size);
getModel().setValue("tqq9_pursuggestrptentry", entryentity);
getModel().setValue("tqq9_queryqty", sizeStr);
SaveServiceHelper.save(new DynamicObject[]{dataEntity});
// SaveServiceHelper.save(new DynamicObject[]{dataEntity});
this.getView().updateView();
} else if (StringUtils.equals("tqq9_purapply", itemKey)) {
DynamicObjectCollection tqq9_pursuggestrptentry = dataEntity.getDynamicObjectCollection("tqq9_pursuggestrptentry");