From 8a864c72128cd025478dbb453b395bb8a3861c50 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 12 Jan 2024 13:45:20 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=20=E6=88=90=E5=93=81=E6=97=A5?= =?UTF-8?q?=E6=8A=A5=E3=80=81=E5=8F=91=E8=B4=A7=E5=8C=BA=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/StructattrServiceImpl.java | 37 ++++++++++++------- .../nl/wms/sch/manage/AUTOQUERYBILLINFO.wql | 25 ++++++++++++- 2 files changed, 47 insertions(+), 15 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java index c31817edd..1f0446d24 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java @@ -361,11 +361,17 @@ public class StructattrServiceImpl implements StructattrService { // 获取信息 1蓝色空载具 2黄色木箱 3绿色空位 4灰色禁用 // 计算子卷净重 JSONObject json = pointMap.get(struct_id); - if (ObjectUtil.isNotEmpty(json.getString("net_weight"))) { - BigDecimal container_weight = array.stream().map(row -> ((JSONObject) row).getBigDecimal("net_weight")).reduce(BigDecimal.ZERO, BigDecimal::add); - for (int j = 0; j < array.size(); j++) { - JSONObject jsonObject = array.getJSONObject(j); + List pointList = array.toJavaList(JSONObject.class).stream() + .filter(row -> row.getString("point_id").equals(struct_id)) + .collect(Collectors.toList()); + + if (ObjectUtil.isNotEmpty(json.getString("net_weight"))) { + + BigDecimal container_weight = pointList.stream().map(row -> row.getBigDecimal("net_weight")).reduce(BigDecimal.ZERO, BigDecimal::add); + + for (int j = 0; j < pointList.size(); j++) { + JSONObject jsonObject = pointList.get(j); jsonObject.put("container_weight", container_weight); } } @@ -377,7 +383,7 @@ public class StructattrServiceImpl implements StructattrService { } // 剩余层数货位信息没统计,统计可以用obj.put(key, value)返给前端,前端在initStatus()就可以遍历去获取,给节点赋值 - obj.put("data", array); + obj.put("data", pointList); obj.put("struct_status", struct_status); obj.put("struct_id", strInfo.getString("point_id")); obj.put("struct_code", strInfo.getString("point_code")); @@ -417,7 +423,7 @@ public class StructattrServiceImpl implements StructattrService { JSONObject item = (JSONObject) o; m.put(item.getString("point_id"), item); }, HashMap::putAll); - int unMoney = 0; + for (int i = 0; i < jsonArray.size(); i++) { JSONObject obj = new JSONObject(); JSONObject js = jsonArray.getJSONObject(i); @@ -430,11 +436,17 @@ public class StructattrServiceImpl implements StructattrService { // 获取信息 1蓝色空载具 2黄色木箱 3绿色空位 4灰色禁用 // 计算子卷净重 JSONObject json = pointMap.get(struct_id); - if (ObjectUtil.isNotEmpty(json.getString("net_weight"))) { - BigDecimal container_weight = array.stream().map(row -> ((JSONObject) row).getBigDecimal("net_weight")).reduce(BigDecimal.ZERO, BigDecimal::add); - for (int j = 0; j < array.size(); j++) { - JSONObject jsonObject = array.getJSONObject(j); + List pointList = array.toJavaList(JSONObject.class).stream() + .filter(row -> row.getString("point_id").equals(struct_id)) + .collect(Collectors.toList()); + + if (ObjectUtil.isNotEmpty(json.getString("net_weight"))) { + + BigDecimal container_weight = pointList.stream().map(row -> row.getBigDecimal("net_weight")).reduce(BigDecimal.ZERO, BigDecimal::add); + + for (int j = 0; j < pointList.size(); j++) { + JSONObject jsonObject = pointList.get(j); jsonObject.put("container_weight", container_weight); } } @@ -442,19 +454,18 @@ public class StructattrServiceImpl implements StructattrService { JSONObject strInfo = attrMap.get(struct_id); if (strInfo !=null && ObjectUtil.isEmpty(strInfo.getString("vehicle_code"))) { // 空位 - unMoney++; struct_status = 3; } // 剩余层数货位信息没统计,统计可以用obj.put(key, value)返给前端,前端在initStatus()就可以遍历去获取,给节点赋值 - obj.put("data", array); + obj.put("data", pointList); obj.put("struct_status", struct_status); obj.put("struct_id", strInfo.getString("point_id")); obj.put("struct_code", strInfo.getString("point_code")); obj.put("id", js.getString("id")); // 设备不存在就只保留id,方便前端查看 arr.add(obj); } - return MapOf.of("data",arr,"haveMoney",arr.size()-unMoney,"unMoney",unMoney); + return null; } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AUTOQUERYBILLINFO.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AUTOQUERYBILLINFO.wql index bb6d2a46f..1be7add0f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AUTOQUERYBILLINFO.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AUTOQUERYBILLINFO.wql @@ -47,6 +47,8 @@ FROM st_ivt_structivt ivt LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + AND ivt.pcsn = sub.container_name WHERE ivt.canuse_qty > '0' @@ -64,7 +66,8 @@ FROM st_ivt_structivt ivt LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id - LEFT JOIN pdm_bi_subpackagerelation sub ON ivt.pcsn = sub.container_name + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + AND ivt.pcsn = sub.container_name WHERE DATEDIFF( NOW(), sub.date_of_production ) > SUBSTRING_INDEX(sub.quality_guaran_period,'天',1) AND ivt.canuse_qty > '0' @@ -89,9 +92,27 @@ DATEDIFF( NOW(), sub.date_of_production ) > '60' AND DATEDIFF( NOW(), sub.date_of_production ) <= '90' AND ivt.canuse_qty > '0' + AND SUBSTRING_INDEX(sub.quality_guaran_period,'天',1) = '90' GROUP BY attr.stor_id + UNION + + SELECT + SUM( ivt.canuse_qty ) / 1000 AS num, + attr.stor_id + FROM + st_ivt_structivt ivt + LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id + LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code + AND ivt.pcsn = sub.container_name + WHERE + DATEDIFF( NOW(), sub.date_of_production ) > '90' + AND DATEDIFF( NOW(), sub.date_of_production ) <= '180' + AND ivt.canuse_qty > '0' + AND SUBSTRING_INDEX(sub.quality_guaran_period,'天',1) = '180' + + GROUP BY attr.stor_id ENDSELECT ENDQUERY ENDIF @@ -107,7 +128,7 @@ LEFT JOIN pdm_bi_subpackagerelation sub ON sub.package_box_sn = attr.storagevehicle_code AND ivt.pcsn = sub.container_name WHERE - DATEDIFF( NOW(), sub.date_of_production ) <= '90' + DATEDIFF( NOW(), sub.date_of_production ) <= SUBSTRING_INDEX(sub.quality_guaran_period,'天',1) AND ivt.canuse_qty > '0' GROUP BY attr.stor_id