diff --git a/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java b/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java
index 4cf6224..7b5f33b 100644
--- a/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java
+++ b/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java
@@ -114,4 +114,10 @@ public interface IPsdcDeviceService {
      * @return
      */
     String executiveStrategy(Integer strategyCode);
+
+    /**
+     * 获取可控设备列表
+     * @return
+     */
+    List<DeviceStatusVo> queryControlDeviceList();
 }
diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java
index 18503f4..d0092f5 100644
--- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java
+++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java
@@ -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":
diff --git a/psdc-web/src/main/java/com/psdc/controller/control/ManualController.java b/psdc-web/src/main/java/com/psdc/controller/control/ManualController.java
index a387290..91a9734 100644
--- a/psdc-web/src/main/java/com/psdc/controller/control/ManualController.java
+++ b/psdc-web/src/main/java/com/psdc/controller/control/ManualController.java
@@ -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("策略控制执行失败,请联系管理员");
+        }
+
+
+    }
+
 
 
 }
diff --git a/psdc-web/src/main/java/com/psdc/controller/monitor/TotalElectricMeterController.java b/psdc-web/src/main/java/com/psdc/controller/monitor/TotalElectricMeterController.java
index 7eef478..ae958f1 100644
--- a/psdc-web/src/main/java/com/psdc/controller/monitor/TotalElectricMeterController.java
+++ b/psdc-web/src/main/java/com/psdc/controller/monitor/TotalElectricMeterController.java
@@ -49,6 +49,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());
@@ -101,7 +103,13 @@ public class TotalElectricMeterController {
             }
 
             map.put("children", maps2);
+
+
+
             maps.add(map);
+
+
+
         }
         return AjaxResult.success("用户所属设备列表", maps);
     }