package com.mh.user.controller; import com.alibaba.fastjson2.JSONObject; import com.mh.common.http.HttpResult; import com.mh.common.utils.StringUtils; import com.mh.user.annotation.SysLogger; import com.mh.user.constants.Constant; import com.mh.user.entity.ControlSetEntity; import com.mh.user.entity.DeviceCodeParamEntity; import com.mh.user.entity.DeviceInstallEntity; import com.mh.user.entity.PumpSetEntity; import com.mh.user.model.DeviceModel; import com.mh.user.model.SerialPortModel; import com.mh.user.serialport.SerialPortSingle2; import com.mh.user.service.*; import com.mh.user.utils.ExchangeStringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.List; import java.util.Map; @Slf4j @RestController @RequestMapping("serial") public class DeviceOperateController { @Autowired DeviceInstallService deviceInstallService; @Autowired PumpSetService pumpSetService; @Autowired ControlSetService controlSetService; @Autowired NowDataService nowDataService; @Autowired private DeviceControlService deviceControlService; //操作设备 @SysLogger(title = "控制管理", optDesc = "设置设备参数值") @PostMapping(value = "/operate") public HttpResult operateDevice(@RequestBody List params) { try { Constant.WEB_FLAG = true; //单抄,暂时停止采集 String returnStr = deviceControlService.readOrWriteDevice(params, Constant.WRITE); if (!StringUtils.isBlank(returnStr) && "fail".equals(returnStr)) { return HttpResult.error(500, "fail"); } Constant.WEB_FLAG = false; //单抄,恢复采集 return HttpResult.ok(); } catch (Exception e) { log.error("前端发送控制异常==>", e); Constant.WEB_FLAG = false; //单抄,恢复采集 return HttpResult.error(500, "fail"); } finally { Constant.WEB_FLAG = false; } } //读数据 @SysLogger(title = "控制管理", optDesc = "读设备数据") @PostMapping(value = "/read") public HttpResult readData(@RequestBody List params) { try { Constant.WEB_FLAG = true; //单抄,暂时停止采集 String rtData = deviceControlService.readOrWriteDevice(params, Constant.READ); Constant.WEB_FLAG = false; //单抄,恢复采集 if (ExchangeStringUtil.getJSONType(rtData)) { Map map = JSONObject.parseObject(rtData); return HttpResult.ok("success", map); } else { if (rtData.equals("fail")) { return HttpResult.error(500, "fail"); } else { return HttpResult.ok(rtData, rtData); } } } catch (Exception e) { Constant.WEB_FLAG = false; //单抄,恢复采集 return HttpResult.error(500, "fail"); } finally { Constant.WEB_FLAG = false; //单抄,恢复采集 } } }