yang 3 tahun lalu
induk
melakukan
0630dba2e2

+ 1 - 2
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/GetPicture.java

@@ -16,7 +16,6 @@ import org.apache.http.impl.client.HttpClients;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
-
 import javax.net.ssl.SSLContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -25,10 +24,10 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
-
 import static com.huimv.video.dhicc.icc.CommonConstant.IPAndPort;
 
 
+
 @RestController
 @RequestMapping("/picture")
 public class GetPicture {

+ 87 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/timmer/SysTelcomEnentTimmer.java

@@ -0,0 +1,87 @@
+package com.huimv.video.dhicc.timmer;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huimv.video.dhicc.entity.SysTelecom;
+import com.huimv.video.dhicc.entity.SysTelecomEvent;
+import com.huimv.video.dhicc.mapper.SysTelecomMapper;
+import com.huimv.video.dhicc.service.ISysTelecomEventService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+//主要用来生产烘干数据的 时间拿时间
+@Component
+public class SysTelcomEnentTimmer {
+    @Autowired
+    private SysTelecomMapper sysTelecomMapper;
+
+    @Autowired
+    private ISysTelecomEventService sysTelecomEventService;
+
+       //每小时执行一次
+       @Scheduled(cron = " 0 */59 * * * ? ")
+       private void updateBox() {
+           //获得设备列表 查找烘干数据
+           SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+           LambdaQueryWrapper<SysTelecom> lambdaQueryWrapper =
+                   new LambdaQueryWrapper<>();
+           lambdaQueryWrapper
+                   .select(SysTelecom::getDeviceId);
+           List<String> collect = sysTelecomMapper.selectObjs(lambdaQueryWrapper).stream().map(o -> (String) o).collect(Collectors.toList());
+           //System.out.println(collect);
+           for (String deviceId : collect) {
+               Calendar TimeDeviceId = Calendar.getInstance();
+               TimeDeviceId.setTime(new Date());
+               TimeDeviceId.add(Calendar.HOUR, -3);
+               Date began1time = TimeDeviceId.getTime();
+               String startTime1 = format.format(began1time);
+               String endTime1 = format.format(new Date());
+               LambdaQueryWrapper<SysTelecom> wrapper = Wrappers.lambdaQuery();
+                   wrapper.eq(SysTelecom::getDeviceId, deviceId);
+                   wrapper.eq(SysTelecom::getFarmId, 1);
+                   wrapper.between(SysTelecom::getTimestamp, startTime1, endTime1);
+               List<SysTelecom> sysTelecoms = sysTelecomMapper.selectList(wrapper);//System.out.println(sysTelecoms);
+               for (SysTelecom sysTelecom : sysTelecoms) {
+                    if( Double.parseDouble(sysTelecom.getTemp())>50){
+                       // System.out.println("温度"+sysTelecom.getTemp()+sysTelecom.getDeviceId()+sysTelecom.getTimestamp());
+                        //产生时间段
+                        Calendar eventTime = Calendar.getInstance();
+                        eventTime.setTime(sysTelecom.getTimestamp());
+                        eventTime.add(Calendar.MINUTE, -60);
+                        Date began = eventTime.getTime();
+                        String EventStartTime = format.format(began);
+                        eventTime.add(Calendar.MINUTE, +110);
+                        Date EventEndTime1 = eventTime.getTime();
+                        String EventEndTime = format.format(EventEndTime1);
+                        //查询在大于50摄氏度这条记录的 前60分钟 后60分钟  时间里,有没有存储过报警事件  有就放弃  没有就加一条
+                        int count = sysTelecomEventService.count(Wrappers.<SysTelecomEvent>lambdaQuery()
+                                .eq(SysTelecomEvent::getDeviceId,sysTelecom.getDeviceId())
+                                .eq(SysTelecomEvent::getFarmId,sysTelecom.getFarmId())
+                                .between(SysTelecomEvent::getEventTime, EventStartTime, EventEndTime));
+                       // System.out.println("插结果"+count);
+                        if(count==0){
+                           // System.out.println("保存了一条");
+                            SysTelecomEvent sysTelecomEvent = new SysTelecomEvent();
+                            sysTelecomEvent.setDeviceId(sysTelecom.getDeviceId());
+                            sysTelecomEvent.setEventTime(sysTelecom.getTimestamp());
+                            sysTelecomEvent.setEventId(sysTelecom.getId());
+                            sysTelecomEvent.setFarmId(sysTelecom.getFarmId());
+                            sysTelecomEvent.setRemark(sysTelecom.getTemp());
+                            sysTelecomEventService.save(sysTelecomEvent);
+                        }
+                       // System.out.println("抛弃");
+                    }
+               }
+           }
+       }
+
+
+}