2023-06-16 09:26:45 优化完善策略管理的增、删、改、查接口!

master
魔神煜修罗皇 2 years ago
parent faaf451f55
commit 01ebed3954
  1. 54
      psdc-business/src/main/java/com/psdc/entity/PsdcStrategy.java
  2. 2
      psdc-business/src/main/java/com/psdc/entity/res/PsdcSceneRes.java
  3. 2
      psdc-business/src/main/java/com/psdc/entity/vo/SceneVo.java
  4. 39
      psdc-business/src/main/java/com/psdc/entity/vo/StrategyVo.java
  5. 40
      psdc-business/src/main/java/com/psdc/mapper/PsdcStrategyMapper.java
  6. 8
      psdc-business/src/main/java/com/psdc/service/IPsdcSceneService.java
  7. 64
      psdc-business/src/main/java/com/psdc/service/impl/PsdcSceneServiceImpl.java
  8. 41
      psdc-business/src/main/resources/mapper/business/PsdcStrategyMapper.xml
  9. 18
      psdc-web/src/main/java/com/psdc/controller/manager/PsdcSceneController.java
  10. 5
      psdc-web/src/main/java/com/psdc/controller/monitor/TotalElectricMeterController.java

@ -0,0 +1,54 @@
package com.psdc.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.Date;
/**
* @AuthorStone
* @Projectpsdc
* @FilenamePsdcStrategy
* @Slogan 致敬大师致敬未来的你
* @Date2023/6/15 16:50:24
* @Version 1.0
*/
@Data
@Component
@AllArgsConstructor
@NoArgsConstructor
public class PsdcStrategy implements Serializable,Cloneable{
/** 策略Id */
private Integer strategyId ;
/** 用户Id */
private Long userId ;
/** 策略名称 */
private String strategyName ;
/** 策略码 */
private Long strategyCode ;
/** 所属步骤集合【存储场景步骤策略码】 */
private String scenes ;
/** 策略描述 */
private String strategyInfo ;
/** 创建人 */
private String createBy ;
/** 创建时间 */
private String createTime ;
/** 修改人 */
private String updateBy ;
/** 修改时间 */
private String updateTime ;
public PsdcStrategy(Long userId, String strategyName, Long strategyCode, String scenes, String strategyInfo, String createBy, String createTime) {
this.userId = userId;
this.strategyName = strategyName;
this.strategyCode = strategyCode;
this.scenes = scenes;
this.strategyInfo = strategyInfo;
this.createBy = createBy;
this.createTime = createTime;
}
}

