From 327267727c36cef76ee554e1ad97099180cd4f13 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Tue, 13 Jul 2021 09:08:37 +0800
Subject: [PATCH] screen-manage                  单位转换信息添加缓存

---
 screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java |   22 ++
 screen-api/src/main/java/com/moral/api/websocket/SingleDeviceServer.java              |   17 +-
 screen-manage/src/main/java/com/moral/api/util/CacheUtils.java                        |   10 +
 screen-api/src/main/java/com/moral/api/service/UnitConversionService.java             |   16 ++
 screen-manage/src/main/java/com/moral/api/controller/TestController.java              |   12 +
 screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java           |    2 
 screen-api/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java              |   12 -
 screen-api/src/main/java/com/moral/api/entity/UnitConversion.java                     |   74 ++++++++++
 screen-manage/src/main/java/com/moral/api/service/UnitConversionService.java          |    9 +
 screen-api/src/main/resources/mapper/UnitConversionMapper.xml                         |   17 ++
 screen-api/src/main/java/com/moral/api/mapper/UnitConversionMapper.java               |   16 ++
 screen-api/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java    |   20 ++
 screen-common/src/main/java/com/moral/constant/RedisConstants.java                    |    6 
 screen-api/src/main/java/com/moral/api/kafka/consumer/SecondDataConsumer.java         |   18 ++
 screen-api/src/main/resources/application-local.yml                                   |  119 +++++++++++++++++
 15 files changed, 344 insertions(+), 26 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/entity/UnitConversion.java b/screen-api/src/main/java/com/moral/api/entity/UnitConversion.java
new file mode 100644
index 0000000..962842d
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/entity/UnitConversion.java
@@ -0,0 +1,74 @@
+package com.moral.api.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-07-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class UnitConversion extends Model<UnitConversion> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ������
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * ���������������
+     */
+    private String originalUnitKey;
+
+    /**
+     * ���������������
+     */
+    private Integer targetUnitKey;
+
+    /**
+     * ������������
+     */
+    private String formula;
+
+    /**
+     * ������null������������������������������������������code���������������������������������������
+     */
+    private String sensorCode;
+
+    /**
+     * ������������
+     */
+    private Date createTime;
+
+    /**
+     * ������������
+     */
+    private Date updateTime;
+
+    /**
+     * ������������
+     */
+    private String isDelete;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java b/screen-api/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
index af6c8cc..fc0e81c 100644
--- a/screen-api/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
+++ b/screen-api/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
@@ -1,13 +1,7 @@
 package com.moral.api.kafka.consumer;
 
-import com.moral.api.constant.TopicConstants;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.kafka.clients.consumer.ConsumerRecord;
-import org.springframework.kafka.annotation.KafkaListener;
-import org.springframework.kafka.support.Acknowledgment;
 import org.springframework.stereotype.Component;
-
-import java.util.Random;
 
 @Component
 @Slf4j
@@ -27,11 +21,5 @@
             log.info(String.format("kafka ������������������---------------- listen1 topic = %s, offset = %d, value = %s ", record.topic(), record.offset(), record.value()));
             ack.acknowledge();
         }
-
     }*/
-
-
-
-
-
 }
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 63edfa1..49ac907 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
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.moral.api.entity.Device;
 import com.moral.api.entity.Sensor;
+import com.moral.api.entity.UnitConversion;
 import com.moral.api.websocket.SingleDeviceServer;
 import org.apache.kafka.clients.consumer.Consumer;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
@@ -10,6 +11,7 @@
 import org.springframework.kafka.annotation.KafkaListener;
 import org.springframework.kafka.listener.ConsumerSeekAware;
 import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
 
 import java.util.HashMap;
 import java.util.List;
@@ -30,7 +32,6 @@
     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
@@ -44,9 +45,21 @@
             List<Sensor> sensors = device.getVersion().getSensors();//������������������������������
             for (Sensor sensor : sensors) {
                 String code = sensor.getCode();
-                String showUnit = sensor.getShowUnit();
+                String showUnitKey = sensor.getShowUnitKey();
+                String unitKey = sensor.getUnitKey();
+                //������������
                 //������������
+                if(!unitKey.equals(showUnitKey)){
+                    String formula = sensor.getFormula();
+                    if(ObjectUtils.isEmpty(formula)){
+                        List<UnitConversion> unitConversions = socket.getUnitConversions();
+                        System.out.println(unitConversions);
+                    }else{
+
+                    }
+                }
                 //������������
+                String showUnit = sensor.getShowUnit();
                 String value = message.get(code);
                 value+=showUnit;
                 resultMessgae.put(sensor.getCode(),value);
@@ -72,3 +85,4 @@
 
     }
 }
