|
@@ -190,7 +190,7 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
if (!StringUtils.isEmpty(wcsTask.getLocationFrom())
|
|
|
&& !StringUtils.isEmpty(wcsTask.getExt5())) {
|
|
|
//更新托盘绑定关系
|
|
|
- wmsBoxInfoService.updateLocationBind(wcsTask.getExt5(),Constant.LOC_MIDDLE_CACHE, null);
|
|
|
+ wmsBoxInfoService.updateLocationBind(wcsTask.getExt5(), Constant.LOC_MIDDLE_CACHE, null);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -218,20 +218,20 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
case "6":
|
|
|
// 修改分配明细为任务完成21
|
|
|
actAllocationDetailsService.modifyAssignmentTaskStatus(wcsTask.getExt6()
|
|
|
- ,Long.valueOf(wcsTask.getLocationFrom()), wcsTask.getExt5());
|
|
|
+ , Long.valueOf(wcsTask.getLocationFrom()), wcsTask.getExt5());
|
|
|
// 修改备货单:分配明细为拣货完成40
|
|
|
actAllocationDetailsService.modifyAssignmentStockTaskStatusPickingComplete(wcsTask.getExt6()
|
|
|
- ,Long.valueOf(wcsTask.getLocationFrom()), wcsTask.getExt5());
|
|
|
+ , Long.valueOf(wcsTask.getLocationFrom()), wcsTask.getExt5());
|
|
|
// 修改库内理货(1)库内理货不生成分配明细所以不修改分配状态(2)出库单状态为完成98,99
|
|
|
wmsDocOrderHeaderService.modifyTheTallyStatusInTheWarehouse(wcsTask.getExt6()
|
|
|
- ,Long.valueOf(wcsTask.getLocationFrom()), wcsTask.getExt5());
|
|
|
+ , Long.valueOf(wcsTask.getLocationFrom()), wcsTask.getExt5());
|
|
|
break;
|
|
|
// 回库 (托盘)
|
|
|
case "9":
|
|
|
// 修改批次lotatt15(出库单号)为空
|
|
|
invLotLocIdService.clearInvActOrderNoByPalletNo(wcsTask.getExt5());
|
|
|
break;
|
|
|
- // 移库
|
|
|
+ // 移库
|
|
|
case "10":
|
|
|
break;
|
|
|
default:
|
|
@@ -254,7 +254,7 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
// 任务状态: 队列等待 直接删除即可 其他状态 需要请求AMS删除
|
|
|
if (wcsTask.getState() == Constant.TASK_STS.TASK9.getValue().longValue()
|
|
|
|| wcsTask.getState() == Constant.TASK_STS.TASK10.getValue().longValue()) {
|
|
|
- callBack(wcsTask.getTaskNo(), 7, null);
|
|
|
+ return callBack(wcsTask.getTaskNo(), 7, null);
|
|
|
} else {
|
|
|
//请求ams 取消任务
|
|
|
AmsTask amsTaskQuery = new AmsTask();
|
|
@@ -333,13 +333,13 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public synchronized void callBack(String taskNo, Integer state, Integer carNo) {
|
|
|
+ public synchronized AjaxResult callBack(String taskNo, Integer state, Integer carNo) {
|
|
|
String updateBy = "NDC";
|
|
|
log.info("agv回传------------->" + taskNo + "," + state);
|
|
|
WcsTask wcsTask = wcsTaskService.selectWcsTaskByTaskNo(taskNo);
|
|
|
if (wcsTask == null) {
|
|
|
log.info("agv回传没有任务记录------------->");
|
|
|
- return;
|
|
|
+ return AjaxResult.error("agv回传没有任务记录------------->");
|
|
|
}
|
|
|
|
|
|
if (state > 1 && state != 7) {
|
|
@@ -348,7 +348,7 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
|
|
|
if (wcsTask.getState() == 2) {
|
|
|
log.info("已完成的任务无需反馈");
|
|
|
- return;
|
|
|
+ return AjaxResult.error("已完成的任务无需反馈");
|
|
|
}
|
|
|
//转发类型任务才回调
|
|
|
if (wcsTask.getTaskType().equals(Constant.TASK_TYPE.FORWARD.getValue())) {
|
|
@@ -358,16 +358,17 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
wcsTask.setStartTime(new Date());
|
|
|
break;
|
|
|
case 2://完成
|
|
|
- if (wcsTask.getState() != 4 && wcsTask.getState() != 7) {
|
|
|
+ if (wcsTask.getState() != 4
|
|
|
+ && (StringUtils.isEmpty(wcsTask.getBeforeTask()) || !wcsTask.getBeforeTask().equals("1"))) {
|
|
|
log.info("任务未取货,不能直接完成!" + taskNo);
|
|
|
- return;
|
|
|
+ return AjaxResult.error("任务未取货,不能直接完成!" + taskNo);
|
|
|
}
|
|
|
if (wcsTask.getState() == 2) {
|
|
|
log.info("不能重复放货," + taskNo);
|
|
|
- return;
|
|
|
+ return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
}
|
|
|
if (wcsTask.getState() == 6) {
|
|
|
- return;
|
|
|
+ return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
}
|
|
|
wcsTask.setEndTime(new Date());
|
|
|
// 解锁终点库位
|
|
@@ -389,8 +390,14 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
case 4:
|
|
|
if (wcsTask.getState() == 4) {
|
|
|
log.info("不能重复取货," + taskNo);
|
|
|
- return;
|
|
|
+ return AjaxResult.error("不能重复取货," + taskNo);
|
|
|
}
|
|
|
+ if (wcsTask.getBeforeTask() != null && wcsTask.getBeforeTask().equals("1")) {
|
|
|
+ log.info("不能重复取货," + taskNo);
|
|
|
+ return AjaxResult.error("不能重复取货," + taskNo);
|
|
|
+ }
|
|
|
+ // 标记已经取货完成
|
|
|
+ wcsTask.setBeforeTask("1");
|
|
|
// 解锁起始库位
|
|
|
baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom())
|
|
|
, Constant.WAREHOUSE_ID, updateBy);
|
|
@@ -407,16 +414,17 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
case 5:
|
|
|
break;
|
|
|
case 6://卸货
|
|
|
- if (wcsTask.getState() != 4 && wcsTask.getState() != 7) {
|
|
|
- log.info("任务未取货,不能直接完成!");
|
|
|
- return;
|
|
|
+ if (wcsTask.getState() != 4
|
|
|
+ && (StringUtils.isEmpty(wcsTask.getBeforeTask())|| !wcsTask.getBeforeTask().equals("1"))) {
|
|
|
+ log.info("任务未取货,不能直接完成!" + taskNo);
|
|
|
+ return AjaxResult.error("任务未取货,不能直接完成!" + taskNo);
|
|
|
}
|
|
|
- if (wcsTask.getState() == 6) {
|
|
|
+ if (wcsTask.getState() == 2) {
|
|
|
log.info("不能重复放货," + taskNo);
|
|
|
- return;
|
|
|
+ return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
}
|
|
|
- if (wcsTask.getState() == 2) {
|
|
|
- return;
|
|
|
+ if (wcsTask.getState() == 6) {
|
|
|
+ return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
}
|
|
|
wcsTask.setEndTime(new Date());
|
|
|
// 解锁终点库位
|
|
@@ -475,6 +483,7 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
wcsTask.setState(state.longValue());
|
|
|
wcsTask.setUpdateDate(new Date());
|
|
|
wcsTaskService.updateWcsTask(wcsTask);
|
|
|
+ return AjaxResult.success("操作成功!");
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -505,7 +514,7 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
|
if (num == 0) {
|
|
|
return;
|
|
|
}
|
|
|
- redisCache.setCacheObject(RedisKey.AGV02_TASK_NUM, num -1);
|
|
|
+ redisCache.setCacheObject(RedisKey.AGV02_TASK_NUM, num - 1);
|
|
|
}
|
|
|
}
|
|
|
|