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.PsdcScene;
import com.psdc.entity.request.PsdcSceneRequest; import com.psdc.entity.request.PsdcSceneRequest;
import com.psdc.entity.res.PsdcSceneRes; import com.psdc.entity.res.PsdcSceneRes;
import com.psdc.entity.vo.SceneVo;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -20,8 +19,6 @@ public interface IPsdcSceneService {
*/ */
Boolean insert(PsdcSceneRes scenes); Boolean insert(PsdcSceneRes scenes);
Boolean insertByCode(PsdcSceneRequest scenes);
List<PsdcScene> sceneList(); List<PsdcScene> sceneList();
/** /**
@ -29,7 +26,7 @@ public interface IPsdcSceneService {
* @param scenes 实例对象 * @param scenes 实例对象
* @return 实例对象 * @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.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.mapper.SysUserMapper;
import com.psdc.service.IPsdcSceneService; import com.psdc.service.IPsdcSceneService;
import com.psdc.utils.SecurityUtils; import com.psdc.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -27,9 +29,15 @@ import static org.springframework.transaction.annotation.Propagation.REQUIRES_NE
@Slf4j @Slf4j
@Service @Service
public class PsdcSceneServiceImpl implements IPsdcSceneService { public class PsdcSceneServiceImpl implements IPsdcSceneService {
@Autowired @Resource
private PsdcSceneMapper psdcSceneMapper; 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) { public Boolean insert(PsdcSceneRes scenes) {
Date date = new Date(); Date date = new Date();
long timestamp = getSecondTimestampTwo(date); long timestamp = getSecondTimestampTwo(date);
String userName = sysUserMapper.selectUserById(scenes.getUserId()).getUserName();
List<SceneVo> scenesList = new ArrayList<>(); List<SceneVo> scenesList = new ArrayList<>();
for (DeviceVo dev : scenes.getDeviceVos()) { for (DeviceVo dev : scenes.getDeviceVos()) {
if (null != dev.getIntemp() && !"".equals(dev.getIntemp())) { if (null != dev.getIntemp() && !"".equals(dev.getIntemp())) {
@ -58,51 +67,13 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
} }
} }
try { try {
for (SceneVo sc : scenesList) { for (SceneVo sc : scenesList) {
sc.setSceneCode(timestamp); sc.setSceneCode(timestamp);
sc.setUserId(scenes.getUserId()); sc.setUserId(scenes.getUserId());
} sc.setCreateBy(userName);
psdcSceneMapper.InsertSceneData(scenesList); sc.setCreateTime(scenes.getCreateTime());
return true; sc.setSceneRemark(scenes.getSceneRemark());
} 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);
} }
psdcSceneMapper.InsertSceneData(scenesList); psdcSceneMapper.InsertSceneData(scenesList);
return true; return true;
@ -127,9 +98,36 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
*/ */
@Override @Override
@Transactional(propagation = REQUIRES_NEW) @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 { 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; return true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -202,10 +200,14 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
for (PsdcSceneRes psr : sceneRes) { for (PsdcSceneRes psr : sceneRes) {
Long code = psr.getSceneCode(); Long code = psr.getSceneCode();
List<SceneVo> listByCode = new ArrayList<>(); List<SceneVo> listByCode = new ArrayList<>();
for (SceneVo sv : list) { if (null != sceneCode && 0 != sceneCode){
if (code == sv.getSceneCode()) { // 判断是否为同个策略 for (SceneVo sv : list) {
listByCode.add(sv); if (code == sv.getSceneCode()) { // 判断是否为同个策略
listByCode.add(sv);
}
} }
} else {
listByCode = psdcSceneMapper.findSceneByUserAndSceneCode(userId, code, sceneName);
} }
List<DeviceVo> ary = new ArrayList<>(); List<DeviceVo> ary = new ArrayList<>();
Integer deviceId = listByCode.get(0).getDeviceId(); Integer deviceId = listByCode.get(0).getDeviceId();

@ -47,10 +47,10 @@
</insert> </insert>
<insert id="InsertSceneData" parameterType="com.psdc.entity.vo.SceneVo" useGeneratedKeys="true"> <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 Values
<foreach collection="sceneRecord" item="entity" separator=","> <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> </foreach>
</insert> </insert>
@ -61,24 +61,29 @@
<if test="item.sceneName != null and item.sceneName != ''"> <if test="item.sceneName != null and item.sceneName != ''">
`scene_name`= #{item.sceneName}, `scene_name`= #{item.sceneName},
</if> </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 != ''"> <if test="item.sceneContext != null and item.sceneContext != ''">
`scene_context` = #{item.sceneContext}, `scene_context` = #{item.sceneContext},
</if> </if>
<if test="item.sceneKey != null and item.sceneKey != ''">
`scene_key` = ${item.sceneKey},
</if>
<if test="item.sceneValue != null and item.sceneValue != ''"> <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> </if>
</set> </set>
<where> <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> </where>
</foreach> </foreach>
</update> </update>

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

Loading…
Cancel
Save