|
|
|
@ -6,13 +6,15 @@ import com.psdc.entity.res.PsdcSceneRes; |
|
|
|
|
import com.psdc.entity.vo.DeviceVo; |
|
|
|
|
import com.psdc.entity.vo.SceneVo; |
|
|
|
|
import com.psdc.mapper.PsdcSceneMapper; |
|
|
|
|
import com.psdc.mapper.SysUserMapper; |
|
|
|
|
import com.psdc.service.IPsdcSceneService; |
|
|
|
|
import com.psdc.utils.SecurityUtils; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
@ -27,9 +29,15 @@ import static org.springframework.transaction.annotation.Propagation.REQUIRES_NE |
|
|
|
|
@Slf4j |
|
|
|
|
@Service |
|
|
|
|
public class PsdcSceneServiceImpl implements IPsdcSceneService { |
|
|
|
|
@Autowired |
|
|
|
|
@Resource |
|
|
|
|
private PsdcSceneMapper psdcSceneMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private SysUserMapper sysUserMapper; |
|
|
|
|
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 新增数据 |
|
|
|
@ -41,6 +49,7 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { |
|
|
|
|
public Boolean insert(PsdcSceneRes scenes) { |
|
|
|
|
Date date = new Date(); |
|
|
|
|
long timestamp = getSecondTimestampTwo(date); |
|
|
|
|
String userName = sysUserMapper.selectUserById(scenes.getUserId()).getUserName(); |
|
|
|
|
List<SceneVo> scenesList = new ArrayList<>(); |
|
|
|
|
for (DeviceVo dev : scenes.getDeviceVos()) { |
|
|
|
|
if (null != dev.getIntemp() && !"".equals(dev.getIntemp())) { |
|
|
|
@ -58,51 +67,13 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
for (SceneVo sc : scenesList) { |
|
|
|
|
sc.setSceneCode(timestamp); |
|
|
|
|
sc.setUserId(scenes.getUserId()); |
|
|
|
|
} |
|
|
|
|
psdcSceneMapper.InsertSceneData(scenesList); |
|
|
|
|
return true; |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
log.info("Sorry,新增场景策略失败!+ 错误原因: {}", e.getMessage()); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 在原有策略基础上增加设备温度管理 |
|
|
|
|
* |
|
|
|
|
* @param scenes |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public Boolean insertByCode(PsdcSceneRequest scenes) { |
|
|
|
|
long userId = SecurityUtils.getUserId(); |
|
|
|
|
List<SceneVo> scenesList = new ArrayList<>(); |
|
|
|
|
String sceneName = psdcSceneMapper.querySceneNameById(scenes.getSceneCode()); |
|
|
|
|
Integer deviceId = scenes.getDeviceId(); |
|
|
|
|
if (null != scenes.getIntemp() && !"".equals(scenes.getIntemp())) { |
|
|
|
|
SceneVo sceneVo = new SceneVo(sceneName, deviceId, "进水温度", "intemp", scenes.getIntemp()); |
|
|
|
|
scenesList.add(sceneVo); |
|
|
|
|
} |
|
|
|
|
if (null != scenes.getOuttemp() && !"".equals(scenes.getOuttemp())) { |
|
|
|
|
SceneVo sceneVo = new SceneVo(sceneName, deviceId, "出水温度", "outtemp", scenes.getOuttemp()); |
|
|
|
|
scenesList.add(sceneVo); |
|
|
|
|
} |
|
|
|
|
if (null != scenes.getTemp() && !"".equals(scenes.getTemp())) { |
|
|
|
|
SceneVo sceneVo = new SceneVo(sceneName, deviceId, "温度", "temp", scenes.getTemp()); |
|
|
|
|
scenesList.add(sceneVo); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
for (SceneVo sc : scenesList) { |
|
|
|
|
sc.setSceneCode(scenes.getSceneCode()); |
|
|
|
|
sc.setUserId(userId); |
|
|
|
|
sc.setCreateBy(userName); |
|
|
|
|
sc.setCreateTime(scenes.getCreateTime()); |
|
|
|
|
sc.setSceneRemark(scenes.getSceneRemark()); |
|
|
|
|
} |
|
|
|
|
psdcSceneMapper.InsertSceneData(scenesList); |
|
|
|
|
return true; |
|
|
|
@ -127,9 +98,36 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
@Transactional(propagation = REQUIRES_NEW) |
|
|
|
|
public Boolean update(PsdcScene scenes) { |
|
|
|
|
public Boolean update(PsdcSceneRes scenes) { |
|
|
|
|
|
|
|
|
|
Date date = new Date(); |
|
|
|
|
String userName = sysUserMapper.selectUserById(scenes.getUserId()).getUserName(); |
|
|
|
|
List<SceneVo> scenesList = new ArrayList<>(); |
|
|
|
|
for (DeviceVo dev : scenes.getDeviceVos()) { |
|
|
|
|
if (null != dev.getIntemp() && !"".equals(dev.getIntemp())) { |
|
|
|
|
SceneVo sceneVo; |
|
|
|
|
sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "进水温度", "intemp", dev.getIntemp()); |
|
|
|
|
scenesList.add(sceneVo); |
|
|
|
|
} |
|
|
|
|
if (null != dev.getOuttemp() && !"".equals(dev.getOuttemp())) { |
|
|
|
|
SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "出水温度", "outtemp", dev.getOuttemp()); |
|
|
|
|
scenesList.add(sceneVo); |
|
|
|
|
} |
|
|
|
|
if (null != dev.getTemp() && !"".equals(dev.getTemp())) { |
|
|
|
|
SceneVo sceneVo = new SceneVo(scenes.getSceneName(), dev.getDeviceId(), "温度", "temp", dev.getTemp()); |
|
|
|
|
scenesList.add(sceneVo); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
psdcSceneMapper.update(scenes); |
|
|
|
|
for (SceneVo sc : scenesList) { |
|
|
|
|
sc.setSceneCode(scenes.getSceneCode()); |
|
|
|
|
sc.setUserId(scenes.getUserId()); |
|
|
|
|
sc.setUpdateBy(userName); |
|
|
|
|
sc.setUpdateTime(date); |
|
|
|
|
sc.setSceneRemark(scenes.getSceneRemark()); |
|
|
|
|
} |
|
|
|
|
psdcSceneMapper.UpdateSceneData(scenesList); |
|
|
|
|
return true; |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
@ -202,10 +200,14 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService { |
|
|
|
|
for (PsdcSceneRes psr : sceneRes) { |
|
|
|
|
Long code = psr.getSceneCode(); |
|
|
|
|
List<SceneVo> listByCode = new ArrayList<>(); |
|
|
|
|
for (SceneVo sv : list) { |
|
|
|
|
if (code == sv.getSceneCode()) { // 判断是否为同个策略
|
|
|
|
|
listByCode.add(sv); |
|
|
|
|
if (null != sceneCode && 0 != sceneCode){ |
|
|
|
|
for (SceneVo sv : list) { |
|
|
|
|
if (code == sv.getSceneCode()) { // 判断是否为同个策略
|
|
|
|
|
listByCode.add(sv); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
listByCode = psdcSceneMapper.findSceneByUserAndSceneCode(userId, code, sceneName); |
|
|
|
|
} |
|
|
|
|
List<DeviceVo> ary = new ArrayList<>(); |
|
|
|
|
Integer deviceId = listByCode.get(0).getDeviceId(); |
|
|
|
|