src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/TaskWrkController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/SameLayerTransferScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensDevpThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application-prod.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -222,100 +222,6 @@ } } //AGV请求入库码头接口 @PostMapping("/targetWharfApply") @AppAuth(memo = "AGV请求入库码头接口") public R targetWharfApply(@RequestHeader String appkey, @RequestBody WMSAndAGVInterfaceParam param, HttpServletRequest request) throws IOException { auth(appkey,param,request); if (Cools.isEmpty(param)){ return R.error("参数为空!"); } else if (Cools.isEmpty(param.getTaskNo())){ return R.error("工作号为空!"); } else if (Cools.isEmpty(param.getContainerCode())){ return R.error("托盘编码为空!"); } else if (Cools.isEmpty(param.getWharfSource())){ return R.error("源码头为空!"); } else if (Cools.isEmpty(param.getFreeWharfs()) || param.getFreeWharfs().size()==0){ return R.error("空闲的入库码头(AGV)为空!"); } R r = openService.AgvToWCSToWms(param); apiLogService.save("AGV请求入库码头接口" ,request.getRemoteAddr()+request.getRequestURI() ,appkey ,request.getRemoteAddr() ,JSON.toJSONString(param) ,r.toString() ,true ); return r; } //AGV请求动作接口 @PostMapping("/agvTaskRequest") @AppAuth(memo = "AGV请求动作接口") public R agvTaskRequest(@RequestHeader String appkey, @RequestBody WMSAndAGVInterfaceParam param, HttpServletRequest request) { auth(appkey, param, request); if (Cools.isEmpty(param)){ return R.error("参数为空!"); } else if (Cools.isEmpty(param.getRequestType())){ return R.error("请求类型为空!"); } else if (Cools.isEmpty(param.getWharfCode())){ return R.error("码头编号为空!"); } Map<String,Integer> map = new HashMap<>(); map.put("J-1102",102);map.put("J-1101",101); map.put("J-1103",105);map.put("J-1104",106); map.put("J-1105",109);map.put("J-1106",110); map.put("J-1107",113);map.put("J-1108",114); map.put("J-1109",117);map.put("J-1110",118); map.put("J-1111",121);map.put("J-1112",122); map.put("H-1102",300);map.put("H-1101",305); map.put("G-1102",400);map.put("G-1101",405); // StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() // .eq("stn_desc", param.getWharfCode())); // // if (Cools.isEmpty(staDesc)){ // return R.error("程序报错,未查询到站点"); // } if (Cools.isEmpty(map.get(param.getWharfCode()))){ return R.error("未查询到站点"); } BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode())); // BasDevp basDevp = basDevpService.selectById(staDesc.getStnNo()); if (basDevp.getAutoing().equals("Y") && (basDevp.getInEnable().equals("Y") || basDevp.getOutEnable().equals("Y"))){ apiLogService.save("AGV请求入库码头接口" ,request.getRemoteAddr()+request.getRequestURI() ,appkey ,request.getRemoteAddr() ,JSON.toJSONString(param) ,R.ok().toString() ,true ); return R.ok("可入"); }else { apiLogService.save("AGV请求入库码头接口" ,request.getRemoteAddr()+request.getRequestURI() ,appkey ,request.getRemoteAddr() ,JSON.toJSONString(param) ,R.error("站点状态不可入").toString() ,true ); return R.error("站点状态不可入"); } } //任务下发接口 @PostMapping("/outboundTaskSend") @Transactional src/main/java/com/zy/asrs/controller/TaskWrkController.java
@@ -364,7 +364,7 @@ } if(notifyDto.getMsgType().equals("task_complete")&&taskWrk.getIoType()==3){ taskWrk.setWrkSts(8);//更新数据完成,直接转历史档 taskWrk.setWrkSts(7);//更新数据完成,直接转历史档 //更新源库位状态为空库位 LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint()); src/main/java/com/zy/asrs/task/SameLayerTransferScheduler.java
@@ -13,6 +13,7 @@ import com.zy.system.entity.Config; import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -45,9 +46,13 @@ if (config.getValue().equals("true")) { List<TaskWrk> taskWrks = taskWrkService.selectList(new EntityWrapper<TaskWrk>()); if (Cools.isEmpty(taskWrks)) { if (taskWrks.size() < 3) { List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "F")); for (LocMast locMast : locMasts) { TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("start_point",locMast.getLocNo())); if(!Cools.isEmpty(taskWrk1)){ continue; } List<LocMast> list = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("lev1", locMast.getLev1())); String[] locMs = new String[list.size()]; src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -238,74 +238,6 @@ } } } // OperateResultExOne<byte[]> resultAgvAndPlc = siemensS7Net.Read("DB102.0", (short) 30); // if (resultAgvAndPlc.IsSuccess) { // for (int i = 0; i < staNoSize; i++) { // int sign =(i+2)/2-1; // if ((i+2)%2!=0){ // Integer siteId = staNos.get(i); // 站点编号 // StaProtocol staProtocol = station.get(siteId); // if (null == staProtocol) { // staProtocol = new StaProtocol(); // staProtocol.setSiteId(siteId); // station.put(siteId, staProtocol); // } // staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6+4)); // 允许取货 // staProtocol.setAgvStartPlace((short)0); // 允许放货 // continue; // } // Integer siteId = staNos.get(i); // 站点编号 // StaProtocol staProtocol = station.get(siteId); // if (null == staProtocol) { // staProtocol = new StaProtocol(); // staProtocol.setSiteId(siteId); // station.put(siteId, staProtocol); // } // staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6)); // 允许取货 // staProtocol.setAgvStartPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6 + 2)); // 允许放货 // } // } // OperateResultExOne<byte[]> resultAgvAndPlcOk = siemensS7Net.Read("DB132.0", (short) 30); // if (resultAgvAndPlcOk.IsSuccess) { // for (int i = 0; i < staNoSize; i++) { // int sign =(i+2)/2-1; // if ((i+2)%2!=0){ // Integer siteId = staNos.get(i); // 站点编号 // StaProtocol staProtocol = station.get(siteId); // if (null == staProtocol) { // staProtocol = new StaProtocol(); // staProtocol.setSiteId(siteId); // station.put(siteId, staProtocol); // } // staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6+4)); // 允许取货 // staProtocol.setAgvTargetPlace((short)0); // 允许放货 // continue; // } // Integer siteId = staNos.get(i); // 站点编号 // StaProtocol staProtocol = station.get(siteId); // if (null == staProtocol) { // staProtocol = new StaProtocol(); // staProtocol.setSiteId(siteId); // station.put(siteId, staProtocol); // } // try{ // staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6)); // 取货完成 // if (staProtocol.getAgvTargetPick()!=0){ // System.out.println(staProtocol.getAgvTargetPick()); // } // staProtocol.setAgvTargetPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6 + 2)); // 放货完成 // if (staProtocol.getAgvTargetPlace()!=0){ // System.out.println(staProtocol.getAgvTargetPlace()); // } // }catch (Exception e){ // log.error(""+e); // } // } // } if (slave.getId() == 1) { //条码 //Thread.sleep(200); @@ -319,67 +251,9 @@ } } } //外形检测 OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.810.0", (short) (barcodeSize*1)); StaProtocol staProtocol1 = station.get(116); boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, 0, 1); staProtocol1.setFrontErr(status1[0]); staProtocol1.setBackErr(status1[1]); staProtocol1.setHighErr(status1[2]); staProtocol1.setLeftErr(status1[3]); staProtocol1.setRightErr(status1[4]); staProtocol1.setWeightErr(status1[5]); staProtocol1.setBarcodeErr(status1[6]); OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4)); if (resultErr.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 站点编号 boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1); StaProtocol staProtocol = station.get(siteId); staProtocol.setBreakerErr(status[0]); staProtocol.setInfraredErr(status[1]); staProtocol.setOutTimeErr(status[2]); staProtocol.setSeizeSeatErr(status[3]); staProtocol.setWrkYgoodsN(status[4]); staProtocol.setInverterErr(status[5]); staProtocol.setContactErr(status[6]); staProtocol.setUpcontactErr(status[7]); } } } // //RGV台车位置 // Thread.sleep(200); // OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.0",(short)4); // if (result3.IsSuccess) { // for (int i = 0; i < 2; i++) { // Integer siteId = i==0 ? 1 : 2; // 站点编号 // StaProtocol staProtocol = station.get(siteId); // if (null == staProtocol) { // staProtocol = new StaProtocol(); // staProtocol.setSiteId(siteId); // station.put(siteId, staProtocol); // } // staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, i*2))); //// String aa = staProtocol.getNearbySta(); //// System.out.println(siteId + "===>>" + staProtocol.getNearbySta()); // } // } // OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0"); // if (result2.IsSuccess) { // this.ioMode = IoModeType.get(result2.Content); // } if (result.IsSuccess ) { OutputQueue.DEVP.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); // 根据实时信息更新数据库 try { List<BasDevp> basDevps = new ArrayList<>(); @@ -387,7 +261,6 @@ StaProtocol staProtocol = station.get(siteId); basDevps.add(staProtocol.toSqlModel()); } BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) { throw new Exception("更新数据库数据失败"); @@ -397,7 +270,6 @@ OutputQueue.DEVP.offer(MessageFormat.format("【{0}】更新数据库数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); log.error("更新数据库数据失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); } DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); deviceErrorService.deleteDeviceError("devp", slave.getId()); } else { src/main/resources/application-prod.yml
@@ -1,49 +1,4 @@ wcs-slave: doubleDeep: true #双深 doubleLocs: 1,4,5,8 #双深库位排号 1,4,5,8 groupCount: 4 #一个堆垛机负责的货架排数 crn[0]: #堆垛机1 id: 1 ip: 10.10.10.110 slot: 0 demo: false rack: 0 offset: 2 #偏移量,当堆垛机站点列号=1时,偏移量=2 port: 102 crnOutStn[0]: #堆垛机出库站点 staNo: 125 row: 3 bay: 1 lev: 2 devpPlcId: ${wcs-slave.devp[0].id} crnInStn[0]: #堆垛机入库站点1 staNo: 100 row: 2 bay: 1 lev: 2 backSta: 102 devpPlcId: ${wcs-slave.devp[0].id} crn[1]: #堆垛机2 id: 2 ip: 10.10.10.120 slot: 0 demo: false rack: 0 offset: 2 #偏移量,当堆垛机站点列号=1时,偏移量=2 port: 102 crnOutStn[0]: #堆垛机出库站点 staNo: 115 row: 7 bay: 1 lev: 2 devpPlcId: ${wcs-slave.devp[0].id} crnInStn[0]: #堆垛机入库站点1 staNo: 120 row: 6 bay: 1 lev: 2 backSta: 106 devpPlcId: ${wcs-slave.devp[0].id} devp[0]: #输送线 id: 1 ip: 10.10.10.130 src/main/resources/application.yml
@@ -50,7 +50,7 @@ #url: 10.32.53.195:8080 # WMS系统ip # url: 10.210.157.109:8090 url: 10.10.10.222:2410 url: 127.0.0.1:2410 # 入库任务申请接口 #inboundTaskApplyPath: api/InterFace/inboundTaskApply inboundTaskApplyPath: api/StereoscopicCallBack/AcceptTaskStatus @@ -62,7 +62,7 @@ # 移库申请接口 movePath: api/InterFace/get_InterFace_TestStorage wcs: urlWcs: 10.10.20.200:9090/wcs urlWcs: 127.0.0.1:9091/wcs #入库任务申请 inboundTaskApplyPathWcs: openapi/createInTask #出库任务申请