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