2023-06-21 13:29:46 配合前端方面,优化完善策略管理的增、删、改查功能!

master
魔神煜修罗皇 2 years ago
parent a9b1c120ed
commit f7e909693d
  1. 8
      psdc-business/src/main/java/com/psdc/entity/res/PsdcSceneRes.java
  2. 20
      psdc-business/src/main/java/com/psdc/entity/vo/StrategyVo.java
  3. 2
      psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java
  4. 16
      psdc-business/src/main/java/com/psdc/service/IPsdcStrategyLogService.java
  5. 3
      psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java
  6. 116
      psdc-business/src/main/java/com/psdc/service/impl/PsdcSceneServiceImpl.java

@ -34,10 +34,6 @@ public class PsdcSceneRes {
private Long sceneCode; private Long sceneCode;
/** 用户id */ /** 用户id */
private Long userId; private Long userId;
/**
* 该策略是否选中
*/
private Boolean isCheck;
/** 创建时间 */ /** 创建时间 */
private String createTime ; private String createTime ;
@ -68,6 +64,10 @@ public class PsdcSceneRes {
* 可控设备列表 * 可控设备列表
*/ */
private List sblb; 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) { public PsdcSceneRes(Integer ID, Integer sceneId, String sceneName, Long sceneCode, Long userId, String createTime, String sceneRemark, Integer isJudge, Integer judgeDevice, String judgeElement, String judgeData) {

@ -8,6 +8,7 @@ import org.springframework.stereotype.Component;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @AuthorStone * @AuthorStone
@ -32,8 +33,27 @@ public class StrategyVo implements Serializable,Cloneable{
private Integer strategyCode ; private Integer strategyCode ;
/** 所属步骤集合 */ /** 所属步骤集合 */
private List<PsdcSceneRes> scenesList ; private List<PsdcSceneRes> scenesList ;
/** 控制指令集合 */
private List<Map> commandList ;
/** 策略描述 */ /** 策略描述 */
private String strategyInfo ; private String strategyInfo ;
/** 创建时间 */ /** 创建时间 */
private String createTime ; private String createTime ;
/**
* 该策略是否选中
*/
private Boolean isCheck;
public StrategyVo(Integer strategyId, Long userId, String strategyName, Integer strategyCode, List<PsdcSceneRes> 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;
}
} }

@ -45,4 +45,6 @@ public interface IPsdcSceneService {
List getStrategyList(); List getStrategyList();
List<PsdcSceneRes> findSceneByUserAndSceneName(Long sceneCode); List<PsdcSceneRes> findSceneByUserAndSceneName(Long sceneCode);
List findSceneByUserAndSceneCode(String[] sceneCodes, Long userId);
} }

@ -0,0 +1,16 @@
package com.psdc.service;
import java.util.List;
/**
* @Author戴仕崑
* @Projectpsdc
* @FilenameIPsdcStrategyLogService
* @Slogan 致敬大师致敬未来的你
* @Date2023/6/21 10:12
* @Version 1.0
*/
public interface IPsdcStrategyLogService {
List selMyStrategyLog();
}

@ -412,6 +412,9 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService {
if ("电表".equals(deviceModel)){ if ("电表".equals(deviceModel)){
continue; continue;
} }
if ("水箱".equals(deviceModel)){
continue;
}
DeviceStatusVo deviceStatusVo = new DeviceStatusVo(); DeviceStatusVo deviceStatusVo = new DeviceStatusVo();
BeanUtils.copyProperties(pd, deviceStatusVo); BeanUtils.copyProperties(pd, deviceStatusVo);
List<Map> ary = new ArrayList<>(); List<Map> ary = new ArrayList<>();

@ -128,7 +128,7 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
} }
} }
i = 1; 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); ary.add(strategyVo);
} }
return ary; return ary;
@ -181,22 +181,18 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
List<SceneVo> scenesList = new ArrayList<>(); List<SceneVo> scenesList = new ArrayList<>();
String s = null; String s = null;
Date date = new Date(); Date date = new Date();
Long thisSceneCode = null;
for (int i = scenes.getScenesList().size() - 1; i >= 0; i--) { for (int i = scenes.getScenesList().size() - 1; i >= 0; i--) {
Date date2 = new Date();
PsdcSceneRes sc = scenes.getScenesList().get(i); PsdcSceneRes sc = scenes.getScenesList().get(i);
if (null != sc.getSceneCode() && !"".equals(sc.getSceneCode())){ long timestamp = getSecondTimestampTwo(date2) - i;
thisSceneCode = sc.getSceneCode(); s = timestamp + "," + s;
} else {
thisSceneCode = getSecondTimestampTwo(date);
}
s = thisSceneCode + "," + s;
psdcSceneMapper.deleteBySceneName(sc.getSceneCode()); psdcSceneMapper.deleteBySceneName(sc.getSceneCode());
for (DeviceVo dev : sc.getDeviceVos()) { for (DeviceVo dev : sc.getDeviceVos()) {
for (Map m : dev.getTempList()) { for (Map m : dev.getTempList()) {
String desc = (String) m.get("label"); String desc = (String) m.get("label");
String tempValue = (String) m.get("value"); String tempValue = (String) m.get("value");
String sceneKey = sceneKey(desc); 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(), sc.getJudgeDevice(), sc.getJudgeElement(), sc.getJudgeData(), dev.getDeviceId(),
desc, sceneKey, tempValue, sc.getSceneRemark()); desc, sceneKey, tempValue, sc.getSceneRemark());
sceneVo.setCreateBy(userName); sceneVo.setCreateBy(userName);
@ -269,60 +265,33 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
@Override @Override
public List<PsdcSceneRes> getStrategyList() { public List getStrategyList() {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
List<PsdcSceneRes> sceneRes = psdcSceneMapper.queryScenes(userId, null); List<StrategyVo> ary = new ArrayList<>();
for (PsdcSceneRes psr : sceneRes) { List<PsdcStrategy> strategyList = psdcStrategyMapper.queryByUser(userId, null);
Long code = psr.getSceneCode(); int i = 1;
List<SceneVo> listByCode = psdcSceneMapper.findSceneByUserAndSceneCode(userId, code, null); for (PsdcStrategy srt : strategyList) {
psr.setIsCheck(false); String[] codes = srt.getScenes().split(",");
List<DeviceVo> ary = new ArrayList<>(); List<PsdcSceneRes> list2 = new ArrayList<>();
Integer deviceId = listByCode.get(0).getDeviceId(); List<Map> list4 = findSceneByUserAndSceneCode(codes, userId);
DeviceVo deviceVo = new DeviceVo(); for (String s : codes) {
List<Map> list = new ArrayList<>(); List<PsdcSceneRes> list3 = findSceneByUserAndSceneName(Long.parseLong(s));
if (null != list3 && list3.size() > 0) {
for (int i = 0; i < listByCode.size(); i++) { PsdcSceneRes res = list3.get(0);
SceneVo sv = listByCode.get(i); res.setTitle("第" + i + "步");
if (deviceId == sv.getDeviceId()) { res.setType("");
deviceVo.setDeviceId(sv.getDeviceId()); res.setIcon("");
deviceVo.setDeviceName(sv.getDeviceName()); i++;
deviceVo.setDeviceSn(sv.getDeviceSn()); list2.add(res);
Map<String, Object> 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<String, Object> map = new HashMap<>();
map.put("label", sv.getSceneKey());
map.put("value", sv.getSceneValue());
list.add(map);
deviceVo.setTempValue(list);
ary.add(deviceVo);
} else {
Map<String, Object> map = new HashMap<>();
map.put("label", sv.getSceneKey());
map.put("value", sv.getSceneValue());
list.add(map);
deviceVo.setTempValue(list);
}
} }
} }
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 @Override
@ -384,6 +353,35 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
return sceneRes; return sceneRes;
} }
@Override
public List<Map> findSceneByUserAndSceneCode(String[] sceneCodes, Long userId) {
List<Map> list = new ArrayList<>();
for (String src : sceneCodes){
List<Map> list3 = new ArrayList<>();
HashMap<String, Object> map3 = new HashMap<>();
Long sceneCode = Long.parseLong(src);
List<PsdcSceneRes> sceneRes = psdcSceneMapper.queryScenes(userId, sceneCode);
for (PsdcSceneRes sc : sceneRes){
List<SceneVo> scenes = psdcSceneMapper.findSceneByUserAndSceneCode(userId, sceneCode, null);
HashMap<String, Object> map1 = new HashMap<>();
List<Map> list2 = new ArrayList<>();
map1.put("deviceId", sc.getSceneId());
for (SceneVo s : scenes){
HashMap<String, Object> 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;
}
/** /**
* 获取精确到秒的时间戳 * 获取精确到秒的时间戳
* *

Loading…
Cancel
Save