From e27080f07a802166be1b66fac480122060230b9a Mon Sep 17 00:00:00 2001 From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com> Date: Tue, 16 May 2023 10:54:04 +0800 Subject: [PATCH] =?UTF-8?q?2023-05-16=2010:51:56=20=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=89=80=E5=B1=9E=E7=AD=96=E7=95=A5=E7=9A=84?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 4 +- .../src/main/resources/application-prop.yml | 2 +- .../main/java/com/psdc/entity/vo/SceneVo.java | 4 +- .../java/com/psdc/mapper/PsdcSceneMapper.java | 8 +- .../com/psdc/service/IPsdcSceneService.java | 10 +-- .../service/impl/PsdcDeviceServiceImpl.java | 1 - .../service/impl/PsdcSceneServiceImpl.java | 74 +++++++++++++++---- .../mapper/business/PsdcSceneMapper.xml | 41 +++++++++- .../manager/PsdcSceneController.java | 32 +++++++- 9 files changed, 144 insertions(+), 32 deletions(-) diff --git a/psdc-admin/src/main/resources/application-dev.yml b/psdc-admin/src/main/resources/application-dev.yml index 36cac2a..76792d0 100644 --- a/psdc-admin/src/main/resources/application-dev.yml +++ b/psdc-admin/src/main/resources/application-dev.yml @@ -55,7 +55,7 @@ spring: # 数据库驱动 driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource - url: jdbc:mysql://192.168.10.99:3306/psdc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.10.99:3306/psdc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true username: hwjsolar password: 123456 messages: @@ -139,7 +139,7 @@ mqtt: #QOS等级 0, 1, 2 qos: 1 #客户端id 必须唯一 - clientId: psdc-dev1234 + clientId: psdcdev123 #连接超时,默认30000 timeOut: 10 #心跳间隔时间,默认3000 diff --git a/psdc-admin/src/main/resources/application-prop.yml b/psdc-admin/src/main/resources/application-prop.yml index acf077d..2f08eaf 100644 --- a/psdc-admin/src/main/resources/application-prop.yml +++ b/psdc-admin/src/main/resources/application-prop.yml @@ -54,7 +54,7 @@ spring: # 数据库驱动 driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource - url: jdbc:mysql://192.168.10.99:3306/psdc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.10.99:3306/psdc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true username: hwjsolar password: 123456 messages: 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 ff4d5bd..5eacb0d 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 @@ -17,9 +17,9 @@ public class SceneVo { /** * 策略码 */ - private Integer sceneCode; + private Long sceneCode; /** 用户id */ - private Integer userId; + private Long userId; /** 设备id */ private Integer deviceId ; /** 设备名称 */ 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 edfd7b7..f35b22f 100644 --- a/psdc-business/src/main/java/com/psdc/mapper/PsdcSceneMapper.java +++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcSceneMapper.java @@ -1,5 +1,6 @@ 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; @@ -33,7 +34,12 @@ public interface PsdcSceneMapper{ */ int insert(PsdcScene psdcScene); - /** + + void InsertSceneData(@Param(value = "sceneRecord") List sceneList); + + void UpdateSceneData(@Param(value = "sceneRecord") List sceneList); + + /** * 更新数据 * * @param psdcScene 实例对象 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 7462bab..e989d10 100644 --- a/psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java @@ -22,20 +22,20 @@ public interface IPsdcSceneService { /** * 新增数据 * - * @param psdcScene 实例对象 - * @return 实例对象 + * @param scenes 实例对象集合 + * @return */ - PsdcScene insert(PsdcScene psdcScene); + Boolean insert(List scenes); List sceneList(); /** * 更新数据 * - * @param psdcScene 实例对象 + * @param scenes 实例对象 * @return 实例对象 */ - PsdcScene update(PsdcScene psdcScene); + Boolean update(List scenes); /** * 通过主键删除数据 * 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 0503994..92788e2 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 @@ -148,7 +148,6 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService { pd.setDeviceType(2); // 新导入的设备默认运行状态为: 关闭 pd.setDeviceRunstatus(2); - System.out.println("设备Infos: " + pd + "\n"); } psdcDeviceMapper.saveDevicesData(devices); return true; 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 e6ffde5..45c9c3a 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,21 +1,29 @@ package com.psdc.service.impl; +import com.psdc.entity.PsdcDevice; import com.psdc.entity.PsdcScene; 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; +import static org.springframework.transaction.annotation.Propagation.REQUIRES_NEW; + /** * 场景设定;(psdc_scene)表服务实现类 * @date : 2023-5-10 */ +@Slf4j @Service public class PsdcSceneServiceImpl implements IPsdcSceneService { @Autowired @@ -35,13 +43,27 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { /** * 新增数据 - * - * @param psdcScene 实例对象 - * @return 实例对象 + * @param scenes 实例对象集合 + * @return Boolean */ - public PsdcScene insert(PsdcScene psdcScene){ - psdcSceneMapper.insert(psdcScene); - return psdcScene; + @Override + @Transactional(propagation = REQUIRES_NEW) + public Boolean insert(List scenes){ + Date date = new Date(); + long timestamp = getSecondTimestampTwo(date); + long userId = SecurityUtils.getUserId(); + try { + for (SceneVo sc : scenes){ + sc.setSceneCode(timestamp); + sc.setUserId(userId); + } + psdcSceneMapper.InsertSceneData(scenes); + return true; + } catch (Exception e) { + e.printStackTrace(); + log.info("Sorry,新增场景策略失败!+ 错误原因: {}", e.getMessage()); + return false; + } } @Override @@ -50,17 +72,26 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { return psdcSceneMapper.sceneList(userId); } - /** + /** * 更新数据 * - * @param psdcScene 实例对象 + * @param scenes 实例对象 * @return 实例对象 */ - public PsdcScene update(PsdcScene psdcScene){ - psdcSceneMapper.update(psdcScene); - return queryById(psdcScene.getSceneId()); + @Override + @Transactional(propagation = REQUIRES_NEW) + public Boolean update(List scenes) { + try { + psdcSceneMapper.UpdateSceneData(scenes); + return true; + } catch (Exception e) { + e.printStackTrace(); + log.info("Sorry,修改场景策略失败!+ 错误原因: {}", e.getMessage()); + return false; + } } - + + /** * 通过主键删除数据 * @@ -103,7 +134,24 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { @Override public List findSceneByUserAndSceneName(Integer sceneId) { Long userId = SecurityUtils.getUserId(); - String sceneName = psdcSceneMapper.queryById(sceneId).getSceneName(); + String sceneName = ""; + if (0 != sceneId){ + psdcSceneMapper.queryById(sceneId).getSceneName(); + } return psdcSceneMapper.findSceneByUserAndSceneName(userId, sceneName); } + + /** + * 获取精确到秒的时间戳 + * @param date + * @return + */ + public static long getSecondTimestampTwo(Date date){ + if (null == date) { + return 0; + } + String timestamp = String.valueOf(date.getTime()/1000); + 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 4033e59..f66cc38 100644 --- a/psdc-business/src/main/resources/mapper/business/PsdcSceneMapper.xml +++ b/psdc-business/src/main/resources/mapper/business/PsdcSceneMapper.xml @@ -14,6 +14,7 @@ + @@ -43,6 +44,40 @@ values (#{sceneName},#{sceneCode},#{userId},#{deviceId},#{deviceSn},#{sceneContext},#{sceneKey},#{sceneValue}) + + Insert into psdc_scene(scene_name,scene_code,user_id,device_id,device_sn,scene_context,scene_key,scene_value) + Values + + (#{entity.sceneName}, #{entity.sceneCode},#{entity.userId}, #{entity.deviceId}, #{entity.deviceSn}, #{entity.sceneContext}, #{entity.sceneKey}, #{entity.sceneValue}) + + + + + + Update psdc_scene + + + `scene_name`= #{item.sceneName}, + + + `device_sn` = #{item.deviceSn}, + + + `scene_context` = #{item.sceneContext}, + + + `scene_key` = ${item.sceneKey}, + + + `scene_value` = ${item.sceneValue} + + + + `scene_id` = ${item.sceneId} + + + + update psdc_scene @@ -118,9 +153,9 @@