2023-05-30 10:24:19 优化完善策略管理新增、查询、修改接口!

master
魔神煜修罗皇 2 years ago
parent 107d09e506
commit acd16dc4f1
  1. 5
      psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java
  2. 98
      psdc-business/src/main/java/com/psdc/service/impl/PsdcSceneServiceImpl.java
  3. 31
      psdc-business/src/main/resources/mapper/business/PsdcSceneMapper.xml
  4. 2
      psdc-web/src/main/java/com/psdc/controller/manager/PsdcSceneController.java

@ -3,7 +3,6 @@ package com.psdc.service;
import com.psdc.entity.PsdcScene;
import com.psdc.entity.request.PsdcSceneRequest;
import com.psdc.entity.res.PsdcSceneRes;
import com.psdc.entity.vo.SceneVo;
import java.util.List;
import java.util.Map;
@ -20,8 +19,6 @@ public interface IPsdcSceneService {
*/
Boolean insert(PsdcSceneRes scenes);
Boolean insertByCode(PsdcSceneRequest scenes);
List<PsdcScene> sceneList();
/**
@ -29,7 +26,7 @@ public interface IPsdcSceneService {
* @param scenes 实例对象
* @return 实例对象
*/
Boolean update(PsdcScene scenes);
Boolean update(PsdcSceneRes scenes);
/**
* 通过策略名称删除数据

@ -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();

@ -47,10 +47,10 @@
</insert>
<insert id="InsertSceneData" parameterType="com.psdc.entity.vo.SceneVo" useGeneratedKeys="true">
Insert into psdc_scene(scene_name,scene_code,user_id,device_id,device_sn,scene_context,scene_key,scene_value)
Insert into psdc_scene(scene_name,scene_code,user_id,device_id,device_sn,scene_context,scene_key,scene_value,scene_remark, create_by, create_time)
Values
<foreach collection="sceneRecord" item="entity" separator=",">
(#{entity.sceneName}, #{entity.sceneCode},#{entity.userId}, #{entity.deviceId}, #{entity.deviceSn}, #{entity.sceneContext}, #{entity.sceneKey}, #{entity.sceneValue})
(#{entity.sceneName}, #{entity.sceneCode},#{entity.userId}, #{entity.deviceId}, #{entity.deviceSn}, #{entity.sceneContext}, #{entity.sceneKey}, #{entity.sceneValue},#{entity.sceneRemark},#{entity.createBy},#{entity.createTime})
</foreach>
</insert>
@ -61,24 +61,29 @@
<if test="item.sceneName != null and item.sceneName != ''">
`scene_name`= #{item.sceneName},
</if>
<if test="deviceId != null and deviceId != ''">
device_id = #{deviceId},
</if>
<if test="item.deviceSn != null and item.deviceSn != ''">
`device_sn` = #{item.deviceSn},
</if>
<if test="item.sceneContext != null and item.sceneContext != ''">
`scene_context` = #{item.sceneContext},
</if>
<if test="item.sceneKey != null and item.sceneKey != ''">
`scene_key` = ${item.sceneKey},
</if>
<if test="item.sceneValue != null and item.sceneValue != ''">
`scene_value` = ${item.sceneValue}
`scene_value` = ${item.sceneValue},
</if>
<if test="item.sceneRemark != null and item.sceneRemark != ''">
scene_remark = #{item.sceneRemark},
</if>
</set>
<where>
`scene_code` = ${item.sceneCode}
<if test="item.sceneCode != null and item.sceneCode != ''">
And scene_code = ${item.sceneCode}
</if>
<if test="item.userId != null and item.userId != ''">
And user_id = ${item.userId}
</if>
<if test="item.deviceId != null and item.deviceId != ''">
And device_id = ${item.deviceId}
</if>
<if test="item.sceneKey != null and item.sceneKey != ''">
And scene_key = #{item.sceneKey}
</if>
</where>
</foreach>
</update>

@ -79,7 +79,7 @@ public class PsdcSceneController extends BaseController {
@PreAuthorize("@ss.hasPermi('system:cl:list')")
@Log(title = "策略管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody PsdcScene scenes) {
public AjaxResult edit(@Validated @RequestBody PsdcSceneRes scenes) {
return toAjax(psdcSceneService.update(scenes));
}

Loading…
Cancel
Save