巷道口输送机下发校验优化
This commit is contained in:
@@ -95,5 +95,14 @@ public class ConvType {
|
|||||||
entry("L1008", "011100001")
|
entry("L1008", "011100001")
|
||||||
));
|
));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 巷道对应堆垛机设备编号
|
||||||
|
*/
|
||||||
|
public static final Map<String,Integer> CONV_ROAD_STACKER = new HashMap<>(Map.ofEntries(
|
||||||
|
entry("1", 1),
|
||||||
|
entry("2", 2),
|
||||||
|
entry("3", 2)
|
||||||
|
));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -600,62 +600,72 @@ public class RoadConvThread implements Runnable {
|
|||||||
* @param roadSsjDevice
|
* @param roadSsjDevice
|
||||||
*/
|
*/
|
||||||
private void sendStackerIn(DeviceSsj roadSsjDevice){
|
private void sendStackerIn(DeviceSsj roadSsjDevice){
|
||||||
//---------------------------出库任务---------------------------
|
//---------------------------入库任务---------------------------
|
||||||
|
|
||||||
//检查是否有入库任务
|
//可能是下位没有接收到任务号或wcs没有正常写入任务号
|
||||||
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Long.valueOf(roadSsjDevice.getTaskNo()));
|
if (roadSsjDevice.getTaskNo() < 1000){
|
||||||
if (ObjUtil.isNotNull(mydoJob)) {
|
//获取已经更新过【任务状态】和【执行阶段】的任务
|
||||||
|
List<MydoJob> jobs = mydoJobService.selectMydoJobList(
|
||||||
|
new MydoJob().builder().status(TASK_STATUS_RUNNING).executionPhase(TASK_EP_ROADWAY_SSJ).entranceId(roadSsjDevice.getDeviceCode()) .build());
|
||||||
|
if (!jobs.isEmpty()){
|
||||||
|
|
||||||
//检查执行阶段
|
log.info("【巷道口入库】巷道口输送机:{}入库到位,输送机任务号:{},可能是没有正常写入任务或接收失败,尝试重新向输送机下发...", roadSsjDevice.getDeviceCode(), roadSsjDevice.getTaskNo());
|
||||||
if (!mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) return;
|
|
||||||
|
|
||||||
//如果有入库任务 - 检查货位编码是否合法
|
jobs.get(0).setStatus(TASK_STATUS_CREATED);
|
||||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
|
mydoJobService.updateMydoJob(jobs.get(0));
|
||||||
|
|
||||||
int devId = 1;
|
|
||||||
if (!basCargoSpace.getRoadwayId().equals("1")){
|
|
||||||
devId = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ObjUtil.isNull(basCargoSpace)) {
|
|
||||||
log.error("【任务异常】货位不存在 cargoSpaceId{}", mydoJob.getCargoSpaceId());
|
|
||||||
} else {
|
|
||||||
//生成队列
|
|
||||||
List<DdjDeviceExecutionQueue> list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueList(
|
|
||||||
new DdjDeviceExecutionQueue().builder().devId(Convert.toInt(mydoJob.getRoadwayId())).build()
|
|
||||||
);
|
|
||||||
List<Integer> pclList = roadwayMap.get(roadSsjDevice.getDeviceCode());
|
|
||||||
if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)) {
|
|
||||||
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue();
|
|
||||||
ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID());
|
|
||||||
ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo()));
|
|
||||||
ddjDeviceExecutionQueue.setDevName("ddj" + devId);
|
|
||||||
ddjDeviceExecutionQueue.setDevId(devId);
|
|
||||||
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().toString());//货物高度
|
|
||||||
ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date()));
|
|
||||||
// ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_2);
|
|
||||||
ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
|
|
||||||
//修改作业状态
|
|
||||||
mydoJob.setStatus(TASK_STATUS_RUNNING);
|
|
||||||
mydoJob.setExecutionPhase(TASK_EP_DDJ);
|
|
||||||
mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
|
|
||||||
mydoJobService.updateMydoJob(mydoJob);
|
|
||||||
|
|
||||||
log.info("【巷道口入库】输送机:{}入库到位,更新任务状态,等待堆垛机执行,任务号:{}", roadSsjDevice.getDeviceCode(), mydoJob.getTaskNo());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
// log.info("【出库警告】当前出口"+ exitId +"存在入库任务,无法出库!");
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//检查是否有入库任务
|
||||||
|
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Long.valueOf(roadSsjDevice.getTaskNo()));
|
||||||
|
if (ObjUtil.isNotNull(mydoJob)) {
|
||||||
|
//检查执行阶段
|
||||||
|
if (!mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) return;
|
||||||
|
//如果有入库任务 - 检查货位编码是否合法
|
||||||
|
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||||
|
// int devId = 1;
|
||||||
|
// if (!basCargoSpace.getRoadwayId().equals("1")){
|
||||||
|
// devId = 2;
|
||||||
|
// }
|
||||||
|
int devId = ConvType.CONV_ROAD_STACKER.get(basCargoSpace.getRoadwayId());
|
||||||
|
if (ObjUtil.isNull(basCargoSpace)) {
|
||||||
|
log.error("【任务异常】不存在该货位:{}", mydoJob.getCargoSpaceId());
|
||||||
|
} else {
|
||||||
|
//生成队列
|
||||||
|
List<DdjDeviceExecutionQueue> list = ddjDeviceExecutionQueueService.selectDdjDeviceExecutionQueueList(
|
||||||
|
new DdjDeviceExecutionQueue().builder().devId(Convert.toInt(mydoJob.getRoadwayId())).build()
|
||||||
|
);
|
||||||
|
List<Integer> pclList = roadwayMap.get(roadSsjDevice.getDeviceCode());
|
||||||
|
if (CollUtil.isEmpty(list) && CollUtil.isNotEmpty(pclList)) {
|
||||||
|
DdjDeviceExecutionQueue ddjDeviceExecutionQueue = new DdjDeviceExecutionQueue();
|
||||||
|
ddjDeviceExecutionQueue.setUuid(IdUtil.simpleUUID());
|
||||||
|
ddjDeviceExecutionQueue.setRwh(Convert.toLong(mydoJob.getTaskNo()));
|
||||||
|
ddjDeviceExecutionQueue.setDevName("ddj" + devId);
|
||||||
|
ddjDeviceExecutionQueue.setDevId(devId);
|
||||||
|
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().toString());//货物高度
|
||||||
|
ddjDeviceExecutionQueue.setScsj(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
|
// ddjDeviceExecutionQueue.setRwlx(DDJ_RWLX_2);
|
||||||
|
ddjDeviceExecutionQueueService.insertDdjDeviceExecutionQueue(ddjDeviceExecutionQueue);
|
||||||
|
//修改作业状态
|
||||||
|
mydoJob.setStatus(TASK_STATUS_RUNNING);
|
||||||
|
mydoJob.setExecutionPhase(TASK_EP_DDJ);
|
||||||
|
mydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
|
mydoJobService.updateMydoJob(mydoJob);
|
||||||
|
log.info("【巷道口入库】输送机:{}入库到位,任务状态更新为<执行中>,等待堆垛机取货,任务号:{}", roadSsjDevice.getDeviceCode(), mydoJob.getTaskNo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
// log.info("【出库警告】当前出口"+ exitId +"存在入库任务,无法出库!");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user