rev:成品入库查询

This commit is contained in:
2023-07-13 14:38:11 +08:00
parent 789bc30195
commit 0fdd2c6aa0
3 changed files with 272 additions and 19 deletions

View File

@@ -3,6 +3,7 @@ package org.nl.wms.stat.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
@@ -133,9 +134,9 @@ public class InBillQueryServiceImpl implements InBillQueryService {
JSONObject mapParam = new JSONObject();
if ("0".equals(is_all)) {
mapParam.put("flag", "1");
mapParam.put("flag", "3");
} else {
mapParam.put("flag", "2");
mapParam.put("flag", "4");
}
mapParam.put("stor_id", stor_id);
mapParam.put("bill_type", bill_type);
@@ -164,7 +165,7 @@ public class InBillQueryServiceImpl implements InBillQueryService {
for (int i = 0; i < resultJSONArray.size(); i++) {
JSONObject json = resultJSONArray.getJSONObject(i);
Map<String, Object> mp = new LinkedHashMap<>();
mp.put("日期", (json.getString("confirm_time").substring(0,10)).replace("-","/"));
mp.put("日期", (json.getString("confirm_time_class").substring(0,10)).replace("-","/"));
mp.put("班次", json.getString("classes"));
mp.put("客户代码", json.getString("sale_order_name"));
mp.put("规格", json.getString("thickness_request"));
@@ -179,17 +180,17 @@ public class InBillQueryServiceImpl implements InBillQueryService {
}else {
mp.put("木箱规格/尺寸", "");
}
mp.put("毛重合计", json.getString("box_weight"));
mp.put("净重KG", json.getString("net_weight"));
mp.put("毛重合计", NumberUtil.round(json.getString("box_weight"), 1));
mp.put("净重KG", NumberUtil.round(json.getString("net_weight"), 1));
mp.put("卷数", json.getString("quanlity_in_box"));
mp.put("品级", "A");
mp.put("小卷号", json.getString("pcsn"));
mp.put("箱号", json.getString("box_no"));
mp.put("母卷号", json.getString("parent_container_name"));
mp.put("基重g/m³面密度", json.getString("mass_per_unit_area"));
mp.put("基重g/m³面密度", NumberUtil.round(json.getString("mass_per_unit_area"), 2));
mp.put("居中度mm", "±1");
mp.put("塌边mm", "≤10");
mp.put("米数(长度)", json.getString("length"));
mp.put("米数(长度)", NumberUtil.round(json.getString("length"), 1));
mp.put("生产日期", json.getString("date_of_production").replace("-","/"));
mp.put("入库日期", json.getString("confirm_time").substring(0,10).replace("-","/"));
list.add(mp);
@@ -198,13 +199,16 @@ public class InBillQueryServiceImpl implements InBillQueryService {
for (int i = 0; i < resultJSONArray.size(); i++) {
JSONObject json = resultJSONArray.getJSONObject(i);
Map<String, Object> mp = new LinkedHashMap<>();
mp.put("序号", String.valueOf(i+1));
mp.put("日期", (json.getString("confirm_time_class").substring(0,10)).replace("-","/"));
mp.put("班次", json.getString("classes"));
mp.put("客户编码", json.getString("customer_name"));
mp.put("客户订单号", json.getString("sale_order_name"));
mp.put("生产日期", json.getString("date_of_production").replace("-","/"));
mp.put("箱号", json.getString("box_no"));
mp.put("生产批号", (json.getString("confirm_time").substring(0,10)).replace("-","").trim());
mp.put("规格", json.getString("specification"));
mp.put("净重", json.getString("net_weight"));
mp.put("净重", NumberUtil.round(json.getString("net_weight"), 1));
mp.put("等级", "A");
mp.put("备注", "");
list.add(mp);

View File

@@ -85,7 +85,16 @@
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='20:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59'
OR
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59'
)) then '晚班' end) AS classes
)) then '晚班' end) AS classes,
CONCAT( sub.box_length,'*',sub.box_width,'*',sub.box_high) AS box_size,
CASE
WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59'
THEN mst.confirm_time
WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59'
THEN DATE_SUB(mst.confirm_time,INTERVAL 1 day)
END AS confirm_time_class
FROM
st_ivt_iostorinvdis dis
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id
@@ -128,7 +137,7 @@
ENDOPTION
OPTION 输入.with <> ""
CONCAT(sub.width,'*',sub.thickness_request) = 输入.with
CONCAT( sub.thickness_request,'*',sub.width) = 输入.with
ENDOPTION
OPTION 输入.classes = "1"
@@ -169,7 +178,21 @@
SUM(sub.net_weight) AS net_weight,
MAX(mst.input_time) AS input_time,
MAX(mst.confirm_time) AS confirm_time,
CONCAT_WS('',MAX(sub.thickness_request),'*',MAX(sub.width)) AS specification
CONCAT_WS('',MAX(sub.thickness_request),'*',MAX(sub.width)) AS specification,
CONCAT( MAX(sub.box_length),'*',MAX(sub.box_width),'*',MAX(sub.box_high)) AS box_size,
(case when DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '19:59:59' then '白班'
when ((
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='20:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59'
OR
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59'
)) then '晚班' end) AS classes,
CASE
WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59'
THEN mst.confirm_time
WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59'
THEN DATE_SUB(mst.confirm_time,INTERVAL 1 day)
END AS confirm_time_class
FROM
st_ivt_iostorinvdis dis
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id
@@ -210,7 +233,7 @@
ENDOPTION
OPTION 输入.with <> ""
CONCAT(sub.width,'*',sub.thickness_request) = 输入.with
CONCAT( sub.thickness_request,'*',sub.width) = 输入.with
ENDOPTION
OPTION 输入.classes = "1"
@@ -227,6 +250,219 @@
GROUP BY
mst.iostorinv_id,
dis.box_no
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "3"
PAGEQUERY
SELECT
mst.stor_name,
dis.sect_name,
dis.struct_code,
dis.struct_name,
mst.bill_type,
dis.box_no,
mater.material_code,
mater.material_name,
mb.material_name AS box_name,
dis.pcsn,
sub.sap_pcsn,
sub.net_weight,
dis.qty_unit_name,
sub.customer_name,
sub.quanlity_in_box,
sub.customer_description,
sub.sale_order_name,
mst.input_time,
mst.confirm_time,
sub.date_of_production,
mst.input_optname,
sub.width,
sub.thickness,
sub.box_weight,
sub.length,
sub.thickness_request,
sub.width_standard,
sub.mass_per_unit_area,
(case when plan.parent_container_name <> '' then plan.parent_container_name else plan.restruct_container_name end) AS parent_container_name,
mst.remark,
(case when DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '19:59:59' then '白班'
when ((
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='20:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59'
OR
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59'
)) then '晚班' end) AS classes,
CONCAT( sub.box_length,'*',sub.box_width,'*',sub.box_high) AS box_size,
CASE
WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59'
THEN mst.confirm_time
WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59'
THEN DATE_SUB(mst.confirm_time,INTERVAL 1 day)
END AS confirm_time_class
FROM
st_ivt_iostorinvdis dis
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id
LEFT JOIN st_ivt_sectattr sect ON sect.sect_id = dis.sect_id
LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no
LEFT JOIN pdm_bi_slittingproductionplan plan ON plan.container_name = sub.container_name
LEFT JOIN md_me_materialbase mb ON mb.material_code = sub.box_type
WHERE
mst.io_type = '0'
AND mst.is_delete = '0'
AND mst.bill_status = '99'
OPTION 输入.stor_id <> ""
mst.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.is_virtual = "0"
sect.sect_type_attr <> '09'
ENDOPTION
OPTION 输入.is_virtual = "1"
sect.sect_type_attr = '09'
ENDOPTION
OPTION 输入.areas <> ""
LEFT(sub.container_name,2) IN 输入.areas
ENDOPTION
OPTION 输入.thickness_request <> ""
sub.thickness_request = 输入.thickness_request
ENDOPTION
OPTION 输入.bill_type <> ""
mst.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.begin_time <> ""
mst.input_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
mst.input_time <= 输入.end_time
ENDOPTION
OPTION 输入.with <> ""
CONCAT( sub.thickness_request,'*',sub.width) = 输入.with
ENDOPTION
OPTION 输入.classes = "1"
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '19:59:59'
ENDOPTION
OPTION 输入.classes = "2"
(
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='20:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59'
OR
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59'
)
ENDOPTION
order by confirm_time_class
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "4"
PAGEQUERY
SELECT
MAX(mst.stor_name) AS stor_name,
MAX(dis.sect_name) AS sect_name,
MAX(dis.struct_code) AS struct_code,
MAX(dis.struct_name) AS struct_name,
MAX(mst.bill_type) AS bill_type,
MAX(mater.material_code) AS material_code,
MAX(mater.material_name) AS material_name,
MAX(dis.qty_unit_name) AS qty_unit_name,
MAX(sub.customer_description) AS customer_description,
MAX(mst.input_optname) AS input_optname,
MAX(mst.remark) AS remark,
mst.iostorinv_id,
dis.box_no,
MAX(sub.customer_name) AS customer_name,
MAX(sub.sale_order_name) AS sale_order_name,
MAX(sub.date_of_production) AS date_of_production,
SUM(sub.net_weight) AS net_weight,
MAX(mst.input_time) AS input_time,
MAX(mst.confirm_time) AS confirm_time,
CONCAT_WS('',MAX(sub.thickness_request),'*',MAX(sub.width)) AS specification,
CONCAT( MAX(sub.box_length),'*',MAX(sub.box_width),'*',MAX(sub.box_high)) AS box_size,
(case when DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '19:59:59' then '白班'
when ((
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='20:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59'
OR
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59'
)) then '晚班' end) AS classes,
CASE
WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59'
THEN mst.confirm_time
WHEN DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >= '00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59'
THEN DATE_SUB(mst.confirm_time,INTERVAL 1 day)
END AS confirm_time_class
FROM
st_ivt_iostorinvdis dis
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dis.iostorinv_id
LEFT JOIN st_ivt_sectattr sect ON sect.sect_id = dis.sect_id
LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id
LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn AND sub.package_box_sn = dis.box_no
WHERE
mst.io_type = '0'
AND mst.is_delete = '0'
AND mst.bill_status = '99'
OPTION 输入.stor_id <> ""
mst.stor_id = 输入.stor_id
ENDOPTION
OPTION 输入.is_virtual = "0"
sect.sect_type_attr <> '09'
ENDOPTION
OPTION 输入.is_virtual = "1"
sect.sect_type_attr = '09'
ENDOPTION
OPTION 输入.areas <> ""
LEFT(sub.container_name,2) IN 输入.areas
ENDOPTION
OPTION 输入.thickness_request <> ""
sub.thickness_request = 输入.thickness_request
ENDOPTION
OPTION 输入.bill_type <> ""
mst.bill_type = 输入.bill_type
ENDOPTION
OPTION 输入.begin_time <> ""
mst.input_time >= 输入.begin_time
ENDOPTION
OPTION 输入.end_time <> ""
mst.input_time <= 输入.end_time
ENDOPTION
OPTION 输入.with <> ""
CONCAT( sub.thickness_request,'*',sub.width) = 输入.with
ENDOPTION
OPTION 输入.classes = "1"
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='08:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '19:59:59'
ENDOPTION
OPTION 输入.classes = "2"
(
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='20:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '23:59:59'
OR
DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) >='00:00:00' AND DATE_FORMAT( mst.confirm_time, '%H:%i:%s' ) <= '07:59:59'
)
ENDOPTION
GROUP BY
mst.iostorinv_id,
dis.box_no
order by confirm_time_class
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -29,7 +29,7 @@
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-form-item label="入库日期">
<el-date-picker
v-model="query.createTime"
type="daterange"
@@ -37,7 +37,6 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"
@change="crud.toQuery"
/>
</el-form-item>
@@ -64,7 +63,7 @@
v-model="query.with"
size="mini"
clearable
placeholder="例如:68*9.5"
placeholder="例如8*868"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
@@ -175,6 +174,7 @@
<el-table-column show-overflow-tooltip prop="struct_name" label="仓位名称" :min-width="flexWidth('struct_name',crud.data,'仓位名称')" />
<el-table-column show-overflow-tooltip prop="bill_type" :formatter="bill_typeFormat" label="业务类型" :min-width="flexWidth('bill_type',crud.data,'业务类型')" />
<el-table-column show-overflow-tooltip prop="box_no" label="木箱号" :min-width="flexWidth('box_no',crud.data,'木箱号')" />
<el-table-column show-overflow-tooltip prop="box_size" label="木箱尺寸" :min-width="flexWidth('box_size',crud.data,'木箱尺寸')" />
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="pcsn" label="子卷号" :min-width="flexWidth('pcsn',crud.data,'子卷号')" />
@@ -219,7 +219,7 @@ export default {
optShow: { add: false, reset: true },
idField: 'iostorinv_id',
url: '/api/in/InQuery',
query: { 'is_all': '0' },
query: { 'is_all': '0', 'bill_type': '0001', 'createTime': [new Date().daysAgo(7), new Date()] },
crudMethod: { ...crudInbillquery }
})
},
@@ -246,22 +246,35 @@ export default {
})
},
methods: {
[CRUD.HOOK.beforeRefresh]() {
return true
},
selectTime() {
var date = new Date()
var y = date.getFullYear()
var m = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
var d = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
var start_day = y + '-' + m + '-' + '01' + ' ' + '00:00:00'
var end_day = `${y}-${m}-${d}` + ' ' + '23:59:59'
this.query.createTime = [new Date(start_day), new Date(end_day)]
},
bill_typeFormat(row, column) {
return this.dict.label.ST_INV_IN_TYPE[row.bill_type]
},
downdtl() {
if (this.currentRow !== null) {
crud.downloadLoading = true
const data = this.crud.query
if (this.crud.query.createTime !== undefined) {
data.begin_time = this.crud.query.createTime[0]
data.end_time = this.crud.query.createTime[1]
}
this.showDtlLoading = true
download('/api/in/InQuery/download', data).then(result => {
downloadFile(result, '成品入库查询', 'xlsx')
crud.downloadLoading = false
this.showDtlLoading = false
}).catch(() => {
crud.downloadLoading = false
this.showDtlLoading = false
})
}
}