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 934b287..295b866 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 @@ -34,10 +34,6 @@ public class PsdcSceneRes { private Long sceneCode; /** 用户id */ private Long userId; - /** - * 该策略是否选中 - */ - private Boolean isCheck; /** 创建时间 */ private String createTime ; @@ -68,6 +64,10 @@ public class PsdcSceneRes { * 可控设备列表 */ private List sblb; + /** 类型 */ + private String type; + /** 图标 */ + private String icon; public PsdcSceneRes(Integer ID, Integer sceneId, String sceneName, Long sceneCode, Long userId, String createTime, String sceneRemark, Integer isJudge, Integer judgeDevice, String judgeElement, String judgeData) { 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 index 747b247..a36c98e 100644 --- a/psdc-business/src/main/java/com/psdc/entity/vo/StrategyVo.java +++ b/psdc-business/src/main/java/com/psdc/entity/vo/StrategyVo.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Component; import java.io.Serializable; import java.util.List; +import java.util.Map; /** * @Author:Stone @@ -32,8 +33,27 @@ public class StrategyVo implements Serializable,Cloneable{ private Integer strategyCode ; /** 所属步骤集合 */ private List scenesList ; + /** 控制指令集合 */ + private List commandList ; /** 策略描述 */ private String strategyInfo ; /** 创建时间 */ private String createTime ; + /** + * 该策略是否选中 + */ + private Boolean isCheck; + + public StrategyVo(Integer strategyId, Long userId, String strategyName, Integer strategyCode, List scenesList, String strategyInfo, String createTime, Boolean isCheck) { + this.strategyId = strategyId; + this.userId = userId; + this.strategyName = strategyName; + this.strategyCode = strategyCode; + this.scenesList = scenesList; + this.strategyInfo = strategyInfo; + this.createTime = createTime; + this.isCheck = isCheck; + } + + } \ 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 68fc3cd..45bdf83 100644 --- a/psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java @@ -45,4 +45,6 @@ public interface IPsdcSceneService { List getStrategyList(); List findSceneByUserAndSceneName(Long sceneCode); + + List findSceneByUserAndSceneCode(String[] sceneCodes, Long userId); } \ No newline at end of file diff --git a/psdc-business/src/main/java/com/psdc/service/IPsdcStrategyLogService.java b/psdc-business/src/main/java/com/psdc/service/IPsdcStrategyLogService.java new file mode 100644 index 0000000..91006c2 --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcStrategyLogService.java @@ -0,0 +1,16 @@ +package com.psdc.service; + +import java.util.List; + +/** + * @Author:戴仕崑 + * @Project:psdc + * @Filename:IPsdcStrategyLogService + * @Slogan 致敬大师,致敬未来的你 + * @Date:2023/6/21 10:12 + * @Version 1.0 + */ +public interface IPsdcStrategyLogService { + + List selMyStrategyLog(); +} 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 16484a7..4123e4a 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 @@ -412,6 +412,9 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService { if ("电表".equals(deviceModel)){ continue; } + if ("水箱".equals(deviceModel)){ + continue; + } DeviceStatusVo deviceStatusVo = new DeviceStatusVo(); BeanUtils.copyProperties(pd, deviceStatusVo); List ary = new ArrayList<>(); 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 8e8af42..c2726d7 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 @@ -128,7 +128,7 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { } } i = 1; - StrategyVo strategyVo = new StrategyVo(srt.getStrategyId(), userId, srt.getStrategyName(), Math.toIntExact(srt.getStrategyCode()), list2, srt.getStrategyInfo(), srt.getCreateTime()); + StrategyVo strategyVo = new StrategyVo(srt.getStrategyId(), userId, srt.getStrategyName(), Math.toIntExact(srt.getStrategyCode()), list2, srt.getStrategyInfo(), srt.getCreateTime(), null); ary.add(strategyVo); } return ary; @@ -181,22 +181,18 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { List scenesList = new ArrayList<>(); String s = null; Date date = new Date(); - Long thisSceneCode = null; for (int i = scenes.getScenesList().size() - 1; i >= 0; i--) { + Date date2 = new Date(); PsdcSceneRes sc = scenes.getScenesList().get(i); - if (null != sc.getSceneCode() && !"".equals(sc.getSceneCode())){ - thisSceneCode = sc.getSceneCode(); - } else { - thisSceneCode = getSecondTimestampTwo(date); - } - s = thisSceneCode + "," + s; + long timestamp = getSecondTimestampTwo(date2) - i; + s = timestamp + "," + s; psdcSceneMapper.deleteBySceneName(sc.getSceneCode()); 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(sc.getSceneName(), thisSceneCode, userId, sc.getIsJudge(), + SceneVo sceneVo = new SceneVo(sc.getSceneName(), timestamp, userId, sc.getIsJudge(), sc.getJudgeDevice(), sc.getJudgeElement(), sc.getJudgeData(), dev.getDeviceId(), desc, sceneKey, tempValue, sc.getSceneRemark()); sceneVo.setCreateBy(userName); @@ -269,60 +265,33 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { @Override - public List getStrategyList() { + public List getStrategyList() { Long userId = SecurityUtils.getUserId(); - List sceneRes = psdcSceneMapper.queryScenes(userId, null); - for (PsdcSceneRes psr : sceneRes) { - Long code = psr.getSceneCode(); - List listByCode = psdcSceneMapper.findSceneByUserAndSceneCode(userId, code, null); - psr.setIsCheck(false); - List ary = new ArrayList<>(); - Integer deviceId = listByCode.get(0).getDeviceId(); - DeviceVo deviceVo = new DeviceVo(); - List list = new ArrayList<>(); - - for (int i = 0; i < listByCode.size(); i++) { - SceneVo sv = listByCode.get(i); - if (deviceId == sv.getDeviceId()) { - deviceVo.setDeviceId(sv.getDeviceId()); - deviceVo.setDeviceName(sv.getDeviceName()); - deviceVo.setDeviceSn(sv.getDeviceSn()); - Map map = new HashMap<>(); - map.put("label", sv.getSceneKey()); - map.put("value", sv.getSceneValue()); - list.add(map); - deviceVo.setTempValue(list); - if (1 == listByCode.size() || i == listByCode.size() - 1) { - ary.add(deviceVo); - } - - } else { - ary.add(deviceVo); - deviceId = sv.getDeviceId(); - deviceVo = new DeviceVo(); - list = new ArrayList<>(); - deviceVo.setDeviceId(sv.getDeviceId()); - deviceVo.setDeviceName(sv.getDeviceName()); - deviceVo.setDeviceSn(sv.getDeviceSn()); - if (i == listByCode.size() - 1) { - Map map = new HashMap<>(); - map.put("label", sv.getSceneKey()); - map.put("value", sv.getSceneValue()); - list.add(map); - deviceVo.setTempValue(list); - ary.add(deviceVo); - } else { - Map map = new HashMap<>(); - map.put("label", sv.getSceneKey()); - map.put("value", sv.getSceneValue()); - list.add(map); - deviceVo.setTempValue(list); - } + List ary = new ArrayList<>(); + List strategyList = psdcStrategyMapper.queryByUser(userId, null); + int i = 1; + for (PsdcStrategy srt : strategyList) { + String[] codes = srt.getScenes().split(","); + List list2 = new ArrayList<>(); + List list4 = findSceneByUserAndSceneCode(codes, userId); + for (String s : codes) { + List list3 = findSceneByUserAndSceneName(Long.parseLong(s)); + if (null != list3 && list3.size() > 0) { + PsdcSceneRes res = list3.get(0); + res.setTitle("第" + i + "步"); + res.setType(""); + res.setIcon(""); + i++; + list2.add(res); } } - psr.setDeviceVos(ary); + i = 1; + StrategyVo strategyVo = new StrategyVo(srt.getStrategyId(), userId, srt.getStrategyName(), Math.toIntExact(srt.getStrategyCode()), list2, list4, srt.getStrategyInfo(), srt.getCreateTime(), null); + ary.add(strategyVo); } - return sceneRes; + + + return ary; } @Override @@ -384,6 +353,35 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { return sceneRes; } + @Override + public List findSceneByUserAndSceneCode(String[] sceneCodes, Long userId) { + List list = new ArrayList<>(); + for (String src : sceneCodes){ + List list3 = new ArrayList<>(); + HashMap map3 = new HashMap<>(); + Long sceneCode = Long.parseLong(src); + List sceneRes = psdcSceneMapper.queryScenes(userId, sceneCode); + for (PsdcSceneRes sc : sceneRes){ + List scenes = psdcSceneMapper.findSceneByUserAndSceneCode(userId, sceneCode, null); + HashMap map1 = new HashMap<>(); + List list2 = new ArrayList<>(); + map1.put("deviceId", sc.getSceneId()); + for (SceneVo s : scenes){ + HashMap map2 = new HashMap<>(); + map2.put("controlKey", s.getSceneKey()); + map2.put("controlValue", s.getSceneValue()); + list2.add(map2); + } + map1.put("data", list2); + list3.add(map1); + } + map3.put("sceneCode", sceneCode); + map3.put("sceneControlCommand", list3); + list.add(map3); + } + return list; + } + /** * 获取精确到秒的时间戳 *