package com.sandu.ximon.admin.controller;
|
|
import com.sandu.common.domain.ResponseVO;
|
import com.sandu.common.object.BaseConditionVO;
|
import com.sandu.common.util.ResponseUtil;
|
import com.sandu.ximon.admin.manager.iot.frame.A5Frame;
|
import com.sandu.ximon.admin.manager.iot.frame.inner.request.AirDataReqInnerFrame;
|
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
|
import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum;
|
import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
|
import com.sandu.ximon.admin.service.AirDataService;
|
import com.sandu.ximon.dao.bo.AirDataBo;
|
import lombok.AllArgsConstructor;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 大气数据
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/v1/admin/airdata")
|
public class AirDataController {
|
private final AirDataService airDataService;
|
|
/**
|
* 查询大气数据模糊查询
|
*
|
* @param keyword 关键字
|
* @return
|
*/
|
@GetMapping("/listAirData")
|
public ResponseVO<Object> listAirDataByKeyword(BaseConditionVO baseConditionVO, @RequestParam(required = false) String keyword) {
|
List<AirDataBo> list = airDataService.listAirDataByKeyword(baseConditionVO, keyword);
|
return ResponseUtil.successPage(list);
|
}
|
|
/**
|
* 查询大气设备MAC地址
|
*
|
* @return
|
*/
|
@GetMapping("/listAirEquipmentMAC")
|
public ResponseVO<Object> listAirEquipmentMAC() {
|
List<String> list = airDataService.listAirEquipmentMAC();
|
return ResponseUtil.success(list);
|
}
|
|
@PostMapping("/updateAirEquipmentInfo")
|
public ResponseVO<Object> updataAirEquipmentInfo(@RequestBody List<String> listMac) {
|
AirDataReqInnerFrame airDataReqInnerFrame = new AirDataReqInnerFrame();
|
A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_ATMOSPHERE_DATA.getCode(), airDataReqInnerFrame);
|
|
// WrapResponseCommonFrame<A5AtmosphereHeartbeatReportInnerFrame> wrapResponseCommonFrame =
|
// MainBoardInvokeSyncService.getInstance().sendRRPC(listMac.get(0), a5Frame, A5AtmosphereHeartbeatReportInnerFrame.class);
|
|
List<String> success = new ArrayList<>();
|
List<String> failed = new ArrayList<>();
|
|
listMac.parallelStream().forEach(macStr -> {
|
// System.out.println(System.currentTimeMillis()+" -------------");
|
try {
|
CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(macStr, a5Frame);
|
if (commonFrame != null) {
|
success.add(macStr);
|
} else {
|
failed.add(macStr);
|
}
|
} catch (Exception e) {
|
failed.add(macStr);
|
}
|
// System.out.println(System.currentTimeMillis());
|
});
|
|
|
// for (String macStr : listMac) {
|
// System.out.println(System.currentTimeMillis()+" -------------");
|
// try {
|
// CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(macStr, a5Frame);
|
// if (commonFrame != null) {
|
// success.add(macStr);
|
// } else {
|
// failed.add(macStr);
|
// }
|
// } catch (Exception e) {
|
// failed.add(macStr);
|
// }
|
// System.out.println(System.currentTimeMillis());
|
// }
|
|
Map<String, List> resultMap = new HashMap<>();
|
resultMap.put("success", success);
|
resultMap.put("failed", failed);
|
|
return ResponseUtil.success(resultMap);
|
}
|
|
}
|