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 8c2018de..dfb7b9a1 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java @@ -674,7 +674,8 @@ public class MaterialController { UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); if (map.containsKey("id")) { String s = map.get("id").toString(); - redisTemplate.opsForList().remove("WMS_temporaryValue" + userByPort.getNumber(), 0, s); + String type = map.get("type").toString(); + redisTemplate.opsForList().remove("WMS_temporaryValue_"+type + userByPort.getNumber(), 0, s); } } 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 c1df23b9..c6fafce6 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -1,5 +1,6 @@ package com.dreamchaser.depository_manage.controller; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dreamchaser.depository_manage.config.PortConfig; @@ -2734,7 +2735,7 @@ public class PageController { // 获取扫描结果并跳转到入库 - @GetMapping("/application_in_scanQrCode") + @GetMapping("/application_In_temporaryValue") public ModelAndView applicationInScanQrCode(HttpServletRequest request) { ModelAndView mv = new ModelAndView(); String token = request.getHeader("user-token"); @@ -2742,23 +2743,25 @@ public class PageController { token = (String) request.getSession().getAttribute("userToken"); } UserByPort userByPort = AuthenticationTokenPool.getUserToken(token); - String scanQrCodeValue = redisTemplate.opsForValue().get("scanQrCodeValue" + userByPort.getNumber()).toString(); - redisTemplate.delete("scanQrCodeValue" + userByPort.getNumber()); - JSONObject jsonObject = JSONObject.parseObject(scanQrCodeValue); - JSONObject depository = (JSONObject) jsonObject.get("depository"); - JSONObject place = (JSONObject) jsonObject.get("place"); - JSONArray materialList = (JSONArray) jsonObject.get("materialList"); - if (depository == null && place == null) { - // 如果库位与仓库都未选中 - } else if (depository != null && place == null) { - // 如果选中仓库未选中库位 - mv.addObject("depository", depository); - } else if (place != null && depository == null) { - // 如果选中库位未选中仓库 - mv.addObject("place", place); + // 获取当前key值存储在redis中的值 + List range = redisTemplateForHash.opsForList().range("WMS_temporaryValue_In" + userByPort.getNumber(), 0, -1); + if( range != null && range.size() > 0){ + List result = new ArrayList<>(); + for (String value: + range ) { + if("".equals(value)){ + continue; + } + Inventory inventoryById = materialService.findInventoryById(ObjectFormatUtil.toInteger(value)); + List splitInfoByMid = splitUnitService.findSplitInfoByMid(inventoryById.getMid()); + inventoryById.setSplitInfoList(splitInfoByMid); + result.add(inventoryById); + } + mv.addObject("inventoryList", JSONObject.toJSONString(result)); + mv.setViewName("pages/application/application-in_temporaryValue"); + }else{ + mv.setViewName("pages/application/application-in"); } - mv.addObject("materialList", materialList); - mv.setViewName("pages/application/application-in_scanQrCode"); return mv; } @@ -2800,7 +2803,7 @@ public class PageController { } // 获取扫描结果并跳转到出库 - @GetMapping("/application_Out_scanQrCode") + @GetMapping("/application_Out_temporaryValue") public ModelAndView applicationOutScanQrCode(HttpServletRequest request) { ModelAndView mv = new ModelAndView(); String token = request.getHeader("user-token"); @@ -2809,7 +2812,7 @@ public class PageController { } UserByPort userToken = AuthenticationTokenPool.getUserToken(token); List range = redisTemplateForHash.boundListOps("WMS_temporaryValue_Out" + userToken.getNumber()).range(0, -1); - if (range.size() > 0) { + if (range != null && range.size() > 0) { List result = new ArrayList<>(); for (String value : range ) { diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index 8149a7b7..25d88236 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -157,13 +157,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { map.put("state", "已入库"); } else { // 如果需要审批 - List roleAndMaterials = roleService.findRoleAndMaterialTypeByMtId(material.getMaterialTypeId()); map.put("approverPass", 3); - StringBuilder approverId = new StringBuilder(); - for (RoleAndMaterialType roleAndMaterialType : roleAndMaterials) { - approverId.append(roleAndMaterialType.getUid()).append(","); - } - map.put("approverId", approverId.toString()); map.put("state", "待审核"); } @@ -728,14 +722,20 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { // 设置审批权限 map.put("inType", "d"); // 获取当前类别物料是否需要审批 - List roleAndMaterials = roleService.findRoleAndDepositoryByDid(depositoryId); - - if (roleAndMaterials.size() > 0) { + List roleAndDepositoryByDid = roleService.findRoleAndDepositoryByDid(depositoryId); + if (roleAndDepositoryByDid.size() > 0) { flagForApproval = true; + StringBuilder approverId = new StringBuilder(); + for (RoleAndDepository roleAndDepository : roleAndDepositoryByDid) { + approverId.append(roleAndDepository.getUserId()).append(","); + } + map.put("approverId", approverId.toString()); + } if (isApprovalPass) { if (flagForApproval) { flagForApproval = false; + map.remove("approverId"); } } if (map.containsKey("isGroup")) { @@ -750,10 +750,16 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { if (roleAndMaterials.size() > 0) { flagForApproval = true; + StringBuilder approverId = new StringBuilder(); + for (RoleAndMaterialType roleAndMaterialType : roleAndMaterials) { + approverId.append(roleAndMaterialType.getUid()).append(","); + } + map.put("approverId", approverId.toString()); } if (isApprovalPass) { if (flagForApproval) { flagForApproval = false; + map.remove("approverId"); } } if (map.containsKey("isGroup")) { diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java index 8d7e6eb9..a825e36e 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java @@ -115,10 +115,15 @@ public class SplitUnitServiceImpl implements SplitUnitService { if(!map.containsKey("flagForApproval")){ paramForMtRole.put("depositoryId",depositoryId); - List roleAndMaterials = roleMapper.findRoleAndDepositoryByCondition(paramForMtRole); + List roleAndDepositoryByDid = roleMapper.findRoleAndDepositoryByCondition(paramForMtRole); // 用于标志该仓库是否需要进行审批 - if (roleAndMaterials.size() > 0) { + if (roleAndDepositoryByDid.size() > 0) { flagForApproval = true; + StringBuilder approverId = new StringBuilder(); + for (RoleAndDepository roleAndDepository : roleAndDepositoryByDid) { + approverId.append(roleAndDepository.getUserId()).append(","); + } + map.put("approverId", approverId.toString()); } map.put("flagForApproval", flagForApproval); }else{ @@ -133,6 +138,11 @@ public class SplitUnitServiceImpl implements SplitUnitService { // 用于标志该仓库是否需要进行审批 if (roleAndMaterials.size() > 0) { flagForApproval = true; + StringBuilder approverId = new StringBuilder(); + for (RoleAndMaterialType roleAndMaterialType : roleAndMaterials) { + approverId.append(roleAndMaterialType.getUid()).append(","); + } + map.put("approverId", approverId.toString()); } map.put("flagForApproval", flagForApproval); }else{ @@ -208,6 +218,7 @@ public class SplitUnitServiceImpl implements SplitUnitService { Double quantity = ObjectFormatUtil.toDouble(map.get("quantity")); if ("in".equals(type) && !flagForApproval) { // 如果是入库并且不需要审批 + map.remove("approverId"); result = realInInventoryToDepository(quantity, splitInventory, map, splitInfoForUnit, placeAndMaterialByMidAndPid, false); map.put("applicationInIdForOut",map.get("applicationInId")); map.remove("applicationInId"); diff --git a/src/main/resources/templates/pages/application/application-in_scanQrCode.html b/src/main/resources/templates/pages/application/application-in_temporaryValue.html similarity index 73% rename from src/main/resources/templates/pages/application/application-in_scanQrCode.html rename to src/main/resources/templates/pages/application/application-in_temporaryValue.html index adbd5f83..99e6eabc 100644 --- a/src/main/resources/templates/pages/application/application-in_scanQrCode.html +++ b/src/main/resources/templates/pages/application/application-in_temporaryValue.html @@ -46,9 +46,7 @@