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 328e888..c3c1419 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/common/TaskStatusCode.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/common/TaskStatusCode.java @@ -32,23 +32,37 @@ public class TaskStatusCode { /** * 任务执行阶段 AGV */ - public static final String TASK_EP_AGV = "1"; + public static final String TASK_EP_SRGV_KC_TSJ_RK = "1"; + public static final String TASK_EP_TJS_KC_UNLOAD = "2"; + public static final String TASK_EP_SRGV_KC_TSJ = "3"; + public static final String TASK_EP_TJS_KC_LOAD = "4"; + public static final String TASK_EP_SRGV_KC_TSJ_CK = "5"; + public static final String TASK_EP_SRGV_QH = "6"; + public static final String TASK_EP_SRGV_MC_TSJ_RK = "7"; + public static final String TASK_EP_TJS_MC_UNLOAD = "8"; + public static final String TASK_EP_SRGV_MC_TSJ = "9"; + 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/tsj/controller/DeviceTsjController.java b/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/controller/DeviceTsjController.java new file mode 100644 index 0000000..06967ce --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/controller/DeviceTsjController.java @@ -0,0 +1,104 @@ +package com.ruoyi.device.tsj.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.tsj.domain.DeviceTsj; +import com.ruoyi.device.tsj.service.IDeviceTsjService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 提升机设备Controller + * + * @author ruoyi + * @date 2025-11-19 + */ +@RestController +@RequestMapping("/device/tsj") +public class DeviceTsjController extends BaseController +{ + @Autowired + private IDeviceTsjService deviceTsjService; + + /** + * 查询提升机设备列表 + */ + @PreAuthorize("@ss.hasPermi('device:tsj:list')") + @GetMapping("/list") + public TableDataInfo list(DeviceTsj deviceTsj) + { + startPage(); + List list = deviceTsjService.selectDeviceTsjList(deviceTsj); + return getDataTable(list); + } + + /** + * 导出提升机设备列表 + */ + @PreAuthorize("@ss.hasPermi('device:tsj:export')") + @Log(title = "提升机设备", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, DeviceTsj deviceTsj) + { + List list = deviceTsjService.selectDeviceTsjList(deviceTsj); + ExcelUtil util = new ExcelUtil(DeviceTsj.class); + util.exportExcel(response, list, "提升机设备数据"); + } + + /** + * 获取提升机设备详细信息 + */ + @PreAuthorize("@ss.hasPermi('device:tsj:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(deviceTsjService.selectDeviceTsjById(id)); + } + + /** + * 新增提升机设备 + */ + @PreAuthorize("@ss.hasPermi('device:tsj:add')") + @Log(title = "提升机设备", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody DeviceTsj deviceTsj) + { + return toAjax(deviceTsjService.insertDeviceTsj(deviceTsj)); + } + + /** + * 修改提升机设备 + */ + @PreAuthorize("@ss.hasPermi('device:tsj:edit')") + @Log(title = "提升机设备", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody DeviceTsj deviceTsj) + { + return toAjax(deviceTsjService.updateDeviceTsj(deviceTsj)); + } + + /** + * 删除提升机设备 + */ + @PreAuthorize("@ss.hasPermi('device:tsj:remove')") + @Log(title = "提升机设备", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(deviceTsjService.deleteDeviceTsjByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/domain/DeviceTsj.java b/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/domain/DeviceTsj.java index b1f87e3..3271713 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/domain/DeviceTsj.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/domain/DeviceTsj.java @@ -1,87 +1,120 @@ package com.ruoyi.device.tsj.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; + +import javax.validation.constraints.NotNull; /** - * 输送机对象 device_ssj + * 提升机设备对象 device_tsj * * @author ruoyi - * @date 2025-07-04 + * @date 2025-11-19 */ @Data @AllArgsConstructor @NoArgsConstructor +@ToString public class DeviceTsj extends BaseEntity { private static final long serialVersionUID = 1L; - /** $column.columnComment */ + /** id */ private Long id; - /** 设备唯一编码 */ - @Excel(name = "设备唯一编码") - private String deviceCode ; - /** 设备名称 */ @Excel(name = "设备名称") - private String name ; + private String name; - /** 类型 */ - @Excel(name = "类型") - private String type; + /** ip */ + @Excel(name = "ip") + private String ip; - /** 设备IP */ - @Excel(name = "设备IP") - private String ipAddress; + /** 端口 */ + @Excel(name = "端口") + private String port; - /** PLC读取地址 */ - @Excel(name = "PLC读取地址") + /** plc读取地址 */ + @Excel(name = "plc读取地址") private String plcDbReadAddress; - /** 0-F 1-T */ - @Excel(name = "0-F 1-T") - private String isActive; - - /** PLC写入地址 */ - @Excel(name = "PLC写入地址") + /** plc写入地址 */ + @Excel(name = "plc写入地址") private String plcDbWriteAddress; - /** 入库请求 */ - @Excel(name = "入库请求") - private int rkqq; - - /** 空闲 */ - @Excel(name = "空闲") - private int kx; - - /** 到位 */ - @Excel(name = "到位") - private int dw; - - /** 条码 */ - @Excel(name = "条码") - private String trayCode; - /** 任务号 */ @Excel(name = "任务号") - private int taskNo; + private Long rwh; - @Excel(name = "异常") - private int exception; + /** 执行阶段 */ + @Excel(name = "执行阶段") + private Integer jdbz; - @Excel(name = "托盘尺寸") - private int traySize; + /** 设备状态 */ + @Excel(name = "设备状态") + private Integer sbzt; - @Excel(name="允许放货") - private int allowPut; + /** 触发方式 */ + @Excel(name = "触发方式") + private Integer czfs; - @Excel(name="输送线模式 1-入库 2-出库") - private int model; + /** 允许下发 */ + @Excel(name = "允许下发") + private Integer yxxf; + /** 原排 */ + @Excel(name = "原排") + private Integer yph; + + /** 原列 */ + @Excel(name = "原列") + private Integer ylh; + + /** 原层 */ + @Excel(name = "原层") + private Integer ych; + + /** 目标排 */ + @Excel(name = "目标排") + private Integer mbph; + + /** 目标列 */ + @Excel(name = "目标列") + private Integer mblh; + + /** 目标层 */ + @Excel(name = "目标层") + private Integer mbch; + + /** 心跳信号 */ + @Excel(name = "心跳信号") + private Integer xtxh; + + /** 当前层数 */ + @Excel(name = "当前层数") + private Integer dqcs; + + /** 载货状态 */ + @Excel(name = "载货状态") + private Integer hczt; + + /** 备用1 */ + @Excel(name = "备用1") + private Integer spare1; + + /** 备用2 */ + @Excel(name = "备用2") + private Integer spare2; + + /** 备用3 */ + @Excel(name = "备用3") + private Integer spare3; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/mapper/DeviceTsjMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/mapper/DeviceTsjMapper.java new file mode 100644 index 0000000..e44c91c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/mapper/DeviceTsjMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.device.tsj.mapper; + +import java.util.List; +import com.ruoyi.device.tsj.domain.DeviceTsj; + +/** + * 提升机设备Mapper接口 + * + * @author ruoyi + * @date 2025-11-19 + */ +public interface DeviceTsjMapper +{ + /** + * 查询提升机设备 + * + * @param id 提升机设备主键 + * @return 提升机设备 + */ + public DeviceTsj selectDeviceTsjById(Long id); + + /** + * 查询提升机设备列表 + * + * @param deviceTsj 提升机设备 + * @return 提升机设备集合 + */ + public List selectDeviceTsjList(DeviceTsj deviceTsj); + + /** + * 新增提升机设备 + * + * @param deviceTsj 提升机设备 + * @return 结果 + */ + public int insertDeviceTsj(DeviceTsj deviceTsj); + + /** + * 修改提升机设备 + * + * @param deviceTsj 提升机设备 + * @return 结果 + */ + public int updateDeviceTsj(DeviceTsj deviceTsj); + + /** + * 删除提升机设备 + * + * @param id 提升机设备主键 + * @return 结果 + */ + public int deleteDeviceTsjById(Long id); + + /** + * 批量删除提升机设备 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteDeviceTsjByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/service/IDeviceTsjService.java b/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/service/IDeviceTsjService.java new file mode 100644 index 0000000..c0d166f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/service/IDeviceTsjService.java @@ -0,0 +1,61 @@ +package com.ruoyi.device.tsj.service; + +import java.util.List; +import com.ruoyi.device.tsj.domain.DeviceTsj; + +/** + * 提升机设备Service接口 + * + * @author ruoyi + * @date 2025-11-19 + */ +public interface IDeviceTsjService +{ + /** + * 查询提升机设备 + * + * @param id 提升机设备主键 + * @return 提升机设备 + */ + public DeviceTsj selectDeviceTsjById(Long id); + + /** + * 查询提升机设备列表 + * + * @param deviceTsj 提升机设备 + * @return 提升机设备集合 + */ + public List selectDeviceTsjList(DeviceTsj deviceTsj); + + /** + * 新增提升机设备 + * + * @param deviceTsj 提升机设备 + * @return 结果 + */ + public int insertDeviceTsj(DeviceTsj deviceTsj); + + /** + * 修改提升机设备 + * + * @param deviceTsj 提升机设备 + * @return 结果 + */ + public int updateDeviceTsj(DeviceTsj deviceTsj); + + /** + * 批量删除提升机设备 + * + * @param ids 需要删除的提升机设备主键集合 + * @return 结果 + */ + public int deleteDeviceTsjByIds(Long[] ids); + + /** + * 删除提升机设备信息 + * + * @param id 提升机设备主键 + * @return 结果 + */ + public int deleteDeviceTsjById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/service/impl/DeviceTsjServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/service/impl/DeviceTsjServiceImpl.java new file mode 100644 index 0000000..a4aa7cf --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/tsj/service/impl/DeviceTsjServiceImpl.java @@ -0,0 +1,93 @@ +package com.ruoyi.device.tsj.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.device.tsj.mapper.DeviceTsjMapper; +import com.ruoyi.device.tsj.domain.DeviceTsj; +import com.ruoyi.device.tsj.service.IDeviceTsjService; + +/** + * 提升机设备Service业务层处理 + * + * @author ruoyi + * @date 2025-11-19 + */ +@Service +public class DeviceTsjServiceImpl implements IDeviceTsjService +{ + @Autowired + private DeviceTsjMapper deviceTsjMapper; + + /** + * 查询提升机设备 + * + * @param id 提升机设备主键 + * @return 提升机设备 + */ + @Override + public DeviceTsj selectDeviceTsjById(Long id) + { + return deviceTsjMapper.selectDeviceTsjById(id); + } + + /** + * 查询提升机设备列表 + * + * @param deviceTsj 提升机设备 + * @return 提升机设备 + */ + @Override + public List selectDeviceTsjList(DeviceTsj deviceTsj) + { + return deviceTsjMapper.selectDeviceTsjList(deviceTsj); + } + + /** + * 新增提升机设备 + * + * @param deviceTsj 提升机设备 + * @return 结果 + */ + @Override + public int insertDeviceTsj(DeviceTsj deviceTsj) + { + return deviceTsjMapper.insertDeviceTsj(deviceTsj); + } + + /** + * 修改提升机设备 + * + * @param deviceTsj 提升机设备 + * @return 结果 + */ + @Override + public int updateDeviceTsj(DeviceTsj deviceTsj) + { + return deviceTsjMapper.updateDeviceTsj(deviceTsj); + } + + /** + * 批量删除提升机设备 + * + * @param ids 需要删除的提升机设备主键 + * @return 结果 + */ + @Override + public int deleteDeviceTsjByIds(Long[] ids) + { + return deviceTsjMapper.deleteDeviceTsjByIds(ids); + } + + /** + * 删除提升机设备信息 + * + * @param id 提升机设备主键 + * @return 结果 + */ + @Override + public int deleteDeviceTsjById(Long id) + { + return deviceTsjMapper.deleteDeviceTsjById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/controller/JobCallBackController.java b/ruoyi-admin/src/main/java/com/ruoyi/job/controller/JobCallBackController.java index 2a8e464..7759fc1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/controller/JobCallBackController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/controller/JobCallBackController.java @@ -104,7 +104,7 @@ public class JobCallBackController extends BaseController return toAjax(jobCallBackService.deleteJobCallBackByIds(ids)); } - @Scheduled(fixedDelay=1500) + //@Scheduled(fixedDelay=1500) public void jobCallBack() { jobCallBackService.jobCallBack(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/controller/TsjDeviceExecutionQueueController.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/controller/TsjDeviceExecutionQueueController.java new file mode 100644 index 0000000..043fd42 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/controller/TsjDeviceExecutionQueueController.java @@ -0,0 +1,104 @@ +package com.ruoyi.queue.tsj.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.queue.tsj.domain.TsjDeviceExecutionQueue; +import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 提升机执行队列Controller + * + * @author ruoyi + * @date 2025-11-19 + */ +@RestController +@RequestMapping("/queue/tsj") +public class TsjDeviceExecutionQueueController extends BaseController +{ + @Autowired + private ITsjDeviceExecutionQueueService tsjDeviceExecutionQueueService; + + /** + * 查询提升机执行队列列表 + */ + @PreAuthorize("@ss.hasPermi('queue:tsj:list')") + @GetMapping("/list") + public TableDataInfo list(TsjDeviceExecutionQueue tsjDeviceExecutionQueue) + { + startPage(); + List list = tsjDeviceExecutionQueueService.selectTsjDeviceExecutionQueueList(tsjDeviceExecutionQueue); + return getDataTable(list); + } + + /** + * 导出提升机执行队列列表 + */ + @PreAuthorize("@ss.hasPermi('queue:tsj:export')") + @Log(title = "提升机执行队列", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TsjDeviceExecutionQueue tsjDeviceExecutionQueue) + { + List list = tsjDeviceExecutionQueueService.selectTsjDeviceExecutionQueueList(tsjDeviceExecutionQueue); + ExcelUtil util = new ExcelUtil(TsjDeviceExecutionQueue.class); + util.exportExcel(response, list, "提升机执行队列数据"); + } + + /** + * 获取提升机执行队列详细信息 + */ + @PreAuthorize("@ss.hasPermi('queue:tsj:query')") + @GetMapping(value = "/{guid}") + public AjaxResult getInfo(@PathVariable("guid") String guid) + { + return success(tsjDeviceExecutionQueueService.selectTsjDeviceExecutionQueueByGuid(guid)); + } + + /** + * 新增提升机执行队列 + */ + @PreAuthorize("@ss.hasPermi('queue:tsj:add')") + @Log(title = "提升机执行队列", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TsjDeviceExecutionQueue tsjDeviceExecutionQueue) + { + return toAjax(tsjDeviceExecutionQueueService.insertTsjDeviceExecutionQueue(tsjDeviceExecutionQueue)); + } + + /** + * 修改提升机执行队列 + */ + @PreAuthorize("@ss.hasPermi('queue:tsj:edit')") + @Log(title = "提升机执行队列", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TsjDeviceExecutionQueue tsjDeviceExecutionQueue) + { + return toAjax(tsjDeviceExecutionQueueService.updateTsjDeviceExecutionQueue(tsjDeviceExecutionQueue)); + } + + /** + * 删除提升机执行队列 + */ + @PreAuthorize("@ss.hasPermi('queue:tsj:remove')") + @Log(title = "提升机执行队列", businessType = BusinessType.DELETE) + @DeleteMapping("/{guids}") + public AjaxResult remove(@PathVariable String[] guids) + { + return toAjax(tsjDeviceExecutionQueueService.deleteTsjDeviceExecutionQueueByGuids(guids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/controller/TsjDeviceExecutionQueueFinishController.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/controller/TsjDeviceExecutionQueueFinishController.java new file mode 100644 index 0000000..8a375e6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/controller/TsjDeviceExecutionQueueFinishController.java @@ -0,0 +1,104 @@ +package com.ruoyi.queue.tsj.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.queue.tsj.domain.TsjDeviceExecutionQueueFinish; +import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueFinishService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 提升机执行队列Controller + * + * @author ruoyi + * @date 2025-11-19 + */ +@RestController +@RequestMapping("/queue/tsjFinish") +public class TsjDeviceExecutionQueueFinishController extends BaseController +{ + @Autowired + private ITsjDeviceExecutionQueueFinishService tsjDeviceExecutionQueueFinishService; + + /** + * 查询提升机执行队列列表 + */ + @PreAuthorize("@ss.hasPermi('queue:tsjFinish:list')") + @GetMapping("/list") + public TableDataInfo list(TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish) + { + startPage(); + List list = tsjDeviceExecutionQueueFinishService.selectTsjDeviceExecutionQueueFinishList(tsjDeviceExecutionQueueFinish); + return getDataTable(list); + } + + /** + * 导出提升机执行队列列表 + */ + @PreAuthorize("@ss.hasPermi('queue:tsjFinish:export')") + @Log(title = "提升机执行队列", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish) + { + List list = tsjDeviceExecutionQueueFinishService.selectTsjDeviceExecutionQueueFinishList(tsjDeviceExecutionQueueFinish); + ExcelUtil util = new ExcelUtil(TsjDeviceExecutionQueueFinish.class); + util.exportExcel(response, list, "提升机执行队列数据"); + } + + /** + * 获取提升机执行队列详细信息 + */ + @PreAuthorize("@ss.hasPermi('queue:tsjFinish:query')") + @GetMapping(value = "/{guid}") + public AjaxResult getInfo(@PathVariable("guid") String guid) + { + return success(tsjDeviceExecutionQueueFinishService.selectTsjDeviceExecutionQueueFinishByGuid(guid)); + } + + /** + * 新增提升机执行队列 + */ + @PreAuthorize("@ss.hasPermi('queue:tsjFinish:add')") + @Log(title = "提升机执行队列", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish) + { + return toAjax(tsjDeviceExecutionQueueFinishService.insertTsjDeviceExecutionQueueFinish(tsjDeviceExecutionQueueFinish)); + } + + /** + * 修改提升机执行队列 + */ + @PreAuthorize("@ss.hasPermi('queue:tsjFinish:edit')") + @Log(title = "提升机执行队列", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish) + { + return toAjax(tsjDeviceExecutionQueueFinishService.updateTsjDeviceExecutionQueueFinish(tsjDeviceExecutionQueueFinish)); + } + + /** + * 删除提升机执行队列 + */ + @PreAuthorize("@ss.hasPermi('queue:tsjFinish:remove')") + @Log(title = "提升机执行队列", businessType = BusinessType.DELETE) + @DeleteMapping("/{guids}") + public AjaxResult remove(@PathVariable String[] guids) + { + return toAjax(tsjDeviceExecutionQueueFinishService.deleteTsjDeviceExecutionQueueFinishByGuids(guids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/domain/TsjDeviceExecutionQueue.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/domain/TsjDeviceExecutionQueue.java new file mode 100644 index 0000000..9d9bb9d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/domain/TsjDeviceExecutionQueue.java @@ -0,0 +1,352 @@ +package com.ruoyi.queue.tsj.domain; + +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; + +/** + * 提升机执行队列对象 tsj_device_execution_queue + * + * @author ruoyi + * @date 2025-11-19 + */ +public class TsjDeviceExecutionQueue extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** GUID */ + private String guid; + + /** 设备编号 */ + @Excel(name = "设备编号") + private Long deviceId; + + /** 设备名称 */ + @Excel(name = "设备名称") + private String deviceName; + + /** 任务号 */ + @Excel(name = "任务号") + private Long taskNo; + + /** 原排 */ + @Excel(name = "原排") + private String srcRow; + + /** 原列 */ + @Excel(name = "原列") + private String srcColumn; + + /** 原层 */ + @Excel(name = "原层") + private String srcLayer; + + /** 目标排 */ + @Excel(name = "目标排") + private String tarRow; + + /** 目标列 */ + @Excel(name = "目标列") + private String tarColumn; + + /** 目标层 */ + @Excel(name = "目标层") + private String tarLayer; + + /** 原地址 */ + @Excel(name = "原地址") + private String srcSite; + + /** 目标地址 */ + @Excel(name = "目标地址") + private String tarSite; + + /** 下发 */ + @Excel(name = "下发") + private String sendFlag; + + /** 下发类型 */ + @Excel(name = "下发类型") + private String sendType; + + /** 任务类型 */ + @Excel(name = "任务类型") + private String taskType; + + /** 创建时间 */ + @Excel(name = "创建时间") + private String createDate; + + /** 开始时间 */ + @Excel(name = "开始时间") + private String startDate; + + /** 完成时间 */ + @Excel(name = "完成时间") + private String finishDate; + + /** 备用1 */ + @Excel(name = "备用1") + private String spare1; + + /** 备用2 */ + @Excel(name = "备用2") + private String spare2; + + /** 备用3 */ + @Excel(name = "备用3") + private String spare3; + + /** 任务类型 */ + @Excel(name = "任务类型") + private String rwlx; + + public void setGuid(String guid) + { + this.guid = guid; + } + + public String getGuid() + { + return guid; + } + + public void setDeviceId(Long deviceId) + { + this.deviceId = deviceId; + } + + public Long getDeviceId() + { + return deviceId; + } + + public void setDeviceName(String deviceName) + { + this.deviceName = deviceName; + } + + public String getDeviceName() + { + return deviceName; + } + + public void setTaskNo(Long taskNo) + { + this.taskNo = taskNo; + } + + public Long getTaskNo() + { + return taskNo; + } + + public void setSrcRow(String srcRow) + { + this.srcRow = srcRow; + } + + public String getSrcRow() + { + return srcRow; + } + + public void setSrcColumn(String srcColumn) + { + this.srcColumn = srcColumn; + } + + public String getSrcColumn() + { + return srcColumn; + } + + public void setSrcLayer(String srcLayer) + { + this.srcLayer = srcLayer; + } + + public String getSrcLayer() + { + return srcLayer; + } + + public void setTarRow(String tarRow) + { + this.tarRow = tarRow; + } + + public String getTarRow() + { + return tarRow; + } + + public void setTarColumn(String tarColumn) + { + this.tarColumn = tarColumn; + } + + public String getTarColumn() + { + return tarColumn; + } + + public void setTarLayer(String tarLayer) + { + this.tarLayer = tarLayer; + } + + public String getTarLayer() + { + return tarLayer; + } + + public void setSrcSite(String srcSite) + { + this.srcSite = srcSite; + } + + public String getSrcSite() + { + return srcSite; + } + + public void setTarSite(String tarSite) + { + this.tarSite = tarSite; + } + + public String getTarSite() + { + return tarSite; + } + + public void setSendFlag(String sendFlag) + { + this.sendFlag = sendFlag; + } + + public String getSendFlag() + { + return sendFlag; + } + + public void setSendType(String sendType) + { + this.sendType = sendType; + } + + public String getSendType() + { + return sendType; + } + + public void setTaskType(String taskType) + { + this.taskType = taskType; + } + + public String getTaskType() + { + return taskType; + } + + public void setCreateDate(String createDate) + { + this.createDate = createDate; + } + + public String getCreateDate() + { + return createDate; + } + + public void setStartDate(String startDate) + { + this.startDate = startDate; + } + + public String getStartDate() + { + return startDate; + } + + public void setFinishDate(String finishDate) + { + this.finishDate = finishDate; + } + + public String getFinishDate() + { + return finishDate; + } + + public void setSpare1(String spare1) + { + this.spare1 = spare1; + } + + public String getSpare1() + { + return spare1; + } + + public void setSpare2(String spare2) + { + this.spare2 = spare2; + } + + public String getSpare2() + { + return spare2; + } + + public void setSpare3(String spare3) + { + this.spare3 = spare3; + } + + public String getSpare3() + { + return spare3; + } + + public void setRwlx(String rwlx) + { + this.rwlx = rwlx; + } + + public String getRwlx() + { + return rwlx; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("guid", getGuid()) + .append("deviceId", getDeviceId()) + .append("deviceName", getDeviceName()) + .append("taskNo", getTaskNo()) + .append("srcRow", getSrcRow()) + .append("srcColumn", getSrcColumn()) + .append("srcLayer", getSrcLayer()) + .append("tarRow", getTarRow()) + .append("tarColumn", getTarColumn()) + .append("tarLayer", getTarLayer()) + .append("srcSite", getSrcSite()) + .append("tarSite", getTarSite()) + .append("sendFlag", getSendFlag()) + .append("sendType", getSendType()) + .append("taskType", getTaskType()) + .append("createDate", getCreateDate()) + .append("startDate", getStartDate()) + .append("finishDate", getFinishDate()) + .append("spare1", getSpare1()) + .append("spare2", getSpare2()) + .append("spare3", getSpare3()) + .append("rwlx", getRwlx()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/domain/TsjDeviceExecutionQueueFinish.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/domain/TsjDeviceExecutionQueueFinish.java new file mode 100644 index 0000000..3972432 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/domain/TsjDeviceExecutionQueueFinish.java @@ -0,0 +1,352 @@ +package com.ruoyi.queue.tsj.domain; + +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; + +/** + * 提升机执行队列对象 tsj_device_execution_queue_finish + * + * @author ruoyi + * @date 2025-11-19 + */ +public class TsjDeviceExecutionQueueFinish extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** GUID */ + private String guid; + + /** 设备编号 */ + @Excel(name = "设备编号") + private Long deviceId; + + /** 设备名称 */ + @Excel(name = "设备名称") + private String deviceName; + + /** 任务号 */ + @Excel(name = "任务号") + private Long taskNo; + + /** 原排 */ + @Excel(name = "原排") + private String srcRow; + + /** 原列 */ + @Excel(name = "原列") + private String srcColumn; + + /** 原层 */ + @Excel(name = "原层") + private String srcLayer; + + /** 目标排 */ + @Excel(name = "目标排") + private String tarRow; + + /** 目标列 */ + @Excel(name = "目标列") + private String tarColumn; + + /** 目标层 */ + @Excel(name = "目标层") + private String tarLayer; + + /** 原地址 */ + @Excel(name = "原地址") + private String srcSite; + + /** 目标地址 */ + @Excel(name = "目标地址") + private String tarSite; + + /** 下发 */ + @Excel(name = "下发") + private String sendFlag; + + /** 下发类型 */ + @Excel(name = "下发类型") + private String sendType; + + /** 任务类型 */ + @Excel(name = "任务类型") + private String taskType; + + /** 创建时间 */ + @Excel(name = "创建时间") + private String createDate; + + /** 开始时间 */ + @Excel(name = "开始时间") + private String startDate; + + /** 完成时间 */ + @Excel(name = "完成时间") + private String finishDate; + + /** 备用1 */ + @Excel(name = "备用1") + private String spare1; + + /** 备用2 */ + @Excel(name = "备用2") + private String spare2; + + /** 备用3 */ + @Excel(name = "备用3") + private String spare3; + + /** 1-空车任务 2-载车任务 */ + @Excel(name = "1-空车任务 2-载车任务") + private String rwlx; + + public void setGuid(String guid) + { + this.guid = guid; + } + + public String getGuid() + { + return guid; + } + + public void setDeviceId(Long deviceId) + { + this.deviceId = deviceId; + } + + public Long getDeviceId() + { + return deviceId; + } + + public void setDeviceName(String deviceName) + { + this.deviceName = deviceName; + } + + public String getDeviceName() + { + return deviceName; + } + + public void setTaskNo(Long taskNo) + { + this.taskNo = taskNo; + } + + public Long getTaskNo() + { + return taskNo; + } + + public void setSrcRow(String srcRow) + { + this.srcRow = srcRow; + } + + public String getSrcRow() + { + return srcRow; + } + + public void setSrcColumn(String srcColumn) + { + this.srcColumn = srcColumn; + } + + public String getSrcColumn() + { + return srcColumn; + } + + public void setSrcLayer(String srcLayer) + { + this.srcLayer = srcLayer; + } + + public String getSrcLayer() + { + return srcLayer; + } + + public void setTarRow(String tarRow) + { + this.tarRow = tarRow; + } + + public String getTarRow() + { + return tarRow; + } + + public void setTarColumn(String tarColumn) + { + this.tarColumn = tarColumn; + } + + public String getTarColumn() + { + return tarColumn; + } + + public void setTarLayer(String tarLayer) + { + this.tarLayer = tarLayer; + } + + public String getTarLayer() + { + return tarLayer; + } + + public void setSrcSite(String srcSite) + { + this.srcSite = srcSite; + } + + public String getSrcSite() + { + return srcSite; + } + + public void setTarSite(String tarSite) + { + this.tarSite = tarSite; + } + + public String getTarSite() + { + return tarSite; + } + + public void setSendFlag(String sendFlag) + { + this.sendFlag = sendFlag; + } + + public String getSendFlag() + { + return sendFlag; + } + + public void setSendType(String sendType) + { + this.sendType = sendType; + } + + public String getSendType() + { + return sendType; + } + + public void setTaskType(String taskType) + { + this.taskType = taskType; + } + + public String getTaskType() + { + return taskType; + } + + public void setCreateDate(String createDate) + { + this.createDate = createDate; + } + + public String getCreateDate() + { + return createDate; + } + + public void setStartDate(String startDate) + { + this.startDate = startDate; + } + + public String getStartDate() + { + return startDate; + } + + public void setFinishDate(String finishDate) + { + this.finishDate = finishDate; + } + + public String getFinishDate() + { + return finishDate; + } + + public void setSpare1(String spare1) + { + this.spare1 = spare1; + } + + public String getSpare1() + { + return spare1; + } + + public void setSpare2(String spare2) + { + this.spare2 = spare2; + } + + public String getSpare2() + { + return spare2; + } + + public void setSpare3(String spare3) + { + this.spare3 = spare3; + } + + public String getSpare3() + { + return spare3; + } + + public void setRwlx(String rwlx) + { + this.rwlx = rwlx; + } + + public String getRwlx() + { + return rwlx; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("guid", getGuid()) + .append("deviceId", getDeviceId()) + .append("deviceName", getDeviceName()) + .append("taskNo", getTaskNo()) + .append("srcRow", getSrcRow()) + .append("srcColumn", getSrcColumn()) + .append("srcLayer", getSrcLayer()) + .append("tarRow", getTarRow()) + .append("tarColumn", getTarColumn()) + .append("tarLayer", getTarLayer()) + .append("srcSite", getSrcSite()) + .append("tarSite", getTarSite()) + .append("sendFlag", getSendFlag()) + .append("sendType", getSendType()) + .append("taskType", getTaskType()) + .append("createDate", getCreateDate()) + .append("startDate", getStartDate()) + .append("finishDate", getFinishDate()) + .append("spare1", getSpare1()) + .append("spare2", getSpare2()) + .append("spare3", getSpare3()) + .append("rwlx", getRwlx()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/mapper/TsjDeviceExecutionQueueFinishMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/mapper/TsjDeviceExecutionQueueFinishMapper.java new file mode 100644 index 0000000..a5ac628 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/mapper/TsjDeviceExecutionQueueFinishMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.queue.tsj.mapper; + +import java.util.List; +import com.ruoyi.queue.tsj.domain.TsjDeviceExecutionQueueFinish; + +/** + * 提升机执行队列Mapper接口 + * + * @author ruoyi + * @date 2025-11-19 + */ +public interface TsjDeviceExecutionQueueFinishMapper +{ + /** + * 查询提升机执行队列 + * + * @param guid 提升机执行队列主键 + * @return 提升机执行队列 + */ + public TsjDeviceExecutionQueueFinish selectTsjDeviceExecutionQueueFinishByGuid(String guid); + + /** + * 查询提升机执行队列列表 + * + * @param tsjDeviceExecutionQueueFinish 提升机执行队列 + * @return 提升机执行队列集合 + */ + public List selectTsjDeviceExecutionQueueFinishList(TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish); + + /** + * 新增提升机执行队列 + * + * @param tsjDeviceExecutionQueueFinish 提升机执行队列 + * @return 结果 + */ + public int insertTsjDeviceExecutionQueueFinish(TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish); + + /** + * 修改提升机执行队列 + * + * @param tsjDeviceExecutionQueueFinish 提升机执行队列 + * @return 结果 + */ + public int updateTsjDeviceExecutionQueueFinish(TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish); + + /** + * 删除提升机执行队列 + * + * @param guid 提升机执行队列主键 + * @return 结果 + */ + public int deleteTsjDeviceExecutionQueueFinishByGuid(String guid); + + /** + * 批量删除提升机执行队列 + * + * @param guids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTsjDeviceExecutionQueueFinishByGuids(String[] guids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/mapper/TsjDeviceExecutionQueueMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/mapper/TsjDeviceExecutionQueueMapper.java new file mode 100644 index 0000000..0c83eba --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/mapper/TsjDeviceExecutionQueueMapper.java @@ -0,0 +1,68 @@ +package com.ruoyi.queue.tsj.mapper; + +import java.util.List; +import com.ruoyi.queue.tsj.domain.TsjDeviceExecutionQueue; + +/** + * 提升机执行队列Mapper接口 + * + * @author ruoyi + * @date 2025-11-19 + */ +public interface TsjDeviceExecutionQueueMapper +{ + /** + * 查询提升机执行队列 + * + * @param guid 提升机执行队列主键 + * @return 提升机执行队列 + */ + public TsjDeviceExecutionQueue selectTsjDeviceExecutionQueueByGuid(String guid); + + /** + * 查询提升机执行队列列表 + * + * @param tsjDeviceExecutionQueue 提升机执行队列 + * @return 提升机执行队列集合 + */ + public List selectTsjDeviceExecutionQueueList(TsjDeviceExecutionQueue tsjDeviceExecutionQueue); + + /** + * 新增提升机执行队列 + * + * @param tsjDeviceExecutionQueue 提升机执行队列 + * @return 结果 + */ + public int insertTsjDeviceExecutionQueue(TsjDeviceExecutionQueue tsjDeviceExecutionQueue); + + /** + * 修改提升机执行队列 + * + * @param tsjDeviceExecutionQueue 提升机执行队列 + * @return 结果 + */ + public int updateTsjDeviceExecutionQueue(TsjDeviceExecutionQueue tsjDeviceExecutionQueue); + + /** + * 删除提升机执行队列 + * + * @param guid 提升机执行队列主键 + * @return 结果 + */ + public int deleteTsjDeviceExecutionQueueByGuid(String guid); + + /** + * 批量删除提升机执行队列 + * + * @param guids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteTsjDeviceExecutionQueueByGuids(String[] guids); + /** + * 根据任务号查询提升机执行队列 + * + * @param taskNo 任务号 + * @return 提升机执行队列 + */ + TsjDeviceExecutionQueue selectTsjDeviceExecutionQueueByRwh(Long taskNo); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/ITsjDeviceExecutionQueueFinishService.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/ITsjDeviceExecutionQueueFinishService.java new file mode 100644 index 0000000..a1ceeae --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/ITsjDeviceExecutionQueueFinishService.java @@ -0,0 +1,61 @@ +package com.ruoyi.queue.tsj.service; + +import java.util.List; +import com.ruoyi.queue.tsj.domain.TsjDeviceExecutionQueueFinish; + +/** + * 提升机执行队列Service接口 + * + * @author ruoyi + * @date 2025-11-19 + */ +public interface ITsjDeviceExecutionQueueFinishService +{ + /** + * 查询提升机执行队列 + * + * @param guid 提升机执行队列主键 + * @return 提升机执行队列 + */ + public TsjDeviceExecutionQueueFinish selectTsjDeviceExecutionQueueFinishByGuid(String guid); + + /** + * 查询提升机执行队列列表 + * + * @param tsjDeviceExecutionQueueFinish 提升机执行队列 + * @return 提升机执行队列集合 + */ + public List selectTsjDeviceExecutionQueueFinishList(TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish); + + /** + * 新增提升机执行队列 + * + * @param tsjDeviceExecutionQueueFinish 提升机执行队列 + * @return 结果 + */ + public int insertTsjDeviceExecutionQueueFinish(TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish); + + /** + * 修改提升机执行队列 + * + * @param tsjDeviceExecutionQueueFinish 提升机执行队列 + * @return 结果 + */ + public int updateTsjDeviceExecutionQueueFinish(TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish); + + /** + * 批量删除提升机执行队列 + * + * @param guids 需要删除的提升机执行队列主键集合 + * @return 结果 + */ + public int deleteTsjDeviceExecutionQueueFinishByGuids(String[] guids); + + /** + * 删除提升机执行队列信息 + * + * @param guid 提升机执行队列主键 + * @return 结果 + */ + public int deleteTsjDeviceExecutionQueueFinishByGuid(String guid); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/ITsjDeviceExecutionQueueService.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/ITsjDeviceExecutionQueueService.java new file mode 100644 index 0000000..f9cf9d0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/ITsjDeviceExecutionQueueService.java @@ -0,0 +1,67 @@ +package com.ruoyi.queue.tsj.service; + +import java.util.List; +import com.ruoyi.queue.tsj.domain.TsjDeviceExecutionQueue; + +/** + * 提升机执行队列Service接口 + * + * @author ruoyi + * @date 2025-11-19 + */ +public interface ITsjDeviceExecutionQueueService +{ + /** + * 查询提升机执行队列 + * + * @param guid 提升机执行队列主键 + * @return 提升机执行队列 + */ + public TsjDeviceExecutionQueue selectTsjDeviceExecutionQueueByGuid(String guid); + + /** + * 查询提升机执行队列列表 + * + * @param tsjDeviceExecutionQueue 提升机执行队列 + * @return 提升机执行队列集合 + */ + public List selectTsjDeviceExecutionQueueList(TsjDeviceExecutionQueue tsjDeviceExecutionQueue); + + /** + * 新增提升机执行队列 + * + * @param tsjDeviceExecutionQueue 提升机执行队列 + * @return 结果 + */ + public int insertTsjDeviceExecutionQueue(TsjDeviceExecutionQueue tsjDeviceExecutionQueue); + + /** + * 修改提升机执行队列 + * + * @param tsjDeviceExecutionQueue 提升机执行队列 + * @return 结果 + */ + public int updateTsjDeviceExecutionQueue(TsjDeviceExecutionQueue tsjDeviceExecutionQueue); + + /** + * 批量删除提升机执行队列 + * + * @param guids 需要删除的提升机执行队列主键集合 + * @return 结果 + */ + public int deleteTsjDeviceExecutionQueueByGuids(String[] guids); + + /** + * 删除提升机执行队列信息 + * + * @param guid 提升机执行队列主键 + * @return 结果 + */ + public int deleteTsjDeviceExecutionQueueByGuid(String guid); + /** + * 根据任务号查询提升机执行队列 + * @param taskNo + * @return + */ + TsjDeviceExecutionQueue selectTsjDeviceExecutionQueueByRwh(Long taskNo); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/impl/TsjDeviceExecutionQueueFinishServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/impl/TsjDeviceExecutionQueueFinishServiceImpl.java new file mode 100644 index 0000000..e38b34f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/impl/TsjDeviceExecutionQueueFinishServiceImpl.java @@ -0,0 +1,93 @@ +package com.ruoyi.queue.tsj.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.queue.tsj.mapper.TsjDeviceExecutionQueueFinishMapper; +import com.ruoyi.queue.tsj.domain.TsjDeviceExecutionQueueFinish; +import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueFinishService; + +/** + * 提升机执行队列Service业务层处理 + * + * @author ruoyi + * @date 2025-11-19 + */ +@Service +public class TsjDeviceExecutionQueueFinishServiceImpl implements ITsjDeviceExecutionQueueFinishService +{ + @Autowired + private TsjDeviceExecutionQueueFinishMapper tsjDeviceExecutionQueueFinishMapper; + + /** + * 查询提升机执行队列 + * + * @param guid 提升机执行队列主键 + * @return 提升机执行队列 + */ + @Override + public TsjDeviceExecutionQueueFinish selectTsjDeviceExecutionQueueFinishByGuid(String guid) + { + return tsjDeviceExecutionQueueFinishMapper.selectTsjDeviceExecutionQueueFinishByGuid(guid); + } + + /** + * 查询提升机执行队列列表 + * + * @param tsjDeviceExecutionQueueFinish 提升机执行队列 + * @return 提升机执行队列 + */ + @Override + public List selectTsjDeviceExecutionQueueFinishList(TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish) + { + return tsjDeviceExecutionQueueFinishMapper.selectTsjDeviceExecutionQueueFinishList(tsjDeviceExecutionQueueFinish); + } + + /** + * 新增提升机执行队列 + * + * @param tsjDeviceExecutionQueueFinish 提升机执行队列 + * @return 结果 + */ + @Override + public int insertTsjDeviceExecutionQueueFinish(TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish) + { + return tsjDeviceExecutionQueueFinishMapper.insertTsjDeviceExecutionQueueFinish(tsjDeviceExecutionQueueFinish); + } + + /** + * 修改提升机执行队列 + * + * @param tsjDeviceExecutionQueueFinish 提升机执行队列 + * @return 结果 + */ + @Override + public int updateTsjDeviceExecutionQueueFinish(TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish) + { + return tsjDeviceExecutionQueueFinishMapper.updateTsjDeviceExecutionQueueFinish(tsjDeviceExecutionQueueFinish); + } + + /** + * 批量删除提升机执行队列 + * + * @param guids 需要删除的提升机执行队列主键 + * @return 结果 + */ + @Override + public int deleteTsjDeviceExecutionQueueFinishByGuids(String[] guids) + { + return tsjDeviceExecutionQueueFinishMapper.deleteTsjDeviceExecutionQueueFinishByGuids(guids); + } + + /** + * 删除提升机执行队列信息 + * + * @param guid 提升机执行队列主键 + * @return 结果 + */ + @Override + public int deleteTsjDeviceExecutionQueueFinishByGuid(String guid) + { + return tsjDeviceExecutionQueueFinishMapper.deleteTsjDeviceExecutionQueueFinishByGuid(guid); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/impl/TsjDeviceExecutionQueueServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/impl/TsjDeviceExecutionQueueServiceImpl.java new file mode 100644 index 0000000..656b6a2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/tsj/service/impl/TsjDeviceExecutionQueueServiceImpl.java @@ -0,0 +1,108 @@ +package com.ruoyi.queue.tsj.service.impl; + +import java.util.List; + +import cn.hutool.core.date.DateUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.queue.tsj.mapper.TsjDeviceExecutionQueueMapper; +import com.ruoyi.queue.tsj.domain.TsjDeviceExecutionQueue; +import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueService; + +/** + * 提升机执行队列Service业务层处理 + * + * @author ruoyi + * @date 2025-11-19 + */ +@Service +public class TsjDeviceExecutionQueueServiceImpl implements ITsjDeviceExecutionQueueService +{ + @Autowired + private TsjDeviceExecutionQueueMapper tsjDeviceExecutionQueueMapper; + + /** + * 查询提升机执行队列 + * + * @param guid 提升机执行队列主键 + * @return 提升机执行队列 + */ + @Override + public TsjDeviceExecutionQueue selectTsjDeviceExecutionQueueByGuid(String guid) + { + return tsjDeviceExecutionQueueMapper.selectTsjDeviceExecutionQueueByGuid(guid); + } + + /** + * 查询提升机执行队列列表 + * + * @param tsjDeviceExecutionQueue 提升机执行队列 + * @return 提升机执行队列 + */ + @Override + public List selectTsjDeviceExecutionQueueList(TsjDeviceExecutionQueue tsjDeviceExecutionQueue) + { + return tsjDeviceExecutionQueueMapper.selectTsjDeviceExecutionQueueList(tsjDeviceExecutionQueue); + } + + /** + * 新增提升机执行队列 + * + * @param tsjDeviceExecutionQueue 提升机执行队列 + * @return 结果 + */ + @Override + public int insertTsjDeviceExecutionQueue(TsjDeviceExecutionQueue tsjDeviceExecutionQueue) + { + return tsjDeviceExecutionQueueMapper.insertTsjDeviceExecutionQueue(tsjDeviceExecutionQueue); + } + + /** + * 修改提升机执行队列 + * + * @param tsjDeviceExecutionQueue 提升机执行队列 + * @return 结果 + */ + @Override + public int updateTsjDeviceExecutionQueue(TsjDeviceExecutionQueue tsjDeviceExecutionQueue) + { + return tsjDeviceExecutionQueueMapper.updateTsjDeviceExecutionQueue(tsjDeviceExecutionQueue); + } + + /** + * 批量删除提升机执行队列 + * + * @param guids 需要删除的提升机执行队列主键 + * @return 结果 + */ + @Override + public int deleteTsjDeviceExecutionQueueByGuids(String[] guids) + { + return tsjDeviceExecutionQueueMapper.deleteTsjDeviceExecutionQueueByGuids(guids); + } + + /** + * 删除提升机执行队列信息 + * + * @param guid 提升机执行队列主键 + * @return 结果 + */ + @Override + public int deleteTsjDeviceExecutionQueueByGuid(String guid) + { + return tsjDeviceExecutionQueueMapper.deleteTsjDeviceExecutionQueueByGuid(guid); + } + + /** + * 根据任务号查询提升机执行队列 + * + * @param taskNo 任务号 + * @return 提升机执行队列 + */ + @Override + public TsjDeviceExecutionQueue selectTsjDeviceExecutionQueueByRwh(Long taskNo) { + return tsjDeviceExecutionQueueMapper.selectTsjDeviceExecutionQueueByRwh(taskNo); + } + + +} 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 1720a5c..d8a3c3f 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 @@ -1,13 +1,17 @@ package com.ruoyi.schedule.plcRead.tsj; +import HslCommunication.BasicFramework.SoftBasic; import HslCommunication.Core.Net.IReadWriteNet; import HslCommunication.Core.Types.OperateResult; +import HslCommunication.Core.Types.OperateResultExOne; import HslCommunication.Profinet.Siemens.SiemensPLCS; import HslCommunication.Profinet.Siemens.SiemensS7Net; +import cn.hutool.core.convert.Convert; import com.ruoyi.common.domain.HslRead; import com.ruoyi.common.domain.PlcConnectInfo; import com.ruoyi.common.domain.SendData; import com.ruoyi.device.tsj.domain.DeviceTsj; +import com.ruoyi.schedule.plcRead.util.ParseUtil; import com.ruoyi.schedule.plcRead.util.Tools; import lombok.extern.slf4j.Slf4j; @@ -31,7 +35,7 @@ public class PlcTsjRead implements Runnable { this.port = plcConnectInfo.getPort(); } - public static int WriteToSSJ(String address, byte[] data) { + public static int WriteToTSJ(String address, byte[] data) { int a = 0; if (readWriteNet != null) { a = HslRead.WriteResultRender(readWriteNet.Write(address, data), address); @@ -44,11 +48,9 @@ public class PlcTsjRead implements Runnable { while (isRun) { try { if (IsConnect()) { - int step = 20; - int baseOffset = 0; for (String tsjCode : deviceTsjMap.keySet()) { DeviceTsj tsjDevice = deviceTsjMap.get(tsjCode); - + plcRead(tsjDevice); } Thread.sleep(1000); } else { @@ -65,6 +67,25 @@ public class PlcTsjRead implements Runnable { } } + private void plcRead(DeviceTsj tsjDevice) { + OperateResultExOne read2 = readWriteNet.Read(tsjDevice.getPlcDbReadAddress(), Short.parseShort("220")); + String ddsx1 = "0"; + if (read2.IsSuccess) { + ddsx1 = SoftBasic.ByteToHexString(read2.Content); + tsjDevice.setCzfs(ParseUtil.optInt(2, ddsx1)); + tsjDevice.setSbzt(ParseUtil.optInt(4, ddsx1)); + tsjDevice.setRwh(Convert.toLong(ParseUtil.optDInt(6, ddsx1))); + tsjDevice.setDqcs(ParseUtil.optInt(10, ddsx1)); + tsjDevice.setJdbz(ParseUtil.optInt(12, ddsx1)); + tsjDevice.setYph(ParseUtil.optInt(14, ddsx1)); + tsjDevice.setYch(ParseUtil.optInt(16, ddsx1)); + tsjDevice.setMbph(ParseUtil.optInt(18, ddsx1)); + tsjDevice.setMbch(ParseUtil.optInt(20, ddsx1)); + tsjDevice.setYxxf(ParseUtil.optInt(22, ddsx1)); + tsjDevice.setXtxh(ParseUtil.optInt(24, ddsx1)); + } + } + void ConnectServer() { siemensS7Net = new SiemensS7Net(SiemensPLCS.S1500); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/tsj/TsjThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/tsj/TsjThread.java new file mode 100644 index 0000000..7c105f6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/tsj/TsjThread.java @@ -0,0 +1,290 @@ +package com.ruoyi.schedule.scheduleTask.tsj; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjUtil; +import com.ruoyi.bas.cargospace.domain.BasCargoSpace; +import com.ruoyi.bas.cargospace.service.IBasCargoSpaceService; +import com.ruoyi.bas.port.domain.WcsPort; +import com.ruoyi.bas.port.service.IWcsPortService; +import com.ruoyi.common.domain.SendData; +import com.ruoyi.device.tsj.domain.DeviceTsj; +import com.ruoyi.device.tsj.service.IDeviceTsjService; +import com.ruoyi.job.domain.MydoJob; +import com.ruoyi.job.service.IMydoJobService; +import com.ruoyi.queue.tsj.domain.TsjDeviceExecutionQueue; +import com.ruoyi.queue.tsj.domain.TsjDeviceExecutionQueueFinish; +import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueFinishService; +import com.ruoyi.queue.tsj.service.ITsjDeviceExecutionQueueService; +import com.ruoyi.schedule.plcRead.tsj.PlcTsjRead; +import com.ruoyi.schedule.plcRead.util.Tools; +import lombok.extern.slf4j.Slf4j; + +import java.util.Date; +import java.util.List; +import java.util.Optional; + +@Slf4j +public class TsjThread implements Runnable { + public boolean isRun = true; + + private ITsjDeviceExecutionQueueService tsjDeviceExecutionQueueService; + private ITsjDeviceExecutionQueueFinishService tsjDeviceExecutionQueueFinishService; + private IDeviceTsjService deviceTsjService; + + private IMydoJobService mydoJobService; + + private IWcsPortService wcsPortService; + private IBasCargoSpaceService basCargoSpaceService; + + + public void init() { + } + + @Override + public void run() { + init(); + while (isRun) { + for (String tsjCode : PlcTsjRead.deviceTsjMap.keySet()) { + DeviceTsj tsj = PlcTsjRead.deviceTsjMap.get(tsjCode); + + tsjTask(tsj); + } + + try { + Thread.sleep(1500); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + + } + + private void tsjTask(DeviceTsj tsj) { + int sbzt = tsj.getSbzt();//设备状态 + int czfs = tsj.getCzfs();//操作方式 //0:未知,1:手动 2:自动 + int jdbz = tsj.getJdbz();//执行阶段 + Long rwh = tsj.getRwh();//任务号 + int yxxf = tsj.getYxxf();//允许下发 + + + + /* + * 1、下发完成 如果设备状态为 2-工作 ,触发方式 2-自动,任务号大于999,则代表任务下发完成 + * + * */ + if (czfs == 2 && sbzt == 2 && rwh > 999) { + finishSend(rwh); + } + + /* + * 2、任务完成 + * + * */ + if (czfs == 2 && sbzt == 2 && jdbz == 5 && rwh > 999) { + //任务完成 + finishTask(rwh); + } + + /* + * 3、下发 + * + * */ + if (czfs == 2 && yxxf == 1) { + sendTsj(); + } + + createLoadQueue(tsj); + + createUnLoadQueue(tsj); + + } + + /** + * 创建装车队列 + */ + private void createUnLoadQueue(DeviceTsj tsj) { + //根据提升机入口点位循环如果提升机在某个占用的入口点位楼层,则锁定提升机否则生成提升机队列 + List tsjDeviceExecutionQueues = tsjDeviceExecutionQueueService.selectTsjDeviceExecutionQueueList(new TsjDeviceExecutionQueue()); + if (CollUtil.isNotEmpty(tsjDeviceExecutionQueues)) { + // 提升机存在任务 + return; + } + WcsPort param = new WcsPort(); + param.setPortType("1"); + param.setStatus("1"); + param.setSpare2("0"); + List wcsPorts = wcsPortService.selectWcsPortList(param); + DeviceTsj deviceTsj = deviceTsjService.selectDeviceTsjById(tsj.getId()); + if (CollUtil.isNotEmpty(wcsPorts) && deviceTsj.getSpare1() == 0) { + //todo 按时间顺序 或者是按提升机最近顺序 + Optional existCurrentPort = wcsPorts.stream().filter(x -> x.getPortRegion().equals(Convert.toStr(deviceTsj.getDqcs()))).findFirst(); + if (existCurrentPort.isPresent()) { + //修改承载锁定 + deviceTsj.setSpare1(1); + deviceTsjService.updateDeviceTsj(deviceTsj); + log.info("提升机任务锁定提升机承载 任务类型:{}", "提升机任务"); + } else { + WcsPort wcsPort = wcsPorts.get(0); + TsjDeviceExecutionQueue tsjDeviceExecutionQueue = new TsjDeviceExecutionQueue(); + tsjDeviceExecutionQueue.setGuid(IdUtil.simpleUUID()); + tsjDeviceExecutionQueue.setDeviceId(tsj.getId()); + tsjDeviceExecutionQueue.setDeviceName(tsj.getName()); + tsjDeviceExecutionQueue.setTaskNo(Convert.toLong(wcsPort.getSpare1())); + tsjDeviceExecutionQueue.setSrcRow("0"); + tsjDeviceExecutionQueue.setSrcLayer("0"); + tsjDeviceExecutionQueue.setTarRow(wcsPort.getPortType()); + tsjDeviceExecutionQueue.setTarLayer(wcsPort.getPortRegion()); + tsjDeviceExecutionQueue.setSendFlag("0"); + tsjDeviceExecutionQueue.setSendType("1"); + tsjDeviceExecutionQueue.setRwlx("1"); + tsjDeviceExecutionQueue.setCreateDate(DateUtil.formatDateTime(new Date())); + tsjDeviceExecutionQueueService.insertTsjDeviceExecutionQueue(tsjDeviceExecutionQueue); + } + + } + } + + /** + * 创建卸车队列 + */ + private void createLoadQueue(DeviceTsj tsj) { + //todo 根据当前楼层和执行阶段查询任务 获取目标队列 生成提升机队列 当小车出去后 解锁提升机 + List tsjDeviceExecutionQueues = tsjDeviceExecutionQueueService.selectTsjDeviceExecutionQueueList(new TsjDeviceExecutionQueue()); + if (CollUtil.isNotEmpty(tsjDeviceExecutionQueues)) { + // 提升机存在任务 + return; + } + + DeviceTsj deviceTsj = deviceTsjService.selectDeviceTsjById(1L); + //判断提升机锁定 并且 小车已进入提升机 + if (deviceTsj.getSpare1() == 1 && tsj.getSbzt() == 3 && tsj.getYxxf() == 1) { + + //查询进入提升机的任务 + MydoJob param = new MydoJob(); + param.setRoadwayId("1"); + List mydoJobs = mydoJobService.selectMydoJobList(param); + + if (CollUtil.isNotEmpty(mydoJobs)){ + MydoJob mydoJob = mydoJobs.get(0); + BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId()); + //生成提升机队列 + TsjDeviceExecutionQueue tsjDeviceExecutionQueue = new TsjDeviceExecutionQueue(); + tsjDeviceExecutionQueue.setGuid(IdUtil.simpleUUID()); + tsjDeviceExecutionQueue.setDeviceId(tsj.getId()); + tsjDeviceExecutionQueue.setDeviceName(tsj.getName()); + tsjDeviceExecutionQueue.setTaskNo(Convert.toLong(mydoJob.getTaskNo())); + tsjDeviceExecutionQueue.setSrcRow("0"); + tsjDeviceExecutionQueue.setSrcLayer("0"); + tsjDeviceExecutionQueue.setTarRow(Convert.toStr(basCargoSpace.getThePlatoon())); + tsjDeviceExecutionQueue.setTarLayer(Convert.toStr(basCargoSpace.getTheFloor())); + tsjDeviceExecutionQueue.setSendFlag("0"); + tsjDeviceExecutionQueue.setSendType("1"); + tsjDeviceExecutionQueue.setRwlx("1"); + tsjDeviceExecutionQueue.setCreateDate(DateUtil.formatDateTime(new Date())); + tsjDeviceExecutionQueueService.insertTsjDeviceExecutionQueue(tsjDeviceExecutionQueue); + + + } + } + } + + private void sendTsj() { + List tsjDeviceExecutionQueues = tsjDeviceExecutionQueueService.selectTsjDeviceExecutionQueueList(new TsjDeviceExecutionQueue()); + if (CollUtil.isNotEmpty(tsjDeviceExecutionQueues)) { + TsjDeviceExecutionQueue tsjDeviceExecutionQueue = tsjDeviceExecutionQueues.get(0); + + if ("1".equals(tsjDeviceExecutionQueue.getRwlx())) { + //提升机移动到小车楼层 需要判断目标楼层入库点位小车是否到位 + WcsPort param = new WcsPort(); + param.setPortType("1"); + param.setPortRegion(tsjDeviceExecutionQueue.getTarLayer()); + param.setStatus("1"); + param.setSpare2("1"); + List wcsPorts = wcsPortService.selectWcsPortList(param); + if (CollUtil.isEmpty(wcsPorts)) { + log.info("提升机任务[{}]下发 目标楼层[{}]入库点位空闲 无法下发提升机任务", tsjDeviceExecutionQueue.getTaskNo(), tsjDeviceExecutionQueue.getTarLayer()); + return; + } + } else if ("2".equals(tsjDeviceExecutionQueue.getRwlx())) { + //提升机承载小车到目标楼层 需要判断目标楼层出库点位是否空闲 + WcsPort param = new WcsPort(); + param.setPortType("1"); + param.setPortRegion(tsjDeviceExecutionQueue.getTarLayer()); + param.setStatus("0"); + param.setSpare2("1"); + List wcsPorts = wcsPortService.selectWcsPortList(param); + if (CollUtil.isEmpty(wcsPorts)) { + log.info("提升机任务[{}]下发 目标楼层[{}]出库点位占用 无法下发提升机任务", tsjDeviceExecutionQueue.getTaskNo(), tsjDeviceExecutionQueue.getTarLayer()); + return; + } + } + writeToTsj(tsjDeviceExecutionQueues.get(0)); + log.info("提升机任务下发 taskNo{} 任务类型:{}", tsjDeviceExecutionQueue.getTaskNo(), tsjDeviceExecutionQueue.getRwlx()); + } + } + + /** + * 写入提升机任务 + * + * @param tsjDeviceExecutionQueue + */ + private void writeToTsj(TsjDeviceExecutionQueue tsjDeviceExecutionQueue) { + SendData taskNoSendData = new SendData(Tools.INT, Convert.toInt(tsjDeviceExecutionQueue.getTaskNo())); + SendData srcRow = new SendData(Tools.INT, Convert.toInt(tsjDeviceExecutionQueue.getSrcRow())); + SendData srcLayer = new SendData(Tools.INT, Convert.toInt(tsjDeviceExecutionQueue.getSrcLayer())); + SendData tarRow = new SendData(Tools.INT, Convert.toInt(tsjDeviceExecutionQueue.getTarRow())); + SendData tarLayer = new SendData(Tools.INT, Convert.toInt(tsjDeviceExecutionQueue.getTarLayer())); + SendData sendType = new SendData(Tools.INT, Convert.toInt(tsjDeviceExecutionQueue.getSendType())); + SendData completedSendData = new SendData(Tools.INT, 1); + int jym = Tools.getJYM(taskNoSendData.getNum2(), srcRow.getNum2(), srcLayer.getNum2(), tarRow.getNum2(), tarLayer.getNum2(), sendType.getNum2(), completedSendData.getNum2()); + SendData jymSendData = new SendData(Tools.INT, jym); + byte[] bytes = Tools.sendData(taskNoSendData, srcRow, srcLayer, tarRow, tarLayer, sendType, completedSendData, jymSendData); + DeviceTsj deviceTsj = PlcTsjRead.deviceTsjMap.get(Convert.toStr(tsjDeviceExecutionQueue.getDeviceId())); + if (ObjUtil.isNotNull(deviceTsj)) { + PlcTsjRead.WriteToTSJ(deviceTsj.getPlcDbWriteAddress(), bytes); + } + } + + private void finishTask(Long taskNo) { + + //根据任务号查询队列 修改执行状态 + TsjDeviceExecutionQueue tsjDeviceExecutionQueue = tsjDeviceExecutionQueueService.selectTsjDeviceExecutionQueueByRwh(taskNo); + if (ObjUtil.isNotNull(tsjDeviceExecutionQueue)) { + //完成提升机任务 插入历史表 + TsjDeviceExecutionQueueFinish tsjDeviceExecutionQueueFinish = new TsjDeviceExecutionQueueFinish(); + BeanUtil.copyProperties(tsjDeviceExecutionQueue, tsjDeviceExecutionQueueFinish); + tsjDeviceExecutionQueueFinish.setFinishDate(DateUtil.formatDateTime(DateUtil.date())); + tsjDeviceExecutionQueueFinishService.insertTsjDeviceExecutionQueueFinish(tsjDeviceExecutionQueueFinish); + tsjDeviceExecutionQueueService.deleteTsjDeviceExecutionQueueByGuid(tsjDeviceExecutionQueue.getGuid()); + log.info("提升机任务下发完成 taskNo{} 任务类型:{}", taskNo, "提升机任务"); + if ("1".equals(tsjDeviceExecutionQueue.getRwlx())) { + //锁定提升机承载 + DeviceTsj deviceTsj = deviceTsjService.selectDeviceTsjById(tsjDeviceExecutionQueue.getDeviceId()); + deviceTsj.setSpare1(1); + deviceTsjService.updateDeviceTsj(deviceTsj); + log.info("提升机任务锁定提升机承载 taskNo{} 任务类型:{}", taskNo, "提升机任务"); + } + } + + } + + /** + * 提升机下发任务完成 + * + * @param taskNo + */ + private void finishSend(Long taskNo) { + //根据任务号查询是否存在入库或者出库的正执行任务 + TsjDeviceExecutionQueue tsjDeviceExecutionQueue = tsjDeviceExecutionQueueService.selectTsjDeviceExecutionQueueByRwh(taskNo); + if (ObjUtil.isNotNull(tsjDeviceExecutionQueue)) { + tsjDeviceExecutionQueue.setSendFlag("1"); + tsjDeviceExecutionQueue.setStartDate(DateUtil.formatDateTime(DateUtil.date())); + tsjDeviceExecutionQueueService.updateTsjDeviceExecutionQueue(tsjDeviceExecutionQueue); + log.info("提升机任务完成 taskNo:{} 任务类型:{}", taskNo, "提升机任务"); + } + } +} diff --git a/ruoyi-admin/src/main/resources/mapper/device/DeviceTsjMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/DeviceTsjMapper.xml new file mode 100644 index 0000000..b8cb654 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/device/DeviceTsjMapper.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, name, ip, port, plc_db_read_address, plc_db_write_address, rwh, jdbz, sbzt, czfs, yxxf, yph, ylh, ych, mbph, mblh, mbch, xtxh, dqcs, hczt, spare1, spare2, spare3 from device_tsj + + + + + + + + insert into device_tsj + + id, + name, + ip, + port, + plc_db_read_address, + plc_db_write_address, + rwh, + jdbz, + sbzt, + czfs, + yxxf, + yph, + ylh, + ych, + mbph, + mblh, + mbch, + xtxh, + dqcs, + hczt, + spare1, + spare2, + spare3, + + + #{id}, + #{name}, + #{ip}, + #{port}, + #{plcDbReadAddress}, + #{plcDbWriteAddress}, + #{rwh}, + #{jdbz}, + #{sbzt}, + #{czfs}, + #{yxxf}, + #{yph}, + #{ylh}, + #{ych}, + #{mbph}, + #{mblh}, + #{mbch}, + #{xtxh}, + #{dqcs}, + #{hczt}, + #{spare1}, + #{spare2}, + #{spare3}, + + + + + update device_tsj + + name = #{name}, + ip = #{ip}, + port = #{port}, + plc_db_read_address = #{plcDbReadAddress}, + plc_db_write_address = #{plcDbWriteAddress}, + rwh = #{rwh}, + jdbz = #{jdbz}, + sbzt = #{sbzt}, + czfs = #{czfs}, + yxxf = #{yxxf}, + yph = #{yph}, + ylh = #{ylh}, + ych = #{ych}, + mbph = #{mbph}, + mblh = #{mblh}, + mbch = #{mbch}, + xtxh = #{xtxh}, + dqcs = #{dqcs}, + hczt = #{hczt}, + spare1 = #{spare1}, + spare2 = #{spare2}, + spare3 = #{spare3}, + + where id = #{id} + + + + delete from device_tsj where id = #{id} + + + + delete from device_tsj where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/queue/TsjDeviceExecutionQueueFinishMapper.xml b/ruoyi-admin/src/main/resources/mapper/queue/TsjDeviceExecutionQueueFinishMapper.xml new file mode 100644 index 0000000..3d8dda9 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/queue/TsjDeviceExecutionQueueFinishMapper.xml @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select guid, device_id, device_name, task_no, src_row, src_column, src_layer, tar_row, tar_column, tar_layer, src_site, tar_site, send_flag, send_type, task_type, create_date, start_date, finish_date, spare1, spare2, spare3, rwlx from tsj_device_execution_queue_finish + + + + + + + + insert into tsj_device_execution_queue_finish + + guid, + device_id, + device_name, + task_no, + src_row, + src_column, + src_layer, + tar_row, + tar_column, + tar_layer, + src_site, + tar_site, + send_flag, + send_type, + task_type, + create_date, + start_date, + finish_date, + spare1, + spare2, + spare3, + rwlx, + + + #{guid}, + #{deviceId}, + #{deviceName}, + #{taskNo}, + #{srcRow}, + #{srcColumn}, + #{srcLayer}, + #{tarRow}, + #{tarColumn}, + #{tarLayer}, + #{srcSite}, + #{tarSite}, + #{sendFlag}, + #{sendType}, + #{taskType}, + #{createDate}, + #{startDate}, + #{finishDate}, + #{spare1}, + #{spare2}, + #{spare3}, + #{rwlx}, + + + + + update tsj_device_execution_queue_finish + + device_id = #{deviceId}, + device_name = #{deviceName}, + task_no = #{taskNo}, + src_row = #{srcRow}, + src_column = #{srcColumn}, + src_layer = #{srcLayer}, + tar_row = #{tarRow}, + tar_column = #{tarColumn}, + tar_layer = #{tarLayer}, + src_site = #{srcSite}, + tar_site = #{tarSite}, + send_flag = #{sendFlag}, + send_type = #{sendType}, + task_type = #{taskType}, + create_date = #{createDate}, + start_date = #{startDate}, + finish_date = #{finishDate}, + spare1 = #{spare1}, + spare2 = #{spare2}, + spare3 = #{spare3}, + rwlx = #{rwlx}, + + where guid = #{guid} + + + + delete from tsj_device_execution_queue_finish where guid = #{guid} + + + + delete from tsj_device_execution_queue_finish where guid in + + #{guid} + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/queue/TsjDeviceExecutionQueueMapper.xml b/ruoyi-admin/src/main/resources/mapper/queue/TsjDeviceExecutionQueueMapper.xml new file mode 100644 index 0000000..a25cb48 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/queue/TsjDeviceExecutionQueueMapper.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select guid, device_id, device_name, task_no, src_row, src_column, src_layer, tar_row, tar_column, tar_layer, src_site, tar_site, send_flag, send_type, task_type, create_date, start_date, finish_date, spare1, spare2, spare3, rwlx from tsj_device_execution_queue + + + + + + + + + insert into tsj_device_execution_queue + + guid, + device_id, + device_name, + task_no, + src_row, + src_column, + src_layer, + tar_row, + tar_column, + tar_layer, + src_site, + tar_site, + send_flag, + send_type, + task_type, + create_date, + start_date, + finish_date, + spare1, + spare2, + spare3, + rwlx, + + + #{guid}, + #{deviceId}, + #{deviceName}, + #{taskNo}, + #{srcRow}, + #{srcColumn}, + #{srcLayer}, + #{tarRow}, + #{tarColumn}, + #{tarLayer}, + #{srcSite}, + #{tarSite}, + #{sendFlag}, + #{sendType}, + #{taskType}, + #{createDate}, + #{startDate}, + #{finishDate}, + #{spare1}, + #{spare2}, + #{spare3}, + #{rwlx}, + + + + + update tsj_device_execution_queue + + device_id = #{deviceId}, + device_name = #{deviceName}, + task_no = #{taskNo}, + src_row = #{srcRow}, + src_column = #{srcColumn}, + src_layer = #{srcLayer}, + tar_row = #{tarRow}, + tar_column = #{tarColumn}, + tar_layer = #{tarLayer}, + src_site = #{srcSite}, + tar_site = #{tarSite}, + send_flag = #{sendFlag}, + send_type = #{sendType}, + task_type = #{taskType}, + create_date = #{createDate}, + start_date = #{startDate}, + finish_date = #{finishDate}, + spare1 = #{spare1}, + spare2 = #{spare2}, + spare3 = #{spare3}, + rwlx = #{rwlx}, + + where guid = #{guid} + + + + delete from tsj_device_execution_queue where guid = #{guid} + + + + delete from tsj_device_execution_queue where guid in + + #{guid} + + + diff --git a/ruoyi-generator/src/main/resources/mapper/generator/IDynamicMonitoringService.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml similarity index 100% rename from ruoyi-generator/src/main/resources/mapper/generator/IDynamicMonitoringService.xml rename to ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml diff --git a/ruoyi-ui/src/api/queue/tsj.js b/ruoyi-ui/src/api/queue/tsj.js new file mode 100644 index 0000000..a8b4fe9 --- /dev/null +++ b/ruoyi-ui/src/api/queue/tsj.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询提升机执行队列列表 +export function listTsj(query) { + return request({ + url: '/queue/tsj/list', + method: 'get', + params: query + }) +} + +// 查询提升机执行队列详细 +export function getTsj(guid) { + return request({ + url: '/queue/tsj/' + guid, + method: 'get' + }) +} + +// 新增提升机执行队列 +export function addTsj(data) { + return request({ + url: '/queue/tsj', + method: 'post', + data: data + }) +} + +// 修改提升机执行队列 +export function updateTsj(data) { + return request({ + url: '/queue/tsj', + method: 'put', + data: data + }) +} + +// 删除提升机执行队列 +export function delTsj(guid) { + return request({ + url: '/queue/tsj/' + guid, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/queue/tsjFinish.js b/ruoyi-ui/src/api/queue/tsjFinish.js new file mode 100644 index 0000000..0d3810b --- /dev/null +++ b/ruoyi-ui/src/api/queue/tsjFinish.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询提升机执行队列列表 +export function listTsjFinish(query) { + return request({ + url: '/queue/tsjFinish/list', + method: 'get', + params: query + }) +} + +// 查询提升机执行队列详细 +export function getTsjFinish(guid) { + return request({ + url: '/queue/tsjFinish/' + guid, + method: 'get' + }) +} + +// 新增提升机执行队列 +export function addTsjFinish(data) { + return request({ + url: '/queue/tsjFinish', + method: 'post', + data: data + }) +} + +// 修改提升机执行队列 +export function updateTsjFinish(data) { + return request({ + url: '/queue/tsjFinish', + method: 'put', + data: data + }) +} + +// 删除提升机执行队列 +export function delTsjFinish(guid) { + return request({ + url: '/queue/tsjFinish/' + guid, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/views/queue/tsj/index.vue b/ruoyi-ui/src/views/queue/tsj/index.vue new file mode 100644 index 0000000..a66ae9a --- /dev/null +++ b/ruoyi-ui/src/views/queue/tsj/index.vue @@ -0,0 +1,484 @@ + + + diff --git a/ruoyi-ui/src/views/queue/tsjFinish/index.vue b/ruoyi-ui/src/views/queue/tsjFinish/index.vue new file mode 100644 index 0000000..b1fb97e --- /dev/null +++ b/ruoyi-ui/src/views/queue/tsjFinish/index.vue @@ -0,0 +1,506 @@ + + +