| package com.dy.pipIrrRemote.common; | 
|   | 
| import com.alibaba.fastjson2.JSON; | 
| import com.alibaba.fastjson2.JSONArray; | 
| import com.alibaba.fastjson2.JSONObject; | 
| import com.dy.common.mw.protocol.Data; | 
| import com.dy.pipIrrGlobal.command.ComResultWait; | 
| import com.dy.pipIrrGlobal.command.ComSupport; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.springframework.http.MediaType; | 
| import org.springframework.web.bind.annotation.PostMapping; | 
| import org.springframework.web.bind.annotation.RequestBody; | 
| import org.springframework.web.bind.annotation.RequestMapping; | 
| import org.springframework.web.bind.annotation.RestController; | 
|   | 
| import java.util.concurrent.CompletableFuture; | 
|   | 
| /** | 
|  * @author ZhuBaoMin | 
|  * @date 2024-05-23 8:19 | 
|  * @LastEditTime 2024-05-23 8:19 | 
|  * @Description | 
|  */ | 
|   | 
| @Slf4j | 
| @RestController | 
| @RequestMapping(path="comRes") | 
| public class CommandResultCtrl extends ComSupport { | 
|     @PostMapping(path = "receive", consumes = MediaType.APPLICATION_JSON_VALUE) | 
|     public void receive(@RequestBody Data data) { | 
|         JSONObject protocolData = data == null ? null : (JSONObject)data.subData ; //协议数据 | 
|         Object codeDataObj = protocolData == null ? null : protocolData.get("subData") ; | 
|         JSONObject codeData = null ; | 
|         JSONArray codeArrayData = null ; | 
|         if(codeDataObj != null){ | 
|             if(codeDataObj instanceof JSONObject){ | 
|                 codeData = protocolData == null ? null : (protocolData.getJSONObject("subData")) ; //协议功能码数据 | 
|             }else if(codeDataObj instanceof JSONArray){{ | 
|                 codeArrayData = protocolData == null ? null : (protocolData.getJSONArray("subData")) ; //协议功能码数据 | 
|             }} | 
|         } | 
|         JSONObject job_response = new JSONObject(); | 
|         job_response.put("data", codeData!=null?codeData:(codeArrayData!=null?codeArrayData:null)); | 
|         job_response.put("commandCode", data.code); | 
|         job_response.put("commandId", data.commandId); | 
|   | 
|         CompletableFuture<JSONObject> feature = (CompletableFuture<JSONObject>) ComResultWait.get(Long.parseLong(data.commandId)); | 
|         if(feature != null) { | 
|             feature.complete(job_response); | 
|         }else{ | 
|             //超时,feature被清除了 | 
|         } | 
|     } | 
| } |