+
diff --git a/screen-api/src/main/java/com/moral/api/mapper/UnitConversionMapper.java b/screen-api/src/main/java/com/moral/api/mapper/UnitConversionMapper.java
new file mode 100644
index 0000000..b990f04
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/mapper/UnitConversionMapper.java
@@ -0,0 +1,16 @@
+package com.moral.api.mapper;
+
+import com.moral.api.entity.UnitConversion;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * ��������������� Mapper ������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-07-12
+ */
+public interface UnitConversionMapper extends BaseMapper<UnitConversion> {
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/UnitConversionService.java b/screen-api/src/main/java/com/moral/api/service/UnitConversionService.java
new file mode 100644
index 0000000..58a7af6
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/UnitConversionService.java
@@ -0,0 +1,16 @@
+package com.moral.api.service;
+
+import com.moral.api.entity.UnitConversion;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * ��������������� ���������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-07-12
+ */
+public interface UnitConversionService extends IService<UnitConversion> {
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java
new file mode 100644
index 0000000..cfe384d
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java
@@ -0,0 +1,20 @@
+package com.moral.api.service.impl;
+
+import com.moral.api.entity.UnitConversion;
+import com.moral.api.mapper.UnitConversionMapper;
+import com.moral.api.service.UnitConversionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * ��������������� ���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-07-12
+ */
+@Service
+public class UnitConversionServiceImpl extends ServiceImpl<UnitConversionMapper, UnitConversion> implements UnitConversionService {
+
+}
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 7419fbf..748efc3 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
@@ -2,6 +2,7 @@
 
 import com.moral.api.entity.Device;
 import com.moral.api.entity.Sensor;
+import com.moral.api.entity.UnitConversion;
 import com.moral.constant.RedisConstants;
 import lombok.Data;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -30,22 +31,25 @@
     //���������������������������������server������
     public static CopyOnWriteArraySet<SingleDeviceServer> sockets = new CopyOnWriteArraySet<>();
 
+    public static RedisTemplate redisTemplate;
+
     private Session session;
 
     private String mac;
 
-    public static RedisTemplate redisTemplate;
+    private Map<String, Device> devicesInfo;
 
-    private  Map<String,Device> devicesInfo;
+    private List<UnitConversion> unitConversions;
 
     @OnOpen
     public void onOpen(Session session, @PathParam("mac") String mac) throws Exception {
         this.session = session;
         this.mac = mac;
         this.devicesInfo = redisTemplate.opsForHash().entries(RedisConstants.DEVICE_INFO);
+        this.unitConversions = redisTemplate.opsForList().range(RedisConstants.UNIT_CONVERSION, 0, -1);
         sockets.add(this);
         System.out.println(mac);
-    }
+}
 
     @OnClose
     public void onClose() {
@@ -63,11 +67,10 @@
 
     public void sendMessage(String message) throws Exception {
         if (this.session.isOpen()) {
-            synchronized (session) {
-                this.session.getBasicRemote().sendText(message);
-            }
+            //  synchronized (session) {
+            this.session.getBasicRemote().sendText(message);
+            // }
         }
     }
-
 
 }
diff --git a/screen-api/src/main/resources/application-local.yml b/screen-api/src/main/resources/application-local.yml
new file mode 100644
index 0000000..23c69e1
--- /dev/null
+++ b/screen-api/src/main/resources/application-local.yml
@@ -0,0 +1,119 @@
+server:
+  port: 8081
+  tomcat:
+    uri-encoding: UTF-8
+    #���������������
+    min-spare-threads: 500
+    #���������������
+    max-threads: 2500
+    #���������������
+    max-connections: 6500
+    #������������������������
+    accept-count: 1000
+spring:
+  profiles:
+    active: dev
+  application:
+    name: screen-manage
+  redis:
+    host: r-bp1xdlb9wfc6zt0msppd.redis.rds.aliyuncs.com
+    port: 6379
+    password: moral_123456
+    timeout: 30000
+    jedis:
+      pool:
+        max-active: 256
+        max-wait: 30000
+        max-idle: 64
+        min-idle: 32
+    lettuce:
+      pool:
+        max-active: 256
+        max-idle: 64
+        max-wait: 30000
+        min-idle: 32
+  tokenRedis:
+    host: r-bp1xdlb9wfc6zt0msppd.redis.rds.aliyuncs.com
+    port: 6379
+    password: moral_123456
+    timeout: 30000
+    database: 15
+    pool:
+      max-active: 256
+      max-wait: 30000
+      max-idle: 64
+      min-idle: 32
+
+  datasource:
+    minIdle: 1
+    time-between-eviction-runs-millis: 60000
+    max-active: 20
+    test-while-idle: true
+    validation-query: select 'x'
+    filters: stat
+    type: com.alibaba.druid.pool.DruidDataSource
+    max-wait: 60000
+    url: jdbc:mysql://rm-bp1pr3rx9m3fnkwsk8o.mysql.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+    username: root
+    password: moral_123456
+    test-on-borrow: false
+    sql-script-encoding: utf-8
+    pool-prepared-statements: true
+    min-evictable-idle-time-millis: 300000
+    initial-size: 1
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    max-conn-lifetime-millis: 20
+    test-on-return: false
+
+mybatis-plus:
+  mapper-locations: classpath:mapper/*.xml
+  global-config:
+    db-config:
+      id-type: auto
+      field-strategy: NOT_EMPTY
+      db-type: MYSQL
+  configuration:
+    map-underscore-to-camel-case: true
+    call-setters-on-nulls: true
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+kafka:
+  listener:
+    ack-mode: manual_immediate
+  consumer:
+    auto:
+      offset:
+        reset: latest
+    concurrency: 3
+    enable:
+      auto:
+        commit: false
+    servers: 47.99.145.48:9092,47.111.116.38:9092,47.111.124.159:9092
+    session:
+      timeout: 6000
+    zookeeper:
+      connect: 47.99.145.48:2181,47.111.116.38:2181,47.111.124.159:2181
+  producer:
+    batch:
+      size: 4096
+    buffer:
+      memory: 40960
+    linger: 1
+    retries: 0
+    servers: 47.99.145.48:9092,47.111.116.38:9092,47.111.124.159:9092
+mvc:
+  interceptor:
+    exclude:
+      - /login
+      - /swagger-ui.html
+      - /swagger-resources/**
+      - /swagger-ui.html/**
+      - /webjars/**
+      - /verificationCode/**
+
+AES:
+  KEY:
+    AD42F7787B035B7580000EF93BE20BAD
+TOKEN:
+  KEY:
+    foh3wi2ooghiCh5
\ No newline at end of file
diff --git a/screen-api/src/main/resources/mapper/UnitConversionMapper.xml b/screen-api/src/main/resources/mapper/UnitConversionMapper.xml
new file mode 100644
index 0000000..d1c7248
--- /dev/null
+++ b/screen-api/src/main/resources/mapper/UnitConversionMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.moral.api.mapper.UnitConversionMapper">
+
+        <!-- ������������������������ -->
+        <resultMap id="BaseResultMap" type="com.moral.api.entity.UnitConversion">
+                    <id column="id" property="id" />
+                    <result column="original_unit_key" property="originalUnitKey" />
+                    <result column="target_unit_key" property="targetUnitKey" />
+                    <result column="formula" property="formula" />
+                    <result column="sensor_code" property="sensorCode" />
+                    <result column="create_time" property="createTime" />
+                    <result column="update_time" property="updateTime" />
+                    <result column="is_delete" property="isDelete" />
+        </resultMap>
+
+</mapper>
\ No newline at end of file
diff --git a/screen-common/src/main/java/com/moral/constant/RedisConstants.java b/screen-common/src/main/java/com/moral/constant/RedisConstants.java
index 4066f8f..40ad154 100644
--- a/screen-common/src/main/java/com/moral/constant/RedisConstants.java
+++ b/screen-common/src/main/java/com/moral/constant/RedisConstants.java
@@ -58,5 +58,11 @@
      * */
     public static final String AQI_DATA = "aqi_data";
 
+    /*
+    * ������������������
+    * ������������List<UnitConversion>
+    * */
+    public static final String UNIT_CONVERSION = "unit_conversion";
+
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/controller/TestController.java b/screen-manage/src/main/java/com/moral/api/controller/TestController.java
index 8178082..43b908a 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/TestController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/TestController.java
@@ -4,12 +4,14 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.moral.api.entity.Sensor;
 import com.moral.api.entity.Test;
+import com.moral.api.entity.UnitConversion;
 import com.moral.api.service.SensorService;
 import com.moral.api.service.TestService;
 import com.moral.api.service.impl.SensorServiceImpl;
 import com.moral.api.util.CacheUtils;
 import com.moral.constant.Constants;
 import com.moral.constant.KafkaConstants;
+import com.moral.constant.RedisConstants;
 import com.moral.constant.ResultMessage;
 import com.moral.redis.RedisUtil;
 import com.moral.util.PageResult;
@@ -22,6 +24,7 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.kafka.core.KafkaTemplate;
 import org.springframework.web.bind.annotation.*;
 
@@ -42,6 +45,9 @@
 
     @Resource
     private TestService testService;
+
+    @Autowired
+    RedisTemplate redisTemplate;
 
     /**
      * name   ������
@@ -206,4 +212,10 @@
         }
     }
 
+    @GetMapping("test")
+    public void test(){
+        List<UnitConversion> range = redisTemplate.opsForList().range(RedisConstants.UNIT_CONVERSION, 0, -1);
+        System.out.println(range);
+    }
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java b/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
index 4d1f804..c257205 100644
--- a/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
+++ b/screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
@@ -20,7 +20,7 @@
 import com.moral.constant.KafkaConstants;
 import com.moral.constant.RedisConstants;
 
-@Component
+//@Component
 @Slf4j
 public class KafkaConsumer {
 
diff --git a/screen-manage/src/main/java/com/moral/api/service/UnitConversionService.java b/screen-manage/src/main/java/com/moral/api/service/UnitConversionService.java
index 4da67ea..51b2d38 100644
--- a/screen-manage/src/main/java/com/moral/api/service/UnitConversionService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/UnitConversionService.java
@@ -55,4 +55,13 @@
             */
     UnitConversionDTO deleteUnitConversion(UnitConversionDeleteForm form);
 
+    /**
+    * @Description: ������������������
+            * @Param: []
+            * @return: void
+            * @Author: ���������
+            * @Date: 2021/7/12
+            */
+    void refreshCache();
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java
index 75593af..408c168 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java
@@ -18,9 +18,11 @@
 import com.moral.api.service.UnitConversionService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.constant.Constants;
+import com.moral.constant.RedisConstants;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.util.ConvertUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
@@ -44,6 +46,8 @@
     UnitConversionMapper unitConversionMapper;
     @Autowired
     SysDictDataService sysDictDataService;
+    @Autowired
+    RedisTemplate redisTemplate;
 
     @Override
     @Transactional
@@ -76,6 +80,8 @@
         }
         //������������
         unitConversionMapper.insert(unitConversion);
