diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/quartz/task/SyncDeviceStatus.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/quartz/task/SyncDeviceStatus.java index c2cff6e..dd56a1c 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/quartz/task/SyncDeviceStatus.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/quartz/task/SyncDeviceStatus.java @@ -47,23 +47,8 @@ public class SyncDeviceStatus { private void device() { - long startTime = System.currentTimeMillis(); + //long startTime = System.currentTimeMillis(); try { - //总数 - Integer a1_count = 0; - //正常运行 - Long a1_item1 = 0L; - //暂未生产 - Long a1_item2 = 0L; - //空闲设备 - Long a1_item3 = 0L; - //故障设备 - Long a1_item4 = 0L; - Integer a2_count = 0; - Long a2_item1 = 0L; - Long a2_item2 = 0L; - Long a2_item3 = 0L; - Long a2_item4 = 0L; JSONArray tbxList1 = new JSONArray(); JSONArray tbxList2 = new JSONArray(); JSONArray ghsList1 = new JSONArray(); @@ -209,9 +194,9 @@ public class SyncDeviceStatus { // // } //redisUtils.set("agvList", agvList); - log.trace("自动上报驱动状态,完毕耗时{}", System.currentTimeMillis() - startTime); + //log.trace("自动上报驱动状态,完毕耗时{}", System.currentTimeMillis() - startTime); } catch (Exception e) { - //log.error("自动线程开始查询AGV设备,自动上报驱动状态失败{}{}", e, e.getMessage()); + log.error("自动线程开始查询AGV设备,自动上报驱动状态失败{}{}", e, e.getMessage()); } } @@ -221,59 +206,59 @@ public class SyncDeviceStatus { Long a1_item1; Long a1_item2; Long a1_item4; - //0:脱机,1:故障,2:待机,3:运行中 - a1_count = deviceList.size(); JSONObject item1 = new JSONObject(); - item1.put("count", a1_count); - result.add(item1); - a1_item1 = deviceList.stream() - .map(JSONObject.class::cast) - .filter(r -> "3".equals(r.getString("mode"))) - .count(); - JSONObject item2 = new JSONObject(); - item2.put("count", a1_item1.toString()); - item2.put("name", "正常运行"); - // 计算百分比 - double a1Item1Percentage = (double) a1_item1 / a1_count * 100; - String a1Item1Percentages = new DecimalFormat("0.00").format(a1Item1Percentage) + "%"; - item2.put("percent", a1Item1Percentages); - result.add(item2); - a1_item2 = deviceList.stream() - .map(JSONObject.class::cast) - .filter(r -> "2".equals(r.getString("mode"))) - .count(); - JSONObject item3 = new JSONObject(); - item3.put("count", a1_item2.toString()); - item3.put("name", "暂未生产"); - // 计算百分比 - double a1Item2Percentage = (double) a1_item2 / a1_count * 100; - String a1Item2Percentages = new DecimalFormat("0.00").format(a1Item2Percentage) + "%"; - item3.put("percent", a1Item2Percentages); - result.add(item3); - a1_item3 = deviceList.stream() - .map(JSONObject.class::cast) - .filter(r -> "0".equals(r.getString("mode"))) - .count(); - JSONObject item4 = new JSONObject(); - item4.put("count", a1_item3.toString()); - item4.put("name", "空闲设备"); - // 计算百分比 - double a1Item3Percentage = (double) a1_item3 / a1_count * 100; - String a1Item3Percentages = new DecimalFormat("0.00").format(a1Item3Percentage) + "%"; - item4.put("percent", a1Item3Percentages); - result.add(item4); - a1_item4 = deviceList.stream() - .map(JSONObject.class::cast) - .filter(r -> "1".equals(r.getString("mode"))) - .count(); - JSONObject item5 = new JSONObject(); - item5.put("count", a1_item4.toString()); - item5.put("name", "故障设备"); - // 计算百分比 - double a1Item4Percentage = (double) a1_item4 / a1_count * 100; - String a1Item4Percentages = new DecimalFormat("0.00").format(a1Item4Percentage) + "%"; - item5.put("percent", a1Item4Percentages); - result.add(item5); + try { + //0:脱机,1:故障,2:待机,3:运行中 + a1_count = deviceList.size(); + item1.put("count", a1_count); + result.add(item1); + a1_item1 = deviceList.stream() + .map(JSONObject.class::cast) + .filter(r -> "3".equals(r.getString("mode"))) + .count(); + JSONObject item2 = new JSONObject(); + item2.put("count", a1_item1.toString()); + item2.put("name", "正常运行"); + double a1Item1Percentage = (double) a1_item1 / a1_count * 100; + String a1Item1Percentages = new DecimalFormat("0.00").format(a1Item1Percentage) + "%"; + item2.put("percent", a1Item1Percentages); + result.add(item2); + a1_item2 = deviceList.stream() + .map(JSONObject.class::cast) + .filter(r -> "2".equals(r.getString("mode"))) + .count(); + JSONObject item3 = new JSONObject(); + item3.put("count", a1_item2.toString()); + item3.put("name", "暂未生产"); + double a1Item2Percentage = (double) a1_item2 / a1_count * 100; + String a1Item2Percentages = new DecimalFormat("0.00").format(a1Item2Percentage) + "%"; + item3.put("percent", a1Item2Percentages); + result.add(item3); + a1_item3 = deviceList.stream() + .map(JSONObject.class::cast) + .filter(r -> "0".equals(r.getString("mode"))) + .count(); + JSONObject item4 = new JSONObject(); + item4.put("count", a1_item3.toString()); + item4.put("name", "空闲设备"); + double a1Item3Percentage = (double) a1_item3 / a1_count * 100; + String a1Item3Percentages = new DecimalFormat("0.00").format(a1Item3Percentage) + "%"; + item4.put("percent", a1Item3Percentages); + result.add(item4); + a1_item4 = deviceList.stream() + .map(JSONObject.class::cast) + .filter(r -> "1".equals(r.getString("mode"))) + .count(); + JSONObject item5 = new JSONObject(); + item5.put("count", a1_item4.toString()); + item5.put("name", "故障设备"); + double a1Item4Percentage = (double) a1_item4 / a1_count * 100; + String a1Item4Percentages = new DecimalFormat("0.00").format(a1Item4Percentage) + "%"; + item5.put("percent", a1Item4Percentages); + result.add(item5); + } catch (Exception e) { + log.error("获取设备数量和百分比失败", e); + } } private static void getDeviceMode(Integer mode, JSONObject json) { 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 a50db6b..6eb06f8 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 @@ -251,17 +251,27 @@ public class CockpitServiceImpl implements CockpitService { //涂板线 CompletableFuture>> task1 = CompletableFuture.supplyAsync(() -> { // todo 初始化点位所在排信息 - // List list = schBasePoint.list(new LambdaQueryWrapper().eq(SchBasePoint::getIs_used, 1)); - // List list1 = list.stream().filter(r -> "HCQ1".equals(r.getRegion_code()) || "HCQ2".equals(r.getRegion_code()) || "HCQ3".equals(r.getRegion_code()) || "HCQ4".equals(r.getRegion_code()) || "HCQ5".equals(r.getRegion_code()) || "HCQ7".equals(r.getRegion_code())).collect(Collectors.toList()); - // for (SchBasePoint r : list1) { - // if (r.getRow_num() == 0) { - // LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() - // .eq(SchBasePoint::getPoint_code, r.getPoint_code()); - // String pointId = r.getPoint_code().substring(5, 9); - // updateWrapper.set(SchBasePoint::getRow_num, Integer.parseInt(pointId)); - // schBasePoint.update(null, updateWrapper); - // } - // } + List list = schBasePoint.list(new LambdaQueryWrapper().eq(SchBasePoint::getIs_used, 1)); + List list1 = list.stream().filter(r -> "HCQ1".equals(r.getRegion_code()) || "HCQ2".equals(r.getRegion_code()) || "HCQ3".equals(r.getRegion_code()) || "HCQ4".equals(r.getRegion_code()) || "HCQ5".equals(r.getRegion_code()) || "HCQ7".equals(r.getRegion_code())).collect(Collectors.toList()); + for (SchBasePoint r : list1) { + if (r.getRow_num() == 0) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() + .eq(SchBasePoint::getPoint_code, r.getPoint_code()); + String pointId = r.getPoint_code().substring(5, 9); + updateWrapper.set(SchBasePoint::getRow_num, Integer.parseInt(pointId)); + schBasePoint.update(null, updateWrapper); + } + } + List basePointList = list.stream().filter(r -> "TBX1101".equals(r.getPoint_code())).collect(Collectors.toList()); + if (ObjectUtil.isNotEmpty(basePointList)) { + if ("A1".equals(basePointList.get(0).getWorkshop_code())) { + List regionList = new ArrayList<>(Arrays.asList("TBX2", "GHS2")); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper() + .in(SchBasePoint::getRegion_code, regionList); + updateWrapper.set(SchBasePoint::getWorkshop_code, "A2"); + schBasePoint.update(null, updateWrapper); + } + } // todo 未对接的涂板线数据 JSONObject tbx01 = new JSONObject(); tbx01.put("mode", "0"); @@ -448,16 +458,16 @@ public class CockpitServiceImpl implements CockpitService { Integer[] ghEndProduction = {0, 0}; //生产中的涂板任务 List list1 = result.stream().filter(r -> r.getTask_status() < 5 && "MJXLTask".equals(r.getType())).collect(Collectors.toList()); - extracted(list1, tbInProduction); + getProduction(list1, tbInProduction); //生产完成的涂板任务 List list2 = result.stream().filter(r -> r.getTask_status() == 5 && "MJXLTask".equals(r.getType())).collect(Collectors.toList()); - extracted(list2, tbEndProduction); + getProduction(list2, tbEndProduction); //生产中的固化任务 List list3 = result.stream().filter(r -> "GHSFMTask".equals(r.getType())).collect(Collectors.toList()); - extracted(list3, ghInProduction); + getProduction(list3, ghInProduction); //生产完成的固化任务 List list4 = result.stream().filter(r -> "GHSQHTask".equals(r.getType())).collect(Collectors.toList()); - extracted(list4, ghEndProduction); + getProduction(list4, ghEndProduction); tbx.put("device_code", "涂板"); tbx.put("a", tbInProduction[0]); tbx.put("b", tbEndProduction[0]); @@ -570,7 +580,7 @@ public class CockpitServiceImpl implements CockpitService { return jsonObject; } - private static void extracted(List list, Integer[] production) { + private static void getProduction(List list, Integer[] production) { list.stream() .peek(taskInfo -> { if (StringUtils.isBlank(taskInfo.getPoint_code1()) && StringUtils.isNotBlank(taskInfo.getPoint_code2())) { @@ -579,6 +589,9 @@ public class CockpitServiceImpl implements CockpitService { }) .forEach(taskInfo -> { int vehicleCount = taskInfo.getVehicle_code().split(",").length; + if (vehicleCount > 1) { + int w = 0; + } if ("A1".equals(taskInfo.getPoint_code1())) { production[0] += vehicleCount; } else { @@ -602,6 +615,7 @@ public class CockpitServiceImpl implements CockpitService { List groupList = r.getValue(); PointInfo point = groupList.get(0); if (groupList.stream().anyMatch(g -> g.getMove() == 3)) { + //极板三层架子有有一层有货 point.setMove(3); } else { point.setMove(0);