opt:优化各个分页查询效率

This commit is contained in:
DESKTOP-5DIJMF9\admin
2025-02-13 12:54:09 +08:00
parent 9357451b18
commit 64290ef2a6
8 changed files with 248 additions and 94 deletions

View File

@@ -20,7 +20,7 @@
输入.customer_name TYPEAS s_string
输入.customer_description TYPEAS s_string
输入.package_box_sn TYPEAS s_string
输入.limits TYPEAS f_string
输入.limits TYPEAS s_string
输入.container_name TYPEAS s_string
输入.is_un_plan_production TYPEAS s_string
输入.sap_pcsn TYPEAS s_string
@@ -112,14 +112,13 @@
IF 输入.flag = "2"
PAGEQUERY
SELECT DISTINCT
sub.workorder_id
FROM
pdm_bi_subpackagerelation sub
INNER JOIN pdm_bi_subpackagerelationrecord record ON sub.container_name = record.container_name
WHERE
1=1
SELECT
sub.workorder_id
FROM
pdm_bi_subpackagerelation sub
INNER JOIN ( SELECT subre.container_name FROM pdm_bi_subpackagerelationrecord subre WHERE 1 = 1 GROUP BY subre.container_name ) c ON sub.container_name = c.container_name
WHERE
1 =1
OPTION 输入.material_code <> ""
sub.product_name LIKE 输入.material_code
ENDOPTION

View File

