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