From 358b43e8e3033b38064750940b2c50ed715b2522 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 20 Jun 2023 11:28:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A4=A7=E5=B1=8F?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BigScreenServiceImpl.java | 78 ++++++++++++++++++- .../wql/COCKPIT_PROCESS_PRODUCTION.wql | 60 ++++++++++---- 2 files changed, 120 insertions(+), 18 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/BigScreenServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/BigScreenServiceImpl.java index 1d792d1..114f9dc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/BigScreenServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/service/impl/BigScreenServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.wms.cockpit.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.Data; @@ -191,8 +192,8 @@ public class BigScreenServiceImpl implements BigScreenService { List res = new CopyOnWriteArrayList<>(); for (int i = 0; i < 5; i++) { FailureDeviceInfoDto dto = new FailureDeviceInfoDto(); - dto.setDevice_code("hn01"); - dto.setDevice_name("混撵01"); + dto.setDevice_code("hl01"); + dto.setDevice_name("混料01"); dto.setFailure_time("05-30 09:50:12"); dto.setFailure_info("机器故障"); dto.setDevice_status_name("待机"); @@ -217,6 +218,25 @@ public class BigScreenServiceImpl implements BigScreenService { // JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); // JSONArray data = ObjectUtil.isNotEmpty( // devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// for (int i = 0; i < data.size(); i++) { +// JSONObject jsonObject = data.getJSONObject(i); +// if (jsonObject.getInteger("move") == 1 +// && ObjectUtil.isNotEmpty(jsonObject.getInteger("encoder_qty")) +// && jsonObject.getInteger("encoder_qty") > 0) { +// // 绿色 +// jsonObject.put("color_status", ColorEnum.GREEN.getIndex()); +// } else if (jsonObject.getInteger("move") == 1 +// && ObjectUtil.isNotEmpty(jsonObject.getInteger("encoder_qty")) +// && jsonObject.getInteger("encoder_qty") == 0) { +// // 黄色 +// jsonObject.put("color_status", ColorEnum.YELLOW.getIndex()); +// } else if (jsonObject.getInteger("move") == 0) { +// // 红色 +// jsonObject.put("color_status", ColorEnum.RED.getIndex()); +// } else { // 有托盘人工 +// jsonObject.put("color_status", ColorEnum.GREEN.getIndex()); +// } +// } for (int i = 0; i < res.size(); i++) { JSONObject jsonObject = res.getJSONObject(i); jsonObject.put("color_status", ColorEnum.RED.getIndex()); @@ -263,12 +283,19 @@ public class BigScreenServiceImpl implements BigScreenService { for (int i = 0; i < res.size(); i++) { JSONObject jsonObject = res.getJSONObject(i); jsonObject.put("device_status", DeviceStatusEnum.STANDBY.getCode()); - jsonObject.put("open_time", DateUtil.now()); + String now = DateUtil.now(); + jsonObject.put("open_time", now.substring(now.indexOf('-') + 1)); } // todo: 打开ACS系统对接数据 // JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); // JSONArray data = ObjectUtil.isNotEmpty( // devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// for (int i = 0; i < data.size(); i++) { +// JSONObject jsonObject = data.getJSONObject(i); +// jsonObject.put("device_status", DeviceStatusEnum.STANDBY.getCode()); +// String openTime = jsonObject.getString("open_time"); +// jsonObject.put("open_time", openTime.substring(openTime.indexOf('-') + 1)); +// } return res; }, pool); mixMachineTask.thenAccept(result -> { @@ -352,6 +379,25 @@ public class BigScreenServiceImpl implements BigScreenService { // JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); // JSONArray data = ObjectUtil.isNotEmpty( // devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; +// for (int i = 0; i < data.size(); i++) { +// JSONObject jsonObject = data.getJSONObject(i); +// if (jsonObject.getInteger("move") == 1 +// && ObjectUtil.isNotEmpty(jsonObject.getInteger("encoder_qty")) +// && jsonObject.getInteger("encoder_qty") > 0) { +// // 绿色 +// jsonObject.put("color_status", ColorEnum.GREEN.getIndex()); +// } else if (jsonObject.getInteger("move") == 1 +// && ObjectUtil.isNotEmpty(jsonObject.getInteger("encoder_qty")) +// && jsonObject.getInteger("encoder_qty") == 0) { +// // 黄色 +// jsonObject.put("color_status", ColorEnum.YELLOW.getIndex()); +// } else if (jsonObject.getInteger("move") == 0) { +// // 红色 +// jsonObject.put("color_status", ColorEnum.RED.getIndex()); +// } else { // 有托盘人工 +// jsonObject.put("color_status", ColorEnum.GREEN.getIndex()); +// } +// } return res; }, pool); sortAndPalletizingTask.thenAccept(result -> { @@ -361,6 +407,29 @@ public class BigScreenServiceImpl implements BigScreenService { map.put("SortAndPalletizingList", null); return null; }); + // 15、机械手状态 + CompletableFuture manipulatorInfoTask = CompletableFuture.supplyAsync(() -> { + JSONArray res = WQL.getWO("COCKPIT_PROCESS_PRODUCTION") + .addParamMap(MapOf.of("flag", "14")) + .process() + .getResultJSONArray(0); + for (int i = 0; i < res.size(); i++) { + JSONObject jsonObject = res.getJSONObject(i); + jsonObject.put("color_status", ColorEnum.RED.getIndex()); + } + // TODO: 打开ACS系统对接数据 +// JSONObject devicesStatus = PointUpdateUtil.getDevicesStatus(res); +// JSONArray data = ObjectUtil.isNotEmpty( +// devicesStatus.getJSONArray("data")) ? devicesStatus.getJSONArray("data") : res; + return res; + }, pool); + manipulatorInfoTask.thenAccept(result -> { + map.put("ManipulatorInfoList", result); + }).exceptionally((e) -> { + log.error("机械手: {}", e.getMessage(), e); + map.put("ManipulatorInfoList", null); + return null; + }); CompletableFuture allQuery = CompletableFuture.allOf( mixDayProductionTask, pressDayProductionTask, @@ -373,7 +442,8 @@ public class BigScreenServiceImpl implements BigScreenService { mixMachineTask, trappedShelfTask, sortAndPalletizingTask, - semiFinishedProductShelfTask); + semiFinishedProductShelfTask, + manipulatorInfoTask); CompletableFuture> future = allQuery.thenApply((result) -> map).exceptionally((e) -> { log.error(e.getMessage(), e); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_PROCESS_PRODUCTION.wql b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_PROCESS_PRODUCTION.wql index 75de032..a7485c2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_PROCESS_PRODUCTION.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/cockpit/wql/COCKPIT_PROCESS_PRODUCTION.wql @@ -237,6 +237,7 @@ PAGEQUERY SELECT d.device_code, + d.device_name, LEFT(m.material_code, 11) AS material_code, ( SELECT IF(LENGTH(SUM(w.real_qty)) > 0,SUM(w.real_qty),0) @@ -276,23 +277,38 @@ IF 输入.flag = "12" PAGEQUERY SELECT - point.point_code, - point.point_name, - CASE point.point_status - WHEN '0' THEN '0' - WHEN '1' THEN IF(vd.vd_id IS NULL,'1','2') - ELSE '0' - END AS point_status + point.point_code, + point.point_name, + CASE point.point_status + WHEN '0' THEN '0' + WHEN '1' THEN IF(vd.vd_id IS NULL,'1','2') + ELSE '0' + END AS point_status, + IF(LENGTH( vd.stand_status )> 0,vd.stand_status,'') AS stand_status, + CASE vd.stand_status + WHEN '2' THEN '困料中' + WHEN '3' THEN '困料完成' + WHEN '4' THEN '困料完成' + WHEN '5' THEN '困料超时' + ELSE '' + END AS stand_status_name, + CASE vd.stand_status + WHEN '2' THEN '1' + WHEN '3' THEN '2' + WHEN '4' THEN '2' + WHEN '5' THEN '3' + ELSE '' + END AS stand_status_color FROM - sch_base_point point - LEFT JOIN st_ivt_vehicle_detail vd ON vd.vehicle_code = point.vehicle_code - AND vd.vehicle_type = point.vehicle_type - AND vd.is_delete = '0' + sch_base_point point + LEFT JOIN st_ivt_vehicle_detail vd ON vd.vehicle_code = point.vehicle_code + AND vd.vehicle_type = point.vehicle_type + AND vd.is_delete = '0' WHERE - point.region_code = 'KLHJ' - AND point.point_type IN ('2','3') + point.region_code = 'KLHJ' + AND point.point_type IN ('2','3') ORDER BY - point.point_code ASC + point.point_code ASC ENDSELECT ENDPAGEQUERY ENDIF @@ -310,3 +326,19 @@ ENDSELECT ENDPAGEQUERY ENDIF + + IF 输入.flag = "14" + PAGEQUERY + SELECT + d.device_code, + d.device_name, + d.region_code + FROM + `pdm_bi_device` d + WHERE ((d.region_code = 'YZ' AND d.device_model = '5') + OR (d.region_code = 'FJ' AND d.device_model = '9')) + AND d.device_code <> 'FJRGCD01' + ORDER BY d.device_model, d.region_code, d.device_code + ENDSELECT + ENDPAGEQUERY + ENDIF