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;
/** 用户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) {

@ -8,6 +8,7 @@ import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @AuthorStone
@ -32,8 +33,27 @@ public class StrategyVo implements Serializable,Cloneable{
private Integer strategyCode ;
/** 所属步骤集合 */
private List<PsdcSceneRes> scenesList ;
/** 控制指令集合 */
private List<Map> commandList ;
/** 策略描述 */
private String strategyInfo ;
/** 创建时间 */
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<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)){
continue;
}
if ("水箱".equals(deviceModel)){
continue;
}
DeviceStatusVo deviceStatusVo = new DeviceStatusVo();
BeanUtils.copyProperties(pd, deviceStatusVo);
List<Map> ary = new ArrayList<>();

@ -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<SceneVo> 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<PsdcSceneRes> getStrategyList() {
public List getStrategyList() {
Long userId = SecurityUtils.getUserId();
List<PsdcSceneRes> sceneRes = psdcSceneMapper.queryScenes(userId, null);
for (PsdcSceneRes psr : sceneRes) {
Long code = psr.getSceneCode();
List<SceneVo> listByCode = psdcSceneMapper.findSceneByUserAndSceneCode(userId, code, null);
psr.setIsCheck(false);
List<DeviceVo> ary = new ArrayList<>();
Integer deviceId = listByCode.get(0).getDeviceId();
DeviceVo deviceVo = new DeviceVo();
List<Map> 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<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);
}
List<StrategyVo> ary = new ArrayList<>();
List<PsdcStrategy> strategyList = psdcStrategyMapper.queryByUser(userId, null);
int i = 1;
for (PsdcStrategy srt : strategyList) {
String[] codes = srt.getScenes().split(",");
List<PsdcSceneRes> list2 = new ArrayList<>();
List<Map> list4 = findSceneByUserAndSceneCode(codes, userId);
for (String s : codes) {
List<PsdcSceneRes> 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<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