页面展示修改

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 * agv历史队列Controller
* *
* @author ruoyi * @author ruoyi
* @date 2025-07-03 * @date 2025-07-30
*/ */
@RestController @RestController
@RequestMapping("/agv/queueFinish") @RequestMapping("/agv/queueFinish")

View File

@@ -9,7 +9,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
* agv历史队列对象 agv_queue_finish * agv历史队列对象 agv_queue_finish
* *
* @author ruoyi * @author ruoyi
* @date 2025-07-03 * @date 2025-07-30
*/ */
public class AgvQueueFinish extends BaseEntity public class AgvQueueFinish extends BaseEntity
{ {
@@ -18,8 +18,8 @@ public class AgvQueueFinish extends BaseEntity
/** 请求编号 */ /** 请求编号 */
private String reqCode; private String reqCode;
/** 请求时间截 yyyy-MM-dd HH:mm:ss */ /** 请求时间 */
@Excel(name = "请求时间截 yyyy-MM-dd HH:mm:ss") @Excel(name = "请求时间")
private String reqTime; private String reqTime;
/** 起点 */ /** 起点 */
@@ -62,8 +62,8 @@ public class AgvQueueFinish extends BaseEntity
@Excel(name = "继续请求") @Excel(name = "继续请求")
private String request; private String request;
/** 结束时间 yyyy-MM-dd HH:mm:ss */ /** 结束时间 */
@Excel(name = "结束时间 yyyy-MM-dd HH:mm:ss") @Excel(name = "结束时间")
private String finishTime; private String finishTime;
/** wms托盘码/容器码 */ /** wms托盘码/容器码 */
@@ -74,6 +74,18 @@ public class AgvQueueFinish extends BaseEntity
@Excel(name = "wms任务号") @Excel(name = "wms任务号")
private String wmsTaskNo; 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) public void setReqCode(String reqCode)
{ {
this.reqCode = reqCode; this.reqCode = reqCode;
@@ -224,6 +236,36 @@ public class AgvQueueFinish extends BaseEntity
return wmsTaskNo; 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 @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -242,6 +284,9 @@ public class AgvQueueFinish extends BaseEntity
.append("finishTime", getFinishTime()) .append("finishTime", getFinishTime())
.append("wmsTraycode", getWmsTraycode()) .append("wmsTraycode", getWmsTraycode())
.append("wmsTaskNo", getWmsTaskNo()) .append("wmsTaskNo", getWmsTaskNo())
.append("taskCode", getTaskCode())
.append("status", getStatus())
.append("wmsTaskType", getWmsTaskType())
.toString(); .toString();
} }
} }

View File

