Browse Source

数据重新统计

zyg 2 years ago
parent
commit
0a96ebeff3
1 changed files with 30 additions and 11 deletions
  1. 30 11
      src/main/java/com/zhili/dashboard/service/impl/AlarmMsgServiceImpl.java

+ 30 - 11
src/main/java/com/zhili/dashboard/service/impl/AlarmMsgServiceImpl.java

@@ -978,7 +978,7 @@ public class AlarmMsgServiceImpl extends ServiceImpl<AlarmMsgMapper, AlarmMsg> i
         if (device != null && device.getCreateTime() != null) {
             Date date = Date.from(device.getCreateTime().atZone(ZoneId.systemDefault()).toInstant());
             long interval = DateUtil.pastDays(date);
-            vo.setDataSum(BigDecimal.valueOf(20 + 0.03 * interval).setScale(2, BigDecimal.ROUND_HALF_DOWN));
+            vo.setDataSum(BigDecimal.valueOf(103 + 0.3 * interval).setScale(2, BigDecimal.ROUND_HALF_DOWN));
         }
         return vo;
     }
@@ -991,43 +991,62 @@ public class AlarmMsgServiceImpl extends ServiceImpl<AlarmMsgMapper, AlarmMsg> i
     @Override
     public Long getCumulativeCycle() {
         long res = 0L;
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         //电池数量
         List<Map<String, Object>> mapList = alarmMsgMapper.getSceneDeviceGroup(null);
         if (!CollectionUtils.isEmpty(mapList)) {
             List<RiskListVo> voList = JSONArray.parseArray(JSON.toJSONString(mapList), RiskListVo.class);
             if (!CollectionUtils.isEmpty(voList)) {
-                List<Double> sumList = new ArrayList<>();
+                List<Long> sumList = new ArrayList<>();
+                List<Double> addList = new ArrayList<>();
                 voList.forEach(o -> {
                     if (o.getItem() == null) {
                         o.setItem("0");
                     }
                     //0-乘用车 1-重卡 2-低速车 3-储能 4-备用电源
+                    //(A*108+B*730+C*20+D*730+E*24)*2
+                    //A*0.3+B*2+C*0.05+D*2+E*0.05
                     switch (Integer.parseInt(o.getItem())) {
                         case 0:
-                            sumList.add(o.getQuantity() * 0.6 * 3000 * 108);
+                            sumList.add(o.getQuantity() * 108);
+                            addList.add(o.getQuantity() * 0.3);
                             break;
                         case 1:
-                            sumList.add(o.getQuantity() * 0.7 * 1000 * 2);
+                        case 3:
+                            sumList.add(o.getQuantity() * 730);
+                            addList.add(o.getQuantity() * 2.0);
                             break;
                         case 2:
-                            sumList.add(o.getQuantity() * 0.3 * 2000 * 20 / 365);
-                            break;
-                        case 3:
-                            sumList.add(o.getQuantity() * 0.6 * 5000 * 2);
+                            sumList.add(o.getQuantity() * 20);
+                            addList.add(o.getQuantity() * 0.05);
                             break;
                         case 4:
-                            sumList.add(o.getQuantity() * 0.1 * 500 * 1 / 15);
+                            sumList.add(o.getQuantity() * 24);
+                            addList.add(o.getQuantity() * 0.05);
                             break;
                         default:
                     }
                 });
-                double total = 0d;
+                long total = 0L;
                 if (sumList.size() > 0) {
-                    for (Double d : sumList) {
+                    for (Long d : sumList) {
                         total = total + d * 2;
                     }
                     res = Math.round(total / 1000000);
                 }
+                double add = 0d;
+                if (addList.size() > 0) {
+                    for (Double d : addList) {
+                        add = add + d * 2;
+                    }
+                }
+                long daysBetween = 0L;
+                try {
+                    daysBetween = DateUtil.getDaysBetween(sdf.parse("2022-07-20 00:00:00"), new Date());
+                } catch (Exception e) {
+                    log.error(e.getMessage());
+                }
+                res = res + Math.round(add * (daysBetween + 1) / 1000000);
             }
         }
         return res;