| | |
| | | import com.zy.asrs.service.BasCircularShuttleService; |
| | | import com.zy.asrs.service.BasDevpPositionService; |
| | | import com.zy.asrs.service.BasDevpService; |
| | | import com.zy.asrs.utils.SortTheExecutionOfTheCarUtil; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.core.DevpThread; |
| | | import com.zy.core.News; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | */ |
| | | public synchronized void updateStePosition() { |
| | | try{ |
| | | List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("ste_id", true)); |
| | | boolean sign = false; |
| | | Integer rgvNo = 0; |
| | | List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true)); |
| | | for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){ |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getSteNo()); |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getRgvNo()); |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol.modeType != RgvModeType.AUTO || (rgvProtocol.getStatusType() != RgvStatusType.IDLE && rgvProtocol.getStatusType() != RgvStatusType.SOS1001) ){ |
| | | |
| | | sign = true; |
| | | } else { |
| | | rgvNo = basCircularShuttle.getRgvNo(); |
| | | break; |
| | | } |
| | | } |
| | | } catch (Exception e){ |
| | | if (sign && rgvNo!=0){ |
| | | int[][] ints = new int[basCircularShuttleList.size()][2]; |
| | | for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){ |
| | | ints[basCircularShuttle.getRgvNo()-1] = new int[]{basCircularShuttle.getRgvNo(),basCircularShuttle.getRgvId()}; |
| | | } |
| | | String[] oldList = new String[ints.length]; |
| | | for (int[] rgv : ints){ |
| | | oldList[rgv[0]-1] = Arrays.toString(rgv); |
| | | } |
| | | int[][] rgvList = SortTheExecutionOfTheCarUtil.ReorderSteId(ints, rgvNo); |
| | | String[] newList = new String[rgvList.length]; |
| | | for (int[] rgv : rgvList){ |
| | | newList[rgv[0]-1] = Arrays.toString(rgv); |
| | | } |
| | | |
| | | log.info("更新小车排序信息:原始小车号rgvNo={},小车重新排序信息={},小车原始排序信息={}",rgvNo,Arrays.toString(newList),Arrays.toString(oldList)); |
| | | for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){ |
| | | int[] rgv = rgvList[basCircularShuttle.getRgvNo() - 1]; |
| | | basCircularShuttle.setRgvId(rgv[1]); |
| | | basCircularShuttleService.updateById(basCircularShuttle); |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | log.error("自动更新小车排序信息失败,异常:"+e); |
| | | } |
| | | } |
| | | /** |