screen-api/src/main/java/com/moral/api/controller/CruiserController.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/entity/SecondCruiserSort.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/mapper/SecondCruiserSortMapper.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/service/DustldService.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/service/SecondCruiserSortService.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/service/impl/SecondCruiserSortServiceImpl.java | ●●●●● patch | view | raw | blame | history |
screen-api/src/main/java/com/moral/api/controller/CruiserController.java
@@ -8,6 +8,7 @@ import com.deepoove.poi.data.RowRenderData; import com.deepoove.poi.policy.HackLoopTableRenderPolicy; import com.moral.api.entity.Dustld; import com.moral.api.entity.SecondCruiserSort; import com.moral.api.exception.BusinessException; import com.moral.api.pojo.bo.ExcelBO; import com.moral.api.pojo.dto.historySecondCruiser.HistorySecondCruiserResultDTO; @@ -297,7 +298,7 @@ @RequestParam @ApiParam(value = "startTime",name = "开始时间") String startTime, @RequestParam @ApiParam(value = "endTime",name = "结束时间") String endTime){ List<DustForm> sort = dustldService.sort(mac, startTime, endTime); List<SecondCruiserSort> sort = dustldService.sort(mac, startTime, endTime); return ResultMessage.ok(sort); } screen-api/src/main/java/com/moral/api/entity/SecondCruiserSort.java
New file @@ -0,0 +1,45 @@ package com.moral.api.entity; import lombok.Data; import lombok.EqualsAndHashCode; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.moral.util.DateUtils; /** * Description //todo * * @author swb * @ClassName SecondCruiserSort * @date 2024.06.25 15:29 */ @Data @EqualsAndHashCode(callSuper = false) public class SecondCruiserSort extends Model<SecondCruiserSort> { /** * 路段名称 */ private String road; /** * 数据 */ private Double value; /** * mac号 */ private String mac; /** * 组织Id */ private Integer organizationId; /** * 时间 */ private String time; } screen-api/src/main/java/com/moral/api/mapper/SecondCruiserSortMapper.java
New file @@ -0,0 +1,7 @@ package com.moral.api.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.moral.api.entity.SecondCruiserSort; public interface SecondCruiserSortMapper extends BaseMapper<SecondCruiserSort> { } screen-api/src/main/java/com/moral/api/service/DustldService.java
@@ -7,7 +7,8 @@ import java.util.Map; import com.moral.api.entity.Dustld; import com.moral.api.pojo.dust.DustForm; import com.moral.api.entity.SecondCruiserSort; public interface DustldService { @@ -28,6 +29,6 @@ List<Dustld> selectAll(Map<String, Object> params); //路段排序 List<DustForm> sort(String mac,String startTime,String endTime); List<SecondCruiserSort> sort(String mac, String startTime, String endTime); } screen-api/src/main/java/com/moral/api/service/SecondCruiserSortService.java
New file @@ -0,0 +1,7 @@ package com.moral.api.service; import com.baomidou.mybatisplus.extension.service.IService; import com.moral.api.entity.SecondCruiserSort; public interface SecondCruiserSortService extends IService<SecondCruiserSort> { } screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java
@@ -1,7 +1,9 @@ package com.moral.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.moral.api.config.Interceptor.UserHelper; import com.moral.api.entity.SecondCruiserSort; import com.moral.api.entity.SysDictData; import com.moral.api.exception.BusinessException; import com.moral.api.mapper.*; @@ -51,6 +53,9 @@ @Autowired private DustldMapper dustldMapper; @Autowired private SecondCruiserSortMapper secondCruiserSortMapper; /** * 保存日报信息 @@ -467,74 +472,14 @@ * @return */ @Override public List<DustForm> sort(String mac, String startTime, String endTime) { SysDictData list = sysDictTypeService.listOne(SysDictTypeEnum.SYS_SECOND_CRUISER.getValue(),"dustld"); Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); Integer orgId = (Integer) orgInfo.get("id"); List<Integer> orgList = organizationMapper.orgIdSpecialDevList(orgId,mac); if(CollectionUtils.isEmpty(orgList)){ throw new BusinessException("该设备没有路段组织信息!"); } HashMap<String, Object> params = new HashMap<>(); params.put("mac",mac); params.put("startTime",startTime); params.put("endTime",endTime); List<Map<String, Object>> dusts = historySecondCruiserMapper.getDusts(params); Map<String, List<DustldDTO>> collect = manageCoordinateMapper.CompareTo(orgList.get(0)).stream().collect(Collectors.groupingBy(o -> o.getName())); if (ObjectUtils.isEmpty(dusts) || ObjectUtils.isEmpty(collect)){ return null; } Set<String> strings = collect.keySet(); ArrayList<DustForm> list1 = new ArrayList<>(); for (String string : strings) { DustForm dustForm = new DustForm(); ArrayList<Double> doubleArrayList = new ArrayList<>(); List<DustldDTO> dustldDTOS = collect.get(string); for (DustldDTO dustldDTO : dustldDTOS) { String flyLat = dustldDTO.getFlyLat(); String flyLon = dustldDTO.getFlyLon(); if (flyLon==null && flyLat==null){ continue; } double latDouble1 = Double.parseDouble(flyLat); double lonDouble1 = Double.parseDouble(flyLon); for (Map<String, Object> dust : dusts) { String flyLat1 = Objects.nonNull(dust.get("flyLat")) ? dust.get("flyLat").toString() :"0"; String flyLon1 = Objects.nonNull(dust.get("flyLon")) ? dust.get("flyLon").toString() :"0"; double latDouble = Double.parseDouble(flyLat1); double lonDouble = Double.parseDouble(flyLon1); // 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; } } } if (ObjectUtils.isEmpty(doubleArrayList)){ continue; } Double ListAva = doubleArrayList.stream() .collect(Collectors.averagingDouble(Double::doubleValue)); double rsAvg = new BigDecimal(ListAva/1000).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue(); dustForm.setRoad(string); dustForm.setValue(rsAvg); list1.add(dustForm); } //排序 list1.sort(Comparator.comparing(DustForm::getValue).reversed()); return list1; public List<SecondCruiserSort> sort(String mac, String startTime, String endTime) { String s = DateUtils.stringToDateString(startTime, "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd"); 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); return secondCruiserSorts; } screen-api/src/main/java/com/moral/api/service/impl/SecondCruiserSortServiceImpl.java
New file @@ -0,0 +1,19 @@ package com.moral.api.service.impl; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.entity.SecondCruiserSort; import com.moral.api.mapper.SecondCruiserSortMapper; import com.moral.api.service.SecondCruiserSortService; /** * Description //todo * * @author swb * @ClassName SecondCruiserSortServiceImpl * @date 2024.06.28 09:14 */ @Service public class SecondCruiserSortServiceImpl extends ServiceImpl<SecondCruiserSortMapper, SecondCruiserSort> implements SecondCruiserSortService { }