@@ -7,7 +7,7 @@ import com.ruoyi.device.agv.domain.AgvQueueFinish;
* agv历史队列Mapper接口 * agv历史队列Mapper接口
* *
* @author ruoyi * @author ruoyi
* @date 2025-07-03 * @date 2025-07-30
*/ */
public interface AgvQueueFinishMapper public interface AgvQueueFinishMapper
{ {

View File

@@ -7,7 +7,7 @@ import com.ruoyi.device.agv.domain.AgvQueueFinish;
* agv历史队列Service接口 * agv历史队列Service接口
* *
* @author ruoyi * @author ruoyi
* @date 2025-07-03 * @date 2025-07-30
*/ */
public interface IAgvQueueFinishService public interface IAgvQueueFinishService
{ {

View File

@@ -11,7 +11,7 @@ import com.ruoyi.device.agv.service.IAgvQueueFinishService;
* agv历史队列Service业务层处理 * agv历史队列Service业务层处理
* *
* @author ruoyi * @author ruoyi
* @date 2025-07-03 * @date 2025-07-30
*/ */
@Service @Service
public class AgvQueueFinishServiceImpl implements IAgvQueueFinishService 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.JsInSsjThread;
import com.ruoyi.schedule.scheduleTask.ssj.js.JsOutSsjThread; import com.ruoyi.schedule.scheduleTask.ssj.js.JsOutSsjThread;
import com.ruoyi.schedule.scheduleTask.ssj.js.JsPickSsjTread; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -31,6 +32,7 @@ public class ScheduleThread {
public CustomThread<JsOutSsjThread> jsOutSsjThread; public CustomThread<JsOutSsjThread> jsOutSsjThread;
public CustomThread<BsPickSsjTread> bsPickSsjThread; public CustomThread<BsPickSsjTread> bsPickSsjThread;
public CustomThread<JsPickSsjTread> jsPickSsjThread; public CustomThread<JsPickSsjTread> jsPickSsjThread;
public CustomThread<SsjMonitorThread> ssjMonitorThread;
/** /**
* 项目初始化启动 * 项目初始化启动
@@ -60,6 +62,9 @@ public class ScheduleThread {
bsPickSsjThread = new CustomThread<BsPickSsjTread>(new Thread(bsPickSsjTread1), bsPickSsjTread1); bsPickSsjThread = new CustomThread<BsPickSsjTread>(new Thread(bsPickSsjTread1), bsPickSsjTread1);
JsPickSsjTread jsPickSsjTread1 = new JsPickSsjTread(); JsPickSsjTread jsPickSsjTread1 = new JsPickSsjTread();
jsPickSsjThread = new CustomThread<JsPickSsjTread>(new Thread(jsPickSsjTread1), jsPickSsjTread1); 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电子屏交互 //剪上出库到位线程调度-wms电子屏交互
//jsPickSsjThread.getThread().start(); //jsPickSsjThread.getThread().start();
//监控输送机
ssjMonitorThread.getThread().start();
} }
/** /**

View File

@@ -50,373 +50,6 @@ public class PlcRead implements Runnable {
int baseOffset = 0; int baseOffset = 0;
for (String ssjCode : deviceMap.keySet()) { for (String ssjCode : deviceMap.keySet()) {
DeviceSsj ssjDevice = deviceMap.get(ssjCode); 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()) { switch (ssjDevice.getType()) {
case "1": case "1":
readPlcOutSsj(ssjDevice); readPlcOutSsj(ssjDevice);
@@ -439,7 +72,7 @@ public class PlcRead implements Runnable {
} catch (InterruptedException e) { } catch (InterruptedException e) {
// 捕获中断异常,退出循环 // 捕获中断异常,退出循环
Thread.currentThread().interrupt(); // 重新设置中断标志 Thread.currentThread().interrupt(); // 重新设置中断标志
break; return;
} catch (Exception e) { } catch (Exception e) {
log.info("********IP:" + this.ip + " port:" + this.port + "读取数据异常 " + e.getMessage()); 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); List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam);
if (CollUtil.isNotEmpty(wcsPorts)){ if (CollUtil.isNotEmpty(wcsPorts)){
WcsPort wcsPort = wcsPorts.get(0); WcsPort wcsPort = wcsPorts.get(0);
if ("0".equals(wcsPort.getStatus())){ if ("1".equals(wcsPort.getStatus())){
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("taskNo", pickSsjDevice.getTaskNo()); param.put("taskNo", pickSsjDevice.getTaskNo());
param.put("wmsType", "2"); param.put("wmsType", "2");
param.put("pickSsj", pickSsjDevice.getDeviceCode()); param.put("pickSsj", pickSsjDevice.getDeviceCode());
RequestLog requestLog = apiService.finishMydoJob(JOB_FINISH_URL, "出库任务到达拣选口", param); RequestLog requestLog = apiService.finishMydoJob(JOB_FINISH_URL, "出库任务到达拣选口", param);
if ("1".equals(requestLog.getIsSuccessful())){ if ("1".equals(requestLog.getIsSuccessful())){
wcsPort.setStatus("1"); wcsPort.setStatus("2");
wcsPortService.updateWcsPort(wcsPort); wcsPortService.updateWcsPort(wcsPort);
}else { }else {
log.error("任务失败{}", requestLog.getErrorDetails()); log.error("任务失败{}", requestLog.getErrorDetails());
@@ -106,8 +106,8 @@ public class BsPickSsjTread implements Runnable{
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam); List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam);
if (CollUtil.isNotEmpty(wcsPorts)){ if (CollUtil.isNotEmpty(wcsPorts)){
WcsPort wcsPort = wcsPorts.get(0); WcsPort wcsPort = wcsPorts.get(0);
if ("1".equals(wcsPort.getStatus())){ if ("2".equals(wcsPort.getStatus())){
wcsPort.setStatus("0"); wcsPort.setStatus("1");
wcsPortService.updateWcsPort(wcsPort); wcsPortService.updateWcsPort(wcsPort);
} }

View File

@@ -93,14 +93,14 @@ public class JsPickSsjTread implements Runnable {
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam); List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam);
if (CollUtil.isNotEmpty(wcsPorts)){ if (CollUtil.isNotEmpty(wcsPorts)){
WcsPort wcsPort = wcsPorts.get(0); WcsPort wcsPort = wcsPorts.get(0);
if ("0".equals(wcsPort.getStatus())){ if ("1".equals(wcsPort.getStatus())){
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("taskNo", pickSsjDevice.getTaskNo()); param.put("taskNo", pickSsjDevice.getTaskNo());
param.put("wmsType", "2"); param.put("wmsType", "2");
param.put("pickSsj", pickSsjDevice.getDeviceCode()); param.put("pickSsj", pickSsjDevice.getDeviceCode());
RequestLog requestLog = apiService.finishMydoJob(JOB_FINISH_URL, "出库任务到达拣选口", param); RequestLog requestLog = apiService.finishMydoJob(JOB_FINISH_URL, "出库任务到达拣选口", param);
if ("1".equals(requestLog.getIsSuccessful())){ if ("1".equals(requestLog.getIsSuccessful())){
wcsPort.setStatus("1"); wcsPort.setStatus("2");
wcsPortService.updateWcsPort(wcsPort); wcsPortService.updateWcsPort(wcsPort);
}else { }else {
log.error("任务失败{}", requestLog.getErrorDetails()); log.error("任务失败{}", requestLog.getErrorDetails());
@@ -118,8 +118,8 @@ public class JsPickSsjTread implements Runnable {
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam); List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPortParam);
if (CollUtil.isNotEmpty(wcsPorts)){ if (CollUtil.isNotEmpty(wcsPorts)){
WcsPort wcsPort = wcsPorts.get(0); WcsPort wcsPort = wcsPorts.get(0);
if ("1".equals(wcsPort.getStatus())){ if ("2".equals(wcsPort.getStatus())){
wcsPort.setStatus("0"); wcsPort.setStatus("1");
wcsPortService.updateWcsPort(wcsPort); 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="finishTime" column="finish_time" />
<result property="wmsTraycode" column="wms_traycode" /> <result property="wmsTraycode" column="wms_traycode" />
<result property="wmsTaskNo" column="wms_task_no" /> <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> </resultMap>
<sql id="selectAgvQueueFinishVo"> <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> </sql>
<select id="selectAgvQueueFinishList" parameterType="AgvQueueFinish" resultMap="AgvQueueFinishResult"> <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="finishTime != null and finishTime != ''"> and finish_time = #{finishTime}</if>
<if test="wmsTraycode != null and wmsTraycode != ''"> and wms_traycode = #{wmsTraycode}</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="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> </where>
</select> </select>
@@ -69,6 +75,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="finishTime != null">finish_time,</if> <if test="finishTime != null">finish_time,</if>
<if test="wmsTraycode != null">wms_traycode,</if> <if test="wmsTraycode != null">wms_traycode,</if>
<if test="wmsTaskNo != null">wms_task_no,</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>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="reqCode != null">#{reqCode},</if> <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="finishTime != null">#{finishTime},</if>
<if test="wmsTraycode != null">#{wmsTraycode},</if> <if test="wmsTraycode != null">#{wmsTraycode},</if>
<if test="wmsTaskNo != null">#{wmsTaskNo},</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> </trim>
</insert> </insert>
@@ -106,6 +118,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="finishTime != null">finish_time = #{finishTime},</if> <if test="finishTime != null">finish_time = #{finishTime},</if>
<if test="wmsTraycode != null">wms_traycode = #{wmsTraycode},</if> <if test="wmsTraycode != null">wms_traycode = #{wmsTraycode},</if>
<if test="wmsTaskNo != null">wms_task_no = #{wmsTaskNo},</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> </trim>
where req_code = #{reqCode} where req_code = #{reqCode}
</update> </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

@@ -85,14 +85,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateDeviceSsj" parameterType="DeviceSsj"> <update id="updateDeviceSsj" parameterType="DeviceSsj">
update device_ssj update device_ssj
<trim prefix="SET" suffixOverrides=","> <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="rkqq != null">rkqq = #{rkqq},</if>
<if test="kx != null">kx = #{kx},</if> <if test="kx != null">kx = #{kx},</if>
<if test="dw != null">dw = #{dw},</if> <if test="dw != null">dw = #{dw},</if>

View File

@@ -1,44 +0,0 @@
import request from '@/utils/request'
// 查询缓存点管理列表
export function listCachePort(query) {
return request({
url: '/bas/cachePort/list',
method: 'get',
params: query
})
}
// 查询缓存点管理详细
export function getCachePort(id) {
return request({
url: '/bas/cachePort/' + id,
method: 'get'
})
}
// 新增缓存点管理
export function addCachePort(data) {
return request({
url: '/bas/cachePort',
method: 'post',
data: data
})
}
// 修改缓存点管理
export function updateCachePort(data) {
return request({
url: '/bas/cachePort',
method: 'put',
data: data
})
}
// 删除缓存点管理
export function delCachePort(id) {
return request({
url: '/bas/cachePort/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询流利架位置管理列表
export function listFluent(query) {
return request({
url: '/bas/fluent/list',
method: 'get',
params: query
})
}
// 查询流利架位置管理详细
export function getFluent(id) {
return request({
url: '/bas/fluent/' + id,
method: 'get'
})
}
// 新增流利架位置管理
export function addFluent(data) {
return request({
url: '/bas/fluent',
method: 'post',
data: data
})
}
// 修改流利架位置管理
export function updateFluent(data) {
return request({
url: '/bas/fluent',
method: 'put',
data: data
})
}
// 删除流利架位置管理
export function delFluent(id) {
return request({
url: '/bas/fluent/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询输送机列表
export function listSsj(query) {
return request({
url: '/device/ssj/list',
method: 'get',
params: query
})
}
// 查询输送机详细
export function getSsj(id) {
return request({
url: '/device/ssj/' + id,
method: 'get'
})
}
// 新增输送机
export function addSsj(data) {
return request({
url: '/device/ssj',
method: 'post',
data: data
})
}
// 修改输送机
export function updateSsj(data) {
return request({
url: '/device/ssj',
method: 'put',
data: data
})
}
// 删除输送机
export function delSsj(id) {
return request({
url: '/device/ssj/' + id,
method: 'delete'
})
}

View File

@@ -1,81 +1,16 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="请求时间截" prop="reqTime"> <el-form-item label="任务单号" prop="taskCode">
<el-date-picker clearable
v-model="queryParams.reqTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请输入请求时间截">
</el-date-picker>
</el-form-item>
<el-form-item label="起点 " prop="positionCode1">
<el-input <el-input
v-model="queryParams.positionCode1" v-model="queryParams.taskCode"
placeholder="请输入起点 " placeholder="请输入任务单号 "
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="终点" prop="positionCode2">
<el-input
v-model="queryParams.positionCode2"
placeholder="请输入终点"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="容器编号" prop="ctnrCode">
<el-input
v-model="queryParams.ctnrCode"
placeholder="请输入容器编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="容器数量" prop="ctnrNum">
<el-input
v-model="queryParams.ctnrNum"
placeholder="请输入容器数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="任务模式" prop="taskMode">
<el-input
v-model="queryParams.taskMode"
placeholder="请输入任务模式"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="优先级" prop="priority">
<el-input
v-model="queryParams.priority"
placeholder="请输入优先级"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="继续请求" prop="request">
<el-input
v-model="queryParams.request"
placeholder="请输入继续请求"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="容器码" prop="wmsTraycode">
<el-form-item label="结束时间" prop="finishTime">
<el-date-picker clearable
v-model="queryParams.finishTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请输入结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="wms托盘码/容器码" prop="wmsTraycode">
<el-input <el-input
v-model="queryParams.wmsTraycode" v-model="queryParams.wmsTraycode"
placeholder="请输入wms托盘码/容器码" placeholder="请输入wms托盘码/容器码"
@@ -91,75 +26,62 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="wms任务类型" prop="wmsTaskType">
<el-select v-model="queryParams.wmsTaskType" placeholder="请选择wms任务类型" clearable>
<el-option
v-for="dict in dict.type.wms_task_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="任务状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable>
<el-option
v-for="dict in dict.type.task_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['agv:queue:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['agv:queue:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['agv:queue:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['agv:queue:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="queueList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="queueList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="请求编号" align="left" prop="reqCode" /> <el-table-column label="请求编号" align="center" prop="reqCode" />
<el-table-column label="请求时间截" align="left" prop="reqTime" /> <el-table-column label="请求时间" align="center" prop="reqTime" />
<el-table-column label="起点 " align="left" prop="positionCode1" /> <el-table-column label="起点 " align="center" prop="positionCode1" />
<el-table-column label="终点" align="left" prop="positionCode2" /> <el-table-column label="终点" align="center" prop="positionCode2" />
<el-table-column label="任务类型 " align="left" prop="taskType" /> <el-table-column label="任务类型 " align="center" prop="taskType" />
<el-table-column label="容器类型" align="left" prop="ctnrType" /> <el-table-column label="容器类型" align="center" prop="ctnrType" />
<el-table-column label="容器编号" align="left" prop="ctnrCode" /> <el-table-column label="容器编号" align="center" prop="ctnrCode" />
<el-table-column label="容器数量" align="left" prop="ctnrNum" /> <el-table-column label="容器数量" align="center" prop="ctnrNum" />
<el-table-column label="任务模式" align="left" prop="taskMode" /> <el-table-column label="任务模式" align="center" prop="taskMode" />
<el-table-column label="优先级" align="left" prop="priority" /> <el-table-column label="优先级" align="center" prop="priority" />
<el-table-column label="设备类型" align="left" prop="agvType" /> <el-table-column label="设备类型" align="center" prop="agvType" />
<el-table-column label="继续请求" align="left" prop="request" /> <el-table-column label="继续请求" align="center" prop="request" />
<el-table-column label="结束时间" align="left" prop="finishTime" /> <el-table-column label="结束时间 " align="center" prop="finishTime" />
<el-table-column label="wms托盘码/容器码" align="left" prop="wmsTraycode" /> <el-table-column label="wms托盘码/容器码" align="center" prop="wmsTraycode" />
<el-table-column label="wms任务号" align="left" prop="wmsTaskNo" /> <el-table-column label="wms任务号" align="center" prop="wmsTaskNo" />
<el-table-column label="任务单号" align="center" prop="taskCode" />
<el-table-column label="任务状态" align="center" prop="status" >
<template slot-scope="scope">
<dict-tag :options="dict.type.task_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="wms任务类型" align="center" prop="wmsTaskType">
<template slot-scope="scope">
<dict-tag :options="dict.type.wms_task_type" :value="scope.row.wmsTaskType"/>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@@ -191,8 +113,8 @@
<!-- 添加或修改AGV任务队列对话框 --> <!-- 添加或修改AGV任务队列对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="请求时间截 yyyy-MM-dd HH:mm:ss" prop="reqTime"> <el-form-item label="请求时间" prop="reqTime">
<el-input v-model="form.reqTime" placeholder="请输入请求时间截" /> <el-input v-model="form.reqTime" placeholder="请输入请求时间" />
</el-form-item> </el-form-item>
<el-form-item label="起点 " prop="positionCode1"> <el-form-item label="起点 " prop="positionCode1">
<el-input v-model="form.positionCode1" placeholder="请输入起点 " /> <el-input v-model="form.positionCode1" placeholder="请输入起点 " />
@@ -215,8 +137,8 @@
<el-form-item label="继续请求" prop="request"> <el-form-item label="继续请求" prop="request">
<el-input v-model="form.request" placeholder="请输入继续请求" /> <el-input v-model="form.request" placeholder="请输入继续请求" />
</el-form-item> </el-form-item>
<el-form-item label="结束时间 yyyy-MM-dd HH:mm:ss" prop="finishTime"> <el-form-item label="结束时间 " prop="finishTime">
<el-input v-model="form.finishTime" placeholder="请输入结束时间" /> <el-input v-model="form.finishTime" placeholder="请输入结束时间 " />
</el-form-item> </el-form-item>
<el-form-item label="wms托盘码/容器码" prop="wmsTraycode"> <el-form-item label="wms托盘码/容器码" prop="wmsTraycode">
<el-input v-model="form.wmsTraycode" placeholder="请输入wms托盘码/容器码" /> <el-input v-model="form.wmsTraycode" placeholder="请输入wms托盘码/容器码" />
@@ -224,6 +146,19 @@
<el-form-item label="wms任务号" prop="wmsTaskNo"> <el-form-item label="wms任务号" prop="wmsTaskNo">
<el-input v-model="form.wmsTaskNo" placeholder="请输入wms任务号" /> <el-input v-model="form.wmsTaskNo" placeholder="请输入wms任务号" />
</el-form-item> </el-form-item>
<el-form-item label="任务单号" prop="taskCode">
<el-input v-model="form.taskCode" placeholder="请输入任务单号" />
</el-form-item>
<el-form-item label="wms任务类型" prop="wmsTaskType">
<el-select v-model="form.wmsTaskType" placeholder="请选择wms任务类型">
<el-option
v-for="dict in dict.type.wms_task_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -235,9 +170,11 @@
<script> <script>
import { listQueue, getQueue, delQueue, addQueue, updateQueue } from "@/api/agv/queue" import { listQueue, getQueue, delQueue, addQueue, updateQueue } from "@/api/agv/queue"
import { listQueueFinish } from "@/api/agv/queueFinish"
export default { export default {
name: "Queue", name: "Queue",
dicts: ['wms_task_type','task_status'],
data() { data() {
return { return {
// 遮罩层 // 遮罩层
@@ -275,7 +212,10 @@ export default {
request: null, request: null,
finishTime: null, finishTime: null,
wmsTraycode: null, wmsTraycode: null,
wmsTaskNo: null wmsTaskNo: null,
taskCode: null,
status: null,
wmsTaskType: null
}, },
// 表单参数 // 表单参数
form: {}, form: {},
@@ -291,11 +231,20 @@ export default {
/** 查询AGV任务队列列表 */ /** 查询AGV任务队列列表 */
getList() { getList() {
this.loading = true this.loading = true
listQueue(this.queryParams).then(response => { if (this.queryParams.status !=='4'){
this.queueList = response.rows listQueue(this.queryParams).then(response => {
this.total = response.total this.queueList = response.rows
this.loading = false this.total = response.total
}) this.loading = false
})
}else {
listQueueFinish(this.queryParams).then(response => {
this.queueList = response.rows
this.total = response.total
this.loading = false
})
}
}, },
// 取消按钮 // 取消按钮
cancel() { cancel() {
@@ -319,7 +268,10 @@ export default {
request: null, request: null,
finishTime: null, finishTime: null,
wmsTraycode: null, wmsTraycode: null,
wmsTaskNo: null wmsTaskNo: null,
taskCode: null,
status: null,
wmsTaskType: null
} }
this.resetForm("form") this.resetForm("form")
}, },
@@ -394,13 +346,3 @@ export default {
} }
} }
</script> </script>
<style scoped>
.el-table >>> .current-row {
background-color: #f0f9eb;
}
.el-form-item >>> .el-form-item__label {
white-space: nowrap;
width: auto;
min-width: fit-content;
}
</style>

View File

@@ -27,7 +27,7 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="点位区域" prop="portRegion"> <!-- <el-form-item label="点位区域" prop="portRegion">
<el-input <el-input
v-model="queryParams.portRegion" v-model="queryParams.portRegion"
placeholder="请输入点位区域" placeholder="请输入点位区域"
@@ -58,7 +58,7 @@
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>-->
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable> <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
<el-option <el-option
@@ -131,10 +131,10 @@
<dict-tag :options="dict.type.port_type" :value="scope.row.portType"/> <dict-tag :options="dict.type.port_type" :value="scope.row.portType"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="点位区域" align="left" prop="portRegion" /> <!-- <el-table-column label="点位区域" align="left" prop="portRegion" />
<el-table-column label="备用字段" align="left" prop="spare1" /> <el-table-column label="备用字段" align="left" prop="spare1" />
<el-table-column label="备用字段" align="left" prop="spare2" /> <el-table-column label="备用字段" align="left" prop="spare2" />
<el-table-column label="备用字段" align="left" prop="spare3" /> <el-table-column label="备用字段" align="left" prop="spare3" />-->
<el-table-column label="状态" align="left" prop="status"> <el-table-column label="状态" align="left" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.cache_port_status" :value="scope.row.status"/> <dict-tag :options="dict.type.cache_port_status" :value="scope.row.status"/>

View File

@@ -1,86 +1,22 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="设备唯一编码" prop="deviceCode "> <el-form-item label="设备编码" prop="deviceCode">
<el-input <el-input
v-model="queryParams.deviceCode " v-model="queryParams.deviceCode"
placeholder="请输入设备唯一编码" placeholder="请输入设备编码"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="设备名称" prop="name "> <el-form-item label="设备名称" prop="name">
<el-input <el-input
v-model="queryParams.name " v-model="queryParams.name"
placeholder="请输入设备名称" placeholder="请输入设备名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="设备IP" prop="ipAddress">
<el-input
v-model="queryParams.ipAddress"
placeholder="请输入设备IP"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="类型" prop="ipAddress">
<el-input
v-model="queryParams.type"
placeholder="请输入设备类型"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="关联缓冲区" prop="bufferAreaId ">
<el-input
v-model="queryParams.bufferAreaId "
placeholder="请输入关联缓冲区"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="0-F 1-T" prop="isActive">
<el-input
v-model="queryParams.isActive"
placeholder="请输入0-F 1-T"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段" prop="spare1">
<el-input
v-model="queryParams.spare1"
placeholder="请输入备用字段"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段" prop="spare2">
<el-input
v-model="queryParams.spare2"
placeholder="请输入备用字段"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段" prop="spare3">
<el-input
v-model="queryParams.spare3"
placeholder="请输入备用字段"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段" prop="spare4">
<el-input
v-model="queryParams.spare4"
placeholder="请输入备用字段"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="任务号" prop="taskNo"> <el-form-item label="任务号" prop="taskNo">
<el-input <el-input
v-model="queryParams.taskNo" v-model="queryParams.taskNo"
@@ -151,20 +87,16 @@
<el-table v-loading="loading" :data="DeviceCarList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="DeviceCarList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="id" align="left" prop="id" /> <el-table-column label="id" align="center" prop="id" />
<el-table-column label="设备唯一编码" align="left" prop="deviceCode" /> <el-table-column label="设备编码" align="center" prop="deviceCode" />
<el-table-column label="设备名称" align="left" prop="name" /> <el-table-column label="设备名称" align="center" prop="name" />
<el-table-column label="类型" align="left" prop="type" /> <el-table-column label="类型" align="center" prop="type" />
<el-table-column label="设备IP" align="left" prop="ipAddress" /> <el-table-column label="设备IP" align="center" prop="ipAddress" />
<el-table-column label="关联缓冲区" align="left" prop="bufferAreaId" /> <el-table-column label="关联缓冲区" align="center" prop="bufferAreaId" />
<el-table-column label="0-F 1-T" align="left" prop="isActive" /> <el-table-column label="是否可用" align="center" prop="isActive" />
<el-table-column label="状态" align="left" prop="status" /> <el-table-column label="状态" align="center" prop="status" />
<el-table-column label="备用字段" align="left" prop="spare1" /> <el-table-column label="任务号" align="center" prop="taskNo" />
<el-table-column label="备用字段" align="left" prop="spare2" /> <el-table-column label="执行阶段" align="center" prop="zxjd" />
<el-table-column label="备用字段" align="left" prop="spare3" />
<el-table-column label="备用字段" align="left" prop="spare4" />
<el-table-column label="任务号" align="left" prop="taskNo" />
<el-table-column label="执行阶段" align="left" prop="zxjd" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@@ -196,35 +128,32 @@
<!-- 添加或修改设备信息对话框 --> <!-- 添加或修改设备信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="设备唯一编码" prop="deviceCode "> <el-form-item label="设备编码" prop="deviceCode">
<el-input v-model="form.deviceCode " placeholder="请输入设备唯一编码" /> <el-input v-model="form.deviceCode" placeholder="请输入设备编码" />
</el-form-item> </el-form-item>
<el-form-item label="设备名称" prop="name "> <el-form-item label="设备名称" prop="name">
<el-input v-model="form.name " placeholder="请输入设备名称" /> <el-input v-model="form.name" placeholder="请输入设备名称" />
</el-form-item> </el-form-item>
<el-form-item label="设备IP" prop="ipAddress"> <el-form-item label="设备IP" prop="ipAddress">
<el-input v-model="form.ipAddress" placeholder="请输入设备IP" /> <el-input v-model="form.ipAddress" placeholder="请输入设备IP" />
</el-form-item> </el-form-item>
<el-form-item label="设备类型" prop="type"> <el-form-item label="关联缓冲区" prop="bufferAreaId">
<el-input v-model="form.type" placeholder="请输入设备类型" /> <el-input v-model="form.bufferAreaId" placeholder="请输入关联缓冲区" />
</el-form-item> </el-form-item>
<el-form-item label="关联缓冲区" prop="bufferAreaId "> <el-form-item label="是否可用" prop="isActive">
<el-input v-model="form.bufferAreaId " placeholder="请输入关联缓冲区" /> <el-input v-model="form.isActive" placeholder="请输入是否可用" />
</el-form-item> </el-form-item>
<el-form-item label="0-F 1-T" prop="isActive"> <el-form-item label="备用字段1" prop="spare1">
<el-input v-model="form.isActive" placeholder="请输入0-F 1-T" /> <el-input v-model="form.spare1" placeholder="请输入备用字段1" />
</el-form-item> </el-form-item>
<el-form-item label="备用字段" prop="spare1"> <el-form-item label="备用字段2" prop="spare2">
<el-input v-model="form.spare1" placeholder="请输入备用字段" /> <el-input v-model="form.spare2" placeholder="请输入备用字段2" />
</el-form-item> </el-form-item>
<el-form-item label="备用字段" prop="spare2"> <el-form-item label="备用字段3" prop="spare3">
<el-input v-model="form.spare2" placeholder="请输入备用字段" /> <el-input v-model="form.spare3" placeholder="请输入备用字段3" />
</el-form-item> </el-form-item>
<el-form-item label="备用字段" prop="spare3"> <el-form-item label="备用字段4" prop="spare4">
<el-input v-model="form.spare3" placeholder="请输入备用字段" /> <el-input v-model="form.spare4" placeholder="请输入备用字段4" />
</el-form-item>
<el-form-item label="备用字段" prop="spare4">
<el-input v-model="form.spare4" placeholder="请输入备用字段" />
</el-form-item> </el-form-item>
<el-form-item label="任务号" prop="taskNo"> <el-form-item label="任务号" prop="taskNo">
<el-input v-model="form.taskNo" placeholder="请输入任务号" /> <el-input v-model="form.taskNo" placeholder="请输入任务号" />
@@ -270,11 +199,11 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
deviceCode : null, deviceCode: null,
name : null, name: null,
type: null, type: null,
ipAddress: null, ipAddress: null,
bufferAreaId : null, bufferAreaId: null,
isActive: null, isActive: null,
status: null, status: null,
spare1: null, spare1: null,
@@ -299,7 +228,6 @@ export default {
getList() { getList() {
this.loading = true this.loading = true
listDeviceCar(this.queryParams).then(response => { listDeviceCar(this.queryParams).then(response => {
console.log(response)
this.DeviceCarList = response.rows this.DeviceCarList = response.rows
this.total = response.total this.total = response.total
this.loading = false this.loading = false
@@ -314,11 +242,11 @@ export default {
reset() { reset() {
this.form = { this.form = {
id: null, id: null,
deviceCode : null, deviceCode: null,
name : null, name: null,
type: null, type: null,
ipAddress: null, ipAddress: null,
bufferAreaId : null, bufferAreaId: null,
isActive: null, isActive: null,
createTime: null, createTime: null,
status: null, status: null,
@@ -402,13 +330,3 @@ export default {
} }
} }
</script> </script>
<style scoped>
.el-table >>> .current-row {
background-color: #f0f9eb;
}
.el-form-item >>> .el-form-item__label {
white-space: nowrap;
width: auto;
min-width: fit-content;
}
</style>

View File

@@ -1,50 +1,26 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="点位编码" prop="portCode"> <el-form-item label="设备编码" prop="deviceCode ">
<el-input <el-input
v-model="queryParams.portCode" v-model="queryParams.deviceCode "
placeholder="请输入点位编码" placeholder="请输入设备唯一编码"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="点位名称" prop="portName"> <el-form-item label="设备名称" prop="name ">
<el-input <el-input
v-model="queryParams.portName" v-model="queryParams.name "
placeholder="请输入点位名称" placeholder="请输入设备名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="点位区域" prop="portRegion"> <el-form-item label="任务号" prop="taskNo">
<el-input <el-input
v-model="queryParams.portRegion" v-model="queryParams.taskNo"
placeholder="请输入点位区域" placeholder="请输入任务号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段" prop="spare1">
<el-input
v-model="queryParams.spare1"
placeholder="请输入备用字段"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段" prop="spare2">
<el-input
v-model="queryParams.spare2"
placeholder="请输入备用字段"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段" prop="spare3">
<el-input
v-model="queryParams.spare3"
placeholder="请输入备用字段"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
@@ -63,7 +39,7 @@
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['bas:cachePort:add']" v-hasPermi="['device:ssj:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@@ -74,7 +50,7 @@
size="mini" size="mini"
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['bas:cachePort:edit']" v-hasPermi="['device:ssj:edit']"
>修改</el-button> >修改</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@@ -85,7 +61,7 @@
size="mini" size="mini"
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['bas:cachePort:remove']" v-hasPermi="['device:ssj:remove']"
>删除</el-button> >删除</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@@ -95,23 +71,27 @@
icon="el-icon-download" icon="el-icon-download"
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['bas:cachePort:export']" v-hasPermi="['device:ssj:export']"
>导出</el-button> >导出</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="cachePortList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="ssjList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="left" prop="id" /> <el-table-column label="id" align="center" prop="id" />
<el-table-column label="点位编码" align="left" prop="portCode" /> <el-table-column label="设备编码" align="center" prop="deviceCode" />
<el-table-column label="点位名称" align="left" prop="portName" /> <el-table-column label="设备名称" align="center" prop="name" />
<el-table-column label="点位类型" align="left" prop="portType" /> <el-table-column label="类型" align="center" prop="type" />
<el-table-column label="点位区域" align="left" prop="portRegion" /> <el-table-column label="设备IP" align="center" prop="ipAddress" />
<el-table-column label="备用字段" align="left" prop="spare1" /> <el-table-column label="PLC读取地址" align="center" prop="plcDbReadAddress" />
<el-table-column label="备用字段" align="left" prop="spare2" /> <el-table-column label="是否可用" align="center" prop="isActive" />
<el-table-column label="备用字段" align="left" prop="spare3" /> <el-table-column label="PLC写入地址" align="center" prop="plcDbWriteAddress" />
<el-table-column label="点位状态" align="left" prop="status" /> <el-table-column label="入库请求" align="center" prop="rkqq" />
<el-table-column label="空闲" align="center" prop="kx" />
<el-table-column label="到位" align="center" prop="dw" />
<el-table-column label="条码" align="center" prop="trayCode" />
<el-table-column label="任务号" align="center" prop="taskNo" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@@ -119,14 +99,14 @@
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['bas:cachePort:edit']" v-hasPermi="['device:ssj:edit']"
>修改</el-button> >修改</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['bas:cachePort:remove']" v-hasPermi="['device:ssj:remove']"
>删除</el-button> >删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
@@ -140,26 +120,41 @@
@pagination="getList" @pagination="getList"
/> />
<!-- 添加或修改缓存点管理对话框 --> <!-- 添加或修改输送机对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="点位编码" prop="portCode"> <el-form-item label="设备唯一编码" prop="deviceCode ">
<el-input v-model="form.portCode" placeholder="请输入点位编码" /> <el-input v-model="form.deviceCode " placeholder="请输入设备唯一编码" />
</el-form-item> </el-form-item>
<el-form-item label="点位名称" prop="portName"> <el-form-item label="设备名称" prop="name ">
<el-input v-model="form.portName" placeholder="请输入点位名称" /> <el-input v-model="form.name " placeholder="请输入设备名称" />
</el-form-item> </el-form-item>
<el-form-item label="点位区域" prop="portRegion"> <el-form-item label="设备IP" prop="ipAddress">
<el-input v-model="form.portRegion" placeholder="请输入点位区域" /> <el-input v-model="form.ipAddress" placeholder="请输入设备IP" />
</el-form-item> </el-form-item>
<el-form-item label="备用字段" prop="spare1"> <el-form-item label="PLC读取地址" prop="plcDbReadAddress">
<el-input v-model="form.spare1" placeholder="请输入备用字段" /> <el-input v-model="form.plcDbReadAddress" placeholder="请输入PLC读取地址" />
</el-form-item> </el-form-item>
<el-form-item label="备用字段" prop="spare2"> <el-form-item label="0-F 1-T" prop="isActive">
<el-input v-model="form.spare2" placeholder="请输入备用字段" /> <el-input v-model="form.isActive" placeholder="请输入0-F 1-T" />
</el-form-item> </el-form-item>
<el-form-item label="备用字段" prop="spare3"> <el-form-item label="PLC写入地址" prop="plcDbWriteAddress">
<el-input v-model="form.spare3" placeholder="请输入备用字段" /> <el-input v-model="form.plcDbWriteAddress" placeholder="请输入PLC写入地址" />
</el-form-item>
<el-form-item label="入库请求" prop="rkqq">
<el-input v-model="form.rkqq" placeholder="请输入入库请求" />
</el-form-item>
<el-form-item label="空闲" prop="kx">
<el-input v-model="form.kx" placeholder="请输入空闲" />
</el-form-item>
<el-form-item label="到位" prop="dw">
<el-input v-model="form.dw" placeholder="请输入到位" />
</el-form-item>
<el-form-item label="条码" prop="trayCode">
<el-input v-model="form.trayCode" placeholder="请输入条码" />
</el-form-item>
<el-form-item label="任务号" prop="taskNo">
<el-input v-model="form.taskNo" placeholder="请输入任务号" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@@ -171,10 +166,10 @@
</template> </template>
<script> <script>
import { listCachePort, getCachePort, delCachePort, addCachePort, updateCachePort } from "@/api/bas/cachePort" import { listSsj, getSsj, delSsj, addSsj, updateSsj } from "@/api/device/ssj"
export default { export default {
name: "CachePort", name: "Ssj",
data() { data() {
return { return {
// 遮罩层 // 遮罩层
@@ -189,8 +184,8 @@ export default {
showSearch: true, showSearch: true,
// 总条数 // 总条数
total: 0, total: 0,
// 缓存点管理表格数据 // 输送机表格数据
cachePortList: [], ssjList: [],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
@@ -199,14 +194,18 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
portCode: null, deviceCode : null,
portName: null, name : null,
portType: null, type: null,
portRegion: null, ipAddress: null,
spare1: null, plcDbReadAddress: null,
spare2: null, isActive: null,
spare3: null, plcDbWriteAddress: null,
status: null rkqq: null,
kx: null,
dw: null,
trayCode: null,
taskNo: null
}, },
// 表单参数 // 表单参数
form: {}, form: {},
@@ -219,11 +218,11 @@ export default {
this.getList() this.getList()
}, },
methods: { methods: {
/** 查询缓存点管理列表 */ /** 查询输送机列表 */
getList() { getList() {
this.loading = true this.loading = true
listCachePort(this.queryParams).then(response => { listSsj(this.queryParams).then(response => {
this.cachePortList = response.rows this.ssjList = response.rows
this.total = response.total this.total = response.total
this.loading = false this.loading = false
}) })
@@ -237,14 +236,19 @@ export default {
reset() { reset() {
this.form = { this.form = {
id: null, id: null,
portCode: null, deviceCode : null,
portName: null, name : null,
portType: null, type: null,
portRegion: null, ipAddress: null,
spare1: null, plcDbReadAddress: null,
spare2: null, isActive: null,
spare3: null, createTime: null,
status: null plcDbWriteAddress: null,
rkqq: null,
kx: null,
dw: null,
trayCode: null,
taskNo: null
} }
this.resetForm("form") this.resetForm("form")
}, },
@@ -268,16 +272,16 @@ export default {
handleAdd() { handleAdd() {
this.reset() this.reset()
this.open = true this.open = true
this.title = "添加缓存点管理" this.title = "添加输送机"
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset() this.reset()
const id = row.id || this.ids const id = row.id || this.ids
getCachePort(id).then(response => { getSsj(id).then(response => {
this.form = response.data this.form = response.data
this.open = true this.open = true
this.title = "修改缓存点管理" this.title = "修改输送机"
}) })
}, },
/** 提交按钮 */ /** 提交按钮 */
@@ -285,13 +289,13 @@ export default {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
updateCachePort(this.form).then(response => { updateSsj(this.form).then(response => {
this.$modal.msgSuccess("修改成功") this.$modal.msgSuccess("修改成功")
this.open = false this.open = false
this.getList() this.getList()
}) })
} else { } else {
addCachePort(this.form).then(response => { addSsj(this.form).then(response => {
this.$modal.msgSuccess("新增成功") this.$modal.msgSuccess("新增成功")
this.open = false this.open = false
this.getList() this.getList()
@@ -303,8 +307,8 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids const ids = row.id || this.ids
this.$modal.confirm('是否确认删除缓存点管理编号为"' + ids + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除输送机编号为"' + ids + '"的数据项?').then(function() {
return delCachePort(ids) return delSsj(ids)
}).then(() => { }).then(() => {
this.getList() this.getList()
this.$modal.msgSuccess("删除成功") this.$modal.msgSuccess("删除成功")
@@ -312,9 +316,9 @@ export default {
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('bas/cachePort/export', { this.download('device/ssj/export', {
...this.queryParams ...this.queryParams
}, `cachePort_${new Date().getTime()}.xlsx`) }, `ssj_${new Date().getTime()}.xlsx`)
} }
} }
} }