@ -43,7 +43,7 @@ public class PsdcSceneRes {
*/
private List<DeviceVo> deviceVos;
/** 是否有执行判断条件【0:没有;1:有】 */
/** 是否有执行判断条件【2:没有;1:有】 */
private Integer isJudge ;
/** 判断条件设备Id */
private Integer judgeDevice ;

@ -23,7 +23,7 @@ public class SceneVo {
/** 用户id */
private Long userId;
/** 是否有执行判断条件【0:没有;1:有】 */
/** 是否有执行判断条件【2:没有;1:有】 */
private Integer isJudge ;
/** 判断条件设备Id */
private Integer judgeDevice ;

@ -0,0 +1,39 @@
package com.psdc.entity.vo;
import com.psdc.entity.res.PsdcSceneRes;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.List;
/**
* @AuthorStone
* @Projectpsdc
* @FilenamePsdcStrategy
* @Slogan 致敬大师致敬未来的你
* @Date2023/6/15 16:50:24
* @Version 1.0
*/
@Data
@Component
@AllArgsConstructor
@NoArgsConstructor
public class StrategyVo implements Serializable,Cloneable{
/** 策略Id */
private Integer strategyId ;
/** 用户Id */
private Long userId ;
/** 策略名称 */
private String strategyName ;
/** 策略码 */
private Integer strategyCode ;
/** 所属步骤集合 */
private List<PsdcSceneRes> scenesList ;
/** 策略描述 */
private String strategyInfo ;
/** 创建时间 */
private String createTime ;
}

@ -0,0 +1,40 @@
package com.psdc.mapper;
import com.psdc.entity.PsdcScene;
import com.psdc.entity.PsdcStrategy;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Author戴仕崑
* @Projectpsdc
* @FilenamePsdcStrategyMapper
* @Slogan 致敬大师致敬未来的你
* @Date2023/6/15 16:40
* @Version 1.0
*/
@Mapper
@Repository
public interface PsdcStrategyMapper {
/**
* 通过用户ID查询数据
* @param userId 主键
* @return 实例对象
*/
List<PsdcStrategy> queryByUser(@Param("userId") Long userId,
@Param(value = "sceneCode") Long sceneCode);
List<PsdcStrategy> strategyList(@Param(value = "userId") Long userId);
/**
* 新增数据
* @param psdcStrategy 实例对象
* @return 影响行数
*/
Integer insert(PsdcStrategy psdcStrategy);
}

@ -1,8 +1,10 @@
package com.psdc.service;
import com.psdc.entity.PsdcScene;
import com.psdc.entity.PsdcStrategy;
import com.psdc.entity.request.PsdcSceneRequest;
import com.psdc.entity.res.PsdcSceneRes;
import com.psdc.entity.vo.StrategyVo;
import java.util.List;
import java.util.Map;
@ -17,9 +19,11 @@ public interface IPsdcSceneService {
* @param scenes
* @return
*/
Boolean insert(PsdcSceneRes scenes);
Boolean insert(StrategyVo scenes);
List<PsdcScene> sceneList();
List<PsdcStrategy> sceneList();
List<StrategyVo> queryScene(Long strategyCode);
/**
* 更新数据

@ -1,12 +1,14 @@
package com.psdc.service.impl;
import com.psdc.entity.PsdcScene;
import com.psdc.entity.PsdcStrategy;
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.StrategyVo;
import com.psdc.mapper.PsdcModelMapper;
import com.psdc.mapper.PsdcSceneMapper;
import com.psdc.mapper.PsdcStrategyMapper;
import com.psdc.mapper.SysUserMapper;
import com.psdc.service.IPsdcSceneService;
import com.psdc.utils.SecurityUtils;
@ -17,7 +19,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import static org.springframework.transaction.annotation.Propagation.REQUIRES_NEW;
@ -39,6 +40,9 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
@Resource
private PsdcModelMapper psdcModelMapper;
@Resource
private PsdcStrategyMapper psdcStrategyMapper;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -50,25 +54,30 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
* @return Boolean
*/
@Override
public Boolean insert(PsdcSceneRes scenes) {
public Boolean insert(StrategyVo scenes) {
Date date = new Date();
long timestamp = getSecondTimestampTwo(date);
Long userId = SecurityUtils.getUserId();
String userName = SecurityUtils.getUsername();
List<SceneVo> scenesList = new ArrayList<>();
for (DeviceVo dev : scenes.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(scenes.getSceneName(), dev.getDeviceId(), desc, sceneKey, tempValue);
SceneVo sceneVo = new SceneVo(scenes.getSceneName(), timestamp, userId, scenes.getIsJudge(),
scenes.getJudgeDevice(), scenes.getJudgeElement(), scenes.getJudgeData(), dev.getDeviceId(),
desc, sceneKey, tempValue, scenes.getSceneRemark());
scenesList.add(sceneVo);
String s = null;
for (PsdcSceneRes sc : scenes.getScenesList()){
Date date2 = new Date();
long timestamp = getSecondTimestampTwo(date2);
s = timestamp + ",";
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(scenes.getSceneName(), dev.getDeviceId(), desc, sceneKey, tempValue);
SceneVo sceneVo = new SceneVo(sc.getSceneName(), timestamp, userId, sc.getIsJudge(),
sc.getJudgeDevice(), sc.getJudgeElement(), sc.getJudgeData(), dev.getDeviceId(),
desc, sceneKey, tempValue, sc.getSceneRemark());
scenesList.add(sceneVo);
}
}
}
PsdcStrategy strategy = new PsdcStrategy(userId, scenes.getStrategyName(), getSecondTimestampTwo(date), s, scenes.getStrategyInfo(), userName, sdf.format(date));
try {
for (SceneVo sc : scenesList) {
@ -76,6 +85,7 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
sc.setCreateTime(sdf.format(date));
}
psdcSceneMapper.InsertSceneData(scenesList);
psdcStrategyMapper.insert(strategy);
return true;
} catch (Exception e) {
e.printStackTrace();
@ -85,9 +95,29 @@ public class PsdcSceneServiceImpl implements IPsdcSceneService {
}
@Override
public List<PsdcScene> sceneList() {
public List<PsdcStrategy> sceneList() {
Long userId = SecurityUtils.getUserId();
return psdcSceneMapper.sceneList(userId);
return psdcStrategyMapper.strategyList(userId);
}
@Override
public List<StrategyVo> queryScene(Long strategyCode) {
Long userId = SecurityUtils.getUserId();
List<StrategyVo> ary = new ArrayList<>();
List<PsdcStrategy> list = psdcStrategyMapper.queryByUser(userId, strategyCode);
for (PsdcStrategy srt : list){
String[] codes = srt.getScenes().split(",");
List<PsdcSceneRes> list2 = new ArrayList<>();
for (String s : codes){
List<PsdcSceneRes> list3 = findSceneByUserAndSceneName(Long.parseLong(s));
if (null != list3 && list3.size() > 0){
list2.add(list3.get(0));
}
}
StrategyVo strategyVo = new StrategyVo(srt.getStrategyId(), userId, srt.getStrategyName(), Math.toIntExact(srt.getStrategyCode()), list2, srt.getStrategyInfo(), srt.getCreateTime());
ary.add(strategyVo);
}
return ary;
}
/**

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.psdc.mapper.PsdcStrategyMapper">
<resultMap type="com.psdc.entity.PsdcStrategy" id="PsdcStrategyMap">
<result property="strategyId" column="strategy_id" />
<result property="userId" column="user_id" />
<result property="strategyName" column="strategy_name" />
<result property="strategyCode" column="strategy_code" />
<result property="scenes" column="scenes" />
<result property="strategyInfo" column="strategy_info" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<select id="queryByUser" resultMap="PsdcStrategyMap">
Select
strategy_id,user_id,strategy_name,strategy_code,scenes,strategy_info,create_by,create_time,update_by,update_time
From psdc_strategy
<where>
<if test="userId != null and userId != ''">
And user_id = #{userId}
</if>
<if test="sceneCode != null and sceneCode != ''">
And strategy_code = #{sceneCode}
</if>
</where>
Group By strategy_code
</select>
<select id="strategyList" resultMap="PsdcStrategyMap">
SELECT * FROM `psdc_strategy` WHERE user_id = ${userId} Group By strategy_code
</select>
<!--新增数据-->
<insert id="insert" parameterType="com.psdc.entity.PsdcStrategy">
Insert into psdc_strategy(user_id,strategy_name,strategy_code,scenes,strategy_info,create_by,create_time,update_by,update_time)
Values (#{userId},#{strategyName},#{strategyCode},#{scenes},#{strategyInfo},#{createBy},#{createTime},#{updateBy},#{updateTime})
</insert>
</mapper>

@ -8,9 +8,11 @@ import com.psdc.core.domain.AjaxResult;
import com.psdc.core.page.TableDataInfo;
import com.psdc.entity.PsdcDevice;
import com.psdc.entity.PsdcScene;
import com.psdc.entity.PsdcStrategy;
import com.psdc.entity.request.PsdcSceneRequest;
import com.psdc.entity.res.PsdcSceneRes;
import com.psdc.entity.vo.SceneVo;
import com.psdc.entity.vo.StrategyVo;
import com.psdc.enums.BusinessType;
import com.psdc.service.IPsdcSceneService;
import org.springframework.beans.factory.annotation.Autowired;
@ -42,12 +44,12 @@ public class PsdcSceneController extends BaseController {
@RequestMapping(value = "/selMyscene", method = RequestMethod.GET)
public AjaxResult selMyscene() {
List<Map> maps = new ArrayList<>();
List<PsdcScene> list = psdcSceneService.sceneList();
for (PsdcScene dd : list){
List<PsdcStrategy> list = psdcSceneService.sceneList();
for (PsdcStrategy dd : list){
Map<String, Object> map = new HashMap<>();
map.put("label", dd.getSceneName());
map.put("value", dd.getSceneId());
map.put("sceneCode", dd.getSceneCode());
map.put("label", dd.getStrategyName());
map.put("value", dd.getStrategyId());
map.put("sceneCode", dd.getStrategyCode());
maps.add(map);
}
return AjaxResult.success("用户所属策略列表", maps);
@ -56,9 +58,9 @@ public class PsdcSceneController extends BaseController {
@PreAuthorize("@ss.hasPermi('system:cl:list')")
@RequestMapping(value = "/list", method = RequestMethod.POST)
public TableDataInfo list(@RequestBody JSONObject jsonObject) {
// startPage();
startPage();
PsdcSceneRequest sceneVo = myPage(jsonObject, PsdcSceneRequest.class);
List<PsdcSceneRes> list = psdcSceneService.findSceneByUserAndSceneName(sceneVo.getSceneCode());
List<StrategyVo> list = psdcSceneService.queryScene(sceneVo.getSceneCode());
return getDataTable(list);
}
@ -68,7 +70,7 @@ public class PsdcSceneController extends BaseController {
@PreAuthorize("@ss.hasPermi('system:cl:list')")
@Log(title = "策略管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody PsdcSceneRes scenes) {
public AjaxResult add(@Validated @RequestBody StrategyVo scenes) {
return toAjax(psdcSceneService.insert(scenes));
}

@ -103,13 +103,8 @@ public class TotalElectricMeterController {
}
map.put("children", maps2);
maps.add(map);
}
return AjaxResult.success("用户所属设备列表", maps);
}

Loading…
Cancel
Save