From e8022958e7d92939bf8e18888e5e5b7857390fc8 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Fri, 21 Oct 2022 10:54:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/StatisticalReportServiceImpl.java | 42 ++++++++++--------- .../wql/statistical_report_query_01.wql | 8 ++-- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java index b3eec987..8043d916 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/service/impl/StatisticalReportServiceImpl.java @@ -125,7 +125,7 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { if (ObjectUtil.isNotEmpty(form_qty)) { need_qty = form_qty.getDoubleValue("qty"); } - BigDecimal canuse_num = NumberUtil.sub(now_ivt - need_qty); + double canuse_num = NumberUtil.sub(now_ivt - need_qty).doubleValue(); jo1.put(material_id, String.format("%.3f", canuse_num)); //2、排产需求量(未开单的工令重量+排产未生成工令日计划重量)根据bom计算需要多少原料库存重量: @@ -164,7 +164,7 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { jo6.put(material_id, String.format("%.3f", notqty)); //5、库/需差额量 :库存现存量-排产需求量 - jo3.put(material_id, String.format("%.3f", (Double.parseDouble(canuse_num + "") - bom_qty))); + jo3.put(material_id, String.format("%.3f", (canuse_num - bom_qty))); //7、最低储备定额:物料的安全库存量下限 JSONObject safe_jo = WQLObject.getWQLObject("ST_IVT_MaterialSafeIvt").query("material_id = '" + material_id + "'").uniqueResult(0); @@ -175,26 +175,30 @@ public class StatisticalReportServiceImpl implements StatisticalReportService { jo7.put(material_id, String.format("%.3f", safe_qty)); //8、采购缺口:库存+待检+在途+最低储备-排产量 - double buy_qty = bom_qty + safe_qty - (canuse_num.doubleValue() + noin_qty + notqty); + double buy_qty = bom_qty + safe_qty - (canuse_num + noin_qty + notqty); jo8.put(material_id, String.format("%.3f", buy_qty)); //6、覆盖日期:物料库存可坚持到哪一天:库存现存量减每天需求量,哪天<0,取前一天 - for (int j = 1; j <= betweenDay; j++) { - DateTime newDate = DateUtil.offsetDay(date1, j); - //查询该物料当天的需求量 - JSONObject today_qty = WQL.getWO("statistical_report_query_01").addParam("flag", "8").addParam("material_id", material_id).addParam("begin_time", newDate.toString().substring(0, 10) + "%").process().uniqueResult(0); - double need_weight = 0; - if (ObjectUtil.isNotEmpty(today_qty)) { - need_weight = today_qty.getDoubleValue("qty"); - } - if (now_ivt < need_weight) { - jo5.put(material_id, DateUtil.offsetDay(newDate, -1).toString().substring(0, 10)); - break; - } else { - now_ivt -= need_weight; - } - if (j == betweenDay) { - jo5.put(material_id, end_time.substring(0, 10)); + if (canuse_num<0){ + jo5.put(material_id, DateUtil.offsetDay(date1, -1).toString().substring(0, 10)); + }else { + for (int j = 1; j <= betweenDay; j++) { + DateTime newDate = DateUtil.offsetDay(date1, j); + //查询该物料当天的需求量 + JSONObject today_qty = WQL.getWO("statistical_report_query_01").addParam("flag", "8").addParam("material_id", material_id).addParam("begin_time", newDate.toString().substring(0, 10) + "%").process().uniqueResult(0); + double need_weight = 0; + if (ObjectUtil.isNotEmpty(today_qty)) { + need_weight = today_qty.getDoubleValue("qty"); + } + if (canuse_num < need_weight) { + jo5.put(material_id, DateUtil.offsetDay(newDate, -1).toString().substring(0, 10)); + break; + } else { + canuse_num -= need_weight; + } + if (j == betweenDay) { + jo5.put(material_id, end_time.substring(0, 10)); + } } } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_01.wql index aa1cbac6..27757796 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/statistics/wql/statistical_report_query_01.wql @@ -196,7 +196,7 @@ pdm_bi_workorder wo WHERE wo.is_delete = '0' - AND wo.`status` IN ( '10', '20', '30', '40' ) + AND wo.`status` IN ( '10', '20', '30' ) OPTION 输入.begin_time <> "" wo.planstart_time >= 输入.begin_time ENDOPTION @@ -304,7 +304,7 @@ FROM pdm_bi_workorder wo WHERE - wo.`status` < 50 + wo.`status` < 40 AND is_delete = '0' OPTION 输入.begin_time <> "" wo.planstart_time >= 输入.begin_time @@ -417,7 +417,7 @@ QUERY SELECT dtl.material_id, - ROUND((b.qty*dtl.standard_rate*0.01),3) AS qty + SUM(ROUND(( b.qty * dtl.standard_rate * 0.01 ),3 )) AS qty FROM ( SELECT @@ -502,7 +502,7 @@ LEFT JOIN md_me_materialbase mb ON mb.material_id = wo.material_id LEFT JOIN md_me_producmaterialext ext ON ext.material_id = wo.material_id WHERE - wo.`status` < 50 + wo.`status` < 40 AND wo.is_delete = '0' OPTION 输入.begin_time <> ""