From 01ebed3954be20b167b758ce1f34250a27130481 Mon Sep 17 00:00:00 2001 From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com> Date: Fri, 16 Jun 2023 09:27:14 +0800 Subject: [PATCH] =?UTF-8?q?2023-06-16=2009:26:45=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=AD=96=E7=95=A5=E7=AE=A1=E7=90=86=E7=9A=84?= =?UTF-8?q?=E5=A2=9E=E3=80=81=E5=88=A0=E3=80=81=E6=94=B9=E3=80=81=E6=9F=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/psdc/entity/PsdcStrategy.java | 54 ++++++++++++++++ .../com/psdc/entity/res/PsdcSceneRes.java | 2 +- .../main/java/com/psdc/entity/vo/SceneVo.java | 2 +- .../java/com/psdc/entity/vo/StrategyVo.java | 39 +++++++++++ .../com/psdc/mapper/PsdcStrategyMapper.java | 40 ++++++++++++ .../com/psdc/service/IPsdcSceneService.java | 8 ++- .../service/impl/PsdcSceneServiceImpl.java | 64 ++++++++++++++----- .../mapper/business/PsdcStrategyMapper.xml | 41 ++++++++++++ .../manager/PsdcSceneController.java | 18 +++--- .../monitor/TotalElectricMeterController.java | 5 -- 10 files changed, 239 insertions(+), 34 deletions(-) create mode 100644 psdc-business/src/main/java/com/psdc/entity/PsdcStrategy.java create mode 100644 psdc-business/src/main/java/com/psdc/entity/vo/StrategyVo.java create mode 100644 psdc-business/src/main/java/com/psdc/mapper/PsdcStrategyMapper.java create mode 100644 psdc-business/src/main/resources/mapper/business/PsdcStrategyMapper.xml diff --git a/psdc-business/src/main/java/com/psdc/entity/PsdcStrategy.java b/psdc-business/src/main/java/com/psdc/entity/PsdcStrategy.java new file mode 100644 index 0000000..131bcae --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/entity/PsdcStrategy.java @@ -0,0 +1,54 @@ +package com.psdc.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Author:Stone + * @Project:psdc + * @Filename:PsdcStrategy + * @Slogan 致敬大师,致敬未来的你 + * @Date:2023/6/15 16:50:24 + * @Version 1.0 + */ +@Data +@Component +@AllArgsConstructor +@NoArgsConstructor +public class PsdcStrategy implements Serializable,Cloneable{ + /** 策略Id */ + private Integer strategyId ; + /** 用户Id */ + private Long userId ; + /** 策略名称 */ + private String strategyName ; + /** 策略码 */ + private Long strategyCode ; + /** 所属步骤集合【存储场景步骤策略码】 */ + private String scenes ; + /** 策略描述 */ + private String strategyInfo ; + /** 创建人 */ + private String createBy ; + /** 创建时间 */ + private String createTime ; + /** 修改人 */ + private String updateBy ; + /** 修改时间 */ + private String updateTime ; + + public PsdcStrategy(Long userId, String strategyName, Long strategyCode, String scenes, String strategyInfo, String createBy, String createTime) { + this.userId = userId; + this.strategyName = strategyName; + this.strategyCode = strategyCode; + this.scenes = scenes; + this.strategyInfo = strategyInfo; + this.createBy = createBy; + this.createTime = createTime; + } +} \ No newline at end of file diff --git a/psdc-business/src/main/java/com/psdc/entity/res/PsdcSceneRes.java b/psdc-business/src/main/java/com/psdc/entity/res/PsdcSceneRes.java index a7e3481..39a7724 100644 --- a/psdc-business/src/main/java/com/psdc/entity/res/PsdcSceneRes.java +++ b/psdc-business/src/main/java/com/psdc/entity/res/PsdcSceneRes.java @@ -43,7 +43,7 @@ public class PsdcSceneRes { */ private List deviceVos; - /** 是否有执行判断条件【0:没有;1:有】 */ + /** 是否有执行判断条件【2:没有;1:有】 */ private Integer isJudge ; /** 判断条件设备Id */ private Integer judgeDevice ; 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 2940bb1..55b800f 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 @@ -23,7 +23,7 @@ public class SceneVo { /** 用户id */ private Long userId; - /** 是否有执行判断条件【0:没有;1:有】 */ + /** 是否有执行判断条件【2:没有;1:有】 */ private Integer isJudge ; /** 判断条件设备Id */ private Integer judgeDevice ; diff --git a/psdc-business/src/main/java/com/psdc/entity/vo/StrategyVo.java b/psdc-business/src/main/java/com/psdc/entity/vo/StrategyVo.java new file mode 100644 index 0000000..747b247 --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/entity/vo/StrategyVo.java @@ -0,0 +1,39 @@ +package com.psdc.entity.vo; + +import com.psdc.entity.res.PsdcSceneRes; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author:Stone + * @Project:psdc + * @Filename:PsdcStrategy + * @Slogan 致敬大师,致敬未来的你 + * @Date:2023/6/15 16:50:24 + * @Version 1.0 + */ +@Data +@Component +@AllArgsConstructor +@NoArgsConstructor +public class StrategyVo implements Serializable,Cloneable{ + /** 策略Id */ + private Integer strategyId ; + /** 用户Id */ + private Long userId ; + /** 策略名称 */ + private String strategyName ; + /** 策略码 */ + private Integer strategyCode ; + /** 所属步骤集合 */ + private List scenesList ; + /** 策略描述 */ + private String strategyInfo ; + /** 创建时间 */ + private String createTime ; +} \ No newline at end of file diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcStrategyMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcStrategyMapper.java new file mode 100644 index 0000000..b97254f --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcStrategyMapper.java @@ -0,0 +1,40 @@ +package com.psdc.mapper; + +import com.psdc.entity.PsdcScene; +import com.psdc.entity.PsdcStrategy; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Author:戴仕崑 + * @Project:psdc + * @Filename:PsdcStrategyMapper + * @Slogan 致敬大师,致敬未来的你 + * @Date:2023/6/15 16:40 + * @Version 1.0 + */ +@Mapper +@Repository +public interface PsdcStrategyMapper { + + + /** + * 通过用户ID查询数据 + * @param userId 主键 + * @return 实例对象 + */ + List queryByUser(@Param("userId") Long userId, + @Param(value = "sceneCode") Long sceneCode); + + List strategyList(@Param(value = "userId") Long userId); + + /** + * 新增数据 + * @param psdcStrategy 实例对象 + * @return 影响行数 + */ + Integer insert(PsdcStrategy psdcStrategy); +} 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 b72f58d..294fc34 100644 --- a/psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java @@ -1,8 +1,10 @@ package com.psdc.service; import com.psdc.entity.PsdcScene; +import com.psdc.entity.PsdcStrategy; import com.psdc.entity.request.PsdcSceneRequest; import com.psdc.entity.res.PsdcSceneRes; +import com.psdc.entity.vo.StrategyVo; import java.util.List; import java.util.Map; @@ -17,9 +19,11 @@ public interface IPsdcSceneService { * @param scenes * @return */ - Boolean insert(PsdcSceneRes scenes); + Boolean insert(StrategyVo scenes); - List sceneList(); + List sceneList(); + + List queryScene(Long strategyCode); /** * 更新数据 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 930a948..4a10ddb 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,12 +1,14 @@ package com.psdc.service.impl; -import com.psdc.entity.PsdcScene; +import com.psdc.entity.PsdcStrategy; 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.entity.vo.StrategyVo; import com.psdc.mapper.PsdcModelMapper; import com.psdc.mapper.PsdcSceneMapper; +import com.psdc.mapper.PsdcStrategyMapper; import com.psdc.mapper.SysUserMapper; import com.psdc.service.IPsdcSceneService; import com.psdc.utils.SecurityUtils; @@ -17,7 +19,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; import static org.springframework.transaction.annotation.Propagation.REQUIRES_NEW; @@ -39,6 +40,9 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { @Resource private PsdcModelMapper psdcModelMapper; + @Resource + private PsdcStrategyMapper psdcStrategyMapper; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -50,25 +54,30 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { * @return Boolean */ @Override - public Boolean insert(PsdcSceneRes scenes) { + public Boolean insert(StrategyVo scenes) { Date date = new Date(); - long timestamp = getSecondTimestampTwo(date); Long userId = SecurityUtils.getUserId(); String userName = SecurityUtils.getUsername(); List scenesList = new ArrayList<>(); - for (DeviceVo dev : scenes.getDeviceVos()) { - - for (Map m : dev.getTempList()){ - String desc = (String) m.get("label"); - String tempValue = (String) m.get("value"); - String sceneKey = sceneKey(desc); - // SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), desc, sceneKey, tempValue); - SceneVo sceneVo = new SceneVo(scenes.getSceneName(), timestamp, userId, scenes.getIsJudge(), - scenes.getJudgeDevice(), scenes.getJudgeElement(), scenes.getJudgeData(), dev.getDeviceId(), - desc, sceneKey, tempValue, scenes.getSceneRemark()); - scenesList.add(sceneVo); + String s = null; + for (PsdcSceneRes sc : scenes.getScenesList()){ + Date date2 = new Date(); + long timestamp = getSecondTimestampTwo(date2); + s = timestamp + ","; + for (DeviceVo dev : sc.getDeviceVos()) { + for (Map m : dev.getTempList()){ + String desc = (String) m.get("label"); + String tempValue = (String) m.get("value"); + String sceneKey = sceneKey(desc); + // SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), desc, sceneKey, tempValue); + SceneVo sceneVo = new SceneVo(sc.getSceneName(), timestamp, userId, sc.getIsJudge(), + sc.getJudgeDevice(), sc.getJudgeElement(), sc.getJudgeData(), dev.getDeviceId(), + desc, sceneKey, tempValue, sc.getSceneRemark()); + scenesList.add(sceneVo); + } } } + PsdcStrategy strategy = new PsdcStrategy(userId, scenes.getStrategyName(), getSecondTimestampTwo(date), s, scenes.getStrategyInfo(), userName, sdf.format(date)); try { for (SceneVo sc : scenesList) { @@ -76,6 +85,7 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { sc.setCreateTime(sdf.format(date)); } psdcSceneMapper.InsertSceneData(scenesList); + psdcStrategyMapper.insert(strategy); return true; } catch (Exception e) { e.printStackTrace(); @@ -85,9 +95,29 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { } @Override - public List sceneList() { + public List sceneList() { Long userId = SecurityUtils.getUserId(); - return psdcSceneMapper.sceneList(userId); + return psdcStrategyMapper.strategyList(userId); + } + + @Override + public List queryScene(Long strategyCode) { + Long userId = SecurityUtils.getUserId(); + List ary = new ArrayList<>(); + List list = psdcStrategyMapper.queryByUser(userId, strategyCode); + for (PsdcStrategy srt : list){ + String[] codes = srt.getScenes().split(","); + List list2 = new ArrayList<>(); + for (String s : codes){ + List list3 = findSceneByUserAndSceneName(Long.parseLong(s)); + if (null != list3 && list3.size() > 0){ + list2.add(list3.get(0)); + } + } + StrategyVo strategyVo = new StrategyVo(srt.getStrategyId(), userId, srt.getStrategyName(), Math.toIntExact(srt.getStrategyCode()), list2, srt.getStrategyInfo(), srt.getCreateTime()); + ary.add(strategyVo); + } + return ary; } /** diff --git a/psdc-business/src/main/resources/mapper/business/PsdcStrategyMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcStrategyMapper.xml new file mode 100644 index 0000000..26f416b --- /dev/null +++ b/psdc-business/src/main/resources/mapper/business/PsdcStrategyMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + Insert into psdc_strategy(user_id,strategy_name,strategy_code,scenes,strategy_info,create_by,create_time,update_by,update_time) + Values (#{userId},#{strategyName},#{strategyCode},#{scenes},#{strategyInfo},#{createBy},#{createTime},#{updateBy},#{updateTime}) + + \ No newline at end of file diff --git a/psdc-web/src/main/java/com/psdc/controller/manager/PsdcSceneController.java b/psdc-web/src/main/java/com/psdc/controller/manager/PsdcSceneController.java index 2305165..9e8839b 100644 --- a/psdc-web/src/main/java/com/psdc/controller/manager/PsdcSceneController.java +++ b/psdc-web/src/main/java/com/psdc/controller/manager/PsdcSceneController.java @@ -8,9 +8,11 @@ import com.psdc.core.domain.AjaxResult; import com.psdc.core.page.TableDataInfo; import com.psdc.entity.PsdcDevice; import com.psdc.entity.PsdcScene; +import com.psdc.entity.PsdcStrategy; import com.psdc.entity.request.PsdcSceneRequest; import com.psdc.entity.res.PsdcSceneRes; import com.psdc.entity.vo.SceneVo; +import com.psdc.entity.vo.StrategyVo; import com.psdc.enums.BusinessType; import com.psdc.service.IPsdcSceneService; import org.springframework.beans.factory.annotation.Autowired; @@ -42,12 +44,12 @@ public class PsdcSceneController extends BaseController { @RequestMapping(value = "/selMyscene", method = RequestMethod.GET) public AjaxResult selMyscene() { List maps = new ArrayList<>(); - List list = psdcSceneService.sceneList(); - for (PsdcScene dd : list){ + List list = psdcSceneService.sceneList(); + for (PsdcStrategy dd : list){ Map map = new HashMap<>(); - map.put("label", dd.getSceneName()); - map.put("value", dd.getSceneId()); - map.put("sceneCode", dd.getSceneCode()); + map.put("label", dd.getStrategyName()); + map.put("value", dd.getStrategyId()); + map.put("sceneCode", dd.getStrategyCode()); maps.add(map); } return AjaxResult.success("用户所属策略列表", maps); @@ -56,9 +58,9 @@ public class PsdcSceneController extends BaseController { @PreAuthorize("@ss.hasPermi('system:cl:list')") @RequestMapping(value = "/list", method = RequestMethod.POST) public TableDataInfo list(@RequestBody JSONObject jsonObject) { - // startPage(); + startPage(); PsdcSceneRequest sceneVo = myPage(jsonObject, PsdcSceneRequest.class); - List list = psdcSceneService.findSceneByUserAndSceneName(sceneVo.getSceneCode()); + List list = psdcSceneService.queryScene(sceneVo.getSceneCode()); return getDataTable(list); } @@ -68,7 +70,7 @@ public class PsdcSceneController extends BaseController { @PreAuthorize("@ss.hasPermi('system:cl:list')") @Log(title = "策略管理", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody PsdcSceneRes scenes) { + public AjaxResult add(@Validated @RequestBody StrategyVo scenes) { return toAjax(psdcSceneService.insert(scenes)); } 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 1950c38..bdd68a3 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 @@ -103,13 +103,8 @@ public class TotalElectricMeterController { } map.put("children", maps2); - - - maps.add(map); - - } return AjaxResult.success("用户所属设备列表", maps); }