|
|
|
@ -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; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 获取精确到秒的时间戳 |
|
|
|
|
* |
|
|
|
|