|  |  |  | 
|---|
|  |  |  | String requestType = resultBody.getString("requestType"); | 
|---|
|  |  |  | Integer requestId = resultHeader.getInteger("requestId"); | 
|---|
|  |  |  | if (requestType.equals("init")) { | 
|---|
|  |  |  | removeIdx = i;//此数据已经处理,从结果集中剔除 | 
|---|
|  |  |  | socketResults.remove(removeIdx); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer code = resultBody.getInteger("code"); | 
|---|
|  |  |  | //小车复位请求 | 
|---|
|  |  |  | ShuttleCommand initCommand = getInitCommand(requestId, code); | 
|---|
|  |  |  | 
|---|
|  |  |  | NyShuttleHttpCommand httpCommand = JSON.parseObject(initCommand.getBody(), NyShuttleHttpCommand.class); | 
|---|
|  |  |  | JSONObject requestResult = requestCommand(httpCommand); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | removeIdx = i;//此数据已经处理,从结果集中剔除 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.info(MessageFormat.format("【{0}】四向车复位上报 ===>> [code:{1}] [ip:{2}] [port:{3}]", slave.getId(), code, slave.getIp(), slave.getPort())); | 
|---|
|  |  |  | OutputQueue.SHUTTLE.offer(MessageFormat.format("【{0}】四向车复位上报 ===>> [code:{1}] [ip:{2}] [port:{3}]", slave.getId(), code, slave.getIp(), slave.getPort())); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (removeIdx != -1) { | 
|---|
|  |  |  | socketResults.remove(removeIdx); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | 
|---|
|  |  |  | maxPower = Integer.parseInt(chargeMaxValue.getValue()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //***************判断是否满充校准*************** | 
|---|
|  |  |  | Config shuttleMaxPowerVerifyConfig = configService.selectOne(new EntityWrapper<Config>() | 
|---|
|  |  |  | .eq("code", "shuttleMaxPowerVerify") | 
|---|
|  |  |  | .eq("status", 1)); | 
|---|
|  |  |  | if (shuttleMaxPowerVerifyConfig != null) { | 
|---|
|  |  |  | if (shuttleMaxPowerVerifyConfig.getValue().equals("true")) { | 
|---|
|  |  |  | if (this.shuttleProtocol.getBatteryVoltage() < 5630) { | 
|---|
|  |  |  | return false;//电压不够继续充电 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //***************判断是否满充校准*************** | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (this.shuttleProtocol.getHasCharge() == null) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //发出请求 | 
|---|
|  |  |  | private JSONObject requestCommand(NyShuttleHttpCommand httpCommand) throws IOException { | 
|---|
|  |  |  | if (this.socket == null) { | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | if (this.socket == null) { | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //压缩数据包 | 
|---|
|  |  |  | JSONObject data = JSON.parseObject(JSON.toJSONString(httpCommand)); | 
|---|
|  |  |  | data.remove("nodes"); | 
|---|
|  |  |  | //压缩数据包 | 
|---|
|  |  |  | JSONObject data = JSON.parseObject(JSON.toJSONString(httpCommand)); | 
|---|
|  |  |  | data.remove("nodes"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 获取输出流 | 
|---|
|  |  |  | OutputStreamWriter writer = new OutputStreamWriter(this.socket.getOutputStream()); | 
|---|
|  |  |  | writer.write(JSON.toJSONString(data) + "\r\n"); | 
|---|
|  |  |  | writer.flush(); | 
|---|
|  |  |  | // 获取输出流 | 
|---|
|  |  |  | OutputStreamWriter writer = new OutputStreamWriter(this.socket.getOutputStream()); | 
|---|
|  |  |  | writer.write(JSON.toJSONString(data) + "\r\n"); | 
|---|
|  |  |  | writer.flush(); | 
|---|
|  |  |  | //            System.out.println("Sent message to server: " + JSON.toJSONString(httpCommand)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String requestType = null; | 
|---|
|  |  |  | String taskId = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | requestType = httpCommand.getRequest().getBody().get("requestType").toString(); | 
|---|
|  |  |  | taskId = httpCommand.getRequest().getBody().get("taskId").toString(); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | String requestType = null; | 
|---|
|  |  |  | String taskId = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | requestType = httpCommand.getRequest().getBody().get("requestType").toString(); | 
|---|
|  |  |  | taskId = httpCommand.getRequest().getBody().get("taskId").toString(); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | //            return null; | 
|---|
|  |  |  | //taskId可能取空,不报错,正常情况 | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 获取服务器响应 | 
|---|
|  |  |  | // 尝试10次 | 
|---|
|  |  |  | JSONObject result = null; | 
|---|
|  |  |  | for (int i = 0; i < 10; i++) { | 
|---|
|  |  |  | result = getRequestBody(requestType, taskId); | 
|---|
|  |  |  | if (result == null) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | //taskId可能取空,不报错,正常情况 | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 获取服务器响应 | 
|---|
|  |  |  | // 尝试10次 | 
|---|
|  |  |  | JSONObject result = null; | 
|---|
|  |  |  | for (int i = 0; i < 10; i++) { | 
|---|
|  |  |  | result = getRequestBody(requestType, taskId); | 
|---|
|  |  |  | if (result == null) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return result;//返回Body结果集 | 
|---|
|  |  |  | }catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return result;//返回Body结果集 | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void requestCommandAsync(NyShuttleHttpCommand httpCommand) throws IOException { | 
|---|
|  |  |  | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //压缩数据包 | 
|---|
|  |  |  | JSONObject data = JSON.parseObject(JSON.toJSONString(httpCommand)); | 
|---|
|  |  |  | data.remove("nodes"); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | //压缩数据包 | 
|---|
|  |  |  | JSONObject data = JSON.parseObject(JSON.toJSONString(httpCommand)); | 
|---|
|  |  |  | data.remove("nodes"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 获取输出流 | 
|---|
|  |  |  | OutputStreamWriter writer = new OutputStreamWriter(this.socket.getOutputStream()); | 
|---|
|  |  |  | writer.write(JSON.toJSONString(data) + "\r\n"); | 
|---|
|  |  |  | writer.flush(); | 
|---|
|  |  |  | // 获取输出流 | 
|---|
|  |  |  | OutputStreamWriter writer = new OutputStreamWriter(this.socket.getOutputStream()); | 
|---|
|  |  |  | writer.write(JSON.toJSONString(data) + "\r\n"); | 
|---|
|  |  |  | writer.flush(); | 
|---|
|  |  |  | //            System.out.println("Sent message to server: " + JSON.toJSONString(httpCommand)); | 
|---|
|  |  |  | }catch (Exception e) { | 
|---|
|  |  |  | //           e.printStackTrace(); | 
|---|
|  |  |  | //           System.out.println("socket write error"); | 
|---|
|  |  |  | this.socket.close(); | 
|---|
|  |  |  | this.socket = null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private JSONObject filterBodyData(JSONObject data) { | 
|---|