diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index e7bc5b7..f597d43 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -1244,126 +1244,144 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { @Override public JSONObject getDeviceStatus(JSONArray param) { log.info("getDeviceStatus - 请求参数 {}", param); - if (ObjectUtil.isNotEmpty(param)) { - for (int i = 0; i < param.size(); i++) { - JSONObject status = param.getJSONObject(i); - if (ObjectUtil.isEmpty(status)) { - continue; - } - - String device_code = status.getString("device_code"); - if (StrUtil.isBlank(device_code)) { - continue; - } - - Device device = DeviceAppService.findDeviceByCode(device_code); - if (ObjectUtil.isEmpty(device)) { - continue; - } - - if (device.getDeviceDriver() instanceof LnshMixingMillDeviceDriver) { - LnshMixingMillDeviceDriver driver = (LnshMixingMillDeviceDriver) device.getDeviceDriver(); - - status.put("device_status", driver.getStatus()); - status.put("error", driver.getError()); - status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); - status.put("real_qty", driver.getWeight()); - status.put("mix_num", driver.getMix_num()); - } else if (device.getDeviceDriver() instanceof LnshPressDeviceDriver) { - LnshPressDeviceDriver driver = (LnshPressDeviceDriver) device.getDeviceDriver(); - - status.put("device_status", driver.getStatus()); - status.put("error", driver.getError()); - status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); - status.put("real_qty", driver.getQty()); - status.put("current_weight", driver.getWeight()); - } else if (device.getDeviceDriver() instanceof LnshPackagePalletManipulatorDeviceDriver) { - LnshPackagePalletManipulatorDeviceDriver driver = (LnshPackagePalletManipulatorDeviceDriver) device.getDeviceDriver(); - - status.put("device_status", driver.getStatus()); - status.put("error", driver.getError()); - status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); - status.put("real_qty", driver.getQty()); - } else if (device.getDeviceDriver() instanceof LnshPalletizingManipulatorDeviceDriver) { - LnshPalletizingManipulatorDeviceDriver driver = (LnshPalletizingManipulatorDeviceDriver) device.getDeviceDriver(); - - status.put("device_status", driver.getStatus()); - status.put("error", driver.getError()); - status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); - } else if (device.getDeviceDriver() instanceof LnshKilnTrussDeviceDriver) { - LnshKilnTrussDeviceDriver driver = (LnshKilnTrussDeviceDriver) device.getDeviceDriver(); - - status.put("device_status", driver.getStatus()); - status.put("error", driver.getError()); - status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); - } else if (device.getDeviceDriver() instanceof LnshKilnLaneDeviceDriver) { - LnshKilnLaneDeviceDriver driver = (LnshKilnLaneDeviceDriver) device.getDeviceDriver(); - - status.put("device_status", driver.getStatus()); - status.put("error", driver.getError()); - status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); - } else if (device.getDeviceDriver() instanceof LnshOutKilnTrussDeviceDriver) { - LnshOutKilnTrussDeviceDriver driver = (LnshOutKilnTrussDeviceDriver) device.getDeviceDriver(); - - status.put("device_status", driver.getStatus()); - status.put("error", driver.getError()); - status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); - } else if (device.getDeviceDriver() instanceof LnshRGVDeviceDriver) { - LnshRGVDeviceDriver driver = (LnshRGVDeviceDriver) device.getDeviceDriver(); - - status.put("device_status", driver.getStatus()); - status.put("error", driver.getError()); - status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); - } else if (device.getDeviceDriver() instanceof LnshPackageLineDeviceDriver) { - LnshPackageLineDeviceDriver driver = (LnshPackageLineDeviceDriver) device.getDeviceDriver(); - - status.put("device_status", driver.getStatus()); - status.put("error", driver.getError()); - status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); - } else if (device.getDeviceDriver() instanceof LnshFoldDiscSiteDeviceDriver) { - LnshFoldDiscSiteDeviceDriver driver = (LnshFoldDiscSiteDeviceDriver) device.getDeviceDriver(); - - status.put("device_status", driver.getStatus()); - status.put("error", driver.getError()); - status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); - } - } + if (ObjectUtil.isEmpty(param)) { + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "查询成功!"); + result.put("data", null); + log.info("getDeviceStatus - 返回参数 {}", result); + return result; + } + JSONArray jsonArray = param.getJSONArray(0); + List list = JSONArray.parseArray(jsonArray.toString(), String.class); + if (ObjectUtil.isEmpty(list)) { + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "查询成功!"); + result.put("data", null); + log.info("getDeviceStatus - 返回参数 {}", result); + return result; + } + JSONArray res = new JSONArray(); + for (String deviceCode : list) { + JSONObject status = new JSONObject(); + status.put("device_code", deviceCode); + if (StrUtil.isBlank(deviceCode)) { + continue; + } + Device device = DeviceAppService.findDeviceByCode(deviceCode); + if (ObjectUtil.isEmpty(device)) { + continue; + } + if (device.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) { + LnshPalletizingManipulatorSiteDeviceDriver driver = (LnshPalletizingManipulatorSiteDeviceDriver) device.getDeviceDriver(); + status.put("mode", driver.getMode()); + status.put("error", driver.getError()); + status.put("move", driver.getMove()); + status.put("encoder_qty", driver.getEncoder_qty()); + status.put("barcode", driver.getBarcode()); + } + if (device.getDeviceDriver() instanceof LnshMixingMillDeviceDriver) { + LnshMixingMillDeviceDriver driver = (LnshMixingMillDeviceDriver) device.getDeviceDriver(); + status.put("device_status", driver.getStatus()); + status.put("error", driver.getError()); + status.put("open_time", driver.getOpen_time()); + status.put("stand_time", driver.getStandby_time() / 3600); + status.put("work_time", driver.getProduction_time() / 3600); + status.put("error_time", driver.getError_time() / 3600); + status.put("real_qty", driver.getWeight()); + status.put("mix_num", driver.getMix_num()); + } + if (device.getDeviceDriver() instanceof LnshPressDeviceDriver) { + LnshPressDeviceDriver driver = (LnshPressDeviceDriver) device.getDeviceDriver(); + status.put("device_status", driver.getStatus()); + status.put("error", driver.getError()); + status.put("open_time", driver.getOpen_time()); + status.put("stand_time", driver.getStandby_time() / 3600); + status.put("work_time", driver.getProduction_time() / 3600); + status.put("error_time", driver.getError_time() / 3600); + status.put("real_qty", driver.getQty()); + status.put("current_weight", driver.getWeight()); + } + if (device.getDeviceDriver() instanceof LnshPackagePalletManipulatorDeviceDriver) { + LnshPackagePalletManipulatorDeviceDriver driver = (LnshPackagePalletManipulatorDeviceDriver) device.getDeviceDriver(); + status.put("device_status", driver.getStatus()); + status.put("error", driver.getError()); + status.put("open_time", driver.getOpen_time()); + status.put("stand_time", driver.getStandby_time() / 3600); + status.put("work_time", driver.getProduction_time() / 3600); + status.put("error_time", driver.getError_time() / 3600); + status.put("real_qty", driver.getQty()); + } + if (device.getDeviceDriver() instanceof LnshPalletizingManipulatorDeviceDriver) { + LnshPalletizingManipulatorDeviceDriver driver = (LnshPalletizingManipulatorDeviceDriver) device.getDeviceDriver(); + status.put("device_status", driver.getStatus()); + status.put("error", driver.getError()); + status.put("open_time", driver.getOpen_time()); + status.put("stand_time", driver.getStandby_time() / 3600); + status.put("work_time", driver.getProduction_time() / 3600); + status.put("error_time", driver.getError_time() / 3600); + } + if (device.getDeviceDriver() instanceof LnshKilnTrussDeviceDriver) { + LnshKilnTrussDeviceDriver driver = (LnshKilnTrussDeviceDriver) device.getDeviceDriver(); + status.put("device_status", driver.getStatus()); + status.put("error", driver.getError()); + status.put("open_time", driver.getOpen_time()); + status.put("stand_time", driver.getStandby_time() / 3600); + status.put("work_time", driver.getProduction_time() / 3600); + status.put("error_time", driver.getError_time() / 3600); + } + if (device.getDeviceDriver() instanceof LnshKilnLaneDeviceDriver) { + LnshKilnLaneDeviceDriver driver = (LnshKilnLaneDeviceDriver) device.getDeviceDriver(); + status.put("device_status", driver.getStatus()); + status.put("error", driver.getError()); + status.put("open_time", driver.getOpen_time()); + status.put("stand_time", driver.getStandby_time() / 3600); + status.put("work_time", driver.getProduction_time() / 3600); + status.put("error_time", driver.getError_time() / 3600); + } + if (device.getDeviceDriver() instanceof LnshOutKilnTrussDeviceDriver) { + LnshOutKilnTrussDeviceDriver driver = (LnshOutKilnTrussDeviceDriver) device.getDeviceDriver(); + status.put("device_status", driver.getStatus()); + status.put("error", driver.getError()); + status.put("open_time", driver.getOpen_time()); + status.put("stand_time", driver.getStandby_time() / 3600); + status.put("work_time", driver.getProduction_time() / 3600); + status.put("error_time", driver.getError_time() / 3600); + } + if (device.getDeviceDriver() instanceof LnshRGVDeviceDriver) { + LnshRGVDeviceDriver driver = (LnshRGVDeviceDriver) device.getDeviceDriver(); + status.put("device_status", driver.getStatus()); + status.put("error", driver.getError()); + status.put("open_time", driver.getOpen_time()); + status.put("stand_time", driver.getStandby_time() / 3600); + status.put("work_time", driver.getProduction_time() / 3600); + status.put("error_time", driver.getError_time() / 3600); + } + if (device.getDeviceDriver() instanceof LnshPackageLineDeviceDriver) { + LnshPackageLineDeviceDriver driver = (LnshPackageLineDeviceDriver) device.getDeviceDriver(); + status.put("device_status", driver.getStatus()); + status.put("error", driver.getError()); + status.put("open_time", driver.getOpen_time()); + status.put("stand_time", driver.getStandby_time() / 3600); + status.put("work_time", driver.getProduction_time() / 3600); + status.put("error_time", driver.getError_time() / 3600); + } + if (device.getDeviceDriver() instanceof LnshFoldDiscSiteDeviceDriver) { + LnshFoldDiscSiteDeviceDriver driver = (LnshFoldDiscSiteDeviceDriver) device.getDeviceDriver(); + status.put("device_status", driver.getStatus()); + status.put("error", driver.getError()); + status.put("open_time", driver.getOpen_time()); + status.put("stand_time", driver.getStandby_time() / 3600); + status.put("work_time", driver.getProduction_time() / 3600); + status.put("error_time", driver.getError_time() / 3600); + } + res.add(status); } - JSONObject result = new JSONObject(); result.put("status", HttpStatus.OK.value()); result.put("message", "查询成功!"); - result.put("data", param); + result.put("data", res); log.info("getDeviceStatus - 返回参数 {}", result); return result; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/controller/CockPitController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/controller/CockPitController.java index 95a01ca..16641a5 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/controller/CockPitController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/controller/CockPitController.java @@ -30,7 +30,7 @@ public class CockPitController { @Autowired private CockpitService cockpitService; - @PostMapping("/press") + @GetMapping("/press") @Log("压制看板") @ApiOperation("压制看板") public ResponseEntity pressedMonitor(){ @@ -46,15 +46,15 @@ public class CockPitController { } @GetMapping("/screenTableData") - @Log("大屏") - @ApiOperation("大屏") + @Log("大屏-两侧图表") + @ApiOperation("大屏-两侧图表") public ResponseEntity screenLeftData(){ return new ResponseEntity<>(cockpitService.screenTableData(), HttpStatus.OK); } @GetMapping("/deviceCondition") - @Log("设备运行情况") - @ApiOperation("设备运行情况") + @Log("大屏-中间设备运行情况") + @ApiOperation("大屏-中间设备运行情况") public ResponseEntity deviceCondition(){ return new ResponseEntity<>(cockpitService.deviceCondition(), HttpStatus.OK); } @@ -67,8 +67,8 @@ public class CockPitController { // } @GetMapping("/inOutKilnDetail") - @Log("出、入窑输送线") - @ApiOperation("出、入窑输送线") + @Log("出、入窑输送线弹窗") + @ApiOperation("出、入窑输送线弹窗") public ResponseEntity selectInOutKilnDetail(){ return new ResponseEntity<>(cockpitService.selectInOutKilnDetail(), HttpStatus.OK); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/CockpitService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/CockpitService.java index 4d235e0..aefa5ed 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/CockpitService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/CockpitService.java @@ -29,14 +29,7 @@ public interface CockpitService { ConcurrentHashMap screenTableData(); -// List getDeviceErrorList(); -// -// IPage getDeviceErrorInfoList(PageQuery page); -// -// DeviceRunStatVo selectDeviceRunStatNum(); - Object deviceCondition(); -// -// MixingDetailVo selectMixingDetail(Map whereJson); + ConcurrentHashMap deviceCondition(); List selectInOutKilnDetail(); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/MixingRelativeVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/MixingRelativeVo.java new file mode 100644 index 0000000..46ac0ba --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/MixingRelativeVo.java @@ -0,0 +1,14 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @author Administrator + * 混碾机对接位 + */ +@Data +public class MixingRelativeVo { + private String pointStatus; + private String pointName; + private String pointCode; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/MixingVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/MixingVo.java index 990854b..2649b70 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/MixingVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/MixingVo.java @@ -7,11 +7,7 @@ import lombok.Data; */ @Data public class MixingVo { - private String workorderCode; - private String pointName; - private String customer; - private String material; - private String materialSpec; - private String planQty; - private String realQty; + private String materialName; + private String planWeight; + private String realWeight; } \ No newline at end of file diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductHeaderVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductHeaderVo.java index 7fcb7af..3453fae 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductHeaderVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductHeaderVo.java @@ -2,15 +2,20 @@ package org.nl.wms.cockpit.service.dao; import lombok.Data; + /** - * @Author: lyd - * @Description: 当前班次、计划生产、已生产、不合格产品数 - * @Date: 2023/9/25 + * @author Administrator + * 压制看板顶部Vo */ @Data public class PressProductHeaderVo { - private String plan_qty; - private String real_qty; - private String unqualified_qty; - private String qualified_qty; + private String planQty; + private String realQty; + private String unqualifiedQty; + private String qualifiedQty; + private String team; + + public String getaTeam() { + return "白班"; + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductVo.java index c4741e8..3c3bf9e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressProductVo.java @@ -4,11 +4,16 @@ import lombok.Data; /** * @author Administrator + * 当日成品图表Vo */ @Data public class PressProductVo { + //物料名称 private String materialName; + //需生产 private String requiredNum; + //已压制 private String suppressedNum; + //已完成 private String finishedNum; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/ProductTaskVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/ProductTaskVo.java index b25bcb7..0537189 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/ProductTaskVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/ProductTaskVo.java @@ -22,4 +22,8 @@ public class ProductTaskVo { private String operator; private String realproducestartDate; private String realproduceendDate; + + public String getTeam() { + return "白班"; + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/SortingLineVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/SortingLineVo.java index 75bbac7..b3c07f9 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/SortingLineVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/SortingLineVo.java @@ -10,7 +10,7 @@ public class SortingLineVo { private String workorderCode; private String pointName; private String customer; - private String material; + private String materialName; private String materialSpec; private String planQty; private String realQty; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/enums/ColorEnum.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/enums/ColorEnum.java new file mode 100644 index 0000000..485001a --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/enums/ColorEnum.java @@ -0,0 +1,26 @@ +package org.nl.wms.cockpit.service.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum ColorEnum { + GREY(0, "灰色"), + GREEN(2, "绿色"), + RED(3, "红色"), + YELLOW(1, "黄色"); + + private final Integer index; + private final String colorName; + + public static ColorEnum getColorEnumByIndex(int index) { + ColorEnum[] enums = ColorEnum.values(); + for (ColorEnum colorEnum : enums) { + if (colorEnum.getIndex() == index) { + return colorEnum; + } + } + return null; // 如果没有找到对应的枚举常量,可以根据需要返回null或者抛出异常 + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java index 5348d3d..8139515 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java @@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j; import org.nl.config.thread.ThreadPoolExecutorUtil; import org.nl.wms.cockpit.service.CockpitService; import org.nl.wms.cockpit.service.dao.*; +import org.nl.wms.cockpit.service.enums.ColorEnum; import org.nl.wms.cockpit.service.enums.DeviceEnum; import org.nl.wms.cockpit.service.mapper.CockPitMapper; import org.nl.wms.das.device.record.service.IDasDeviceErrorRecordService; @@ -39,9 +40,6 @@ public class CockpitServiceImpl implements CockpitService { @Autowired private IDasDeviceErrorRecordService dasDeviceErrorRecordService; - @Autowired - private ISchBasePointService schBasePointService; - @Override public ConcurrentHashMap pressedMonitor() { ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll(); @@ -66,7 +64,7 @@ public class CockpitServiceImpl implements CockpitService { map.put("ShiftProductionList", null); return null; }); - // 2、当日订单 + // 3、当日订单 CompletableFuture> pressOrderFuture = CompletableFuture.supplyAsync( () -> cockPitMapper.getPressOrderVoList(), pool); pressOrderFuture.thenAccept(result -> { @@ -231,10 +229,10 @@ public class CockpitServiceImpl implements CockpitService { return res; }, pool); deviceRunStatCompletableFuture.thenAccept(result -> { - resultMap.put("deviceRunStatList", result); + resultMap.put("deviceRunStat", result); }).exceptionally((e) -> { log.error("设备运行统计: {}", e.getMessage(), e); - resultMap.put("deviceRunStatList", null); + resultMap.put("deviceRunStat", null); return null; }); @@ -277,47 +275,194 @@ public class CockpitServiceImpl implements CockpitService { } @Override - public Object deviceCondition() { - List res = new ArrayList<>(); - // 获取所有设备 - List allDevice = cockPitMapper.selectAllDevice(); - if (allDevice.isEmpty()) { + public ConcurrentHashMap deviceCondition() { + ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll(); + ConcurrentHashMap map = new ConcurrentHashMap<>(); + + //压制码垛位情况显示 + CompletableFuture stackingPositionTask = CompletableFuture.supplyAsync(() -> { + List points = cockPitMapper.selectYzPoint(); + if (points.isEmpty()) { + throw new RuntimeException("压制码垛位点位为空"); + } + JSONArray param = new JSONArray(Collections.singletonList(points)); + AcsResponse deviceStatus = wmsToAcsService.getDeviceStatus(param); + JSONArray data = ObjectUtil.isNotEmpty(deviceStatus) ? deviceStatus.getData() : param; + for (int i = 0; i < data.size(); i++) { + JSONObject jsonObject = data.getJSONObject(i); + if (jsonObject.getInteger("move") != 0 + && ObjectUtil.isNotEmpty(jsonObject.getInteger("encoder_qty")) + && jsonObject.getInteger("encoder_qty") > 0) { + // 绿色 + jsonObject.put("color_status", ColorEnum.GREEN.getIndex()); + } else if (jsonObject.getInteger("move") != 0 + && 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 data; + }, pool); + stackingPositionTask.thenAccept(result -> { + map.put("StackingPositionList", result); + }).exceptionally((e) -> { + log.error("压制码垛位情况显示: {}", e.getMessage(), e); + map.put("StackingPositionList", e); return null; - } - JSONArray param = new JSONArray(Collections.singletonList(allDevice)); - AcsResponse devicesStatus = wmsToAcsService.getDeviceStatus(param); - JSONArray data = ObjectUtil.isNotEmpty(devicesStatus) ? devicesStatus.getData() : param; -// JSONObject devicesStatus = null; - // 初始化数据 数组下标:0关机 1待机 2生产中 3故障 - JSONObject total = new JSONObject(); - DeviceEnum[] values = DeviceEnum.values(); - for (DeviceEnum deviceEnum : values) { - total.put(deviceEnum.getCode(), new int[4]); - } - // 遍历判断 - for (int i = 0; i < data.size(); i++) { - JSONObject device = data.getJSONObject(i); - Integer devicesStatus1 = ObjectUtil.isNotEmpty(device.getInteger("status")) - ? device.getInteger("status") - : 0; - String regionCode = device.getString("region_code"); - DeviceEnum deviceEnumByCode = DeviceEnum.getDeviceEnumByCode(regionCode); // 获取属于哪种设备 - int[] ints = (int[]) total.get(deviceEnumByCode.getCode()); - ints[devicesStatus1] = ints[devicesStatus1] + 1; - total.put(deviceEnumByCode.getCode(), ints); - } - // 返回输出值 - for (DeviceEnum value : values) { // 4个 - int[] ints = (int[]) total.get(value.getCode()); - DeviceConditionVo dto = new DeviceConditionVo(); - dto.setDeviceName(value.getDevice_name()); // 列名 - dto.setShutdown(ints[0]); - dto.setStandby(ints[1]); - dto.setRunning(ints[2]); - dto.setFailure(ints[3]); - res.add(dto); - } - return res; + }); + + // 压机信息显示 + CompletableFuture pressMachineTask = CompletableFuture.supplyAsync(() -> { + List yjPoints = cockPitMapper.selectYjPoint(); + if (yjPoints.isEmpty()) { + throw new RuntimeException("压机点位为空"); + } + JSONArray yjPointsParam = new JSONArray(Collections.singletonList(yjPoints)); + AcsResponse yjStatus = wmsToAcsService.getDeviceStatus(yjPointsParam); + JSONArray yjData = ObjectUtil.isNotEmpty(yjStatus) ? yjStatus.getData() : yjPointsParam; + for (int i = 0; i < yjData.size(); i++) { + JSONObject object = yjData.getJSONObject(i); + String realQty = object.getString("real_qty"); + if (ObjectUtil.isNotEmpty(realQty)) { + object.put("now_capacity", realQty); + } + } + return yjData; + }, pool); + pressMachineTask.thenAccept(result -> { + map.put("PressMachineList", result); + }).exceptionally((e) -> { + log.error("压机信息显示: {}", e.getMessage(), e); + map.put("PressMachineList", e.getMessage()); + return null; + }); + + //混碾机信息显示 + CompletableFuture mixMachineTask = CompletableFuture.supplyAsync(() -> { + List hnjPoints = cockPitMapper.selectHnjPoints(); + if (hnjPoints.isEmpty()) { + throw new RuntimeException("设备点位为空"); + } + JSONArray hnjPointsParam = new JSONArray(Collections.singletonList(hnjPoints)); + AcsResponse hnjStatus = wmsToAcsService.getDeviceStatus(hnjPointsParam); + JSONArray hnjData = ObjectUtil.isNotEmpty(hnjStatus) ? hnjStatus.getData() : hnjPointsParam; + for (int i = 0; i < hnjData.size(); i++) { + JSONObject jsonObject = hnjData.getJSONObject(i); + String openTime = jsonObject.getString("open_time"); + jsonObject.put("open_time", openTime.substring(openTime.indexOf('-') + 1)); + } + return hnjData; + }, pool); + mixMachineTask.thenAccept(result -> { + map.put("MixMachineList", result); + }).exceptionally((e) -> { + log.error("混料机信息显示: {}", e.getMessage(), e); + map.put("MixMachineList", null); + return null; + }); + // 困料货架的信息显示 TODO + CompletableFuture trappedMaterialShelfTask = CompletableFuture.supplyAsync(() -> { +// return cockPitMapper.selectKlhwInfo(); + return null; + }, pool); + trappedMaterialShelfTask.thenAccept(result -> { + map.put("TrappedMaterialShelfList", result); + }).exceptionally((e) -> { + log.error("困料货架 - 40 货位的信息显示: {}", e.getMessage(), e); + map.put("TrappedMaterialShelfList", null); + return null; + }); + // 混碾机对接位 + CompletableFuture> mixBlankingTask = CompletableFuture.supplyAsync(() -> { + return cockPitMapper.selectMixingRelativeInfo(); + }, pool); + mixBlankingTask.thenAccept(result -> { + map.put("MixBlankingList", result); + }).exceptionally((e) -> { + log.error("混料机下料位显示: {}", e.getMessage(), e); + map.put("MixBlankingList", null); + return null; + }); + //压制、分拣机械手 + CompletableFuture manipulatorInfoTask = CompletableFuture.supplyAsync(() -> { + List jxsPoints = cockPitMapper.selectJxsPoints(); + if (jxsPoints.isEmpty()) { + throw new RuntimeException("设备点位为空"); + } + JSONArray jxsPointsParam = new JSONArray(Collections.singletonList(jxsPoints)); + AcsResponse jxsStatus = wmsToAcsService.getDeviceStatus(jxsPointsParam); + JSONArray jxsData = ObjectUtil.isNotEmpty(jxsStatus) ? jxsStatus.getData() : jxsPointsParam; + for (int i = 0; i < jxsData.size(); i++) { + JSONObject object = jxsData.getJSONObject(i); + object.put("color_status", object.getInteger("device_status")); + } + return jxsData; + }, pool); + manipulatorInfoTask.thenAccept(result -> { + map.put("ManipulatorInfoList", result); + }).exceptionally((e) -> { + log.error("机械手: {}", e.getMessage(), e); + map.put("ManipulatorInfoList", null); + return null; + }); + //分拣拆码垛对接位 + CompletableFuture sortAndPalletizingTask = CompletableFuture.supplyAsync(() -> { + List fjcmdPoints = new ArrayList<>(); + fjcmdPoints.add("FJ01CDW01"); + fjcmdPoints.add("FJ01CDW02"); + JSONArray fjcmdPointsParam = new JSONArray(Collections.singletonList(fjcmdPoints)); + AcsResponse fjcmdStatus = wmsToAcsService.getDeviceStatus(fjcmdPointsParam); + JSONArray fjcmdData = ObjectUtil.isNotEmpty(fjcmdStatus) ? fjcmdStatus.getData() : fjcmdPointsParam; + for (int i = 0; i < fjcmdData.size(); i++) { + JSONObject jsonObject = fjcmdData.getJSONObject(i); + if (jsonObject.getInteger("move") != 0 + && ObjectUtil.isNotEmpty(jsonObject.getInteger("encoder_qty")) + && jsonObject.getInteger("encoder_qty") > 0) { + // 绿色 + jsonObject.put("color_status", ColorEnum.GREEN.getIndex()); + } else if (jsonObject.getInteger("move") != 0 + && 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 fjcmdData; + }, pool); + sortAndPalletizingTask.thenAccept(result -> { + map.put("SortAndPalletizingList", result); + }).exceptionally((e) -> { + log.error("分拣拆码垛: {}", e.getMessage(), e); + map.put("SortAndPalletizingList", e); + return null; + }); + CompletableFuture allQuery = CompletableFuture.allOf( + stackingPositionTask, + pressMachineTask, + trappedMaterialShelfTask, + mixMachineTask, + sortAndPalletizingTask, + manipulatorInfoTask, + mixBlankingTask + ); + CompletableFuture> future + = allQuery.thenApply((result) -> map).exceptionally((e) -> { + log.error(e.getMessage(), e); + return null; + }); + future.join(); + return map; } // @Override @@ -340,13 +485,13 @@ public class CockpitServiceImpl implements CockpitService { public List selectInOutKilnDetail() { //todo 确定每托盘数量 List res = new ArrayList<>(); - InOutKilnVo in = cockPitMapper.selectInKilnInfo(); + InOutKilnVo in = cockPitMapper.selectInKilnInfo(); in.setStat("1"); in.setPointName("入窑输送线"); in.setWorkTime("3.5"); in.setMaterialNum("25000"); - InOutKilnVo out = cockPitMapper.selectOutKilnInfo(); - if (null == out){ + InOutKilnVo out = cockPitMapper.selectOutKilnInfo(); + if (null == out) { out = new InOutKilnVo(); } out.setStat("1"); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java index 88995b6..75e0215 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java @@ -1,5 +1,6 @@ package org.nl.wms.cockpit.service.mapper; +import com.alibaba.fastjson.JSONArray; import org.nl.wms.cockpit.service.dao.*; import java.util.List; @@ -39,4 +40,14 @@ public interface CockPitMapper { List selectKilnMaterialInfo(); + List selectYzPoint(); + + List selectYjPoint(); + + List selectHnjPoints(); + + List selectMixingRelativeInfo(); + + List selectJxsPoints(); + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml index 14b76cc..450262a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml @@ -2,13 +2,13 @@ @@ -66,35 +68,38 @@ SELECT m.material_name AS materialName, - SUM(w.plan_qty) AS planQty, - SUM(w.real_qty) AS realQty + SUM(w.plan_weight) AS planWeight, + SUM(w.real_weight) AS realWeight FROM pdm_bd_workorder w LEFT JOIN md_base_material m ON m.material_id = w.material_id WHERE w.region_code = 'HN' @@ -129,33 +135,30 @@ + + + + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.xml index 09bd19c..68c41d2 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.xml @@ -5,7 +5,7 @@