优化修正请求和响应逻辑
This commit is contained in:
@@ -124,9 +124,11 @@ public class DdjThread implements Runnable {
|
||||
|
||||
// 1.联机自动【5】 2.设备状态 - 运行中【1】 3.执行阶段【2】
|
||||
if (ddj.getCzfs() == 5 && ddj.getSbzt() == 1 && ddj.getJdbz() == 2) {
|
||||
|
||||
//根据堆垛机上任务号,修改任务执行阶段
|
||||
Long rwh = ddj.getRwh();
|
||||
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(rwh, ddj.getId());
|
||||
|
||||
if (ddjDeviceExecutionQueue != null && !"1".equals(ddjDeviceExecutionQueue.getSpare1())) {
|
||||
//修改队列执行阶段
|
||||
ddjDeviceExecutionQueue.setRwzt(ddj.getJdbz());
|
||||
@@ -143,7 +145,7 @@ public class DdjThread implements Runnable {
|
||||
// 判断堆垛机上任务是否已重分,若未重分,则调用接口,请求重分货位
|
||||
Long rwh = ddj.getRwh();
|
||||
|
||||
//获取堆垛机正在执行中的任务和队列
|
||||
//查村正在执行中的【任务号】获取堆垛机队列
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(rwh);
|
||||
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueByRwh(rwh, ddj.getId());
|
||||
|
||||
@@ -155,10 +157,10 @@ public class DdjThread implements Runnable {
|
||||
//上报异常 - 向wms请求重分接口
|
||||
TaskExceptionRequest taskExceptionRequest = new TaskExceptionRequest();
|
||||
taskExceptionRequest.setTaskClass(mydoJob.getInOrOut());
|
||||
taskExceptionRequest.setType(TASK_EXCEPTION_STOCKIN_OCCUPIED);
|
||||
taskExceptionRequest.setType(String.valueOf(TASK_EXCEPTION_STOCKIN_OCCUPIED));
|
||||
taskExceptionRequest.setTaskCode(mydoJob.getWmsTaskNo());
|
||||
taskExceptionRequest.setTaskTypeCode("");//todo 不知道填什么内容
|
||||
taskExceptionRequest.setReqCode(mydoJob.getJobId() + mydoJob.getTaskNo());
|
||||
taskExceptionRequest.setTaskTypeCode("");//todo 不知道填什么
|
||||
taskExceptionRequest.setReqCode(UUID.randomUUID().toString().replace("-", ""));
|
||||
taskExceptionRequest.setAdverseCauses("当前位置已有货物,盘点后重新分配货位");
|
||||
|
||||
AjaxResult ajaxResult = apiService.reAssign(taskExceptionRequest);
|
||||
@@ -192,7 +194,13 @@ public class DdjThread implements Runnable {
|
||||
|
||||
|
||||
// -------------------------------------- 4 取货无货,作废当前任务,重新分配单据 --------------------------------------
|
||||
|
||||
//测试数据
|
||||
// ddj.setCzfs(5);
|
||||
// ddj.setSbzt(1053);
|
||||
// ddj.setYxxf(1);
|
||||
// ddj.setJdbz(3);
|
||||
// ddj.setRwh(Long.valueOf(51217));
|
||||
// ddj.setId(1);
|
||||
// 1.联机自动【5】 2.设备状态-取货无货【1053】 3.执行阶段【<5】(任务执行中)
|
||||
if (ddj.getCzfs() == 5 && ddj.getSbzt() == 1053 && ddj.getJdbz() < 5) {
|
||||
Long rwh = ddj.getRwh();
|
||||
@@ -203,13 +211,14 @@ public class DdjThread implements Runnable {
|
||||
|
||||
//找到对应任务 调用api接口 取货无货,重新分配单据
|
||||
if (ObjUtil.isNotNull(ddjDeviceExecutionQueue)) {
|
||||
|
||||
//向wms返回异常信息
|
||||
TaskExceptionRequest taskExceptionRequest = new TaskExceptionRequest();
|
||||
taskExceptionRequest.setTaskClass(mydoJob.getInOrOut());
|
||||
taskExceptionRequest.setType(TASK_EXCEPTION_STOCKOUT_EMPTY);
|
||||
taskExceptionRequest.setType(String.valueOf(TASK_EXCEPTION_STOCKIN_OCCUPIED));
|
||||
taskExceptionRequest.setTaskCode(String.valueOf(mydoJob));
|
||||
taskExceptionRequest.setTaskTypeCode("");//todo 不知道填什么内容
|
||||
taskExceptionRequest.setReqCode(UUID.randomUUID().toString());
|
||||
taskExceptionRequest.setTaskTypeCode("");//todo 不知道填什么
|
||||
taskExceptionRequest.setReqCode(UUID.randomUUID().toString().replace("-", ""));
|
||||
taskExceptionRequest.setAdverseCauses("取货位置空,盘点后作废该任务");
|
||||
|
||||
AjaxResult ajaxResult = apiService.reMaterial(taskExceptionRequest);
|
||||
|
||||
@@ -4,8 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.lang.UUID;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.ruoyi.api.domain.wcs2wms.ResponseResult;
|
||||
import com.ruoyi.api.domain.wcs2wms.stockin.StockinReceive;
|
||||
import com.ruoyi.api.service.IApiService;
|
||||
import com.ruoyi.bas.cargospace.domain.BasCargoSpace;
|
||||
@@ -22,6 +20,9 @@ import com.ruoyi.queue.agv.domain.AgvQueue;
|
||||
import com.ruoyi.queue.agv.service.IAgvQueueService;
|
||||
import com.ruoyi.schedule.plcRead.ssj.PlcSsjRead;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.*;
|
||||
@@ -36,6 +37,7 @@ import static com.ruoyi.schedule.plcRead.ssj.PlcSsjRead.writeToSsjQH;
|
||||
* 出入口输送线线程
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class PortConvThread implements Runnable {
|
||||
|
||||
public HashMap<String, List<String>> ssjCodeList;
|
||||
@@ -44,7 +46,8 @@ public class PortConvThread implements Runnable {
|
||||
private IAgvQueueService agvQueueService;
|
||||
private IMydoJobService mydoJobService;
|
||||
private IJobCallBackService jobCallBackService;
|
||||
private IBasCargoSpaceService cargoSpaceService;
|
||||
private IBasCargoSpaceService basCargoSpaceService;
|
||||
|
||||
|
||||
public boolean isRun = true;
|
||||
|
||||
@@ -59,6 +62,7 @@ public class PortConvThread implements Runnable {
|
||||
agvQueueService = SpringUtils.getBean(IAgvQueueService.class);
|
||||
mydoJobService = SpringUtils.getBean(IMydoJobService.class);
|
||||
jobCallBackService = SpringUtils.getBean(IJobCallBackService.class);
|
||||
basCargoSpaceService = SpringUtils.getBean(IBasCargoSpaceService.class);
|
||||
log.info("初始化服务 {},{}", apiService, agvQueueService);
|
||||
}
|
||||
|
||||
@@ -96,26 +100,37 @@ public class PortConvThread implements Runnable {
|
||||
|
||||
|
||||
public void inDispatch(DeviceSsj inSsjDevice) {
|
||||
// 测试数据
|
||||
// inSsjDevice.setInOrOut(1);
|
||||
// inSsjDevice.setTrayCode("T888888");
|
||||
// inSsjDevice.setKx(0);
|
||||
// inSsjDevice.setDw(1);
|
||||
// inSsjDevice.setHeight("1");
|
||||
// inSsjDevice.setWeight("100");
|
||||
// inSsjDevice.setException(0);
|
||||
// inSsjDevice.setRkqq(1);
|
||||
|
||||
switch (inSsjDevice.getInOrOut()) {
|
||||
//---------------------------入库模式---------------------------
|
||||
case 1:
|
||||
//---------------------------入口取输送机(叉车取放货位置)---------------------------
|
||||
//输送机【非空闲】、【输送到位】、【条码不为空】、有【入库请求】
|
||||
//输送机【非空闲】、【输送到位】(【条码不为空】、有【入库请求】)
|
||||
if (inSsjDevice.getKx() != 1 && inSsjDevice.getDw() == 1) {
|
||||
|
||||
AjaxResult ajaxResult;
|
||||
|
||||
//请求参数
|
||||
HashMap<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("taskTypeCode", inSsjDevice.getTrayCode());//任务类型编号
|
||||
paramMap.put("taskTypeCode", "inBound");//任务类型编号
|
||||
paramMap.put("reqCode", UUID.randomUUID().toString());//请求码
|
||||
paramMap.put("cntCode", inSsjDevice.getTrayCode());//容器编号
|
||||
int height = inSsjDevice.getHeight();
|
||||
int weight = inSsjDevice.getWeight();
|
||||
String height = inSsjDevice.getHeight();
|
||||
String weight = inSsjDevice.getWeight();
|
||||
paramMap.put("weight", weight);//重量
|
||||
paramMap.put("height", height);//高度
|
||||
paramMap.put("altimetry", height);//高度
|
||||
paramMap.put("adverseCauses", "");//异常信息
|
||||
|
||||
//入库口异常校验
|
||||
//-----------------入库口异常校验-----------------
|
||||
switch (inSsjDevice.getException()) {
|
||||
|
||||
//外形检测异常
|
||||
@@ -155,35 +170,34 @@ public class PortConvThread implements Runnable {
|
||||
return;
|
||||
}
|
||||
|
||||
//校验:有【入库请求】再请求获取wcs任务
|
||||
//-----------------校验:有【入库请求】再请求获取wcs任务-----------------
|
||||
if (inSsjDevice.getRkqq() != 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
//校验:当前条码任务已存在
|
||||
//-----------------校验:当前条码任务已存在-----------------
|
||||
MydoJob job = new MydoJob();
|
||||
job.setTrayCode(inSsjDevice.getTrayCode());
|
||||
if (mydoJobService.selectMydoJobList(job).size() > 0) {
|
||||
if (!mydoJobService.selectMydoJobList(job).isEmpty()) {
|
||||
log.warn("【生成wcs任务异常】该托盘号已有作业,托盘条码:{}",inSsjDevice.getTrayCode());
|
||||
return;
|
||||
}
|
||||
|
||||
//校验:当前条码已有库存
|
||||
//-----------------校验:当前条码已有库存-----------------
|
||||
BasCargoSpace cargoSpace = new BasCargoSpace();
|
||||
cargoSpace.setTrayCode(inSsjDevice.getTrayCode());
|
||||
if (cargoSpaceService.selectBasCargoSpaceList(cargoSpace).size() > 0) {
|
||||
if (!basCargoSpaceService.selectBasCargoSpaceList(cargoSpace).isEmpty()) {
|
||||
log.warn("【生成wcs任务异常】该托盘号已有库存,托盘条码:{}",inSsjDevice.getTrayCode());
|
||||
return;
|
||||
}
|
||||
|
||||
//请求生成wcs任务
|
||||
ajaxResult = apiService.createInMydoJob(paramMap);
|
||||
//-----------------请求生成wcs任务-----------------
|
||||
ajaxResult = apiService.createMydoJobForStockin(paramMap);
|
||||
if (ajaxResult.isSuccess()) {
|
||||
|
||||
//获取wms下发的任务号和分配货位
|
||||
StockinReceive result = BeanUtil.toBean(ajaxResult.get("result"), StockinReceive.class);
|
||||
StockinReceive result = BeanUtil.toBean(ajaxResult.get("data"), StockinReceive.class);
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
// mydoJob.setJobId();
|
||||
mydoJob.setTrayCode(result.getCntCode());
|
||||
mydoJob.setCargoSpaceId(result.getSiteCode());
|
||||
mydoJob.setWmsTaskNo(result.getTaskCode());
|
||||
@@ -201,23 +215,26 @@ public class PortConvThread implements Runnable {
|
||||
|
||||
mydoJob.setStatus("1");
|
||||
mydoJob.setInOrOut("1");
|
||||
mydoJob.setEntranceId("G1004");
|
||||
mydoJob.setExecutionPhase(TASK_EP_CREATE);
|
||||
mydoJob.setCreateTime(new Date());
|
||||
// mydoJob.setTraySize(Convert.toStr(inSsjDevice.getTraySize()));
|
||||
mydoJob.setFaultFlag("0");
|
||||
mydoJob.setPriority(Long.valueOf(10));
|
||||
|
||||
//拿到正常作业,插到wcs作业表,下发给输送机任务号,覆盖任务号
|
||||
if (mydoJobService.insertMydoJob(mydoJob) == 1) {
|
||||
log.info("请求生成wcs作业成功,wms下发任务单号:{}, 任务号:{},托盘条码:{},分配货位:{}", mydoJob.getJobId(), mydoJob.getTaskNo(), mydoJob.getTrayCode(), mydoJob.getCargoSpaceId());
|
||||
//如果还没有生成wcs任务 - 先生成一条任务记录
|
||||
if (mydoJobService.selectInOrOutMydoJobList(mydoJob).isEmpty()) {
|
||||
mydoJobService.insertMydoJob(mydoJob);
|
||||
log.info("【入库请求】请求生成wcs作业成功,wms下发任务单号:{}, 任务号:{},托盘条码:{},分配货位:{}", mydoJob.getJobId(), mydoJob.getTaskNo(), mydoJob.getTrayCode(), mydoJob.getCargoSpaceId());
|
||||
}else{
|
||||
//向输送机下发任务号
|
||||
//如果已经生成入库任务 - 向输送机下发任务号
|
||||
//todo 调整输送去向值
|
||||
int i = writeToSsj(inSsjDevice.getPlcDbWriteAddress(), mydoJob.getTaskNo(), Integer.parseInt(mydoJob.getTraySize()), 1);
|
||||
if (i == 1) {
|
||||
//写入成功则更新执行阶段
|
||||
mydoJob.setExecutionPhase(TASK_EP_LINE_SSJ);
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
log.info("G1004入口输送机下发任务号成功:{}", mydoJob.getTaskNo());
|
||||
log.info("【更新状态】G1004入口输送机下发任务号成功:{}", mydoJob.getTaskNo());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,7 +244,7 @@ public class PortConvThread implements Runnable {
|
||||
int i = writeToSsj(inSsjDevice.getPlcDbWriteAddress(), "99", 99, 1);
|
||||
|
||||
//todo 接口调用失败处理
|
||||
log.info("【请求入库】请求生成wcs作业失败退回,请重试");
|
||||
log.info("【入库请求】请求生成wcs作业失败退回,请重试,请求内容:{}");
|
||||
|
||||
}
|
||||
}
|
||||
@@ -239,7 +256,7 @@ public class PortConvThread implements Runnable {
|
||||
//查询该出库任务
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(inSsjDevice.getTaskNo()));
|
||||
if (mydoJob != null && Integer.parseInt(mydoJob.getInOrOut()) > 20) {
|
||||
log.info("设备:{} 位置:{} 任务号:{} 出库到位", "输送线:", inSsjDevice.getDeviceCode(), mydoJob.getTaskNo());
|
||||
log.info("【出库到位】设备:{},位置:{},任务号:{},出库到位", "输送线:", inSsjDevice.getDeviceCode(), mydoJob.getTaskNo());
|
||||
mydoJobService.insertHistory(mydoJob.getJobId());
|
||||
mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId());
|
||||
JobCallBack jobCallBack = new JobCallBack();
|
||||
@@ -249,7 +266,7 @@ public class PortConvThread implements Runnable {
|
||||
jobCallBack.setTaskNo(Convert.toLong(mydoJob.getTaskNo()));
|
||||
jobCallBack.setCreateTime(new Date());
|
||||
jobCallBack.setTaskTypeCode("");//todo ???
|
||||
jobCallBack.setReqCode(UUID.randomUUID().toString());
|
||||
jobCallBack.setReqCode(UUID.randomUUID().toString().replace("-", ""));
|
||||
jobCallBack.setTaskCode(mydoJob.getWmsTaskNo());
|
||||
// jobCallBack.setSpare1("0");
|
||||
jobCallBackService.insertJobCallBack(jobCallBack);
|
||||
|
||||
@@ -53,6 +53,7 @@ public class RoadConvThread implements Runnable {
|
||||
basCargoSpaceService = SpringUtils.getBean(IBasCargoSpaceService.class);
|
||||
ddjDeviceExecutionQueueService = SpringUtils.getBean(IDdjDeviceExecutionQueueService.class);
|
||||
//初始化巷道口 排 列 层
|
||||
//todo 核对堆垛机取放位置的货位编码
|
||||
roadwayMap.put("L1001", Arrays.asList(2, 0, 1));
|
||||
// roadwayMap.put("L1004", Arrays.asList(4, 0, 1));
|
||||
log.info("初始化服务 {},{}", apiService, agvQueueService);
|
||||
@@ -91,82 +92,74 @@ public class RoadConvThread implements Runnable {
|
||||
|
||||
|
||||
public void inDispatch(DeviceSsj roadSsjDevice) {
|
||||
//巷道口到位,且任务号大于1000
|
||||
|
||||
//---------------------------入库任务---------------------------
|
||||
//巷道口输送机到位,且任务号大于1000
|
||||
if (roadSsjDevice.getDw()==1 && roadSsjDevice.getTaskNo()>1000) {
|
||||
|
||||
//查找当前执行的入库任务
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(roadSsjDevice.getTaskNo()));
|
||||
if(ObjUtil.isNotNull(mydoJob)){
|
||||
if(mydoJob.getCargoSpaceId() == null || "".equals(mydoJob.getCargoSpaceId())){
|
||||
AjaxResult ajaxResult = apiService.requestWmsSpace(mydoJob);
|
||||
if(ajaxResult.isSuccess()){
|
||||
BasCargoSpace space = BeanUtil.toBean(ajaxResult.get("data"), BasCargoSpace.class);
|
||||
String cargoSpaceId = space.getCargoSpaceId();
|
||||
mydoJob.setCargoSpaceId(cargoSpaceId);
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
}
|
||||
}
|
||||
if(mydoJob.getCargoSpaceId()!=null && !"".equals(mydoJob.getCargoSpaceId())){
|
||||
if(mydoJob.getExecutionPhase().equals(TASK_EP_SSJ)){
|
||||
mydoJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ);
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
}
|
||||
if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)
|
||||
&& Convert.toInt(mydoJob.getInOrOut()) < 20) {
|
||||
List<DdjDeviceExecutionQueue> ddjDeviceExecutionQueues = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_1, Convert.toInt(mydoJob.getRoadwayId()));
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
List<Integer> pclList = roadwayMap.get(roadSsjDevice.getDeviceCode());
|
||||
if (CollUtil.isEmpty(ddjDeviceExecutionQueues) && ObjUtil.isNotNull(basCargoSpace) && CollUtil.isNotEmpty(pclList)) {
|
||||
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue();
|
||||
ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID());
|
||||
ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo()));
|
||||
ddjDeviceExecutionQueue.setDevName(mydoJob.getRoadwayId());
|
||||
ddjDeviceExecutionQueue.setDevId(Convert.toInt(mydoJob.getRoadwayId()));
|
||||
ddjDeviceExecutionQueue.setRwzt(0);
|
||||
ddjDeviceExecutionQueue.setYph(pclList.get(0));
|
||||
ddjDeviceExecutionQueue.setYlh(pclList.get(1));
|
||||
ddjDeviceExecutionQueue.setYch(pclList.get(2));
|
||||
ddjDeviceExecutionQueue.setMbph(Convert.toInt(basCargoSpace.getThePlatoon()));
|
||||
ddjDeviceExecutionQueue.setMblh(Convert.toInt(basCargoSpace.getTheColumn()));
|
||||
ddjDeviceExecutionQueue.setMbch(Convert.toInt(basCargoSpace.getTheFloor()));
|
||||
ddjDeviceExecutionQueue.setDdjxf("0");
|
||||
ddjDeviceExecutionQueue.setMlfs(5);
|
||||
ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize());
|
||||
ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date()));
|
||||
ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_1);
|
||||
ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
|
||||
|
||||
mydoJob.setExecutionPhase(TASK_EP_DDJ);
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
}
|
||||
//更新任务阶段: 入口输送机 → 巷道口入库到位
|
||||
if(mydoJob.getExecutionPhase().equals(TASK_EP_SSJ)){
|
||||
mydoJob.setExecutionPhase(TASK_EP_ROADWAY_SSJ);
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
}
|
||||
|
||||
// 检查任务属性:【任务已存在】、执行阶段-【巷道口输送机到位】、任务类型-【入库】
|
||||
// 下发堆垛机执行队列
|
||||
if (ObjUtil.isNotNull(mydoJob) && mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)
|
||||
&& Convert.toInt(mydoJob.getInOrOut()) < 20) {
|
||||
List<DdjDeviceExecutionQueue> ddjDeviceExecutionQueues = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_1, Convert.toInt(mydoJob.getRoadwayId()));
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
List<Integer> pclList = roadwayMap.get(roadSsjDevice.getDeviceCode());
|
||||
if (CollUtil.isEmpty(ddjDeviceExecutionQueues) && ObjUtil.isNotNull(basCargoSpace) && CollUtil.isNotEmpty(pclList)) {
|
||||
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue();
|
||||
ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID());
|
||||
ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo()));
|
||||
ddjDeviceExecutionQueue.setDevName(mydoJob.getRoadwayId());
|
||||
ddjDeviceExecutionQueue.setDevId(Convert.toInt(mydoJob.getRoadwayId()));
|
||||
ddjDeviceExecutionQueue.setRwzt(0);
|
||||
ddjDeviceExecutionQueue.setYph(pclList.get(0));
|
||||
ddjDeviceExecutionQueue.setYlh(pclList.get(1));
|
||||
ddjDeviceExecutionQueue.setYch(pclList.get(2));
|
||||
ddjDeviceExecutionQueue.setMbph(Convert.toInt(basCargoSpace.getThePlatoon()));
|
||||
ddjDeviceExecutionQueue.setMblh(Convert.toInt(basCargoSpace.getTheColumn()));
|
||||
ddjDeviceExecutionQueue.setMbch(Convert.toInt(basCargoSpace.getTheFloor()));
|
||||
ddjDeviceExecutionQueue.setDdjxf("0");
|
||||
ddjDeviceExecutionQueue.setMlfs(5);
|
||||
ddjDeviceExecutionQueue.setSpare1(mydoJob.getTraySize());
|
||||
ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date()));
|
||||
ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_1);
|
||||
ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
|
||||
|
||||
//生成堆垛机执行队列后更新任务阶段
|
||||
mydoJob.setExecutionPhase(TASK_EP_DDJ);
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(roadSsjDevice.getKx()==1 && roadSsjDevice.getTaskNo() == 0){
|
||||
// List<String> exitList = new ArrayList<>();
|
||||
// if("L1002".equals(roadSsjDevice.getDeviceCode())){
|
||||
// exitList.add("L1001");
|
||||
// }
|
||||
// if("L1004".equals(roadSsjDevice.getDeviceCode())){
|
||||
// exitList.add("L1003");
|
||||
// }
|
||||
// List<MydoJob> inList = mydoJobService.getInJobByEntrance(exitList);
|
||||
String exitId = "";
|
||||
if("L1002".equals(roadSsjDevice.getDeviceCode())){
|
||||
exitId = "L1001";
|
||||
}
|
||||
if("L1004".equals(roadSsjDevice.getDeviceCode())){
|
||||
exitId = "L1003";
|
||||
}
|
||||
|
||||
//---------------------------出库任务---------------------------
|
||||
if(roadSsjDevice.getKx()==1 && roadSsjDevice.getTaskNo() == 0){
|
||||
|
||||
//检查是否有入口是【G1004】的入库任务
|
||||
String exitId = "G1004";
|
||||
List<MydoJob> inList = mydoJobService.getInJobByEntranceId(exitId);
|
||||
|
||||
if(inList.size() == 0){
|
||||
// MydoJob mydoJob = mydoJobService.selectMydoJobByExitList(exitList);
|
||||
|
||||
//检查是否有出库任务
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByExitId(exitId);
|
||||
if (ObjUtil.isNotNull(mydoJob)) {
|
||||
|
||||
//如果有出库任务 - 检查货位编码是否合法
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
if (ObjUtil.isNull(basCargoSpace)) {
|
||||
log.error("货位不存在 cargoSpaceId{}", mydoJob.getCargoSpaceId());
|
||||
log.error("【任务异常】货位不存在 cargoSpaceId{}", mydoJob.getCargoSpaceId());
|
||||
} else {
|
||||
//生成队列
|
||||
List<DdjDeviceExecutionQueue> list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueListByRwlx(DDJ_RWLX_1, Convert.toInt(mydoJob.getRoadwayId()));
|
||||
@@ -200,7 +193,7 @@ public class RoadConvThread implements Runnable {
|
||||
}
|
||||
}
|
||||
}else{
|
||||
log.info("当前出口"+ exitId+"存在入库任务,无法出库!");
|
||||
log.info("【出库警告】当前出口"+ exitId +"存在入库任务,无法出库!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user