From 8ef2bb5e46d84594e6ed632c07ea0b47a1bf6c4d Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 11 十二月 2024 16:15:17 +0800 Subject: [PATCH] #path similarity --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java | 330 +++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 248 insertions(+), 82 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java index d9ce954..ee3af41 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java @@ -9,6 +9,7 @@ import com.zy.asrs.framework.common.SpringUtils; import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wcs.common.ExecuteSupport; +import com.zy.asrs.wcs.core.action.ShuttleAction; import com.zy.asrs.wcs.core.domain.param.ShuttleMoveLocParam; import com.zy.asrs.wcs.core.entity.BasShuttle; import com.zy.asrs.wcs.core.entity.Loc; @@ -24,11 +25,13 @@ import com.zy.asrs.wcs.core.utils.NavigateMapData; import com.zy.asrs.wcs.core.utils.NavigatePositionConvert; import com.zy.asrs.wcs.core.utils.RedisUtil; +import com.zy.asrs.wcs.core.utils.Utils; import com.zy.asrs.wcs.rcs.News; import com.zy.asrs.wcs.rcs.cache.OutputQueue; import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant; import com.zy.asrs.wcs.rcs.entity.Device; import com.zy.asrs.wcs.rcs.entity.DeviceDataLog; +import com.zy.asrs.wcs.rcs.model.CommandResponse; import com.zy.asrs.wcs.rcs.model.command.NyShuttleHttpCommand; import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType; import com.zy.asrs.wcs.rcs.model.enums.SlaveType; @@ -61,6 +64,9 @@ private List<JSONObject> socketResults = new ArrayList<>(); + //鍘熷璁惧鏁版嵁 + private Object originDeviceData; + public NyShuttleThread(Device device, RedisUtil redisUtil) { this.device = device; this.redisUtil = redisUtil; @@ -74,18 +80,125 @@ //鐩戝惉娑堟伅骞跺瓨鍌� Thread innerThread = new Thread(() -> { while (true) { - listenSocketMessage(); + try { + listenSocketMessage(); + } catch (Exception e) { + e.printStackTrace(); + } } }); innerThread.start(); - while (true) { - try { - read(); - Thread.sleep(500); - } catch (Exception e) { - log.error("ShuttleThread Fail", e); + //璁惧璇诲彇 + Thread readThread = new Thread(() -> { + while (true) { + try { + read(); + Thread.sleep(50); + } catch (Exception e) { + log.error("ShuttleThread Fail", e); + } } + }); + readThread.start(); + + //璁惧鎵ц + Thread executeThread = new Thread(() -> { + while (true) { + try { + ShuttleAction shuttleAction = SpringUtils.getBean(ShuttleAction.class); + if (shuttleAction == null) { + continue; + } + + Object object = redisUtil.get(DeviceRedisConstant.SHUTTLE_FLAG + device.getDeviceNo()); + if (object == null) { + continue; + } + + Integer taskNo = Integer.valueOf(String.valueOf(object)); + if (taskNo != 0) { + //瀛樺湪浠诲姟闇�瑕佹墽琛� + boolean result = shuttleAction.executeWork(device, taskNo); + } + + //灏忚溅绌洪棽涓旀湁璺戝簱绋嬪簭 + shuttleAction.moveLoc(device); + + Thread.sleep(200); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + executeThread.start(); + + //鍏朵粬浠诲姟 + Thread otherThread = new Thread(() -> { + while (true) { + try { + listenInit();//鐩戝惉鍒濆鍖栦簨浠� + saveLog();//淇濆瓨鏁版嵁 + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + otherThread.start(); + } + + private void saveLog() { + if (shuttleProtocol == null) { + return; + } + + if (System.currentTimeMillis() - shuttleProtocol.getDeviceDataLog() > 1000 * 5) { + if (this.originDeviceData != null) { + //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰� + //淇濆瓨鏁版嵁璁板綍 + DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class); + DeviceDataLog deviceDataLog = new DeviceDataLog(); + deviceDataLog.setOriginData(JSON.toJSONString(this.originDeviceData)); + deviceDataLog.setWcsData(JSON.toJSONString(shuttleProtocol)); + deviceDataLog.setType(String.valueOf(SlaveType.Shuttle)); + deviceDataLog.setDeviceNo(String.valueOf(shuttleProtocol.getShuttleNo())); + deviceDataLog.setCreateTime(new Date()); + deviceDataLog.setHostId(device.getHostId()); + deviceDataLogService.save(deviceDataLog); + + //鏇存柊閲囬泦鏃堕棿 + shuttleProtocol.setDeviceDataLog(System.currentTimeMillis()); + } + } + + //灏嗗洓鍚戠┛姊溅鐘舵�佷繚瀛樿嚦鏁版嵁搴� + BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class); + BasShuttle basShuttle = shuttleService.getOne(new LambdaQueryWrapper<BasShuttle>() + .eq(BasShuttle::getShuttleNo, device.getDeviceNo()) + .eq(BasShuttle::getHostId, device.getHostId())); + + if (basShuttle == null) { + basShuttle = new BasShuttle(); + //鍥涘悜绌挎杞﹀彿 + basShuttle.setShuttleNo(Integer.valueOf(device.getDeviceNo())); + basShuttle.setStatus(1); + basShuttle.setDeleted(0); + basShuttle.setHostId(device.getHostId()); + basShuttle.setDeviceId(device.getId().intValue()); + shuttleService.save(basShuttle); + }else { + Integer shuttleId = basShuttle.getId(); + basShuttle = new BasShuttle(); + basShuttle.setId(shuttleId); + } + //浠诲姟鍙� + basShuttle.setTaskNo(shuttleProtocol.getTaskNo().intValue()); + //淇敼鏃堕棿 + basShuttle.setUpdateTime(new Date()); + //璁惧鐘舵�� + basShuttle.setProtocol(JSON.toJSONString(shuttleProtocol)); + if (shuttleService.updateById(basShuttle)) { + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), device.getDeviceNo())); } } @@ -99,17 +212,15 @@ BufferedReader reader = new BufferedReader(new InputStreamReader(this.socket.getInputStream())); // 璇诲彇鏈嶅姟鍣ㄧ殑鍝嶅簲 StringBuffer sb = new StringBuffer(); - String response = null; char[] chars = new char[2048];//缂撳啿鍖� - do { + while (true) { reader.read(chars); - String trim = new String(chars).trim(); + String trim = new String(chars); sb.append(trim); - if (sb.lastIndexOf("\r\n") != -1) { + if (trim.lastIndexOf("\r\n") != -1) { break; } - } while (response != null); -// System.out.println("Received response from server: " + sb); + } JSONObject result = JSON.parseObject(sb.toString());//寰楀埌鍝嶅簲缁撴灉闆� if (!socketResults.isEmpty() && socketResults.size() >= 5) { @@ -168,7 +279,6 @@ this.connect(); } readStatus(); - listenInit();//鐩戝惉鍒濆鍖栦簨浠� } catch (Exception e) { e.printStackTrace(); OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戣鍙栧洓鍚戠┛姊溅鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort())); @@ -213,11 +323,11 @@ shuttleProtocol.setErrorCode(data.getJSONArray("errCode").getString(0)); //鏄惁椤跺崌 - shuttleProtocol.setHasLift(data.getInteger("liftPosition") == 1 ? true : false); + shuttleProtocol.setHasLift(data.getInteger("liftPosition") == 2 ? true : false); //鏄惁鏈夋墭鐩� shuttleProtocol.setHasPallet(data.getInteger("loadState") == 1 ? true : false); //琛岄┒鏂瑰悜 - shuttleProtocol.setRunDirection(data.getString("runDir") == null ? "none" : data.getString("direction")); + shuttleProtocol.setRunDirection(data.getString("runDir") == null ? "none" : data.getString("runDir")); //鏄惁涓哄厖鐢电姸鎬� shuttleProtocol.setHasCharge(data.getInteger("chargState") == 1 ? true : false); @@ -247,47 +357,9 @@ shuttleProtocol.setProtocolStatusType(ShuttleProtocolStatusType.IDLE); } - if (System.currentTimeMillis() - shuttleProtocol.getDeviceDataLog() > 1000 * 5) { - //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰� - //淇濆瓨鏁版嵁璁板綍 - DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class); - DeviceDataLog deviceDataLog = new DeviceDataLog(); - deviceDataLog.setOriginData(JSON.toJSONString(data)); - deviceDataLog.setWcsData(JSON.toJSONString(shuttleProtocol)); - deviceDataLog.setType(String.valueOf(SlaveType.Shuttle)); - deviceDataLog.setDeviceNo(String.valueOf(shuttleProtocol.getShuttleNo())); - deviceDataLog.setCreateTime(new Date()); - deviceDataLog.setHostId(device.getHostId()); - deviceDataLogService.save(deviceDataLog); + this.originDeviceData = data; - //鏇存柊閲囬泦鏃堕棿 - shuttleProtocol.setDeviceDataLog(System.currentTimeMillis()); - } - - //灏嗗洓鍚戠┛姊溅鐘舵�佷繚瀛樿嚦鏁版嵁搴� - BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class); - BasShuttle basShuttle = shuttleService.getOne(new LambdaQueryWrapper<BasShuttle>() - .eq(BasShuttle::getShuttleNo, device.getDeviceNo()) - .eq(BasShuttle::getHostId, device.getHostId())); - if (basShuttle == null) { - basShuttle = new BasShuttle(); - //鍥涘悜绌挎杞﹀彿 - basShuttle.setShuttleNo(Integer.valueOf(device.getDeviceNo())); - basShuttle.setStatus(1); - basShuttle.setDeleted(0); - basShuttle.setHostId(device.getHostId()); - basShuttle.setDeviceId(device.getId().intValue()); - shuttleService.save(basShuttle); - } - //浠诲姟鍙� - basShuttle.setTaskNo(shuttleProtocol.getTaskNo().intValue()); - //淇敼鏃堕棿 - basShuttle.setUpdateTime(new Date()); - //璁惧鐘舵�� - basShuttle.setProtocol(JSON.toJSONString(shuttleProtocol)); - if (shuttleService.updateById(basShuttle)) { - OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), device.getDeviceNo())); - } + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), device.getDeviceNo())); } } catch (Exception e) { e.printStackTrace(); @@ -331,6 +403,9 @@ JSONObject requestResult = requestCommand(httpCommand); removeIdx = i;//姝ゆ暟鎹凡缁忓鐞嗭紝浠庣粨鏋滈泦涓墧闄� + + log.info(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", device.getId(), code, device.getIp(), device.getPort())); + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", device.getId(), code, device.getIp(), device.getPort())); break; } } @@ -362,17 +437,20 @@ } @Override - public boolean movePath(List<NavigateNode> nodes, Integer taskNo) { - return true; + public CommandResponse movePath(List<NavigateNode> nodes, Integer taskNo) { + CommandResponse response = new CommandResponse(true); + return response; } @Override - public boolean move(ShuttleCommand command) { + public CommandResponse move(ShuttleCommand command) { + CommandResponse response = new CommandResponse(false); try { //鍙戝嚭璇锋眰 NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class); Map<String, Object> body = httpCommand.getRequest().getBody(); Object pathObj = body.get("path"); + int taskId = Integer.parseInt(body.get("taskId").toString()); List<JSONObject> path = JSON.parseArray(JSON.toJSONString(pathObj), JSONObject.class); ArrayList<NyShuttleHttpCommand> commandList = new ArrayList<>(); while (!path.isEmpty()) { @@ -380,7 +458,12 @@ if (path.size() > 10) { List<JSONObject> subList = path.subList(0, 10); list.addAll(subList); - subList.clear(); + + List<JSONObject> tmp = new ArrayList<>(); + for (int i = 10; i < path.size(); i++) { + tmp.add(path.get(i)); + } + path = tmp; }else { list.addAll(path); path.clear(); @@ -391,6 +474,7 @@ NyShuttleHttpCommand.NyRequest request = httpCommandCopy.getRequest(); bodyCopy.put("path", list); + bodyCopy.put("taskId", taskId++); request.setBody(bodyCopy); httpCommandCopy.setRequest(request); @@ -400,54 +484,86 @@ for (NyShuttleHttpCommand requestCommand : commandList) { JSONObject result = requestCommand(requestCommand); if (result == null) { - return false;//璇锋眰澶辫触 + return response;//璇锋眰澶辫触 } this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 + response.setMessage(JSON.toJSONString(result)); + response.setResult(true); } - return true; - } catch (IOException e) { - return false; + return response; + } catch (Exception e) { + e.printStackTrace(); + response.setMessage(e.getMessage()); + return response; } } @Override - public boolean lift(ShuttleCommand command) { + public CommandResponse lift(ShuttleCommand command) { + CommandResponse response = new CommandResponse(false); try { //鍙戝嚭璇锋眰 NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class); JSONObject result = requestCommand(httpCommand); if (result == null) { - return false;//璇锋眰澶辫触 + return response;//璇锋眰澶辫触 } this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 - return true; - } catch (IOException e) { - return false; + response.setMessage(JSON.toJSONString(result)); + response.setResult(true); + return response; + } catch (Exception e) { + e.printStackTrace(); + return response; } } @Override - public boolean charge(ShuttleCommand command) { + public CommandResponse charge(ShuttleCommand command) { + CommandResponse response = new CommandResponse(false); try { //鍙戝嚭璇锋眰 NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class); JSONObject result = requestCommand(httpCommand); if (result == null) { - return false;//璇锋眰澶辫触 + return response;//璇锋眰澶辫触 } this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 - return true; - } catch (IOException e) { - return false; + response.setMessage(JSON.toJSONString(result)); + response.setResult(true); + return response; + } catch (Exception e) { + e.printStackTrace(); + return response; } } @Override - public boolean reset(ShuttleCommand command) { + public CommandResponse reset(ShuttleCommand command) { setSyncTaskNo(0); setProtocolStatus(ShuttleProtocolStatusType.IDLE); enableMoveLoc(null, false); - return true; + return new CommandResponse(true, JSON.toJSONString(command)); + } + + @Override + public CommandResponse updateLocation(ShuttleCommand command) { + CommandResponse response = new CommandResponse(false); + try { + //鍙戝嚭璇锋眰 + NyShuttleHttpCommand httpCommand = JSON.parseObject(command.getBody(), NyShuttleHttpCommand.class); + JSONObject result = requestCommand(httpCommand); + if (result == null) { + return response;//璇锋眰澶辫触 + } + this.shuttleProtocol.setSendTime(System.currentTimeMillis());//鎸囦护涓嬪彂鏃堕棿 + response.setMessage(JSON.toJSONString(result)); + response.setResult(true); + return response; + } catch (Exception e) { + e.printStackTrace(); + return response; + } } @Override @@ -551,7 +667,7 @@ if (shuttleService == null) { return false; } - BasShuttle basShuttle = shuttleService.getById(this.device.getDeviceNo()); + BasShuttle basShuttle = shuttleService.getOne(new LambdaQueryWrapper<BasShuttle>().eq(BasShuttle::getDeviceId, this.device.getId())); if (basShuttle == null) { return false; } @@ -572,7 +688,7 @@ return false; } - if (this.shuttleProtocol.getDeviceStatus() == 1 && this.shuttleProtocol.getHasCharge()) { + if (this.shuttleProtocol.getDeviceStatus() == 0 && this.shuttleProtocol.getHasCharge()) { //杩愯涓� && 鍏呯數涓� return true; } @@ -613,6 +729,7 @@ @Override public List<NavigateNode> getMoveAdvancePath() { ObjectMapper objectMapper = SpringUtils.getBean(ObjectMapper.class); + NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); ArrayList<NavigateNode> path = new ArrayList<>(); if (shuttleProtocol.getTaskNo() != 0) { //瀛樺湪浠诲姟锛岃幏鍙栨寚浠� @@ -631,6 +748,18 @@ if (!nodes.isEmpty()) { path.addAll(nodes); } + + //灏嗚矾寰勯攣涓庡皬杞﹁矾寰勮繘琛屽尮閰� + ArrayList<NavigateNode> tmp = new ArrayList<>(); + //妫�娴嬭矾寰勬槸鍚﹁閿佸畾 + int[][] map = navigateMapData.getDataFromRedis(NavigationMapType.DFX.id, null, null); + for (NavigateNode node : path) { + if(map[node.getX()][node.getY()] == -999) { + tmp.add(node); + } + } + + path = tmp; } } return path; @@ -684,6 +813,15 @@ } @Override + public boolean requestWaiting() { + if (this.shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.IDLE)) { + this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING); + return true; + } + return false; + } + + @Override public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) { NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo); @@ -691,9 +829,10 @@ ArrayList<HashMap<String, Object>> path = new ArrayList<>(); + Integer taskId = getTaskId(); HashMap<String, Object> body = new HashMap<>(); body.put("requestType", "move");//绉诲姩鍛戒护 - body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈� + body.put("taskId", taskId);//TaskID闇�瑕侀殢鏈� // body.put("start", navigateNodeToNyPointNode(NavigatePositionConvert.codeToNode(startCodeNum, device.getHostId())));//璧风偣 // body.put("target", navigateNodeToNyPointNode(NavigatePositionConvert.codeToNode(distCodeNum, device.getHostId())));//缁堢偣 body.put("path", path); @@ -736,6 +875,7 @@ command.setBody(JSON.toJSONString(httpStandard)); command.setMode(ShuttleCommandModeType.MOVE.id); command.setTargetLocNo(loc.getLocNo()); + command.setTaskNo(taskId); return command; } @@ -744,9 +884,10 @@ NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo); NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); + Integer taskId = getTaskId();//TaskID闇�瑕侀殢鏈� HashMap<String, Object> body = new HashMap<>(); body.put("requestType", lift ? "liftUp" : "liftDown");//椤跺崌鎴栦笅闄嶅懡浠� - body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈� + body.put("taskId", taskId); request.setBody(body); httpStandard.setRequest(request); @@ -755,6 +896,7 @@ command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(lift ? ShuttleCommandModeType.PALLET_LIFT.id : ShuttleCommandModeType.PALLET_DOWN.id); + command.setTaskNo(taskId); return command; } @@ -763,9 +905,10 @@ NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo); NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); + Integer taskId = getTaskId();//TaskID闇�瑕侀殢鏈� HashMap<String, Object> body = new HashMap<>(); body.put("requestType", charge ? "charge" : "stopCharge");//鍏呯數鎴栧仠姝㈠厖鐢� - body.put("taskId", getTaskId());//TaskID闇�瑕侀殢鏈� + body.put("taskId", taskId); request.setBody(body); httpStandard.setRequest(request); @@ -774,6 +917,27 @@ command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(charge ? ShuttleCommandModeType.CHARGE_OPEN.id : ShuttleCommandModeType.CHARGE_CLOSE.id); + command.setTaskNo(taskId); + return command; + } + + @Override + public ShuttleCommand getUpdateLocationCommand(Integer taskNo, String locNo) { + NyShuttleHttpCommand httpStandard = getHttpStandard(Integer.parseInt(device.getDeviceNo()), taskNo); + NyShuttleHttpCommand.NyRequest request = httpStandard.getRequest(); + + HashMap<String, Object> body = new HashMap<>(); + body.put("requestType", "updateFloor");//鏇存柊灞俍 + body.put("z", Utils.getLev(locNo));//鍧愭爣Z + request.setBody(body); + + httpStandard.setRequest(request); + + ShuttleCommand command = new ShuttleCommand(); + command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); + command.setBody(JSON.toJSONString(httpStandard)); + command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id); + command.setTaskNo(taskNo); return command; } @@ -828,6 +992,7 @@ command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); command.setBody(JSON.toJSONString(httpStandard)); command.setMode(ShuttleCommandModeType.RESET.id); + command.setTaskNo(taskNo); return command; } @@ -928,8 +1093,9 @@ } catch (Exception e) { e.printStackTrace(); } + }else { + break; } - break; } return result;//杩斿洖Body缁撴灉闆� } -- Gitblit v1.9.1