diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoSendSalesIvt.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoSendSalesIvt.java index cf2cfd4a4..07553ba43 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoSendSalesIvt.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoSendSalesIvt.java @@ -103,10 +103,41 @@ public class AutoSendSalesIvt { */ private void queryData() { - // 查询所有客户 + /* + * 查询所有客户: + * 1.查询所有客户 + * 2.只查询有库存的客户 + */ + String is_select_cust = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IS_SELECT_CUST").getValue(); + + // 1.查询所有客户 List custList = WQL.getWO("TEST0002").addParam("flag", "1") .process().getResultJSONArray(0).toJavaList(JSONObject.class); + // 2.只查询有库存的客户 + if (is_select_cust.equals("0")) { + String cust_code_in = custList.stream() + .map(row -> row.getString("cust_code")) + .collect(Collectors.joining("','")); + + List ivtList = WQL.getWO("TEST0002").addParam("flag", "11").addParam("cust_code_in","('"+cust_code_in+"')") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + + List list = new ArrayList<>(); + custList.forEach(row -> { + String cust_code = row.getString("cust_code"); + + boolean flag = ivtList.stream() + .anyMatch(item -> item.getString("cust_code").equals(cust_code)); + + if (flag) { + list.add(row); + } + + }); + custList = list; + } + // 查询区域 List regionList = WQL.getWO("TEST0002").addParam("flag", "2") .process().getResultJSONArray(0).toJavaList(JSONObject.class); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/TEST0002.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/TEST0002.wql index 388e00f01..d316aab64 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/TEST0002.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/TEST0002.wql @@ -14,6 +14,7 @@ ## 表字段对应输入参数 ################################################# 输入.flag TYPEAS s_string + 输入.cust_code_in TYPEAS f_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -55,6 +56,27 @@ ENDQUERY ENDIF + IF 输入.flag = "11" + QUERY + SELECT + SUM(ivt.canuse_qty) AS canuse_qty, + cust.cust_code + FROM + st_ivt_structivt ivt + LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + AND ivt.pcsn = sub.container_name + INNER JOIN md_cs_customerbase cust ON cust.cust_code = sub.customer_name + WHERE + ivt.canuse_qty > '0' + AND cust.cust_code in 输入.cust_code_in + + GROUP BY cust.cust_code + + ENDSELECT + ENDQUERY + ENDIF + IF 输入.flag = "2" QUERY SELECT