现场调度修改

This commit is contained in:
liuhanqing
2026-04-02 09:10:58 +08:00
parent 2def16ad4b
commit 9938ca3a41
6 changed files with 133 additions and 91 deletions

View File

@@ -182,41 +182,79 @@ public class MydoJobServiceImpl implements IMydoJobService
@Override
public Map<String, List<MydoJobScreen>> selectJobListByWarehouseIdAndType(String warehouseId, String type) {
Map<String, List<MydoJobScreen>> 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<MydoJobScreen> outMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(outParam);
if (CollUtil.isNotEmpty(outMydoJobs)){
Map<String, List<MydoJobScreen>> collect = outMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId));
for (String roadwayId : collect.keySet()) {
if (map.containsKey(roadwayId)){
List<MydoJobScreen> 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<MydoJobScreen> outMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(outParam);
if (CollUtil.isNotEmpty(outMydoJobs)){
Map<String, List<MydoJobScreen>> collect = outMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId));
for (String roadwayId : collect.keySet()) {
if (map.containsKey(roadwayId)){
List<MydoJobScreen> mydoJobs = map.get(roadwayId);
mydoJobs.addAll(collect.get(roadwayId));
map.put(roadwayId,mydoJobs);
}
}
}
}
MydoJob inParam = new MydoJob();
inParam.setWarehouseId(warehouseId);
inParam.setEntranceId(type);
List<MydoJobScreen> inMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(inParam);
if (CollUtil.isNotEmpty(inMydoJobs)) {
Map<String, List<MydoJobScreen>> collect = inMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId));
for (String roadwayId : collect.keySet()) {
if (map.containsKey(roadwayId)){
List<MydoJobScreen> mydoJobs = map.get(roadwayId);
mydoJobs.addAll(collect.get(roadwayId));
map.put(roadwayId,mydoJobs);
MydoJob inParam = new MydoJob();
inParam.setWarehouseId(warehouseId);
inParam.setEntranceId(type);
List<MydoJobScreen> inMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(inParam);
if (CollUtil.isNotEmpty(inMydoJobs)) {
Map<String, List<MydoJobScreen>> collect = inMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId));
for (String roadwayId : collect.keySet()) {
if (map.containsKey(roadwayId)){
List<MydoJobScreen> 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<MydoJobScreen> outMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(outParam);
if (CollUtil.isNotEmpty(outMydoJobs)){
Map<String, List<MydoJobScreen>> collect = outMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId));
for (String roadwayId : collect.keySet()) {
if (map.containsKey(roadwayId)){
List<MydoJobScreen> mydoJobs = map.get(roadwayId);
mydoJobs.addAll(collect.get(roadwayId));
map.put(roadwayId,mydoJobs);
}
}
}
MydoJob inParam = new MydoJob();
inParam.setWarehouseId(warehouseId);
inParam.setEntranceId(type);
List<MydoJobScreen> inMydoJobs = mydoJobMapper.selectJobListByWarehouseIdAndType(inParam);
if (CollUtil.isNotEmpty(inMydoJobs)) {
Map<String, List<MydoJobScreen>> collect = inMydoJobs.stream().collect(Collectors.groupingBy(MydoJobScreen::getRoadwayId));
for (String roadwayId : collect.keySet()) {
if (map.containsKey(roadwayId)){
List<MydoJobScreen> 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

View File

@@ -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;
}

View File

@@ -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<String, Object> getParamMap(String trayCode,Integer height,double weight) {
HashMap<String, Object> 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;

View File

@@ -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<String, Object> 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";
}
}

View File

@@ -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<String> strList = CollUtil.newArrayList(strArray);
// 2. 用 Hutool 统计频次(所有版本都支持)
Map<String, Integer> countMap = CollUtil.countMap(strList);
// 3. 手动遍历找最大值(替代不存在的 getMaxKey 方法)
String mostFrequent = null;
int maxCount = 0;
// 遍历 Map 条目,Hutool 5.x 及以上都支持 entrySet 遍历
for (Map.Entry<String, Integer> 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));
}
}

View File

@@ -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.
# 从库数据源