pom.xml
@@ -61,12 +61,12 @@ <!-- </dependency>--> <!-- 显式排除slf4j-simple --> <!-- <dependency>--> <!-- <groupId>org.slf4j</groupId>--> <!-- <artifactId>slf4j-simple</artifactId>--> <!-- <version>1.7.30</version>--> <!-- <scope>provided</scope> <!– 或直接删除该依赖 –>--> <!-- </dependency>--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.30</version> <scope>provided</scope> <!-- 或直接删除该依赖 --> </dependency> <dependency> <groupId>com.dameng</groupId> <artifactId>DmJdbcDriver8</artifactId> src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -137,11 +137,11 @@ continue; } CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { if (crnProtocol == null || Cools.isEmpty(crnProtocol.getLaneNo())) { continue; } CrnLatestDataVo vo = new CrnLatestDataVo(); vo.setCrnId(crn.getId()); // 堆垛机编号 vo.setCrnId(crnProtocol.getLaneNo()); // 堆垛机编号 // Short totalBay = locMastMapper.selectTotalBay(); @@ -318,15 +318,22 @@ } CrnDetailVo vo = new CrnDetailVo(); for (CrnSlave crnSlave : slaveProperties.getCrn()) { if (crnSlave.getId().equals(crnNo)) { BasCrnp basCrnp = basCrnpService.selectById(crnNo); // 获取堆垛机信息 CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null || Cools.isEmpty(crnProtocol.getLaneNo())) { continue; } if (crnProtocol.getLaneNo().equals(crnNo)) { BasCrnp basCrnp = basCrnpService.selectById(crnProtocol.getCrnNo()); if (basCrnp == null) { return R.error("数据库维护异常"); } SiemensCrnThread crnThread = (SiemensCrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); vo.setCrnNo(crnNo); vo.setCrnNo(crnProtocol.getCrnNo()); vo.setLaneNo(crnProtocol.getLaneNo()); vo.setWorkNo(crnProtocol.getTaskNo()); vo.setCrnStatus(crnProtocol.getStatusType().desc); src/main/java/com/zy/asrs/controller/TaskWrkController.java
@@ -261,43 +261,44 @@ } String response=""; try{ HashMap<String, Object> headParam = new HashMap<>(); headParam.put("taskNo",taskWrk.getTaskNo()); headParam.put("taskStatus",taskWrk.getStatusWms()); headParam.put("ioType",taskWrk.getIoTypeWms()); headParam.put("barCode",taskWrk.getBarcode()); headParam.put("reportTime", LocalDateTime.now()); headParam.put("weight",taskWrk.getScWeight().doubleValue()); log.info("wcs手动完成任务上报wms={}", taskWrk); response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(wmsUrl) .setPath(taskStatusFeedbackPath) .setJson(JSON.toJSONString(headParam)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); apiLogService.save("wcs手动完成任务上报wms" ,wmsUrl+taskStatusFeedbackPath ,null ,"127.0.0.1" ,JSON.toJSONString(headParam) ,response ,true ); }catch (Exception e){ log.error("wcs手动完成任务上报wms失{},返回值={}", taskWrk,response); // throw new CoolException(e); } Date now = new Date(); locMast.setModiTime(now); locMastService.updateById(locMast); taskWrk.setStatus(7);//手动完成任务 taskWrk.setModiTime(now); taskWrk.setCompleteTime(now); // try{ // HashMap<String, Object> headParam = new HashMap<>(); // headParam.put("taskNo",taskWrk.getTaskNo()); // headParam.put("taskStatus",taskWrk.getStatusWms()); // headParam.put("ioType",taskWrk.getIoTypeWms()); // headParam.put("barCode",taskWrk.getBarcode()); // headParam.put("reportTime", LocalDateTime.now()); // headParam.put("weight",taskWrk.getScWeight().doubleValue()); // // log.info("wcs手动完成任务上报wms={}", taskWrk); // response = new HttpHandler.Builder() // // .setHeaders(headParam) // .setUri(wmsUrl) // .setPath(taskStatusFeedbackPath) // .setJson(JSON.toJSONString(headParam)) // .build() // .doPost(); // // JSONObject jsonObject = JSON.parseObject(response); // apiLogService.save("wcs手动完成任务上报wms" // ,wmsUrl+taskStatusFeedbackPath // ,null // ,"127.0.0.1" // ,JSON.toJSONString(headParam) // ,response // ,true // ); // }catch (Exception e){ // log.error("wcs手动完成任务上报wms失{},返回值={}", taskWrk,response); //// throw new CoolException(e); // } locMastService.updateById(locMast); taskWrkService.updateById(taskWrk); return R.ok(); } @@ -322,37 +323,37 @@ taskWrk.setModiUser(1111L);//操作员 } String response=""; try{ HashMap<String, Object> headParam = new HashMap<>(); headParam.put("taskNo",taskWrk.getTaskNo()); headParam.put("taskStatus",taskWrk.getStatusWms()); headParam.put("ioType",taskWrk.getIoTypeWms()); headParam.put("barCode",taskWrk.getBarcode()); headParam.put("reportTime", LocalDateTime.now()); headParam.put("weight",taskWrk.getScWeight().doubleValue()); log.info("wcs手动取消任务上报wm={}", taskWrk); response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(wmsUrl) .setPath(taskStatusFeedbackPath) .setJson(JSON.toJSONString(headParam)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); apiLogService.save("wcs手动取消任务上报wms" ,wmsUrl+taskStatusFeedbackPath ,null ,"127.0.0.1" ,JSON.toJSONString(headParam) ,response ,true ); }catch (Exception e){ log.error("wcs手动取消任务上报wms失败={},返回值={}", taskWrk,response); // throw new CoolException(e); } // try{ // HashMap<String, Object> headParam = new HashMap<>(); // headParam.put("taskNo",taskWrk.getTaskNo()); // headParam.put("taskStatus",taskWrk.getStatusWms()); // headParam.put("ioType",taskWrk.getIoTypeWms()); // headParam.put("barCode",taskWrk.getBarcode()); // headParam.put("reportTime", LocalDateTime.now()); // headParam.put("weight",taskWrk.getScWeight().doubleValue()); // // // log.info("wcs手动取消任务上报wm={}", taskWrk); // response = new HttpHandler.Builder() // // .setHeaders(headParam) // .setUri(wmsUrl) // .setPath(taskStatusFeedbackPath) // .setJson(JSON.toJSONString(headParam)) // .build() // .doPost(); // JSONObject jsonObject = JSON.parseObject(response); // apiLogService.save("wcs手动取消任务上报wms" // ,wmsUrl+taskStatusFeedbackPath // ,null // ,"127.0.0.1" // ,JSON.toJSONString(headParam) // ,response // ,true // ); // }catch (Exception e){ // log.error("wcs手动取消任务上报wms失败={},返回值={}", taskWrk,response); //// throw new CoolException(e); // } taskWrk.setCompleteTime(now);//完结时间 taskWrkService.updateById(taskWrk); return R.ok(); src/main/java/com/zy/asrs/domain/vo/CrnDetailVo.java
@@ -11,6 +11,7 @@ // 堆垛机号 private Integer crnNo; private Integer laneNo; // 工作号 private Short workNo; src/main/java/com/zy/asrs/entity/TaskWrk.java
@@ -377,14 +377,7 @@ } public Integer getStatusWms(){ switch (status){ case 5: return 1; case 4: return 0; default: return 0; } return status; } public String getPut(String point){ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -563,20 +563,23 @@ * 堆垛机站出库到出库站 */ public void crnStnToOutStn() { for (CrnSlave crnSlave : slaveProperties.getCrn()) { for (CrnSlave crn : slaveProperties.getCrn()) { // 获取堆垛机信息 CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { continue; } BasCrnp basCrnp = basCrnpService.selectById(crnSlave.getId()); BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); if (basCrnp == null) { log.error("{}号堆垛机尚未在数据库进行维护!", crnSlave.getId()); log.error("{}号堆垛机尚未在数据库进行维护!", crn.getId()); continue; } if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { CrnSlave crnSlave = new CrnSlave(crn); if (!crn.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { if (crnOther.getId().equals(crnProtocol.getLaneNo())) { crnSlave.updateCrnInStn(crnOther); @@ -641,30 +644,28 @@ * 入出库 ===>> 堆垛机入出库作业下发 */ public synchronized void crnIoExecute() throws IOException { for (CrnSlave crn : slaveProperties.getCrn()) { for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 获取堆垛机信息 CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { continue; } BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); BasCrnp basCrnp = basCrnpService.selectById(crnSlave.getId()); if (basCrnp == null) { log.error("{}号堆垛机尚未在数据库进行维护!", crn.getId()); log.error("{}号堆垛机尚未在数据库进行维护!", crnSlave.getId()); continue; } CrnSlave crnSlave = new CrnSlave(crn); CrnSlave crn = new CrnSlave(crnSlave); if (!crn.getId().equals(crnProtocol.getLaneNo())) { if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { if (crnOther.getId().equals(crnProtocol.getLaneNo())) { crnSlave.updateCrnInStn(crnOther); crn.updateCrnInStn(crnOther); } } } crn = crnSlave; // 库位移转 this.locToLoc(crn, crnProtocol); @@ -800,7 +801,7 @@ crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 目标库位层 crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 目标库位排 crnCommand.setCommand((short) 1); if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) { if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { log.error("堆垛机命令生成失败,堆垛机号={},任务数据={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); throw new CoolException("堆垛机命令生成失败"); } else { @@ -915,7 +916,7 @@ command.setDestinationPosY(crnStn.getBay().shortValue()); // 目标库位列 command.setDestinationPosZ(crnStn.getLev().shortValue()); // 目标库位层 command.setCommand((short) 1); if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, command))) { if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command))) { log.error("堆垛机命令生成失败,堆垛机号={},巷道={},任务数据={}", slave.getId(), taskWrk.getCrnNo(), JSON.toJSON(command)); throw new CoolException("堆垛机命令生成失败"); } else { @@ -1028,7 +1029,7 @@ crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 目标库位列 crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 目标库位层 crnCommand.setCommand((short) 1); if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) { if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); } else { // 修改工作档状态 11.生成出库ID => 12.吊车出库中 @@ -1082,15 +1083,17 @@ * 执行对工作档的完成操作 */ public void storeFinished() throws InterruptedException { for (CrnSlave crn : slaveProperties.getCrn()) { for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 获取堆垛机信息 CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { continue; } if (!crn.getId().equals(crnProtocol.getLaneNo())) { CrnSlave crn = new CrnSlave(crnSlave); if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { if (crnOther.getId().equals(crnProtocol.getLaneNo())) { crn.updateCrnInStn(crnOther); @@ -1400,22 +1403,13 @@ || (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { return false; } RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getId()); RgvTaskProtocol rgvTaskProtocolOther = RgvTaskCache.getRgvStatus(slave.getId()); if (rgvProtocolOther == null) { return true; } if (rgvProtocolOther.statusEnable) { if (rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) && rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE) && rgvProtocolOther.getLoaded()==0) { return false; } if (rgvProtocol.getLoaded()!=0) { return false; } return true; } public boolean rgvOtherIDLE(RgvSlave slave) { public boolean rgvOtherIDLE(RgvSlave slave,Integer staNo) { RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); @@ -1427,15 +1421,15 @@ return false; } RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); RgvTaskProtocol rgvTaskProtocolOther = RgvTaskCache.getRgvStatus(slave.getOtherId()); if (rgvProtocolOther == null) { return true; } if (rgvProtocolOther.statusEnable) { if (rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) && rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE) && rgvProtocolOther.getLoaded()==0) { BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staNo)); if (Math.abs(basDevpPosition.getPlcPosition()-rgvProtocol.getRgvPos()) >= Math.abs(basDevpPosition.getPlcPosition()-rgvProtocolOther.getRgvPos())){ return false; } } @@ -1491,7 +1485,7 @@ for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) { TaskWrk taskWrk = deviceDetection(inSta); if (taskWrk != null) { if (taskWrk.getTaskNo().equals(taskNoNow)) continue; if (taskWrk.getWrkNo().toString().equals(taskNoNow)) continue; taskWrkList.add(taskWrk); staList.add(inSta.getStaNo()); } @@ -1541,7 +1535,16 @@ for (Integer staNoNow : belongToRange) { for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { if (rgvStn.getStaNo().equals(staNoNow)) { sign = taskGenerate(rgvSlave, rgvStn, 0); TaskWrk taskWrk = deviceDetection(rgvStn); if (taskWrk != null) { Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { if (rgvStnOut.getStaNo().equals(outStaNo)) { sign = taskGenerate(rgvSlave, rgvStn, 0); break; } } } break; } } @@ -1550,11 +1553,29 @@ } } } if (!sign){ if (!sign && staList.size()==1){ if (rgvOtherIDLEOther(rgvSlave)){ if (!rgvOtherIDLE(rgvSlave)){ if (!rgvOtherIDLE(rgvSlave,staList.get(0))){ sign=true; } } if (sign){ for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { if (rgvStn.getStaNo().equals(staList.get(0))) { TaskWrk taskWrk = deviceDetection(rgvStn); if (taskWrk != null) { Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){ if (rgvSuper.getStaNo().equals(outStaNo)){ sign=false; break; } } } else { return; } break; } } } } @@ -1583,7 +1604,16 @@ for (Integer staNoNow : rangeList) { for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { if (rgvStn.getStaNo().equals(staNoNow)) { sign = taskGenerate(rgvSlave, rgvStn, 0); TaskWrk taskWrk = deviceDetection(rgvStn); if (taskWrk != null) { Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { if (rgvStnOut.getStaNo().equals(outStaNo)) { sign = taskGenerate(rgvSlave, rgvStn, 0); break; } } } break; } } @@ -1621,7 +1651,16 @@ for (Integer staNoNow : rangeList) { for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { if (rgvStn.getStaNo().equals(staNoNow)) { sign = taskGenerate(rgvSlave, rgvStn, 0); TaskWrk taskWrk = deviceDetection(rgvStn); if (taskWrk != null) { Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { if (rgvStnOut.getStaNo().equals(outStaNo)) { sign = taskGenerate(rgvSlave, rgvStn, 0); break; } } } break; } } @@ -1693,7 +1732,7 @@ BasDevpPosition basDevpPositionSou = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStn.getStaNo())); BasDevpPosition basDevpPositionEnd = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", targetPointConvert)); //执行 issuedTake.setTaskNo(Long.valueOf(taskWrk.getTaskNo())); issuedTake.setTaskNo(Long.valueOf(taskWrk.getWrkNo())); issuedTake.setTaskStatus(2); issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus())); issuedTake.setTargetPosition(basDevpPositionSou.getPlcPosition()); @@ -1701,7 +1740,7 @@ issuedTake.setDirection(basDevpPositionSou.getRgvSign()==1); issuedPut.setTaskNo(Long.valueOf(taskWrk.getTaskNo())); issuedPut.setTaskNo(Long.valueOf(taskWrk.getWrkNo())); issuedPut.setTaskStatus(3); issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus())); issuedPut.setTargetPosition(basDevpPositionEnd.getPlcPosition()); src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -57,6 +57,10 @@ public void execute() throws IOException { List<TaskWrk> taskWrkList = taskWrkService.selectToBeHistoryData(); for (TaskWrk taskWrk : taskWrkList) { if (taskWrkService.saveToHistory(taskWrk.getTaskNo()) == 0) { log.error("任务档转任务历史档失败" + taskWrk); return ; } JSONObject jsonObject = null; String response = null; boolean success = false; src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -1,10 +1,13 @@ package com.zy.asrs.utils; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.SpringUtils; import com.zy.asrs.entity.BasDevpPosition; import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.entity.WrkMast; import com.zy.core.enums.RouteCollectCountType; import com.zy.core.model.RgvSlave; import com.zy.system.service.UserService; import java.util.ArrayList; import java.util.Collections; @@ -138,6 +141,7 @@ //检测是否在范围 public static boolean CheckIfItIsWithinTheRange(List<Integer> staNoList, Long staNoNowPos, List<BasDevpPosition> basDevpPositionList, boolean itSmall) { List<Integer> siteList = new ArrayList<>(); Long maxOrMin = 0L; Integer[] rangeList = new Integer[staNoList.size()]; @@ -151,11 +155,28 @@ } } } if (itSmall) { return staNoNowPos <= rangeList[rangeList.length - 1]; for (BasDevpPosition basDevpPosition : basDevpPositionList) { if (basDevpPosition.getDevNo().equals(rangeList[rangeList.length - 1])) { maxOrMin = basDevpPosition.getPlcPosition(); break; } } if (maxOrMin == 0){ return false; } return staNoNowPos <= maxOrMin+50; } return staNoNowPos >= rangeList[0]; for (BasDevpPosition basDevpPosition : basDevpPositionList) { if (basDevpPosition.getDevNo().equals(rangeList[0])) { maxOrMin = basDevpPosition.getPlcPosition(); break; } } if (maxOrMin == 0){ return false; } return staNoNowPos >= maxOrMin-50; } public static long absoluteDifference(Long a, Long b) { src/main/java/com/zy/core/model/CrnSlave.java
@@ -55,6 +55,11 @@ } public CrnSlave(CrnSlave crnSlave) { this.setId(crnSlave.getId()); this.setIp(crnSlave.getIp()); this.setPort(crnSlave.getPort()); this.setStaNo(crnSlave.getStaNo()); this.setDevpPlcId(crnSlave.getDevpPlcId()); this.rack = crnSlave.getRack(); this.slot = crnSlave.getSlot(); this.offset = crnSlave.getOffset(); src/main/java/com/zy/core/model/RgvSlave.java
@@ -31,6 +31,7 @@ // RGV入库源站点 private List<RgvStn> rgvInSta = new ArrayList<>(); private List<RgvStn> rgvOutSta = new ArrayList<>(); private List<RgvStn> rgvSuperSta = new ArrayList<>(); @Data public static class RgvStn { src/main/java/com/zy/core/thread/RgvThread.java
@@ -48,7 +48,7 @@ // private RgvProtocol rgvProtocol; private TaskProtocolCache taskProtocolCache = new TaskProtocolCache(); // # 轨道总长 private Long trackEntireLength = 215000L; private Long trackEntireLength = 224000L; //# 轨道基准点 private Long trackBenchmark = 1L; // # 避让距离 @@ -378,7 +378,7 @@ > avoidDistance) {//无需避让 return true; } else { if (rgvProtocolOther.getRgvPosDestination() >= rgvProtocolOther.getRgvPos()) { if (rgvProtocolOther.getRgvPosDestination() >= rgvProtocolOther.getRgvPos()-50) { long avoid = rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing() - avoidDistance - rgvProtocol.getCarBodyKunPeng(); if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) { log.error("行走超出范围!!!任务异常 联系管理员!!!"); @@ -450,7 +450,7 @@ > avoidDistance) {//无需避让 return true; } else { if (rgvProtocolOther.getRgvPosDestination() <= rgvProtocolOther.getRgvPos()) { if (rgvProtocolOther.getRgvPosDestination() <= rgvProtocolOther.getRgvPos() + 50) { long avoid = rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng() + avoidDistance + rgvProtocol.getCarBodyJiaoMing(); if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) { log.error("行走超出范围!!!任务异常 联系管理员!!!"); src/main/resources/application-prod.yml
@@ -151,6 +151,14 @@ devpPlcId: ${wcs-slave.devp[0].id} staNo: 1017 direction: false rgvSuperSta[0]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 1001 direction: false rgvSuperSta[1]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 1002 direction: false # RGV穿梭车2 rgv[1]: id: 2 @@ -227,6 +235,14 @@ devpPlcId: ${wcs-slave.devp[0].id} staNo: 1017 direction: false rgvSuperSta[0]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 1023 direction: false rgvSuperSta[1]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 1022 direction: false barcode[0]: #条码扫描仪1004 port: 51236 src/main/resources/application.yml
@@ -50,7 +50,7 @@ constant-parameters: # 轨道总长 trackEntireLength: 215000 trackEntireLength: 224000 # 轨道基准点 trackBenchmark: 1 # 轨道转换为米比例 src/main/resources/mapper/TaskWrkMapper.xml
@@ -123,7 +123,7 @@ select * from "SOURCE"."wcs_task_wrk" where 1=1 and (("WRK_STS"=14 and "STATUS"=5) or "STATUS"=7 or "STATUS"=4 or ("WRK_STS"=4 and "STATUS"=5)) or ("WRK_STS"=4 and "STATUS"=5) or ("WRK_STS"=14 and "STATUS"=9)) order by "IO_PRI" desc,"CREATE_TIME","WRK_NO" ASC </select> @@ -131,7 +131,8 @@ insert into "SOURCE"."wcs_task_wrk_log" select * from "SOURCE"."wcs_task_wrk" where "TASK_NO" = #{taskNo} and ("STATUS"=5 or "STATUS"=4 or "STATUS"=6) and ("STATUS"=5 or "STATUS"=4 or "STATUS"=6 or "STATUS"=7 or "STATUS"=9) and ("WRK_NO" not in (select "WRK_NO" from "SOURCE"."asr_bas_devp")) </insert> <insert id="saveToHistoryD"> src/main/webapp/static/wcs/css/console-0.css
@@ -46,10 +46,10 @@ cursor: pointer; } .system-icon-open { background-image: url("../image/stop48.png"); background-image: url("../images/stop48.png"); } .system-icon-close { background-image: url("../image/start48.png"); background-image: url("../images/start48.png"); } #system-run-desc { @@ -323,7 +323,7 @@ background-color: #fff; height: 20px; width: 80px; background-image: url("../image/Crane_auto.png"); background-image: url("../images/Crane_auto.png"); background-repeat: no-repeat; background-size:100% 100%; background-position: top center; @@ -332,35 +332,35 @@ /* 入库 */ .machine-pakin { background-image: url("../image/Crane_store.png"); background-image: url("../images/Crane_store.png"); } /* 出库 */ .machine-pakout { background-image: url("../image/Crane_retrieve.png"); background-image: url("../images/Crane_retrieve.png"); } /* 库到库 */ .machine-stock-move { background-image: url("../image/Crane_loctoloc.png"); background-image: url("../images/Crane_loctoloc.png"); } /* 站到站 */ .machine-site-move { background-image: url("../image/Crane_stntostn.png"); background-image: url("../images/Crane_stntostn.png"); } /* p to p */ .machine-p-move { background-image: url("../image/Crane_hptoohp.png"); background-image: url("../images/Crane_hptoohp.png"); } /* 异常 */ .machine-error { background-image: url("../image/Crane_error.png"); background-image: url("../images/Crane_error.png"); } /* 自动 */ .machine-auto { background-image: url("../image/Crane_auto.png"); background-image: url("../images/Crane_auto.png"); } /* 非自动/收到 */ .machine-un-auto { background-image: url("../image/Crane_manual.png"); background-image: url("../images/Crane_manual.png"); } @@ -384,7 +384,7 @@ } /* PToP */ .machine-p-move-flag { background-color: #128014; background-color: #aaaaaa; color: #fff; } /* 异常 */ src/main/webapp/static/wcs/css/console.css
@@ -235,7 +235,7 @@ /* PToP */ .machine-p-move-flag { padding: 0 10px; background-color: rgb(29,152,23); background-color: rgb(184,184,184); } /* 异常 */ .machine-error-flag { src/main/webapp/static/wcs/css/crn.css
@@ -39,7 +39,7 @@ display: inline-block; width: 20px; height: 20px; background-color: #2e9926; background-color: #fff; border-radius: 5px; vertical-align: middle; } src/main/webapp/views/old_page/console-old.html
@@ -869,7 +869,7 @@ $("#crnWindow").attr('style', 'display:block;'); $("#siteWindow").attr("style", "display:none;"); $('.detailed').empty(); $('.detailed').append(id + '号堆垛机'); $('.detailed').append(id + '号巷道堆垛机'); $.ajax({ url: baseUrl + "/console/crn/detail", headers: { src/main/webapp/views/old_page/console.html
@@ -420,7 +420,7 @@ $("#crnWindow").attr('style', 'display:block;'); $("#siteWindow").attr("style", "display:none;"); $('.detailed').empty(); $('.detailed').append(id + '号堆垛机'); $('.detailed').append(id + '号巷道堆垛机'); $.ajax({ url: baseUrl + "/console/crn/detail", headers: { src/main/webapp/views/realtimeWatch/console.html
@@ -136,6 +136,15 @@ <input type="text" name="crnNo" value="" id="crnNo"> </div> </div> <!-- 巷道号 --> <div class="form-item"> <div class="form-item-label" style> <span>巷道号:</span> </div> <div class="form-item-input"> <input type="text" name="laneNo" value="" id="laneNo"> </div> </div> <!-- 工作号 --> <div class="form-item"> <div class="form-item-label"> @@ -445,7 +454,7 @@ $("#crnWindow").attr('style', 'display:block;'); $("#siteWindow").attr("style", "display:none;"); $('.detailed').empty(); $('.detailed').append(id + '号堆垛机'); $('.detailed').append(id + '号巷道堆垛机'); $.ajax({ url: baseUrl + "/console/crn/detail", headers: { @@ -642,7 +651,7 @@ // crnEl.animate({left: (crns[i].bay * unit) + 'px'}, 1000); // crns[i].bay = 1; var offSet = 390; var offSet = 500; // crns[i].bay = 41; if(crns[i].bay === 1){ crnEl.animate({left: offSet + 'px'}, 1000);