swb
2024-07-04 7438064a85a63d46e210ce37e63c4ca823d52f63
fix:补充提交
2 files modified
42 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java 17 ●●●●● patch | view | raw | blame | history
screen-job/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java 25 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java
@@ -473,12 +473,27 @@
     */
    @Override
    public List<SecondCruiserSort> sort(String mac, String startTime, String endTime) {
        String s = DateUtils.stringToDateString(startTime, "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd");
        SysDictData list = sysDictTypeService.listOne(SysDictTypeEnum.SYS_SECOND_CRUISER.getValue(),"dustld");
        String s = DateUtils.stringToDateString(startTime, "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd 00:00:00");
        LambdaQueryWrapper<SecondCruiserSort> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(SecondCruiserSort::getMac,mac);
        wrapper.eq(SecondCruiserSort::getTime,s);
        wrapper.orderByDesc(SecondCruiserSort::getValue);
        List<SecondCruiserSort> secondCruiserSorts = secondCruiserSortMapper.selectList(wrapper);
        //校准尘负荷
        if (!ObjectUtils.isEmpty(secondCruiserSorts)){
            for (SecondCruiserSort secondCruiserSort : secondCruiserSorts) {
                if(list.getDataValue().contains(",")){
                    List<String> resultStr = Arrays.asList(list.getDataValue().split(","));
                    if(resultStr.size() % 2 ==0){
                        secondCruiserSort.setValue(numAvg(resultStr,BigDecimal.valueOf(secondCruiserSort.getValue())).doubleValue());
                    }
                }else {
                    BigDecimal dataValue = Objects.nonNull(list.getDataValue())?BigDecimal.valueOf(Double.parseDouble(list.getDataValue())):BigDecimal.ZERO;
                    secondCruiserSort.setValue(BigDecimal.valueOf(secondCruiserSort.getValue()).add(dataValue).doubleValue());
                }
            }
        }
        return secondCruiserSorts;
    }
screen-job/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java
@@ -40,8 +40,6 @@
@Service
@Slf4j
public class HistorySecondCruiserServiceImpl extends ServiceImpl<HistorySecondCruiserMapper, HistorySecondCruiser> implements HistorySecondCruiserService {
    @Autowired
    private SysDictTypeService sysDictTypeService;
    @Autowired
    private HistorySecondCruiserMapper historySecondCruiserMapper;
@@ -63,7 +61,6 @@
            //获取当前时间
            endTime = DateUtils.getCurDate(DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
        }
        SysDictData list = sysDictTypeService.listOne("ZHC", "dustld");
        List<HistorySecondCruiser> result = historySecondCruiserMapper.getResult(startTime, endTime);
        //
@@ -107,15 +104,6 @@
//                    String flyLon1 = dust.get("flyLon").toString();
                            if (latDouble1==latDouble && lonDouble1==lonDouble){
                                Double dustld = Objects.nonNull(dust.get("dustld"))?Double.parseDouble(dust.get("dustld").toString()):0d;
                                if(list.getDataValue().contains(",")){
                                    List<String> resultStr = Arrays.asList(list.getDataValue().split(","));
                                    if(resultStr.size() % 2 ==0){
                                        dustld = numAvg(resultStr,BigDecimal.valueOf(dustld)).doubleValue();
                                    }
                                }else {
                                    BigDecimal dataValue = Objects.nonNull(list.getDataValue())?BigDecimal.valueOf(Double.parseDouble(list.getDataValue())):BigDecimal.ZERO;
                                    dustld = BigDecimal.valueOf(dustld).add(dataValue).doubleValue();
                                }
                                doubleArrayList.add(dustld);
                                break;
                            }
@@ -125,7 +113,7 @@
                        continue;
                    }
                    Double ListAva = doubleArrayList.stream() .collect(Collectors.averagingDouble(Double::doubleValue));
                    double rsAvg = new BigDecimal(ListAva/1000).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
                    double rsAvg = new BigDecimal(ListAva).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                    secondCruiserSort.setRoad(string);
                    secondCruiserSort.setValue(rsAvg);
                    secondCruiserSort.setMac(mac);
@@ -135,19 +123,10 @@
            }
        }
        if (!ObjectUtils.isEmpty(list1)){
//            log.info(list1.size()+"");
            secondCruiserSortMapper.insertAll(list1);
        }
    }
    private BigDecimal numAvg(List<String> list , BigDecimal num){
        int nums = 1;
        for (int i=0;i<list.size();i=i+2){
            if(num.compareTo(BigDecimal.valueOf(Double.parseDouble(list.get(i))))>= 0 ){
                return num.add(BigDecimal.valueOf(Double.parseDouble(list.get(i+1))));
            }
            nums+=2;
        }
        return num;
    }
}