diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java index c8e830b2..651b018f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java @@ -273,6 +273,55 @@ public class AppTaskController extends BaseController ObjectUtil.isEmpty(wcsStackerTask.getVehicleNo())){ return error("缺少请求数据"); } + // 检查是不是有库存,有库存并且货位是空的是捡货完回库的 + AppStock appStock = new AppStock(); + appStock.setVehicleId(wcsStackerTask.getVehicleNo()); + appStock.setLocationId(""); + List appStocks = appStockService.selectAppStockList(appStock); + if(appStocks == null){ + return error("数据服务异常"); + } + if(!appStocks.isEmpty()){ + AppTask appTask = new AppTask(); + appTask.setVehicleId(wcsStackerTask.getVehicleNo()); + AppTask appTask2 = new AppTask(); + BeanUtils.copyProperties(wcsStackerTask, appTask2); + appTask2.setTaskId("RK"+System.currentTimeMillis()); + appTask2.setWcsTaskId("RK"+System.currentTimeMillis()); + appTask2.setTaskStatus(1); + appTask2.setTaskType(1); + appTask2.setOrigin(wcsStackerTask.getPoint()); + appTask2.setTaskPriority(1); + String location = appLocationService.sendLocation(); + appTask2.setDestination(location); + appTask2.setVehicleId(wcsStackerTask.getVehicleNo()); + int i1 = appTaskService.insertAppTask(appTask2); + if(i1 == 0 ){ + return error("wms生成入库任务异常"); + } + AppWcsTask appTask1 = new AppWcsTask(); + BeanUtils.copyProperties(wcsStackerTask, appTask); + appTask1.setWcsTaskId(appTask2.getTaskId()); + appTask1.setWcsTaskStatus(1); + appTask1.setWcsTaskType(appTask2.getTaskType()); + appTask1.setOrigin("101"); + appTask1.setTaskPriority(appTask2.getTaskPriority()); + appTask1.setDestination(location); + appTask1.setSendTime(new Date()); + appTask1.setVehicleId(appTask2.getVehicleId()); + int i = appWcsTaskService.insertAppWcsTask(appTask1); + if(i == 0 ){ + return error("wcs生成入库任务异常"); + } + + WcsDate wcsDate = new WcsDate(); + wcsDate.setTaskId(appTask2.getTaskId()); + wcsDate.setUser("WMS"); + wcsDate.setVehicleNo(wcsStackerTask.getVehicleNo()); + wcsDate.setDestination(location); + return success(wcsDate); + } + // 没有库存,表示可能是新入库的 AppPendingStorage appPendingStorage = new AppPendingStorage(); appPendingStorage.setVehicleNo(wcsStackerTask.getVehicleNo()); List appPendingStorages = appPendingStorageService.selectAppPendingStorageList(appPendingStorage); @@ -863,7 +912,7 @@ public class AppTaskController extends BaseController } } - + /** * 请求出库 * @param outRequest 出库请求 diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/TaskExecutor.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/TaskExecutor.java index 02a31be6..10ec572a 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/TaskExecutor.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/TaskExecutor.java @@ -184,6 +184,41 @@ public class TaskExecutor { return; } for (AppTask task : appTasks) { + // 检查是否存在库存 + AppStock appStockCheck = new AppStock(); + appStockCheck.setVehicleId(task.getVehicleId()); + List appStocks = appStockService.selectAppStockList(appStockCheck); + if (appStocks == null) { + continue; + } + if (!appStocks.isEmpty()) { // 存在库存,可能是回库任务 + int updateLocationWithVehicleId = appStockService.updateLocationWithVehicleId(task.getVehicleId(), task.getDestination()); + logger.info("重新回库更新库存成功,更新条数:{}", updateLocationWithVehicleId); + AppTask updateRemark = new AppTask(); + updateRemark.setTaskId(task.getTaskId()); + updateRemark.setRemark("已更新库存库位"); + appTaskService.updateAppTask(updateRemark); // 更新备注信息 + AppTaskBak appTaskBak = new AppTaskBak(); + appTaskBak.setTaskId(task.getTaskId()); + appTaskBak.setTaskStatus(task.getTaskStatus()); + appTaskBak.setRemark(updateRemark.getRemark()); + appTaskBak.setTaskType(task.getTaskType()); + appTaskBak.setTaskPriority(task.getTaskPriority()); + appTaskBak.setVehicleId(task.getVehicleId()); + appTaskBak.setOrigin(task.getOrigin()); + appTaskBak.setDestination(task.getDestination()); + appTaskBak.setWcsTaskId(task.getWcsTaskId()); + appTaskBak.setFinishTime(task.getFinishTime()); + appTaskBak.setGoodsId(task.getGoodsId()); + appTaskBak.setOpNum(task.getOpNum()); + appTaskBak.setStockNum(task.getStockNum()); + appTaskBak.setOpUser(task.getOpUser()); + appTaskBak.setPreTask(task.getPreTask()); + logger.info("入库任务数据归档成功(回库)。{}", JSON.toJSONString(appTaskBak)); + appTaskBakService.insertAppTaskBak(appTaskBak);// 数据归档 + appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据 + return; + } // 从码盘表内拉出数据 AppPendingStorage appPendingStorage = new AppPendingStorage(); appPendingStorage.setVehicleNo(task.getVehicleId()); diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppStockMapper.java b/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppStockMapper.java index 17857eb5..8e8e995e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppStockMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppStockMapper.java @@ -64,4 +64,6 @@ public interface AppStockMapper List selectStockByGoodsId(AppStock appStock); int updateSts(AppStock appStock); + + int updateLocationWithVehicleId(String vehicleId, String location); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppStockService.java b/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppStockService.java index 46813a55..ed2d3ce3 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppStockService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppStockService.java @@ -62,6 +62,9 @@ public interface IAppStockService public int updateNewLocation(String oldLocation, String newLocation); + + int updateLocationWithVehicleId(String vehicleId, String location); + List selectStockByGoodsId(AppStock tMiStock); int updateSts(AppStock tMiStock3); diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppStockServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppStockServiceImpl.java index 46898d85..755204ad 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppStockServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppStockServiceImpl.java @@ -98,6 +98,12 @@ public class AppStockServiceImpl implements IAppStockService public int updateNewLocation(String oldLocation, String newLocation) { return appStockMapper.updateNewLocation(oldLocation,newLocation); } + + @Override + public int updateLocationWithVehicleId(String vehicleId, String location) { + return appStockMapper.updateLocationWithVehicleId(vehicleId,location); + } + @Override public List selectStockByGoodsId(AppStock appStock) { return appStockMapper.selectStockByGoodsId(appStock); diff --git a/ruoyi-system/src/main/resources/mapper/app/AppStockMapper.xml b/ruoyi-system/src/main/resources/mapper/app/AppStockMapper.xml index 4c7c4207..57e608f6 100644 --- a/ruoyi-system/src/main/resources/mapper/app/AppStockMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/app/AppStockMapper.xml @@ -169,6 +169,9 @@ update app_stock set location_id = #{newLocation} where location_id = #{oldLocation} + + update app_stock set location_id = #{location} where vehicle_id = #{vehicleId} + delete from app_stock where stock_id = #{stockId}