| src/main/java/com/zy/asrs/controller/BasCrnpController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/utils/LocFCSUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/model/protocol/CrnProtocol.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/views/deviceOperate/crnOperate.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/BasCrnpController.java
@@ -15,6 +15,7 @@ import com.zy.asrs.service.BasCrnpService; import com.zy.asrs.service.impl.LocMastServiceImpl; import com.zy.asrs.utils.CodeDetectionUtil; import com.zy.asrs.utils.LocFCSUtils; import com.zy.common.web.BaseController; import com.zy.core.CrnThread; import com.zy.core.cache.CrnErrCache; @@ -138,21 +139,21 @@ } } } if (Cools.isEmpty(basCrnpParam.getLocMastDemoE())){ return R.error("请输入测试空库位列表").add("请输入测试空库位列表"); } else { String[] split = basCrnpParam.getLocMastDemoE().split(";"); if (split.length!=basCrnpParam.getLocMastDemoCount()){ return R.error("输入测试空库位列表数量不匹配").add("输入测试空库位列表数量不匹配"); } basCrnpParam.setLocMastDemoListE(new ArrayList<>(Arrays.asList(split))); for (String locNo : basCrnpParam.getLocMastDemoListE()){ boolean locNoDetection = CodeDetectionUtil.locNoDetection(locNo); if (!locNoDetection){ return R.error("输入测试空库位异常").add("输入测试空库位异常"); } } } // if (Cools.isEmpty(basCrnpParam.getLocMastDemoE())){ // return R.error("请输入测试空库位列表").add("请输入测试空库位列表"); // } else { // String[] split = basCrnpParam.getLocMastDemoE().split(";"); // if (split.length!=basCrnpParam.getLocMastDemoCount()){ // return R.error("输入测试空库位列表数量不匹配").add("输入测试空库位列表数量不匹配"); // } // basCrnpParam.setLocMastDemoListE(new ArrayList<>(Arrays.asList(split))); // for (String locNo : basCrnpParam.getLocMastDemoListE()){ // boolean locNoDetection = CodeDetectionUtil.locNoDetection(locNo); // if (!locNoDetection){ // return R.error("输入测试空库位异常").add("输入测试空库位异常"); // } // } // } if (Cools.isEmpty(basCrnpParam.getStaOutDemo())){ return R.error("请输入测试出库站").add("请输入测试出库站"); @@ -198,11 +199,14 @@ } crnProtocol.setLocMastDemoCount(basCrnpParam.getLocMastDemoCount()); crnProtocol.setLocMastDemoListF(basCrnpParam.getLocMastDemoListF()); crnProtocol.setLocMastDemoListE(basCrnpParam.getLocMastDemoListE()); ArrayList<String[]> locS = LocFCSUtils.getLocS(basCrnpParam.getLocMastDemoListF()); // crnProtocol.setLocMastDemoListE(basCrnpParam.getLocMastDemoListE()); ArrayList<String> locMastDemoList = new ArrayList<>(); locMastDemoList.addAll(basCrnpParam.getLocMastDemoListF()); locMastDemoList.addAll(basCrnpParam.getLocMastDemoListF()); // locMastDemoList.addAll(basCrnpParam.getLocMastDemoListF()); crnProtocol.setLocMastDemoList(locMastDemoList); crnProtocol.setLocMastDemoListSign(locS); crnProtocol.setStaOutDemo(basCrnpParam.getStaOutDemo()); crnProtocol.setStaIntDemo(basCrnpParam.getStaIntDemo()); crnProtocol.setSignIntOut(false); src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2827,6 +2827,7 @@ if (locToCrnStnDemo && crnProtocol.isSignIntOut()){ crnProtocol.setLastIo("I"); } else if (locToCrnStnDemo){ crnProtocol.setLastIo("I"); crnProtocol.setSignIntOut(true); } else if (!crnProtocol.isSignIntOut()){ crnProtocol.setLastIo("I"); @@ -2840,6 +2841,7 @@ if (locToCrnStnDemo && crnProtocol.isSignIntOut()){ crnProtocol.setLastIo("I"); } else if (locToCrnStnDemo){ crnProtocol.setLastIo("I"); crnProtocol.setSignIntOut(true); } else if (!crnProtocol.isSignIntOut()){ crnProtocol.setLastIo("I"); @@ -3076,6 +3078,8 @@ if (taskWrkMapper.updateById(taskWrk) == 0) { log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", taskWrk.getWrkNo()); } } catch (Exception e) { log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", taskWrk.getWrkNo()); log.error("修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,异常:" + e); @@ -3303,7 +3307,9 @@ if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")){ continue; } for (String locNo : crnProtocol.getLocMastDemoList()){ for (String[] locS : crnProtocol.getLocMastDemoListSign()){ if (locS[3].equals("1")){ String locNo = locS[0]; LocMast locMast = locMastService.selectByLocNo(locNo); if (locMast.getLocSts().equals("F")){ CarryParam carryParam = new CarryParam(); @@ -3327,6 +3333,8 @@ carryParam.setMeno("Demo"); taskWrkController.addTaskPoint(carryParam); Thread.sleep(50); LocFCSUtils.updateLocSInPlace(crnProtocol.getLocMastDemoListSign()); } } } src/main/java/com/zy/asrs/utils/LocFCSUtils.java
New file @@ -0,0 +1,65 @@ package com.zy.asrs.utils; import com.zy.core.cache.RgvStatusCache; import com.zy.core.model.RgvSlave; import com.zy.core.model.protocol.RgvProtocol; import java.util.ArrayList; import java.util.Collections; /** * Created by Monkey D. Luffy on 2023/7/18 */ public class LocFCSUtils { public static ArrayList<String[]> getLocS(ArrayList<String> locMastDemoListF) { ArrayList<String[]> locS = new ArrayList<>(); // 提取数据 int idx = 1; for (String locNo : locMastDemoListF) { if (locNo != null && locNo.length() >= 5) { String[] strings = new String[4]; // 增加一列用于排序序号 String result = locNo.substring(2, 5); strings[0] = locNo; // 原字符串 strings[1] = result; // 截取的部分 strings[2] = String.valueOf(idx); // 原始序号 strings[3] = ""; // 排序序号(暂空) locS.add(strings); } idx++; } // 排序 Collections.sort(locS, (a, b) -> { int numA = Integer.parseInt(a[1]); int numB = Integer.parseInt(b[1]); return Integer.compare(numA, numB); }); // 设置排序序号 for (int i = 0; i < locS.size(); i++) { locS.get(i)[3] = String.valueOf(i + 1); } return locS; } public static void updateLocSInPlace(ArrayList<String[]> locS) { if (locS == null || locS.isEmpty()) { return; } // 更新排序序号 for (String[] row : locS) { int currentSort = Integer.parseInt(row[3]); if (currentSort == 1) { row[3] = String.valueOf(locS.size()); } else { row[3] = String.valueOf(currentSort - 1); } } } } src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -206,6 +206,7 @@ public ArrayList<String> locMastDemoListF;//测试库位列表 public ArrayList<String> locMastDemoListE;//测试库位列表 public ArrayList<String> locMastDemoList;//测试库位列表 public ArrayList<String[]> locMastDemoListSign;//测试库位列表 public Integer staOutDemo;//测试库位出库站 public Integer staIntDemo;//测试库位入库站 public boolean signIntOut;//测试库位入库站 src/main/webapp/views/deviceOperate/crnOperate.html
@@ -81,9 +81,9 @@ <el-form-item label="原始出库库位"> <el-input v-model="formParam.locMastDemoF" placeholder="原始有物库位"></el-input> </el-form-item> <el-form-item label="原始空库位"> <el-input v-model="formParam.locMastDemoE" placeholder="原始有物库位"></el-input> </el-form-item> <!-- <el-form-item label="原始空库位">--> <!-- <el-input v-model="formParam.locMastDemoE" placeholder="原始有物库位"></el-input>--> <!-- </el-form-item>--> <el-form-item label="堆垛机放货站点"> <el-input v-model="formParam.staOutDemo" placeholder="堆垛机放货站点"></el-input> </el-form-item>