|
@@ -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;
|