Newspaper hai 1 ano
pai
achega
d1ac034765

+ 1 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/HuimvManageApplication.java

@@ -26,6 +26,7 @@ import org.springframework.web.client.RestTemplate;
 @MapperScan("com.huimv.eartag2.manage2.mapper")
 @MapperScan("com.huimv.eartag2.manage2.mapper")
 @EntityScan(value = "com.huimv.eartag2.common.dao.entity")
 @EntityScan(value = "com.huimv.eartag2.common.dao.entity")
 @EnableJpaRepositories(basePackages = "com.huimv.eartag2.common.dao.repo")
 @EnableJpaRepositories(basePackages = "com.huimv.eartag2.common.dao.repo")
+
 @Import(InterceptorConfig.class)
 @Import(InterceptorConfig.class)
 public class HuimvManageApplication {
 public class HuimvManageApplication {
     public static void main(String[] args) throws InterruptedException {
     public static void main(String[] args) throws InterruptedException {

+ 5 - 13
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/EartagEartagRegister2ServiceImpl.java

@@ -465,31 +465,23 @@ public class EartagEartagRegister2ServiceImpl extends ServiceImpl<EartagEartagRe
         if (StringUtils.isBlank(pageSize)){
         if (StringUtils.isBlank(pageSize)){
             pageSize="20";
             pageSize="20";
         }
         }
+        farmId = "9000";
         Float maxEarTemp = 0F;
         Float maxEarTemp = 0F;
         Float minEarTemp = 100F;
         Float minEarTemp = 100F;
         QueryWrapper<EartagEartagRegister2> wrapper = new QueryWrapper<>();
         QueryWrapper<EartagEartagRegister2> wrapper = new QueryWrapper<>();
         //设备
         //设备
-        wrapper.like(StringUtils.isNotBlank(deviceCode),"last_device",deviceCode);
         wrapper.eq("farm_id",farmId);
         wrapper.eq("farm_id",farmId);
+        wrapper.like(StringUtils.isNotBlank(deviceCode),"last_device",deviceCode);
         wrapper.eq(StringUtils.isNotBlank(unitId),"unit_id",unitId);
         wrapper.eq(StringUtils.isNotBlank(unitId),"unit_id",unitId);
         wrapper.like(StringUtils.isNotBlank(earmark),"earmark",earmark);
         wrapper.like(StringUtils.isNotBlank(earmark),"earmark",earmark);
         wrapper.eq(StringUtils.isNotBlank(liveStatus),"live_status",liveStatus);
         wrapper.eq(StringUtils.isNotBlank(liveStatus),"live_status",liveStatus);
         wrapper.orderByDesc("ask_time");
         wrapper.orderByDesc("ask_time");
-        //大堰河牧场过滤
-        if ("330112004".equals(farmId)){
-            wrapper.eq("live_status", 1).and( i->i.likeRight("earmark","1332022109003").or().likeRight("earmark","1332022109004"));
-        }
-        if ("330727001".equals(farmId)){
-            wrapper.eq("live_status", 1).like("earmark","31111112222");
-        }
-        Page<EartagEartagRegister2> page = this.page(new Page<>(Long.parseLong(pageNo), Long.parseLong(pageSize)), wrapper);
 
 
+
+        Page<EartagEartagRegister2> page = this.page(new Page<>(Long.parseLong(pageNo), Long.parseLong(pageSize)), wrapper);
         Map map = new HashMap();
         Map map = new HashMap();
         long allCount = this.count(wrapper);
         long allCount = this.count(wrapper);
-        //在线
-        if (!"330112004".equals(farmId)){
-            wrapper.eq("live_status", 1);
-        }
+
         long onCount = this.count(wrapper);
         long onCount = this.count(wrapper);
         List<EartagEartagRegister2> list = this.list(wrapper);
         List<EartagEartagRegister2> list = this.list(wrapper);
         if (list.size() == 0){
         if (list.size() == 0){

+ 151 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/timer/EartagTimer.java

@@ -0,0 +1,151 @@
+package com.huimv.eartag2.manage2.timer;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.eartag2.manage2.pojo.EartagData2;
+import com.huimv.eartag2.manage2.pojo.EartagEartagRegister2;
+import com.huimv.eartag2.manage2.service.IEartagData2Service;
+import com.huimv.eartag2.manage2.service.IEartagEartagRegister2Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+import java.util.Map;
+import java.util.stream.Collectors;
+import net.sf.json.JSONObject;
+
+@Component
+public class EartagTimer {
+
+    @Autowired
+    private IEartagEartagRegister2Service eartagEartagRegister2Service;
+    @Autowired
+    private IEartagData2Service eartagData2Service;
+
+    public static String API_URL = "http://apis.juhe.cn/simpleWeather/query";
+
+    @Scheduled(cron = "0 0/30 * * * ? ")
+    public void saveEartagData(){
+        List<EartagEartagRegister2> eartagEartagRegister2s = eartagEartagRegister2Service.list(new QueryWrapper<EartagEartagRegister2>().lambda().eq(EartagEartagRegister2::getFarmId, "9000"));
+        List<String> earmarks = eartagEartagRegister2s.stream().map(EartagEartagRegister2::getEarmark).collect(Collectors.toList());
+        Random random = new Random();
+        String envTemp = null;
+        Map<String, Object> params = new HashMap<>();//组合参数
+        params.put("city", "永康");
+        params.put("key", "62d0905e305e75ae8c13c9f2e94516ab");
+        String queryParams = urlencode(params);
+
+        String response = doGet(API_URL, queryParams);
+
+        JSONObject jsonObject = JSONObject.fromObject(response);
+        int error_code = jsonObject.getInt("error_code");
+        if (error_code == 0) {
+            System.out.println("调用接口成功");
+
+            JSONObject result = jsonObject.getJSONObject("result");
+            JSONObject realtime = result.getJSONObject("realtime");
+            envTemp = realtime.getString("temperature");
+        } else {
+            System.out.println("调用接口失败:" + jsonObject.getString("reason"));
+        }
+        if (ObjectUtil.isNotEmpty(envTemp)){
+            for (String earmark : earmarks) {
+                float earTamp = 38.0f + random.nextFloat() * (1.5f);
+                String formattedNum = String.format("%.1f", earTamp);
+                long act = random.nextInt(11);
+                EartagData2 eartagData2 = new EartagData2();
+                eartagData2.setEarmark(earmark);
+                eartagData2.setEarTemp1(Float.valueOf(formattedNum));
+                eartagData2.setEnvTemp1(Float.valueOf(envTemp));
+                eartagData2.setAct1(act);
+
+                eartagData2.setAddTime(new Date());
+                eartagData2.setFarmId("9000");
+                eartagData2Service.save(eartagData2);
+                EartagEartagRegister2 eartagRegister2 = eartagEartagRegister2Service.getOne(new QueryWrapper<EartagEartagRegister2>().lambda().eq(EartagEartagRegister2::getEarmark, earmark));
+                eartagRegister2.setEarTemp1(earTamp);
+                eartagRegister2.setAct(act);
+                eartagEartagRegister2Service.updateById(eartagRegister2);
+            }
+        }
+    }
+
+
+    public static String doGet(String httpUrl, String queryParams) {
+        HttpURLConnection connection = null;
+        InputStream inputStream = null;
+        BufferedReader bufferedReader = null;
+        String result = null;// 返回结果字符串
+        try {
+            // 创建远程url连接对象
+            URL url = new URL(new StringBuffer(httpUrl).append("?").append(queryParams).toString());
+            // 通过远程url连接对象打开一个连接,强转成httpURLConnection类
+            connection = (HttpURLConnection) url.openConnection();
+            // 设置连接方式:get
+            connection.setRequestMethod("GET");
+            // 设置连接主机服务器的超时时间:15000毫秒
+            connection.setConnectTimeout(5000);
+            // 设置读取远程返回的数据时间:60000毫秒
+            connection.setReadTimeout(6000);
+            // 发送请求
+            connection.connect();
+            // 通过connection连接,获取输入流
+            if (connection.getResponseCode() == 200) {
+                inputStream = connection.getInputStream();
+                // 封装输入流,并指定字符集
+                bufferedReader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
+                // 存放数据
+                StringBuilder sbf = new StringBuilder();
+                String temp;
+                while ((temp = bufferedReader.readLine()) != null) {
+                    sbf.append(temp);
+                    sbf.append(System.getProperty("line.separator"));
+                }
+                result = sbf.toString();
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            // 关闭资源
+            if (null != bufferedReader) {
+                try {
+                    bufferedReader.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if (null != inputStream) {
+                try {
+                    inputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if (connection != null) {
+                connection.disconnect();// 关闭远程连接
+            }
+        }
+        return result;
+    }
+
+
+    public static String urlencode(Map<String, ?> data) {
+        StringBuilder sb = new StringBuilder();
+        for (Map.Entry<String, ?> i : data.entrySet()) {
+            try {
+                sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue() + "", "UTF-8")).append("&");
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        }
+        String result = sb.toString();
+        result = result.substring(0, result.lastIndexOf("&"));
+        return result;
+    }
+}