From a932f249f829e6ca9c57cc6da301a209f51942bd Mon Sep 17 00:00:00 2001
From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com>
Date: Fri, 2 Jun 2023 17:41:35 +0800
Subject: [PATCH] =?UTF-8?q?2023-06-02=2017:30:25=20=E6=96=B0=E5=A2=9E?=
 =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E6=89=80=E5=B1=9E=E5=8F=AF?=
 =?UTF-8?q?=E6=8E=A7=E8=AE=BE=E5=A4=87=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?=
 =?UTF-8?q?!?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/com/psdc/entity/vo/DeviceVo.java     |  4 ++
 .../java/com/psdc/mapper/PsdcModelMapper.java |  1 +
 .../service/impl/PsdcSceneServiceImpl.java    | 63 ++++++++++++-------
 .../mapper/business/PsdcModelMapper.xml       |  4 ++
 4 files changed, 50 insertions(+), 22 deletions(-)

diff --git a/psdc-business/src/main/java/com/psdc/entity/vo/DeviceVo.java b/psdc-business/src/main/java/com/psdc/entity/vo/DeviceVo.java
index 56a5e11..507439b 100644
--- a/psdc-business/src/main/java/com/psdc/entity/vo/DeviceVo.java
+++ b/psdc-business/src/main/java/com/psdc/entity/vo/DeviceVo.java
@@ -5,6 +5,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -35,4 +36,7 @@ public class DeviceVo {
     private String temp ;
 
     private Map tempValue;
+
+    private List<Map> tempList ;
+
 }
diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcModelMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcModelMapper.java
index 2904c9f..2141a9b 100644
--- a/psdc-business/src/main/java/com/psdc/mapper/PsdcModelMapper.java
+++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcModelMapper.java
@@ -23,4 +23,5 @@ public interface PsdcModelMapper {
     ModelVo queryControlModel(@Param("modelName") String modelName,
                               @Param("modelKey") String modelKey);
 
+    String querySceneKeyByDesc(@Param("ioDesc") String ioDesc);
 }
diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcSceneServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcSceneServiceImpl.java
index 153d9ce..0a32f79 100644
--- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcSceneServiceImpl.java
+++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcSceneServiceImpl.java
@@ -5,6 +5,7 @@ import com.psdc.entity.request.PsdcSceneRequest;
 import com.psdc.entity.res.PsdcSceneRes;
 import com.psdc.entity.vo.DeviceVo;
 import com.psdc.entity.vo.SceneVo;
+import com.psdc.mapper.PsdcModelMapper;
 import com.psdc.mapper.PsdcSceneMapper;
 import com.psdc.mapper.SysUserMapper;
 import com.psdc.service.IPsdcSceneService;
@@ -35,6 +36,9 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
     @Resource
     private SysUserMapper sysUserMapper;
 
+    @Resource
+    private PsdcModelMapper psdcModelMapper;
+
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
 
@@ -53,17 +57,25 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
         String userName = sysUserMapper.selectUserById(userId).getUserName();
         List<SceneVo> scenesList = new ArrayList<>();
         for (DeviceVo dev : scenes.getDeviceVos()) {
-            if (null != dev.getIntemp() && !"".equals(dev.getIntemp())) {
-                SceneVo sceneVo;
-                sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "进水温度", "intemp", dev.getIntemp());
-                scenesList.add(sceneVo);
-            }
-            if (null != dev.getOuttemp() && !"".equals(dev.getOuttemp())) {
-                SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "出水温度", "outtemp", dev.getOuttemp());
-                scenesList.add(sceneVo);
-            }
-            if (null != dev.getTemp() && !"".equals(dev.getTemp())) {
-                SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "温度", "temp", dev.getTemp());
+//            if (null != dev.getIntemp() && !"".equals(dev.getIntemp())) {
+//                SceneVo sceneVo;
+//                sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "进水温度", "intemp", dev.getIntemp());
+//                scenesList.add(sceneVo);
+//            }
+//            if (null != dev.getOuttemp() && !"".equals(dev.getOuttemp())) {
+//                SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "出水温度", "outtemp", dev.getOuttemp());
+//                scenesList.add(sceneVo);
+//            }
+//            if (null != dev.getTemp() && !"".equals(dev.getTemp())) {
+//                SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "温度", "temp", dev.getTemp());
+//                scenesList.add(sceneVo);
+//            }
+
+            for (Map m : dev.getTempList()){
+                String desc = (String) m.get("label");
+                String tempValue = (String) m.get("value");
+                String sceneKey = psdcModelMapper.querySceneKeyByDesc(desc);
+                SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), sceneKey, sceneKey, tempValue);
                 scenesList.add(sceneVo);
             }
         }
@@ -106,17 +118,24 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
         String userName = sysUserMapper.selectUserById(userId).getUserName();
         List<SceneVo> scenesList = new ArrayList<>();
         for (DeviceVo dev : scenes.getDeviceVos()) {
-            if (null != dev.getIntemp() && !"".equals(dev.getIntemp())) {
-                SceneVo sceneVo;
-                sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "进水温度", "intemp", dev.getIntemp());
-                scenesList.add(sceneVo);
-            }
-            if (null != dev.getOuttemp() && !"".equals(dev.getOuttemp())) {
-                SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "出水温度", "outtemp", dev.getOuttemp());
-                scenesList.add(sceneVo);
-            }
-            if (null != dev.getTemp() && !"".equals(dev.getTemp())) {
-                SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "温度", "temp", dev.getTemp());
+//            if (null != dev.getIntemp() && !"".equals(dev.getIntemp())) {
+//                SceneVo sceneVo;
+//                sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "进水温度", "intemp", dev.getIntemp());
+//                scenesList.add(sceneVo);
+//            }
+//            if (null != dev.getOuttemp() && !"".equals(dev.getOuttemp())) {
+//                SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "出水温度", "outtemp", dev.getOuttemp());
+//                scenesList.add(sceneVo);
+//            }
+//            if (null != dev.getTemp() && !"".equals(dev.getTemp())) {
+//                SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "温度", "temp", dev.getTemp());
+//                scenesList.add(sceneVo);
+//            }
+            for (Map m : dev.getTempList()){
+                String desc = (String) m.get("label");
+                String tempValue = (String) m.get("value");
+                String sceneKey = psdcModelMapper.querySceneKeyByDesc(desc);
+                SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), sceneKey, sceneKey, tempValue);
                 scenesList.add(sceneVo);
             }
         }
diff --git a/psdc-business/src/main/resources/mapper/business/PsdcModelMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcModelMapper.xml
index b964c84..c058318 100644
--- a/psdc-business/src/main/resources/mapper/business/PsdcModelMapper.xml
+++ b/psdc-business/src/main/resources/mapper/business/PsdcModelMapper.xml
@@ -21,4 +21,8 @@
         SELECT model_id,model_name,relation_field,io_desc,io_type FROM psdc_model
         WHERE model_name = #{modelName} And relation_field = #{modelKey} And io_type = "serve"
     </select>
+
+    <select id="querySceneKeyByDesc" resultType="java.lang.String">
+        Select relation_field From psdc_model WHERE io_desc = #{ioDesc} Group By relation_field
+    </select>
 </mapper>
\ No newline at end of file