Jelajahi Sumber

完善opc展示页面

hfxc226 2 tahun lalu
induk
melakukan
942b554f47

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/dto/remote/RemoteOpcDTO.java

@@ -11,6 +11,7 @@ import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * @Description opc点位 对应表DTO
@@ -116,6 +117,10 @@ public class RemoteOpcDTO extends BaseDTO implements Serializable {
      */
     @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
     private String id;
+    /**
+     * 前端勾选的ID
+     */
+    private List<String> ids;
     /**
      * 设备id
      */

+ 6 - 0
platform-dao/src/main/resources/mapper/remote/RemoteOpcMapper.xml

@@ -149,6 +149,12 @@
             or opc.position_num like concat(concat('%',#{keyword}),'%')
             )
         </if>
+        <if test="ids != null">
+            AND opc.id in
+            <foreach item="item" index="index" collection="ids" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
     </sql>
     <select id="selectList" parameterType="com.platform.dao.dto.remote.RemoteOpcDTO"
             resultType="com.platform.dao.vo.query.remote.RemoteOpcVO">

+ 17 - 6
platform-rest/src/main/java/com/platform/rest/controller/remote/RemoteOpcController.java

@@ -11,6 +11,7 @@ import com.platform.common.validation.group.AddGroup;
 import com.platform.common.validation.group.UpdateGroup;
 import com.platform.dao.dto.remote.RemoteOpcDTO;
 import com.platform.dao.entity.remote.RemoteOpc;
+import com.platform.dao.enums.YesNoEnum;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.export.remote.ExportRemoteOpcVO;
 import com.platform.dao.vo.query.remote.RemoteOpcVO;
@@ -23,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -35,10 +37,6 @@ import java.util.List;
 @AllArgsConstructor
 @RequestMapping("/remote/opcs")
 public class RemoteOpcController {
-    // 待采集点位列表
-    private static String redis_opc_wait_add_list = "redis_opc_wait_add_list";
-    // 待撤销点位列表
-    private static String redis_opc_wait_remove_list = "redis_opc_wait_remove_list";
     private final RemoteOpcService remoteMeasureService;
 
     /**
@@ -101,7 +99,20 @@ public class RemoteOpcController {
     @PutMapping("/group/add/{positionNum}")
     @PreAuthorize("@pms.hasPermission('remote-opcs-edit')")
     public R addGroup(@PathVariable("positionNum") String positionNum) {
-        RedisUtils.setListOne(redis_opc_wait_add_list, positionNum);
+        remoteMeasureService.addToGroup(positionNum);
+        return new R<>("已加入待采集列表,10秒后自动采集");
+    }
+
+    /**
+     * 批量加入采集分组
+     *
+     * @return R
+     */
+    @SysLog("点位加入采集分组")
+    @PutMapping("/group/addAll")
+    @PreAuthorize("@pms.hasPermission('remote-opcs-edit')")
+    public R addGroupAll(RemoteOpcDTO remoteMeasureDTO) {
+        remoteMeasureService.addAllToGroup(remoteMeasureDTO);
         return new R<>("已加入待采集列表,10秒后自动采集");
     }
 
@@ -115,7 +126,7 @@ public class RemoteOpcController {
     @PutMapping("/group/del/{positionNum}")
     @PreAuthorize("@pms.hasPermission('remote-opcs-edit')")
     public R removeGroup(@PathVariable("positionNum") String positionNum) {
-        RedisUtils.setListOne(redis_opc_wait_remove_list, positionNum);
+        RedisUtils.setListOne(RedisKeyConstants.redis_opc_wait_remove_list, positionNum);
         return new R<>("已加入待撤销列表,10秒后自动取消采集");
     }
 

+ 4 - 0
platform-service/src/main/java/com/platform/service/remote/RemoteOpcService.java

@@ -65,4 +65,8 @@ public interface RemoteOpcService extends IBaseService<RemoteOpc, RemoteOpcDTO>
     void updateIds(List<String> ids, Integer updateType, Integer value);
 
     RemoteOpc getModelByPositionNumAndLine(String positionNum, String line);
+
+    void addAllToGroup(RemoteOpcDTO remoteMeasureDTO);
+
+    void addToGroup(String positionNum);
 }

+ 27 - 0
platform-service/src/main/java/com/platform/service/remote/impl/RemoteOpcServiceImpl.java

@@ -3,6 +3,7 @@ package com.platform.service.remote.impl;
 import com.alibaba.fastjson.JSON;
 import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.constant.RedisKeyConstants;
 import com.platform.common.enums.DictTypeEnum;
 import com.platform.common.exception.BusinessException;
 import com.platform.common.util.RedisUtils;
@@ -30,7 +31,9 @@ import tk.mybatis.mapper.weekend.WeekendCriteria;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description 设备遥测对应表 service 实现类
@@ -254,6 +257,30 @@ public class RemoteOpcServiceImpl extends BaseServiceImpl<RemoteOpcMapper, Remot
         return mapper.selectOneByExample(weekend);
     }
 
+
+    @Override
+    public void addToGroup(String positionNum) {
+        RemoteOpc remoteOpc = this.selectByPositionNum(positionNum);
+        if(remoteOpc != null){
+            updateIds(Arrays.asList(remoteOpc.getId()), 2, YesNoEnum.YES.getValue());
+            RedisUtils.setListOne(RedisKeyConstants.redis_opc_wait_add_list, positionNum);
+        }
+    }
+
+    @Override
+    public void addAllToGroup(RemoteOpcDTO remoteMeasureDTO) {
+        remoteMeasureDTO.setCreatedFlag(YesNoEnum.NO.getValue());
+        List<RemoteOpcVO> voList = mapper.selectList(remoteMeasureDTO);
+        List<String> positionNums = voList.stream().map(item -> item.getPositionNum()).collect(Collectors.toList());
+        List<String> ids = voList.stream().map(item -> item.getId()).collect(Collectors.toList());
+        if(!CollectionUtils.isEmpty(positionNums)){
+            updateIds(ids, 2, YesNoEnum.YES.getValue());
+            RedisUtils.setList(RedisKeyConstants.redis_opc_wait_add_list, positionNums);
+        }else{
+            throw new BusinessException("无待配置点位");
+        }
+    }
+
     public static void main(String[] args) {
         for (int i = 0; i < 100; i++) {
             System.out.println((int) ((Math.random() * 6) + 1));