优化控制接口获取可控设备

master
林颖晨 2 years ago
parent e2416d5f94
commit af842b6866
  1. 6
      psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java
  2. 59
      psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java
  3. 38
      psdc-web/src/main/java/com/psdc/controller/control/ManualController.java
  4. 8
      psdc-web/src/main/java/com/psdc/controller/monitor/TotalElectricMeterController.java

@ -114,4 +114,10 @@ public interface IPsdcDeviceService {
* @return
*/
String executiveStrategy(Integer strategyCode);
/**
* 获取可控设备列表
* @return
*/
List<DeviceStatusVo> queryControlDeviceList();
}

@ -10,11 +10,9 @@ import com.psdc.entity.vo.ModelVo;
import com.psdc.enums.ControlKeyEnum;
import com.psdc.exception.ControlException;
import com.psdc.mapper.*;
import com.psdc.mqtt.MyMQTTClient;
import com.psdc.service.IPsdcDeviceService;
import com.psdc.utils.SecurityUtils;
import com.psdc.utils.poi.ExcelUtil;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -57,6 +55,7 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService {
* @param deviceId 主键
* @return 实例对象
*/
@Override
public PsdcDevice queryById(Integer deviceId) {
return psdcDeviceMapper.queryById(deviceId);
}
@ -67,6 +66,7 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService {
*
* @return 设备列表
*/
@Override
public List<PsdcDevice> queryByUserId(Integer parent) {
return psdcDeviceMapper.queryByUserId(SecurityUtils.getUserId(), parent);
}
@ -81,6 +81,7 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService {
return psdcDeviceMapper.queryByUserId(null, null);
}
@Override
public List<DeviceStatusVo> queryDeviceStatus() {
Date data = new Date();
List<PsdcDevice> psdcDevices = psdcDeviceMapper.selDevicesByUserId(SecurityUtils.getUserId());
@ -151,6 +152,7 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService {
* @param psdcDevice 实例对象
* @return 实例对象
*/
@Override
public Integer insert(PsdcDevice psdcDevice) {
psdcDevice.setDeviceStatus(1); // 未激活
psdcDevice.setDeviceRunstatus(2); // 关闭
@ -180,6 +182,7 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService {
* @param psdcDevice 实例对象
* @return 实例对象
*/
@Override
public Integer update(PsdcDevice psdcDevice) {
return psdcDeviceMapper.update(psdcDevice);
}
@ -190,6 +193,7 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService {
* @param deviceIds 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Long[] deviceIds) {
int total = psdcDeviceMapper.deleteById(deviceIds);
return total > 0;
@ -384,6 +388,57 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService {
}
}
@Override
public List<DeviceStatusVo> queryControlDeviceList() {
Date data = new Date();
List<PsdcDevice> psdcDevices = psdcDeviceMapper.selDevicesByUserId(SecurityUtils.getUserId());
List<DeviceStatusVo> deviceStatusVoList = new ArrayList<>();
for (PsdcDevice pd : psdcDevices) {
String deviceModel = pd.getDeviceModel();
if ("温度传感器".equals(deviceModel)){
continue;
}
if ("总电表".equals(deviceModel)){
continue;
}
DeviceStatusVo deviceStatusVo = new DeviceStatusVo();
BeanUtils.copyProperties(pd, deviceStatusVo);
List<Map> ary = new ArrayList<>();
for (ModelVo mv : psdcModelMapper.selDevIsControlByModelName(deviceModel)) {
Integer deviceId = pd.getDeviceId();
PsdcThermometerDataRes thermometerDataRes = thermometerRtdataMapper.selTempByDevId(deviceId, sdf.format(data));
Map<String, Object> map = new HashMap<>();
Double tempValue = 0.0;
map.put("controlElement", mv.getRelationField());
map.put("controlRemark", mv.getIoDesc());
if (null != thermometerDataRes) {
switch (mv.getRelationField()) {
case "intemp":
tempValue = thermometerDataRes.getThermometerValueIn();
break;
case "outtemp":
tempValue = thermometerDataRes.getThermometerValueOut();
break;
case "temp":
tempValue = thermometerDataRes.getThermometerValue();
break;
}
}
map.put("tempValue", tempValue);
ary.add(map);
}
if (pd.getDeviceRunstatus() != null && pd.getDeviceRunstatus() == 1) {
deviceStatusVo.setDeviceRunstatus(true);
} else {
deviceStatusVo.setDeviceRunstatus(false);
}
deviceStatusVo.setControl_elements(ary);
deviceStatusVoList.add(deviceStatusVo);
}
return deviceStatusVoList;
}
private String coverStr(String s, int i) {
switch (s) {
case "s":

@ -47,6 +47,17 @@ public class ManualController extends BaseController {
return AjaxResult.success("设备状态列表",deviceStatusVos);
}
/**
* 获取可控设备列表
* @return ajax
*/
@PreAuthorize("@ss.hasPermi('control:manual:devlist')")
@GetMapping("/controlDeviceList")
public AjaxResult controlDeviceList() {
List<DeviceStatusVo> deviceStatusVos = psdcDeviceService.queryControlDeviceList();
return AjaxResult.success("设备状态列表",deviceStatusVos);
}
/**
* 控制设备启停
* @param jsonObject 传参对象
@ -117,6 +128,33 @@ public class ManualController extends BaseController {
}
}
/**
* 设置温度
* @param jsonObjectList 传参对象
* @return ajax
*/
@PreAuthorize("@ss.hasPermi('control:manual:temperature')")
@PostMapping("/senceControl")
public AjaxResult senceControl(@RequestBody List<JSONObject> jsonObjectList){
Integer count = 0;
for (JSONObject jsonObject:jsonObjectList) {
Integer deviceId = jsonObject.getInteger("deviceId");
List<HashMap> data = jsonObject.getList("data", HashMap.class);
int i = psdcDeviceService.setTemperature(deviceId, data, SecurityUtils.getUsername(),1);
if (i > 0){
count++;
}
}
if (count.equals(jsonObjectList.size())) {
return AjaxResult.success("控制成功");
} else {
log.info("控制设备失败。返回数据库实际插入数据:{}",count);
return AjaxResult.error("策略控制执行失败,请联系管理员");
}
}
}

@ -44,6 +44,8 @@ public class TotalElectricMeterController {
List<Map> maps = new ArrayList<>();
List<PsdcDevice> list = psdcDeviceService.queryByUserId(0);
for (PsdcDevice dd : list){
Map<String, Object> map = new HashMap<>();
map.put("modelName", dd.getDeviceModel());
map.put("isControl", dd.getIsControl());
@ -69,7 +71,13 @@ public class TotalElectricMeterController {
}
map.put("children", maps2);
maps.add(map);
}
return AjaxResult.success("用户所属设备列表", maps);
}

Loading…
Cancel
Save