From cff158095441a2d48e2fc10046e0f159462b4d5c Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Wed, 10 Dec 2025 09:06:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(cargo):=20=E6=B7=BB=E5=8A=A0=E8=B4=A7?= =?UTF-8?q?=E4=BD=8D=E6=8E=92=E5=BA=8F=E5=8F=8A=E5=88=86=E7=BB=84=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在BasCargoSpaceMapper.xml中添加货位排序规则 - 新增SRGV设备监控线程处理逻辑 - 完善SRGV设备读取测试代码 - 修改道路缓存服务中的参数设置 - 注释掉调度线程中不必要的SRGV读取任务 - 实现货位分组编码自动生成接口 --- .../ruoyi/api/controller/TestController.java | 74 ++++++++++++++----- .../service/impl/RoadCacheServiceImpl.java | 3 +- .../com/ruoyi/schedule/ScheduleThread.java | 4 +- .../schedule/plcRead/srgv/PlcSrgvRead.java | 1 + .../scheduleTask/monit/MonitoringThread.java | 11 ++- .../mapper/bas/BasCargoSpaceMapper.xml | 1 + 6 files changed, 71 insertions(+), 23 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/TestController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/TestController.java index 2767831..959c94a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/TestController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/TestController.java @@ -1,37 +1,75 @@ package com.ruoyi.api.controller; +import cn.hutool.core.collection.CollUtil; import com.ruoyi.api.service.ITestService; +import com.ruoyi.bas.cargospace.domain.BasCargoSpace; +import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @RestController @RequestMapping("/test") public class TestController { @Resource - private ITestService testService; + private IBasCargoSpaceService basCargoSpaceService; - @GetMapping("/sendSsjData") - public String sendSsjData(Integer id) { - boolean b = testService.sendSsjData(id); - if (!b) { - return "error"; + + @GetMapping("/gen") + public String gen() { + List basCargoSpaces = basCargoSpaceService.selectBasCargoSpaceList(new BasCargoSpace()); + Map> floorMap = basCargoSpaces.stream().collect(Collectors.groupingBy(BasCargoSpace::getTheFloor)); + int x = 1; + for (Long floor : floorMap.keySet()) { + List floorList = floorMap.get(floor); + Map> columnList = floorList.stream().collect(Collectors.groupingBy(BasCargoSpace::getTheColumn)); + for (Long column : columnList.keySet()) { + List basCargoSpacesList = columnList.get(column); + Map> collect = basCargoSpacesList.stream().collect(Collectors.groupingBy(y -> { + if (y.getThePlatoon() > 5) { + return "2"; + } else { + return "1"; + } + })); + + for (String s : collect.keySet()) { + List basCargoSpacesList1 = collect.get(s); + int x1 = 1; + if ("1".equals(s)){ + basCargoSpacesList1.sort(Comparator.comparing(BasCargoSpace::getTheColumn)); + CollUtil.reverse(basCargoSpacesList1); + for (BasCargoSpace basCargoSpace : basCargoSpacesList1) { + basCargoSpace.setGroupCoding(x1+""); + basCargoSpace.setGroupCodingNo(String.format("%03d", x)); + x1++; + basCargoSpaceService.updateBasCargoSpace(basCargoSpace); + } + + }else if ("2".equals(s)){ + basCargoSpacesList1.sort(Comparator.comparing(BasCargoSpace::getTheColumn)); + + for (BasCargoSpace basCargoSpace : basCargoSpacesList1) { + basCargoSpace.setGroupCoding(x1+""); + basCargoSpace.setGroupCodingNo(String.format("%03d", x)); + x1++; + basCargoSpaceService.updateBasCargoSpace(basCargoSpace); + } + } + x++; + + } + } } - return "success"; + + return null; } - - @GetMapping("/sendDdjData") - public String sendDdjData(Integer id) { - boolean b = testService.sendDdjData(id); - if (!b) { - return "error"; - } - return "success"; - } - - } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/srgvmap/service/impl/RoadCacheServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/srgvmap/service/impl/RoadCacheServiceImpl.java index 6bb2169..ce1ddc5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/srgvmap/service/impl/RoadCacheServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/srgvmap/service/impl/RoadCacheServiceImpl.java @@ -41,7 +41,8 @@ public class RoadCacheServiceImpl implements RoadCacheService { for (WcsSrgvMap wcsSrgvMap : wcsSrgvMaps) { maps.put(wcsSrgvMap.getSiteId(), wcsSrgvMap); } - param.setAxy("7,7"); + param = new WcsSrgvMap(); + param.setRemark("tsj"); List tsjMap = wcsSrgvMapMapper.selectWcsSrgvMapList(param); for (WcsSrgvMap wcsSrgvMap : tsjMap) { maps.put("tsj",wcsSrgvMap); 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 193878d..5fe2379 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -126,11 +126,11 @@ public class ScheduleThread { Thread plcSrgvReadThread2 = new Thread((plcSrgvRead2)); plcSrgvReadCustomThread2=new CustomThread(plcSrgvReadThread2,plcSrgvRead2); break; - case 3: + /*case 3: PlcSrgvRead plcSrgvRead3=new PlcSrgvRead(srgv,new PlcConnectInfo(srgv.getIp(),srgv.getPort())); Thread plcSrgvReadThread3 = new Thread((plcSrgvRead3)); plcSrgvReadCustomThread3=new CustomThread(plcSrgvReadThread3,plcSrgvRead3); - break; + break;*/ } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/srgv/PlcSrgvRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/srgv/PlcSrgvRead.java index a904b4c..dc85adc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/srgv/PlcSrgvRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/srgv/PlcSrgvRead.java @@ -68,6 +68,7 @@ public class PlcSrgvRead implements Runnable { } else { reConnect(); }*/ + //todo 测试使用 IDeviceSrgvService deviceSrgvService = SpringUtils.getBean(IDeviceSrgvService.class); List srgvs=deviceSrgvService.selectDeviceSrgvList(new DeviceSrgv()); ConcurrentHashMap srgvList = new ConcurrentHashMap<>(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/monit/MonitoringThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/monit/MonitoringThread.java index 8320ca2..9850b98 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/monit/MonitoringThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/monit/MonitoringThread.java @@ -2,9 +2,11 @@ package com.ruoyi.schedule.scheduleTask.monit; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.device.ddj.service.IMsgDdjService; +import com.ruoyi.device.srgv.service.IDeviceSrgvService; import com.ruoyi.device.ssj.domain.DeviceSsj; import com.ruoyi.device.ssj.service.IDeviceSsjService; import com.ruoyi.schedule.plcRead.ddj.PlcDdjRead; +import com.ruoyi.schedule.plcRead.srgv.PlcSrgvRead; import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead; import lombok.extern.slf4j.Slf4j; @@ -18,11 +20,13 @@ public class MonitoringThread implements Runnable { private IDeviceSsjService deviceSsjService; private IMsgDdjService msgDdjService; + private IDeviceSrgvService deviceSrgvService; public void init() { deviceSsjService = SpringUtils.getBean(IDeviceSsjService.class); msgDdjService = SpringUtils.getBean(IMsgDdjService.class); + deviceSrgvService = SpringUtils.getBean(IDeviceSrgvService.class); } @Override @@ -34,9 +38,12 @@ public class MonitoringThread implements Runnable { deviceSsj.setTraySize(deviceSsj.getModel()); deviceSsjService.updateDeviceSsj(deviceSsj); } - for (String ddjCode : PlcDdjRead.deviceDdjMap.keySet()) { - msgDdjService.updateMsgDdj(PlcDdjRead.deviceDdjMap.get(ddjCode)); + + for (String sRgv : PlcSrgvRead.deviceSrgvMap.keySet()) { + deviceSrgvService.updateDeviceSrgv(PlcSrgvRead.deviceSrgvMap.get(sRgv)); } + + try { Thread.sleep(1500); } catch (InterruptedException e) { diff --git a/ruoyi-admin/src/main/resources/mapper/bas/BasCargoSpaceMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/BasCargoSpaceMapper.xml index e7f0503..614b088 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/BasCargoSpaceMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/BasCargoSpaceMapper.xml @@ -54,6 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and this_cargo_area = #{thisCargoArea} and wms_cargo_space_id = #{wmsCargoSpaceId} + order by the_platoon,the_column,the_floor