diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java index 3a03bf3c..93dc991c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -1998,4 +1998,19 @@ public class MaterialController { } return new RestResponse(inventoryP); } + + /** + * 用于完成出库任务时获取对应的库存数据 + * @param map 待获取数据 + * @return + */ + @PostMapping("/findInventoryForCompleteOutTask") + public RestResponse findInventoryForCompleteOutTask(@RequestBody Map map){ + List midList = materialService.findInventoryForCompleteOutTask(map); + List materialByIds = new ArrayList<>(); + if (midList.size() > 0) { + materialByIds = materialService.findMaterialByIds(midList); + } + return new RestResponse(materialByIds); + } } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java index c9edb199..768a0404 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -3096,38 +3096,17 @@ public class PageController { @GetMapping("/ScanBarOrQrCodeOut_selectMaterial") public ModelAndView ScanBarOrQrCodeOut_selectMaterial(Integer pid, String mcode, Integer depositoryId) { ModelAndView mv = new ModelAndView(); - // 用于存储物料id - List midList = new ArrayList<>(); - if (Integer.compare(0, pid) == 0) { - // 如果是默认库位 - Map map = new HashMap<>(); - map.put("depositoryId", depositoryId); - // 获取当前仓库下的所有库存 - List inventoryByDepository = materialService.findInventoryByDepository(map); - for (InventoryP inventoryP : inventoryByDepository) { - // 如果该库存明细在默认库位中 - MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, inventoryP.getId()); - if (placeAndMaterialByMidAndPid != null) { - // 如果是默认库位 - midList.add(placeAndMaterialByMidAndPid.getMid()); - } - } - } else { - // 如果不是默认库位 - - // 获取当前库位中存储的物料 - List placeAndMaterialByPid = placeService.findPlaceAndMaterialByPid(pid); - - for (MaterialAndPlace materialAndPlace : placeAndMaterialByPid) { - midList.add(materialAndPlace.getMid()); - } - - } + Map map = new HashMap<>(); + map.put("depositoryId",depositoryId); + map.put("pid",pid); + List midList = materialService.findInventoryForCompleteOutTask(map); if (midList.size() > 0) { List materialByIds = materialService.findMaterialByIds(midList); mv.addObject("materialList", materialByIds); } mv.addObject("mcode", mcode); + mv.addObject("depositoryId", depositoryId); + mv.addObject("pid", pid); mv.setViewName("pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial"); return mv; } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java b/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java index 6f8a0a64..e7ee66b6 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/MaterialService.java @@ -422,4 +422,12 @@ public interface MaterialService { * @return */ List findInventoryForStockTaking(Map map); + + + /** + * 用于完成出库任务时获取对应的库存数据 + * @param map + * @return + */ + List findInventoryForCompleteOutTask(Map map); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java index f36a184c..57bba5d4 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java @@ -2631,6 +2631,39 @@ public class MaterialServiceImpl implements MaterialService { return packMpvList(placeAndMaterialByCondition, map); } + /** + * 用于完成出库任务时获取对应的库存数据 + * @param map + * @return + */ + @Override + public List findInventoryForCompleteOutTask(Map map) { + Integer pid = ObjectFormatUtil.toInteger(map.get("pid")); + // 用于存储物料id + List midList = new ArrayList<>(); + if (Integer.compare(0, pid) == 0) { + // 获取当前仓库下的所有库存 + List inventoryList = materialMapper.findInventory(map); + for (Inventory inventory : inventoryList) { + // 如果该库存明细在默认库位中 + MaterialAndPlace placeAndMaterialByMidAndPid = placeService.findPlaceAndMaterialByMidAndPid(0, inventory.getId()); + if (placeAndMaterialByMidAndPid != null) { + // 如果是默认库位 + midList.add(placeAndMaterialByMidAndPid.getMid()); + } + } + } else { + // 如果不是默认库位 + map.put("placeId",pid); + List placeAndMaterialByCondition = placeService.findPlaceAndMaterialByCondition(map); + for (MaterialAndPlaceForViewP materialAndPlaceForViewP : placeAndMaterialByCondition) { + midList.add(materialAndPlaceForViewP.getMid()); + } + + } + return midList; + } + List packMpvList(List materialAndPlaceForViewList, Map map) { for (MaterialAndPlaceForViewP mpv : materialAndPlaceForViewList diff --git a/src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial.html b/src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial.html index 1928c706..2a6bf069 100644 --- a/src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial.html +++ b/src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial.html @@ -12,41 +12,115 @@ -
- + + +
+
+
+
+

搜索

+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +
+
+
+
+
+ +
+
+