opt:优化出入库回传 功能查询效率

This commit is contained in:
DESKTOP-5DIJMF9\admin
2025-02-07 16:08:22 +08:00
parent 3a312c34a3
commit 947bea0cc1
3 changed files with 221 additions and 139 deletions

View File

@@ -53,9 +53,14 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
map.put("bill_status", MapUtil.getStr(whereJson, "bill_status")); map.put("bill_status", MapUtil.getStr(whereJson, "bill_status"));
map.put("bill_type", MapUtil.getStr(whereJson, "bill_type")); map.put("bill_type", MapUtil.getStr(whereJson, "bill_type"));
map.put("is_upload", MapUtil.getStr(whereJson, "is_upload")); map.put("is_upload", MapUtil.getStr(whereJson, "is_upload"));
map.put("begin_time", MapUtil.getStr(whereJson, "begin_time")); String begin_time = MapUtil.getStr(whereJson, "begin_time");
map.put("end_time", MapUtil.getStr(whereJson, "end_time")); if (StrUtil.isNotEmpty(begin_time)) {
map.put("is_writeoff", MapUtil.getStr(whereJson, "is_writeoff")); 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"); String vbeln = MapUtil.getStr(map, "vbeln");
@@ -113,6 +118,8 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
// 空格查询 // 空格查询
String sap_pcsn = MapUtil.getStr(map, "sap_pcsn"); String sap_pcsn = MapUtil.getStr(map, "sap_pcsn");
if (StrUtil.isNotEmpty(sap_pcsn)) { if (StrUtil.isNotEmpty(sap_pcsn)) {
//若客户需查询sap_pcsn字段则调用flag 11
map.put("flag", "11");
// 判断是否有空格 // 判断是否有空格
boolean matches = sap_pcsn.matches(".*\\s.*"); 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 + "%"); map.put("bill_code", "%" + bill_code + "%");
} }
if (!ObjectUtil.isEmpty(material_search)) { if (ObjectUtil.isNotEmpty(material_search)) {
map.put("material_search", "%" + 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); 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; return jo;
} }

View File

@@ -66,124 +66,195 @@
IF 输入.flag = "1" IF 输入.flag = "1"
PAGEQUERY PAGEQUERY
SELECT SELECT
mst.*, mst2.*,
IFNULL( a.source_bill_type, '' ) AS source_bill_type, IFNULL( a.source_bill_type, '' ) AS source_bill_type,
IFNULL(a.vbeln,'') AS vbeln, IFNULL( a.vbeln, '' ) AS vbeln
user.person_name AS upload_name
FROM FROM
st_ivt_iostorinv mst (
INNER JOIN ( SELECT
SELECT mst.*,
iostorinv_id, USER.person_name AS upload_name
MAX( source_bill_type ) AS source_bill_type, FROM
MAX( vbeln ) AS vbeln st_ivt_iostorinv mst
FROM LEFT JOIN sys_user USER ON USER.user_id = mst.upload_optid
st_ivt_iostorinvdtl dtl WHERE
INNER JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id mst.is_delete = '0'
WHERE and mst.bill_status = '99'
1=1 and mst.stor_id in 输入.in_stor_id
OPTION 输入.stor_id <> ""
OPTION 输入.vbeln <> "" 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 dtl.vbeln like 输入.vbeln
ENDOPTION ENDOPTION
OPTION 输入.vbeln_in <> ""
OPTION 输入.vbeln_in <> ""
dtl.vbeln IN 输入.vbeln_in dtl.vbeln IN 输入.vbeln_in
ENDOPTION ENDOPTION
OPTION 输入.material_search <> ""
OPTION 输入.material_search <> "" (
( mb.material_code like 输入.material_search
mb.material_code like 输入.material_search OR
OR mb.material_name like 输入.material_search
mb.material_name like 输入.material_search )
) ENDOPTION
ENDOPTION GROUP BY
GROUP BY iostorinv_id
iostorinv_id ) a ON mst2.iostorinv_id = a.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
ENDSELECT ENDSELECT
ENDPAGEQUERY ENDPAGEQUERY
ENDIF 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" IF 输入.flag = "2"
QUERY QUERY
SELECT DISTINCT SELECT DISTINCT
@@ -216,3 +287,4 @@
ENDSELECT ENDSELECT
ENDQUERY ENDQUERY
ENDIF ENDIF

View File

@@ -63,24 +63,6 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!--<el-form-item label="单据状态">
<el-select
v-model="query.bill_status"
clearable
size="mini"
placeholder="单据状态"
class="filter-item"
@change="crud.toQuery"
>
<el-option
v-for="item in dict.io_bill_status"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>-->
<el-form-item label="物料"> <el-form-item label="物料">
<label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label> <label slot="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:</label>
<el-input <el-input
@@ -165,7 +147,8 @@
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']" :default-time="['00:00:00', '23:59:59']"
@change="crud.toQuery" @input="onInput()"
@change="mytoQuery"
/> />
</el-form-item> </el-form-item>
<rrOperation /> <rrOperation />
@@ -286,6 +269,7 @@ import ViewDialog from '@/views/wms/st/inAndOutReturn/ViewDialog'
import crudUserStor from '@/views/wms/basedata/st/userStor/userStor' import crudUserStor from '@/views/wms/basedata/st/userStor/userStor'
import { download } from '@/api/data' import { download } from '@/api/data'
import { downloadFile } from '@/utils' import { downloadFile } from '@/utils'
import Date from '@/utils/datetime'
export default { export default {
name: 'Return', name: 'Return',
@@ -315,6 +299,7 @@ export default {
mstrow: {}, mstrow: {},
fullscreenLoading: false, fullscreenLoading: false,
storlist: [], storlist: [],
query_flag: true,
billtypelist: [], billtypelist: [],
showDtlLoading: false showDtlLoading: false
} }
@@ -331,18 +316,36 @@ export default {
}) })
// debugger // debugger
this.billtypelist = this.dict.ST_INV_OUT_TYPE this.billtypelist = this.dict.ST_INV_OUT_TYPE
this.crud.query.createTime = [new Date().daysAgo(30), new Date()]
this.initQuery() this.initQuery()
}, },
methods: { methods: {
[CRUD.HOOK.beforeRefresh]() {
if (this.query_flag) {
this.crud.query.begin_time = (new Date().daysAgo(30)).strftime('%F', 'zh')
this.crud.query.end_time = (new Date()).strftime('%F', 'zh')
this.query_flag = false
}
},
/* 搜索框出入类型 默认出库*/ /* 搜索框出入类型 默认出库*/
initQuery() { initQuery() {
this.query.io_type = '1' this.query.io_type = '1'
this.query.is_upload = '0' this.query.is_upload = '0'
this.crud.toQuery() this.crud.toQuery()
}, },
// [CRUD.HOOK.beforeRefresh]() { mytoQuery(array1) {
// return true if (array1 === null) {
// }, this.crud.query.begin_time = ''
this.crud.query.end_time = ''
} else {
this.crud.query.begin_time = array1[0]
this.crud.query.end_time = array1[1]
}
this.crud.toQuery()
},
onInput() {
this.$forceUpdate()
},
querytable() { querytable() {
this.onSelectAll() this.onSelectAll()
this.crud.toQuery() this.crud.toQuery()