screen-manage
添加websocket实时界面
| | |
| | | // 全局配置 |
| | | 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); |
| | |
| | | // 数据源配置 |
| | | 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"); |
| | |
| | | * @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); |
| | |
| | | |
| | | private String mac; |
| | | |
| | | |
| | | |
| | | @OnOpen |
| | | public void onOpen(Session session, @PathParam("mac") String mac) throws Exception { |
| | | this.session = session; |
| | |
| | | @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(); |
| | | |
| | |
| | | Map<String, Object> getSensorByFuzzy(Map map); |
| | | |
| | | Map<String, Sensor> getAllSensorFromCache(); |
| | | |
| | | void refreshCache(); |
| | | } |
| | |
| | | */ |
| | | Map<String,SysDictData> getDictDatasByType(String type); |
| | | |
| | | /** |
| | | * @Description: 刷新字典类型缓存 |
| | | * @Param: [] |
| | | * @return: void |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/6/28 |
| | | */ |
| | | void refreshCache(); |
| | | |
| | | } |
| | |
| | | */ |
| | | SysDictType getDictTypeById(Integer id); |
| | | |
| | | /** |
| | | * @Description: 刷新缓存 |
| | | * @Param: [] |
| | | * @return: void |
| | | * @Author: 陈凯裕 |
| | | * @Date: 2021/6/28 |
| | | */ |
| | | void refreshCache(); |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | //设备信息存入redis |
| | | setDeviceInfoToRedis(mac, deviceInfo); |
| | | //刷新deviceInfo缓存 |
| | | CacheUtils.flushDeviceAlarmInfo(); |
| | | CacheUtils.refreshDeviceAlarmInfo(); |
| | | //操作日志记录 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | StringBuilder content = new StringBuilder(); |
| | |
| | | Integer orgId = device.getOrganizationId(); |
| | | deleteOrganizationUnitAlarm(orgId, versionId); |
| | | //刷新deviceInfo缓存 |
| | | CacheUtils.flushDeviceAlarmInfo(); |
| | | CacheUtils.refreshDeviceAlarmInfo(); |
| | | //操作日志记录 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | StringBuilder content = new StringBuilder(); |
| | |
| | | //设备信息存入redis |
| | | setDeviceInfoToRedis(mac, deviceInfo); |
| | | //刷新deviceInfo缓存 |
| | | CacheUtils.flushDeviceAlarmInfo(); |
| | | CacheUtils.refreshDeviceAlarmInfo(); |
| | | //操作日志记录 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | StringBuilder content = new StringBuilder(); |
| | |
| | | //获取更新后的记录用于插入日志 |
| | | OrganizationUnitAlarm newRecord = organizationUnitAlarmMapper.selectById(organizationUnitAlarm.getId()); |
| | | //刷新deviceInfo缓存 |
| | | CacheUtils.flushDeviceAlarmInfo(); |
| | | CacheUtils.refreshDeviceAlarmInfo(); |
| | | //封装返回对象 |
| | | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | |
| | | 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()+";"; |
| | |
| | | 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); |
| | |
| | | result.put(sensor.getCode(),sensor); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private void refreshCache(){ |
| | | Map<String, Sensor> sensors = getAllSensorFromDB(); |
| | | refreshCache(sensors); |
| | | } |
| | | |
| | | private void refreshCache(Map<String,Sensor> sensors){ |
| | |
| | | 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()); |
| | |
| | | } |
| | | //执行更新 |
| | | sysDictDataMapper.updateById(sysDictData); |
| | | //清除缓存 |
| | | CacheUtils.clearDictionariesCache(); |
| | | //刷新缓存 |
| | | refreshCache(); |
| | | //封装返回结果 |
| | | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | |
| | | } |
| | | //执行插入 |
| | | sysDictDataMapper.insert(sysDictData); |
| | | //清除缓存 |
| | | CacheUtils.clearDictionariesCache(); |
| | | //刷新缓存 |
| | | refreshCache(); |
| | | //封装返回结果 |
| | | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | |
| | | 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:数据集合 |
| | |
| | | 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()); |
| | |
| | | sysDictTypeMapper.updateById(type); |
| | | //获取更新后的对象 |
| | | SysDictType sysDictType = sysDictTypeMapper.selectById(type.getId()); |
| | | //清除缓存 |
| | | CacheUtils.clearDictionariesCache(); |
| | | //刷新缓存 |
| | | refreshCache(); |
| | | //封装返回对象 |
| | | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | |
| | | } |
| | | //插入类型 |
| | | sysDictTypeMapper.insert(sysDictType); |
| | | //清除缓存 |
| | | CacheUtils.clearDictionariesCache(); |
| | | //刷新缓存 |
| | | refreshCache(); |
| | | //封装返回对象 |
| | | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | |
| | | return sysDictTypes; |
| | | } |
| | | |
| | | @Override |
| | | public void refreshCache(){ |
| | | redisTemplate.delete(RedisConstants.DICT_TYPE_KEY); |
| | | List<SysDictType> types = getAllDictTypeFromDB(); |
| | | redisTemplate.opsForValue().set(RedisConstants.DICT_TYPE_KEY,types); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | 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; |
| | |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | | return dto; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @Transactional |
| | | public VersionDTO update(VersionUpdateForm form) { |
| | |
| | | organizationUnitAlarmMapper.insert(organizationUnitAlarm); |
| | | } |
| | | } |
| | | //刷新deviceInfo缓存 |
| | | CacheUtils.refreshDeviceAlarmInfo(); |
| | | //封装返回结果 |
| | | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | |
| | | 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); |
| | | //重新添加缓存 |
| | |
| | | //存入redis |
| | | redisTemplate.opsForHash().putAll(RedisConstants.DEVICE_INFO,result); |
| | | } |
| | | |
| | | public static void refreshSensor(){ |
| | | sensorService.refreshCache(); |
| | | } |
| | | |
| | | public static void refreshDicTypeAndData(){ |
| | | |
| | | } |
| | | } |
| | |
| | | <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" /> |
| | |
| | | <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" /> |