From c832c7f5d6f8c015d609e044e902e070da5240b0 Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期日, 24 九月 2023 14:22:57 +0800 Subject: [PATCH] 拣货单 --- src/main/java/com/zy/asrs/controller/MapController.java | 205 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 147 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MapController.java b/src/main/java/com/zy/asrs/controller/MapController.java index 7ace3ee..c3d6517 100644 --- a/src/main/java/com/zy/asrs/controller/MapController.java +++ b/src/main/java/com/zy/asrs/controller/MapController.java @@ -4,17 +4,21 @@ import com.alibaba.fastjson.JSONObject; import com.core.annotations.ManagerAuth; import com.core.common.R; +import com.zy.asrs.entity.BasMap; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.LocMast; +import com.zy.asrs.service.BasMapService; import com.zy.asrs.service.LocDetlService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.utils.Utils; +import com.zy.common.utils.RedisUtil; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.io.*; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; @RestController @@ -24,6 +28,10 @@ private LocMastService locMastService; @Autowired private LocDetlService locDetlService; + @Autowired + private BasMapService basMapService; + @Autowired + private RedisUtil redisUtil; private static final List<String> DISABLE_LOC_NO = new ArrayList<String>() {{ // add("0200101"); @@ -42,68 +50,65 @@ @GetMapping("/map/getData/{lev}/auth") @ManagerAuth public String getMapData(@PathVariable("lev") Integer lev) { - try { - String mapFilename = "map.json"; - String fileName = this.getClass().getClassLoader().getResource(mapFilename).getPath();//鑾峰彇鏂囦欢璺緞 - File file = new File(fileName); - StringBuffer stringBuffer = new StringBuffer(); - if (file.isFile() && file.exists()) { - InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GBK"); - BufferedReader br = new BufferedReader(isr); - String lineTxt = null; - while ((lineTxt = br.readLine()) != null) { - stringBuffer.append(lineTxt); - } - br.close(); - - //瑙f瀽json鍦板浘鏁版嵁 - List<ArrayList> arrayLists = JSON.parseArray(stringBuffer.toString(), ArrayList.class); - for (String locNo : DISABLE_LOC_NO) {//绂佺敤璁剧疆搴撲綅 - int row = Utils.getRow(locNo); - int bay = Utils.getBay(locNo); -// if (row >= 2 && row <= 12) { -// row++; -// }else if (row == 13) { -// row += 2; + BasMap basMap = basMapService.selectLatestMap(lev); + //瑙f瀽json鍦板浘鏁版嵁 + List<ArrayList> arrayLists = JSON.parseArray(basMap.getData(), ArrayList.class); +// ArrayList<HashMap<String, Integer>> lineRows = new ArrayList<>(); +// int dataRow = 0; +// int dataRowCount = 0; +// for (int i = 1; i < arrayLists.size(); i++) { +// boolean flag = true; +// ArrayList rows = arrayLists.get(i); +// for (int j = 1; j < rows.size() - 1; j++) { +// Object o = rows.get(j); +// JSONObject jsonObject = JSON.parseObject(o.toString()); +// int value = Integer.parseInt(jsonObject.get("value").toString()); +// if (value >= 0 && value != 3) { +// //鍙湁璇ヨ涓殑浠讳竴涓�鍒楁湁鏁版嵁锛屽垯涓嶉渶瑕佸垱寤虹┖鐧借 +// flag = false; +// } // } - ArrayList rowData = arrayLists.get(row); - Object o = rowData.get(bay); - JSONObject jsonObject = JSON.parseObject(o.toString()); - jsonObject.put("value", 10);//灏嗙鐢ㄥ簱浣嶈繘琛岃缃� - //鏇存柊list - rowData.set(bay, jsonObject); - arrayLists.set(row, rowData); - } - - //鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁 - List<LocMast> locMasts = locMastService.selectLocByLev(lev); - for (LocMast locMast : locMasts) { - Integer row = locMast.getRow1(); - Integer bay = locMast.getBay1(); -// if (row >= 2 && row <= 12) { -// row++; -// }else if (row == 13) { -// row += 2; +// +// if (flag) { +// //绌虹櫧琛岄渶瑕佽烦杩� +// HashMap<String, Integer> map = new HashMap<>(); +// map.put("start", dataRow); +// int end = i - 1 - dataRowCount; +// map.put("end", end); +// map.put("count", dataRowCount); +// dataRow = end; +// dataRowCount++; +// lineRows.add(map); // } - ArrayList rowData = arrayLists.get(row); - Object o = rowData.get(bay); - JSONObject jsonObject = JSON.parseObject(o.toString()); - jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙� - jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵�� - jsonObject.put("locSts$", locMast.getLocSts$());//搴撲綅鐘舵�� - //鏇存柊list - rowData.set(bay, jsonObject); - arrayLists.set(row, rowData); - } +// } - return JSONObject.toJSONString(arrayLists); - } else { - System.out.println("鏂囦欢涓嶅瓨鍦�!"); + //鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁 + List<LocMast> locMasts = locMastService.selectLocByLev(lev); + for (LocMast locMast : locMasts) { + Integer row = locMast.getRow1(); + Integer bay = locMast.getBay1(); +// for (HashMap<String, Integer> lineRow : lineRows) { +// if (row > lineRow.get("start") && row <= lineRow.get("end")) { +// row += lineRow.get("count"); +// break; +// } +// } + + ArrayList rowData = arrayLists.get(row); + Object o = rowData.get(bay); + JSONObject jsonObject = JSON.parseObject(o.toString()); + if (DISABLE_LOC_NO.contains(locMast.getLocNo())) { + //绂佹搴撲綅 + jsonObject.put("value", 10);//灏嗙鐢ㄥ簱浣嶈繘琛岃缃� } - } catch (IOException ioException) { - ioException.printStackTrace(); + jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙� + jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵�� + //鏇存柊list + rowData.set(bay, jsonObject); + arrayLists.set(row, rowData); } - return null; + + return JSONObject.toJSONString(arrayLists); } @RequestMapping("/map/searchData/auth") @@ -115,7 +120,7 @@ @RequestParam("matnr") String matnr, @RequestParam("maktx") String maktx ) { - List<LocDetl> locDetls = locDetlService.searchByLike(orderNo, matnr, maktx, specs, locNo); + List<LocDetl> locDetls = locDetlService.searchByLike(orderNo, matnr, maktx, specs, ""); ArrayList<LocDetl> lists = new ArrayList<>(); for (LocDetl locDetl : locDetls) {//杩囨护鎺変笉鏄綋鍓嶆ゼ灞傜殑鏁版嵁 int lev1 = Utils.getLev(locDetl.getLocNo()); @@ -123,7 +128,91 @@ lists.add(locDetl); } } + + //鎼滅储鎸囧畾搴撲綅鍙凤紝鍗充娇搴撲綅涓虹┖锛屼篃鍙互杩斿洖鏁版嵁 + LocMast locMast = locMastService.selectById(locNo); + if (locMast != null) { + LocDetl locDetl = new LocDetl(); + locDetl.setLocNo(locMast.getLocNo()); + lists.add(locDetl); + } return R.ok().add(lists); } + @GetMapping("/map/realtime/getData/{lev}/auth") + @ManagerAuth + public String getRealtimeMapData(@PathVariable("lev") Integer lev) { + BasMap basMap = basMapService.selectLatestMap(lev); + //瑙f瀽json鍦板浘鏁版嵁 + List<ArrayList> arrayLists = JSON.parseArray(basMap.getData(), ArrayList.class); +// ArrayList<HashMap<String, Integer>> lineRows = new ArrayList<>(); +// int dataRow = 0; +// int dataRowCount = 0; +// for (int i = 1; i < arrayLists.size(); i++) { +// boolean flag = true; +// ArrayList rows = arrayLists.get(i); +// for (int j = 1; j < rows.size() - 1; j++) { +// Object o = rows.get(j); +// JSONObject jsonObject = JSON.parseObject(o.toString()); +// int value = Integer.parseInt(jsonObject.get("value").toString()); +// if (value >= 0 && value != 3) { +// //鍙湁璇ヨ涓殑浠讳竴涓�鍒楁湁鏁版嵁锛屽垯涓嶉渶瑕佸垱寤虹┖鐧借 +// flag = false; +// } +// } +// +// if (flag) { +// //绌虹櫧琛岄渶瑕佽烦杩� +// HashMap<String, Integer> map = new HashMap<>(); +// map.put("start", dataRow); +// int end = i - 1 - dataRowCount; +// map.put("end", end); +// map.put("count", dataRowCount); +// dataRow = end; +// dataRowCount++; +// lineRows.add(map); +// } +// } + + //鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁 + List<LocMast> locMasts = locMastService.selectLocByLev(lev); + for (LocMast locMast : locMasts) { + Integer row = locMast.getRow1(); + Integer bay = locMast.getBay1(); +// for (HashMap<String, Integer> lineRow : lineRows) { +// if (row > lineRow.get("start") && row <= lineRow.get("end")) { +// row += lineRow.get("count"); +// break; +// } +// } + + ArrayList rowData = arrayLists.get(row); + Object o = rowData.get(bay); + JSONObject jsonObject = JSON.parseObject(o.toString()); + if (DISABLE_LOC_NO.contains(locMast.getLocNo())) { + //绂佹搴撲綅 + jsonObject.put("value", 10);//灏嗙鐢ㄥ簱浣嶈繘琛岃缃� + } + jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙� + jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵�� + //鏇存柊list + rowData.set(bay, jsonObject); + arrayLists.set(row, rowData); + } + + return JSONObject.toJSONString(arrayLists); + } + + @GetMapping("/map/resetMap/{lev}/auth") + @ManagerAuth + public R resetMap(@PathVariable("lev") Integer lev) { + Object o = redisUtil.get("realtimeBasMap_" + lev); + if (o == null) { + return R.error(); + } + redisUtil.del("realtimeBasMap_" + lev); + basMapService.deleteByLev(lev); + return R.ok(); + } + } -- Gitblit v1.9.1