巷道口输送机下发校验优化
This commit is contained in:
@@ -95,5 +95,14 @@ public class ConvType {
|
||||
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
|
||||
*/
|
||||
private void sendStackerIn(DeviceSsj roadSsjDevice){
|
||||
//---------------------------出库任务---------------------------
|
||||
//---------------------------入库任务---------------------------
|
||||
|
||||
//检查是否有入库任务
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Long.valueOf(roadSsjDevice.getTaskNo()));
|
||||
if (ObjUtil.isNotNull(mydoJob)) {
|
||||
//可能是下位没有接收到任务号或wcs没有正常写入任务号
|
||||
if (roadSsjDevice.getTaskNo() < 1000){
|
||||
//获取已经更新过【任务状态】和【执行阶段】的任务
|
||||
List<MydoJob> jobs = mydoJobService.selectMydoJobList(
|
||||
new MydoJob().builder().status(TASK_STATUS_RUNNING).executionPhase(TASK_EP_ROADWAY_SSJ).entranceId(roadSsjDevice.getDeviceCode()) .build());
|
||||
if (!jobs.isEmpty()){
|
||||
|
||||
//检查执行阶段
|
||||
if (!mydoJob.getExecutionPhase().equals(TASK_EP_ROADWAY_SSJ)) return;
|
||||
log.info("【巷道口入库】巷道口输送机:{}入库到位,输送机任务号:{},可能是没有正常写入任务或接收失败,尝试重新向输送机下发...", roadSsjDevice.getDeviceCode(), roadSsjDevice.getTaskNo());
|
||||
|
||||
//如果有入库任务 - 检查货位编码是否合法
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByWmsCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
|
||||
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 +"存在入库任务,无法出库!");
|
||||
jobs.get(0).setStatus(TASK_STATUS_CREATED);
|
||||
mydoJobService.updateMydoJob(jobs.get(0));
|
||||
}
|
||||
}
|
||||
|
||||
//检查是否有入库任务
|
||||
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