|  |  | 
 |  |  |  | 
 |  |  |     protected String commandTypeOuter = CommandType.outerCommand; | 
 |  |  |  | 
 |  |  |     // 存储实例化的 CompletableFuture<Data> 对象 | 
 |  |  |     protected static Map<Long, Object> features = new HashMap<>(); | 
 |  |  |     //protected static Boolean setuped = false; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private RestTemplate restTemplate; | 
 |  |  |  | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     protected BaseResponse<Data> dealWithCallBack(Long comId, Command com) { | 
 |  |  |         CompletableFuture<JSONObject> feature = new CompletableFuture<>(); | 
 |  |  |         features.put(comId, feature); | 
 |  |  |         ComResultWait.put(comId, feature); | 
 |  |  |         try { | 
 |  |  |             // 发送命令 | 
 |  |  |             JSONObject response_SendCom = (JSONObject) JSON.toJSON(sendCom2Mw(com)); | 
 |  |  |             if (response_SendCom == null || !response_SendCom.getString("code").equals("0001")) { | 
 |  |  |                 // 请求失败,RTU未上线,清除feature | 
 |  |  |                 features.remove(comId); | 
 |  |  |                 ComResultWait.remove(comId); | 
 |  |  |                 JSONObject job_param = response_SendCom.getJSONObject("content").getJSONObject("param"); | 
 |  |  |                 return BaseResponseUtils.buildErrorMsg(job_param.getString("message")); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             JSONObject resultData = feature.get(180, TimeUnit.SECONDS); | 
 |  |  |             features.remove(comId); | 
 |  |  |             ComResultWait.remove(comId); | 
 |  |  |  | 
 |  |  |             Long commandId = resultData.getLong("commandId"); | 
 |  |  |             if (commandId.equals(comId)) { |