Newspaper 1 gadu atpakaļ
vecāks
revīzija
ec7f0712d4

+ 4 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/RawData.java

@@ -3,6 +3,8 @@ package com.huimv.guowei.admin.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import java.util.Date;
@@ -36,6 +38,8 @@ public class RawData implements Serializable {
     private String data;
     private String battery;
 
+    private BigDecimal lastWeight;
+
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 

+ 48 - 19
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/RawDataServiceImpl.java

@@ -44,10 +44,12 @@ public class RawDataServiceImpl extends ServiceImpl<RawDataMapper, RawData> impl
             wrapper.eq("device_code",deviceCode);
         }
         if (StringUtils.isNotBlank(startDate)){
-            wrapper.ge("create_time", DateUtil.beginOfDay(new Date()));
+            startDate += " 00:00:00";
+            wrapper.ge("create_time", startDate);
         }
-        if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)){
-            wrapper.between("create_time", startDate,endDate);
+        if (StringUtils.isNotBlank(endDate)){
+            endDate += " 23:59:59";
+            wrapper.le("create_time", endDate);
         }
         wrapper.orderByDesc("id");
         Page<RawData> page = this.page(new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize)), wrapper);
@@ -59,27 +61,54 @@ public class RawDataServiceImpl extends ServiceImpl<RawDataMapper, RawData> impl
         String id = paramsMap.get("id");
         String time = paramsMap.get("time");
         Integer value = Integer.valueOf(time);
-
+        String startDate = paramsMap.get("startDate");
+        String endDate = paramsMap.get("endDate");
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        List list = new ArrayList();
         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);
+        if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)){
+            String deviceCode = rawData.getDeviceCode();
+            QueryWrapper<RawData> wrapper = new QueryWrapper<>();
+            wrapper.eq("device_code",deviceCode);
+            startDate += " 00:00:00";
+            endDate += " 23:59:59";
+            wrapper.between("create_time",startDate,endDate);
+            wrapper.orderByAsc("id");
+            List<RawData> rawDataList = this.list(wrapper);
+            for (RawData data : rawDataList) {
+                String weightDate = data.getData();
+                Date endTime = rawData.getCreateTime();
+                String[] s = weightDate.split(" ");
+                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);
+                }
+            }
+        }else {
+            Date endTime = rawData.getCreateTime();
+            String data = rawData.getData();
+            String[] s = data.split(" ");
+            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);
     }