@@ -59,6 +59,7 @@ public class InchargeServiceImpl implements InchargeService {
}
if (ObjectUtil.isNotEmpty(sap_pcsn)) {
map.put("sap_pcsn", "%" + sap_pcsn + "%");
map.put("flag", "11");
}
if (ObjectUtil.isNotEmpty(pcsn)) {
map.put("pcsn", "%" + pcsn + "%");

View File

@@ -1877,7 +1877,7 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
@Transactional(rollbackFor = Exception.class)
public void download(Map whereJson, HttpServletResponse response) throws IOException {
HashMap<String, String> map = new HashMap<>();
map.put("flag", "1");
map.put("flag", "199");
map.put("buss_type", (String) whereJson.get("buss_type"));
map.put("stor_id", (String) whereJson.get("stor_id"));
map.put("bill_type", (String) whereJson.get("bill_type"));
@@ -1973,7 +1973,6 @@ public class RawAssistIStorServiceImpl implements RawAssistIStorService {
if (ObjectUtil.isNotEmpty(in_stor_id)) {
map.put("in_stor_id", in_stor_id);
}
JSONArray resultJSONArray = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParamMap(map).process().getResultJSONArray(0);
List<Map<String, Object>> list = new ArrayList<>();
for (int i = 0; i < resultJSONArray.size(); i++) {

View File

@@ -49,12 +49,77 @@
IF 输入.flag = "1"
PAGEQUERY
SELECT DISTINCT
SELECT
ios.*
FROM
ST_IVT_IOStorInv ios
LEFT JOIN st_ivt_iostorinvdis dis ON dis.iostorinv_id = ios.iostorinv_id
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn
INNER JOIN (
SELECT
dis.iostorinv_id
FROM
st_ivt_iostorinvdis dis
WHERE
1 = 1
OPTION 输入.pcsn <> ""
dis.pcsn like 输入.pcsn
ENDOPTION
GROUP BY
dis.iostorinv_id
) b ON b.iostorinv_id = ios.iostorinv_id
WHERE
ios.is_delete = '0'
AND ios.io_type = '0'
AND ios.bill_status = '99'
AND ios.is_writeoff = '0'
AND ios.bill_type = '0002'
and ios.stor_id in 输入.in_stor_id
OPTION 输入.bill_code <> ""
ios.bill_code like 输入.bill_code
ENDOPTION
OPTION 输入.stor_id <> ""
ios.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.bill_type <> ""
ios.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.create_mode <> ""
ios.create_mode = 输入.create_mode
ENDOPTION
OPTION 输入.begin_time <> ""
ios.input_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
ios.input_time <= 输入.end_time
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "11"
PAGEQUERY
SELECT
ios.*
FROM
ST_IVT_IOStorInv ios
INNER JOIN (
SELECT
dis.iostorinv_id
FROM
st_ivt_iostorinvdis dis
LEFT JOIN pdm_bi_subpackagerelation sub ON ( sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn )
WHERE
1 = 1
OPTION 输入.sap_pcsn <> ""
sub.sap_pcsn like 输入.sap_pcsn
ENDOPTION
OPTION 输入.pcsn <> ""
dis.pcsn like 输入.pcsn
ENDOPTION
GROUP BY
dis.iostorinv_id
) b ON b.iostorinv_id = ios.iostorinv_id
WHERE
ios.is_delete = '0'
AND ios.io_type = '0'
@@ -62,39 +127,25 @@
AND ios.is_writeoff = '0'
AND ios.bill_type = '0002'
and ios.stor_id in 输入.in_stor_id
OPTION 输入.bill_code <> ""
ios.bill_code like 输入.bill_code
ENDOPTION
OPTION 输入.stor_id <> ""
ios.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.sap_pcsn <> ""
sub.sap_pcsn like 输入.sap_pcsn
ENDOPTION
OPTION 输入.pcsn <> ""
dis.pcsn like 输入.pcsn
ENDOPTION
OPTION 输入.bill_type <> ""
ios.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.create_mode <> ""
ios.create_mode = 输入.create_mode
ENDOPTION
OPTION 输入.begin_time <> ""
ios.input_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
ios.input_time <= 输入.end_time
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -37,6 +37,7 @@
输入.row_num TYPEAS s_string
输入.block_num TYPEAS s_string
输入.placement_type TYPEAS s_string
输入.limits TYPEAS s_string
输入.sql_str TYPEAS f_string
输入.in_stor_id TYPEAS f_string
输入.in_layer_num TYPEAS f_string
@@ -145,11 +146,90 @@
OPTION 输入.end_time <> ""
ios.input_time <= 输入.end_time
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "199"
QUERY
SELECT
ios.*,
IFNULL(dtl.vbeln,'') as vbeln
FROM
ST_IVT_IOStorInv ios
LEFT JOIN st_ivt_iostorinvdtl dtl ON ios.iostorinv_id = dtl.iostorinv_id
LEFT JOIN st_ivt_iostorinvdis dis ON dtl.iostorinvdtl_id = dis.iostorinvdtl_id
LEFT JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = dis.pcsn AND ios.bill_code = sub.bill_code
WHERE
ios.is_delete = '0'
AND
ios.io_type = '0'
AND ios.stor_id in 输入.in_stor_id
OPTION 输入.box_no <> ""
dis.box_no like 输入.box_no
ENDOPTION
OPTION 输入.box_no_in <> ""
dis.box_no IN 输入.box_no_in
ENDOPTION
OPTION 输入.vbeln <> ""
dtl.vbeln like 输入.vbeln
ENDOPTION
OPTION 输入.vbeln_in <> ""
dtl.vbeln IN 输入.vbeln_in
ENDOPTION
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 输入.pcsn <> ""
dis.pcsn like 输入.pcsn
ENDOPTION
OPTION 输入.pcsn_in <> ""
dis.pcsn IN 输入.pcsn_in
ENDOPTION
OPTION 输入.stor_id <> ""
ios.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.bill_type <> ""
ios.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.create_mode <> ""
ios.create_mode = 输入.create_mode
ENDOPTION
OPTION 输入.bill_status <> ""
ios.bill_status = 输入.bill_status
ENDOPTION
OPTION 输入.begin_time <> ""
ios.input_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
ios.input_time <= 输入.end_time
ENDOPTION
limit 0,10000
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "29"
PAGEQUERY
SELECT

View File

@@ -64,23 +64,31 @@
IF 输入.flag = "1"
PAGEQUERY
SELECT DISTINCT
SELECT
cg.changeinv_id AS id,
cg.*
cg.*
FROM
st_ivt_structivtchange cg
LEFT JOIN st_ivt_structivtchangedtl dtl ON cg.changeinv_id = dtl.changeinv_id
inner JOIN (
SELECT
dtl.changeinv_id
FROM
st_ivt_structivtchangedtl dtl
WHERE
1 = 1
OPTION 输入.pcsn <> ""
dtl.pcsn = 输入.pcsn
ENDOPTION
GROUP BY
dtl.changeinv_id
) b ON cg.changeinv_id = b.changeinv_id
WHERE
1 = 1
1 = 1
AND cg.is_delete = '0'
and cg.stor_id in 输入.in_stor_id
OPTION 输入.bill_code <> ""
cg.bill_code like 输入.bill_code
ENDOPTION
OPTION 输入.pcsn <> ""
dtl.pcsn = 输入.pcsn
ENDOPTION
OPTION 输入.buss_type <> ""
cg.buss_type like 输入.buss_type
ENDOPTION
@@ -109,42 +117,58 @@
IF 输入.flag = "2"
QUERY
SELECT DISTINCT
dtl.mfg_order_name AS new_sale_order_name,
dtl.customer_name AS new_customer_name,
dtl.customer_description AS new_customer_description,
dtl.package_box_sn AS storagevehicle_code,
sa.sect_name AS turnout_sect_name,
sa.struct_code AS turnout_struct_code,
mb.material_code,
mb.material_name,
dtl.seq_no,
sub.sale_order_name,
sub.customer_name,
sub.customer_description,
sub.net_weight AS qty,
dtl.demand_date,
dtl.UpdatedDateOfProduction AS date_of_FG_inbound,
dtl.isRePrintPackageBoxLabel,
dtl.isUnPackBox,
dtl.pcsn
FROM
st_ivt_structivtchangedtl dtl
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
LEFT JOIN st_ivt_structattr sa ON sa.storagevehicle_code = dtl.package_box_sn
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = dtl.package_box_sn AND sub.container_name = dtl.pcsn
WHERE
1 = 1
OPTION 输入.changeinv_id <> ""
dtl.changeinv_id = 输入.changeinv_id
ENDOPTION
OPTION 输入.changeinvdtl_id <> ""
dtl.changeinvdtl_id = 输入.changeinvdtl_id
ENDOPTION
OPTION 输入.work_status <> ""
dtl.work_status <= 输入.work_status
ENDOPTION
order by dtl.seq_no
SELECT * from
(
select
dtl.mfg_order_name AS new_sale_order_name,
dtl.customer_name AS new_customer_name,
dtl.customer_description AS new_customer_description,
dtl.package_box_sn AS storagevehicle_code,
dtl.demand_date,
dtl.UpdatedDateOfProduction AS date_of_FG_inbound,
dtl.isRePrintPackageBoxLabel,
dtl.isUnPackBox,
dtl.pcsn,
dtl.seq_no,
sa.sect_name AS turnout_sect_name,
sa.struct_code AS turnout_struct_code,
mb.material_code,
mb.material_name
FROM
st_ivt_structivtchangedtl dtl
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
LEFT JOIN st_ivt_structattr sa ON sa.storagevehicle_code = dtl.package_box_sn
WHERE
1 = 1
OPTION 输入.changeinv_id <> ""
dtl.changeinv_id = 输入.changeinv_id
ENDOPTION
OPTION 输入.changeinvdtl_id <> ""
dtl.changeinvdtl_id = 输入.changeinvdtl_id
ENDOPTION
OPTION 输入.work_status <> ""
dtl.work_status <= 输入.work_status
ENDOPTION
order by dtl.seq_no
) dtl2
LEFT JOIN (
select
sub.sale_order_name,
sub.customer_name,
sub.customer_description,
sub.net_weight ,
sub.package_box_sn,
sub.container_name
from
pdm_bi_subpackagerelation sub
group by
sub.sale_order_name,
sub.customer_name,
sub.customer_description,
sub.net_weight,
sub.package_box_sn,
sub.container_name
) sub2 ON (sub2.package_box_sn = dtl2.storagevehicle_code AND sub2.container_name = dtl2.pcsn)
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -79,21 +79,22 @@
move.*
FROM
ST_IVT_MoveInv move
inner join (
SELECT
movedtl.moveinv_id
FROM
st_ivt_moveinvdtl movedtl
INNER JOIN md_me_materialbase mb ON mb.material_id = movedtl.material_id
WHERE
1 = 1
OPTION 输入.material_code <> ""
(mb.material_code LIKE 输入.material_code OR mb.material_name LIKE 输入.material_code)
ENDOPTION
GROUP BY movedtl.moveinv_id
) dtl2 on dtl2.moveinv_id = move.moveinv_id
WHERE
1 = 1
AND move.is_delete = '0'
AND move.moveinv_id IN (
SELECT DISTINCT
(movedtl.moveinv_id)
FROM
st_ivt_moveinvdtl movedtl
LEFT JOIN md_me_materialbase mb ON mb.material_id = movedtl.material_id
WHERE
1 = 1
OPTION 输入.material_code <> ""
(mb.material_code LIKE 输入.material_code OR mb.material_name LIKE 输入.material_code)
ENDOPTION
)
AND move.stor_id in 输入.in_stor_id
OPTION 输入.bill_code <> ""

View File

@@ -138,7 +138,7 @@
mst.input_time <= 输入.end_time
ENDOPTION
) ios
LEFT JOIN (
inner JOIN (
select
dtl.iostorinv_id,
dtl.vbeln
@@ -158,7 +158,7 @@
dtl.iostorinv_id,
dtl.vbeln
) c ON ios.iostorinv_id = c.iostorinv_id
LEFT JOIN (
inner JOIN (
SELECT
dis.iostorinv_id
FROM
@@ -248,7 +248,7 @@
mst.input_time <= 输入.end_time
ENDOPTION
) ios
LEFT JOIN (
inner JOIN (
select
dtl.iostorinv_id,
dtl.vbeln
@@ -268,7 +268,7 @@
dtl.iostorinv_id,
dtl.vbeln
) c ON ios.iostorinv_id = c.iostorinv_id
LEFT JOIN (
inner JOIN (
SELECT
dis.iostorinv_id
FROM
@@ -426,8 +426,7 @@
ENDOPTION
GROUP BY sub.sale_order_name,spec,ios.iostorinv_id,dtl.iostorinvdtl_id
limit 0,10000
ENDSELECT
ENDQUERY
ENDIF