|
|
@@ -63,11 +63,7 @@ public class RailAgvThread extends BaseThread{
|
|
|
System.out.println("=========延迟"+rmsTaskPool.getRunDelay()+"秒执行=========");
|
|
|
Thread.sleep(rmsTaskPool.getRunDelay()*1000);
|
|
|
}
|
|
|
- String robotType = "";
|
|
|
- Long deviceType = Long.parseLong(rmsTaskPool.getDeviceType());
|
|
|
- if(deviceType.equals(DeviceTypeEnum.RAILAGV.getValue())){
|
|
|
- robotType = DeviceTypeEnum.RAILAGV.getKey();
|
|
|
- }
|
|
|
+ String robotType = DeviceTypeEnum.RAILAGV.getKey();
|
|
|
String robotId = "";
|
|
|
RmsTaskPool bindPool = getBindTask();
|
|
|
if(StringUtils.isNotEmpty(bindPool.getLiftCode())){
|
|
|
@@ -77,41 +73,41 @@ public class RailAgvThread extends BaseThread{
|
|
|
robotId = rmsTaskPool.getLiftCode();
|
|
|
}
|
|
|
String taskType = rmsTaskPool.getTaskType();
|
|
|
-// String data = railHelper.sendAgvTask(rmsTaskPool.getFromSite(), rmsTaskPool.getToSite()
|
|
|
-// , rmsTaskPool.getPickTime(), rmsTaskPool.getKeyRoute(), taskType
|
|
|
-// , robotType, robotId);
|
|
|
-// JSONObject dataJson = JSONUtil.toBean(data, JSONObject.class);
|
|
|
-// String rmsRemoteTaskId = dataJson.getStr("id");
|
|
|
-// if(StringUtils.isNotEmpty(rmsRemoteTaskId)){
|
|
|
-// if(rmsTaskPool.getIsWait() == 0){
|
|
|
-// updateRemark(rmsRemoteTaskId, 1, 3, rmsTaskPool.getTaskName()+"任务已发送");
|
|
|
-// }else{
|
|
|
-// updateRemark(rmsRemoteTaskId, 1, 3, rmsTaskPool.getTaskName()+"任务已发送,等待中");
|
|
|
-// }
|
|
|
-// }else{
|
|
|
-// throw new Exception("AGV任务请求失败");
|
|
|
-// }
|
|
|
-// boolean isRunDone = true;
|
|
|
-// if(TaskTypeEnum.X2B_ROLLER_BACK_UP.getValue().equals(rmsTaskPool.getTaskType())
|
|
|
-// ||TaskTypeEnum.X2B_ROLLER_BACK_DOWN.getValue().equals(rmsTaskPool.getTaskType())){
|
|
|
-// isRunDone = waitAgv(rmsRemoteTaskId);
|
|
|
-// }else{
|
|
|
-// if(rmsTaskPool.getIsWait() != 0){ //不是出入库,不滚动,判断等待用wait
|
|
|
-// log.info("开始AGV等待任务完成");
|
|
|
-// isRunDone = waitAgv(rmsRemoteTaskId);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if(!isRunDone){
|
|
|
-// log.info("任务被取消,结束线程");
|
|
|
-// cancleOrder();
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// waitByTask();
|
|
|
-// if(StringUtils.isNotNull(rmsRemoteTaskId)){
|
|
|
+ String data = railHelper.sendAgvTask(rmsTaskPool.getFromSite(), rmsTaskPool.getToSite()
|
|
|
+ , rmsTaskPool.getPickTime(), rmsTaskPool.getKeyRoute(), taskType
|
|
|
+ , robotType, robotId);
|
|
|
+ JSONObject dataJson = JSONUtil.toBean(data, JSONObject.class);
|
|
|
+ String rmsRemoteTaskId = dataJson.getStr("id");
|
|
|
+ if(StringUtils.isNotEmpty(rmsRemoteTaskId)){
|
|
|
+ if(rmsTaskPool.getIsWait() == 0){
|
|
|
+ updateRemark(rmsRemoteTaskId, 1, 3, rmsTaskPool.getTaskName()+"任务已发送");
|
|
|
+ }else{
|
|
|
+ updateRemark(rmsRemoteTaskId, 1, 3, rmsTaskPool.getTaskName()+"任务已发送,等待中");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ throw new Exception("AGV任务请求失败");
|
|
|
+ }
|
|
|
+ boolean isRunDone = true;
|
|
|
+ if(TaskTypeEnum.X2B_ROLLER_BACK_UP.getValue().equals(rmsTaskPool.getTaskType())
|
|
|
+ ||TaskTypeEnum.X2B_ROLLER_BACK_DOWN.getValue().equals(rmsTaskPool.getTaskType())){
|
|
|
+ isRunDone = waitAgv(rmsRemoteTaskId);
|
|
|
+ }else{
|
|
|
+ if(rmsTaskPool.getIsWait() != 0){ //不是出入库,不滚动,判断等待用wait
|
|
|
+ log.info("开始AGV等待任务完成");
|
|
|
+ isRunDone = waitAgv(rmsRemoteTaskId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!isRunDone){
|
|
|
+ log.info("任务被取消,结束线程");
|
|
|
+ cancleOrder();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ waitByTask();
|
|
|
+ if(StringUtils.isNotNull(rmsRemoteTaskId)){
|
|
|
updateOrder();
|
|
|
updateRemark(null,2, 2, "成功");
|
|
|
checkNextTask();
|
|
|
-// }
|
|
|
+ }
|
|
|
rmsTaskPoolService.closeAutoGroupTask(rmsTaskPool);
|
|
|
}catch (Exception ex){
|
|
|
log.error("AGV异常:" + JSONUtil.toJsonStr(rmsTaskPool), ex);
|
|
|
@@ -129,43 +125,40 @@ public class RailAgvThread extends BaseThread{
|
|
|
definition.setPropagationBehaviorName("PROPAGATION_REQUIRED");
|
|
|
TransactionStatus transaction = transactionManager.getTransaction(definition);
|
|
|
try {
|
|
|
- Long deviceType = Long.parseLong(rmsTaskPool.getDeviceType());
|
|
|
- if(deviceType.equals(DeviceTypeEnum.RAILAGV.getValue())){
|
|
|
- if(rmsTaskPool.getWaitType() != null && rmsTaskPool.getWaitType() == 2){
|
|
|
- //清除料框的标注和是否扫码标识
|
|
|
- String boxCode = rmsTaskPool.getBoxCode();
|
|
|
- Long lineId = rmsTaskPool.getSourceId();
|
|
|
- if(StringUtils.isNotEmpty(boxCode)){
|
|
|
- WmRmsBox wmRmsBox = wmRmsBoxService.selectWmRmsBoxByBoxCode(boxCode);
|
|
|
- if(wmRmsBox != null && wmRmsBox.getWaitType() != null && wmRmsBox.getWaitType() == 2){
|
|
|
- //线边库搬运任务。
|
|
|
- //更新出库明细lineId的状态和库存
|
|
|
- rmsTaskPoolService.updateXbMoveStock(rmsTaskPool);
|
|
|
- // 重置isScan和lineIds
|
|
|
- wmRmsBox.setIsScan("-1");
|
|
|
- if(StringUtils.isNotEmpty(wmRmsBox.getLineIds())){
|
|
|
- String lineIds = wmRmsBox.getLineIds();
|
|
|
- String[] lineIdArray = lineIds.split(",");
|
|
|
- StringBuilder newLineIds = new StringBuilder();
|
|
|
- for (String id : lineIdArray) {
|
|
|
- if (!id.equals(String.valueOf(lineId))) {
|
|
|
- if (newLineIds.length() > 0) {
|
|
|
- newLineIds.append(",");
|
|
|
- }
|
|
|
- newLineIds.append(id);
|
|
|
+ if(rmsTaskPool.getWaitType() == 2){
|
|
|
+ //清除料框的标注和是否扫码标识
|
|
|
+ String boxCode = rmsTaskPool.getBoxCode();
|
|
|
+ Long lineId = rmsTaskPool.getSourceId();
|
|
|
+ if(StringUtils.isNotEmpty(boxCode)){
|
|
|
+ WmRmsBox wmRmsBox = wmRmsBoxService.selectWmRmsBoxByBoxCode(boxCode);
|
|
|
+ if(wmRmsBox != null && wmRmsBox.getWaitType() != null && wmRmsBox.getWaitType() == 2){
|
|
|
+ //线边库搬运任务。
|
|
|
+ //更新出库明细lineId的状态和库存
|
|
|
+ rmsTaskPoolService.updateXbMoveStock(rmsTaskPool);
|
|
|
+ // 重置isScan和lineIds
|
|
|
+ wmRmsBox.setIsScan("-1");
|
|
|
+ if(StringUtils.isNotEmpty(wmRmsBox.getLineIds())){
|
|
|
+ String lineIds = wmRmsBox.getLineIds();
|
|
|
+ String[] lineIdArray = lineIds.split(",");
|
|
|
+ StringBuilder newLineIds = new StringBuilder();
|
|
|
+ for (String id : lineIdArray) {
|
|
|
+ if (!id.equals(String.valueOf(lineId))) {
|
|
|
+ if (newLineIds.length() > 0) {
|
|
|
+ newLineIds.append(",");
|
|
|
}
|
|
|
- }
|
|
|
- if(StringUtils.isNotEmpty(newLineIds.toString())){
|
|
|
- wmRmsBox.setLineIds(newLineIds.toString());
|
|
|
- }else{
|
|
|
- wmRmsBox.setWaitType(-1);
|
|
|
- wmRmsBox.setLineIds("-1");
|
|
|
+ newLineIds.append(id);
|
|
|
}
|
|
|
}
|
|
|
- //搬运结束料框加入出库单信息
|
|
|
- wmRmsBox.setItemOutCode(rmsTaskPool.getSourceType());
|
|
|
- wmRmsBoxService.updateWmRmsBox2(wmRmsBox);
|
|
|
+ if(StringUtils.isNotEmpty(newLineIds.toString())){
|
|
|
+ wmRmsBox.setLineIds(newLineIds.toString());
|
|
|
+ }else{
|
|
|
+ wmRmsBox.setWaitType(-1);
|
|
|
+ wmRmsBox.setLineIds("-1");
|
|
|
+ }
|
|
|
}
|
|
|
+ //搬运结束料框加入出库单信息
|
|
|
+ wmRmsBox.setItemOutCode(rmsTaskPool.getSourceType());
|
|
|
+ wmRmsBoxService.updateWmRmsBox2(wmRmsBox);
|
|
|
}
|
|
|
}
|
|
|
}
|