From 0aea8bd18daaaf91e622fdcfdd81dbb2e1b4860c Mon Sep 17 00:00:00 2001
From: swb <jpy123456>
Date: Mon, 21 Oct 2024 09:01:18 +0800
Subject: [PATCH] fix:立行立改责任主体修改提交

---
 screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java |  173 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 115 insertions(+), 58 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
index 6962fd1..d281aa0 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -7,9 +7,11 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.moral.api.entity.*;
 import com.moral.api.mapper.*;
+import com.moral.api.pojo.redisBean.SpecialDeviceInfoDTO;
 import com.moral.api.pojo.vo.device.DeviceVO;
 import com.moral.api.service.SpecialDeviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.util.AdjustDataUtils;
 import com.moral.api.util.CacheUtils;
 import com.moral.api.util.LogUtils;
 import com.moral.constant.Constants;
@@ -69,28 +71,31 @@
     @Autowired(required = false)
     private VersionSensorUnitMapper versionSensorUnitMapper;
 
+    @Autowired(required = false)
+    private GovMonitorPointMapper govMonitorPointMapper;
+
     @Autowired
-    private LogUtils logUtils;
+    private AdjustDataUtils adjustDataUtils;
 
     /*
      * ���redis������������������
      * */
-    private Map<String, Object> getDeviceInfoFromRedis(String mac) {
-        return (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE, mac);
+    private SpecialDeviceInfoDTO getDeviceInfoFromRedis(String mac) {
+        return (SpecialDeviceInfoDTO) redisTemplate.opsForHash().get(RedisConstants.SPECIAL_DEVICE, mac);
     }
 
     /*
      * ������������������redis
      */
-    private void setDeviceInfoToRedis(String mac, Map<String, Object> deviceInfo) {
-        redisTemplate.opsForHash().put(RedisConstants.DEVICE, mac, deviceInfo);
+    private void setDeviceInfoToRedis(String mac, SpecialDeviceInfoDTO specialDeviceInfoDTO) {
+        redisTemplate.opsForHash().put(RedisConstants.SPECIAL_DEVICE, mac, specialDeviceInfoDTO);
     }
 
     /*
      * ���redis������������������
      */
     private void delDeviceInfoFromRedis(String mac) {
-        redisTemplate.opsForHash().delete(RedisConstants.DEVICE, mac);
+        redisTemplate.opsForHash().delete(RedisConstants.SPECIAL_DEVICE, mac);
     }
 
     @Override
@@ -125,6 +130,20 @@
             String updateTime = SDF.format(specialDevice.getUpdateTime());
             specialDeviceMap.put("createTime",createTime);
             specialDeviceMap.put("updateTime",updateTime);
+            Map<String,Object> govMonitorPointMap = new HashMap<>();
+            if (!ObjectUtils.isEmpty(specialDevice.getGuid()) && specialDevice.getGuid()!=null && !"".equals(specialDevice.getGuid())){
+                String  guid = specialDevice.getGuid().toString();
+                QueryWrapper<GovMonitorPoint> wapper_govMonitorPoint = new QueryWrapper<>();
+                wapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE);
+                wapper_govMonitorPoint.eq("guid",guid);
+                GovMonitorPoint govMonitorPoint = govMonitorPointMapper.selectOne(wapper_govMonitorPoint);
+                if (!ObjectUtils.isEmpty(govMonitorPoint)){
+                    govMonitorPointMap.put("id",govMonitorPoint.getId());
+                    govMonitorPointMap.put("guid",govMonitorPoint.getGuid());
+                    govMonitorPointMap.put("name",govMonitorPoint.getName());
+                }
+            }
+            specialDeviceMap.put("govMonitorPoint",govMonitorPointMap);
             List<Map<String,Object>> operateList = new ArrayList<>();
             if (!ObjectUtils.isEmpty(specialDevice.getOperateIds()) && specialDevice.getOperateIds()!=null){
                 String operateIds = specialDevice.getOperateIds();
@@ -267,7 +286,7 @@
             HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
             StringBuilder content = new StringBuilder();
             content.append("������������������������������������").append(insertSpecialDeviceHistory.getName()).append(":").append("mac���").append(insertSpecialDeviceHistory.getMac());
-            logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
+            LogUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
         }else {
             /*UpdateWrapper<SpecialDeviceHistory> wrapper_insertSpecialDeviceHistory = new UpdateWrapper<>();
             wrapper_specialDeviceHistory.eq("is_delete",Constants.NOT_DELETE);
@@ -302,9 +321,10 @@
                 }
 
             }
-            logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+            LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
         }
-        Map<String, Object> deviceInfo = selectDeviceInfoById(specialDevice.getId());
+        //Map<String, Object> deviceInfo = selectDeviceInfoById(specialDevice.getId());
+        SpecialDeviceInfoDTO specialDeviceInfoDTO = selectDeviceInfoDTOById(specialDevice.getId());
         //���������������������������
         insertOrganizationUnitAlarm(specialDevice.getOrganizationId(), specialDevice.getDeviceVersionId());
         //������������������������redis
@@ -312,14 +332,14 @@
         //���redis���������������������
         delDeviceInfoFromRedis(mac1);
         //������������������redis
-        setDeviceInfoToRedis(mac1, deviceInfo);
+        setDeviceInfoToRedis(mac1, specialDeviceInfoDTO);
         //������deviceInfo������
         CacheUtils.refreshSpecialDeviceAlarmInfo();
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
         content.append("������������������������").append(specialDevice.getName()).append(":").append("mac���").append(mac);
-        logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
+        LogUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
         resultMap.put("code", ResponseCodeEnum.SUCCESS.getCode());
         resultMap.put("msg", ResponseCodeEnum.SUCCESS.getMsg());
         return resultMap;
@@ -344,9 +364,9 @@
         }
         //���redis���������������������
         delDeviceInfoFromRedis(oleMac);
-        Map<String, Object> deviceInfo = selectDeviceInfoById(specialDeviceId);
+        SpecialDeviceInfoDTO specialDeviceInfoDTO = selectDeviceInfoDTOById(specialDevice.getId());
         //������������������redis
-        setDeviceInfoToRedis(updateSpecialDevice.getMac(), deviceInfo);
+        setDeviceInfoToRedis(updateSpecialDevice.getMac(), specialDeviceInfoDTO);
         //������deviceInfo������
         CacheUtils.refreshSpecialDeviceAlarmInfo();
         QueryWrapper<SpecialDeviceHistory> wrapper_specialDeviceHistory = new QueryWrapper<>();
@@ -365,7 +385,7 @@
             HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
             StringBuilder content = new StringBuilder();
             content.append("������������������������������������").append(updateSpecialDeviceHistory.getName()).append(":").append("mac���").append(updateSpecialDeviceHistory.getMac());
-            logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
+            LogUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
         }else {
             /*UpdateWrapper<SpecialDeviceHistory> wrapper_insertSpecialDeviceHistory = new UpdateWrapper<>();
             wrapper_specialDeviceHistory.eq("is_delete",Constants.NOT_DELETE);
@@ -375,7 +395,7 @@
             //������������������
             HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
             StringBuilder content = new StringBuilder();
-            content.append("������������������������").append(specialDeviceHistory.getId()).append("���");
+            content.append("������������������������������").append(specialDeviceHistory.getId()).append(";");
             Field[] fields = SpecialDevice.class.getDeclaredFields();
             for (Field field : fields) {
                 if (field.getName().equals("id")) {
@@ -392,7 +412,7 @@
                     Object o1 = method.invoke(specialDeviceHistory);
                     Object o2 = method.invoke(updateSpecialDeviceHistory);
                     if (o2 != null) {
-                        content.append(fieldName).append("���").append(o1).append("-->").append(o2).append(":");
+                        content.append(fieldName).append("���").append(o1).append("-->").append(o2).append(";");
                     }
 
                 } catch (Exception e) {
@@ -400,12 +420,12 @@
                 }
 
             }
-            logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+            LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
         }
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
-        content.append("������������������������").append(specialDeviceId).append("���");
+        content.append("������������������������").append(specialDeviceId).append(";");
         Field[] fields = SpecialDevice.class.getDeclaredFields();
         for (Field field : fields) {
             if (field.getName().equals("id")) {
@@ -422,7 +442,7 @@
                 Object o1 = method.invoke(oldSpecialDevice);
                 Object o2 = method.invoke(specialDevice);
                 if (o2 != null) {
-                    content.append(fieldName).append("���").append(o1).append("-->").append(o2).append(":");
+                    content.append(fieldName).append("���").append(o1).append("-->").append(o2).append(";");
                 }
 
             } catch (Exception e) {
@@ -430,7 +450,7 @@
             }
 
         }
-        logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+        LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
     }
 
     @Override
@@ -447,47 +467,63 @@
         Integer orgId = specialDevice.getOrganizationId();
         deleteOrganizationUnitAlarm(orgId, versionId);
         //������deviceInfo������
-        CacheUtils.refreshDeviceAlarmInfo();
+        CacheUtils.refreshSpecialDeviceAlarmInfo();
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
         content.append("������������������").append(specialDevice.getName()).append(";").append("mac���").append(mac);
-        logUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
+        LogUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
     }
 
     @Override
     public Map<String, Object> selectDeviceInfoById(Integer deviceId) {
+        return null;
+    }
+
+    @Override
+    public SpecialDeviceInfoDTO selectDeviceInfoDTOById(Integer deviceId) {
         String mac = specialDeviceMapper.selectById(deviceId).getMac();
-        Map<String, Object> specialDeviceInfo = getDeviceInfoFromRedis(mac);
+        SpecialDeviceInfoDTO specialDeviceInfoDTO = new SpecialDeviceInfoDTO();
+        SpecialDeviceInfoDTO specialDeviceInfoDTORedis = getDeviceInfoFromRedis(mac);
         //������redis������
-        if (specialDeviceInfo != null) {
-            return specialDeviceInfo;
+        if (specialDeviceInfoDTORedis != null) {
+            return specialDeviceInfoDTORedis;
         }
-        specialDeviceInfo = new LinkedHashMap<>();
-        //DeviceVO device = deviceMapper.selectDeviceInfoById(deviceId);
+
+        //������������������������
+        SpecialDevice specialDeviceInfo = new SpecialDevice();
         SpecialDevice specialDevice = specialDeviceMapper.selectById(deviceId);
-        //������
-        specialDeviceInfo.put("id", specialDevice.getId());
-        specialDeviceInfo.put("name", specialDevice.getName());
-        specialDeviceInfo.put("mac", specialDevice.getMac());
-        specialDeviceInfo.put("createTime", DateUtils.dateToDateString(specialDevice.getCreateTime()));
+        System.out.println(specialDevice);
+        /*specialDeviceInfo.setId(specialDevice.getId());
+        specialDeviceInfo.setName(specialDevice.getName());
+        specialDeviceInfo.setMac(specialDevice.getMac());
+        specialDeviceInfo.setCreateTime(specialDevice.getCreateTime());*/
+        specialDeviceInfoDTO.setSpecialDevice(specialDevice);
 
-        //������������
-        //specialDeviceInfo.put("extend", device.getExtend());
+        //������������������������
+        GovMonitorPoint govMonitorPointInfo = new GovMonitorPoint();
+        QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>();
+        wrapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE);
+        wrapper_govMonitorPoint.eq("guid",specialDevice.getGuid());
+        GovMonitorPoint govMonitorPoint = govMonitorPointMapper.selectOne(wrapper_govMonitorPoint);
+        /*govMonitorPointInfo.setId(govMonitorPoint.getId());
+        govMonitorPointInfo.setGuid(govMonitorPoint.getGuid());
+        govMonitorPointInfo.setName(govMonitorPoint.getName());*/
+        specialDeviceInfoDTO.setGovMonitorPoint(govMonitorPoint);
 
-        //������
-        Map<String, Object> versionInfo = new LinkedHashMap<>();
+        //������������������
+        Version versionInfo = new Version();
         Version version = versionMapper.selectById(specialDevice.getDeviceVersionId());
-        versionInfo.put("id", version.getId());
-        versionInfo.put("name", version.getName());
-        specialDeviceInfo.put("version", versionInfo);
+        /*versionInfo.setId(version.getId());
+        versionInfo.setName(version.getName());*/
+        specialDeviceInfoDTO.setVersion(version);
 
-        //���������
-        List<Map<String, Object>> operatorsInfo = new ArrayList<>();
+        //���������������
+        List<ManageAccount> operatorsInfo = new ArrayList<>();
         String operateIds = specialDevice.getOperateIds();
         if (!ObjectUtils.isEmpty(operateIds)){
             String[] operateIdArr = operateIds.split(",");
-            if (operateIdArr.length>0){
+            if (operateIdArr.length > 0){
                 List<Integer> operateIdList = new ArrayList<>();
                 for (int i = 0; i < operateIdArr.length; i++){
                     operateIdList.add(Integer.parseInt(operateIdArr[i]));
@@ -495,26 +531,47 @@
                 QueryWrapper<ManageAccount> wapper_manageAccount = new QueryWrapper<>();
                 wapper_manageAccount.eq("is_delete",Constants.NOT_DELETE);
                 wapper_manageAccount.in("id",operateIdList);
-                List<ManageAccount> manageAccounts = manageAccountMapper.selectList(wapper_manageAccount);
-                for (ManageAccount manageAccount:manageAccounts) {
-                    Map<String,Object> operateMap = new HashMap<>();
-                    operateMap.put("id",manageAccount.getId());
-                    operateMap.put("name",manageAccount.getUserName());
-                    operatorsInfo.add(operateMap);
-                }
+                operatorsInfo = manageAccountMapper.selectList(wapper_manageAccount);
             }
         }
-        specialDeviceInfo.put("operators", operatorsInfo);
+        specialDeviceInfoDTO.setOperates(operatorsInfo);
 
-        //������
-        Map<String, Object> orgInfo = new LinkedHashMap<>();
-        Organization organization = organizationMapper.selectById(specialDevice.getOrganizationId());
-        orgInfo.put("id", organization.getId());
-        orgInfo.put("name", organization.getName());
-        specialDeviceInfo.put("organization", orgInfo);
+        //������������
+        Organization organizationInfo = new Organization();
+        organizationInfo = organizationMapper.selectById(specialDevice.getOrganizationId());
+        specialDeviceInfoDTO.setOrganization(organizationInfo);
 
-        setDeviceInfoToRedis(mac, specialDeviceInfo);
-        return specialDeviceInfo;
+        return specialDeviceInfoDTO;
+    }
+
+    @Override
+    public Map<String, Object> adjustSpecialDeviceData(Map<String, Object> deviceData) {
+//        String mac = deviceData.remove("mac").toString();
+        String mac = deviceData.get("mac").toString();
+        //���redis������������������
+        Map<String, Object> adjustFormula = redisTemplate.opsForHash().entries(RedisConstants.ADJUST + "_" + mac);
+        if (!org.springframework.util.ObjectUtils.isEmpty(adjustFormula)) {
+            SpecialDeviceInfoDTO specialDeviceInfo = getDeviceInfoFromRedis(mac);
+            if (org.springframework.util.ObjectUtils.isEmpty(specialDeviceInfo)) {
+                QueryWrapper<SpecialDevice> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("mac", mac).eq("is_delete", Constants.NOT_DELETE);
+                SpecialDevice specialDevice = specialDeviceMapper.selectOne(queryWrapper);
+                if (specialDevice != null) {
+                    specialDeviceInfo = selectDeviceInfoDTOById(specialDevice.getId());
+                    setDeviceInfoToRedis(mac, specialDeviceInfo);
+                }
+            }
+            //������������������������������������
+            //Map<String, Object> govMpInfo = (Map<String, Object>) specialDeviceInfo.getGovMonitorPoint();
+            Map<String, Object> govMpInfo = JSON.parseObject(JSON.toJSONString(specialDeviceInfo.getGovMonitorPoint()),Map.class);
+            Map<String, Object> aqiMap = null;
+            if (null != govMpInfo && null != govMpInfo.get("guid")) {
+                aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, govMpInfo.get("guid").toString());
+            }
+            return adjustDataUtils.adjust(deviceData, adjustFormula, org.springframework.util.ObjectUtils.isEmpty(aqiMap) ? null : aqiMap,"0");
+        }
+        deviceData.remove("DataTime");
+        return deviceData;
     }
 
     private void insertOrganizationUnitAlarm(Integer orgId, Integer versionId) {

--
Gitblit v1.8.0