From 7f6ed1042f5207ebd4d45dc585e15755e40c4fd6 Mon Sep 17 00:00:00 2001 From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com> Date: Mon, 22 May 2023 14:56:02 +0800 Subject: [PATCH] =?UTF-8?q?2023-05-22=2014:55:46=20=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E7=AD=96=E7=95=A5=E7=AE=A1=E7=90=86=E7=9A=84=E5=A2=9E=E3=80=81?= =?UTF-8?q?=E5=88=A0=E3=80=81=E6=94=B9=E3=80=81=E6=9F=A5=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 2 +- .../main/java/com/psdc/entity/PsdcScene.java | 2 +- .../psdc/entity/request/PsdcSceneRequest.java | 41 +++++++ .../main/java/com/psdc/entity/vo/SceneVo.java | 7 ++ .../java/com/psdc/mapper/PsdcSceneMapper.java | 15 +-- .../com/psdc/service/IPsdcSceneService.java | 23 ++-- .../service/impl/PsdcSceneServiceImpl.java | 101 +++++++++++++----- .../mapper/business/PsdcSceneMapper.xml | 37 +++---- .../manager/PsdcSceneController.java | 19 ++-- 9 files changed, 169 insertions(+), 78 deletions(-) create mode 100644 psdc-business/src/main/java/com/psdc/entity/request/PsdcSceneRequest.java diff --git a/psdc-admin/src/main/resources/application-dev.yml b/psdc-admin/src/main/resources/application-dev.yml index 76792d0..31dfcf2 100644 --- a/psdc-admin/src/main/resources/application-dev.yml +++ b/psdc-admin/src/main/resources/application-dev.yml @@ -139,7 +139,7 @@ mqtt: #QOS等级 0, 1, 2 qos: 1 #客户端id 必须唯一 - clientId: psdcdev123 + clientId: psdc-dev1234 #连接超时,默认30000 timeOut: 10 #心跳间隔时间,默认3000 diff --git a/psdc-business/src/main/java/com/psdc/entity/PsdcScene.java b/psdc-business/src/main/java/com/psdc/entity/PsdcScene.java index f48e44a..30e506d 100644 --- a/psdc-business/src/main/java/com/psdc/entity/PsdcScene.java +++ b/psdc-business/src/main/java/com/psdc/entity/PsdcScene.java @@ -21,7 +21,7 @@ public class PsdcScene { /** * 策略码 */ - private Integer sceneCode; + private Long sceneCode; /** 用户id */ private Integer userId; /** 设备id */ diff --git a/psdc-business/src/main/java/com/psdc/entity/request/PsdcSceneRequest.java b/psdc-business/src/main/java/com/psdc/entity/request/PsdcSceneRequest.java new file mode 100644 index 0000000..793d3d9 --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/entity/request/PsdcSceneRequest.java @@ -0,0 +1,41 @@ +package com.psdc.entity.request; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.stereotype.Component; + +/** + * @Author:Stone + * @Project:psdc + * @Filename:PsdcSceneRequest + * @Date:2023/5/16 15:02 + * @Version 1.0 + */ +@Data +@Component +@AllArgsConstructor +@NoArgsConstructor +public class PsdcSceneRequest { + + + /** 场景值 */ + private Integer sceneId ; + /** 场景名 */ + private String sceneName ; + + /** 策略码 */ + private Long sceneCode; + /** 用户id */ + private Long userId; + /** 设备id */ + private Integer deviceId ; + + /** 进水 */ + private String intemp ; + /** 出水 */ + private String outtemp ; + /** 温度 */ + private String temp ; + +} diff --git a/psdc-business/src/main/java/com/psdc/entity/vo/SceneVo.java b/psdc-business/src/main/java/com/psdc/entity/vo/SceneVo.java index 5eacb0d..7dd871c 100644 --- a/psdc-business/src/main/java/com/psdc/entity/vo/SceneVo.java +++ b/psdc-business/src/main/java/com/psdc/entity/vo/SceneVo.java @@ -33,4 +33,11 @@ public class SceneVo { /** 控制值 */ private String sceneValue ; + public SceneVo(String sceneName, Integer deviceId, String sceneContext, String sceneKey, String sceneValue) { + this.sceneName = sceneName; + this.deviceId = deviceId; + this.sceneContext = sceneContext; + this.sceneKey = sceneKey; + this.sceneValue = sceneValue; + } } diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcSceneMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcSceneMapper.java index 1ffc174..3c50c98 100644 --- a/psdc-business/src/main/java/com/psdc/mapper/PsdcSceneMapper.java +++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcSceneMapper.java @@ -1,6 +1,5 @@ package com.psdc.mapper; -import com.psdc.entity.PsdcDevice; import com.psdc.entity.PsdcScene; import com.psdc.entity.vo.SceneVo; import org.apache.ibatis.annotations.Mapper; @@ -15,13 +14,8 @@ import java.util.List; */ @Mapper public interface PsdcSceneMapper{ - /** - * 通过ID查询单条数据 - * - * @param sceneId 主键 - * @return 实例对象 - */ - PsdcScene queryById(Integer sceneId); + + String querySceneNameById(@Param(value = "sceneCode") Long sceneCode); List sceneList(@Param(value = "userId") Long userId); @@ -48,10 +42,10 @@ public interface PsdcSceneMapper{ /** * 通过策略名称删除场景策略 - * @param sceneName + * @param sceneCode * @return */ - Integer deleteBySceneName(@Param(value = "sceneName") String sceneName); + Integer deleteBySceneName(@Param(value = "sceneCode") Long sceneCode); /** * 更新数据 @@ -116,5 +110,6 @@ public interface PsdcSceneMapper{ List queryBySceneName(String sceneName); List findSceneByUserAndSceneName(@Param(value = "userId") Long userId, + @Param(value = "sceneCode") Long sceneCode, @Param(value = "sceneName") String sceneName); } \ No newline at end of file diff --git a/psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java b/psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java index 8facf8b..bd4bb70 100644 --- a/psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java @@ -1,6 +1,7 @@ package com.psdc.service; import com.psdc.entity.PsdcScene; +import com.psdc.entity.request.PsdcSceneRequest; import com.psdc.entity.vo.SceneVo; import java.util.List; @@ -11,20 +12,14 @@ import java.util.Map; * @date : 2023-5-10 */ public interface IPsdcSceneService { - /** - * 通过ID查询单条数据 - * - * @param sceneId 主键 - * @return 实例对象 - */ - PsdcScene queryById(Integer sceneId); - /** * 新增数据 - * @param scenes 实例对象集合 + * @param scenes * @return */ - Boolean insert(List scenes); + Boolean insert(PsdcSceneRequest scenes); + + Boolean insertByCode(PsdcSceneRequest scenes); List sceneList(); @@ -33,16 +28,16 @@ public interface IPsdcSceneService { * @param scenes 实例对象 * @return 实例对象 */ - Boolean update(List scenes); + Boolean update(PsdcScene scenes); /** * 通过策略名称删除数据 - * @param sceneName + * @param scene * @return 是否成功 */ - Boolean deleteBySceneName(String sceneName); + Boolean deleteByScene(PsdcSceneRequest scene); List> getStrategyList(); - List findSceneByUserAndSceneName(Integer sceneId); + List findSceneByUserAndSceneName(Long sceneCode); } \ No newline at end of file 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 481f38c..0cbe74a 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 @@ -1,18 +1,16 @@ package com.psdc.service.impl; -import com.psdc.entity.PsdcDevice; import com.psdc.entity.PsdcScene; +import com.psdc.entity.request.PsdcSceneRequest; import com.psdc.entity.vo.SceneVo; import com.psdc.mapper.PsdcSceneMapper; import com.psdc.service.IPsdcSceneService; import com.psdc.utils.SecurityUtils; -import com.psdc.utils.poi.ExcelUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.io.InputStream; import java.util.*; import java.util.stream.Collectors; @@ -28,17 +26,6 @@ import static org.springframework.transaction.annotation.Propagation.REQUIRES_NE public class PsdcSceneServiceImpl implements IPsdcSceneService { @Autowired private PsdcSceneMapper psdcSceneMapper; - - /** - * 通过ID查询单条数据 - * - * @param sceneId 主键 - * @return 实例对象 - */ - public PsdcScene queryById(Integer sceneId){ - return psdcSceneMapper.queryById(sceneId); - } - /** @@ -47,17 +34,71 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { * @return Boolean */ @Override - @Transactional(propagation = REQUIRES_NEW) - public Boolean insert(List scenes){ + public Boolean insert(PsdcSceneRequest scenes){ Date date = new Date(); long timestamp = getSecondTimestampTwo(date); long userId = SecurityUtils.getUserId(); + List scenesList = new ArrayList<>(); + if (null != scenes.getIntemp() && !"".equals(scenes.getIntemp())){ + SceneVo sceneVo; + sceneVo = new SceneVo(scenes.getSceneName(), scenes.getDeviceId(), "进水温度", "intemp", scenes.getIntemp()); + scenesList.add(sceneVo); + } + if (null != scenes.getOuttemp() && !"".equals(scenes.getOuttemp())){ + SceneVo sceneVo = new SceneVo(scenes.getSceneName(), scenes.getDeviceId(), "出水温度", "outtemp", scenes.getOuttemp()); + scenesList.add(sceneVo); + } + if (null != scenes.getTemp() && !"".equals(scenes.getTemp())){ + SceneVo sceneVo = new SceneVo(scenes.getSceneName(), scenes.getDeviceId(), "温度", "temp", scenes.getTemp()); + scenesList.add(sceneVo); + } + + try { - for (SceneVo sc : scenes){ + for (SceneVo sc : scenesList){ sc.setSceneCode(timestamp); sc.setUserId(userId); } - psdcSceneMapper.InsertSceneData(scenes); + psdcSceneMapper.InsertSceneData(scenesList); + return true; + } catch (Exception e) { + e.printStackTrace(); + log.info("Sorry,新增场景策略失败!+ 错误原因: {}", e.getMessage()); + return false; + } + } + + /** + * 在原有策略基础上增加设备温度管理 + * @param scenes + * @return + */ + @Override + public Boolean insertByCode(PsdcSceneRequest scenes) { + long userId = SecurityUtils.getUserId(); + List scenesList = new ArrayList<>(); + String sceneName = psdcSceneMapper.querySceneNameById(scenes.getSceneCode()); + Integer deviceId = scenes.getDeviceId(); + if (null != scenes.getIntemp() && !"".equals(scenes.getIntemp())){ + SceneVo sceneVo = new SceneVo(sceneName, deviceId, "进水温度", "intemp", scenes.getIntemp()); + scenesList.add(sceneVo); + } + if (null != scenes.getOuttemp() && !"".equals(scenes.getOuttemp())){ + SceneVo sceneVo = new SceneVo(sceneName, deviceId, "出水温度", "outtemp", scenes.getOuttemp()); + scenesList.add(sceneVo); + } + if (null != scenes.getTemp() && !"".equals(scenes.getTemp())){ + SceneVo sceneVo = new SceneVo(sceneName, deviceId, "温度", "temp", scenes.getTemp()); + scenesList.add(sceneVo); + } + + + try { + for (SceneVo sc : scenesList){ + sc.setSceneCode(scenes.getSceneCode()); + sc.setUserId(userId); + } + psdcSceneMapper.InsertSceneData(scenesList); return true; } catch (Exception e) { e.printStackTrace(); @@ -80,9 +121,9 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { */ @Override @Transactional(propagation = REQUIRES_NEW) - public Boolean update(List scenes) { + public Boolean update(PsdcScene scenes) { try { - psdcSceneMapper.UpdateSceneData(scenes); + psdcSceneMapper.update(scenes); return true; } catch (Exception e) { e.printStackTrace(); @@ -93,12 +134,17 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { /** * 通过策略名称删除数据 - * @param sceneName + * @param scene * @return 是否成功 */ @Override - public Boolean deleteBySceneName(String sceneName) { - int count = psdcSceneMapper.deleteBySceneName(sceneName); + public Boolean deleteByScene(PsdcSceneRequest scene) { + int count = 0; + if (null != scene.getSceneCode() && !"".equals(scene.getSceneCode())){ + count = psdcSceneMapper.deleteBySceneName(scene.getSceneCode()); + } else { + count = psdcSceneMapper.deleteById(scene.getSceneId()); + } if (count > 0){ return true; } else { @@ -136,13 +182,10 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { } @Override - public List findSceneByUserAndSceneName(Integer sceneId) { + public List findSceneByUserAndSceneName(Long sceneCode) { Long userId = SecurityUtils.getUserId(); String sceneName = ""; - if (0 != sceneId){ - psdcSceneMapper.queryById(sceneId).getSceneName(); - } - return psdcSceneMapper.findSceneByUserAndSceneName(userId, sceneName); + return psdcSceneMapper.findSceneByUserAndSceneName(userId, sceneCode, sceneName); } /** @@ -158,4 +201,6 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { return Long.valueOf(timestamp); } + + } \ No newline at end of file diff --git a/psdc-business/src/main/resources/mapper/business/PsdcSceneMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcSceneMapper.xml index 3481f13..ee15960 100644 --- a/psdc-business/src/main/resources/mapper/business/PsdcSceneMapper.xml +++ b/psdc-business/src/main/resources/mapper/business/PsdcSceneMapper.xml @@ -27,11 +27,8 @@ - + Select scene_name From psdc_scene Where scene_code = #{sceneCode} GROUP BY scene_name