From 9938ca3a4186227b50a5f6f1f5c7b7f6c1dcb32b Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Thu, 2 Apr 2026 09:10:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=9C=BA=E8=B0=83=E5=BA=A6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/service/impl/MydoJobServiceImpl.java | 98 +++++++++++++------ .../com/ruoyi/schedule/ScheduleThread.java | 42 +++++--- .../scheduleTask/ddj/impl/Ddj5Thread.java | 20 +++- .../scheduleTask/ddj/impl/Ddj6Thread.java | 21 +++- .../com/ruoyi/schedule/util/CheckWeight.java | 41 +------- .../src/main/resources/application-druid.yml | 2 +- 6 files changed, 133 insertions(+), 91 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java index 55ee678..47aac03 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/service/impl/MydoJobServiceImpl.java @@ -182,41 +182,79 @@ public class MydoJobServiceImpl implements IMydoJobService @Override public Map> selectJobListByWarehouseIdAndType(String warehouseId, String type) { Map> map = new HashMap<>(); - map.put("1",new ArrayList<>()); - map.put("2",new ArrayList<>()); - map.put("3",new ArrayList<>()); - map.put("4",new ArrayList<>()); - map.put("5",new ArrayList<>()); - map.put("6",new ArrayList<>()); - MydoJob outParam = new MydoJob(); - outParam.setWarehouseId(warehouseId); - outParam.setExitId(type); - List outMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(outParam); - if (CollUtil.isNotEmpty(outMydoJobs)){ - Map> collect = outMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId)); - for (String roadwayId : collect.keySet()) { - if (map.containsKey(roadwayId)){ - List mydoJobs = map.get(roadwayId); - mydoJobs.addAll(collect.get(roadwayId)); - map.put(roadwayId,mydoJobs); + if ("01".equals(warehouseId)){ + map.put("1",new ArrayList<>()); + map.put("2",new ArrayList<>()); + map.put("3",new ArrayList<>()); + MydoJob outParam = new MydoJob(); + outParam.setWarehouseId(warehouseId); + outParam.setExitId(type); + List outMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(outParam); + if (CollUtil.isNotEmpty(outMydoJobs)){ + Map> collect = outMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId)); + for (String roadwayId : collect.keySet()) { + if (map.containsKey(roadwayId)){ + List mydoJobs = map.get(roadwayId); + mydoJobs.addAll(collect.get(roadwayId)); + map.put(roadwayId,mydoJobs); + } } } - } - MydoJob inParam = new MydoJob(); - inParam.setWarehouseId(warehouseId); - inParam.setEntranceId(type); - List inMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(inParam); - if (CollUtil.isNotEmpty(inMydoJobs)) { - Map> collect = inMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId)); - for (String roadwayId : collect.keySet()) { - if (map.containsKey(roadwayId)){ - List mydoJobs = map.get(roadwayId); - mydoJobs.addAll(collect.get(roadwayId)); - map.put(roadwayId,mydoJobs); + MydoJob inParam = new MydoJob(); + inParam.setWarehouseId(warehouseId); + inParam.setEntranceId(type); + List inMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(inParam); + if (CollUtil.isNotEmpty(inMydoJobs)) { + Map> collect = inMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId)); + for (String roadwayId : collect.keySet()) { + if (map.containsKey(roadwayId)){ + List mydoJobs = map.get(roadwayId); + mydoJobs.addAll(collect.get(roadwayId)); + map.put(roadwayId,mydoJobs); + } } } + return map; + }else { + map.put("1",new ArrayList<>()); + map.put("2",new ArrayList<>()); + map.put("3",new ArrayList<>()); + map.put("4",new ArrayList<>()); + map.put("5",new ArrayList<>()); + map.put("6",new ArrayList<>()); + MydoJob outParam = new MydoJob(); + outParam.setWarehouseId(warehouseId); + outParam.setExitId(type); + List outMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(outParam); + if (CollUtil.isNotEmpty(outMydoJobs)){ + Map> collect = outMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId)); + for (String roadwayId : collect.keySet()) { + if (map.containsKey(roadwayId)){ + List mydoJobs = map.get(roadwayId); + mydoJobs.addAll(collect.get(roadwayId)); + map.put(roadwayId,mydoJobs); + } + } + } + MydoJob inParam = new MydoJob(); + inParam.setWarehouseId(warehouseId); + inParam.setEntranceId(type); + List inMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(inParam); + if (CollUtil.isNotEmpty(inMydoJobs)) { + Map> collect = inMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId)); + for (String roadwayId : collect.keySet()) { + if (map.containsKey(roadwayId)){ + List mydoJobs = map.get(roadwayId); + mydoJobs.addAll(collect.get(roadwayId)); + map.put(roadwayId,mydoJobs); + } + } + } + map.put("1",map.get("4")); + map.put("2",map.get("5")); + map.put("3",map.get("6")); + return map; } - return map; } @Override diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java index 8f11937..abdb8ca 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -178,11 +178,14 @@ public class ScheduleThread { plcDdj4ReadCustomThread.getThread().start(); } - /*plcDdj2ReadCustomThread.getThread().start(); - plcDdj3ReadCustomThread.getThread().start(); - plcDdj4ReadCustomThread.getThread().start(); - plcDdj5ReadCustomThread.getThread().start(); - plcDdj6ReadCustomThread.getThread().start();*/ + if (plcDdj5ReadCustomThread!=null){ + plcDdj5ReadCustomThread.getThread().start(); + + } + /*if (plcDdj6ReadCustomThread!=null){ + plcDdj6ReadCustomThread.getThread().start(); + + }*/ isRun = true; } @@ -207,11 +210,14 @@ public class ScheduleThread { ddj4CustomThread.thread.start(); } - /*ddj2CustomThread.thread.start(); - ddj3CustomThread.thread.start(); - ddj4CustomThread.thread.start(); - ddj5CustomThread.thread.start(); - ddj6CustomThread.thread.start();*/ + if (ddj5CustomThread!=null){ + ddj5CustomThread.thread.start(); + + } + /*if (ddj6CustomThread!=null){ + ddj6CustomThread.thread.start(); + + }*/ isRun2 = true; } @@ -224,11 +230,15 @@ public class ScheduleThread { plcDdj1ReadCustomThread.runnable.isRun = false; plcDdj1ReadCustomThread.thread.interrupt(); plcDdj2ReadCustomThread.runnable.isRun = false; + plcDdj2ReadCustomThread.thread.interrupt(); plcDdj3ReadCustomThread.runnable.isRun = false; + plcDdj3ReadCustomThread.thread.interrupt(); plcDdj4ReadCustomThread.runnable.isRun = false; plcDdj4ReadCustomThread.thread.interrupt(); plcDdj5ReadCustomThread.runnable.isRun = false; - plcDdj6ReadCustomThread.runnable.isRun = false; + plcDdj5ReadCustomThread.thread.interrupt(); + /*plcDdj6ReadCustomThread.runnable.isRun = false; + plcDdj6ReadCustomThread.thread.interrupt();*/ plcReadInit(); isRun = false; } @@ -239,8 +249,18 @@ public class ScheduleThread { public void stopAllThread2() { monitoringCustomThread.runnable.isRun = false; monitoringCustomThread.thread.interrupt(); + ddj1CustomThread.runnable.isRun = false; + ddj1CustomThread.thread.interrupt(); + ddj2CustomThread.runnable.isRun = false; + ddj2CustomThread.thread.interrupt(); + ddj3CustomThread.runnable.isRun = false; + ddj3CustomThread.thread.interrupt(); ddj4CustomThread.runnable.isRun = false; ddj4CustomThread.thread.interrupt(); + ddj5CustomThread.runnable.isRun = false; + ddj5CustomThread.thread.interrupt(); + /*ddj6CustomThread.runnable.isRun = false; + ddj6CustomThread.thread.interrupt();*/ scheduleInit(); isRun2 = false; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java index 6047c55..77c141e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj5Thread.java @@ -43,20 +43,32 @@ public class Ddj5Thread extends BaseDdjThread { ssjList.put("outSsj2", outSsj2); //初始化巷道口 排 列 层 - roadwayMap.put("L1003", Arrays.asList(1, 1, 1)); - roadwayMap.put("L1004", Arrays.asList(2, 1, 1)); + roadwayMap.put("L1003", Arrays.asList(1, 0, 1)); + roadwayMap.put("L1004", Arrays.asList(2, 0, 1)); + //未扫码 回退任务号 无入库任务在此基础+100 roadwayRollback.put("L1003", 94); roadwayRollback.put("L1004", 95); + //初始化称重设备连接ip port + czRoadwayMap.put("L1003", "172.19.40.216:4001"); + czRoadwayMap.put("L1004", "172.19.40.217:4001"); + + /*czOverMap.put("L1003", "DB502.12"); + czOverMap.put("L1004", "DB502.26");*/ + + outJobMap.put("L1003", "DB502.38"); + outJobMap.put("L1004", "DB502.52"); + log.info("Ddj5Thread init"); } + @Override public HashMap getParamMap(String trayCode,Integer height,double weight) { HashMap paramMap = new HashMap<>(); paramMap.put("trayCode", trayCode); paramMap.put("warehouseId",WAREHOUSE_02); - paramMap.put("roadwayId",ROADWAY_ID_02); + paramMap.put("roadwayId",ROADWAY_ID_05); paramMap.put("height",height); paramMap.put("weight",weight); return paramMap; @@ -66,7 +78,7 @@ public class Ddj5Thread extends BaseDdjThread { public MydoJob getOutJobParam() { MydoJob mydoJob = new MydoJob(); mydoJob.setWarehouseId(WAREHOUSE_02); - mydoJob.setRoadwayId(String.valueOf(ROADWAY_ID_02)); + mydoJob.setRoadwayId(String.valueOf(ROADWAY_ID_05)); mydoJob.setStatus("1"); return mydoJob; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java index 06ed300..4d1cca8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ddj/impl/Ddj6Thread.java @@ -43,11 +43,22 @@ public class Ddj6Thread extends BaseDdjThread { ssjList.put("outSsj2", outSsj2); //初始化巷道口 排 列 层 - roadwayMap.put("L1005", Arrays.asList(1, 1, 1)); - roadwayMap.put("L1006", Arrays.asList(2, 1, 1)); + roadwayMap.put("L1005", Arrays.asList(1, 0, 1)); + roadwayMap.put("L1006", Arrays.asList(2, 0, 1)); + //未扫码 回退任务号 无入库任务在此基础+100 roadwayRollback.put("L1005", 96); roadwayRollback.put("L1006", 97); + //初始化称重设备连接ip port + czRoadwayMap.put("L1005", "172.19.40.218:4001"); + czRoadwayMap.put("L1006", "172.19.40.219:4001"); + + /*czOverMap.put("L1003", "DB502.12"); + czOverMap.put("L1004", "DB502.26");*/ + + outJobMap.put("L1005", "DB502.66"); + outJobMap.put("L1006", "DB502.80"); + log.info("Ddj6Thread init"); } @@ -57,10 +68,9 @@ public class Ddj6Thread extends BaseDdjThread { HashMap paramMap = new HashMap<>(); paramMap.put("trayCode", trayCode); paramMap.put("warehouseId",WAREHOUSE_02); - paramMap.put("roadwayId",ROADWAY_ID_03); + paramMap.put("roadwayId",ROADWAY_ID_06); paramMap.put("height",height); paramMap.put("weight",weight); - return paramMap; } @@ -68,7 +78,7 @@ public class Ddj6Thread extends BaseDdjThread { public MydoJob getOutJobParam() { MydoJob mydoJob = new MydoJob(); mydoJob.setWarehouseId(WAREHOUSE_02); - mydoJob.setRoadwayId(String.valueOf(ROADWAY_ID_03)); + mydoJob.setRoadwayId(String.valueOf(ROADWAY_ID_06)); mydoJob.setStatus("1"); return mydoJob; @@ -86,4 +96,5 @@ public class Ddj6Thread extends BaseDdjThread { return "1"; } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/util/CheckWeight.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/util/CheckWeight.java index 4a3923a..1b880e1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/util/CheckWeight.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/util/CheckWeight.java @@ -1,6 +1,5 @@ package com.ruoyi.schedule.util; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import java.io.InputStream; @@ -39,41 +38,6 @@ public class CheckWeight { return zhi; } - /** - * 用 Hutool 找出数组中出现次数最多的字符串 - * @param strArray 目标字符串数组 - * @return 出现次数最多的字符串(空数组返回 null,多最大值返回第一个) - */ - /** - * 兼容所有 Hutool 版本:找出数组中出现次数最多的字符串 - * @param strArray 目标字符串数组 - * @return 出现次数最多的字符串(空数组返回 null,多最大值返回第一个) - */ - public static String getMostFrequentByHutool(String[] strArray) { - // 1. 空值校验 + 数组转 List - if (strArray == null || strArray.length == 0) { - return null; - } - List strList = CollUtil.newArrayList(strArray); - - // 2. 用 Hutool 统计频次(所有版本都支持) - Map countMap = CollUtil.countMap(strList); - - // 3. 手动遍历找最大值(替代不存在的 getMaxKey 方法) - String mostFrequent = null; - int maxCount = 0; - // 遍历 Map 条目,Hutool 5.x 及以上都支持 entrySet 遍历 - for (Map.Entry entry : countMap.entrySet()) { - if (entry.getValue() > maxCount) { - maxCount = entry.getValue(); - mostFrequent = entry.getKey(); - } - } - - return mostFrequent; - } - - /** * 将byte数组按指定编码转为char数组 * @param byteArr 输入的byte数组 @@ -91,10 +55,7 @@ public class CheckWeight { public static void main(String[] args) { CheckWeight checkWeight = new CheckWeight(); - while (true){ - System.out.println(checkWeight.sendWeight("172.19.50.80", 4001)); - - } + System.out.println(checkWeight.sendWeight("172.19.50.75", 4001)); } } diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 7cff0ab..605181e 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,7 +6,7 @@ spring: druid: #主数据信息 master: - url: jdbc:sqlserver://172.19.1.119:1433;databaseName=FT541-wcs-2; + url: jdbc:sqlserver://172.19.1.119:1433;databaseName=FT541-wcs; username: sa password: Flrd0914. # 从库数据源