|
@@ -29,26 +29,27 @@ public class MileageClientImpl implements MileageClient {
|
|
|
|
|
|
@Override
|
|
|
public Map<String,String[]> mileage2Coordinate(List<String> mileages,Long contractId) {
|
|
|
- List<String> parts= mileages.stream().map(e->e.replaceAll("K.+","")).distinct().collect(Collectors.toList());
|
|
|
- List<Mileagexy> target;
|
|
|
- target=this.service.list(Wrappers.<Mileagexy>lambdaQuery().eq(Mileagexy::getContractId,contractId.toString()).in(Mileagexy::getPartNo,parts).orderByAsc(Mileagexy::getValue));
|
|
|
- Map<String,String[]> result = new HashMap<>(mileages.size());
|
|
|
- if(CollectionUtil.isNotEmpty(target)){
|
|
|
- mileages.forEach(e->{
|
|
|
- String[] r = new String[]{"",""};
|
|
|
- if(Func.isNotBlank(e)){
|
|
|
- String[] arr=e.split("@");
|
|
|
- double[] db= MileageUtill.azimuthZbXy(BaseUtils.k2d(arr[0]),Double.parseDouble(arr[1]),90,target);
|
|
|
- if(db!=null&&db.length==3){
|
|
|
- r[0]=String.valueOf(db[0]);
|
|
|
- r[1]=String.valueOf(db[1]);
|
|
|
- result.put(e,r);
|
|
|
+ Map<String,String[]> result = new HashMap<>(mileages.size());
|
|
|
+ Map<String,List<String>> group=mileages.stream().collect(Collectors.groupingBy(e->e.replaceAll("K.+","")));
|
|
|
+ for(Map.Entry<String,List<String>> entry:group.entrySet()){
|
|
|
+ String part= entry.getKey();
|
|
|
+ List<Mileagexy> target=this.service.list(Wrappers.<Mileagexy>lambdaQuery().eq(Mileagexy::getContractId,contractId.toString()).eq(Mileagexy::getPartNo,part).orderByAsc(Mileagexy::getValue));
|
|
|
+ if(CollectionUtil.isNotEmpty(target)){
|
|
|
+ entry.getValue().forEach(e->{
|
|
|
+ String[] r = new String[]{"",""};
|
|
|
+ if(Func.isNotBlank(e)){
|
|
|
+ String[] arr=e.split("@");
|
|
|
+ double[] db= MileageUtill.azimuthZbXy(BaseUtils.k2d(arr[0]),Double.parseDouble(arr[1]),90,target);
|
|
|
+ if(db!=null&&db.length==3){
|
|
|
+ r[0]=String.valueOf(db[0]);
|
|
|
+ r[1]=String.valueOf(db[1]);
|
|
|
+ result.put(e,r);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
/*坐标集合*/
|
|
|
- System.out.println(result);
|
|
|
return result;
|
|
|
}
|
|
|
|