页面展示修改

This commit is contained in:
liuhanqing
2025-07-30 11:37:24 +08:00
parent a0f975e6fa
commit 405a8771d8
26 changed files with 611 additions and 1377 deletions

View File

@@ -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<WcsCachePort> 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<WcsCachePort> list = wcsCachePortService.selectWcsCachePortList(wcsCachePort);
ExcelUtil<WcsCachePort> util = new ExcelUtil<WcsCachePort>(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));
}
}

View File

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

View File

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

View File

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

View File

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

View File

@@ -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")

View File

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

View File

@@ -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
{

View File

@@ -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
{

View File

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

View File

@@ -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> jsOutSsjThread;
public CustomThread<BsPickSsjTread> bsPickSsjThread;
public CustomThread<JsPickSsjTread> jsPickSsjThread;
public CustomThread<SsjMonitorThread> ssjMonitorThread;
/**
* 项目初始化启动
@@ -60,6 +62,9 @@ public class ScheduleThread {
bsPickSsjThread = new CustomThread<BsPickSsjTread>(new Thread(bsPickSsjTread1), bsPickSsjTread1);
JsPickSsjTread jsPickSsjTread1 = new JsPickSsjTread();
jsPickSsjThread = new CustomThread<JsPickSsjTread>(new Thread(jsPickSsjTread1), jsPickSsjTread1);
SsjMonitorThread ssjMonitorThread1 = new SsjMonitorThread();
ssjMonitorThread = new CustomThread<SsjMonitorThread>(new Thread(ssjMonitorThread1), ssjMonitorThread1);
}
/**
@@ -106,6 +111,8 @@ public class ScheduleThread {
//剪上出库到位线程调度-wms电子屏交互
//jsPickSsjThread.getThread().start();
//监控输送机
ssjMonitorThread.getThread().start();
}
/**

View File

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

View File

@@ -81,14 +81,14 @@ public class BsPickSsjTread implements Runnable{
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam);
if (CollUtil.isNotEmpty(wcsPorts)){
WcsPort wcsPort = wcsPorts.get(0);
if ("0".equals(wcsPort.getStatus())){
if ("1".equals(wcsPort.getStatus())){
Map<String, Object> 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<WcsPort> 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);
}

View File

@@ -93,14 +93,14 @@ public class JsPickSsjTread implements Runnable {
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam);
if (CollUtil.isNotEmpty(wcsPorts)){
WcsPort wcsPort = wcsPorts.get(0);
if ("0".equals(wcsPort.getStatus())){
if ("1".equals(wcsPort.getStatus())){
Map<String, Object> 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<WcsPort> 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);
}

View File

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

View File

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

View File

@@ -20,10 +20,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="finishTime" column="finish_time" />
<result property="wmsTraycode" column="wms_traycode" />
<result property="wmsTaskNo" column="wms_task_no" />
<result property="taskCode" column="task_code" />
<result property="status" column="status" />
<result property="wmsTaskType" column="wms_task_type" />
</resultMap>
<sql id="selectAgvQueueFinishVo">
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
</sql>
<select id="selectAgvQueueFinishList" parameterType="AgvQueueFinish" resultMap="AgvQueueFinishResult">
@@ -43,6 +46,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="finishTime != null and finishTime != ''"> and finish_time = #{finishTime}</if>
<if test="wmsTraycode != null and wmsTraycode != ''"> and wms_traycode = #{wmsTraycode}</if>
<if test="wmsTaskNo != null and wmsTaskNo != ''"> and wms_task_no = #{wmsTaskNo}</if>
<if test="taskCode != null and taskCode != ''"> and task_code = #{taskCode}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
<if test="wmsTaskType != null and wmsTaskType != ''"> and wms_task_type = #{wmsTaskType}</if>
</where>
</select>
@@ -69,6 +75,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="finishTime != null">finish_time,</if>
<if test="wmsTraycode != null">wms_traycode,</if>
<if test="wmsTaskNo != null">wms_task_no,</if>
<if test="taskCode != null">task_code,</if>
<if test="status != null">status,</if>
<if test="wmsTaskType != null">wms_task_type,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="reqCode != null">#{reqCode},</if>
@@ -86,6 +95,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="finishTime != null">#{finishTime},</if>
<if test="wmsTraycode != null">#{wmsTraycode},</if>
<if test="wmsTaskNo != null">#{wmsTaskNo},</if>
<if test="taskCode != null">#{taskCode},</if>
<if test="status != null">#{status},</if>
<if test="wmsTaskType != null">#{wmsTaskType},</if>
</trim>
</insert>
@@ -106,6 +118,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="finishTime != null">finish_time = #{finishTime},</if>
<if test="wmsTraycode != null">wms_traycode = #{wmsTraycode},</if>
<if test="wmsTaskNo != null">wms_task_no = #{wmsTaskNo},</if>
<if test="taskCode != null">task_code = #{taskCode},</if>
<if test="status != null">status = #{status},</if>
<if test="wmsTaskType != null">wms_task_type = #{wmsTaskType},</if>
</trim>
where req_code = #{reqCode}
</update>

View File

@@ -1,91 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.bas.cachePort.mapper.WcsCachePortMapper">
<resultMap type="WcsCachePort" id="WcsCachePortResult">
<result property="id" column="id" />
<result property="portCode" column="port_code" />
<result property="portName" column="port_name" />
<result property="portType" column="port_type" />
<result property="portRegion" column="port_region" />
<result property="spare1" column="spare1" />
<result property="spare2" column="spare2" />
<result property="spare3" column="spare3" />
<result property="status" column="status" />
</resultMap>
<sql id="selectWcsCachePortVo">
select id, port_code, port_name, port_type, port_region, spare1, spare2, spare3, status from wcs_cache_port
</sql>
<select id="selectWcsCachePortList" parameterType="WcsCachePort" resultMap="WcsCachePortResult">
<include refid="selectWcsCachePortVo"/>
<where>
<if test="portCode != null and portCode != ''"> and port_code = #{portCode}</if>
<if test="portName != null and portName != ''"> and port_name like concat('%', #{portName}, '%')</if>
<if test="portType != null and portType != ''"> and port_type = #{portType}</if>
<if test="portRegion != null and portRegion != ''"> and port_region = #{portRegion}</if>
<if test="spare1 != null and spare1 != ''"> and spare1 = #{spare1}</if>
<if test="spare2 != null and spare2 != ''"> and spare2 = #{spare2}</if>
<if test="spare3 != null and spare3 != ''"> and spare3 = #{spare3}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
</where>
</select>
<select id="selectWcsCachePortById" parameterType="Long" resultMap="WcsCachePortResult">
<include refid="selectWcsCachePortVo"/>
where id = #{id}
</select>
<insert id="insertWcsCachePort" parameterType="WcsCachePort" useGeneratedKeys="true" keyProperty="id">
insert into wcs_cache_port
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="portCode != null">port_code,</if>
<if test="portName != null">port_name,</if>
<if test="portType != null">port_type,</if>
<if test="portRegion != null">port_region,</if>
<if test="spare1 != null">spare1,</if>
<if test="spare2 != null">spare2,</if>
<if test="spare3 != null">spare3,</if>
<if test="status != null">status,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="portCode != null">#{portCode},</if>
<if test="portName != null">#{portName},</if>
<if test="portType != null">#{portType},</if>
<if test="portRegion != null">#{portRegion},</if>
<if test="spare1 != null">#{spare1},</if>
<if test="spare2 != null">#{spare2},</if>
<if test="spare3 != null">#{spare3},</if>
<if test="status != null">#{status},</if>
</trim>
</insert>
<update id="updateWcsCachePort" parameterType="WcsCachePort">
update wcs_cache_port
<trim prefix="SET" suffixOverrides=",">
<if test="portCode != null">port_code = #{portCode},</if>
<if test="portName != null">port_name = #{portName},</if>
<if test="portType != null">port_type = #{portType},</if>
<if test="portRegion != null">port_region = #{portRegion},</if>
<if test="spare1 != null">spare1 = #{spare1},</if>
<if test="spare2 != null">spare2 = #{spare2},</if>
<if test="spare3 != null">spare3 = #{spare3},</if>
<if test="status != null">status = #{status},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteWcsCachePortById" parameterType="Long">
delete from wcs_cache_port where id = #{id}
</delete>
<delete id="deleteWcsCachePortByIds" parameterType="String">
delete from wcs_cache_port where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.device.ssj.mapper.DeviceSsjMapper">
<resultMap type="DeviceSsj" id="DeviceSsjResult">
<result property="id" column="id" />
<result property="deviceCode " column="device_code " />
@@ -27,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectDeviceSsjList" parameterType="DeviceSsj" resultMap="DeviceSsjResult">
<include refid="selectDeviceSsjVo"/>
<where>
<where>
<if test="deviceCode != null and deviceCode != ''"> and device_code = #{deviceCode }</if>
<if test="name != null and name != ''"> and name = #{name }</if>
<if test="type != null and type != ''"> and type = #{type}</if>
@@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskNo != null and taskNo != ''"> and task_no = #{taskNo}</if>
</where>
</select>
<select id="selectDeviceSsjById" parameterType="Long" resultMap="DeviceSsjResult">
<include refid="selectDeviceSsjVo"/>
where id = #{id}
@@ -85,14 +85,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateDeviceSsj" parameterType="DeviceSsj">
update device_ssj
<trim prefix="SET" suffixOverrides=",">
<if test="deviceCode != null">device_code = #{deviceCode },</if>
<if test="name != null">name = #{name },</if>
<if test="type != null">type = #{type},</if>
<if test="ipAddress != null">ip_address = #{ipAddress},</if>
<if test="plcDbReadAddress != null">plc_db_read_address = #{plcDbReadAddress},</if>
<if test="isActive != null">is_active = #{isActive},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="plcDbWriteAddress != null">plc_db_write_address = #{plcDbWriteAddress},</if>
<if test="rkqq != null">rkqq = #{rkqq},</if>
<if test="kx != null">kx = #{kx},</if>
<if test="dw != null">dw = #{dw},</if>
@@ -107,9 +99,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteDeviceSsjByIds" parameterType="String">
delete from device_ssj where id in
delete from device_ssj where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>
</mapper>