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_name TYPEAS s_string
输入.customer_description TYPEAS s_string 输入.customer_description TYPEAS s_string
输入.package_box_sn TYPEAS s_string 输入.package_box_sn TYPEAS s_string
输入.limits TYPEAS f_string 输入.limits TYPEAS s_string
输入.container_name TYPEAS s_string 输入.container_name TYPEAS s_string
输入.is_un_plan_production TYPEAS s_string 输入.is_un_plan_production TYPEAS s_string
输入.sap_pcsn TYPEAS s_string 输入.sap_pcsn TYPEAS s_string
@@ -112,14 +112,13 @@
IF 输入.flag = "2" IF 输入.flag = "2"
PAGEQUERY PAGEQUERY
SELECT DISTINCT SELECT
sub.workorder_id sub.workorder_id
FROM FROM
pdm_bi_subpackagerelation sub pdm_bi_subpackagerelation sub
INNER JOIN pdm_bi_subpackagerelationrecord record ON sub.container_name = record.container_name 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 WHERE
1=1 1 =1
OPTION 输入.material_code <> "" OPTION 输入.material_code <> ""
sub.product_name LIKE 输入.material_code sub.product_name LIKE 输入.material_code
ENDOPTION ENDOPTION

View File

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

View File

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

View File

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

View File

@@ -37,6 +37,7 @@
输入.row_num TYPEAS s_string 输入.row_num TYPEAS s_string
输入.block_num TYPEAS s_string 输入.block_num TYPEAS s_string
输入.placement_type TYPEAS s_string 输入.placement_type TYPEAS s_string
输入.limits TYPEAS s_string
输入.sql_str TYPEAS f_string 输入.sql_str TYPEAS f_string
输入.in_stor_id TYPEAS f_string 输入.in_stor_id TYPEAS f_string
输入.in_layer_num TYPEAS f_string 输入.in_layer_num TYPEAS f_string
@@ -145,11 +146,90 @@
OPTION 输入.end_time <> "" OPTION 输入.end_time <> ""
ios.input_time <= 输入.end_time ios.input_time <= 输入.end_time
ENDOPTION ENDOPTION
ENDSELECT ENDSELECT
ENDPAGEQUERY ENDPAGEQUERY
ENDIF 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" IF 输入.flag = "29"
PAGEQUERY PAGEQUERY
SELECT SELECT

View File

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

View File

@@ -79,21 +79,22 @@
move.* move.*
FROM FROM
ST_IVT_MoveInv move 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 WHERE
1 = 1 1 = 1
AND move.is_delete = '0' 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 AND move.stor_id in 输入.in_stor_id
OPTION 输入.bill_code <> "" OPTION 输入.bill_code <> ""

View File

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