|
|
@ -2,6 +2,8 @@ package com.psdc.service.impl; |
|
|
|
|
|
|
|
|
|
|
|
import com.psdc.entity.PsdcScene; |
|
|
|
import com.psdc.entity.PsdcScene; |
|
|
|
import com.psdc.entity.request.PsdcSceneRequest; |
|
|
|
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.SceneVo; |
|
|
|
import com.psdc.mapper.PsdcSceneMapper; |
|
|
|
import com.psdc.mapper.PsdcSceneMapper; |
|
|
|
import com.psdc.service.IPsdcSceneService; |
|
|
|
import com.psdc.service.IPsdcSceneService; |
|
|
@ -19,6 +21,7 @@ import static org.springframework.transaction.annotation.Propagation.REQUIRES_NE |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 场景设定;(psdc_scene)表服务实现类 |
|
|
|
* 场景设定;(psdc_scene)表服务实现类 |
|
|
|
|
|
|
|
* |
|
|
|
* @date : 2023-5-10 |
|
|
|
* @date : 2023-5-10 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@Slf4j |
|
|
|
@Slf4j |
|
|
@ -27,35 +30,36 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { |
|
|
|
@Autowired |
|
|
|
@Autowired |
|
|
|
private PsdcSceneMapper psdcSceneMapper; |
|
|
|
private PsdcSceneMapper psdcSceneMapper; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 新增数据 |
|
|
|
* 新增数据 |
|
|
|
|
|
|
|
* |
|
|
|
* @param scenes 实例对象集合 |
|
|
|
* @param scenes 实例对象集合 |
|
|
|
* @return Boolean |
|
|
|
* @return Boolean |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public Boolean insert(PsdcSceneRequest scenes){ |
|
|
|
public Boolean insert(PsdcSceneRequest scenes) { |
|
|
|
Date date = new Date(); |
|
|
|
Date date = new Date(); |
|
|
|
long timestamp = getSecondTimestampTwo(date); |
|
|
|
long timestamp = getSecondTimestampTwo(date); |
|
|
|
long userId = SecurityUtils.getUserId(); |
|
|
|
long userId = SecurityUtils.getUserId(); |
|
|
|
List<SceneVo> scenesList = new ArrayList<>(); |
|
|
|
List<SceneVo> scenesList = new ArrayList<>(); |
|
|
|
if (null != scenes.getIntemp() && !"".equals(scenes.getIntemp())){ |
|
|
|
if (null != scenes.getIntemp() && !"".equals(scenes.getIntemp())) { |
|
|
|
SceneVo sceneVo; |
|
|
|
SceneVo sceneVo; |
|
|
|
sceneVo = new SceneVo(scenes.getSceneName(), scenes.getDeviceId(), "进水温度", "intemp", scenes.getIntemp()); |
|
|
|
sceneVo = new SceneVo(scenes.getSceneName(), scenes.getDeviceId(), "进水温度", "intemp", scenes.getIntemp()); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null != scenes.getOuttemp() && !"".equals(scenes.getOuttemp())){ |
|
|
|
if (null != scenes.getOuttemp() && !"".equals(scenes.getOuttemp())) { |
|
|
|
SceneVo sceneVo = new SceneVo(scenes.getSceneName(), scenes.getDeviceId(), "出水温度", "outtemp", scenes.getOuttemp()); |
|
|
|
SceneVo sceneVo = new SceneVo(scenes.getSceneName(), scenes.getDeviceId(), "出水温度", "outtemp", scenes.getOuttemp()); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null != scenes.getTemp() && !"".equals(scenes.getTemp())){ |
|
|
|
if (null != scenes.getTemp() && !"".equals(scenes.getTemp())) { |
|
|
|
SceneVo sceneVo = new SceneVo(scenes.getSceneName(), scenes.getDeviceId(), "温度", "temp", scenes.getTemp()); |
|
|
|
SceneVo sceneVo = new SceneVo(scenes.getSceneName(), scenes.getDeviceId(), "温度", "temp", scenes.getTemp()); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
try { |
|
|
|
for (SceneVo sc : scenesList){ |
|
|
|
for (SceneVo sc : scenesList) { |
|
|
|
sc.setSceneCode(timestamp); |
|
|
|
sc.setSceneCode(timestamp); |
|
|
|
sc.setUserId(userId); |
|
|
|
sc.setUserId(userId); |
|
|
|
} |
|
|
|
} |
|
|
@ -70,6 +74,7 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 在原有策略基础上增加设备温度管理 |
|
|
|
* 在原有策略基础上增加设备温度管理 |
|
|
|
|
|
|
|
* |
|
|
|
* @param scenes |
|
|
|
* @param scenes |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -79,22 +84,22 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { |
|
|
|
List<SceneVo> scenesList = new ArrayList<>(); |
|
|
|
List<SceneVo> scenesList = new ArrayList<>(); |
|
|
|
String sceneName = psdcSceneMapper.querySceneNameById(scenes.getSceneCode()); |
|
|
|
String sceneName = psdcSceneMapper.querySceneNameById(scenes.getSceneCode()); |
|
|
|
Integer deviceId = scenes.getDeviceId(); |
|
|
|
Integer deviceId = scenes.getDeviceId(); |
|
|
|
if (null != scenes.getIntemp() && !"".equals(scenes.getIntemp())){ |
|
|
|
if (null != scenes.getIntemp() && !"".equals(scenes.getIntemp())) { |
|
|
|
SceneVo sceneVo = new SceneVo(sceneName, deviceId, "进水温度", "intemp", scenes.getIntemp()); |
|
|
|
SceneVo sceneVo = new SceneVo(sceneName, deviceId, "进水温度", "intemp", scenes.getIntemp()); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null != scenes.getOuttemp() && !"".equals(scenes.getOuttemp())){ |
|
|
|
if (null != scenes.getOuttemp() && !"".equals(scenes.getOuttemp())) { |
|
|
|
SceneVo sceneVo = new SceneVo(sceneName, deviceId, "出水温度", "outtemp", scenes.getOuttemp()); |
|
|
|
SceneVo sceneVo = new SceneVo(sceneName, deviceId, "出水温度", "outtemp", scenes.getOuttemp()); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
} |
|
|
|
} |
|
|
|
if (null != scenes.getTemp() && !"".equals(scenes.getTemp())){ |
|
|
|
if (null != scenes.getTemp() && !"".equals(scenes.getTemp())) { |
|
|
|
SceneVo sceneVo = new SceneVo(sceneName, deviceId, "温度", "temp", scenes.getTemp()); |
|
|
|
SceneVo sceneVo = new SceneVo(sceneName, deviceId, "温度", "temp", scenes.getTemp()); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
scenesList.add(sceneVo); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
try { |
|
|
|
for (SceneVo sc : scenesList){ |
|
|
|
for (SceneVo sc : scenesList) { |
|
|
|
sc.setSceneCode(scenes.getSceneCode()); |
|
|
|
sc.setSceneCode(scenes.getSceneCode()); |
|
|
|
sc.setUserId(userId); |
|
|
|
sc.setUserId(userId); |
|
|
|
} |
|
|
|
} |
|
|
@ -134,18 +139,19 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 通过策略名称删除数据 |
|
|
|
* 通过策略名称删除数据 |
|
|
|
|
|
|
|
* |
|
|
|
* @param scene |
|
|
|
* @param scene |
|
|
|
* @return 是否成功 |
|
|
|
* @return 是否成功 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public Boolean deleteByScene(PsdcSceneRequest scene) { |
|
|
|
public Boolean deleteByScene(PsdcSceneRequest scene) { |
|
|
|
int count = 0; |
|
|
|
int count = 0; |
|
|
|
if (null != scene.getSceneCode() && !"".equals(scene.getSceneCode())){ |
|
|
|
if (null != scene.getSceneCode() && !"".equals(scene.getSceneCode())) { |
|
|
|
count = psdcSceneMapper.deleteBySceneName(scene.getSceneCode()); |
|
|
|
count = psdcSceneMapper.deleteBySceneName(scene.getSceneCode()); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
count = psdcSceneMapper.deleteById(scene.getSceneId()); |
|
|
|
count = psdcSceneMapper.deleteById(scene.getSceneId()); |
|
|
|
} |
|
|
|
} |
|
|
|
if (count > 0){ |
|
|
|
if (count > 0) { |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
return false; |
|
|
|
return false; |
|
|
@ -182,25 +188,95 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public List<SceneVo> findSceneByUserAndSceneName(Long sceneCode) { |
|
|
|
public List<PsdcSceneRes> findSceneByUserAndSceneName(Long sceneCode) { |
|
|
|
Long userId = SecurityUtils.getUserId(); |
|
|
|
Long userId = SecurityUtils.getUserId(); |
|
|
|
String sceneName = ""; |
|
|
|
String sceneName = ""; |
|
|
|
return psdcSceneMapper.findSceneByUserAndSceneName(userId, sceneCode, sceneName); |
|
|
|
List<PsdcSceneRes> sceneRes = new ArrayList<>(); |
|
|
|
|
|
|
|
List<SceneVo> list = psdcSceneMapper.findSceneByUserAndSceneCode(userId, sceneCode, sceneName); |
|
|
|
|
|
|
|
List<SceneVo> sceneVos = psdcSceneMapper.queryScenes(userId, sceneCode); |
|
|
|
|
|
|
|
for (SceneVo sv : sceneVos) { |
|
|
|
|
|
|
|
PsdcSceneRes res = new PsdcSceneRes(sv.getSceneId(), sv.getSceneName(), sv.getSceneCode(), sv.getUserId(), sv.getCreateTime(), sv.getSceneRemark()); |
|
|
|
|
|
|
|
sceneRes.add(res); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
for (PsdcSceneRes psr : sceneRes) { |
|
|
|
|
|
|
|
Long code = psr.getSceneCode(); |
|
|
|
|
|
|
|
List<SceneVo> listByCode = new ArrayList<>(); |
|
|
|
|
|
|
|
for (SceneVo sv : list) { |
|
|
|
|
|
|
|
if (code == sv.getSceneCode()) { // 判断是否为同个策略
|
|
|
|
|
|
|
|
listByCode.add(sv); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
List<DeviceVo> ary = new ArrayList<>(); |
|
|
|
|
|
|
|
Integer deviceId = listByCode.get(0).getDeviceId(); |
|
|
|
|
|
|
|
DeviceVo deviceVo = new DeviceVo(); |
|
|
|
|
|
|
|
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()); |
|
|
|
|
|
|
|
switch (sv.getSceneKey()) { |
|
|
|
|
|
|
|
case "intemp": |
|
|
|
|
|
|
|
deviceVo.setIntemp(sv.getSceneValue()); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "outtemp": |
|
|
|
|
|
|
|
deviceVo.setOuttemp(sv.getSceneValue()); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "temp": |
|
|
|
|
|
|
|
deviceVo.setTemp(sv.getSceneValue()); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
ary.add(deviceVo); |
|
|
|
|
|
|
|
deviceId = sv.getDeviceId(); |
|
|
|
|
|
|
|
deviceVo = new DeviceVo(); |
|
|
|
|
|
|
|
deviceVo.setDeviceId(sv.getDeviceId()); |
|
|
|
|
|
|
|
deviceVo.setDeviceName(sv.getDeviceName()); |
|
|
|
|
|
|
|
deviceVo.setDeviceSn(sv.getDeviceSn()); |
|
|
|
|
|
|
|
if (i == listByCode.size() - 1){ // 判断是否为最后1个元素
|
|
|
|
|
|
|
|
switch (sv.getSceneKey()) { |
|
|
|
|
|
|
|
case "intemp": |
|
|
|
|
|
|
|
deviceVo.setIntemp(sv.getSceneValue()); |
|
|
|
|
|
|
|
case "outtemp": |
|
|
|
|
|
|
|
deviceVo.setOuttemp(sv.getSceneValue()); |
|
|
|
|
|
|
|
case "temp": |
|
|
|
|
|
|
|
deviceVo.setTemp(sv.getSceneValue()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
ary.add(deviceVo); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
switch (sv.getSceneKey()) { |
|
|
|
|
|
|
|
case "intemp": |
|
|
|
|
|
|
|
deviceVo.setIntemp(sv.getSceneValue()); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "outtemp": |
|
|
|
|
|
|
|
deviceVo.setOuttemp(sv.getSceneValue()); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "temp": |
|
|
|
|
|
|
|
deviceVo.setTemp(sv.getSceneValue()); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
psr.setDeviceVos(ary); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return sceneRes; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 获取精确到秒的时间戳 |
|
|
|
* 获取精确到秒的时间戳 |
|
|
|
|
|
|
|
* |
|
|
|
* @param date |
|
|
|
* @param date |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public static long getSecondTimestampTwo(Date date){ |
|
|
|
public static long getSecondTimestampTwo(Date date) { |
|
|
|
if (null == date) { |
|
|
|
if (null == date) { |
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|
String timestamp = String.valueOf(date.getTime()/1000); |
|
|
|
String timestamp = String.valueOf(date.getTime() / 1000); |
|
|
|
return Long.valueOf(timestamp); |
|
|
|
return Long.valueOf(timestamp); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |