Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

Newspaper 1 rok pred
rodič
commit
c30462fd16

+ 2 - 1
huimv-admin/src/main/java/com/huimv/admin/config/InterceptorConfig.java

@@ -27,6 +27,7 @@ public class InterceptorConfig implements WebMvcConfigurer {
                         ,"/huatongApi/energy-data/getData5"
                         ,"/huatongApi/energy-data/getData6"
                         ,"/huatongApi/energy-data/getData7"
-                        ,"/huatongApi/energy-data/getData8");
+                        ,"/huatongApi/energy-data/getData8"
+                        ,"/huatongApi/energy-data/getData9");
     }
 }

+ 21 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/EnergyDataController.java

@@ -256,6 +256,27 @@ public class EnergyDataController {
             iEnergyDataService.save(energyData);
         }
     }
+    @RequestMapping("/getData9")
+    public void getData9(@RequestBody Map<String, List<WaterAndElectricity>> paramsMap) {
+        List<WaterAndElectricity> result = (List) paramsMap.get("result");
+        System.out.println("接受到的数据格式:" + result);
+        for (WaterAndElectricity jsonObject : result) {
+            EnergyData energyData = new EnergyData();
+            energyData.setFeedValue("0.00");
+            energyData.setWaterValue(jsonObject.getWater());
+            energyData.setElectricityValue(jsonObject.getElectricity());
+            energyData.setGasValue("0.00");
+            energyData.setFarmId(23);
+            energyData.setCreateDate(new Date());
+            QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", 23).eq("device_code", jsonObject.getDeviceCode());
+            EnergyEnvDevice device = deviceService.getOne(queryWrapper);
+            if (ObjectUtil.isNotEmpty(device)) {
+                energyData.setUnitId(device.getUnitId());
+            }
+            iEnergyDataService.save(energyData);
+        }
+    }
     @PostMapping("/add")
     public Result add(@RequestBody EnergyData energyData) {
         iEnergyDataService.save(energyData);

+ 1 - 1
huimv-admin/src/main/java/com/huimv/admin/entity/vo/EnvDataVo.java

@@ -5,7 +5,7 @@ import lombok.Data;
 
 @Data
 public class EnvDataVo {
-    private String buildName;
+    private String location;
     private String hum;
     private String temp;
     private String aq;

+ 1 - 1
huimv-admin/src/main/java/com/huimv/admin/service/impl/EnergyDataServiceImpl.java

@@ -598,7 +598,7 @@ public class EnergyDataServiceImpl extends ServiceImpl<EnergyDataMapper, EnergyD
         List<String> list = new ArrayList<>();
         if ("".equals(deviceCode) || null == deviceCode) {
             QueryWrapper<EnergyEnvDevice> queryWrapper1 = new QueryWrapper<>();
-            queryWrapper1.in("farm_id", 26, 29, 22, 28, 21, 33, 34, 35);
+            queryWrapper1.in("farm_id", 26, 29, 22, 28, 21, 33, 34, 35,23);
             if ("1".equals(type)) {
                 queryWrapper1.eq("remark", 1);
             } else {

+ 12 - 17
huimv-admin/src/main/java/com/huimv/admin/service/impl/EnvDeviceServiceImpl.java

@@ -252,6 +252,11 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
 
             QueryWrapper<EnvData> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq("unit_id", id).eq("farm_id", farmId);
+            if (ObjectUtil.isEmpty(basePigpen)) {
+                map.put("location", "");
+            }else {
+                map.put("location", basePigpen.getBuildName());
+            }
 
             //展示某一天
             if ("5".equals(type)) {
@@ -260,7 +265,7 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
                 queryWrapper.between("create_time", startTime, endTime);
                 List<EnvData> envData = dataMapper.listDay2(queryWrapper);
 
-                map.put("location", basePigpen.getBuildName());
+
                 map.put("data", envData);
             }
 
@@ -279,7 +284,7 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
                 Date timesMonthmorning = DataUill.getTimesMonthmorning();
                 queryWrapper.ge("create_time", timesMonthmorning);
                 List<EnvData> envData = dataMapper.listDay(queryWrapper);
-                map.put("location", basePigpen.getBuildName());
+
                 map.put("data", envData);
 
             }
@@ -289,7 +294,7 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
                 calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 7);
                 queryWrapper.ge("create_time", calendar.getTime());
                 List<EnvData> envData = dataMapper.listDay(queryWrapper);
-                map.put("location", basePigpen.getBuildName());
+
                 map.put("data", envData);
             }
             //今日
@@ -297,7 +302,7 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
                 Date timesmorning = DataUill.getTimesmorning();
                 queryWrapper.ge("create_time", timesmorning);
                 List<EnvData> envData = dataMapper.listNow(queryWrapper);
-                map.put("location", basePigpen.getBuildName());
+
                 map.put("data", envData);
             }
         } else {
@@ -480,17 +485,7 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
         List objects = new ArrayList<>();
         if ("0".equals(displayType)) {
             List<EnvDataVo> envDataVos = dataMapper.listPigpenAll(farmId);
-            for (EnvDataVo envDataVo : envDataVos) {
-                JSONObject jsonObject = new JSONObject();
-                jsonObject.put("temp", envDataVo.getTemp());//温度
-                jsonObject.put("hum", envDataVo.getHum());//湿度
-                jsonObject.put("location", envDataVo.getBuildName());
-                jsonObject.put("aq", envDataVo.getAq());
-                jsonObject.put("unit_id", envDataVo.getUnitId());//单元id
-                objects.add(jsonObject);
-            }
-
-            return new Result(ResultCode.SUCCESS, objects);
+            return new Result(ResultCode.SUCCESS, envDataVos);
         } else {
             QueryWrapper<BasePigpen> queryWrapper1 = new QueryWrapper<>();
             queryWrapper1.eq("farm_id", farmId).eq("f_type", 3);
@@ -506,12 +501,12 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
                     jsonObject.put("hum", writeEnvData.getHum());//湿度
                     jsonObject.put("location", basePigpen.getBuildName());
                     jsonObject.put("aq", writeEnvData.getAq());
-                    jsonObject.put("unit_id", basePigpen.getId());//单元id
+                    jsonObject.put("unitId", basePigpen.getId());//单元id
                 } else {
                     jsonObject.put("temp", 0);//温度
                     jsonObject.put("hum", 0);//湿度
                     jsonObject.put("location", basePigpen.getBuildName());
-                    jsonObject.put("unit_id", basePigpen.getId());//单元id
+                    jsonObject.put("unitId", basePigpen.getId());//单元id
                     jsonObject.put("aq", 0);
                 }
                 objects.add(jsonObject);

+ 3 - 3
huimv-admin/src/main/java/com/huimv/admin/service/impl/ProtDataServiceImpl.java

@@ -1002,7 +1002,7 @@ public class ProtDataServiceImpl extends ServiceImpl<ProtDataMapper, ProtData> i
             queryWrapper.eq("farm_id", farmId).eq("type", 1).orderByDesc("create_date").last(" limit 1");
             WriteProtData writeProtData = writeProtDataMapper.selectOne(queryWrapper);
             if (ObjectUtil.isEmpty(writeProtData)) {
-                jsonObject.put("in", 0);
+                jsonObject.put("in", new WriteProtData());
             } else {
                 jsonObject.put("in", writeProtData);
             }
@@ -1011,7 +1011,7 @@ public class ProtDataServiceImpl extends ServiceImpl<ProtDataMapper, ProtData> i
             queryWrapper1.eq("farm_id", farmId).eq("type", 2).orderByDesc("create_date").last(" limit 1");
             WriteProtData writeProtData1 = writeProtDataMapper.selectOne(queryWrapper1);
             if (ObjectUtil.isEmpty(writeProtData1)) {
-                jsonObject.put("deal", 0);
+                jsonObject.put("deal", new WriteProtData());
             } else {
                 jsonObject.put("deal", writeProtData1);
             }
@@ -1020,7 +1020,7 @@ public class ProtDataServiceImpl extends ServiceImpl<ProtDataMapper, ProtData> i
             queryWrapper2.eq("farm_id", farmId).eq("type", 3).orderByDesc("create_date").last(" limit 1");
             WriteProtData writeProtData2 = writeProtDataMapper.selectOne(queryWrapper2);
             if (ObjectUtil.isEmpty(writeProtData2)) {
-                jsonObject.put("out", 0);
+                jsonObject.put("out", new WriteProtData());
             } else {
                 jsonObject.put("out", writeProtData2);
             }

+ 2 - 1
huimv-admin/src/main/java/com/huimv/admin/timer/EnergyTimer.java

@@ -39,7 +39,8 @@ public class EnergyTimer {
     private void getShenChan() throws Exception {
         List<EnergyEnvDevice> energyEnvDevices = deviceMapper.selectList(new QueryWrapper<EnergyEnvDevice>().ne("farm_id",26)
                 .ne("farm_id",29).ne("farm_id",21).ne("farm_id",28).ne("farm_id",27).
-                        ne("farm_id",35).ne("farm_id",33).ne("farm_id",22));
+                        ne("farm_id",35).ne("farm_id",33).ne("farm_id",22).ne("farm_id",23)
+                .ne("farm_id",34));
 
         for (EnergyEnvDevice energyEnvDevice : energyEnvDevices) {
             QueryWrapper<BasePigpen> basePigpenQueryWrapper = new QueryWrapper<>();

+ 147 - 2
huimv-admin/src/main/java/com/huimv/admin/timer/WaterAndElcTimer.java

@@ -908,7 +908,7 @@ public class WaterAndElcTimer {
     }
 
     //百凤林
-/*    @Scheduled(cron = "0 59 * * * ? ")
+    @Scheduled(cron = "0 59 * * * ? ")
     private void getShenChan7() throws Exception {
         QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("farm_id", 34);
@@ -1050,7 +1050,7 @@ public class WaterAndElcTimer {
             }
 
         }
-    }*/
+    }
 
     //瑞溪
     @Scheduled(cron = "0 59 * * * ? ")
@@ -1196,6 +1196,151 @@ public class WaterAndElcTimer {
 
         }
     }
+
+    //浦江
+    @Scheduled(cron = "0 59 * * * ? ")
+    private void getShenChan9() throws Exception {
+        QueryWrapper<EnergyEnvDevice> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", 23);
+        List<EnergyEnvDevice> envDevices = envDeviceMapper.selectList(queryWrapper);
+
+        Date timesmorning = DataUill.getTimesmorning();
+        DateTime dateTime = DateUtil.beginOfWeek(new Date());//本周
+        Date timesMonthmorning = DataUill.getTimesMonthmorning();//本月
+        Date dayStart = (Date) getYesterdayRange().get("startTime");
+        Date dayEnd = (Date) getYesterdayRange().get("stopTime");
+        Date weekStart = (Date) getLastWeekRange().get("startTime");
+        Date weekEnd = (Date) getLastWeekRange().get("stopTime");
+        Date monthStart = (Date) getLastMonthRange().get("startTime");
+        Date monthEnd = (Date) getLastMonthRange().get("stopTime");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+
+        for (EnergyEnvDevice envDevice : envDevices) {
+            EnergyDataScreenVo dataScreenVo = dataMapper.listDataAll(sdf.format(timesmorning), sdf.format(dateTime), sdf.format(timesMonthmorning),
+                    sdf.format(dayStart), sdf.format(dayEnd)
+                    , sdf.format(weekStart), sdf.format(weekEnd)
+                    , sdf.format(monthStart), sdf.format(monthEnd)
+                    , envDevice.getUnitId(), "23");
+
+            QueryWrapper<EnergyScreen> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("farm_id", 23).ge("create_date", timesMonthmorning).eq("device_code", envDevice.getDeviceCode());
+            EnergyScreen energyScreen = screenMapper.selectOne(queryWrapper1);
+
+            if (ObjectUtil.isNotEmpty(energyScreen)) {
+                //说明今天的数据已经存在 后续只需要更新即可
+                if ("1".equals(envDevice.getRemark())) {
+                    //用水
+                    energyScreen.setCreateDate(new Date());
+                    energyScreen.setTodayRead(dataScreenVo.getWaterValueToday());
+                    energyScreen.setTodayConsume(dataScreenVo.getWaterValueTodayUsage());
+                    energyScreen.setYesterdayConsume(dataScreenVo.getWaterValueYesterdayUsage());
+                    energyScreen.setWeekConsume(dataScreenVo.getWaterValueThisWeekUsage());
+                    energyScreen.setLastWeekConsume(dataScreenVo.getWaterValueLastWeekUsage());
+                    energyScreen.setMonthConsume(dataScreenVo.getWaterValueThisMonthUsage());
+                    energyScreen.setLastMonthConsume(dataScreenVo.getWaterValueLastMonthUsage());
+                    double day2 = Double.parseDouble(dataScreenVo.getWaterValueTodayUsage());
+                    double day3 = Double.parseDouble(dataScreenVo.getWaterValueYesterdayUsage());
+                    double week1 = Double.parseDouble(dataScreenVo.getWaterValueThisWeekUsage());
+                    double week2 = Double.parseDouble(dataScreenVo.getWaterValueLastWeekUsage());
+                    double month1 = Double.parseDouble(dataScreenVo.getWaterValueThisMonthUsage());
+                    double month2 = Double.parseDouble(dataScreenVo.getWaterValueLastMonthUsage());
+                    DecimalFormat def = new DecimalFormat("0.00");
+                    String day4 = def.format(day2 - day3);
+                    String week3 = def.format(week1 - week2);
+                    String month3 = def.format(month1 - month2);
+                    energyScreen.setDayDifference(day4);
+                    energyScreen.setWeekDifference(week3);
+                    energyScreen.setMonthDifference(month3);
+                } else {
+                    //用电
+                    energyScreen.setCreateDate(new Date());
+                    energyScreen.setTodayRead(dataScreenVo.getElectricityValueToday());
+                    energyScreen.setTodayConsume(dataScreenVo.getElectricityValueTodayUsage());
+                    energyScreen.setYesterdayConsume(dataScreenVo.getElectricityValueYesterdayUsage());
+                    energyScreen.setWeekConsume(dataScreenVo.getElectricityValueThisWeekUsage());
+                    energyScreen.setLastWeekConsume(dataScreenVo.getElectricityValueLastWeekUsage());
+                    energyScreen.setMonthConsume(dataScreenVo.getElectricityValueThisMonthUsage());
+                    energyScreen.setLastMonthConsume(dataScreenVo.getElectricityValueLastMonthUsage());
+                    double day2 = Double.parseDouble(dataScreenVo.getElectricityValueTodayUsage());
+                    double day3 = Double.parseDouble(dataScreenVo.getElectricityValueYesterdayUsage());
+                    double week1 = Double.parseDouble(dataScreenVo.getElectricityValueThisWeekUsage());
+                    double week2 = Double.parseDouble(dataScreenVo.getElectricityValueLastWeekUsage());
+                    double month1 = Double.parseDouble(dataScreenVo.getElectricityValueThisMonthUsage());
+                    double month2 = Double.parseDouble(dataScreenVo.getElectricityValueLastMonthUsage());
+                    DecimalFormat def = new DecimalFormat("0.00");
+                    String day4 = def.format(day2 - day3);
+                    String week3 = def.format(week1 - week2);
+                    String month3 = def.format(month1 - month2);
+                    energyScreen.setDayDifference(day4);
+                    energyScreen.setWeekDifference(week3);
+                    energyScreen.setMonthDifference(month3);
+                }
+                screenMapper.updateById(energyScreen);
+            }else {
+                //添加一天的第一条数据
+                EnergyScreen screen = new EnergyScreen();
+                if ("1".equals(envDevice.getRemark())) {
+                    //添加用水
+                    screen.setCreateDate(new Date());
+                    screen.setTodayRead(dataScreenVo.getWaterValueToday());
+                    screen.setTodayConsume(dataScreenVo.getWaterValueTodayUsage());
+                    screen.setYesterdayConsume(dataScreenVo.getWaterValueYesterdayUsage());
+                    screen.setWeekConsume(dataScreenVo.getWaterValueThisWeekUsage());
+                    screen.setLastWeekConsume(dataScreenVo.getWaterValueLastWeekUsage());
+                    screen.setMonthConsume(dataScreenVo.getWaterValueThisMonthUsage());
+                    screen.setLastMonthConsume(dataScreenVo.getWaterValueLastMonthUsage());
+                    double day2 = Double.parseDouble(dataScreenVo.getWaterValueTodayUsage());
+                    double day3 = Double.parseDouble(dataScreenVo.getWaterValueYesterdayUsage());
+                    double week1 = Double.parseDouble(dataScreenVo.getWaterValueThisWeekUsage());
+                    double week2 = Double.parseDouble(dataScreenVo.getWaterValueLastWeekUsage());
+                    double month1 = Double.parseDouble(dataScreenVo.getWaterValueThisMonthUsage());
+                    double month2 = Double.parseDouble(dataScreenVo.getWaterValueLastMonthUsage());
+                    DecimalFormat def = new DecimalFormat("0.00");
+                    String day4 = def.format(day2 - day3);
+                    String week3 = def.format(week1 - week2);
+                    String month3 = def.format(month1 - month2);
+                    screen.setDayDifference(day4);
+                    screen.setWeekDifference(week3);
+                    screen.setMonthDifference(month3);
+                    screen.setFarmId(23);
+                    screen.setBuildName(envDevice.getUnitName());
+                    screen.setDeviceCode(envDevice.getDeviceCode());
+                    screen.setType(1);
+                    screen.setFarmName("华统股份浦江智慧牧场");
+                } else {
+                    screen.setCreateDate(new Date());
+                    screen.setTodayRead(dataScreenVo.getElectricityValueToday());
+                    screen.setTodayConsume(dataScreenVo.getElectricityValueTodayUsage());
+                    screen.setYesterdayConsume(dataScreenVo.getElectricityValueYesterdayUsage());
+                    screen.setWeekConsume(dataScreenVo.getElectricityValueThisWeekUsage());
+                    screen.setLastWeekConsume(dataScreenVo.getElectricityValueLastWeekUsage());
+                    screen.setMonthConsume(dataScreenVo.getElectricityValueThisMonthUsage());
+                    screen.setLastMonthConsume(dataScreenVo.getElectricityValueLastMonthUsage());
+                    double day2 = Double.parseDouble(dataScreenVo.getElectricityValueTodayUsage());
+                    double day3 = Double.parseDouble(dataScreenVo.getElectricityValueYesterdayUsage());
+                    double week1 = Double.parseDouble(dataScreenVo.getElectricityValueThisWeekUsage());
+                    double week2 = Double.parseDouble(dataScreenVo.getElectricityValueLastWeekUsage());
+                    double month1 = Double.parseDouble(dataScreenVo.getElectricityValueThisMonthUsage());
+                    double month2 = Double.parseDouble(dataScreenVo.getElectricityValueLastMonthUsage());
+                    DecimalFormat def = new DecimalFormat("0.00");
+                    String day4 = def.format(day2 - day3);
+                    String week3 = def.format(week1 - week2);
+                    String month3 = def.format(month1 - month2);
+                    screen.setDayDifference(day4);
+                    screen.setWeekDifference(week3);
+                    screen.setMonthDifference(month3);
+                    screen.setFarmId(23);
+                    screen.setBuildName(envDevice.getUnitName());
+                    screen.setDeviceCode(envDevice.getDeviceCode());
+                    screen.setType(2);
+                    screen.setFarmName("华统股份浦江智慧牧场");
+                }
+                screenMapper.insert(screen);
+            }
+
+        }
+    }
     /**
      * 获取上周开始时间和结束时间
      */

+ 1 - 1
huimv-admin/src/main/resources/com/huimv/admin/mapper/EnvDataMapper.xml

@@ -39,7 +39,7 @@
 
     <select id="listPigpenAll" resultType="com.huimv.admin.entity.vo.EnvDataVo">
  SELECT
-    bp.build_name buildName,
+    bp.build_name location,
     COALESCE(ed.env_temp,0) temp,
      COALESCE(ed.env_hum,0) hum,
      COALESCE(ed.unit_id,0) unitId,

+ 10 - 0
huimv-receive/pom.xml

@@ -119,6 +119,16 @@
             <version>0.1.54</version>
         </dependency>
         <dependency>
+            <groupId>org.bytedeco</groupId>
+            <artifactId>javacv-platform</artifactId>
+            <version>1.5.7</version>
+        </dependency>
+        <dependency>
+            <groupId>ws.schild</groupId>
+            <artifactId>jave-nativebin-linux64</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+        <dependency>
             <groupId>org.jxls</groupId>
             <artifactId>jxls</artifactId>
             <version>2.6.0</version>

+ 106 - 0
huimv-receive/src/main/java/com/huimv/receive/common/utils/UploadImage.java

@@ -3,6 +3,10 @@ package com.huimv.receive.common.utils;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.UUID;
 import com.jcraft.jsch.*;
+import org.bytedeco.ffmpeg.avcodec.AVCodec;
+import org.bytedeco.javacv.FFmpegFrameGrabber;
+import org.bytedeco.javacv.FFmpegFrameRecorder;
+import org.bytedeco.javacv.Frame;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.util.StringUtils;
@@ -12,6 +16,7 @@ import javax.imageio.ImageIO;
 import java.awt.*;
 import java.awt.image.BufferedImage;
 import java.io.*;
+import java.nio.file.Files;
 import java.util.Date;
 
 @Component
@@ -178,6 +183,107 @@ public class UploadImage {
         }
     }
 
+    //上传压缩的视频
+    public  String getVideoCom(MultipartFile video) throws IOException {
+        String originalFilename = video.getOriginalFilename();
+        String filenameExtension = StringUtils.getFilenameExtension(originalFilename);
+        String path = DateUtil.format(new Date(), "yyyy-MM");
+        try {
+            InputStream inputStream = video.getInputStream();
+            BufferedInputStream in = new BufferedInputStream(inputStream);
+            ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
+
+            byte[] temp = new byte[1024];
+            int size = 0;
+            while ((size = in.read(temp)) != -1) {
+                out.write(temp, 0, size);
+            }
+            in.close();
+            byte[] content = out.toByteArray();
+            String videoName = UUID.randomUUID() + "." + filenameExtension;
+            sshSftp(content, path, videoName);
+            return url + path + "/" + videoName;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "上传失败";
+        }
+
+//        //获取文件输入流
+//        InputStream inputStream = image.getInputStream();
+//        String originalFilename = image.getOriginalFilename();
+//        String filenameExtension = StringUtils.getFilenameExtension(originalFilename);
+//        String path = DateUtil.format(new Date(), "yyyy-MM");
+//
+//        try {
+//
+//            File tempFile = new File("tempVideo.mp4");
+//            image.transferTo(tempFile);
+////
+////            // 使用FFmpegFrameGrabber读取视频信息
+////            FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(tempFile);
+////            grabber.start();
+////
+////            // 创建输出文件
+////            File compressedFile = new File("compressedVideo.mp4");
+////
+////            // 使用FFmpegFrameRecorder进行压缩
+////            FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(compressedFile, grabber.getImageWidth(), grabber.getImageHeight(), grabber.getAudioChannels());
+////            recorder.setInterleaved(true);
+////            recorder.setVideoOption("preset", "ultrafast"); // 设置压缩速度,可以根据需要调整
+////            recorder.setVideoOption("crf", "40"); // 设置视频质量,范围通常是0-51,值越大压缩率越高,质量越低
+////            recorder.setVideoCodec(findH264Encoder(recorder)); // 查找并设置H.264编解码器
+////            recorder.setFormat("mp4");
+////            recorder.setFrameRate(grabber.getFrameRate());
+////            recorder.setSampleRate(grabber.getSampleRate());
+////            recorder.setAudioBitrate(grabber.getAudioBitrate());
+////            recorder.setVideoBitrate(grabber.getVideoBitrate() / 2); // 压缩一半的视频比特率
+////
+////            // 开始录制并压缩视频
+////            recorder.start();
+////            Frame frame;
+////            while ((frame = grabber.grabFrame()) != null) {
+////                recorder.record(frame);
+////            }
+////            recorder.stop();
+////            grabber.stop();
+////
+////            // 读取压缩后的视频为字节数组
+////            byte[] compressedVideoBytes = Files.readAllBytes(compressedFile.toPath());
+////
+////            // 删除临时文件
+////            tempFile.delete();
+////            compressedFile.delete();
+////
+//            String imgname = UUID.randomUUID() + "." + filenameExtension;
+//            sshSftp(image, path, imgname);
+//            return url+ path + "/" + imgname;
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//            return "上传失败";
+//        } finally {
+//            inputStream.close();
+//        }
+    }
+
+//    private int findH264Encoder(FFmpegFrameRecorder recorder) {
+//        AVCodec codec = null;
+//
+//        AVCodec.avcodec_register_all(); // 注册所有编解码器
+//        for (AVCodec.AVCodecDescriptor desc : AVCodec.avcodec_descriptor_get(null)) {
+//            if (desc.type() == AVCodec.AVMEDIA_TYPE_VIDEO &&
+//                    desc.id() != AVCodec.AV_CODEC_ID_NONE &&
+//                    desc.name().equals("libx264")) { // libx264是H.264的常用编码器名称
+//                codec = AVCodec.avcodec_find_encoder(desc.id());
+//                break;
+//            }
+//        }
+//        if (codec == null) {
+//            throw new RuntimeException("H.264 encoder not found");
+//        }
+//        return codec.id();
+//    }
+
+
 }
 
 

+ 6 - 0
huimv-receive/src/main/java/com/huimv/receive/controller/LoginController.java

@@ -49,6 +49,8 @@ public class LoginController {
         return iLoginService.logout();
     }
 
+
+
     @Autowired
     private RedisTemplate<String, String> redisTemplate;
 
@@ -367,6 +369,10 @@ public class LoginController {
         System.out.println(stringResponseEntity.getBody());
         return new Result(ResultCode.SUCCESS,JSON.parseObject(stringResponseEntity.getBody()));
     }
+    @PostMapping("/register2")
+    public String register2( @RequestParam(value = "video", required = false) MultipartFile imgUrl) throws IOException {
+        return   uploadImage.getVideoCom(video);
+    }
 
 
     @PostMapping("/register")