From ff3b5df7015b2f2c5e24d9973a7b443309d8e579 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期六, 19 七月 2025 18:07:29 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/LocMastController.java | 105 +++++++++++++++----- src/main/java/com/zy/core/thread/impl/NyShuttleThread.java | 4 src/main/java/com/zy/common/utils/ShuttleOperaUtils.java | 4 src/main/resources/mapper/BasMapMapper.xml | 4 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 2 src/main/java/com/zy/common/utils/NavigateUtils.java | 2 src/main/webapp/views/admin/basMap/basMap.html | 25 +++++ src/main/java/com/zy/asrs/controller/BasMapController.java | 1 src/main/webapp/static/js/basMap/basMap.js | 42 +++++++ src/main/webapp/views/admin/locMast/locMast.html | 1 src/main/java/com/zy/asrs/entity/BasMap.java | 28 +++++ src/main/java/com/zy/common/utils/NavigateMapData.java | 4 src/main/webapp/static/js/locMast/locMast.js | 22 ---- 13 files changed, 181 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/BasMapController.java b/src/main/java/com/zy/asrs/controller/BasMapController.java index 5e7af37..2d248c1 100644 --- a/src/main/java/com/zy/asrs/controller/BasMapController.java +++ b/src/main/java/com/zy/asrs/controller/BasMapController.java @@ -42,6 +42,7 @@ convert(param, wrapper); allLike(BasMap.class, param.keySet(), wrapper, condition); if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + wrapper.orderBy("lev"); return R.ok(basMapService.selectPage(new Page<>(curr, limit), wrapper)); } diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java index a08e8c3..d9c83bf 100644 --- a/src/main/java/com/zy/asrs/controller/LocMastController.java +++ b/src/main/java/com/zy/asrs/controller/LocMastController.java @@ -1,5 +1,6 @@ package com.zy.asrs.controller; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; @@ -11,11 +12,14 @@ import com.core.common.DateUtils; import com.core.common.R; import com.core.exception.CoolException; +import com.zy.asrs.entity.BasMap; import com.zy.asrs.entity.LocMast; -import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.service.BasMapService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.utils.Utils; import com.zy.common.model.MapNode; +import com.zy.common.model.NavigateNode; +import com.zy.common.model.enums.NavigationMapType; import com.zy.common.utils.NavigateMapData; import com.zy.common.web.BaseController; import com.zy.core.enums.LocStsType; @@ -35,6 +39,8 @@ private NavigateMapData navigateMapData; @Autowired private LocMastService locMastService; + @Autowired + private BasMapService basMapService; @RequestMapping(value = "/locMast/{id}/auth") @ManagerAuth @@ -139,39 +145,80 @@ @PostMapping("/locMast/init") @ManagerAuth(memo = "鍒濆鍖栧簱浣�") @Transactional - public R shuttleStateTable(){ - locMastService.delete(new EntityWrapper<>(new LocMast())); + public R locMastInit(@RequestParam Integer lev) { + BasMap basMap = basMapService.selectLatestMap(lev); + locMastService.delete(new EntityWrapper<>(new LocMast()) + .eq("lev1", lev)); + List<List<MapNode>> lists = navigateMapData.getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱) + for (int row = 0; row < lists.size(); row++) { + List<MapNode> nodeList = lists.get(row); + for (int bay = 0; bay < nodeList.size(); bay++) { + MapNode mapNode = nodeList.get(bay); - for (int i = 1; i <= 4; i++) {//鎬诲叡鍥涘眰妤� - List<List<MapNode>> lists = navigateMapData.getJsonData(i, -1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱) - - for (int row = 0; row < lists.size(); row++) { - List<MapNode> nodeList = lists.get(row); - for (int bay = 0; bay < nodeList.size(); bay++) { - MapNode mapNode = nodeList.get(bay); - - if (mapNode.getValue() == MapNodeType.DISABLE.id) { - continue; - } - - String locNo = Utils.getLocNo(row, bay, i); - LocMast locMast = new LocMast(); - locMast.setLocNo(locNo); - locMast.setRow1(row); - locMast.setBay1(bay); - locMast.setLev1(i); - - if (mapNode.getValue() == MapNodeType.NORMAL_PATH.id) { - locMast.setLocSts(LocStsType.O.toString()); - }else if (mapNode.getValue() == MapNodeType.MAIN_PATH.id){ - locMast.setLocSts(LocStsType.W.toString()); - } - - locMastService.insert(locMast); + if (mapNode.getValue() == MapNodeType.DISABLE.id) { + continue; } + + String locNo = Utils.getLocNo(row, bay, lev); + LocMast locMast = new LocMast(); + locMast.setLocNo(locNo); + locMast.setRow1(row); + locMast.setBay1(bay); + locMast.setLev1(lev); + + if (mapNode.getValue() == MapNodeType.NORMAL_PATH.id) { + locMast.setLocSts(LocStsType.O.toString()); + } else if (mapNode.getValue() == MapNodeType.MAIN_PATH.id) { + locMast.setLocSts(LocStsType.W.toString()); + } + + locMastService.insert(locMast); } } + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("lev1", lev).orderBy("row1", false)); + Integer rowMax = locMast.getRow1(); + Integer baseRow = basMap.getBaseRow(); + Integer baseRowCode = basMap.getBaseRowCode(); + + for (int i = baseRow; i <= rowMax; i++) { + Integer baseBayCode = basMap.getBaseBayCode(); + if (basMap.getBaseBay() > 0) { + for (int j = 1; j <= basMap.getBaseBay(); j++) { + String locNo = Utils.getLocNo(i, j, lev); + + LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("loc_no", locNo)); + if (locMast1 != null) { + HashMap<String, Object> point = new HashMap<>(); + point.put("y", baseRowCode); + point.put("x", baseBayCode); + point.put("z", lev); + locMast1.setQrCodeValue(JSON.toJSONString(point)); + locMastService.updateById(locMast1); + } + baseBayCode += 1; + } + }else { + int baseBay = basMap.getBaseBay() * -1; + for (int j = baseBay; j > 0; j--) { + String locNo = Utils.getLocNo(i, j, lev); + + LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("loc_no", locNo)); + if (locMast1 != null) { + HashMap<String, Object> point = new HashMap<>(); + point.put("y", baseRowCode); + point.put("x", baseBayCode); + point.put("z", lev); + locMast1.setQrCodeValue(JSON.toJSONString(point)); + locMastService.updateById(locMast1); + } + baseBayCode += 1; + } + } + baseRowCode += 1; + } return R.ok(); } diff --git a/src/main/java/com/zy/asrs/entity/BasMap.java b/src/main/java/com/zy/asrs/entity/BasMap.java index ace20e6..a89e116 100644 --- a/src/main/java/com/zy/asrs/entity/BasMap.java +++ b/src/main/java/com/zy/asrs/entity/BasMap.java @@ -67,6 +67,34 @@ @TableField("origin_data") private String originData; + /** + * 鍩哄噯鎺� + */ + @ApiModelProperty(value= "鍩哄噯鎺�") + @TableField("base_row") + private Integer baseRow; + + /** + * 鍩哄噯鎺�-code鍊� + */ + @ApiModelProperty(value= "鍩哄噯鎺�-code鍊�") + @TableField("base_row_code") + private Integer baseRowCode; + + /** + * 鍩哄噯鍒� + */ + @ApiModelProperty(value= "鍩哄噯鍒�") + @TableField("base_bay") + private Integer baseBay; + + /** + * 鍩哄噯鍒�-code鍊� + */ + @ApiModelProperty(value= "鍩哄噯鍒�-code鍊�") + @TableField("base_bay_code") + private Integer baseBayCode; + public BasMap() {} public BasMap(String data,Date createTime,Date updateTime,String lastData,Integer lev) { diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index c5287f2..68e701d 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -87,7 +87,7 @@ Object data = redisUtil.get(RedisKeyType.MAP.key + lev); if (data == null) {//redis鍦板浘鏁版嵁涓虹┖ //杞藉叆鍦板浘 - List<List<MapNode>> lists = navigateMapData.getJsonData(lev, -1, null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱) + List<List<MapNode>> lists = navigateMapData.getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null);//鑾峰彇瀹屾暣鍦板浘(鍖呮嫭鍏ュ簱鍑哄簱) //瀛樺叆鏁版嵁搴� basMap.setData(JSON.toJSONString(lists)); diff --git a/src/main/java/com/zy/common/utils/NavigateMapData.java b/src/main/java/com/zy/common/utils/NavigateMapData.java index 8518def..c8e72b9 100644 --- a/src/main/java/com/zy/common/utils/NavigateMapData.java +++ b/src/main/java/com/zy/common/utils/NavigateMapData.java @@ -100,7 +100,7 @@ } //鑾峰彇JSON鏍煎紡鏁版嵁 - public List<List<MapNode>> getJsonData(Integer lev, Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) { + public List<List<MapNode>> getJsonData(Integer lev, List<NavigationMapType> mapTypes, List<int[]> whitePoints, List<int[]> shuttlePoints) { try { BasMap basMap = basMapService.selectLatestMap(lev); String originData = basMap.getOriginData(); @@ -274,7 +274,7 @@ public List<List<MapNode>> loadWhite(List<List<MapNode>> lists, Integer lev, List<int[]> whitePoints) { //鍔犺浇鐧藉悕鍗曡妭鐐� if (whitePoints != null) { - List<List<MapNode>> realMap = getJsonData(lev, -1, null, null);//鑾峰彇瀹屾暣鍦板浘 + List<List<MapNode>> realMap = getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null);//鑾峰彇瀹屾暣鍦板浘 for (int[] points : whitePoints) { //鑾峰彇鍘熷鑺傜偣鏁版嵁 int x = points[0]; diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java index 13888cf..db95875 100644 --- a/src/main/java/com/zy/common/utils/NavigateUtils.java +++ b/src/main/java/com/zy/common/utils/NavigateUtils.java @@ -324,7 +324,7 @@ //鑾峰彇浠巟鐐瑰埌涓嬩竴鐐圭殑琛岃蛋璺濈 public Integer getXToNextDistance(NavigateNode xNode) { NavigateMapData mapData = SpringUtils.getBean(NavigateMapData.class); - List<List<MapNode>> lists = mapData.getJsonData(xNode.getZ(), NavigationMapType.NONE.id, null, null); + List<List<MapNode>> lists = mapData.getJsonData(xNode.getZ(), NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null); if (lists != null) { MapNode mapNode = lists.get(xNode.getX()).get(xNode.getY()); if (mapNode != null) { diff --git a/src/main/java/com/zy/common/utils/ShuttleOperaUtils.java b/src/main/java/com/zy/common/utils/ShuttleOperaUtils.java index 6869199..170dc3e 100644 --- a/src/main/java/com/zy/common/utils/ShuttleOperaUtils.java +++ b/src/main/java/com/zy/common/utils/ShuttleOperaUtils.java @@ -331,7 +331,7 @@ NavigateNode currentNode = new NavigateNode(pointArr[0], pointArr[1]); currentNode.setZ(lev); - List<List<MapNode>> lists = navigateMapData.getJsonData(lev, -1, null, null);//鑾峰彇瀹屾暣鍦板浘 + List<List<MapNode>> lists = navigateMapData.getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null);//鑾峰彇瀹屾暣鍦板浘 int[][] map = navigateMapData.parseJsonDataArr(lists); int nodeValue = map[pointArr[0]][pointArr[1]]; currentNode.setNodeValue(nodeValue); @@ -372,7 +372,7 @@ currentNode.setZ(lev); innerNodes.add(currentNode); - List<List<MapNode>> lists = navigateMapData.getJsonData(lev, -1, null, null);//鑾峰彇瀹屾暣鍦板浘 + List<List<MapNode>> lists = navigateMapData.getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null);//鑾峰彇瀹屾暣鍦板浘 int[][] map = navigateMapData.parseJsonDataArr(lists); int nodeValue = map[pointArr[0]][pointArr[1]]; currentNode.setNodeValue(nodeValue); diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java index ad23b1c..05d895e 100644 --- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java +++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java @@ -867,7 +867,7 @@ int yp = Integer.parseInt(String.valueOf(nyNode.get("x"))); int z = Integer.parseInt(String.valueOf(nyNode.get("z"))); - List<List<MapNode>> mapData = navigateMapData.getJsonData(startNode.getZ(), NavigationMapType.NONE.id, null, null); + List<List<MapNode>> mapData = navigateMapData.getJsonData(startNode.getZ(), NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null); List<MapNode> mapNodes = mapData.get(node.getX()); MapNode mapNode = mapNodes.get(node.getY()); @@ -983,7 +983,7 @@ throw new CoolException("鍦板潃鐮佷笉瀛樺湪"); } - List<List<MapNode>> mapData = navigateMapData.getJsonData(lev, NavigationMapType.NONE.id, null, null); + List<List<MapNode>> mapData = navigateMapData.getJsonData(lev, NavigationMapType.getMapTypes(NavigationMapType.NONE), null, null); List<MapNode> mapNodes = mapData.get(locMast.getRow1()); MapNode mapNode = mapNodes.get(locMast.getBay1()); diff --git a/src/main/resources/mapper/BasMapMapper.xml b/src/main/resources/mapper/BasMapMapper.xml index 8cd0bb1..68953da 100644 --- a/src/main/resources/mapper/BasMapMapper.xml +++ b/src/main/resources/mapper/BasMapMapper.xml @@ -11,6 +11,10 @@ <result column="last_data" property="lastData" /> <result column="lev" property="lev" /> <result column="origin_data" property="originData" /> + <result column="base_row" property="baseRow" /> + <result column="base_row_code" property="baseRowCode" /> + <result column="base_bay" property="baseBay" /> + <result column="base_bay_code" property="baseBayCode" /> </resultMap> diff --git a/src/main/webapp/static/js/basMap/basMap.js b/src/main/webapp/static/js/basMap/basMap.js index bcd94be..ff156df 100644 --- a/src/main/webapp/static/js/basMap/basMap.js +++ b/src/main/webapp/static/js/basMap/basMap.js @@ -22,15 +22,19 @@ height: 'full-120', cols: [[ {type: 'checkbox'} - ,{field: 'id', align: 'center',title: '#'} + // ,{field: 'id', align: 'center',title: '#'} + ,{field: 'lev', align: 'center',title: '灞傛暟'} ,{field: 'data', align: 'center',title: '瀹炴椂鏁版嵁'} ,{field: 'createTime$', align: 'center',title: '鍒涘缓鏃堕棿'} ,{field: 'updateTime$', align: 'center',title: '鏇存柊鏃堕棿'} ,{field: 'lastData', align: 'center',title: '鏈�杩戞暟鎹�'} - ,{field: 'lev', align: 'center',title: '灞傛暟'} ,{field: 'originData', align: 'center',title: '鍘熷鍦板浘'} + ,{field: 'baseRow', align: 'center',title: '鍩哄噯鎺�'} + ,{field: 'baseRowCode', align: 'center',title: '鍩哄噯鎺�-code'} + ,{field: 'baseBay', align: 'center',title: '鍩哄噯鍒�'} + ,{field: 'baseBayCode', align: 'center',title: '鍩哄噯鍒�-code'} - ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120} + ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:240} ]], request: { pageName: 'curr', @@ -137,9 +141,41 @@ case "del": del([data.id]); break; + case "initLocMast": + initLocMast(data); + break; } }); + function initLocMast(data) { + layer.confirm('纭畾鍒濆鍖栧簱浣嶆暟鎹悧锛�', { + skin: 'layui-layer-admin', + shade: .1 + }, function (i) { + layer.close(i); + var loadIndex = layer.load(2); + $.ajax({ + url: baseUrl+"/locMast/init", + headers: {'token': localStorage.getItem('token')}, + data: { + lev: data.lev + }, + method: 'POST', + success: function (res) { + layer.close(loadIndex); + if (res.code === 200){ + layer.msg(res.msg, {icon: 1}); + tableReload(); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + /* 寮圭獥 - 鏂板銆佷慨鏀� */ function showEditModel(mData) { admin.open({ diff --git a/src/main/webapp/static/js/locMast/locMast.js b/src/main/webapp/static/js/locMast/locMast.js index 5a399b9..726e411 100644 --- a/src/main/webapp/static/js/locMast/locMast.js +++ b/src/main/webapp/static/js/locMast/locMast.js @@ -178,28 +178,6 @@ }); }); break; - case "init": - layer.prompt({title: '璇疯緭鍏ュ彛浠わ紝骞堕噸缃簱浣�', formType: 1, shadeClose: true}, function(pass, idx){ - http.get(baseUrl+"/locMast/init/pwd", {pwd: pass}, function (res) { - if (res.data) { - layer.open({ - type: 1, - title: '鍒濆鍖栧簱浣�', - area: ["400px"], - maxmin: true, - shadeClose: true, - content: $("#resetLocDiv"), - success: function (layero, index) { - - } - }) - } else { - layer.msg("鍙d护閿欒"); - } - layer.close(idx); - }) - }); - break; } }); diff --git a/src/main/webapp/views/admin/basMap/basMap.html b/src/main/webapp/views/admin/basMap/basMap.html index b8f885f..68c4e56 100644 --- a/src/main/webapp/views/admin/basMap/basMap.html +++ b/src/main/webapp/views/admin/basMap/basMap.html @@ -56,6 +56,7 @@ </script> <script type="text/html" id="operate"> + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="initLocMast">鍒濆鍖栧簱浣�</a> <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a> <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a> </script> @@ -84,6 +85,30 @@ <input class="layui-input" name="originData" placeholder="璇疯緭鍏�"> </div> </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍩哄噯鎺�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="baseRow" placeholder="璇疯緭鍏�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍩哄噯鎺�-code: </label> + <div class="layui-input-block"> + <input class="layui-input" name="baseRowCode" placeholder="璇疯緭鍏�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍩哄噯鍒�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="baseBay" placeholder="璇疯緭鍏�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍩哄噯鍒�-code: </label> + <div class="layui-input-block"> + <input class="layui-input" name="baseBayCode" placeholder="璇疯緭鍏�"> + </div> + </div> </div> </div> diff --git a/src/main/webapp/views/admin/locMast/locMast.html b/src/main/webapp/views/admin/locMast/locMast.html index f2151e7..a5e8984 100644 --- a/src/main/webapp/views/admin/locMast/locMast.html +++ b/src/main/webapp/views/admin/locMast/locMast.html @@ -64,7 +64,6 @@ <div class="layui-btn-container"> <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button> <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button> - <button class="layui-btn layui-btn-primary" id="btn-init" lay-event="init">鍒濆鍖�</button> <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button> </div> </script> -- Gitblit v1.9.1