Browse Source

优化图文导航绑定获取

ychk 6 months ago
parent
commit
fec03c42f3

+ 26 - 7
app/src/main/java/com/tofly/yxpc/ui/activity/MainActivity.java

@@ -174,13 +174,32 @@ public class MainActivity extends LatteActivity {
             if (!twdhEntities.isEmpty()) {
                 List<TwdhEntity> twdhEntityList = new ArrayList<>(twdhEntities);
                 for (int i = 0; i < twdhEntityList.size(); i++) {
-                    String[] ids = twdhEntityList.get(i).getWaterNavigationInspects().split(",");
-                    for (String s : ids) {
-                        if (!TextUtils.isEmpty(s)) {
-                            TwdhEntity twdhEntity = DaoUtilsStore.getInstance().getTwdhEntityDbUtils().queryByQueryBuilderOne(TwdhEntityDao.Properties.WaterNavigationInspects.like("%" + s + "%"));
-                            if (twdhEntity != null) {
-                                twdhEntities.remove(twdhEntityList.get(i));
-                                break;
+                    if (!TextUtils.isEmpty(twdhEntityList.get(i).getWaterNavigationInspects())) {
+                        String[] ids = twdhEntityList.get(i).getWaterNavigationInspects().split(",");
+                        for (String s : ids) {
+                            if (!TextUtils.isEmpty(s)) {
+                                boolean isSuccess = false;
+                                List<TwdhEntity> twdhEntitys = DaoUtilsStore.getInstance().getTwdhEntityDbUtils().queryByQueryBuilder(TwdhEntityDao.Properties.WaterNavigationInspects.like("%" + s + "%"));
+                                if (!twdhEntitys.isEmpty()) {
+                                    for (TwdhEntity twdh : twdhEntitys) {
+                                        if (!TextUtils.isEmpty(twdh.getWaterNavigationInspects())) {
+                                            String[] arr = twdh.getWaterNavigationInspects().split(",");
+                                            for (String s1 : arr) {
+                                                if (s.equals(s1)) {
+                                                    isSuccess = true;
+                                                    break;
+                                                }
+                                            }
+                                        }
+                                        if (isSuccess) {
+                                            break;
+                                        }
+                                    }
+                                }
+                                if (isSuccess) {
+                                    twdhEntities.remove(twdhEntityList.get(i));
+                                    break;
+                                }
                             }
                         }
                     }

+ 26 - 7
app/src/main/java/com/tofly/yxpc/ui/fragment/IndexFragment.java

@@ -212,13 +212,32 @@ public class IndexFragment extends LatteDelegate {
             if (!twdhEntities.isEmpty()) {
                 List<TwdhEntity> twdhEntityList = new ArrayList<>(twdhEntities);
                 for (int i = 0; i < twdhEntityList.size(); i++) {
-                    String[] ids = twdhEntityList.get(i).getWaterNavigationInspects().split(",");
-                    for (String s : ids) {
-                        if (!TextUtils.isEmpty(s)) {
-                            TwdhEntity twdhEntity = DaoUtilsStore.getInstance().getTwdhEntityDbUtils().queryByQueryBuilderOne(TwdhEntityDao.Properties.WaterNavigationInspects.like("%" + s + "%"));
-                            if (twdhEntity != null) {
-                                twdhEntities.remove(twdhEntityList.get(i));
-                                break;
+                    if (!TextUtils.isEmpty(twdhEntityList.get(i).getWaterNavigationInspects())) {
+                        String[] ids = twdhEntityList.get(i).getWaterNavigationInspects().split(",");
+                        for (String s : ids) {
+                            if (!TextUtils.isEmpty(s)) {
+                                boolean isSuccess = false;
+                                List<TwdhEntity> twdhEntitys = DaoUtilsStore.getInstance().getTwdhEntityDbUtils().queryByQueryBuilder(TwdhEntityDao.Properties.WaterNavigationInspects.like("%" + s + "%"));
+                                if (!twdhEntitys.isEmpty()) {
+                                    for (TwdhEntity twdh : twdhEntitys) {
+                                        if (!TextUtils.isEmpty(twdh.getWaterNavigationInspects())) {
+                                            String[] arr = twdh.getWaterNavigationInspects().split(",");
+                                            for (String s1 : arr) {
+                                                if (s.equals(s1)) {
+                                                    isSuccess = true;
+                                                    break;
+                                                }
+                                            }
+                                        }
+                                        if (isSuccess) {
+                                            break;
+                                        }
+                                    }
+                                }
+                                if (isSuccess) {
+                                    twdhEntities.remove(twdhEntityList.get(i));
+                                    break;
+                                }
                             }
                         }
                     }

+ 19 - 10
app/src/main/java/com/tofly/yxpc/ui/fragment/UnCalibrateFragment.java

@@ -117,8 +117,7 @@ public class UnCalibrateFragment extends PhotoFragment {
     }
 
     private void initRecyclerView() {
-        TwdhEntity twdhEntity = DaoUtilsStore.getInstance().getTwdhEntityDbUtils().queryByQueryBuilderOne(TwdhEntityDao.Properties.WaterNavigationInspects.like("%" + waterMeterEntity.getId() + "%"));
-        initNavit(twdhEntity);
+        initNavit(waterMeterEntity.getId(), false);
         if (waterMeterEntity.getWfbdFileList() != null) {
             photoList.addAll(waterMeterEntity.getWfbdFileList());
         }
@@ -221,7 +220,8 @@ public class UnCalibrateFragment extends PhotoFragment {
         }
     }
 
-    private void initNavit(TwdhEntity twdhEntity) {
+    private void initNavit(Long waterId, boolean isSave) {
+        TwdhEntity navit = null;
         List<TwdhEntity> twdhEntityList = DaoUtilsStore.getInstance().getTwdhEntityDbUtils().queryAll();
         List<String> stringList = new ArrayList<>();
         List<Long> longList = new ArrayList<>();
@@ -229,6 +229,15 @@ public class UnCalibrateFragment extends PhotoFragment {
         for (TwdhEntity twdh : twdhEntityList) {
             stringList.add(twdh.getName() == null ? "" : twdh.getName());
             longList.add(twdh.getId());
+            if (waterId != null && !TextUtils.isEmpty(twdh.getWaterNavigationInspects())) {
+                String[] arr = twdh.getWaterNavigationInspects().split(",");
+                for (String s : arr) {
+                    if (waterId.equals(Long.parseLong(s))) {
+                        navit = twdh;
+                        break;
+                    }
+                }
+            }
         }
         SpinnerUtils.initSpinner(requireContext(), binding.spinnerNavit, stringList);
         binding.spinnerNavit.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@@ -249,12 +258,16 @@ public class UnCalibrateFragment extends PhotoFragment {
 
             }
         });
-        if (!twdhEntityList.isEmpty() && twdhEntity != null) {
-            int index = longList.indexOf(twdhEntity.getId()) + 1;
+        if (!twdhEntityList.isEmpty() && navit != null) {
+            int index = longList.indexOf(navit.getId()) + 1;
             if (index > 1) {
                 binding.spinnerNavit.setSelection(index);
             }
         }
+        if (isSave && navit != null) {
+            waterMeterEntity.setNavigationId(String.valueOf(navit.getId()));
+            DaoUtilsStore.getInstance().getWaterMeterEntityDbUtils().insertOrReplace(waterMeterEntity);
+        }
     }
 
     private void saveLocal(String message) {
@@ -459,11 +472,7 @@ public class UnCalibrateFragment extends PhotoFragment {
     public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         if (requestCode == 1102 && resultCode == 0) {
-            TwdhEntity twdhEntity = DaoUtilsStore.getInstance().getTwdhEntityDbUtils().queryByQueryBuilderOne(TwdhEntityDao.Properties.WaterNavigationInspects.like("%" + waterMeterEntity.getId() + "%"));
-            navitId = twdhEntity.getId();
-            waterMeterEntity.setNavigationId(String.valueOf(navitId));
-            DaoUtilsStore.getInstance().getWaterMeterEntityDbUtils().insertOrReplace(waterMeterEntity);
-            initNavit(twdhEntity);
+            initNavit(waterMeterEntity.getId(), true);
         }
     }
 }

+ 19 - 14
app/src/main/java/com/tofly/yxpc/ui/fragment/WaterCheckFragment.java

@@ -363,8 +363,7 @@ public class WaterCheckFragment extends PhotoFragment {
     private void loadData() {
         if (waterMeterEntity != null) {
             binding.edInstallTime.setText(waterMeterEntity.getInstallTime() == null ? "" : waterMeterEntity.getInstallTime());
-            TwdhEntity twdhEntity = DaoUtilsStore.getInstance().getTwdhEntityDbUtils().queryByQueryBuilderOne(TwdhEntityDao.Properties.WaterNavigationInspects.like("%" + waterMeterEntity.getId() + "%"));
-            initNavit(twdhEntity);
+            initNavit(waterMeterEntity.getId(), false);
             binding.edInternetIdCard.setText(waterMeterEntity.getInternetIdCard() == null ? "" : waterMeterEntity.getInternetIdCard());
             binding.edInstallPosition.setText("经度:" + waterMeterEntity.getLongitude() + " 纬度:" + waterMeterEntity.getLatitude());
             if (!TextUtils.isEmpty(waterMeterEntity.getLongitude()) && !TextUtils.isEmpty(waterMeterEntity.getLatitude())) {
@@ -432,7 +431,8 @@ public class WaterCheckFragment extends PhotoFragment {
         }
     }
 
-    private void initNavit(TwdhEntity twdhEntity) {
+    private void initNavit(Long waterId, boolean isSave) {
+        TwdhEntity navit = null;
         List<TwdhEntity> twdhEntityList = DaoUtilsStore.getInstance().getTwdhEntityDbUtils().queryAll();
         List<String> stringList = new ArrayList<>();
         List<Long> longList = new ArrayList<>();
@@ -440,6 +440,15 @@ public class WaterCheckFragment extends PhotoFragment {
         for (TwdhEntity twdh : twdhEntityList) {
             stringList.add(twdh.getName() == null ? "" : twdh.getName());
             longList.add(twdh.getId());
+            if (waterId != null && !TextUtils.isEmpty(twdh.getWaterNavigationInspects())) {
+                String[] arr = twdh.getWaterNavigationInspects().split(",");
+                for (String s : arr) {
+                    if (waterId.equals(Long.parseLong(s))) {
+                        navit = twdh;
+                        break;
+                    }
+                }
+            }
         }
         SpinnerUtils.initSpinner(requireContext(), binding.spinnerNavit, stringList);
         binding.spinnerNavit.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@@ -460,12 +469,16 @@ public class WaterCheckFragment extends PhotoFragment {
 
             }
         });
-        if (!twdhEntityList.isEmpty() && twdhEntity != null) {
-            int index = longList.indexOf(twdhEntity.getId()) + 1;
+        if (!twdhEntityList.isEmpty() && navit != null) {
+            int index = longList.indexOf(navit.getId()) + 1;
             if (index > 1) {
                 binding.spinnerNavit.setSelection(index);
             }
         }
+        if (isSave && navit != null) {
+            waterMeterEntity.setNavigationId(String.valueOf(navit.getId()));
+            DaoUtilsStore.getInstance().getWaterMeterEntityDbUtils().insertOrReplace(waterMeterEntity);
+        }
     }
 
     private void saveLocal(String message) {
@@ -694,15 +707,7 @@ public class WaterCheckFragment extends PhotoFragment {
     public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         if (requestCode == 1102 && resultCode == 0) {
-            TwdhEntity twdhEntity = DaoUtilsStore.getInstance().getTwdhEntityDbUtils().queryByQueryBuilderOne(TwdhEntityDao.Properties.WaterNavigationInspects.like("%" + waterMeterEntity.getId() + "%"));
-            navitId = twdhEntity.getId();
-            waterMeterEntity.setNavigationId(String.valueOf(navitId));
-            DaoUtilsStore.getInstance().getWaterMeterEntityDbUtils().insertOrReplace(waterMeterEntity);
-            if (twdhEntity != null) {
-                initNavit(twdhEntity);
-            } else {
-                binding.tvSee.setVisibility(View.GONE);
-            }
+            initNavit(waterMeterEntity.getId(), true);
         } else if (requestCode == 1105 && resultCode == 1106) {
             if (data != null) {
                 locationUtilXuNew = (LocationUtil_xu.CoordinateClass) data.getSerializableExtra("locationUtilXuNew");

+ 10 - 0
local.properties

@@ -0,0 +1,10 @@
+## This file is automatically generated by Android Studio.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file should *NOT* be checked into Version Control Systems,
+# as it contains information specific to your local configuration.
+#
+# Location of the SDK. This is only used by Gradle.
+# For customization when using a Version Control System, please read the
+# header note.
+sdk.dir=D\:\\sdk