123
This commit is contained in:
@@ -3,12 +3,10 @@ package com.ruoyi.api.controller;
|
||||
import com.ruoyi.api.domain.wcs2wms.JobParam;
|
||||
import com.ruoyi.api.domain.wcs2wms.ReceiveJob;
|
||||
import com.ruoyi.api.service.IApiService;
|
||||
import com.ruoyi.bas.port.service.IWcsPortService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/wcs2Wms/api")
|
||||
@@ -16,6 +14,8 @@ public class Wcs2WmsController {
|
||||
|
||||
@Autowired
|
||||
private IApiService apiService;
|
||||
@Autowired
|
||||
private IWcsPortService wcsPortService;
|
||||
|
||||
/**
|
||||
* 接收出库任务
|
||||
@@ -52,5 +52,15 @@ public class Wcs2WmsController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询缓存点
|
||||
* @param jobParam
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/selectWcsPort")
|
||||
@ResponseBody
|
||||
public AjaxResult selectWcsPort(@RequestBody JobParam jobParam) {
|
||||
return apiService.selectWcsPort(jobParam);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -100,6 +100,8 @@ public interface IApiService
|
||||
*/
|
||||
AjaxResult cancelMydoJob(JobParam jobParam);
|
||||
|
||||
AjaxResult selectWcsPort(JobParam jobParam);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -18,6 +18,8 @@ import com.ruoyi.api.domain.agv.genAgvSchedulingTask.PositionCodeData;
|
||||
import com.ruoyi.api.domain.wcs2wms.JobParam;
|
||||
import com.ruoyi.api.domain.wcs2wms.ReceiveJob;
|
||||
import com.ruoyi.api.service.IApiService;
|
||||
import com.ruoyi.bas.port.domain.WcsPort;
|
||||
import com.ruoyi.bas.port.service.IWcsPortService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.job.domain.MydoJob;
|
||||
@@ -51,6 +53,8 @@ public class ApiServiceImpl implements IApiService {
|
||||
private IAgvQueueService agvQueueService;
|
||||
@Autowired
|
||||
private IMydoJobService mydoJobService;
|
||||
@Autowired
|
||||
private IWcsPortService wcsPortService;
|
||||
|
||||
|
||||
|
||||
@@ -169,9 +173,23 @@ public class ApiServiceImpl implements IApiService {
|
||||
log.info("【AGV请求放货】任务号:{}", request.getTaskCode());
|
||||
break;
|
||||
case "end":
|
||||
|
||||
agvQueue.setStatus("7");
|
||||
agvQueueService.updateAgvQueue(agvQueue);
|
||||
log.info("【AGV任务结束】任务号:{}", request.getTaskCode());
|
||||
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(new WcsPort());
|
||||
// 查询agvQueue中的positionCode2的值是否在wcsPorts列表中存在
|
||||
boolean isPositionValid = wcsPorts.stream()
|
||||
.anyMatch(port -> port.getPortCode().equals(agvQueue.getPositionCode2()));
|
||||
if (isPositionValid) {
|
||||
agvQueueService.insertHistory(agvQueue.getReqCode());
|
||||
agvQueueService.deleteAgvQueueByReqCode(agvQueue.getReqCode());
|
||||
WcsPort wcsPort = new WcsPort();
|
||||
wcsPort.setPortCode(agvQueue.getPositionCode2());
|
||||
wcsPort.setStatus("2");
|
||||
wcsPortService.updateWcsPort(wcsPort);
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
log.info("未知方法");
|
||||
@@ -311,7 +329,7 @@ public class ApiServiceImpl implements IApiService {
|
||||
*/
|
||||
@Override
|
||||
public GenAgvSchedulingTaskResponse requestAgvQueue(AgvQueue agvQueue) {
|
||||
//todo 请求ctu
|
||||
|
||||
GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest = new GenAgvSchedulingTaskRequest();
|
||||
genAgvSchedulingTaskRequest.setReqCode(agvQueue.getReqCode());
|
||||
genAgvSchedulingTaskRequest.setTaskMode("0");
|
||||
@@ -391,4 +409,10 @@ public class ApiServiceImpl implements IApiService {
|
||||
return AjaxResult.error();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AjaxResult selectWcsPort(JobParam jobParam) {
|
||||
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(new WcsPort());
|
||||
return AjaxResult.success(wcsPorts);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,11 +32,11 @@ public class TaskStatusCode {
|
||||
/**
|
||||
* 任务执行阶段 AGV
|
||||
*/
|
||||
public static final String TASK_EP_AGV = "1";
|
||||
public static final String TASK_EP_AGV = "2";
|
||||
/**
|
||||
* 任务执行阶段 入口输送机
|
||||
*/
|
||||
public static final String TASK_EP_SSJ = "2";
|
||||
public static final String TASK_EP_SSJ = "3";
|
||||
/**
|
||||
* 任务执行阶段 巷道口
|
||||
*/
|
||||
@@ -49,6 +49,8 @@ public class TaskStatusCode {
|
||||
/**
|
||||
* 任务执行阶段 回传wms完成
|
||||
*/
|
||||
public static final String TASK_EP_WMS_FINISH = "5";
|
||||
public static final String TASK_EP_WMS_FINISH = "6";
|
||||
|
||||
public static final String TASK_EP_LINE_SSJ = "1";
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.ruoyi.schedule.scheduleTask.ssj.floor2;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ruoyi.api.service.IApiService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
@@ -19,6 +21,7 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import static com.ruoyi.common.TaskStatusCode.TASK_EP_LINE_SSJ;
|
||||
import static com.ruoyi.common.TaskStatusCode.TASK_EP_SSJ;
|
||||
import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsj;
|
||||
|
||||
@@ -44,6 +47,9 @@ public class Floor2InOutSsjThread implements Runnable {
|
||||
ssjCodes.add("L1011");
|
||||
ssjCodes.add("L1012");
|
||||
ssjCodeList.put("inout", ssjCodes);
|
||||
ssjCodes.add("L1001");
|
||||
ssjCodes.add("L1003");
|
||||
ssjCodeList.put("sm", ssjCodes);
|
||||
apiService = SpringUtils.getBean(IApiService.class);
|
||||
agvQueueService = SpringUtils.getBean(IAgvQueueService.class);
|
||||
mydoJobService = SpringUtils.getBean(IMydoJobService.class);
|
||||
@@ -59,7 +65,7 @@ public class Floor2InOutSsjThread implements Runnable {
|
||||
|
||||
switch (type) {
|
||||
case "inout":
|
||||
//生产线入库
|
||||
//入库口
|
||||
for (String ssjCode : ssjCodeList.get(type)) {
|
||||
try {
|
||||
if (PlcSsjRead.deviceSsjMap.containsKey(ssjCode)) {
|
||||
@@ -73,6 +79,17 @@ public class Floor2InOutSsjThread implements Runnable {
|
||||
|
||||
}
|
||||
break;
|
||||
case "sm":
|
||||
//入库扫码
|
||||
for (String ssjCode : ssjCodeList.get(type)) {
|
||||
try {
|
||||
if (PlcSsjRead.deviceSsjMap.containsKey(ssjCode)) {
|
||||
inDispatch1(PlcSsjRead.deviceSsjMap.get(ssjCode));
|
||||
} else {
|
||||
log.error("设备不存在 ssjCode{}", ssjCode);
|
||||
}
|
||||
} catch (RuntimeException e) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
@@ -90,16 +107,17 @@ public class Floor2InOutSsjThread implements Runnable {
|
||||
if (inSsjDevice.getKx() == 1) {
|
||||
AgvQueue agvQueue = new AgvQueue();
|
||||
agvQueue.setStatus("5");//请求放货
|
||||
//todo 与agv对点
|
||||
agvQueue.setPositionCode2(inSsjDevice.getDeviceCode());
|
||||
List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList(agvQueue);
|
||||
//不允许放货
|
||||
if (!agvQueues.isEmpty() && inSsjDevice.getAllowPut() == 0) {
|
||||
//如果有这个输送机口的agv队列并请求放货(状态为6)
|
||||
int i = writeToSsj(inSsjDevice.getPlcDbWriteAddress(), "0", Integer.parseInt(agvQueues.get(0).getCtnrType()),1);
|
||||
if (i == 1) {
|
||||
log.info(inSsjDevice.getDeviceCode() + "输送机下发请求放货成功");
|
||||
}
|
||||
}
|
||||
//不允许放货 等着
|
||||
// if (!agvQueues.isEmpty() && inSsjDevice.getAllowPut() == 0) {
|
||||
//如果有这个输送机口的agv队列并请求放货(状态为6)
|
||||
// int i = writeToSsj(inSsjDevice.getPlcDbWriteAddress(), "0", Integer.parseInt(agvQueues.get(0).getCtnrType()),1);
|
||||
// if (i == 1) {
|
||||
// log.info(inSsjDevice.getDeviceCode() + "输送机下发请求放货异常成功");
|
||||
// }
|
||||
// }
|
||||
//允许放货
|
||||
if (!agvQueues.isEmpty() && inSsjDevice.getAllowPut() == 1) {
|
||||
log.info("设备:{} 位置:{} 任务号:{} 请求放货成功", inSsjDevice.getDeviceCode(), "输送线", agvQueues.get(0).getTaskCode());
|
||||
@@ -115,6 +133,7 @@ public class Floor2InOutSsjThread implements Runnable {
|
||||
if (inSsjDevice.getKx() == 0 && inSsjDevice.getTaskNo() == 0) {
|
||||
AgvQueue agvQueue = new AgvQueue();
|
||||
agvQueue.setStatus("7"); //end
|
||||
//todo 与agv对点
|
||||
agvQueue.setPositionCode2(inSsjDevice.getDeviceCode());
|
||||
List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList(agvQueue);
|
||||
if (!agvQueues.isEmpty()) {
|
||||
@@ -148,6 +167,73 @@ public class Floor2InOutSsjThread implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
public void inDispatch1(DeviceSsj ssjDevice) {
|
||||
//有入库请求就肯定是电气的任务号的作业,如果有正执行的出库作业退回
|
||||
if(StrUtil.isNotBlank(ssjDevice.getTrayCode()) && ssjDevice.getRkqq()==1 && ssjDevice.getTaskNo()<=1000){
|
||||
|
||||
MydoJob mydoJobParam = new MydoJob();
|
||||
mydoJobParam.setInOut("2");
|
||||
mydoJobParam.setStatus("3");
|
||||
mydoJobParam.setExitId(ssjDevice.getDeviceCode());
|
||||
List<MydoJob> outMydoJobList = mydoJobService.selectInOrOutMydoJobList(mydoJobParam);
|
||||
if(!outMydoJobList.isEmpty()){
|
||||
//todo 去向不明朗
|
||||
int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(),"0",2,2);
|
||||
if (i == 1) {
|
||||
log.info(ssjDevice.getDeviceCode()+"有正执行的出库作业退回" );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
mydoJob.setInOrOut("1");
|
||||
// mydoJob.setStatus("1");
|
||||
mydoJob.setEntranceId(ssjDevice.getDeviceCode());
|
||||
// mydoJob.setExecutionPhase("0");
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJob);
|
||||
if(!mydoJobs.isEmpty()){
|
||||
MydoJob mydoJob1 = mydoJobs.get(0);
|
||||
if(mydoJob1.getStatus().equals("1") && mydoJob1.getExecutionPhase().equals("0")){
|
||||
int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(),mydoJob1.getTaskNo(),1,1);
|
||||
if (i == 1) {
|
||||
mydoJob1.setExecutionPhase(TASK_EP_SSJ);
|
||||
mydoJob1.setStatus("3");
|
||||
mydoJobService.updateMydoJob(mydoJob1);
|
||||
log.info(ssjDevice.getDeviceCode()+"输送机下发任务号成功:{}" , mydoJob1.getTaskNo());
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("trayCode",ssjDevice.getTrayCode());
|
||||
map.put("entranceId",ssjDevice.getDeviceCode());
|
||||
AjaxResult ajaxResult = apiService.selectMydoJobByTrayCodeAndEntranceId(map);
|
||||
if(ajaxResult.isSuccess()){
|
||||
MydoJob mydoJob2 = BeanUtil.toBean(ajaxResult.get("data"), MydoJob.class) ;
|
||||
mydoJob2.setStatus("1");
|
||||
mydoJob2.setExecutionPhase("0");
|
||||
mydoJob2.setCreateTime(new Date());
|
||||
mydoJobService.insertMydoJob(mydoJob2);
|
||||
int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1);
|
||||
if (i == 1) {
|
||||
mydoJob2.setExecutionPhase(TASK_EP_SSJ);
|
||||
mydoJobService.updateMydoJob(mydoJob2);
|
||||
log.info(ssjDevice.getDeviceCode()+"输送机下发任务号成功:{}" , mydoJob2.getTaskNo());
|
||||
}
|
||||
}else{
|
||||
//todo 去向不明朗
|
||||
int i = writeToSsj(ssjDevice.getPlcDbWriteAddress(),"0",2,2);
|
||||
if (i == 1) {
|
||||
log.info(ssjDevice.getDeviceCode()+"输送机没取到作业下发输送线" );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ruoyi.api.service.IApiService;
|
||||
import com.ruoyi.bas.port.domain.WcsPort;
|
||||
import com.ruoyi.bas.port.service.IWcsPortService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.domain.SendData;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
@@ -22,6 +24,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import static com.ruoyi.common.TaskStatusCode.TASK_EP_AGV;
|
||||
import static com.ruoyi.common.TaskStatusCode.TASK_EP_LINE_SSJ;
|
||||
import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.deviceSsjMap;
|
||||
import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsj;
|
||||
|
||||
@@ -36,6 +39,7 @@ public class LineSsjThread implements Runnable {
|
||||
private IApiService apiService;
|
||||
private IAgvQueueService agvQueueService;
|
||||
private IMydoJobService mydoJobService;
|
||||
private IWcsPortService wcsPortService;
|
||||
|
||||
public boolean isRun = true;
|
||||
|
||||
@@ -48,6 +52,7 @@ public class LineSsjThread implements Runnable {
|
||||
apiService = SpringUtils.getBean(IApiService.class);
|
||||
agvQueueService = SpringUtils.getBean(IAgvQueueService.class);
|
||||
mydoJobService = SpringUtils.getBean(IMydoJobService.class);
|
||||
wcsPortService = SpringUtils.getBean(IWcsPortService.class);
|
||||
log.info("初始化服务 {},{}", apiService, agvQueueService);
|
||||
}
|
||||
|
||||
@@ -75,6 +80,7 @@ public class LineSsjThread implements Runnable {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
Thread.sleep(1500);
|
||||
} catch (InterruptedException e) {
|
||||
@@ -93,22 +99,23 @@ public class LineSsjThread implements Runnable {
|
||||
//查作业,入如果已经有了,直接下发输送线
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
mydoJob.setInOrOut("1");
|
||||
mydoJob.setStatus("1");
|
||||
// mydoJob.setStatus("1");
|
||||
mydoJob.setEntranceId("G1005");
|
||||
mydoJob.setExecutionPhase("0");
|
||||
// mydoJob.setExecutionPhase("0");
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectInOrOutMydoJobList(mydoJob);
|
||||
//有作业,下发输送机任务号,覆盖任务号
|
||||
if (!mydoJobs.isEmpty()) {
|
||||
|
||||
//永远有且只有一条
|
||||
mydoJob = mydoJobs.get(0);
|
||||
int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(),mydoJob.getTaskNo(),1,1);
|
||||
if (i == 1) {
|
||||
mydoJob.setExecutionPhase(TASK_EP_AGV);
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
log.info("G1005产线输送机下发任务号成功:" + mydoJob.getTaskNo());
|
||||
if(mydoJob.getStatus().equals("1")&& mydoJob.getExecutionPhase().equals("0")) {
|
||||
int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(), mydoJob.getTaskNo(), 1, 1);
|
||||
if (i == 1) {
|
||||
mydoJob.setExecutionPhase(TASK_EP_LINE_SSJ);
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
log.info("G1005产线输送机下发任务号成功:" + mydoJob.getTaskNo());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
//请求wms生成入库作业
|
||||
@@ -124,11 +131,10 @@ public class LineSsjThread implements Runnable {
|
||||
mydoJob2.setStatus("1");
|
||||
mydoJob2.setExecutionPhase("0");
|
||||
mydoJob2.setCreateTime(new Date());
|
||||
|
||||
mydoJobService.insertMydoJob(mydoJob2);
|
||||
int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1);
|
||||
if (i == 1) {
|
||||
mydoJob2.setExecutionPhase(TASK_EP_AGV);
|
||||
mydoJob2.setExecutionPhase(TASK_EP_LINE_SSJ);
|
||||
mydoJobService.updateMydoJob(mydoJob2);
|
||||
log.info("G1005产线输送机下发任务号成功:{}" , mydoJob2.getTaskNo());
|
||||
}
|
||||
@@ -140,6 +146,12 @@ public class LineSsjThread implements Runnable {
|
||||
if (i == 1) {
|
||||
log.info("G1005产线输送机下发错误信息成功");
|
||||
}
|
||||
//7是报工单失败,不处理
|
||||
if(!"7".equals(Integer.parseInt(ajaxResult.get("code").toString()))){
|
||||
createMoveToPort(SsjDevice);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -153,17 +165,19 @@ public class LineSsjThread implements Runnable {
|
||||
//查wcs有没作业,有下发给输送机任务号,覆盖任务号
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
mydoJob.setInOrOut("1");
|
||||
mydoJob.setStatus("1");
|
||||
// mydoJob.setStatus("1");
|
||||
mydoJob.setEntranceId("G1005");
|
||||
mydoJob.setExecutionPhase("0");
|
||||
// mydoJob.setExecutionPhase("0");
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectInOrOutMydoJobList(mydoJob);
|
||||
if (!mydoJobs.isEmpty()) {
|
||||
mydoJob = mydoJobs.get(0);
|
||||
int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(),mydoJob.getTaskNo(),1,1);
|
||||
if (i == 1) {
|
||||
mydoJob.setExecutionPhase(TASK_EP_AGV);
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
log.info("G1005产线输送机下发任务号成功:" + mydoJob.getTaskNo());
|
||||
if(mydoJob.getStatus().equals("1") && mydoJob.getExecutionPhase().equals("0")) {
|
||||
int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(), mydoJob.getTaskNo(), 1, 1);
|
||||
if (i == 1) {
|
||||
mydoJob.setExecutionPhase(TASK_EP_LINE_SSJ);
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
log.info("G1005产线输送机下发任务号成功:" + mydoJob.getTaskNo());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//没有,请求错误接口,找作业,返回成功,//拿到正常作业,插到wcs作业表,下发给输送机任务号,覆盖任务号,shibai...
|
||||
@@ -175,7 +189,7 @@ public class LineSsjThread implements Runnable {
|
||||
mydoJobService.insertMydoJob(mydoJob2);
|
||||
int i = writeToSsj(SsjDevice.getPlcDbWriteAddress(),mydoJob2.getTaskNo(),1,1);
|
||||
if (i == 1) {
|
||||
mydoJob2.setExecutionPhase(TASK_EP_AGV);
|
||||
mydoJob2.setExecutionPhase(TASK_EP_LINE_SSJ);
|
||||
mydoJobService.updateMydoJob(mydoJob2);
|
||||
log.info("G1005产线输送机下发任务号成功:" + mydoJob2.getTaskNo());
|
||||
}
|
||||
@@ -187,6 +201,10 @@ public class LineSsjThread implements Runnable {
|
||||
if (i == 1) {
|
||||
log.info("G1005产线输送机下发错误信息成功");
|
||||
}
|
||||
//7是报工单失败,不处理
|
||||
if(!"7".equals(Integer.parseInt(ajaxResult.get("code").toString()))){
|
||||
createMoveToPort(SsjDevice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -201,9 +219,9 @@ public class LineSsjThread implements Runnable {
|
||||
String deviceCode = "";
|
||||
if (mydoJob != null) {
|
||||
if ("1".equals(mydoJob.getRoadwayId())) {
|
||||
deviceCode = "L1011";
|
||||
deviceCode = "L1001";
|
||||
} else {
|
||||
deviceCode = "L1012";
|
||||
deviceCode = "L1003";
|
||||
}
|
||||
int kx = deviceSsjMap.get(deviceCode).getKx();
|
||||
MydoJob mydoJobParam = new MydoJob();
|
||||
@@ -228,8 +246,9 @@ public class LineSsjThread implements Runnable {
|
||||
}else {
|
||||
if ("1".equals(mydoJob.getStatus())){
|
||||
HashMap<String, String> paramMap = new HashMap<>();
|
||||
paramMap.put("trayCode", mydoJob.getTrayCode());
|
||||
// paramMap.put("trayCode", mydoJob.getTrayCode());
|
||||
paramMap.put("taskNo", mydoJob.getJobId());
|
||||
//todo 与agv对点
|
||||
paramMap.put("startPoint", "G1005");
|
||||
paramMap.put("endPoint", deviceCode);
|
||||
paramMap.put("traySize",String.valueOf(SsjDevice.getTraySize()));
|
||||
@@ -253,6 +272,40 @@ public class LineSsjThread implements Runnable {
|
||||
|
||||
}
|
||||
|
||||
void createMoveToPort(DeviceSsj SsjDevice){
|
||||
WcsPort wcsPort = new WcsPort();
|
||||
wcsPort.setStatus("1");
|
||||
List<WcsPort> wcsPorts = wcsPortService.selectWcsPortList(wcsPort);
|
||||
List<AgvQueue> agvQueues = agvQueueService.selectAgvQueueList(new AgvQueue());
|
||||
//检查agvQueues中是否有任何一个positionCode2是wcsPorts中的portCode
|
||||
boolean hasMatchingPort = agvQueues.stream()
|
||||
.map(AgvQueue::getPositionCode2)
|
||||
.anyMatch(positionCode2 -> wcsPorts.stream()
|
||||
.map(WcsPort::getPortCode)
|
||||
.anyMatch(portCode -> portCode.equals(positionCode2)));
|
||||
|
||||
if(hasMatchingPort==false){
|
||||
|
||||
if(!wcsPorts.isEmpty()){
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
// map.put("trayCode", mydoJob.getTrayCode());
|
||||
map.put("taskNo", StrUtil.uuid());
|
||||
//todo 与agv对点
|
||||
map.put("startPoint", "G1005");
|
||||
map.put("endPoint", wcsPorts.get(0).getPortCode());
|
||||
map.put("traySize",String.valueOf(SsjDevice.getTraySize()));
|
||||
// map.put("wmsTaskNo", mydoJob.getTaskNo());
|
||||
AjaxResult ajaxResult1 = apiService.receiveAgvMoveJob(map);
|
||||
if(ajaxResult1.isSuccess()){
|
||||
log.info("G1005产线生成作业失败,AGV下发搬运至缓存点任务成功:{}" , ajaxResult1.get("data"));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="spare3 != null">spare3 = #{spare3},</if>
|
||||
<if test="status != null">status = #{status},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
where port_code = #{portCode}
|
||||
</update>
|
||||
|
||||
<delete id="deleteWcsPortById" parameterType="Long">
|
||||
|
||||
Reference in New Issue
Block a user