diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/controller/WcsCachePortController.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/controller/WcsCachePortController.java deleted file mode 100644 index bcfe051..0000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/controller/WcsCachePortController.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.ruoyi.bas.cachePort.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.bas.cachePort.domain.WcsCachePort; -import com.ruoyi.bas.cachePort.service.IWcsCachePortService; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.common.core.page.TableDataInfo; - -/** - * 缓存点管理Controller - * - * @author ruoyi - * @date 2025-06-11 - */ -@RestController -@RequestMapping("/bas/cachePort") -public class WcsCachePortController extends BaseController -{ - @Autowired - private IWcsCachePortService wcsCachePortService; - - /** - * 查询缓存点管理列表 - */ - @PreAuthorize("@ss.hasPermi('bas:cachePort:list')") - @GetMapping("/list") - public TableDataInfo list(WcsCachePort wcsCachePort) - { - startPage(); - List list = wcsCachePortService.selectWcsCachePortList(wcsCachePort); - return getDataTable(list); - } - - /** - * 导出缓存点管理列表 - */ - @PreAuthorize("@ss.hasPermi('bas:cachePort:export')") - @Log(title = "缓存点管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, WcsCachePort wcsCachePort) - { - List list = wcsCachePortService.selectWcsCachePortList(wcsCachePort); - ExcelUtil util = new ExcelUtil(WcsCachePort.class); - util.exportExcel(response, list, "缓存点管理数据"); - } - - /** - * 获取缓存点管理详细信息 - */ - @PreAuthorize("@ss.hasPermi('bas:cachePort:query')") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { - return success(wcsCachePortService.selectWcsCachePortById(id)); - } - - /** - * 新增缓存点管理 - */ - @PreAuthorize("@ss.hasPermi('bas:cachePort:add')") - @Log(title = "缓存点管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody WcsCachePort wcsCachePort) - { - return toAjax(wcsCachePortService.insertWcsCachePort(wcsCachePort)); - } - - /** - * 修改缓存点管理 - */ - @PreAuthorize("@ss.hasPermi('bas:cachePort:edit')") - @Log(title = "缓存点管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody WcsCachePort wcsCachePort) - { - return toAjax(wcsCachePortService.updateWcsCachePort(wcsCachePort)); - } - - /** - * 删除缓存点管理 - */ - @PreAuthorize("@ss.hasPermi('bas:cachePort:remove')") - @Log(title = "缓存点管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { - return toAjax(wcsCachePortService.deleteWcsCachePortByIds(ids)); - } -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/domain/WcsCachePort.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/domain/WcsCachePort.java deleted file mode 100644 index 6d2d2f9..0000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/domain/WcsCachePort.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.ruoyi.bas.cachePort.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; - -/** - * 缓存点管理对象 wcs_cache_port - * - * @author ruoyi - * @date 2025-06-11 - */ -public class WcsCachePort extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 主键 */ - private Long id; - - /** 点位编码 */ - @Excel(name = "点位编码") - private String portCode; - - /** 点位名称 */ - @Excel(name = "点位名称") - private String portName; - - /** 1-ctu放货点位 2-高架库放货点位 3-平库放货点位 */ - @Excel(name = "1-ctu放货点位 2-高架库放货点位 3-平库放货点位") - private String portType; - - /** 点位区域 */ - @Excel(name = "点位区域") - private String portRegion; - - /** 备用字段 */ - @Excel(name = "备用字段") - private String spare1; - - /** 备用字段 */ - @Excel(name = "备用字段") - private String spare2; - - /** 备用字段 */ - @Excel(name = "备用字段") - private String spare3; - - /** 点位状态 */ - @Excel(name = "点位状态") - private String status; - - public void setId(Long id) - { - this.id = id; - } - - public Long getId() - { - return id; - } - - public void setPortCode(String portCode) - { - this.portCode = portCode; - } - - public String getPortCode() - { - return portCode; - } - - public void setPortName(String portName) - { - this.portName = portName; - } - - public String getPortName() - { - return portName; - } - - public void setPortType(String portType) - { - this.portType = portType; - } - - public String getPortType() - { - return portType; - } - - public void setPortRegion(String portRegion) - { - this.portRegion = portRegion; - } - - public String getPortRegion() - { - return portRegion; - } - - 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 setStatus(String status) - { - this.status = status; - } - - public String getStatus() - { - return status; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("portCode", getPortCode()) - .append("portName", getPortName()) - .append("portType", getPortType()) - .append("portRegion", getPortRegion()) - .append("spare1", getSpare1()) - .append("spare2", getSpare2()) - .append("spare3", getSpare3()) - .append("status", getStatus()) - .toString(); - } -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/mapper/WcsCachePortMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/mapper/WcsCachePortMapper.java deleted file mode 100644 index 804db1a..0000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/mapper/WcsCachePortMapper.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.ruoyi.bas.cachePort.mapper; - -import java.util.List; -import com.ruoyi.bas.cachePort.domain.WcsCachePort; - -/** - * 缓存点管理Mapper接口 - * - * @author ruoyi - * @date 2025-06-11 - */ -public interface WcsCachePortMapper -{ - /** - * 查询缓存点管理 - * - * @param id 缓存点管理主键 - * @return 缓存点管理 - */ - public WcsCachePort selectWcsCachePortById(Long id); - - /** - * 查询缓存点管理列表 - * - * @param wcsCachePort 缓存点管理 - * @return 缓存点管理集合 - */ - public List selectWcsCachePortList(WcsCachePort wcsCachePort); - - /** - * 新增缓存点管理 - * - * @param wcsCachePort 缓存点管理 - * @return 结果 - */ - public int insertWcsCachePort(WcsCachePort wcsCachePort); - - /** - * 修改缓存点管理 - * - * @param wcsCachePort 缓存点管理 - * @return 结果 - */ - public int updateWcsCachePort(WcsCachePort wcsCachePort); - - /** - * 删除缓存点管理 - * - * @param id 缓存点管理主键 - * @return 结果 - */ - public int deleteWcsCachePortById(Long id); - - /** - * 批量删除缓存点管理 - * - * @param ids 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteWcsCachePortByIds(Long[] ids); -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/service/IWcsCachePortService.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/service/IWcsCachePortService.java deleted file mode 100644 index c9969b0..0000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/service/IWcsCachePortService.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.ruoyi.bas.cachePort.service; - -import java.util.List; -import com.ruoyi.bas.cachePort.domain.WcsCachePort; - -/** - * 缓存点管理Service接口 - * - * @author ruoyi - * @date 2025-06-11 - */ -public interface IWcsCachePortService -{ - /** - * 查询缓存点管理 - * - * @param id 缓存点管理主键 - * @return 缓存点管理 - */ - public WcsCachePort selectWcsCachePortById(Long id); - - /** - * 查询缓存点管理列表 - * - * @param wcsCachePort 缓存点管理 - * @return 缓存点管理集合 - */ - public List selectWcsCachePortList(WcsCachePort wcsCachePort); - - /** - * 新增缓存点管理 - * - * @param wcsCachePort 缓存点管理 - * @return 结果 - */ - public int insertWcsCachePort(WcsCachePort wcsCachePort); - - /** - * 修改缓存点管理 - * - * @param wcsCachePort 缓存点管理 - * @return 结果 - */ - public int updateWcsCachePort(WcsCachePort wcsCachePort); - - /** - * 批量删除缓存点管理 - * - * @param ids 需要删除的缓存点管理主键集合 - * @return 结果 - */ - public int deleteWcsCachePortByIds(Long[] ids); - - /** - * 删除缓存点管理信息 - * - * @param id 缓存点管理主键 - * @return 结果 - */ - public int deleteWcsCachePortById(Long id); -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/service/impl/WcsCachePortServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/service/impl/WcsCachePortServiceImpl.java deleted file mode 100644 index b47e80e..0000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cachePort/service/impl/WcsCachePortServiceImpl.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.ruoyi.bas.cachePort.service.impl; - -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.ruoyi.bas.cachePort.mapper.WcsCachePortMapper; -import com.ruoyi.bas.cachePort.domain.WcsCachePort; -import com.ruoyi.bas.cachePort.service.IWcsCachePortService; - -/** - * 缓存点管理Service业务层处理 - * - * @author ruoyi - * @date 2025-06-11 - */ -@Service -public class WcsCachePortServiceImpl implements IWcsCachePortService -{ - @Autowired - private WcsCachePortMapper wcsCachePortMapper; - - /** - * 查询缓存点管理 - * - * @param id 缓存点管理主键 - * @return 缓存点管理 - */ - @Override - public WcsCachePort selectWcsCachePortById(Long id) - { - return wcsCachePortMapper.selectWcsCachePortById(id); - } - - /** - * 查询缓存点管理列表 - * - * @param wcsCachePort 缓存点管理 - * @return 缓存点管理 - */ - @Override - public List selectWcsCachePortList(WcsCachePort wcsCachePort) - { - return wcsCachePortMapper.selectWcsCachePortList(wcsCachePort); - } - - /** - * 新增缓存点管理 - * - * @param wcsCachePort 缓存点管理 - * @return 结果 - */ - @Override - public int insertWcsCachePort(WcsCachePort wcsCachePort) - { - return wcsCachePortMapper.insertWcsCachePort(wcsCachePort); - } - - /** - * 修改缓存点管理 - * - * @param wcsCachePort 缓存点管理 - * @return 结果 - */ - @Override - public int updateWcsCachePort(WcsCachePort wcsCachePort) - { - return wcsCachePortMapper.updateWcsCachePort(wcsCachePort); - } - - /** - * 批量删除缓存点管理 - * - * @param ids 需要删除的缓存点管理主键 - * @return 结果 - */ - @Override - public int deleteWcsCachePortByIds(Long[] ids) - { - return wcsCachePortMapper.deleteWcsCachePortByIds(ids); - } - - /** - * 删除缓存点管理信息 - * - * @param id 缓存点管理主键 - * @return 结果 - */ - @Override - public int deleteWcsCachePortById(Long id) - { - return wcsCachePortMapper.deleteWcsCachePortById(id); - } -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/agv/controller/AgvQueueFinishController.java b/ruoyi-admin/src/main/java/com/ruoyi/device/agv/controller/AgvQueueFinishController.java index ef7f4ad..b9ecdd9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/agv/controller/AgvQueueFinishController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/agv/controller/AgvQueueFinishController.java @@ -25,7 +25,7 @@ import com.ruoyi.common.core.page.TableDataInfo; * agv历史队列Controller * * @author ruoyi - * @date 2025-07-03 + * @date 2025-07-30 */ @RestController @RequestMapping("/agv/queueFinish") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/agv/domain/AgvQueueFinish.java b/ruoyi-admin/src/main/java/com/ruoyi/device/agv/domain/AgvQueueFinish.java index b6cdb6e..6f430f2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/agv/domain/AgvQueueFinish.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/agv/domain/AgvQueueFinish.java @@ -9,7 +9,7 @@ import com.ruoyi.common.core.domain.BaseEntity; * agv历史队列对象 agv_queue_finish * * @author ruoyi - * @date 2025-07-03 + * @date 2025-07-30 */ public class AgvQueueFinish extends BaseEntity { @@ -18,8 +18,8 @@ public class AgvQueueFinish extends BaseEntity /** 请求编号 */ private String reqCode; - /** 请求时间截 yyyy-MM-dd HH:mm:ss */ - @Excel(name = "请求时间截 yyyy-MM-dd HH:mm:ss") + /** 请求时间 */ + @Excel(name = "请求时间") private String reqTime; /** 起点 */ @@ -62,8 +62,8 @@ public class AgvQueueFinish extends BaseEntity @Excel(name = "继续请求") private String request; - /** 结束时间 yyyy-MM-dd HH:mm:ss */ - @Excel(name = "结束时间 yyyy-MM-dd HH:mm:ss") + /** 结束时间 */ + @Excel(name = "结束时间") private String finishTime; /** wms托盘码/容器码 */ @@ -74,6 +74,18 @@ public class AgvQueueFinish extends BaseEntity @Excel(name = "wms任务号") private String wmsTaskNo; + /** 任务单号 */ + @Excel(name = "任务单号") + private String taskCode; + + /** 任务状态 */ + @Excel(name = "任务状态") + private String status; + + /** wms任务类型 */ + @Excel(name = "wms任务类型") + private String wmsTaskType; + public void setReqCode(String reqCode) { this.reqCode = reqCode; @@ -224,6 +236,36 @@ public class AgvQueueFinish extends BaseEntity return wmsTaskNo; } + public void setTaskCode(String taskCode) + { + this.taskCode = taskCode; + } + + public String getTaskCode() + { + return taskCode; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + public void setWmsTaskType(String wmsTaskType) + { + this.wmsTaskType = wmsTaskType; + } + + public String getWmsTaskType() + { + return wmsTaskType; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -242,6 +284,9 @@ public class AgvQueueFinish extends BaseEntity .append("finishTime", getFinishTime()) .append("wmsTraycode", getWmsTraycode()) .append("wmsTaskNo", getWmsTaskNo()) + .append("taskCode", getTaskCode()) + .append("status", getStatus()) + .append("wmsTaskType", getWmsTaskType()) .toString(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/agv/mapper/AgvQueueFinishMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/device/agv/mapper/AgvQueueFinishMapper.java index d46135c..24e2f9e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/agv/mapper/AgvQueueFinishMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/agv/mapper/AgvQueueFinishMapper.java @@ -7,7 +7,7 @@ import com.ruoyi.device.agv.domain.AgvQueueFinish; * agv历史队列Mapper接口 * * @author ruoyi - * @date 2025-07-03 + * @date 2025-07-30 */ public interface AgvQueueFinishMapper { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/agv/service/IAgvQueueFinishService.java b/ruoyi-admin/src/main/java/com/ruoyi/device/agv/service/IAgvQueueFinishService.java index 448b751..ec39286 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/agv/service/IAgvQueueFinishService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/agv/service/IAgvQueueFinishService.java @@ -7,7 +7,7 @@ import com.ruoyi.device.agv.domain.AgvQueueFinish; * agv历史队列Service接口 * * @author ruoyi - * @date 2025-07-03 + * @date 2025-07-30 */ public interface IAgvQueueFinishService { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/agv/service/impl/AgvQueueFinishServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/device/agv/service/impl/AgvQueueFinishServiceImpl.java index 087f372..c787e7c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/agv/service/impl/AgvQueueFinishServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/agv/service/impl/AgvQueueFinishServiceImpl.java @@ -11,7 +11,7 @@ import com.ruoyi.device.agv.service.IAgvQueueFinishService; * agv历史队列Service业务层处理 * * @author ruoyi - * @date 2025-07-03 + * @date 2025-07-30 */ @Service public class AgvQueueFinishServiceImpl implements IAgvQueueFinishService diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java index 1a7f55e..b71606e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -11,6 +11,7 @@ import com.ruoyi.schedule.scheduleTask.ssj.bs.BsPickSsjTread; import com.ruoyi.schedule.scheduleTask.ssj.js.JsInSsjThread; import com.ruoyi.schedule.scheduleTask.ssj.js.JsOutSsjThread; import com.ruoyi.schedule.scheduleTask.ssj.js.JsPickSsjTread; +import com.ruoyi.schedule.scheduleTask.ssj.monitor.SsjMonitorThread; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -31,6 +32,7 @@ public class ScheduleThread { public CustomThread jsOutSsjThread; public CustomThread bsPickSsjThread; public CustomThread jsPickSsjThread; + public CustomThread ssjMonitorThread; /** * 项目初始化启动 @@ -60,6 +62,9 @@ public class ScheduleThread { bsPickSsjThread = new CustomThread(new Thread(bsPickSsjTread1), bsPickSsjTread1); JsPickSsjTread jsPickSsjTread1 = new JsPickSsjTread(); jsPickSsjThread = new CustomThread(new Thread(jsPickSsjTread1), jsPickSsjTread1); + + SsjMonitorThread ssjMonitorThread1 = new SsjMonitorThread(); + ssjMonitorThread = new CustomThread(new Thread(ssjMonitorThread1), ssjMonitorThread1); } /** @@ -106,6 +111,8 @@ public class ScheduleThread { //剪上出库到位线程调度-wms电子屏交互 //jsPickSsjThread.getThread().start(); + //监控输送机 + ssjMonitorThread.getThread().start(); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java index c8aaa5c..c5c22c1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ssj/PlcRead.java @@ -50,373 +50,6 @@ public class PlcRead implements Runnable { int baseOffset = 0; for (String ssjCode : deviceMap.keySet()) { DeviceSsj ssjDevice = deviceMap.get(ssjCode); - String readAddress = ""; - String writeAddress = ""; - - switch (ssjDevice.getDeviceCode()) { - case "G5011": - // 处理 G5011 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5012": - // 处理 G5012 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5016": - // 处理 G5016 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5017": - // 处理 G5017 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5002": - // 处理 G5002 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5003": - // 处理 G5003 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5007": - // 处理 G5007 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5008": - // 处理 G5008 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3011": - // 处理 G3011 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3012": - // 处理 G3012 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4007": - // 处理 G4007 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4008": - // 处理 G4008 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4016": - // 处理 G4016 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4017": - // 处理 G4017 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4011": - // 处理 G4011 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4012": - // 处理 G4012 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4002": - // 处理 G4002 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4003": - // 处理 G4003 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3002": - // 处理 G3002 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3003": - // 处理 G3003 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2002": - // 处理 G2002 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2003": - // 处理 G2003 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1011": - // 处理 G1011 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3016": - // 处理 G3016 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3017": - // 处理 G3017 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3007": - // 处理 G3007 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3008": - // 处理 G3008 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1007": - // 处理 G1007 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1008": - // 处理 G1008 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1005": - // 处理 G1005 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1001": - // 处理 G1001 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1002": - // 处理 G1002 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2010": - // 处理 G2010 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2011": - // 处理 G2011 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1003": - // 处理 G1003 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1009": - // 处理 G1009 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2012": - // 处理 G2012 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3009": - // 处理 G3009 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3018": - // 处理 G3018 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4009": - // 处理 G4009 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4018": - // 处理 G4018 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5009": - // 处理 G5009 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5018": - // 处理 G5018 - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5013": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5014": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5015": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5004": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5005": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5006": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4013": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4014": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4015": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4004": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4005": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4006": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1012": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3004": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3005": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3006": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3013": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3014": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3015": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1006": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2004": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2005": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2006": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2007": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2008": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2009": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1004": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G1010": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G2001": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3001": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G3010": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4001": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G4010": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5001": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - case "G5010": - readAddress = "DB501." + baseOffset; - writeAddress = "DB502." + baseOffset; - break; - default: - continue; - } - baseOffset +=step; - - ssjDevice.setPlcDbReadAddress(readAddress); - ssjDevice.setPlcDbWriteAddress(writeAddress); - switch (ssjDevice.getType()) { case "1": readPlcOutSsj(ssjDevice); @@ -439,7 +72,7 @@ public class PlcRead implements Runnable { } catch (InterruptedException e) { // 捕获中断异常,退出循环 Thread.currentThread().interrupt(); // 重新设置中断标志 - break; + return; } catch (Exception e) { log.info("********IP:" + this.ip + " port:" + this.port + "读取数据异常 " + e.getMessage()); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsPickSsjTread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsPickSsjTread.java index fb965a2..4fe5f70 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsPickSsjTread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/bs/BsPickSsjTread.java @@ -81,14 +81,14 @@ public class BsPickSsjTread implements Runnable{ List wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam); if (CollUtil.isNotEmpty(wcsPorts)){ WcsPort wcsPort = wcsPorts.get(0); - if ("0".equals(wcsPort.getStatus())){ + if ("1".equals(wcsPort.getStatus())){ Map param = new HashMap<>(); param.put("taskNo", pickSsjDevice.getTaskNo()); param.put("wmsType", "2"); param.put("pickSsj", pickSsjDevice.getDeviceCode()); RequestLog requestLog = apiService.finishMydoJob(JOB_FINISH_URL, "出库任务到达拣选口", param); if ("1".equals(requestLog.getIsSuccessful())){ - wcsPort.setStatus("1"); + wcsPort.setStatus("2"); wcsPortService.updateWcsPort(wcsPort); }else { log.error("任务失败{}", requestLog.getErrorDetails()); @@ -106,8 +106,8 @@ public class BsPickSsjTread implements Runnable{ List wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam); if (CollUtil.isNotEmpty(wcsPorts)){ WcsPort wcsPort = wcsPorts.get(0); - if ("1".equals(wcsPort.getStatus())){ - wcsPort.setStatus("0"); + if ("2".equals(wcsPort.getStatus())){ + wcsPort.setStatus("1"); wcsPortService.updateWcsPort(wcsPort); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/js/JsPickSsjTread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/js/JsPickSsjTread.java index d180aa0..bb362d9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/js/JsPickSsjTread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/js/JsPickSsjTread.java @@ -93,14 +93,14 @@ public class JsPickSsjTread implements Runnable { List wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam); if (CollUtil.isNotEmpty(wcsPorts)){ WcsPort wcsPort = wcsPorts.get(0); - if ("0".equals(wcsPort.getStatus())){ + if ("1".equals(wcsPort.getStatus())){ Map param = new HashMap<>(); param.put("taskNo", pickSsjDevice.getTaskNo()); param.put("wmsType", "2"); param.put("pickSsj", pickSsjDevice.getDeviceCode()); RequestLog requestLog = apiService.finishMydoJob(JOB_FINISH_URL, "出库任务到达拣选口", param); if ("1".equals(requestLog.getIsSuccessful())){ - wcsPort.setStatus("1"); + wcsPort.setStatus("2"); wcsPortService.updateWcsPort(wcsPort); }else { log.error("任务失败{}", requestLog.getErrorDetails()); @@ -118,8 +118,8 @@ public class JsPickSsjTread implements Runnable { List wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam); if (CollUtil.isNotEmpty(wcsPorts)){ WcsPort wcsPort = wcsPorts.get(0); - if ("1".equals(wcsPort.getStatus())){ - wcsPort.setStatus("0"); + if ("2".equals(wcsPort.getStatus())){ + wcsPort.setStatus("1"); wcsPortService.updateWcsPort(wcsPort); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/monitor/CarMonitorThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/monitor/CarMonitorThread.java new file mode 100644 index 0000000..54b4c2a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/monitor/CarMonitorThread.java @@ -0,0 +1,95 @@ +package com.ruoyi.schedule.scheduleTask.ssj.monitor; + +import cn.hutool.core.util.ObjUtil; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.device.ssj.domain.DeviceSsj; +import com.ruoyi.device.ssj.service.IDeviceSsjService; +import com.ruoyi.schedule.plcRead.ssj.PlcRead; +import lombok.extern.slf4j.Slf4j; + + +@Slf4j +public class CarMonitorThread implements Runnable { + + + + private IDeviceSsjService deviceSsjService; + public boolean isRun = true; + + + public void init() { + deviceSsjService = SpringUtils.getBean(IDeviceSsjService.class); + log.info("初始化服务 {}", deviceSsjService); + } + + @Override + public void run() { + init(); + while (isRun) { + for (String ssjCode : PlcRead.deviceMap.keySet()) { + try { + DeviceSsj deviceSsj = PlcRead.deviceMap.get(ssjCode); + if (ObjUtil.isNotNull(deviceSsj)){ + switch (deviceSsj.getType()) { + case "1": + monitor1(deviceSsj); + break; + case "2": + monitor2(deviceSsj); + break; + case "3": + monitor3(deviceSsj); + break; + case "4": + monitor4(deviceSsj); + break; + } + }else { + log.error("设备不存在 {}", ssjCode); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + try { + Thread.sleep(1500); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + + + } + + /** + *其他输送机监控 + * @param deviceSsj + */ + private void monitor4(DeviceSsj deviceSsj) { + deviceSsjService.updateDeviceSsj(deviceSsj); + } + + /** + *入库输送机监控 + * @param deviceSsj + */ + private void monitor3(DeviceSsj deviceSsj) { + deviceSsjService.updateDeviceSsj(deviceSsj); + } + + /** + *拣选输送机监控 + * @param deviceSsj + */ + private void monitor2(DeviceSsj deviceSsj) { + deviceSsjService.updateDeviceSsj(deviceSsj); + } + + /** + *出库输送机监控 + * @param deviceSsj + */ + private void monitor1(DeviceSsj deviceSsj) { + deviceSsjService.updateDeviceSsj(deviceSsj); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/monitor/SsjMonitorThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/monitor/SsjMonitorThread.java new file mode 100644 index 0000000..9756cc5 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/ssj/monitor/SsjMonitorThread.java @@ -0,0 +1,106 @@ +package com.ruoyi.schedule.scheduleTask.ssj.monitor; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; +import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskResponse; +import com.ruoyi.api.domain.wcs2wms.MydoJob; +import com.ruoyi.api.service.IApiService; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.device.agv.domain.AgvQueue; +import com.ruoyi.device.agv.service.IAgvQueueService; +import com.ruoyi.device.ssj.domain.DeviceSsj; +import com.ruoyi.device.ssj.service.IDeviceSsjService; +import com.ruoyi.schedule.plcRead.ssj.PlcRead; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + + +@Slf4j +public class SsjMonitorThread implements Runnable { + + + + private IDeviceSsjService deviceSsjService; + public boolean isRun = true; + + + public void init() { + deviceSsjService = SpringUtils.getBean(IDeviceSsjService.class); + log.info("初始化服务 {}", deviceSsjService); + } + + @Override + public void run() { + init(); + while (isRun) { + for (String ssjCode : PlcRead.deviceMap.keySet()) { + try { + DeviceSsj deviceSsj = PlcRead.deviceMap.get(ssjCode); + if (ObjUtil.isNotNull(deviceSsj)){ + switch (deviceSsj.getType()) { + case "1": + monitor1(deviceSsj); + break; + case "2": + monitor2(deviceSsj); + break; + case "3": + monitor3(deviceSsj); + break; + case "4": + monitor4(deviceSsj); + break; + } + }else { + log.error("设备不存在 {}", ssjCode); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + try { + Thread.sleep(1500); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + + + } + + /** + *其他输送机监控 + * @param deviceSsj + */ + private void monitor4(DeviceSsj deviceSsj) { + deviceSsjService.updateDeviceSsj(deviceSsj); + } + + /** + *入库输送机监控 + * @param deviceSsj + */ + private void monitor3(DeviceSsj deviceSsj) { + deviceSsjService.updateDeviceSsj(deviceSsj); + } + + /** + *拣选输送机监控 + * @param deviceSsj + */ + private void monitor2(DeviceSsj deviceSsj) { + deviceSsjService.updateDeviceSsj(deviceSsj); + } + + /** + *出库输送机监控 + * @param deviceSsj + */ + private void monitor1(DeviceSsj deviceSsj) { + deviceSsjService.updateDeviceSsj(deviceSsj); + } +} diff --git a/ruoyi-admin/src/main/resources/mapper/device/AgvQueueFinishMapper.xml b/ruoyi-admin/src/main/resources/mapper/agv/AgvQueueFinishMapper.xml similarity index 85% rename from ruoyi-admin/src/main/resources/mapper/device/AgvQueueFinishMapper.xml rename to ruoyi-admin/src/main/resources/mapper/agv/AgvQueueFinishMapper.xml index 722b506..5de6912 100644 --- a/ruoyi-admin/src/main/resources/mapper/device/AgvQueueFinishMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/agv/AgvQueueFinishMapper.xml @@ -20,10 +20,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + - select req_code, req_time, position_code_1, position_code_2, task_type, ctnr_type, ctnr_code, ctnr_num, task_mode, priority, agv_type, request, finish_time, wms_traycode, wms_task_no from agv_queue_finish + select req_code, req_time, position_code_1, position_code_2, task_type, ctnr_type, ctnr_code, ctnr_num, task_mode, priority, agv_type, request, finish_time, wms_traycode, wms_task_no, task_code, status, wms_task_type from agv_queue_finish @@ -69,6 +75,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" finish_time, wms_traycode, wms_task_no, + task_code, + status, + wms_task_type, #{reqCode}, @@ -86,6 +95,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{finishTime}, #{wmsTraycode}, #{wmsTaskNo}, + #{taskCode}, + #{status}, + #{wmsTaskType}, @@ -106,6 +118,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" finish_time = #{finishTime}, wms_traycode = #{wmsTraycode}, wms_task_no = #{wmsTaskNo}, + task_code = #{taskCode}, + status = #{status}, + wms_task_type = #{wmsTaskType}, where req_code = #{reqCode} diff --git a/ruoyi-admin/src/main/resources/mapper/bas/WcsCachePortMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/WcsCachePortMapper.xml deleted file mode 100644 index 467a4be..0000000 --- a/ruoyi-admin/src/main/resources/mapper/bas/WcsCachePortMapper.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - select id, port_code, port_name, port_type, port_region, spare1, spare2, spare3, status from wcs_cache_port - - - - - - - - insert into wcs_cache_port - - port_code, - port_name, - port_type, - port_region, - spare1, - spare2, - spare3, - status, - - - #{portCode}, - #{portName}, - #{portType}, - #{portRegion}, - #{spare1}, - #{spare2}, - #{spare3}, - #{status}, - - - - - update wcs_cache_port - - port_code = #{portCode}, - port_name = #{portName}, - port_type = #{portType}, - port_region = #{portRegion}, - spare1 = #{spare1}, - spare2 = #{spare2}, - spare3 = #{spare3}, - status = #{status}, - - where id = #{id} - - - - delete from wcs_cache_port where id = #{id} - - - - delete from wcs_cache_port where id in - - #{id} - - - \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml index f353205..5b79323 100644 --- a/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/device/DeviceSsjMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -27,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - +