opt:优化,出库查询页面效率

This commit is contained in:
DESKTOP-5DIJMF9\admin
2025-02-11 09:08:26 +08:00
parent 28f7ea731d
commit 9580b6c81b
3 changed files with 216 additions and 122 deletions

View File

@@ -164,6 +164,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
} else { } else {
map.put("sap_pcsn", "%" + map.get("sap_pcsn") + "%"); map.put("sap_pcsn", "%" + map.get("sap_pcsn") + "%");
} }
map.put("flag", "11");
} }
if (StrUtil.isNotEmpty(map.get("cust_code"))) { if (StrUtil.isNotEmpty(map.get("cust_code"))) {

View File

@@ -88,40 +88,217 @@
########################################## ##########################################
IF 输入.flag = "1" IF 输入.flag = "1"
PAGEQUERY PAGEQUERY
SELECT DISTINCT SELECT
ios.*, ios.*,
cu.shd_dtl_num, a.plan_qty,
cu.cust_name, IFNULL(c.vbeln,'') as vbeln
IFNULL(dtl.vbeln,'') as vbeln, FROM
cu.cust_simple_name, (
a.plan_qty, SELECT
attr.stor_name AS out_stor_name mst.*,
cu.shd_dtl_num,
cu.cust_name,
cu.cust_simple_name,
attr.stor_name AS out_stor_name
FROM
st_ivt_iostorinv mst
LEFT JOIN md_cs_customerbase cu ON mst.cust_code = cu.cust_code
LEFT JOIN st_ivt_bsrealstorattr attr ON attr.stor_id = mst.out_stor_id
WHERE
mst.io_type = '1'
and mst.is_delete='0'
and mst.stor_id in 输入.in_stor_id
OPTION 输入.bill_code <> ""
mst.bill_code like 输入.bill_code
ENDOPTION
OPTION 输入.cust_code <> ""
(cu.cust_code like 输入.cust_code or
cu.cust_simple_name like 输入.cust_code)
ENDOPTION
OPTION 输入.is_upload <> ""
mst.is_upload = 输入.is_upload
ENDOPTION
OPTION 输入.billTypes <> ""
mst.bill_type in 输入.billTypes
ENDOPTION
OPTION 输入.storIds <> ""
mst.stor_id in 输入.storIds
ENDOPTION
OPTION 输入.create_mode <> ""
mst.create_mode = 输入.create_mode
ENDOPTION
OPTION 输入.billStatuses <> ""
mst.bill_status in 输入.billStatuses
ENDOPTION
OPTION 输入.begin_time <> ""
mst.input_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
mst.input_time <= 输入.end_time
ENDOPTION
) ios
LEFT JOIN (
select
dtl.iostorinv_id,
dtl.vbeln
from
st_ivt_iostorinvdtl dtl
where 1=1
OPTION 输入.vbeln <> ""
dtl.vbeln like 输入.vbeln
ENDOPTION
OPTION 输入.vbeln_in <> ""
dtl.vbeln IN 输入.vbeln_in
ENDOPTION
OPTION 输入.width <> ""
dtl.width like 输入.width
ENDOPTION
GROUP BY
dtl.iostorinv_id,
dtl.vbeln
) c ON ios.iostorinv_id = c.iostorinv_id
LEFT JOIN (
SELECT
dis.iostorinv_id
FROM
st_ivt_iostorinvdis dis
WHERE
1 = 1
OPTION 输入.pcsn <> ""
dis.pcsn like 输入.pcsn
ENDOPTION
OPTION 输入.pcsn_in <> ""
dis.pcsn IN 输入.pcsn_in
ENDOPTION
OPTION 输入.box_no <> ""
dis.box_no like 输入.box_no
ENDOPTION
OPTION 输入.box_no_in <> ""
dis.box_no IN 输入.box_no_in
ENDOPTION
GROUP BY
dis.iostorinv_id
) b ON b.iostorinv_id = ios.iostorinv_id
LEFT JOIN (
SELECT
SUM(a.plan_qty) AS plan_qty,
a.iostorinv_id
FROM
st_ivt_iostorinvdis a
LEFT JOIN ST_IVT_IOStorInv b ON a.iostorinv_id = b.iostorinv_id
WHERE
b.io_type = '1'
and b.is_delete='0'
and b.is_overdue = '0'
GROUP BY a.iostorinv_id
) a ON a.iostorinv_id = ios.iostorinv_id
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "11"
PAGEQUERY
SELECT
ios.*,
a.plan_qty,
IFNULL(c.vbeln,'') as vbeln
FROM FROM
ST_IVT_IOStorInv ios (
LEFT JOIN md_cs_customerbase cu ON ios.cust_code = cu.cust_code SELECT
LEFT JOIN st_ivt_iostorinvdtl dtl ON ios.iostorinv_id = dtl.iostorinv_id mst.*,
LEFT JOIN st_ivt_iostorinvdis dis ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id cu.shd_dtl_num,
LEFT JOIN st_ivt_bsrealstorattr attr ON attr.stor_id = ios.out_stor_id cu.cust_name,
LEFT JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn AND sub.bill_code = ios.bill_code cu.cust_simple_name,
LEFT JOIN ( attr.stor_name AS out_stor_name
SELECT FROM
SUM(a.plan_qty) AS plan_qty, st_ivt_iostorinv mst
a.iostorinv_id LEFT JOIN md_cs_customerbase cu ON mst.cust_code = cu.cust_code
FROM LEFT JOIN st_ivt_bsrealstorattr attr ON attr.stor_id = mst.out_stor_id
st_ivt_iostorinvdis a WHERE
LEFT JOIN ST_IVT_IOStorInv b ON a.iostorinv_id = b.iostorinv_id mst.io_type = '1'
WHERE and mst.is_delete='0'
b.io_type = '1' and mst.stor_id in 输入.in_stor_id
and b.is_delete='0' OPTION 输入.bill_code <> ""
and a.is_overdue = '0' mst.bill_code like 输入.bill_code
and b.is_overdue = '1' ENDOPTION
GROUP BY a.iostorinv_id OPTION 输入.cust_code <> ""
(cu.cust_code like 输入.cust_code or
UNION cu.cust_simple_name like 输入.cust_code)
ENDOPTION
SELECT OPTION 输入.is_upload <> ""
mst.is_upload = 输入.is_upload
ENDOPTION
OPTION 输入.billTypes <> ""
mst.bill_type in 输入.billTypes
ENDOPTION
OPTION 输入.storIds <> ""
mst.stor_id in 输入.storIds
ENDOPTION
OPTION 输入.create_mode <> ""
mst.create_mode = 输入.create_mode
ENDOPTION
OPTION 输入.billStatuses <> ""
mst.bill_status in 输入.billStatuses
ENDOPTION
OPTION 输入.begin_time <> ""
mst.input_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
mst.input_time <= 输入.end_time
ENDOPTION
) ios
LEFT JOIN (
select
dtl.iostorinv_id,
dtl.vbeln
from
st_ivt_iostorinvdtl dtl
where 1=1
OPTION 输入.vbeln <> ""
dtl.vbeln like 输入.vbeln
ENDOPTION
OPTION 输入.vbeln_in <> ""
dtl.vbeln IN 输入.vbeln_in
ENDOPTION
OPTION 输入.width <> ""
dtl.width like 输入.width
ENDOPTION
GROUP BY
dtl.iostorinv_id,
dtl.vbeln
) c ON ios.iostorinv_id = c.iostorinv_id
LEFT JOIN (
SELECT
dis.iostorinv_id
FROM
st_ivt_iostorinvdis dis
LEFT JOIN pdm_bi_subpackagerelationrecord sub ON (sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn AND dis.iostorinv_id = sub.bill_id)
WHERE
1 = 1
OPTION 输入.pcsn <> ""
dis.pcsn like 输入.pcsn
ENDOPTION
OPTION 输入.pcsn_in <> ""
dis.pcsn IN 输入.pcsn_in
ENDOPTION
OPTION 输入.box_no <> ""
dis.box_no like 输入.box_no
ENDOPTION
OPTION 输入.box_no_in <> ""
dis.box_no IN 输入.box_no_in
ENDOPTION
OPTION 输入.sap_pcsn <> ""
sub.sap_pcsn like 输入.sap_pcsn
ENDOPTION
OPTION 输入.sap_pcsn_in <> ""
sub.sap_pcsn IN 输入.sap_pcsn_in
ENDOPTION
GROUP BY
dis.iostorinv_id
) b ON b.iostorinv_id = ios.iostorinv_id
LEFT JOIN (
SELECT
SUM(a.plan_qty) AS plan_qty, SUM(a.plan_qty) AS plan_qty,
a.iostorinv_id a.iostorinv_id
FROM FROM
@@ -132,93 +309,10 @@
and b.is_delete='0' and b.is_delete='0'
and b.is_overdue = '0' and b.is_overdue = '0'
GROUP BY a.iostorinv_id GROUP BY a.iostorinv_id
) a ON a.iostorinv_id = ios.iostorinv_id
) a ON a.iostorinv_id = ios.iostorinv_id ENDSELECT
WHERE ENDPAGEQUERY
ios.io_type = '1' ENDIF
and ios.is_delete='0'
and ios.stor_id in 输入.in_stor_id
OPTION 输入.bill_code <> ""
ios.bill_code like 输入.bill_code
ENDOPTION
OPTION 输入.sap_pcsn <> ""
sub.sap_pcsn like 输入.sap_pcsn
ENDOPTION
OPTION 输入.sap_pcsn_in <> ""
sub.sap_pcsn IN 输入.sap_pcsn_in
ENDOPTION
OPTION 输入.cust_code <> ""
(cu.cust_code like 输入.cust_code or
cu.cust_simple_name like 输入.cust_code)
ENDOPTION
OPTION 输入.pcsn <> ""
dis.pcsn like 输入.pcsn
ENDOPTION
OPTION 输入.pcsn_in <> ""
dis.pcsn IN 输入.pcsn_in
ENDOPTION
OPTION 输入.is_upload <> ""
ios.is_upload = 输入.is_upload
ENDOPTION
OPTION 输入.io_type <> ""
ios.io_type = 输入.io_type
ENDOPTION
OPTION 输入.vbeln <> ""
dtl.vbeln like 输入.vbeln
ENDOPTION
OPTION 输入.vbeln_in <> ""
dtl.vbeln IN 输入.vbeln_in
ENDOPTION
OPTION 输入.width <> ""
dtl.width like 输入.width
ENDOPTION
OPTION 输入.box_no <> ""
dis.box_no like 输入.box_no
ENDOPTION
OPTION 输入.box_no_in <> ""
dis.box_no IN 输入.box_no_in
ENDOPTION
OPTION 输入.billTypes <> ""
ios.bill_type in 输入.billTypes
ENDOPTION
OPTION 输入.storIds <> ""
ios.stor_id in 输入.storIds
ENDOPTION
OPTION 输入.create_mode <> ""
ios.create_mode = 输入.create_mode
ENDOPTION
OPTION 输入.billStatuses <> ""
ios.bill_status in 输入.billStatuses
ENDOPTION
OPTION 输入.begin_time <> ""
ios.input_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
ios.input_time <= 输入.end_time
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "111" IF 输入.flag = "111"
QUERY QUERY

View File

@@ -200,9 +200,8 @@
iostorinv_id iostorinv_id
FROM FROM
st_ivt_iostorinvdis dis st_ivt_iostorinvdis dis
LEFT JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = dis.pcsn LEFT JOIN pdm_bi_subpackagerelationrecord sub ON (sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn AND dis.iostorinv_id = sub.bill_id)
AND dis.box_no = sub.package_box_sn AND dis.iostorinv_id = sub.bill_id WHERE
WHERE
1=1 1=1
OPTION 输入.pcsn <> "" OPTION 输入.pcsn <> ""
dis.pcsn like 输入.pcsn dis.pcsn like 输入.pcsn