From d5ba1a5e299b74787a49e2c60eca1b7eb90cd823 Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Fri, 21 Nov 2025 09:00:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E8=BD=A6=E8=AE=BE=E5=A4=87=E8=A1=A8?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/TaskStatusCode.java | 9 +- .../srgv/controller/DeviceSrgvController.java | 104 ++++++++ .../ruoyi/device/srgv/domain/DeviceSrgv.java | 178 ++++++++++--- .../device/srgv/mapper/DeviceSrgvMapper.java | 61 +++++ .../srgv/service/IDeviceSrgvService.java | 61 +++++ .../service/impl/DeviceSrgvServiceImpl.java | 93 +++++++ .../schedule/plcRead/srgv/PlcSrgvRead.java | 39 ++- .../schedule/plcRead/tsj/PlcTsjRead.java | 10 - .../scheduleTask/srgv/BaseSRgvThread.java | 105 ++++++++ .../srgv/SRgvThreadInterface.java | 4 + .../scheduleTask/srgv/impl/SRgv1Thread.java | 7 + .../scheduleTask/srgv/impl/SRgv2Thread.java | 7 + .../scheduleTask/srgv/impl/SRgv3Thread.java | 7 + .../mapper/device/DeviceSrgvMapper.xml | 233 ++++++++++++++++++ 14 files changed, 849 insertions(+), 69 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/device/srgv/controller/DeviceSrgvController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/device/srgv/mapper/DeviceSrgvMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/device/srgv/service/IDeviceSrgvService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/device/srgv/service/impl/DeviceSrgvServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/SRgvThreadInterface.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv1Thread.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv2Thread.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv3Thread.java create mode 100644 ruoyi-admin/src/main/resources/mapper/device/DeviceSrgvMapper.xml diff --git a/ruoyi-admin/src/main/java/com/ruoyi/common/TaskStatusCode.java b/ruoyi-admin/src/main/java/com/ruoyi/common/TaskStatusCode.java index c3c1419..af7c4a3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/common/TaskStatusCode.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/common/TaskStatusCode.java @@ -44,25 +44,24 @@ public class TaskStatusCode { public static final String TASK_EP_TJS_MC_LOAD = "10"; public static final String TASK_EP_SRGV_MC_TSJ_CK = "11"; public static final String TASK_EP_SRGV_FH = "12"; - public static final String TASK_EP_SSJ = "13"; public static final String TASK_EP_CK = "14"; /** * 任务执行阶段 入口输送机 */ - //public static final String TASK_EP_SSJ = "2"; + public static final String TASK_EP_SSJ = "2"; /** * 任务执行阶段 巷道口 */ - //public static final String TASK_EP_ROADWAY_SSJ = "3"; + public static final String TASK_EP_ROADWAY_SSJ = "3"; /** * 任务执行阶段 堆垛机 */ - //public static final String TASK_EP_DDJ = "4"; + public static final String TASK_EP_DDJ = "4"; /** * 任务执行阶段 回传wms完成 */ - //public static final String TASK_EP_WMS_FINISH = "5"; + public static final String TASK_EP_WMS_FINISH = "5"; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/controller/DeviceSrgvController.java b/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/controller/DeviceSrgvController.java new file mode 100644 index 0000000..c62de89 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/controller/DeviceSrgvController.java @@ -0,0 +1,104 @@ +package com.ruoyi.device.srgv.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.device.srgv.domain.DeviceSrgv; +import com.ruoyi.device.srgv.service.IDeviceSrgvService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 四向小车设备表Controller + * + * @author ruoyi + * @date 2025-11-21 + */ +@RestController +@RequestMapping("/device/srgv") +public class DeviceSrgvController extends BaseController +{ + @Autowired + private IDeviceSrgvService deviceSrgvService; + + /** + * 查询四向小车设备表列表 + */ + @PreAuthorize("@ss.hasPermi('device:srgv:list')") + @GetMapping("/list") + public TableDataInfo list(DeviceSrgv deviceSrgv) + { + startPage(); + List list = deviceSrgvService.selectDeviceSrgvList(deviceSrgv); + return getDataTable(list); + } + + /** + * 导出四向小车设备表列表 + */ + @PreAuthorize("@ss.hasPermi('device:srgv:export')") + @Log(title = "四向小车设备表", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, DeviceSrgv deviceSrgv) + { + List list = deviceSrgvService.selectDeviceSrgvList(deviceSrgv); + ExcelUtil util = new ExcelUtil(DeviceSrgv.class); + util.exportExcel(response, list, "四向小车设备表数据"); + } + + /** + * 获取四向小车设备表详细信息 + */ + @PreAuthorize("@ss.hasPermi('device:srgv:query')") + @GetMapping(value = "/{guid}") + public AjaxResult getInfo(@PathVariable("guid") String guid) + { + return success(deviceSrgvService.selectDeviceSrgvByGuid(guid)); + } + + /** + * 新增四向小车设备表 + */ + @PreAuthorize("@ss.hasPermi('device:srgv:add')") + @Log(title = "四向小车设备表", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody DeviceSrgv deviceSrgv) + { + return toAjax(deviceSrgvService.insertDeviceSrgv(deviceSrgv)); + } + + /** + * 修改四向小车设备表 + */ + @PreAuthorize("@ss.hasPermi('device:srgv:edit')") + @Log(title = "四向小车设备表", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody DeviceSrgv deviceSrgv) + { + return toAjax(deviceSrgvService.updateDeviceSrgv(deviceSrgv)); + } + + /** + * 删除四向小车设备表 + */ + @PreAuthorize("@ss.hasPermi('device:srgv:remove')") + @Log(title = "四向小车设备表", businessType = BusinessType.DELETE) + @DeleteMapping("/{guids}") + public AjaxResult remove(@PathVariable String[] guids) + { + return toAjax(deviceSrgvService.deleteDeviceSrgvByGuids(guids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/domain/DeviceSrgv.java b/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/domain/DeviceSrgv.java index fc28d6a..f66cf51 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/domain/DeviceSrgv.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/domain/DeviceSrgv.java @@ -1,58 +1,174 @@ package com.ruoyi.device.srgv.domain; -import com.ruoyi.common.annotation.Excel; -import com.ruoyi.common.core.domain.BaseEntity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.ToString; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; /** - * 输送机对象 device_ssj + * 四向小车设备表对象 device_srgv * * @author ruoyi - * @date 2025-07-04 + * @date 2025-11-21 */ @Data @AllArgsConstructor @NoArgsConstructor +@ToString public class DeviceSrgv extends BaseEntity { private static final long serialVersionUID = 1L; - /* - * 实时数据 - * */ - private int taskNo;//任务号 - private String srcSite;//原地址 - private String tarSite;//目标地址 - private String currSite;//当期地址 - private int taskType;//任务类型 + /** 唯一id */ + private String guid; - private int battery;//电量 - private int workMode;//工作模式 - private int alarm;//报警 - private int status;//车状态 - private int finish;//接收完成标志 1接收完成 - private int chargeFlag;//充电标志 todo 充电状态值确认 - private int workPhase;//工作阶段 - private int errorMsg;//异常信息 - private int deviceRequest;//输送机对接请求 - private int changeLayer;//换层标志 - private int cargoFlag;//载货 0未知 1空载 2载货 - private int manualCharge;//手动充电 0未知 1充电 + /** 设备id */ + @Excel(name = "设备id") + private Integer deviceId; - private int undefined1;// - private int undefined2;// + /** 设备名称 */ + @Excel(name = "设备名称") + private String deviceName; - private String path;//路径 + /** ip */ + @Excel(name = "ip") + private String ip; - //其他属性 - private int currFloor;//当前层 + /** 端口 */ + @Excel(name = "端口") + private Integer port; - private String spaceArea;//当前库存 01小库 02大库 + /** 类型 */ + @Excel(name = "类型") + private String type; - private int allowSend;//1允许下发 + /** 设置层 */ + @Excel(name = "设置层") + private Integer setFloor; + /** 上次充电时间 */ + @Excel(name = "上次充电时间") + private String powerTime; + + /** 最后任务时间 */ + @Excel(name = "最后任务时间") + private String lastTime; + + /** 0 初始化 1正常 */ + @Excel(name = "0 初始化 1正常") + private String agvStatus; + + /** 任务号 */ + @Excel(name = "任务号") + private Integer taskNo; + + /** 原位置 */ + @Excel(name = "原位置") + private String srcSite; + + /** 目标位置 */ + @Excel(name = "目标位置") + private String tarSite; + + /** 当前位置 */ + @Excel(name = "当前位置") + private String currSite; + + /** 任务类型 */ + @Excel(name = "任务类型") + private Integer taskType; + + /** 电量 */ + @Excel(name = "电量") + private Integer battery; + + /** 工作模式 */ + @Excel(name = "工作模式") + private Integer workMode; + + /** 报警 */ + @Excel(name = "报警") + private Integer alarm; + + /** 车状态 */ + @Excel(name = "车状态") + private Integer status; + + /** 完成下发标志 */ + @Excel(name = "完成下发标志") + private Integer finish; + + /** 充电标志 */ + @Excel(name = "充电标志") + private Integer chargeFlag; + + /** 执行阶段 */ + @Excel(name = "执行阶段") + private Integer workPhase; + + /** 异常信息 */ + @Excel(name = "异常信息") + private Integer errMsg; + + /** 输送机请求 */ + @Excel(name = "输送机请求") + private Integer ssjRequest; + + /** 换层标志 */ + @Excel(name = "换层标志") + private Integer changeLayer; + + /** 载货标志 */ + @Excel(name = "载货标志") + private Integer cargoFlag; + + /** 手动充电 */ + @Excel(name = "手动充电") + private Integer manualCharge; + + /** 路径 */ + @Excel(name = "路径") + private String path; + + /** 允许下发 */ + @Excel(name = "允许下发") + private Integer allowSend; + + /** 当前层数 */ + @Excel(name = "当前层数") + private Integer currFloor; + + /** 离线站点 */ + @Excel(name = "离线站点") + private String offlineSite; + + /** 车辆锁 */ + @Excel(name = "车辆锁") + private Integer locked; + + /** */ + @Excel(name = "") + private String spare1; + + /** */ + @Excel(name = "") + private String spare2; + + /** */ + @Excel(name = "") + private String spare3; + + /** */ + @Excel(name = "") + private String spare4; + + /** */ + @Excel(name = "") + private String spare5; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/mapper/DeviceSrgvMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/mapper/DeviceSrgvMapper.java new file mode 100644 index 0000000..6227a57 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/mapper/DeviceSrgvMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.device.srgv.mapper; + +import java.util.List; +import com.ruoyi.device.srgv.domain.DeviceSrgv; + +/** + * 四向小车设备表Mapper接口 + * + * @author ruoyi + * @date 2025-11-21 + */ +public interface DeviceSrgvMapper +{ + /** + * 查询四向小车设备表 + * + * @param guid 四向小车设备表主键 + * @return 四向小车设备表 + */ + public DeviceSrgv selectDeviceSrgvByGuid(String guid); + + /** + * 查询四向小车设备表列表 + * + * @param deviceSrgv 四向小车设备表 + * @return 四向小车设备表集合 + */ + public List selectDeviceSrgvList(DeviceSrgv deviceSrgv); + + /** + * 新增四向小车设备表 + * + * @param deviceSrgv 四向小车设备表 + * @return 结果 + */ + public int insertDeviceSrgv(DeviceSrgv deviceSrgv); + + /** + * 修改四向小车设备表 + * + * @param deviceSrgv 四向小车设备表 + * @return 结果 + */ + public int updateDeviceSrgv(DeviceSrgv deviceSrgv); + + /** + * 删除四向小车设备表 + * + * @param guid 四向小车设备表主键 + * @return 结果 + */ + public int deleteDeviceSrgvByGuid(String guid); + + /** + * 批量删除四向小车设备表 + * + * @param guids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteDeviceSrgvByGuids(String[] guids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/service/IDeviceSrgvService.java b/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/service/IDeviceSrgvService.java new file mode 100644 index 0000000..a04af6d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/service/IDeviceSrgvService.java @@ -0,0 +1,61 @@ +package com.ruoyi.device.srgv.service; + +import java.util.List; +import com.ruoyi.device.srgv.domain.DeviceSrgv; + +/** + * 四向小车设备表Service接口 + * + * @author ruoyi + * @date 2025-11-21 + */ +public interface IDeviceSrgvService +{ + /** + * 查询四向小车设备表 + * + * @param guid 四向小车设备表主键 + * @return 四向小车设备表 + */ + public DeviceSrgv selectDeviceSrgvByGuid(String guid); + + /** + * 查询四向小车设备表列表 + * + * @param deviceSrgv 四向小车设备表 + * @return 四向小车设备表集合 + */ + public List selectDeviceSrgvList(DeviceSrgv deviceSrgv); + + /** + * 新增四向小车设备表 + * + * @param deviceSrgv 四向小车设备表 + * @return 结果 + */ + public int insertDeviceSrgv(DeviceSrgv deviceSrgv); + + /** + * 修改四向小车设备表 + * + * @param deviceSrgv 四向小车设备表 + * @return 结果 + */ + public int updateDeviceSrgv(DeviceSrgv deviceSrgv); + + /** + * 批量删除四向小车设备表 + * + * @param guids 需要删除的四向小车设备表主键集合 + * @return 结果 + */ + public int deleteDeviceSrgvByGuids(String[] guids); + + /** + * 删除四向小车设备表信息 + * + * @param guid 四向小车设备表主键 + * @return 结果 + */ + public int deleteDeviceSrgvByGuid(String guid); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/service/impl/DeviceSrgvServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/service/impl/DeviceSrgvServiceImpl.java new file mode 100644 index 0000000..a26cdb0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/srgv/service/impl/DeviceSrgvServiceImpl.java @@ -0,0 +1,93 @@ +package com.ruoyi.device.srgv.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.device.srgv.mapper.DeviceSrgvMapper; +import com.ruoyi.device.srgv.domain.DeviceSrgv; +import com.ruoyi.device.srgv.service.IDeviceSrgvService; + +/** + * 四向小车设备表Service业务层处理 + * + * @author ruoyi + * @date 2025-11-21 + */ +@Service +public class DeviceSrgvServiceImpl implements IDeviceSrgvService +{ + @Autowired + private DeviceSrgvMapper deviceSrgvMapper; + + /** + * 查询四向小车设备表 + * + * @param guid 四向小车设备表主键 + * @return 四向小车设备表 + */ + @Override + public DeviceSrgv selectDeviceSrgvByGuid(String guid) + { + return deviceSrgvMapper.selectDeviceSrgvByGuid(guid); + } + + /** + * 查询四向小车设备表列表 + * + * @param deviceSrgv 四向小车设备表 + * @return 四向小车设备表 + */ + @Override + public List selectDeviceSrgvList(DeviceSrgv deviceSrgv) + { + return deviceSrgvMapper.selectDeviceSrgvList(deviceSrgv); + } + + /** + * 新增四向小车设备表 + * + * @param deviceSrgv 四向小车设备表 + * @return 结果 + */ + @Override + public int insertDeviceSrgv(DeviceSrgv deviceSrgv) + { + return deviceSrgvMapper.insertDeviceSrgv(deviceSrgv); + } + + /** + * 修改四向小车设备表 + * + * @param deviceSrgv 四向小车设备表 + * @return 结果 + */ + @Override + public int updateDeviceSrgv(DeviceSrgv deviceSrgv) + { + return deviceSrgvMapper.updateDeviceSrgv(deviceSrgv); + } + + /** + * 批量删除四向小车设备表 + * + * @param guids 需要删除的四向小车设备表主键 + * @return 结果 + */ + @Override + public int deleteDeviceSrgvByGuids(String[] guids) + { + return deviceSrgvMapper.deleteDeviceSrgvByGuids(guids); + } + + /** + * 删除四向小车设备表信息 + * + * @param guid 四向小车设备表主键 + * @return 结果 + */ + @Override + public int deleteDeviceSrgvByGuid(String guid) + { + return deviceSrgvMapper.deleteDeviceSrgvByGuid(guid); + } +} 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 67d86c6..ccca8f9 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 @@ -6,12 +6,12 @@ import HslCommunication.Core.Transfer.IByteTransform; import HslCommunication.Core.Types.OperateResult; import HslCommunication.Core.Types.OperateResultExOne; import HslCommunication.ModBus.ModbusTcpNet; +import cn.hutool.core.convert.Convert; import com.ruoyi.common.domain.HslRead; import com.ruoyi.common.domain.PlcConnectInfo; import com.ruoyi.device.srgv.domain.DeviceSrgv; import lombok.extern.slf4j.Slf4j; -import java.util.List; import java.util.concurrent.ConcurrentHashMap; @Slf4j public class PlcSrgvRead implements Runnable{ @@ -88,21 +88,21 @@ public class PlcSrgvRead implements Runnable{ //单字 private void setValueByByte1(byte[] content , DeviceSrgv agvData) { - agvData.setTaskType(byteTransform.TransInt16(content,0)); - agvData.setBattery(byteTransform.TransInt16(content,2)); - agvData.setWorkMode(byteTransform.TransInt16(content,4)); - agvData.setAlarm(byteTransform.TransInt16(content,6)); - agvData.setStatus(byteTransform.TransInt16(content,8)); - agvData.setFinish(byteTransform.TransInt16(content,10)); - agvData.setChargeFlag(byteTransform.TransInt16(content,12)); - agvData.setWorkPhase(byteTransform.TransInt16(content,14)); - agvData.setErrorMsg(byteTransform.TransInt16(content,16)); - agvData.setDeviceRequest(byteTransform.TransInt16(content,18)); - agvData.setChangeLayer(byteTransform.TransInt16(content,20)); - agvData.setCargoFlag(byteTransform.TransInt16(content,22)); - agvData.setManualCharge(byteTransform.TransInt16(content,24)); - agvData.setUndefined1(byteTransform.TransInt16(content,26)); - agvData.setAllowSend(byteTransform.TransInt16(content,16)); + agvData.setTaskType(Convert.toInt(byteTransform.TransInt16(content,0))); + agvData.setBattery(Convert.toInt(byteTransform.TransInt16(content,2))); + agvData.setWorkMode(Convert.toInt(byteTransform.TransInt16(content,4))); + agvData.setAlarm(Convert.toInt(byteTransform.TransInt16(content,6))); + agvData.setStatus(Convert.toInt(byteTransform.TransInt16(content,8))); + agvData.setFinish(Convert.toInt(byteTransform.TransInt16(content,10))); + agvData.setChargeFlag(Convert.toInt(byteTransform.TransInt16(content,12))); + agvData.setWorkPhase(Convert.toInt(byteTransform.TransInt16(content,14))); + agvData.setErrMsg(Convert.toInt(byteTransform.TransInt16(content,16))); + agvData.setSsjRequest(Convert.toInt(byteTransform.TransInt16(content,18))); + agvData.setChangeLayer(Convert.toInt(byteTransform.TransInt16(content,20))); + agvData.setCargoFlag(Convert.toInt(byteTransform.TransInt16(content,22))); + agvData.setManualCharge(Convert.toInt(byteTransform.TransInt16(content,24))); + agvData.setSpare1(Convert.toStr(byteTransform.TransInt16(content,0))); + agvData.setAllowSend(Convert.toInt(byteTransform.TransInt16(content,16))); } @@ -118,13 +118,6 @@ public class PlcSrgvRead implements Runnable{ //设置库区 String currSite = agvData.getCurrSite(); String l = currSite.substring(2, 4); - int li = Integer.parseInt(l);//列 - if(li<23){ - agvData.setSpaceArea("01"); - }else { - agvData.setSpaceArea("02"); - } - //截取cur的后俩位,获取当前楼层 int floor = FloorUtils.extractFloor(Integer.parseInt(agvData.getCurrSite())); this.layer = floor; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/tsj/PlcTsjRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/tsj/PlcTsjRead.java index b591016..14cde2e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/tsj/PlcTsjRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/tsj/PlcTsjRead.java @@ -132,15 +132,5 @@ public class PlcTsjRead implements Runnable { setIsConnect(false); } - public static int writeToSsj(String address, String taskNo, int qx, int completed) { - int jym = Tools.getJYM(Integer.parseInt(taskNo), qx, completed); - SendData taskNoSendData = new SendData(Tools.INT, taskNo); - SendData qxSendData = new SendData(Tools.INT, qx); - SendData completedSendData = new SendData(Tools.INT, completed); - SendData jymSendData = new SendData(Tools.INT, jym); - byte[] bytes = Tools.sendData(taskNoSendData, qxSendData, completedSendData, jymSendData); - return PlcTsjRead.WriteToTSJ(address, bytes); - } - } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java new file mode 100644 index 0000000..6cef9f9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java @@ -0,0 +1,105 @@ +package com.ruoyi.schedule.scheduleTask.srgv; + +import cn.hutool.core.util.ObjUtil; +import com.ruoyi.device.srgv.domain.DeviceSrgv; +import lombok.extern.slf4j.Slf4j; + +import java.util.HashMap; +import java.util.List; + +@Slf4j +public class BaseSRgvThread implements Runnable, SRgvThreadInterface { + + public boolean isRun = true; + + public HashMap> sRgvCodeList; + + + + + public void init() { + } + + @Override + public void run() { + + init(); + while (isRun) { + for (String type : sRgvCodeList.keySet()) { + + for (DeviceSrgv deviceSrgv : sRgvCodeList.get(type)) { + try { + if (ObjUtil.isNotNull(deviceSrgv)) { + sRgvTask(deviceSrgv); + } else { + log.error("堆垛机设备为空"); + } + } catch (RuntimeException e) { + log.error(e.getMessage(), e); + } + + } + } + try { + Thread.sleep(1500); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + } + + /** + * 四向小车任务处理 + */ + private void sRgvTask(DeviceSrgv deviceSrgv) { + //处理队列下发 + resQueue(deviceSrgv); + + //小车完成队列 + completeCarTask(deviceSrgv); + + //小车发送任务 + sendTask(deviceSrgv); + + //小车充电任务 + inCharging(deviceSrgv); + + //小车离开充电桩 + outCharging(deviceSrgv); + } + /** + * 小车离开充电桩 + */ + private void outCharging(DeviceSrgv deviceSrgv) { + + } + /** + * 小车充电任务 + */ + private void inCharging(DeviceSrgv deviceSrgv) { + + } + /** + * 小车发送任务 + */ + private void sendTask(DeviceSrgv deviceSrgv) { + + } + + /** + * 小车完成队列 + */ + private void completeCarTask(DeviceSrgv deviceSrgv) { + + } + + /** + * 队列处理 + * @param deviceSrgv + */ + private void resQueue(DeviceSrgv deviceSrgv) { + + } + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/SRgvThreadInterface.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/SRgvThreadInterface.java new file mode 100644 index 0000000..41578cd --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/SRgvThreadInterface.java @@ -0,0 +1,4 @@ +package com.ruoyi.schedule.scheduleTask.srgv; + +public interface SRgvThreadInterface { +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv1Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv1Thread.java new file mode 100644 index 0000000..0ec0383 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv1Thread.java @@ -0,0 +1,7 @@ +package com.ruoyi.schedule.scheduleTask.srgv.impl; + +import com.ruoyi.schedule.scheduleTask.srgv.BaseSRgvThread; + +public class SRgv1Thread extends BaseSRgvThread { + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv2Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv2Thread.java new file mode 100644 index 0000000..95db1ae --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv2Thread.java @@ -0,0 +1,7 @@ +package com.ruoyi.schedule.scheduleTask.srgv.impl; + +import com.ruoyi.schedule.scheduleTask.srgv.BaseSRgvThread; + +public class SRgv2Thread extends BaseSRgvThread { + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv3Thread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv3Thread.java new file mode 100644 index 0000000..c1d8203 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/impl/SRgv3Thread.java @@ -0,0 +1,7 @@ +package com.ruoyi.schedule.scheduleTask.srgv.impl; + +import com.ruoyi.schedule.scheduleTask.srgv.BaseSRgvThread; + +public class SRgv3Thread extends BaseSRgvThread { + +} diff --git a/ruoyi-admin/src/main/resources/mapper/device/DeviceSrgvMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/DeviceSrgvMapper.xml new file mode 100644 index 0000000..6c32118 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/device/DeviceSrgvMapper.xml @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select guid, device_id, device_name, ip, port, type, set_floor, power_time, last_time, agv_status, task_no, src_site, tar_site, curr_site, task_type, battery, work_mode, alarm, status, finish, charge_flag, work_phase, err_msg, ssj_request, change_layer, cargo_flag, manual_charge, path, allow_send, curr_floor, offline_site, locked, spare1, spare2, spare3, spare4, spare5 from device_srgv + + + + + + + + insert into device_srgv + + guid, + device_id, + device_name, + ip, + port, + type, + set_floor, + power_time, + last_time, + agv_status, + task_no, + src_site, + tar_site, + curr_site, + task_type, + battery, + work_mode, + alarm, + status, + finish, + charge_flag, + work_phase, + err_msg, + ssj_request, + change_layer, + cargo_flag, + manual_charge, + path, + allow_send, + curr_floor, + offline_site, + locked, + spare1, + spare2, + spare3, + spare4, + spare5, + + + #{guid}, + #{deviceId}, + #{deviceName}, + #{ip}, + #{port}, + #{type}, + #{setFloor}, + #{powerTime}, + #{lastTime}, + #{agvStatus}, + #{taskNo}, + #{srcSite}, + #{tarSite}, + #{currSite}, + #{taskType}, + #{battery}, + #{workMode}, + #{alarm}, + #{status}, + #{finish}, + #{chargeFlag}, + #{workPhase}, + #{errMsg}, + #{ssjRequest}, + #{changeLayer}, + #{cargoFlag}, + #{manualCharge}, + #{path}, + #{allowSend}, + #{currFloor}, + #{offlineSite}, + #{locked}, + #{spare1}, + #{spare2}, + #{spare3}, + #{spare4}, + #{spare5}, + + + + + update device_srgv + + device_id = #{deviceId}, + device_name = #{deviceName}, + ip = #{ip}, + port = #{port}, + type = #{type}, + set_floor = #{setFloor}, + power_time = #{powerTime}, + last_time = #{lastTime}, + agv_status = #{agvStatus}, + task_no = #{taskNo}, + src_site = #{srcSite}, + tar_site = #{tarSite}, + curr_site = #{currSite}, + task_type = #{taskType}, + battery = #{battery}, + work_mode = #{workMode}, + alarm = #{alarm}, + status = #{status}, + finish = #{finish}, + charge_flag = #{chargeFlag}, + work_phase = #{workPhase}, + err_msg = #{errMsg}, + ssj_request = #{ssjRequest}, + change_layer = #{changeLayer}, + cargo_flag = #{cargoFlag}, + manual_charge = #{manualCharge}, + path = #{path}, + allow_send = #{allowSend}, + curr_floor = #{currFloor}, + offline_site = #{offlineSite}, + locked = #{locked}, + spare1 = #{spare1}, + spare2 = #{spare2}, + spare3 = #{spare3}, + spare4 = #{spare4}, + spare5 = #{spare5}, + + where guid = #{guid} + + + + delete from device_srgv where guid = #{guid} + + + + delete from device_srgv where guid in + + #{guid} + + + \ No newline at end of file