From 16500ff805484fb876ff9736d21021b242f1d7cd Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Thu, 01 Jul 2021 09:03:55 +0800 Subject: [PATCH] screen-manage 添加websocket实时界面 --- screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java | 2 screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java | 2 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 6 +- screen.iml | 9 +- screen-manage/src/main/java/com/moral/api/util/CacheUtils.java | 14 +++- screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java | 8 +- screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java | 9 +++ screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java | 13 ++-- screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java | 5 + screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java | 19 ++++-- screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java | 9 +++ screen-manage/src/main/java/com/moral/api/service/SensorService.java | 2 screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java | 19 ++++-- myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java | 4 screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java | 4 + 15 files changed, 86 insertions(+), 39 deletions(-) diff --git a/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java b/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java index 1ace387..10e56d0 100644 --- a/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java +++ b/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java @@ -43,7 +43,7 @@ // ������������ GlobalConfig gc = new GlobalConfig(); //String projectPath = System.getProperty("user.dir"); - String projectPath="D:\\tools\\IdeaProjects\\moral\\screen-job"; + String projectPath="C:\\Users\\cdl\\Desktop\\comProject\\newProject\\moral\\screen-api"; gc.setOutputDir(projectPath + "/src/main/java"); gc.setAuthor("moral"); gc.setOpen(false); @@ -68,7 +68,7 @@ // ��������������� DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://rm-bp1pr3rx9m3fnkwsk8o.mysql.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"); - dsc.setUrl("jdbc:mysql://rm-bp1pr3rx9m3fnkwsk8o.mysql.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai"); + //dsc.setUrl("jdbc:mysql://rm-bp1pr3rx9m3fnkwsk8o.mysql.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("moral_123456"); diff --git a/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java b/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java index 6865acf..54fab17 100644 --- a/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java +++ b/screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java @@ -19,15 +19,17 @@ * @Date 2021/6/15 14:49 * @Version TODO **/ -//@Component +@Component public class SecondDataConsumer implements ConsumerSeekAware { @KafkaListener(topics = "second_data",groupId = "SecondsDataGroup3") public void listen(ConsumerRecord<String, String> record , Consumer consumer) throws Exception { String messageStr = record.value(); Map<String,String> message = (Map<String,String>)JSON.parse(messageStr); + System.out.println(message); CopyOnWriteArraySet<SingleDeviceServer> sockets = SingleDeviceServer.sockets; for (SingleDeviceServer socket : sockets) { + //���������������������������socket socket.sendMessage(message.toString()); } System.out.println(message); diff --git a/screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java b/screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java index fa1a3b3..107357d 100644 --- a/screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java +++ b/screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java @@ -26,6 +26,8 @@ private String mac; + + @OnOpen public void onOpen(Session session, @PathParam("mac") String mac) throws Exception { this.session = session; diff --git a/screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java b/screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java index da7a6e8..e54d163 100644 --- a/screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java +++ b/screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java @@ -20,15 +20,15 @@ @Transactional Map<String, Object> insertOne(DeviceAdjustValue deviceAdjustValue); - Map<String,Object> getDataByCondition(Map map); + Map<String, Object> getDataByCondition(Map map); @Transactional - Map<String,Object> updateOne(Map map); + Map<String, Object> updateOne(Map map); @Transactional - Map<String,Object> deleteOne(Map map); + Map<String, Object> deleteOne(Map map); - Map<String,Object> getTimeSlot(Map map); + Map<String, Object> getTimeSlot(Map map); Map<String,Object> refreshRedis(); diff --git a/screen-manage/src/main/java/com/moral/api/service/SensorService.java b/screen-manage/src/main/java/com/moral/api/service/SensorService.java index c95ad47..3ea51ff 100644 --- a/screen-manage/src/main/java/com/moral/api/service/SensorService.java +++ b/screen-manage/src/main/java/com/moral/api/service/SensorService.java @@ -34,4 +34,6 @@ Map<String, Object> getSensorByFuzzy(Map map); Map<String, Sensor> getAllSensorFromCache(); + + void refreshCache(); } diff --git a/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java b/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java index b7c1f99..7262fab 100644 --- a/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java +++ b/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java @@ -74,4 +74,13 @@ */ Map<String,SysDictData> getDictDatasByType(String type); + /** + * @Description: ������������������������ + * @Param: [] + * @return: void + * @Author: ��������� + * @Date: 2021/6/28 + */ + void refreshCache(); + } diff --git a/screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java b/screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java index fe7d376..c36517c 100644 --- a/screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java +++ b/screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java @@ -74,6 +74,15 @@ */ SysDictType getDictTypeById(Integer id); + /** + * @Description: ������������ + * @Param: [] + * @return: void + * @Author: ��������� + * @Date: 2021/6/28 + */ + void refreshCache(); + } diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java index f3d42c9..6e0e9b3 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java @@ -123,7 +123,7 @@ //������������������redis setDeviceInfoToRedis(mac, deviceInfo); //������deviceInfo������ - CacheUtils.flushDeviceAlarmInfo(); + CacheUtils.refreshDeviceAlarmInfo(); //������������������ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); StringBuilder content = new StringBuilder(); @@ -146,7 +146,7 @@ Integer orgId = device.getOrganizationId(); deleteOrganizationUnitAlarm(orgId, versionId); //������deviceInfo������ - CacheUtils.flushDeviceAlarmInfo(); + CacheUtils.refreshDeviceAlarmInfo(); //������������������ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); StringBuilder content = new StringBuilder(); @@ -182,7 +182,7 @@ //������������������redis setDeviceInfoToRedis(mac, deviceInfo); //������deviceInfo������ - CacheUtils.flushDeviceAlarmInfo(); + CacheUtils.refreshDeviceAlarmInfo(); //������������������ HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); StringBuilder content = new StringBuilder(); diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java index 1a8aa11..31078ec 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java @@ -78,7 +78,7 @@ //������������������������������������������ OrganizationUnitAlarm newRecord = organizationUnitAlarmMapper.selectById(organizationUnitAlarm.getId()); //������deviceInfo������ - CacheUtils.flushDeviceAlarmInfo(); + CacheUtils.refreshDeviceAlarmInfo(); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java index a8323c5..953468c 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java @@ -141,7 +141,7 @@ organizationUnitAlarm.setSensorCode(updateSensorMap.get("code").toString()); organizationUnitAlarmMapper.update(organizationUnitAlarm,wrapper_OUA); //������deviceInfo������ - CacheUtils.flushDeviceAlarmInfo(); + CacheUtils.refreshDeviceAlarmInfo(); } HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String content = "������������:"+oldSensor.getName()+";"; @@ -359,6 +359,12 @@ return sensors; } + @Override + public void refreshCache(){ + Map<String, Sensor> sensors = getAllSensorFromDB(); + refreshCache(sensors); + } + private Map<String,Sensor> getAllSensorFromDB(){ QueryWrapper<Sensor> wrapper = new QueryWrapper<>(); wrapper.eq("is_delete",Constants.NOT_DELETE); @@ -368,11 +374,6 @@ result.put(sensor.getCode(),sensor); } return result; - } - - private void refreshCache(){ - Map<String, Sensor> sensors = getAllSensorFromDB(); - refreshCache(sensors); } private void refreshCache(Map<String,Sensor> sensors){ diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java index 78aaf42..20efc91 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java @@ -61,8 +61,8 @@ deleteWrapper.set("is_delete", Constants.DELETE); deleteWrapper.eq("id", id); sysDictDataMapper.update(null, deleteWrapper); - //������������ - CacheUtils.clearDictionariesCache(); + //������������ + refreshCache(); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -95,8 +95,8 @@ } //������������ sysDictDataMapper.updateById(sysDictData); - //������������ - CacheUtils.clearDictionariesCache(); + //������������ + refreshCache(); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -136,8 +136,8 @@ } //������������ sysDictDataMapper.insert(sysDictData); - //������������ - CacheUtils.clearDictionariesCache(); + //������������ + refreshCache(); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -188,6 +188,13 @@ return result; } + @Override + public void refreshCache(){ + redisTemplate.delete(RedisConstants.DICT_DATA_KEY); + Map<String, List<SysDictData>> datas = getDictDataFromDB(); + redisTemplate.opsForValue().set(RedisConstants.DICT_DATA_KEY, datas); + } + /** * @Description: ������������������������������������������������������������Map Key��������������� value��������������� diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java index a0aa05b..fd27610 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java @@ -72,8 +72,8 @@ deleteDataWrapper.eq("dict_type_id",typeId); deleteDataWrapper.set("is_delete",Constants.DELETE); sysDictDataService.update(null,deleteDataWrapper); - //������������������ - CacheUtils.clearDictionariesCache(); + //������������������ + refreshCache(); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -102,8 +102,8 @@ sysDictTypeMapper.updateById(type); //������������������������ SysDictType sysDictType = sysDictTypeMapper.selectById(type.getId()); - //������������ - CacheUtils.clearDictionariesCache(); + //������������ + refreshCache(); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -129,8 +129,8 @@ } //������������ sysDictTypeMapper.insert(sysDictType); - //������������ - CacheUtils.clearDictionariesCache(); + //������������ + refreshCache(); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -200,5 +200,12 @@ return sysDictTypes; } + @Override + public void refreshCache(){ + redisTemplate.delete(RedisConstants.DICT_TYPE_KEY); + List<SysDictType> types = getAllDictTypeFromDB(); + redisTemplate.opsForValue().set(RedisConstants.DICT_TYPE_KEY,types); + } + } diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java index 69f528d..7af8572 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java @@ -14,6 +14,7 @@ import com.moral.api.pojo.form.version.*; import com.moral.api.service.VersionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.api.util.CacheUtils; import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import com.moral.util.ConvertUtils; @@ -100,7 +101,7 @@ dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } - + @Override @Transactional public VersionDTO update(VersionUpdateForm form) { @@ -265,6 +266,8 @@ organizationUnitAlarmMapper.insert(organizationUnitAlarm); } } + //������deviceInfo������ + CacheUtils.refreshDeviceAlarmInfo(); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); diff --git a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java index 4975afd..62c0b4f 100644 --- a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java +++ b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java @@ -66,12 +66,8 @@ CacheUtils.unitConversionMapper = unitConversionMapper; } - public static void clearDictionariesCache() { - redisTemplate.delete(RedisConstants.DICT_DATA_KEY); - redisTemplate.delete(RedisConstants.DICT_TYPE_KEY); - } - public static void flushDeviceAlarmInfo() { + public static void refreshDeviceAlarmInfo() { //������������ redisTemplate.delete(RedisConstants.DEVICE_INFO); //������������������ @@ -119,4 +115,12 @@ //������redis redisTemplate.opsForHash().putAll(RedisConstants.DEVICE_INFO,result); } + + public static void refreshSensor(){ + sensorService.refreshCache(); + } + + public static void refreshDicTypeAndData(){ + + } } diff --git a/screen.iml b/screen.iml index 5933ffe..c7561d7 100644 --- a/screen.iml +++ b/screen.iml @@ -4,14 +4,17 @@ <output url="file://$MODULE_DIR$/target/classes" /> <output-test url="file://$MODULE_DIR$/target/test-classes" /> <content url="file://$MODULE_DIR$"> - <excludeFolder url="file://$MODULE_DIR$/target" /> + <excludeFolder url="file://$MODULE_DIR$/home" /> <excludeFolder url="file://$MODULE_DIR$/home/moral/soft/log/screen-manage/%d{yyyy-MM-dd}" /> <excludeFolder url="file://$MODULE_DIR$/home/moral/soft/log/screen-manage/2021-06-08" /> <excludeFolder url="file://$MODULE_DIR$/home/moral/soft/log/springAppName_IS_UNDEFINED" /> - <excludeFolder url="file://$MODULE_DIR$/home" /> + <excludeFolder url="file://$MODULE_DIR$/target" /> </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" scope="TEST" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" /> + <orderEntry type="library" scope="TEST" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" /> + <orderEntry type="library" name="Maven: com.googlecode.aviator:aviator:5.2.5" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.13.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.13.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.13.RELEASE" level="project" /> @@ -110,8 +113,6 @@ <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.1.14.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.1.14.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" /> <orderEntry type="library" name="Maven: com.google.code.kaptcha:kaptcha:2.3.2" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.1.13.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.1.14.RELEASE" level="project" /> -- Gitblit v1.8.0