|
@@ -360,124 +360,124 @@ public class WcsTaskServiceImpl implements IWcsTaskService {
|
|
log.info("已取消的任务无需重复取消");
|
|
log.info("已取消的任务无需重复取消");
|
|
return AjaxResult.error("已取消的任务无需重复取消");
|
|
return AjaxResult.error("已取消的任务无需重复取消");
|
|
}
|
|
}
|
|
-// //转发类型任务才回调
|
|
|
|
-// if (wcsTask.getTaskType().equals(Constant.TASK_TYPE.FORWARD.getValue())) {
|
|
|
|
-// try {
|
|
|
|
-// switch (state) {
|
|
|
|
-// case 1:
|
|
|
|
-// wcsTask.setStartTime(new Date());
|
|
|
|
-// break;
|
|
|
|
-// case 2://完成
|
|
|
|
-// if (wcsTask.getState() != 4
|
|
|
|
-// && (StringUtils.isEmpty(wcsTask.getBeforeTask()) || !wcsTask.getBeforeTask().equals("1"))) {
|
|
|
|
-// log.info("任务未取货,不能直接完成!" + taskNo);
|
|
|
|
-// return AjaxResult.error("任务未取货,不能直接完成!" + taskNo);
|
|
|
|
-// }
|
|
|
|
-// if (wcsTask.getState() == 2) {
|
|
|
|
-// log.info("不能重复放货," + taskNo);
|
|
|
|
-// return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
|
-// }
|
|
|
|
-// if (wcsTask.getState() == 6) {
|
|
|
|
-// return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
|
-// }
|
|
|
|
-// wcsTask.setEndTime(new Date());
|
|
|
|
-// // 解锁终点库位
|
|
|
|
-// baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationTo())
|
|
|
|
-// , Constant.WAREHOUSE_ID, updateBy);
|
|
|
|
-// // 将中间缓存位库存移动到终点
|
|
|
|
-// moveMiddleCacheToDestination(wcsTask);
|
|
|
|
-// //释放redis锁
|
|
|
|
-// if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
|
-// redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()));
|
|
|
|
-// }
|
|
|
|
-// break;
|
|
|
|
-// case 3:
|
|
|
|
-// break;
|
|
|
|
-// case 4:
|
|
|
|
-// if (wcsTask.getState() == 4) {
|
|
|
|
-// log.info("不能重复取货," + taskNo);
|
|
|
|
-// 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);
|
|
|
|
-// // 将起始点库存移动到中间缓存位
|
|
|
|
-// moveStartingPointToMiddleCache(wcsTask);
|
|
|
|
-//
|
|
|
|
-// //释放redis锁
|
|
|
|
-// if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
|
-// redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()), wcsTask.getLocationFrom());
|
|
|
|
-// }
|
|
|
|
-// break;
|
|
|
|
-// case 5:
|
|
|
|
-// break;
|
|
|
|
-// case 6://卸货
|
|
|
|
-// if (wcsTask.getState() != 4
|
|
|
|
-// && (StringUtils.isEmpty(wcsTask.getBeforeTask())|| !wcsTask.getBeforeTask().equals("1"))) {
|
|
|
|
-// log.info("任务未取货,不能直接完成!" + taskNo);
|
|
|
|
-// return AjaxResult.error("任务未取货,不能直接完成!" + taskNo);
|
|
|
|
-// }
|
|
|
|
-// if (wcsTask.getState() == 2) {
|
|
|
|
-// log.info("不能重复放货," + taskNo);
|
|
|
|
-// return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
|
-// }
|
|
|
|
-// if (wcsTask.getState() == 6) {
|
|
|
|
-// return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
|
-// }
|
|
|
|
-// wcsTask.setEndTime(new Date());
|
|
|
|
-// // 解锁终点库位
|
|
|
|
-// baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationTo())
|
|
|
|
-// , Constant.WAREHOUSE_ID, updateBy);
|
|
|
|
-// // 将中间缓存位库存移动到终点
|
|
|
|
-// moveMiddleCacheToDestination(wcsTask);
|
|
|
|
-// //释放redis锁
|
|
|
|
-// if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
|
-// redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()));
|
|
|
|
-// }
|
|
|
|
-// break;
|
|
|
|
-// case 7://取消
|
|
|
|
-// wcsTask.setEndTime(new Date());
|
|
|
|
-// //如果取到货就只解锁终点库位
|
|
|
|
-// if (wcsTask.getState() == 4 || wcsTask.getState() == 5) {
|
|
|
|
-// // 解锁终点库位
|
|
|
|
-// baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationTo())
|
|
|
|
-// , Constant.WAREHOUSE_ID, updateBy);
|
|
|
|
-// } else {
|
|
|
|
-// // 解锁终点和起始库位
|
|
|
|
-// baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom()), Long.parseLong(wcsTask.getLocationTo())
|
|
|
|
-// , Constant.WAREHOUSE_ID, updateBy);
|
|
|
|
-// }
|
|
|
|
-// //释放redis锁
|
|
|
|
-// if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
|
-// redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()));
|
|
|
|
-// }
|
|
|
|
-// // 取消任务删除中间缓存库存
|
|
|
|
-//// cancelTaskDelMiddleCache(wcsTask);
|
|
|
|
-// break;
|
|
|
|
-// case 8:
|
|
|
|
-// log.error("任务异常状态------------" + wcsTask.getTaskNo());
|
|
|
|
-// break;
|
|
|
|
-// default:
|
|
|
|
-// break;
|
|
|
|
-// }
|
|
|
|
-// } catch (Exception e) {
|
|
|
|
-// log.info(wcsTask.getTaskNo() + "-----" + "回调状态:" + state + "异常", e);
|
|
|
|
-// wcsTask.setRemark("回调状态:" + state + "异常");
|
|
|
|
-// //释放redis锁
|
|
|
|
-// if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
|
-// redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()));
|
|
|
|
-// }
|
|
|
|
-// throw new RuntimeException();
|
|
|
|
-// }
|
|
|
|
-// } else {
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
|
|
+ //转发类型任务才回调
|
|
|
|
+ if (wcsTask.getTaskType().equals(Constant.TASK_TYPE.FORWARD.getValue())) {
|
|
|
|
+ try {
|
|
|
|
+ switch (state) {
|
|
|
|
+ case 1:
|
|
|
|
+ wcsTask.setStartTime(new Date());
|
|
|
|
+ break;
|
|
|
|
+ case 2://完成
|
|
|
|
+ if (wcsTask.getState() != 4
|
|
|
|
+ && (StringUtils.isEmpty(wcsTask.getBeforeTask()) || !wcsTask.getBeforeTask().equals("1"))) {
|
|
|
|
+ log.info("任务未取货,不能直接完成!" + taskNo);
|
|
|
|
+ return AjaxResult.error("任务未取货,不能直接完成!" + taskNo);
|
|
|
|
+ }
|
|
|
|
+ if (wcsTask.getState() == 2) {
|
|
|
|
+ log.info("不能重复放货," + taskNo);
|
|
|
|
+ return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
|
+ }
|
|
|
|
+ if (wcsTask.getState() == 6) {
|
|
|
|
+ return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
|
+ }
|
|
|
|
+ wcsTask.setEndTime(new Date());
|
|
|
|
+ // 解锁终点库位
|
|
|
|
+ baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationTo())
|
|
|
|
+ , Constant.WAREHOUSE_ID, updateBy);
|
|
|
|
+ // 将中间缓存位库存移动到终点
|
|
|
|
+ moveMiddleCacheToDestination(wcsTask);
|
|
|
|
+ //释放redis锁
|
|
|
|
+ if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
|
+ redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()));
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ if (wcsTask.getState() == 4) {
|
|
|
|
+ log.info("不能重复取货," + taskNo);
|
|
|
|
+ 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);
|
|
|
|
+ // 将起始点库存移动到中间缓存位
|
|
|
|
+ moveStartingPointToMiddleCache(wcsTask);
|
|
|
|
+
|
|
|
|
+ //释放redis锁
|
|
|
|
+ if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
|
+ redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()), wcsTask.getLocationFrom());
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 5:
|
|
|
|
+ break;
|
|
|
|
+ case 6://卸货
|
|
|
|
+ if (wcsTask.getState() != 4
|
|
|
|
+ && (StringUtils.isEmpty(wcsTask.getBeforeTask())|| !wcsTask.getBeforeTask().equals("1"))) {
|
|
|
|
+ log.info("任务未取货,不能直接完成!" + taskNo);
|
|
|
|
+ return AjaxResult.error("任务未取货,不能直接完成!" + taskNo);
|
|
|
|
+ }
|
|
|
|
+ if (wcsTask.getState() == 2) {
|
|
|
|
+ log.info("不能重复放货," + taskNo);
|
|
|
|
+ return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
|
+ }
|
|
|
|
+ if (wcsTask.getState() == 6) {
|
|
|
|
+ return AjaxResult.error("不能重复放货," + taskNo);
|
|
|
|
+ }
|
|
|
|
+ wcsTask.setEndTime(new Date());
|
|
|
|
+ // 解锁终点库位
|
|
|
|
+ baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationTo())
|
|
|
|
+ , Constant.WAREHOUSE_ID, updateBy);
|
|
|
|
+ // 将中间缓存位库存移动到终点
|
|
|
|
+ moveMiddleCacheToDestination(wcsTask);
|
|
|
|
+ //释放redis锁
|
|
|
|
+ if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
|
+ redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()));
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case 7://取消
|
|
|
|
+ wcsTask.setEndTime(new Date());
|
|
|
|
+ //如果取到货就只解锁终点库位
|
|
|
|
+ if (wcsTask.getState() == 4 || wcsTask.getState() == 5) {
|
|
|
|
+ // 解锁终点库位
|
|
|
|
+ baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationTo())
|
|
|
|
+ , Constant.WAREHOUSE_ID, updateBy);
|
|
|
|
+ } else {
|
|
|
|
+ // 解锁终点和起始库位
|
|
|
|
+ baseLocationInfoService.unLockLocationStockStatus(Long.parseLong(wcsTask.getLocationFrom()), Long.parseLong(wcsTask.getLocationTo())
|
|
|
|
+ , Constant.WAREHOUSE_ID, updateBy);
|
|
|
|
+ }
|
|
|
|
+ //释放redis锁
|
|
|
|
+ if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
|
+ redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()));
|
|
|
|
+ }
|
|
|
|
+ // 取消任务删除中间缓存库存
|
|
|
|
+// cancelTaskDelMiddleCache(wcsTask);
|
|
|
|
+ break;
|
|
|
|
+ case 8:
|
|
|
|
+ log.error("任务异常状态------------" + wcsTask.getTaskNo());
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.info(wcsTask.getTaskNo() + "-----" + "回调状态:" + state + "异常", e);
|
|
|
|
+ wcsTask.setRemark("回调状态:" + state + "异常");
|
|
|
|
+ //释放redis锁
|
|
|
|
+ if (!StringUtils.isEmpty(wcsTask.getExt8())) {
|
|
|
|
+ redisCache.unlockCacheObject(Long.parseLong(wcsTask.getExt8()));
|
|
|
|
+ }
|
|
|
|
+ throw new RuntimeException();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ }
|
|
wcsTask.setUpdateBy(updateBy);
|
|
wcsTask.setUpdateBy(updateBy);
|
|
wcsTask.setState(state.longValue());
|
|
wcsTask.setState(state.longValue());
|
|
wcsTask.setUpdateDate(new Date());
|
|
wcsTask.setUpdateDate(new Date());
|