opt:优化成品出库查询
This commit is contained in:
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -59,6 +60,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
|||||||
}
|
}
|
||||||
map.put("with", with);
|
map.put("with", with);
|
||||||
map.put("begin_time", begin_time);
|
map.put("begin_time", begin_time);
|
||||||
|
|
||||||
map.put("pcsn", pcsn);
|
map.put("pcsn", pcsn);
|
||||||
map.put("end_time", end_time);
|
map.put("end_time", end_time);
|
||||||
if (ObjectUtil.isNotEmpty(customer_name)) {
|
if (ObjectUtil.isNotEmpty(customer_name)) {
|
||||||
@@ -90,7 +92,21 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
|||||||
map.put("bill_type", joiner.toString());
|
map.put("bill_type", joiner.toString());
|
||||||
}
|
}
|
||||||
map.put("with", with);
|
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)) {
|
if (ObjectUtil.isNotEmpty(customer_name)) {
|
||||||
map.put("customer_name", "%" + 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");
|
String customer_name = MapUtil.getStr(map, "customer_name");
|
||||||
|
|
||||||
JSONObject mapParam = new JSONObject();
|
JSONObject mapParam = new JSONObject();
|
||||||
mapParam.put("flag", "1");
|
mapParam.put("flag", "11");
|
||||||
mapParam.put("stor_id", stor_id);
|
mapParam.put("stor_id", stor_id);
|
||||||
if (ObjectUtil.isNotEmpty(bill_types)) {
|
if (ObjectUtil.isNotEmpty(bill_types)) {
|
||||||
StringJoiner joiner = new StringJoiner(",", "(", ")");
|
StringJoiner joiner = new StringJoiner(",", "(", ")");
|
||||||
@@ -263,7 +279,7 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
|||||||
String pcsn = MapUtil.getStr(map, "pcsn");
|
String pcsn = MapUtil.getStr(map, "pcsn");
|
||||||
String customer_name = MapUtil.getStr(map, "customer_name");
|
String customer_name = MapUtil.getStr(map, "customer_name");
|
||||||
|
|
||||||
map.put("flag", "2");
|
map.put("flag", "22");
|
||||||
map.put("stor_id", stor_id);
|
map.put("stor_id", stor_id);
|
||||||
if (ObjectUtil.isNotEmpty(bill_types)) {
|
if (ObjectUtil.isNotEmpty(bill_types)) {
|
||||||
StringJoiner joiner = new StringJoiner(",", "(", ")");
|
StringJoiner joiner = new StringJoiner(",", "(", ")");
|
||||||
@@ -273,7 +289,21 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
|||||||
map.put("bill_type", joiner.toString());
|
map.put("bill_type", joiner.toString());
|
||||||
}
|
}
|
||||||
map.put("with", with);
|
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)) {
|
if (ObjectUtil.isNotEmpty(customer_name)) {
|
||||||
map.put("customer_name", "%" + 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("paper_name"));
|
||||||
mp.put("客户编码", json.getString("customer_name"));
|
mp.put("客户编码", json.getString("customer_name"));
|
||||||
mp.put("发货客户名称", json.getString("customer_description"));
|
mp.put("发货客户名称", json.getString("customer_description"));
|
||||||
if (ObjectUtil.isEmpty(json.getString("sale_order_name"))) {
|
mp.put("销售订单", json.getString("sale_order_name"));
|
||||||
throw new BadRequestException("子卷" + json.getString("pcsn") + "销售订单为空!");
|
mp.put("行号", "");
|
||||||
}
|
mp.put("原销售订单", json.getString("sale_order_name"));
|
||||||
try {
|
mp.put("原行号", "");
|
||||||
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("行号", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
// 原销售订单
|
// 原销售订单
|
||||||
if (ObjectUtil.isEmpty(jsonSub)) {
|
if (ObjectUtil.isEmpty(jsonSub)) {
|
||||||
try {
|
if (ObjectUtil.isNotEmpty(json.getString("sale_order_name"))) {
|
||||||
mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-")));
|
try {
|
||||||
mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length()));
|
mp.put("原销售订单", json.getString("sale_order_name").substring(0, json.getString("sale_order_name").indexOf("-")));
|
||||||
} catch (Exception e) {
|
mp.put("原行号", json.getString("sale_order_name").substring(json.getString("sale_order_name").indexOf("-") + 1, json.getString("sale_order_name").length()));
|
||||||
mp.put("原销售订单", json.getString("sale_order_name"));
|
} catch (Exception e) {
|
||||||
mp.put("原行号", "");
|
mp.put("原销售订单", json.getString("sale_order_name"));
|
||||||
|
mp.put("原行号", "");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
try {
|
if (ObjectUtil.isNotEmpty(jsonSub.getString("sale_order_name"))) {
|
||||||
mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-")));
|
try {
|
||||||
mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length()));
|
mp.put("原销售订单", jsonSub.getString("sale_order_name").substring(0, jsonSub.getString("sale_order_name").indexOf("-")));
|
||||||
} catch (Exception e) {
|
mp.put("原行号", jsonSub.getString("sale_order_name").substring(jsonSub.getString("sale_order_name").indexOf("-") + 1, jsonSub.getString("sale_order_name").length()));
|
||||||
mp.put("原销售订单", jsonSub.getString("sale_order_name"));
|
} catch (Exception e) {
|
||||||
mp.put("原行号", "");
|
mp.put("原销售订单", jsonSub.getString("sale_order_name"));
|
||||||
|
mp.put("原行号", "");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
输入.begin_time TYPEAS s_string
|
输入.begin_time TYPEAS s_string
|
||||||
输入.end_time TYPEAS s_string
|
输入.end_time TYPEAS s_string
|
||||||
输入.customer_name TYPEAS s_string
|
输入.customer_name TYPEAS s_string
|
||||||
|
输入.pcsn_in TYPEAS f_string
|
||||||
|
|
||||||
|
|
||||||
[临时表]
|
[临时表]
|
||||||
@@ -148,6 +149,109 @@
|
|||||||
ENDPAGEQUERY
|
ENDPAGEQUERY
|
||||||
ENDIF
|
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"
|
IF 输入.flag = "2"
|
||||||
PAGEQUERY
|
PAGEQUERY
|
||||||
SELECT
|
SELECT
|
||||||
@@ -200,6 +304,9 @@
|
|||||||
OPTION 输入.pcsn <> ""
|
OPTION 输入.pcsn <> ""
|
||||||
a.pcsn = 输入.pcsn
|
a.pcsn = 输入.pcsn
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
|
OPTION 输入.pcsn_in <> ""
|
||||||
|
a.pcsn IN 输入.pcsn_in
|
||||||
|
ENDOPTION
|
||||||
OPTION 输入.begin_time <> ""
|
OPTION 输入.begin_time <> ""
|
||||||
b.confirm_time >= 输入.begin_time
|
b.confirm_time >= 输入.begin_time
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
@@ -316,6 +423,9 @@
|
|||||||
OPTION 输入.pcsn <> ""
|
OPTION 输入.pcsn <> ""
|
||||||
a.pcsn = 输入.pcsn
|
a.pcsn = 输入.pcsn
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
|
OPTION 输入.pcsn_in <> ""
|
||||||
|
a.pcsn IN 输入.pcsn_in
|
||||||
|
ENDOPTION
|
||||||
OPTION 输入.begin_time <> ""
|
OPTION 输入.begin_time <> ""
|
||||||
b.confirm_time >= 输入.begin_time
|
b.confirm_time >= 输入.begin_time
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
@@ -376,7 +486,7 @@
|
|||||||
plan1.is_delete = '0'
|
plan1.is_delete = '0'
|
||||||
GROUP BY container_name) plan ON plan.container_name = sub.container_name
|
GROUP BY container_name) plan ON plan.container_name = sub.container_name
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
limit 0,10000
|
limit 0,50000
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
Reference in New Issue
Block a user