+        //������������
+        refreshCache();
         //������������������
         dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
@@ -153,6 +159,8 @@
         oldUnitConversion = unitConversionMapper.selectOne(oldWrapper);
         //������
         unitConversionMapper.updateById(unitConversion);
+        //������������
+        refreshCache();
         //������������������
         dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
@@ -177,15 +185,21 @@
         deleteWrapper.set("is_delete", Constants.DELETE);
         deleteWrapper.eq("id", id);
         unitConversionMapper.update(null, deleteWrapper);
+        //������������
+        refreshCache();
         //������������������
         dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
         return dto;
     }
 
-    public static void main(String[] args) {
-        int[] array = new int[]{1,2,3,4,5,};
-        String s = JSON.toJSONString(array);
-        System.out.println(s);
+    /*������������*/
+    @Override
+    public void refreshCache(){
+        redisTemplate.delete((RedisConstants.UNIT_CONVERSION));
+        QueryWrapper<UnitConversion> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_delete",Constants.NOT_DELETE);
+        List<UnitConversion> unitConversions = unitConversionMapper.selectList(queryWrapper);
+        redisTemplate.opsForList().leftPushAll(RedisConstants.UNIT_CONVERSION,unitConversions);
     }
 }
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 62c0b4f..f8e27ee 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
@@ -7,6 +7,7 @@
 import com.moral.api.mapper.UnitConversionMapper;
 import com.moral.api.service.SensorService;
 import com.moral.api.service.SysDictDataService;
+import com.moral.api.service.UnitConversionService;
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
 import com.moral.util.TokenUtils;
@@ -40,6 +41,11 @@
     private static UnitConversionMapper unitConversionMapper;
 
     private static SensorService sensorService;
+
+    private static UnitConversionService unitConversionService;
+
+    @Autowired
+    public void setUnitConversionService(UnitConversionService unitConversionService){CacheUtils.unitConversionService = unitConversionService;}
 
     @Autowired
     public void setSensorService(SensorService sensorService) {
@@ -123,4 +129,8 @@
     public static void refreshDicTypeAndData(){
 
     }
+
+    public static void refreshUnitConversion(){
+        unitConversionService.refreshCache();
+    }
 }

--
Gitblit v1.8.0