Newspaper 1 год назад
Родитель
Сommit
0e129352a3

+ 5 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/RawDataController.java

@@ -29,4 +29,9 @@ public class RawDataController {
         return rawDataService.listInfo(paramsMap);
     }
 
+    @PostMapping("/listWeight")
+    public Result listWeight(@RequestBody Map<String, String> paramsMap){
+        return rawDataService.listWeight(paramsMap);
+    }
+
 }

+ 2 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IRawDataService.java

@@ -17,4 +17,6 @@ import java.util.Map;
 public interface IRawDataService extends IService<RawData> {
 
     Result listInfo(Map<String, String> paramsMap);
+
+    Result listWeight(Map<String, String> paramsMap);
 }

+ 47 - 10
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/RawDataServiceImpl.java

@@ -2,19 +2,24 @@ package com.huimv.guowei.admin.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.api.R;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.guowei.admin.common.utils.Result;
 import com.huimv.guowei.admin.common.utils.ResultCode;
+import com.huimv.guowei.admin.entity.Farm;
 import com.huimv.guowei.admin.entity.RawData;
 import com.huimv.guowei.admin.mapper.RawDataMapper;
 import com.huimv.guowei.admin.service.IRawDataService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.poi.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Date;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * <p>
@@ -26,24 +31,56 @@ import java.util.Map;
  */
 @Service
 public class RawDataServiceImpl extends ServiceImpl<RawDataMapper, RawData> implements IRawDataService {
-
     @Override
     public Result listInfo(Map<String, String> paramsMap) {
         String deviceCode = paramsMap.get("deviceCode");
         String startDate = paramsMap.get("startDate");
         String endDate = paramsMap.get("endDate");
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+
         QueryWrapper<RawData> wrapper = new QueryWrapper<>();
-        if (StringUtils.isBlank(deviceCode)){
-            return new Result(10001,"称编码不能为空",false);
+        if (StringUtils.isNotBlank(deviceCode)){
+            wrapper.eq("device_code",deviceCode);
         }
-        wrapper.eq("device_code",deviceCode);
-        if (StringUtils.isBlank(startDate)){
+        if (StringUtils.isNotBlank(startDate)){
             wrapper.ge("create_time", DateUtil.beginOfDay(new Date()));
-        }else {
-
+        }
+        if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)){
             wrapper.between("create_time", startDate,endDate);
         }
         wrapper.orderByDesc("id");
-        return new Result(ResultCode.SUCCESS, this.list(wrapper));
+        Page<RawData> page = this.page(new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize)), wrapper);
+        return new Result(ResultCode.SUCCESS, page);
+    }
+
+    @Override
+    public Result listWeight(Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        String time = paramsMap.get("time");
+        Integer value = Integer.valueOf(time);
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        RawData rawData = new RawData();
+        if (StringUtils.isNotBlank(id)){
+            rawData = this.getById(id);
+        }
+        Date endTime = rawData.getCreateTime();
+        String data = rawData.getData();
+        String[] s = data.split(" ");
+
+        List list = new ArrayList();
+        long timestamp = endTime.getTime() / 1000;
+        for (int i = 0; i < 60; i++) {
+            long l = timestamp - ((60 - i) * value); // 修正此行
+            Date thenTime = new Date(l * 1000); // 将秒转换为毫秒
+            String str1 = s[i * 2 + 11] + s[i * 2 + 10];
+            BigDecimal weight = new BigDecimal(Integer.parseInt(str1, 16));
+            Map weightMap = new HashMap();
+            weightMap.put("time", sdf.format(thenTime));
+            weightMap.put("weight",weight);
+            list.add(weightMap);
+        }
+        return new Result(ResultCode.SUCCESS,list);
     }
 }