产线输送机
This commit is contained in:
@@ -4,12 +4,14 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.ruoyi.api.service.IApiService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.domain.SendData;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
import com.ruoyi.device.ssj.domain.DeviceSsj;
|
||||
import com.ruoyi.job.domain.MydoJob;
|
||||
import com.ruoyi.job.service.IMydoJobService;
|
||||
import com.ruoyi.queue.agv.service.IAgvQueueService;
|
||||
import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead;
|
||||
import com.ruoyi.schedule.plcRead.util.Tools;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -79,9 +81,33 @@ public class LineSsjThread implements Runnable {
|
||||
|
||||
|
||||
public void inDispatch(DeviceSsj SsjDevice) {
|
||||
//如果到位,扫到条码,托盘大小,
|
||||
if (SsjDevice.getDw() == 1 && StrUtil.isNotBlank(SsjDevice.getTrayCode()) && SsjDevice.getTraySize() !=0) {
|
||||
log.info("设备:{} 位置:{} 条码:{} 托盘大小:{}",SsjDevice.getDeviceCode(),"产线",SsjDevice.getTrayCode(),SsjDevice.getTraySize());
|
||||
//如果到位,扫到条码,托盘大小,执行阶段卡控一下(下发输送机后改执行阶段)
|
||||
if (SsjDevice.getDw() == 1 && StrUtil.isNotBlank(SsjDevice.getTrayCode()) && SsjDevice.getTraySize() !=0 && SsjDevice.getTaskNo()<1000) {
|
||||
log.info("设备:{} 位置:{} 条码:{} 托盘大小:{}",SsjDevice.getDeviceCode(),"产线到位",SsjDevice.getTrayCode(),SsjDevice.getTraySize());
|
||||
|
||||
//查作业,入如果已经有了,直接下发输送线
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
mydoJob.setInOrOut("1");
|
||||
mydoJob.setStatus("1");
|
||||
mydoJob.setEntranceId("G1005");
|
||||
mydoJob.setExecutionPhase("0");
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectInOrOutMydoJobList(mydoJob);
|
||||
//有作业,下发输送机任务号,覆盖任务号
|
||||
if(mydoJobs.size()>0){
|
||||
|
||||
mydoJob = mydoJobs.get(0);
|
||||
SendData taskNo = new SendData(Tools.INT, mydoJob.getTaskNo());
|
||||
byte[] bytes = Tools.sendData(taskNo);
|
||||
int i = PlcSsjRead.WriteToSSJ(SsjDevice.getPlcDbWriteAddress(), bytes);
|
||||
if (i==1){
|
||||
mydoJob.setExecutionPhase("1");
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
log.info("G1005产线输送机下发任务号成功:"+mydoJob.getTaskNo());
|
||||
}
|
||||
|
||||
|
||||
}else {
|
||||
|
||||
//请求wms生成入库作业
|
||||
HashMap<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("trayCode", SsjDevice.getTrayCode());
|
||||
@@ -89,40 +115,47 @@ public class LineSsjThread implements Runnable {
|
||||
paramMap.put("floor", "2");
|
||||
paramMap.put("extranceId", "G1005");
|
||||
AjaxResult ajaxResult = apiService.createInMydoJob(paramMap);
|
||||
//判断结果是否成功
|
||||
if (ajaxResult.isSuccess()) {
|
||||
log.info("请求wms生成入库作业成功,条码为:{}",SsjDevice.getTrayCode());
|
||||
}else{
|
||||
log.error("请求wms生成入库作业失败,条码为:{}",SsjDevice.getTrayCode());
|
||||
//拿到正常作业,插到wcs作业表,下发给输送机任务号,覆盖任务号
|
||||
MydoJob mydoJob2 = (MydoJob) ajaxResult.get("mydoJob");
|
||||
mydoJobService.insertMydoJob(mydoJob2);
|
||||
SendData taskNo = new SendData(Tools.INT, mydoJob2.getTaskNo());
|
||||
byte[] bytes = Tools.sendData(taskNo);
|
||||
int i = PlcSsjRead.WriteToSSJ(SsjDevice.getPlcDbWriteAddress(), bytes);
|
||||
if (i==1){
|
||||
mydoJob2.setExecutionPhase("1");
|
||||
mydoJobService.updateMydoJob(mydoJob2);
|
||||
log.info("G1005产线输送机下发任务号成功:"+mydoJob2.getTaskNo());
|
||||
}
|
||||
} else if (ajaxResult.isError()) {
|
||||
//超大,给plc下发错误信息,等待人工处理
|
||||
//托盘大小对不上,给plc下发错误信息,等待人工处理
|
||||
//码不对,给plc下发错误信息,等待人工处理
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//查这个口的入库作业,与出库作业,如果没有出库作业,且有入库作业,生成agv搬运作业
|
||||
if (SsjDevice.getDw() == 1 && StrUtil.isBlank(SsjDevice.getTrayCode()) && SsjDevice.getTraySize() !=0 && SsjDevice.getTaskNo()<1000) {
|
||||
|
||||
log.info("设备:{} 位置:{} 条码:{} 托盘大小:{}",SsjDevice.getDeviceCode(),"产线",SsjDevice.getTrayCode(),SsjDevice.getTraySize());
|
||||
//查wcs有没作业,有下发给输送机任务号,覆盖任务号
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
mydoJob.setEntranceId("G1005");
|
||||
mydoJob.setInOrOut("1");
|
||||
mydoJob.setStatus("1");
|
||||
mydoJob.setInOut("1");
|
||||
mydoJob.setEntranceId("G1005");
|
||||
mydoJob.setExecutionPhase("0");
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectInOrOutMydoJobList(mydoJob);
|
||||
if (mydoJobs.size() > 0) {
|
||||
//没有,请求错误接口,找作业,返回成功,//拿到正常作业,插到wcs作业表,下发给输送机任务号,覆盖任务号,shibai...
|
||||
|
||||
for (MydoJob mydoJob1 : mydoJobs) {
|
||||
MydoJob mydoJob2 = new MydoJob();
|
||||
if ("1".equals(mydoJob1.getRoadwayId())){
|
||||
mydoJob2.setExitId("L1011");
|
||||
}else{
|
||||
mydoJob2.setExitId("L1012");
|
||||
}
|
||||
mydoJob2.setInOut("2");
|
||||
mydoJob2.setStatus("3");
|
||||
List<MydoJob> mydoJobouts = mydoJobService.selectInOrOutMydoJobList(mydoJob2);
|
||||
if (mydoJobouts.size() == 0) {
|
||||
//生成agv搬运作业
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (SsjDevice.getDw() == 1 && SsjDevice.getTraySize() ==0 && SsjDevice.getTaskNo()>1000) {
|
||||
|
||||
log.info("设备:{} 位置:{} 条码:{} 托盘大小:{}",SsjDevice.getDeviceCode(),"产线",SsjDevice.getTrayCode(),SsjDevice.getTraySize());
|
||||
//任务号查wcs作业,查巷道,看目标输送线是否空闲
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user