diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java index 7fc5816d1..10089ebcc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/service/impl/InBillQueryServiceImpl.java @@ -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 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 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); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql index d95c09dd0..cd82571bd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/stat/wql/ST_IVT_INBILLQUERY.wql @@ -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 \ No newline at end of file diff --git a/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue b/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue index 5e9ffc639..626e1915b 100644 --- a/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue +++ b/lms/nladmin-ui/src/views/wms/stat/inbillquery/index.vue @@ -29,7 +29,7 @@ - + @@ -64,7 +63,7 @@ v-model="query.with" size="mini" clearable - placeholder="例如:68*9.5" + placeholder="例如:8*868" @keyup.enter.native="crud.toQuery" /> @@ -175,6 +174,7 @@ + @@ -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 }) } }