| | |
| | | <!-- </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> |
| | |
| | | // List<WMSAndAGVInterfaceParam> params1 =new ArrayList<>(); |
| | | for (CarryParam param:params){ |
| | | param.updateIoTyoe(param.getIoType());//中航下发 1:出库,2:移库 3:入库 ====转换为====> 1:入库,2:出库,3:移库 |
| | | |
| | | param.updateLocNo(); |
| | | if (Cools.isEmpty(param)){ |
| | | return R.error("参数为空!"); |
| | | } else if (Cools.isEmpty(param.getTaskNo())){ |
| | |
| | | return R.ok().add(res); |
| | | } |
| | | |
| | | @PostMapping("/run/del")//Take Put Walk |
| | | @ManagerAuth(memo = "小车行走") |
| | | public R rgvRunDel(@RequestParam(defaultValue = "0") Integer rgvNo |
| | | ) { |
| | | if (rgvNo==null || rgvNo==0){ |
| | | return R.error("请选择小车"); |
| | | } |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo); |
| | | TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache(); |
| | | |
| | | try { |
| | | ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol(); |
| | | for (TaskProtocol taskProtocol : allTaskProtocol.values()){ |
| | | taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection()); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | return R.error("任务删除失败"+e.getMessage()); |
| | | } |
| | | |
| | | return R.ok("任务清空成功"); |
| | | } |
| | | |
| | | @PostMapping("/run/walk")//Take Put Walk |
| | | @ManagerAuth(memo = "小车行走") |
| | | public R rgvRunWalk(@RequestParam(defaultValue = "0") Integer rgvNo, |
| | |
| | | } |
| | | } |
| | | |
| | | public String getPut(String point){ |
| | | String[] split = point.split("-"); |
| | | if (split.length == 5){ |
| | | // String locNo = String.format("%02d", ) + |
| | | // String.format("%03d", split[3]) + |
| | | // String.format("%02d", split[4]); |
| | | |
| | | return split[2]+"0"+split[3]+split[4]; |
| | | } else { |
| | | return point; |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | //备注 |
| | | private String meno; |
| | | |
| | | public void updateLocNo(){ |
| | | startPoint = getPut(startPoint); |
| | | targetPoint = getPut(targetPoint); |
| | | } |
| | | public void updateIoTyoe(Integer ioTypeOld){ |
| | | switch (ioTypeOld){ |
| | | case 1: |
| | |
| | | } |
| | | } |
| | | |
| | | public String getPut(String point){ |
| | | String[] split = point.split("-"); |
| | | if (split.length == 5){ |
| | | // String locNo = String.format("%02d", ) + |
| | | // String.format("%03d", split[3]) + |
| | | // String.format("%02d", split[4]); |
| | | |
| | | return split[2]+"0"+split[3]+split[4]; |
| | | } else { |
| | | return point; |
| | | } |
| | | } |
| | | |
| | | public static String zerofill(String msg, Integer count){ |
| | | if (msg.length() == count){ |
| | | return msg; |
| | | } else if (msg.length() > count){ |
| | | return msg.substring(0, 16); |
| | | } else { |
| | | StringBuilder msgBuilder = new StringBuilder(msg); |
| | | for (int i = 0; i<count-msg.length(); i++){ |
| | | msgBuilder.insert(0,"0"); |
| | | } |
| | | return msgBuilder.toString(); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | if (taskWrk != null) { |
| | | BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); |
| | | BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | } |
| | |
| | | if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | if (taskWrk != null) { |
| | | BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); |
| | | BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | } |
| | |
| | | if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | if (taskWrk != null) { |
| | | BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); |
| | | BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | } |
| | |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | try { |
| | | map.put("taskNo",taskWrk.getTaskNo()); |
| | | map.put("status",taskWrk.getStatus()); |
| | | map.put("ioType",taskWrk.getIoType()); |
| | | map.put("barcode",taskWrk.getBarcode()); |
| | | map.put("taskStatus",taskWrk.getStatus()); |
| | | map.put("ioType",taskWrk.getIoTypeWms()); |
| | | map.put("barCode",taskWrk.getBarcode()); |
| | | map.put("reportTime",new Date()); |
| | | map.put("weight",taskWrk.getScWeight().doubleValue()); |
| | | response = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath(taskStatusFeedbackPath) |
| | |
| | | /** |
| | | * 车身 |
| | | */ |
| | | public Long carBodyJiaoMing = 0L; |
| | | public Long carBodyJiaoMing = 2000L; |
| | | |
| | | /** |
| | | * 车身 |
| | | */ |
| | | public Long carBodyKunPeng = 0L; |
| | | public Long carBodyKunPeng = 15000L; |
| | | |
| | | /** |
| | | * 是否启用 |
| | |
| | | // private RgvProtocol rgvProtocol; |
| | | private TaskProtocolCache taskProtocolCache = new TaskProtocolCache(); |
| | | // # 轨道总长 |
| | | private Long trackEntireLength = 100L; |
| | | private Long trackEntireLength = 215000L; |
| | | //# 轨道基准点 |
| | | private Long trackBenchmark = 100L; |
| | | private Long trackBenchmark = 1L; |
| | | // # 避让距离 |
| | | private Long avoidDistance = 100L; |
| | | private Long avoidDistance = 4000L; |
| | | |
| | | /** |
| | | * 工位1复位信号 |
| | |
| | | RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); |
| | | if (rgvProtocol == null) { |
| | | rgvProtocol = new RgvProtocol(); |
| | | rgvProtocol.setRgvNo(slave.getId()); |
| | | } |
| | | rgvProtocol.setRgvNo(slave.getId()); |
| | | rgvProtocol.setCarBodyJiaoMing(slave.getCarBodyJiaoMing()); |
| | | rgvProtocol.setCarBodyKunPeng(slave.getCarBodyKunPeng()); |
| | | |
| | | rgvProtocol.setRgvPos((long)siemensNet.getByteTransform().TransInt32(result.Content, 0)); |
| | | rgvProtocol.setRgvPosDestination((long)siemensNet.getByteTransform().TransInt32(result.Content, 4)); |
| | |
| | | rack: 0 |
| | | slot: 0 |
| | | otherId: 2 |
| | | carBodyJiaoMing: 4100 |
| | | carBodyKunPeng: 4100 |
| | | carBodyJiaoMing: 2000 |
| | | carBodyKunPeng: 15000 |
| | | #RGV源站点 |
| | | rgvInSta[0]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | |
| | | rack: 0 |
| | | slot: 0 |
| | | otherId: 1 |
| | | carBodyJiaoMing: 4100 |
| | | carBodyKunPeng: 4100 |
| | | carBodyJiaoMing: 2000 |
| | | carBodyKunPeng: 15000 |
| | | #RGV源站点 |
| | | rgvInSta[0]: |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | |
| | | |
| | | constant-parameters: |
| | | # 轨道总长 |
| | | trackEntireLength: 190000 |
| | | trackEntireLength: 215000 |
| | | # 轨道基准点 |
| | | trackBenchmark: 1 |
| | | # 轨道转换为米比例 |
| | | trackProportion: 10000 |
| | | # 避让距离 |
| | | avoidDistance: 4100 |
| | | avoidDistance: 5100 |
| | | |
| | | wms: |
| | | # 是否开启上报 |
| | |
| | | #url: 10.32.53.195:8080 |
| | | # WMS系统ip |
| | | # url: 10.210.157.109:8090 |
| | | url: 10.210.157.26:9027 |
| | | url: 10.10.10.205:9027 |
| | | # 入库任务申请接口 |
| | | #inboundTaskApplyPath: api/InterFace/inboundTaskApply |
| | | inboundTaskApplyPath: sugood/inboundTaskApply |
| | | # inboundTaskApplyPath: open/asrs/inboundTaskApply |
| | | # 任务状态反馈接口 |
| | | taskStatusFeedbackPath: external/wcs/wmsHeartBeat |
| | | taskStatusFeedbackPath: external/wcs/taskStatusFeedback |
| | | # 货位状态更新接口 |
| | | locationUpdatePath: api/InterFace/get_InterFace_TestStorage |
| | | # 移库申请接口 |
| | |
| | | <el-button @click="requestOperate('take')" type="primary">取货</el-button> |
| | | <el-button @click="requestOperate('put')" type="primary">放货</el-button> |
| | | <el-button @click="requestOperate('walk')" type="warning">行走</el-button> |
| | | <el-button @click="requestOperate('del')" type="warning">任务清空</el-button> |
| | | </div> |
| | | </div> |
| | | </el-card> |