yangyj 2 жил өмнө
parent
commit
8487e27cef

+ 18 - 17
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/MileageClientImpl.java

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