diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/tianneng/guhuashi/GuhuashiSiteDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/tianneng/guhuashi/GuhuashiSiteDeviceDriver.java index ede27fc..f723a20 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/tianneng/guhuashi/GuhuashiSiteDeviceDriver.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/tianneng/guhuashi/GuhuashiSiteDeviceDriver.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.ObjectUtils; import org.nl.acs.device.domain.Device; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; @@ -16,7 +15,11 @@ import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.config.SpringContextHolder; import org.openscada.opc.lib.da.Server; -import java.util.*; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + import static org.nl.common.utils.StringUtils.handleErrorCode; /** @@ -185,8 +188,8 @@ public class GuhuashiSiteDeviceDriver extends AbstractOpcDeviceDriver implements //todo 错误码转换 request.setType("3"); request.setState(String.valueOf(VD7046)); - //String ghsErrorCode = "10001000000010000001000010001000"; - String ghsErrorMessages = handleErrorCode(String.valueOf(VD7046), AcsDefineEnum.GHS_ERROR_STATUS); + String binaryCode = Integer.toBinaryString(VD7046); + String ghsErrorMessages = handleErrorCode(binaryCode, "GHS"); request.setState(ghsErrorMessages); //有故障 request.setCurrent_status(AcsDefineEnum.IS_NOTANDYES.code("是")); diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java index 4e9df62..4bb67e9 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java @@ -24,7 +24,6 @@ import nl.basjes.parse.useragent.UserAgentAnalyzer; import org.apache.commons.lang3.ObjectUtils; import org.nl.acs.enums.AcsDefineEnum; import org.nl.config.ElAdminProperties; -import org.nl.config.SpringContextHolder; import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; @@ -253,25 +252,42 @@ public class StringUtils { } } - public static String handleErrorCode(String errorCode, AcsDefineEnum deviceEnum) { + public static String handleErrorCode(String errorCode, String deviceType) { + AcsDefineEnum errorType; List errorMessages = new ArrayList<>(); - // if (errorCode.length() != 32) { - // throw new RuntimeException("错误代码必须是32位!"); - // } - for (int i = 0; i < errorCode.length(); i++) { - char bit = errorCode.charAt(i); - if (bit == '1') { - String errorNumber = String.valueOf(i + 1); - String errorMessage = deviceEnum.getErrorMessage(errorNumber); - if (org.apache.commons.lang3.StringUtils.isNotBlank(errorMessage)) { - errorMessages.add(errorMessage); + switch (deviceType) { + //取货完成 + case "GHS": + errorType = AcsDefineEnum.GHS_ERROR_STATUS; + break; + //放货完成 + case "TBX": + errorType = AcsDefineEnum.IS_NOTANDYES; + break; + default: + errorType = null; + break; + + } + if (errorType != null) { + for (int i = 0; i < errorCode.length(); i++) { + // 从右往左,索引从0开始,所以需要加1 + if (errorCode.charAt(errorCode.length() - 1 - i) == '1') { + // 获取对应的错误信息 + String errorMessage = errorType.getErrorMessage(String.valueOf(i + 1)); + if (!errorMessage.isEmpty()) { + errorMessages.add(errorMessage); + } } } - } - if (ObjectUtils.isNotEmpty(errorMessages)) { - return String.join(", ", errorMessages); + if (ObjectUtils.isNotEmpty(errorMessages)) { + return String.join(", ", errorMessages); + } else { + return ""; + } } else { return ""; } + } } diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java index b78ffb0..56f3bd1 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java @@ -31,6 +31,7 @@ import java.util.Map; @Slf4j @RestController @RequestMapping("/api/param") +@SaIgnore class SysParamController { @Autowired @@ -43,6 +44,16 @@ class SysParamController { return new ResponseEntity<>(TableDataInfo.build(paramService.queryPage(whereJson, page)), HttpStatus.OK); } + + @PostMapping("/getValueByCode1") + @Log("查询系统参数") + @ApiOperation("查询系统参数") + //@SaCheckPermission("param:list") + public ResponseEntity query(){ + return null; + } + + @PostMapping @Log("新增系统参数") @ApiOperation("新增系统参数") diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/AcsDefineEnum.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/AcsDefineEnum.java index 8eacec4..3b6047a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/AcsDefineEnum.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/enums/AcsDefineEnum.java @@ -18,8 +18,8 @@ public enum AcsDefineEnum { //agv状态 1-关机2-运行中3-交通管制4-任务等待5-充电中6-故障中7-低电量 AGV_STATUS(MapOf.of("关机", "1", "运行中", "2", "交通管制", "3", "任务等待", "4", "充电中", "5", "故障中", "6", "低电量", "7")), - //RGV状态 1-空闲 2-任务执行中 3-充电 4-故障 5-未知 6-不可利用 - RGV_STATUS(MapOf.of("1","IDLE","2","EXECUTING","3","CHARGING","4","ERROR","5","UNKNOWN","6","UNAVAILABLE")), + //RGV状态 1-空闲 2-工作中 3-手动 4-下线 + RGV_STATUS(MapOf.of("1","IDLE","2","WORK","3","UNAVAIL","4","OFFLINE")), //载具类型 VEHICLE_TYPE(MapOf.of("普涂", "1", "连涂", "2")), diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/zcq/TaskInfo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/zcq/TaskInfo.java index eab67a5..76769a1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/zcq/TaskInfo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/zcq/TaskInfo.java @@ -18,6 +18,8 @@ public class TaskInfo extends ErrorData { private String material_name; private String material_spec; private String qty; + private String type; + private String material_qty; private String vehicle_type; private String vehicle_code; private String task_type; 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 a1b2c01..f591788 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 @@ -1,5 +1,6 @@ package org.nl.wms.cockpit.service.impl; +import cn.hutool.core.date.StopWatch; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -151,6 +152,7 @@ public class CockpitServiceImpl implements CockpitService { item1.put("plan_qty", "100"); item1.put("real_qty", "0"); item1.put("point_name", "普涂线01"); + item1.put("device_code", "LTX01"); item1.put("workorder_status", "生产中"); today_work.add(item1); } @@ -187,7 +189,7 @@ public class CockpitServiceImpl implements CockpitService { CompletableFuture>> task10 = CompletableFuture.supplyAsync(() -> cockpitMapper.faultAlarm(), pool); task10.thenAccept((result) -> { //测试数据,上线后删除 - faultAlarmDefault(result, "TS_GHS02"); + faultAlarmDefault(result, "GHS01"); getHomeInfo.put("fault_alarm", result); }).exceptionally((e) -> { log.error("实时故障告警: {}", e.getMessage(), e); @@ -198,7 +200,7 @@ public class CockpitServiceImpl implements CockpitService { CompletableFuture task11 = CompletableFuture.supplyAsync(() -> cockpitMapper.monthlyFaultStatistics(), pool); task11.thenAccept((result) -> { //测试数据,上线后删除 - monthlyFaultStatisticsDefault(result, "TS_GHS02"); + monthlyFaultStatisticsDefault(result, "GHS01"); getHomeInfo.put("monthly_fault_statistics", result); }).exceptionally((e) -> { log.error("近30日故障统计: {}", e.getMessage(), e); @@ -286,22 +288,23 @@ public class CockpitServiceImpl implements CockpitService { JSONArray today_work = cockpitMapper.todayTbTask(); if (ObjectUtil.isEmpty(today_work)) { JSONObject item1 = new JSONObject(); - item1.put("workorder_code", "test_240712002"); + item1.put("workorder_code", "TS_240712002"); item1.put("material_name", "13.2正"); item1.put("plan_qty", "100"); item1.put("real_qty", "0"); item1.put("point_name", "连涂线01"); + item1.put("device_code", "LTX01"); item1.put("workorder_status", "就绪"); today_work.add(item1); } //实时故障告警 List> fault_alarm = cockpitMapper.FaultTime("TBX"); //测试数据,上线后删除 - faultAlarmDefault(fault_alarm, "TS_LTX02"); + faultAlarmDefault(fault_alarm, "LTX01"); //近30日故障统计 JSONArray monthly_fault_statistics = cockpitMapper.FaultTotal("TBX"); //测试数据,上线后删除 - monthlyFaultStatisticsDefault(monthly_fault_statistics, "TS_LTX02"); + monthlyFaultStatisticsDefault(monthly_fault_statistics, "LTX01"); List> monthly_produce_statistics = cockpitMapper.getTbxMonthlyStatistics(); List> tbxMonthlyStatistics = new ArrayList<>(); for (int i = 0; i < 30; i++) { @@ -364,35 +367,36 @@ public class CockpitServiceImpl implements CockpitService { @Override public JSONObject getGhsInfo() { JSONObject getGhsInfo = new JSONObject(); + StopWatch stopWatch = new StopWatch(); + stopWatch.start(); //固化汇总 JSONArray curing_summary = cockpitMapper.curingSummary(); + stopWatch.stop(); + System.out.println("查询固化汇总花费时间---= totalTime = " + stopWatch.getTotalTimeMillis()); + + StopWatch stopWatch1 = new StopWatch(); + stopWatch1.start(); + //30天固化统计 List> monthly_gh_qty = cockpitMapper.getGhsQty("30"); List> monthly_gh_qty_default = new ArrayList<>(); getWeekWorkStatistics(monthly_gh_qty, monthly_gh_qty_default, "GH", 30); + stopWatch1.stop(); + System.out.println("查询30天固化统计花费时间---= totalTime = " + stopWatch1.getTotalTimeMillis()); + + + StopWatch stopWatch2 = new StopWatch(); + stopWatch2.start(); //今日固化任务 List> gh_material_summary = new ArrayList<>(); - CompletableFuture> task3 = CompletableFuture.supplyAsync(() -> { - List tasks = new ArrayList<>(); - try { - tasks = getTasks(RegionCodeConstant.CURING_ZONE); - } catch (Exception e) { - TaskInfo taskInfo = new TaskInfo(); - taskInfo.setError_info(e.toString()); - tasks.add(taskInfo); - } - return tasks; - }, pool); - List taskInfos = task3.join(); - if (ObjectUtil.isNotEmpty(taskInfos )){ + List taskInfos = getTasks(RegionCodeConstant.CURING_ZONE); + if (ObjectUtil.isNotEmpty(taskInfos)) { taskInfos.forEach(r -> { - if (r.getError_info() != null) { - Map item = new HashMap<>(); - item.put("material_name", r.getMaterial_name()); - item.put("material_spec", r.getMaterial_spec()); - item.put("qty", r.getQty()); - item.put("type", r.getTask_type()); - gh_material_summary.add(item); - } + Map item = new HashMap<>(); + item.put("material_name", r.getMaterial_name()); + item.put("material_spec", r.getMaterial_spec()); + item.put("qty", r.getMaterial_qty()); + item.put("type", r.getType()); + gh_material_summary.add(item); }); } else { //测试数据,上线后删除 @@ -409,19 +413,36 @@ public class CockpitServiceImpl implements CockpitService { gh_material_summary.add(item1); gh_material_summary.add(item2); } + stopWatch2.stop(); + System.out.println("今日固化任务统计花费时间---= totalTime = " + stopWatch2.getTotalTimeMillis()); + + + StopWatch stopWatch3 = new StopWatch(); + stopWatch3.start(); //实时故障告警 List> fault_alarm = cockpitMapper.FaultTime("GH"); - //测试数据,上线后删除 - faultAlarmDefault(fault_alarm, "TS_GHS02"); + faultAlarmDefault(fault_alarm, "GHS01"); + stopWatch3.stop(); + System.out.println("查询实时故障告警花费时间---= totalTime = " + stopWatch3.getTotalTimeMillis()); + + + StopWatch stopWatch4 = new StopWatch(); + stopWatch4.start(); //近30日故障统计 JSONArray monthly_fault_statistics = cockpitMapper.FaultTotal("GH"); //测试数据,上线后删除 - monthlyFaultStatisticsDefault(monthly_fault_statistics, "TS_GHS02"); + monthlyFaultStatisticsDefault(monthly_fault_statistics, "GHS01"); + stopWatch4.stop(); + System.out.println("查询近30日故障统计花费时间---= totalTime = " + stopWatch4.getTotalTimeMillis()); + + getGhsInfo.put("curing_summary", curing_summary); getGhsInfo.put("monthly_gh_qty", monthly_gh_qty_default); getGhsInfo.put("gh_material_summary", gh_material_summary); getGhsInfo.put("fault_alarm", fault_alarm); getGhsInfo.put("monthly_fault_statistics", monthly_fault_statistics); + + return getGhsInfo; } @@ -510,7 +531,7 @@ public class CockpitServiceImpl implements CockpitService { //测试数据,上线后删除 if (ObjectUtil.isEmpty(monthly_fault_statistics)) { JSONObject item = new JSONObject(); - item.put("region_name", "TS_GHS"); + item.put("region_name", "GHS"); item.put("alarm_qty", "1"); monthly_fault_statistics.add(item); } @@ -525,8 +546,12 @@ public class CockpitServiceImpl implements CockpitService { * 设备ui */ @Override - public JSONObject equipmentInfo(String deviceCode) { + public JSONObject equipmentInfo(String code) { + if (StringUtils.isBlank(code)) { + throw new RuntimeException("设备编号不能为空"); + } JSONObject res = new JSONObject(); + String deviceCode = code.toUpperCase(); SchBasePoint point = pointService.getById(deviceCode); String type = point != null ? point.getRegion_code() : RegionCodeConstant.VEHICLEINFO; List points; @@ -600,7 +625,7 @@ public class CockpitServiceImpl implements CockpitService { List> tb_real_qty = cockpitMapper.getTxQty("30", "TBX"); List> tb_real_qty_default = new ArrayList<>(); getWeekWorkStatistics(tb_real_qty, tb_real_qty_default, "TBX", 30); - res.put("production_month ", tb_real_qty_default); + res.put("production_month", tb_real_qty_default); break; case RegionCodeConstant.CURING_ZONE: //固化室,需要显示整个设备+内部位置明细 @@ -648,8 +673,8 @@ public class CockpitServiceImpl implements CockpitService { List> gh_real_qty = cockpitMapper.getGhsQty("30"); List> gh_real_qty_default = new ArrayList<>(); getWeekWorkStatistics(gh_real_qty, gh_real_qty_default, "GHS", 30); - res.put("production_month ", gh_real_qty_default); - res.put("current_tasks ", current_tasks); + res.put("production_month", gh_real_qty_default); + res.put("current_tasks", current_tasks); res.put("details", ghsArray); break; case RegionCodeConstant.EMPTY_TEMPORARY_STORAGE_AREA: 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 79a7f05..0366d2b 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 @@ -331,7 +331,8 @@ m.material_name AS material_name, w.plan_qty, w.real_qty, - w.point_name, + w.point_name , + w.point_code as device_code, w.workorder_status FROM `pdm_bd_workorder` w LEFT JOIN md_base_material m ON m.material_id = w.material_id @@ -521,6 +522,7 @@ w.plan_qty, w.real_qty, w.point_name, + w.point_code as device_code, w.workorder_status FROM `pdm_bd_workorder` w @@ -529,22 +531,42 @@ w.workorder_status=3 And DATE(w.create_time)=CURDATE() +