From 4a50bd93dfcdedb85f117d25f89e67291eb65cf7 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Sat, 14 Oct 2023 10:55:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/cjl' into dev

---
 screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java |   93 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 88 insertions(+), 5 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
index add7e7a..9a0f119 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
@@ -4,17 +4,25 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.moral.api.entity.Device;
 import com.moral.api.entity.GovMonitorPoint;
+import com.moral.api.entity.Organization;
 import com.moral.api.entity.SysArea;
+import com.moral.api.exception.BusinessException;
+import com.moral.api.mapper.DeviceMapper;
 import com.moral.api.mapper.GovMonitorPointMapper;
 import com.moral.api.mapper.SysAreaMapper;
+import com.moral.api.service.DeviceService;
 import com.moral.api.service.GovMonitorPointService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.service.OrganizationService;
 import com.moral.api.util.LogUtils;
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
 import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
 import com.moral.util.RegionCodeUtils;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,10 +32,14 @@
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -49,8 +61,14 @@
     @Autowired(required = false)
     private RedisTemplate redisTemplate;
 
-    @Autowired
-    private LogUtils logUtils;
+    @Resource
+    private OrganizationService organizationService;
+
+    @Resource
+    private DeviceService deviceService;
+
+    @Autowired(required = false)
+    private DeviceMapper deviceMapper;
 
     /*
      * ���redis������������������
@@ -154,7 +172,7 @@
             HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
             StringBuilder content = new StringBuilder();
             content.append("������������������������").append("id:").append(govMonitorPoint.getId() + ";").append(govMonitorPoint.getName() + ";").append(":").append("guid���").append(govMonitorPoint.getGuid() + ";");
-            logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
+            LogUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
         }
     }
 
@@ -199,7 +217,54 @@
         if (!ObjectUtils.isEmpty(govMonitorPoint.getDesc())) {
             content.append("desc:").append(oldGovMonitorPoint).append("->").append(govMonitorPoint.getDesc()).append(";");
         }
-        logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+        LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+    }
+
+    @Override
+    @Transactional
+    public void updateList(Integer id, String guid) {
+        ExecutorService executorService = Executors.newFixedThreadPool(2);
+        QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>();
+        wrapper_govMonitorPoint.eq("is_delete", Constants.NOT_DELETE);
+        wrapper_govMonitorPoint.eq("id", id);
+        List<GovMonitorPoint> govMonitorPoints = govMonitorPointMapper.selectList(wrapper_govMonitorPoint);
+        if (govMonitorPoints.size() == 0) {
+            throw new BusinessException("������������������");
+        }
+        GovMonitorPoint govMonitorPoint = govMonitorPoints.get(0);
+        String oldGuid = govMonitorPoint.getGuid();
+        LambdaQueryChainWrapper<Device> wrapper = deviceService.lambdaQuery();
+        wrapper.eq(Device::getIsDelete,0);
+        wrapper.eq(Device::getGuid,oldGuid);
+        List<Device> list = wrapper.list();
+        list.forEach(it->it.setGuid(guid));
+
+        deviceService.updateBatchById(list);
+
+        govMonitorPoint.setGuid(guid);
+        govMonitorPointMapper.updateById(govMonitorPoint);
+        //������redis
+        delGovMonitorPointInfoFromRedis(id.toString());
+        //������redis
+        setGovMonitorPointInfoToRedis(id.toString(), selectGovMonitorPointInfoById(id));
+        //������������������
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        StringBuilder content = new StringBuilder();
+        content.append("������������������������").append("id:").append(govMonitorPoint.getId() + ";");
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getGuid())) {
+            content.append("guid:").append(oldGuid).append("->").append(guid).append(";");
+        }
+        LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+        for(Device d : list){
+            executorService.submit(()->{
+                redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac());
+                Map<String, Object> deviceInfo = deviceService.selectDeviceInfoById(d.getId());
+                redisTemplate.opsForHash().put(RedisConstants.DEVICE, d.getMac(), deviceInfo);
+
+            });
+        }
+        // ���������������
+        executorService.shutdown();
     }
 
     @Override
@@ -213,7 +278,7 @@
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
         content.append("������������������").append("id:").append(id).append(";");
-        logUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
+        LogUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
     }
 
     @Override
@@ -232,4 +297,22 @@
         }
         return govMonitorPointMapper.selectMaps(queryWrapper);
     }
+
+    @Override
+    public List<GovMonitorPoint> selectGovMonitorPointsByOrgid(Map map) {
+        //������������id���������������
+        List<Organization> organizations = organizationService.getAllChildrenOrganization(Integer.parseInt(map.get("organization_id").toString()));
+        Set<Integer> organization_ids = organizations.stream().map(organization -> organization.getId()).collect(Collectors.toSet());
+        //������������������������������
+        QueryWrapper<Device> wrapper_device = new QueryWrapper<>();
+        wrapper_device.in("organization_id",organization_ids).eq("is_delete",Constants.NOT_DELETE);
+        List<Device> devices = deviceMapper.selectList(wrapper_device);
+        //������������������������������id
+        Set<String> guids = devices.stream().map(device -> device.getGuid()).collect(Collectors.toSet());
+        //������������������������������
+        QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>();
+        wrapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE).in("guid",guids);
+        List<GovMonitorPoint> govMonitorPointList = govMonitorPointMapper.selectList(wrapper_govMonitorPoint);
+        return govMonitorPointList;
+    }
 }

--
Gitblit v1.8.0