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