opt:优化出入库回传 功能查询效率
This commit is contained in:
@@ -53,9 +53,14 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||
map.put("bill_status", MapUtil.getStr(whereJson, "bill_status"));
|
||||
map.put("bill_type", MapUtil.getStr(whereJson, "bill_type"));
|
||||
map.put("is_upload", MapUtil.getStr(whereJson, "is_upload"));
|
||||
map.put("begin_time", MapUtil.getStr(whereJson, "begin_time"));
|
||||
map.put("end_time", MapUtil.getStr(whereJson, "end_time"));
|
||||
map.put("is_writeoff", MapUtil.getStr(whereJson, "is_writeoff"));
|
||||
String begin_time = MapUtil.getStr(whereJson, "begin_time");
|
||||
if (StrUtil.isNotEmpty(begin_time)) {
|
||||
map.put("begin_time", begin_time.substring(0,10)+" 00:00:00");
|
||||
}
|
||||
String end_time = MapUtil.getStr(whereJson, "end_time");
|
||||
if (StrUtil.isNotEmpty(end_time)) {
|
||||
map.put("end_time", end_time.substring(0,10)+" 23:59:59");
|
||||
}
|
||||
|
||||
// 空格查询
|
||||
String vbeln = MapUtil.getStr(map, "vbeln");
|
||||
@@ -113,6 +118,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||
// 空格查询
|
||||
String sap_pcsn = MapUtil.getStr(map, "sap_pcsn");
|
||||
if (StrUtil.isNotEmpty(sap_pcsn)) {
|
||||
//若客户需查询sap_pcsn字段,则调用flag 11
|
||||
map.put("flag", "11");
|
||||
// 判断是否有空格
|
||||
boolean matches = sap_pcsn.matches(".*\\s.*");
|
||||
|
||||
@@ -127,10 +134,10 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||
}
|
||||
}
|
||||
|
||||
if (!ObjectUtil.isEmpty(bill_code)) {
|
||||
if (ObjectUtil.isNotEmpty(bill_code)) {
|
||||
map.put("bill_code", "%" + bill_code + "%");
|
||||
}
|
||||
if (!ObjectUtil.isEmpty(material_search)) {
|
||||
if (ObjectUtil.isNotEmpty(material_search)) {
|
||||
map.put("material_search", "%" + material_search + "%");
|
||||
}
|
||||
|
||||
@@ -142,7 +149,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||
map.put("in_stor_id", in_stor_id);
|
||||
}
|
||||
|
||||
JSONObject jo = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mst.input_time desc");
|
||||
JSONObject jo = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mst2.input_time desc");
|
||||
return jo;
|
||||
|
||||
}
|
||||
|
||||
@@ -66,124 +66,195 @@
|
||||
IF 输入.flag = "1"
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
mst.*,
|
||||
IFNULL( a.source_bill_type, '' ) AS source_bill_type,
|
||||
IFNULL(a.vbeln,'') AS vbeln,
|
||||
user.person_name AS upload_name
|
||||
mst2.*,
|
||||
IFNULL( a.source_bill_type, '' ) AS source_bill_type,
|
||||
IFNULL( a.vbeln, '' ) AS vbeln
|
||||
FROM
|
||||
st_ivt_iostorinv mst
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
iostorinv_id,
|
||||
MAX( source_bill_type ) AS source_bill_type,
|
||||
MAX( vbeln ) AS vbeln
|
||||
FROM
|
||||
st_ivt_iostorinvdtl dtl
|
||||
INNER JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||
WHERE
|
||||
1=1
|
||||
|
||||
OPTION 输入.vbeln <> ""
|
||||
(
|
||||
SELECT
|
||||
mst.*,
|
||||
USER.person_name AS upload_name
|
||||
FROM
|
||||
st_ivt_iostorinv mst
|
||||
LEFT JOIN sys_user USER ON USER.user_id = mst.upload_optid
|
||||
WHERE
|
||||
mst.is_delete = '0'
|
||||
and mst.bill_status = '99'
|
||||
and mst.stor_id in 输入.in_stor_id
|
||||
OPTION 输入.stor_id <> ""
|
||||
mst.stor_id = 输入.stor_id
|
||||
ENDOPTION
|
||||
OPTION 输入.bill_type <> ""
|
||||
mst.bill_type = 输入.bill_type
|
||||
ENDOPTION
|
||||
OPTION 输入.bill_code <> ""
|
||||
mst.bill_code like 输入.bill_code
|
||||
ENDOPTION
|
||||
OPTION 输入.io_type <> ""
|
||||
mst.io_type = 输入.io_type
|
||||
ENDOPTION
|
||||
OPTION 输入.is_upload <> ""
|
||||
mst.is_upload = 输入.is_upload
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
mst.input_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
mst.input_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
) mst2
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
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
|
||||
iostorinv_id
|
||||
) b ON b.iostorinv_id = mst2.iostorinv_id
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
iostorinv_id,
|
||||
MAX( source_bill_type ) AS source_bill_type,
|
||||
MAX( vbeln ) AS vbeln
|
||||
FROM
|
||||
st_ivt_iostorinvdtl dtl
|
||||
INNER JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||
WHERE
|
||||
1 = 1
|
||||
OPTION 输入.vbeln <> ""
|
||||
dtl.vbeln like 输入.vbeln
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.vbeln_in <> ""
|
||||
ENDOPTION
|
||||
OPTION 输入.vbeln_in <> ""
|
||||
dtl.vbeln IN 输入.vbeln_in
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.material_search <> ""
|
||||
(
|
||||
mb.material_code like 输入.material_search
|
||||
OR
|
||||
mb.material_name like 输入.material_search
|
||||
)
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
iostorinv_id
|
||||
) a ON mst.iostorinv_id = a.iostorinv_id
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
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 输入.sap_pcsn <> ""
|
||||
sub.sap_pcsn like 输入.sap_pcsn
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.sap_pcsn_in <> ""
|
||||
sub.sap_pcsn IN 输入.sap_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
|
||||
iostorinv_id
|
||||
) b ON b.iostorinv_id = mst.iostorinv_id
|
||||
LEFT JOIN sys_user user ON user.user_id = mst.upload_optid
|
||||
WHERE
|
||||
mst.is_delete = '0'
|
||||
and mst.stor_id in 输入.in_stor_id
|
||||
|
||||
OPTION 输入.stor_id <> ""
|
||||
mst.stor_id = 输入.stor_id
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.is_writeoff <> ""
|
||||
mst.is_writeoff = 输入.is_writeoff
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.bill_status <> ""
|
||||
mst.bill_status = 输入.bill_status
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.bill_type <> ""
|
||||
mst.bill_type = 输入.bill_type
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.bill_status <> ""
|
||||
mst.bill_status = 输入.bill_status
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.bill_code <> ""
|
||||
mst.bill_code like 输入.bill_code
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.io_type <> ""
|
||||
mst.io_type = 输入.io_type
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.is_upload <> ""
|
||||
mst.is_upload = 输入.is_upload
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.begin_time <> ""
|
||||
mst.input_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
mst.input_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
ENDOPTION
|
||||
OPTION 输入.material_search <> ""
|
||||
(
|
||||
mb.material_code like 输入.material_search
|
||||
OR
|
||||
mb.material_name like 输入.material_search
|
||||
)
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
iostorinv_id
|
||||
) a ON mst2.iostorinv_id = a.iostorinv_id
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "11"
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
mst2.*,
|
||||
IFNULL( a.source_bill_type, '' ) AS source_bill_type,
|
||||
IFNULL( a.vbeln, '' ) AS vbeln
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
mst.*,
|
||||
USER.person_name AS upload_name
|
||||
FROM
|
||||
st_ivt_iostorinv mst
|
||||
LEFT JOIN sys_user USER ON USER.user_id = mst.upload_optid
|
||||
WHERE
|
||||
mst.is_delete = '0'
|
||||
and mst.bill_status = '99'
|
||||
and mst.stor_id in 输入.in_stor_id
|
||||
OPTION 输入.stor_id <> ""
|
||||
mst.stor_id = 输入.stor_id
|
||||
ENDOPTION
|
||||
OPTION 输入.bill_type <> ""
|
||||
mst.bill_type = 输入.bill_type
|
||||
ENDOPTION
|
||||
OPTION 输入.bill_code <> ""
|
||||
mst.bill_code like 输入.bill_code
|
||||
ENDOPTION
|
||||
OPTION 输入.io_type <> ""
|
||||
mst.io_type = 输入.io_type
|
||||
ENDOPTION
|
||||
OPTION 输入.is_upload <> ""
|
||||
mst.is_upload = 输入.is_upload
|
||||
ENDOPTION
|
||||
OPTION 输入.begin_time <> ""
|
||||
mst.input_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
OPTION 输入.end_time <> ""
|
||||
mst.input_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
) mst2
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
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 输入.sap_pcsn <> ""
|
||||
sub.sap_pcsn like 输入.sap_pcsn
|
||||
ENDOPTION
|
||||
OPTION 输入.sap_pcsn_in <> ""
|
||||
sub.sap_pcsn IN 输入.sap_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
|
||||
iostorinv_id
|
||||
) b ON b.iostorinv_id = mst2.iostorinv_id
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
iostorinv_id,
|
||||
MAX( source_bill_type ) AS source_bill_type,
|
||||
MAX( vbeln ) AS vbeln
|
||||
FROM
|
||||
st_ivt_iostorinvdtl dtl
|
||||
INNER JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||
WHERE
|
||||
1 = 1
|
||||
OPTION 输入.vbeln <> ""
|
||||
dtl.vbeln like 输入.vbeln
|
||||
ENDOPTION
|
||||
OPTION 输入.vbeln_in <> ""
|
||||
dtl.vbeln IN 输入.vbeln_in
|
||||
ENDOPTION
|
||||
OPTION 输入.material_search <> ""
|
||||
(
|
||||
mb.material_code like 输入.material_search
|
||||
OR
|
||||
mb.material_name like 输入.material_search
|
||||
)
|
||||
ENDOPTION
|
||||
GROUP BY
|
||||
iostorinv_id
|
||||
) a ON mst2.iostorinv_id = a.iostorinv_id
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
QUERY
|
||||
SELECT DISTINCT
|
||||
@@ -216,3 +287,4 @@
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
|
||||
Reference in New Issue
Block a user