diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java index 3dfcca964..58a9d7f54 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/OutBillQueryServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; @@ -59,6 +60,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { } map.put("with", with); map.put("begin_time", begin_time); + map.put("pcsn", pcsn); map.put("end_time", end_time); if (ObjectUtil.isNotEmpty(customer_name)) { @@ -90,7 +92,21 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { map.put("bill_type", joiner.toString()); } map.put("with", with); - map.put("pcsn", pcsn); + // 空格查询 + if (StrUtil.isNotEmpty(pcsn)){ + // 判断是否有空格 + boolean matches = pcsn.matches(".*\\s.*"); + + if (matches) { + String[] s = pcsn.split(" "); + String pcsn_in = String.join("','", Arrays.asList(s)); + + map.put("pcsn_in", "('"+pcsn_in+"')"); + map.put("pcsn", ""); + } else { + map.put("pcsn", pcsn); + } + } if (ObjectUtil.isNotEmpty(customer_name)) { map.put("customer_name", "%" + customer_name + "%"); } @@ -189,7 +205,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { String customer_name = MapUtil.getStr(map, "customer_name"); JSONObject mapParam = new JSONObject(); - mapParam.put("flag", "1"); + mapParam.put("flag", "11"); mapParam.put("stor_id", stor_id); if (ObjectUtil.isNotEmpty(bill_types)) { StringJoiner joiner = new StringJoiner(",", "(", ")"); @@ -263,7 +279,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { String pcsn = MapUtil.getStr(map, "pcsn"); String customer_name = MapUtil.getStr(map, "customer_name"); - map.put("flag", "2"); + map.put("flag", "22"); map.put("stor_id", stor_id); if (ObjectUtil.isNotEmpty(bill_types)) { StringJoiner joiner = new StringJoiner(",", "(", ")"); @@ -273,7 +289,21 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { map.put("bill_type", joiner.toString()); } map.put("with", with); - map.put("pcsn", pcsn); + // 空格查询 + if (StrUtil.isNotEmpty(pcsn)){ + // 判断是否有空格 + boolean matches = pcsn.matches(".*\\s.*"); + + if (matches) { + String[] s = pcsn.split(" "); + String pcsn_in = String.join("','", Arrays.asList(s)); + + map.put("pcsn_in", "('"+pcsn_in+"')"); + map.put("pcsn", ""); + } else { + map.put("pcsn", pcsn); + } + } if (ObjectUtil.isNotEmpty(customer_name)) { map.put("customer_name", "%" + customer_name + "%"); } @@ -379,33 +409,40 @@ public class OutBillQueryServiceImpl implements OutBillQueryService { mp.put("管件描述", json.getString("paper_name")); mp.put("客户编码", json.getString("customer_name")); mp.put("发货客户名称", json.getString("customer_description")); - if (ObjectUtil.isEmpty(json.getString("sale_order_name"))) { - throw new BadRequestException("子卷" + json.getString("pcsn") + "销售订单为空!"); - } - try { - mp.put("销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); - mp.put("行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); - } catch (Exception e) { - mp.put("销售订单", json.getString("sale_order_name")); - mp.put("行号", ""); - } + mp.put("销售订单", json.getString("sale_order_name")); + mp.put("行号", ""); + mp.put("原销售订单", json.getString("sale_order_name")); + mp.put("原行号", ""); + if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) { + try { + mp.put("销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); + mp.put("行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); + } catch (Exception e) { + mp.put("销售订单", json.getString("sale_order_name")); + mp.put("行号", ""); + } + } // 原销售订单 if (ObjectUtil.isEmpty(jsonSub)) { - try { - mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); - mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); - } catch (Exception e) { - mp.put("原销售订单", json.getString("sale_order_name")); - mp.put("原行号", ""); + if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) { + try { + mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-"))); + mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length())); + } catch (Exception e) { + mp.put("原销售订单", json.getString("sale_order_name")); + mp.put("原行号", ""); + } } } else { - try { - mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-"))); - mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length())); - } catch (Exception e) { - mp.put("原销售订单", jsonSub.getString("sale_order_name")); - mp.put("原行号", ""); + if (ObjectUtil.isNotEmpty(jsonSub.getString("sale_order_name"))) { + try { + mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-"))); + mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length())); + } catch (Exception e) { + mp.put("原销售订单", jsonSub.getString("sale_order_name")); + mp.put("原行号", ""); + } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql index cfe934ba7..4c0bacbcd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_OUTBILLQUERY.wql @@ -21,6 +21,7 @@ 输入.begin_time TYPEAS s_string 输入.end_time TYPEAS s_string 输入.customer_name TYPEAS s_string + 输入.pcsn_in TYPEAS f_string [临时表] @@ -148,6 +149,109 @@ ENDPAGEQUERY ENDIF + IF 输入.flag = "11" + QUERY + SELECT + mst.stor_name, + dis.sect_name, + mst.bill_type, + dtl.vbeln, + base.cust_name, + mst.estimated_freight, + dis.box_no, + mater.material_code, + mater.material_name, + dis.pcsn, + sub.sap_pcsn, + sub.net_weight, + dis.qty_unit_name, + sub.customer_name, + sub.customer_description, + sub.sale_order_name, + mst.input_time, + sub.width, + sub.thickness, + sub.mass_per_unit_area, + mst.input_optname, + case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code, + case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name, + mst.remark, + stor.stor_name AS in_stor_name + FROM + ( + SELECT + MAX( a.iostorinvdis_id ) AS iostorinvdis_id + FROM + st_ivt_iostorinvdis a + LEFT JOIN st_ivt_iostorinv b ON a.iostorinv_id = b.iostorinv_id + WHERE + b.io_type = '1' + OPTION 输入.bill_type <> "" + b.bill_type IN 输入.bill_type + ENDOPTION + OPTION 输入.pcsn <> "" + a.pcsn = 输入.pcsn + ENDOPTION + AND b.bill_status = '99' + GROUP BY + pcsn + ) AS c + LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinvdis_id = c.iostorinvdis_id + LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id + LEFT JOIN st_ivt_iostorinvdtl dtl ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id + LEFT JOIN md_cs_transportationbase base ON base.cust_code = mst.trans_code + LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id + LEFT JOIN st_ivt_bsrealstorattr stor ON stor.stor_id = mst.out_stor_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no + LEFT JOIN (SELECT + container_name, + MAX(paper_tube_or_FRP) AS paper_tube_or_FRP, + MAX(paper_tube_material) AS paper_tube_material, + MAX(paper_tube_description) AS paper_tube_description, + MAX(paper_tube_model) AS paper_tube_model, + MAX(FRP_material) AS FRP_material, + MAX(FRP_description) AS FRP_description, + MAX(FRP_model) AS FRP_model + FROM + pdm_bi_slittingproductionplan plan1 + WHERE + plan1.is_delete = '0' + GROUP BY container_name) plan ON plan.container_name = sub.container_name + WHERE + mst.io_type = '1' + AND mst.is_delete = '0' + AND mst.bill_status = '99' + + OPTION 输入.stor_id <> "" + mst.stor_id = 输入.stor_id + ENDOPTION + + OPTION 输入.bill_type <> "" + mst.bill_type IN 输入.bill_type + ENDOPTION + + OPTION 输入.begin_time <> "" + mst.input_time >= 输入.begin_time + ENDOPTION + + OPTION 输入.end_time <> "" + mst.input_time <= 输入.end_time + ENDOPTION + + OPTION 输入.with <> "" + CONCAT(sub.width,'*',sub.thickness) = 输入.with + ENDOPTION + + OPTION 输入.customer_name <> "" + (sub.customer_name LIKE 输入.customer_name OR + sub.customer_description LIKE 输入.customer_name) + ENDOPTION + + ENDSELECT + ENDQUERY + ENDIF + IF 输入.flag = "2" PAGEQUERY SELECT @@ -200,6 +304,9 @@ OPTION 输入.pcsn <> "" a.pcsn = 输入.pcsn ENDOPTION + OPTION 输入.pcsn_in <> "" + a.pcsn IN 输入.pcsn_in + ENDOPTION OPTION 输入.begin_time <> "" b.confirm_time >= 输入.begin_time ENDOPTION @@ -316,6 +423,9 @@ OPTION 输入.pcsn <> "" a.pcsn = 输入.pcsn ENDOPTION + OPTION 输入.pcsn_in <> "" + a.pcsn IN 输入.pcsn_in + ENDOPTION OPTION 输入.begin_time <> "" b.confirm_time >= 输入.begin_time ENDOPTION @@ -376,7 +486,7 @@ plan1.is_delete = '0' GROUP BY container_name) plan ON plan.container_name = sub.container_name WHERE 1=1 - limit 0,10000 + limit 0,50000 ENDSELECT ENDQUERY ENDIF \ No newline at end of file