Переглянути джерело

入户走访新页面及逻辑

lichao 1 місяць тому
батько
коміт
73133b1550
68 змінених файлів з 3850 додано та 213 видалено
  1. 1 1
      app/build.gradle
  2. 2 10
      app/src/main/AndroidManifest.xml
  3. 3 3
      app/src/main/java/com/xwkj/sqjw/mvp/ui/activity/SqjwLoginActivity.java
  4. 41 0
      app/src/main/java/com/zkjc/policedemo/di/component/RhzfDetailComponent.java
  5. 41 0
      app/src/main/java/com/zkjc/policedemo/di/component/RhzfFwqzComponent.java
  6. 41 0
      app/src/main/java/com/zkjc/policedemo/di/component/RhzfJxcsComponent.java
  7. 41 0
      app/src/main/java/com/zkjc/policedemo/di/component/RhzfMdComponent.java
  8. 41 0
      app/src/main/java/com/zkjc/policedemo/di/component/RhzfQzqzComponent.java
  9. 41 0
      app/src/main/java/com/zkjc/policedemo/di/component/SyrkComponent.java
  10. 30 0
      app/src/main/java/com/zkjc/policedemo/di/module/RhzfDetailModule.java
  11. 30 0
      app/src/main/java/com/zkjc/policedemo/di/module/RhzfFwqzModule.java
  12. 30 0
      app/src/main/java/com/zkjc/policedemo/di/module/RhzfJxcsModule.java
  13. 30 0
      app/src/main/java/com/zkjc/policedemo/di/module/RhzfMdModule.java
  14. 30 0
      app/src/main/java/com/zkjc/policedemo/di/module/RhzfQzqzModule.java
  15. 30 0
      app/src/main/java/com/zkjc/policedemo/di/module/SyrkModule.java
  16. 34 0
      app/src/main/java/com/zkjc/policedemo/mvp/contract/RhzfDetailContract.java
  17. 29 0
      app/src/main/java/com/zkjc/policedemo/mvp/contract/RhzfFwqzContract.java
  18. 29 0
      app/src/main/java/com/zkjc/policedemo/mvp/contract/RhzfJxcsContract.java
  19. 32 0
      app/src/main/java/com/zkjc/policedemo/mvp/contract/RhzfMdContract.java
  20. 29 0
      app/src/main/java/com/zkjc/policedemo/mvp/contract/RhzfQzqzContract.java
  21. 29 0
      app/src/main/java/com/zkjc/policedemo/mvp/contract/SyrkContract.java
  22. 46 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/RhzfDetailModel.java
  23. 46 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/RhzfFwqzModel.java
  24. 46 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/RhzfJxcsModel.java
  25. 46 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/RhzfMdModel.java
  26. 46 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/RhzfQzqzModel.java
  27. 46 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/SyrkModel.java
  28. 53 64
      app/src/main/java/com/zkjc/policedemo/mvp/model/entity/RkxxEntity.java
  29. 3 2
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddCzrkPresenter.java
  30. 1 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddJzrkPresenter.java
  31. 25 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddPersonPresenter.java
  32. 26 2
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddWlhRkPresenter.java
  33. 133 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/RhzfDetailPresenter.java
  34. 53 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/RhzfFwqzPresenter.java
  35. 53 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/RhzfJxcsPresenter.java
  36. 112 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/RhzfMdPresenter.java
  37. 53 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/RhzfQzqzPresenter.java
  38. 53 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/SyrkPresenter.java
  39. 33 25
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddCzrkActivity.java
  40. 1 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddJfActivity.java
  41. 24 3
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddPersonActivity.java
  42. 132 12
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddWlhRkActivity.java
  43. 26 25
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddZzrkActivity.java
  44. 39 21
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/RhzfActivity.java
  45. 341 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/RhzfDetailActivity.java
  46. 6 1
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/RhzfLdActivity.java
  47. 5 4
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/SearchAppActivity.java
  48. 68 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/adapter/SyrkAdapter.java
  49. 7 6
      app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/HomeFragment.java
  50. 134 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/RhzfFwqzFragment.java
  51. 134 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/RhzfJxcsFragment.java
  52. 346 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/RhzfMdFragment.java
  53. 134 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/RhzfQzqzFragment.java
  54. 214 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/SyrkFragment.java
  55. BIN
      app/src/main/res/drawable-xxxhdpi/btn_edit_color.png
  56. BIN
      app/src/main/res/drawable-xxxhdpi/icon_house_color.png
  57. BIN
      app/src/main/res/drawable-xxxhdpi/icon_unit_gray.png
  58. 5 0
      app/src/main/res/drawable/bg_shape_248860cc_corner4.xml
  59. 10 0
      app/src/main/res/drawable/dash_line.xml
  60. 0 1
      app/src/main/res/layout/activity_add_wlh_rk.xml
  61. 39 33
      app/src/main/res/layout/activity_rhzf.xml
  62. 426 0
      app/src/main/res/layout/activity_rhzf_detail.xml
  63. 8 0
      app/src/main/res/layout/fragment_rhzf_fwqz.xml
  64. 8 0
      app/src/main/res/layout/fragment_rhzf_jxcs.xml
  65. 35 0
      app/src/main/res/layout/fragment_rhzf_md.xml
  66. 8 0
      app/src/main/res/layout/fragment_rhzf_qzqz.xml
  67. 38 0
      app/src/main/res/layout/fragment_syrk.xml
  68. 174 0
      app/src/main/res/layout/item_syrk.xml

+ 1 - 1
app/build.gradle

@@ -219,5 +219,5 @@ dependencies {
     implementation 'com.facebook.fresco:animated-gif:1.13.0'
     implementation 'com.github.bumptech.glide:glide:4.9.0'
     implementation 'androidx.webkit:webkit:1.3.0'
-
+    implementation 'com.github.yuruiyin:AppbarLayoutBehavior:v1.0.4'
 }

+ 2 - 10
app/src/main/AndroidManifest.xml

@@ -95,17 +95,12 @@
         android:networkSecurityConfig="@xml/network_security_config"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
+        <activity android:name=".mvp.ui.activity.RhzfDetailActivity" />
         <activity android:name=".mvp.ui.activity.LscyryActivity" />
         <activity android:name=".mvp.ui.activity.CyryhcActivity" />
         <activity android:name=".mvp.ui.activity.SydwlbActivity" />
         <activity android:name=".mvp.ui.activity.XzSydwActivity" />
         <activity android:name=".mvp.ui.activity.SydwActivity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-
-                <category android:name="android.intent.category.LAUNCHER" />
-                <!-- &lt;!&ndash; <category android:name="android.intent.category.LAUNCHER" /> &ndash;&gt; -->
-            </intent-filter>
         </activity>
         <activity android:name=".mvp.ui.activity.SearchAppActivity" />
         <activity android:name=".mvp.ui.activity.RecordShowActivity" />
@@ -376,15 +371,12 @@
             android:launchMode="singleTop"
             android:screenOrientation="portrait"
             android:windowSoftInputMode="adjustPan|stateHidden">
-
-            <!--
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
                 <category android:name="android.intent.category.LAUNCHER" />
-                &lt;!&ndash; &lt;!&ndash; <category android:name="android.intent.category.LAUNCHER" /> &ndash;&gt; &ndash;&gt;
+                <!-- &lt;!&ndash; <category android:name="android.intent.category.LAUNCHER" /> &ndash;&gt; -->
             </intent-filter>
-            -->
         </activity> <!-- 地图功能隐藏 -->
         <activity
             android:name="com.amap.api.navi.AmapRouteActivity"

+ 3 - 3
app/src/main/java/com/xwkj/sqjw/mvp/ui/activity/SqjwLoginActivity.java

@@ -129,7 +129,7 @@ public class SqjwLoginActivity extends ZkjcBaseActivity<LoginPresenter> implemen
             Map<String, Object> map1 = new HashMap<>();
             map1.put("className", "bladeTokenEndPoint");
             map1.put("methodName", "token3");
-            map1.put("username", /*getIntent().getStringExtra("jh")*/"106470");
+            map1.put("username", /*getIntent().getStringExtra("jh")*/"sqmj1");
             map1.put("password", MD5.md5("123456"));
             mPresenter.login(map1);
             Utils.getInstances().showDialog(SqjwLoginActivity.this, "正在获取数据");
@@ -138,14 +138,14 @@ public class SqjwLoginActivity extends ZkjcBaseActivity<LoginPresenter> implemen
             layoutTop.setVisibility(View.VISIBLE);
             layoutBottom.setVisibility(View.VISIBLE);
 
-            DevicesUtils.getDeviceId(SqjwLoginActivity.this, new DevicesUtils.OnDeviceIdListener() {
+            /*DevicesUtils.getDeviceId(SqjwLoginActivity.this, new DevicesUtils.OnDeviceIdListener() {
                 @Override
                 public void onSuccess(String deviceId) {
                     System.out.println("wybs" + deviceId);
                     wybs = deviceId;
                     tvCode.setText("设备码:" + deviceId);
                 }
-            });
+            });*/
             btApply.setOnClickListener(view -> {
 
                 String zh = etZh.getText().toString();

+ 41 - 0
app/src/main/java/com/zkjc/policedemo/di/component/RhzfDetailComponent.java

@@ -0,0 +1,41 @@
+package com.zkjc.policedemo.di.component;
+
+import dagger.BindsInstance;
+import dagger.Component;
+
+import com.jess.arms.di.component.AppComponent;
+
+import com.zkjc.policedemo.di.module.RhzfDetailModule;
+import com.zkjc.policedemo.mvp.contract.RhzfDetailContract;
+
+import com.jess.arms.di.scope.ActivityScope;
+import com.zkjc.policedemo.mvp.ui.activity.RhzfDetailActivity;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/12/2024 14:03
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@ActivityScope
+@Component(modules = RhzfDetailModule.class, dependencies = AppComponent.class)
+public interface RhzfDetailComponent {
+    void inject(RhzfDetailActivity activity);
+
+    @Component.Builder
+    interface Builder {
+        @BindsInstance
+        RhzfDetailComponent.Builder view(RhzfDetailContract.View view);
+
+        RhzfDetailComponent.Builder appComponent(AppComponent appComponent);
+
+        RhzfDetailComponent build();
+    }
+}

+ 41 - 0
app/src/main/java/com/zkjc/policedemo/di/component/RhzfFwqzComponent.java

@@ -0,0 +1,41 @@
+package com.zkjc.policedemo.di.component;
+
+import dagger.BindsInstance;
+import dagger.Component;
+
+import com.jess.arms.di.component.AppComponent;
+
+import com.zkjc.policedemo.di.module.RhzfFwqzModule;
+import com.zkjc.policedemo.mvp.contract.RhzfFwqzContract;
+
+import com.jess.arms.di.scope.FragmentScope;
+import com.zkjc.policedemo.mvp.ui.fragment.RhzfFwqzFragment;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:36
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+@Component(modules = RhzfFwqzModule.class, dependencies = AppComponent.class)
+public interface RhzfFwqzComponent {
+    void inject(RhzfFwqzFragment fragment);
+
+    @Component.Builder
+    interface Builder {
+        @BindsInstance
+        RhzfFwqzComponent.Builder view(RhzfFwqzContract.View view);
+
+        RhzfFwqzComponent.Builder appComponent(AppComponent appComponent);
+
+        RhzfFwqzComponent build();
+    }
+}

+ 41 - 0
app/src/main/java/com/zkjc/policedemo/di/component/RhzfJxcsComponent.java

@@ -0,0 +1,41 @@
+package com.zkjc.policedemo.di.component;
+
+import dagger.BindsInstance;
+import dagger.Component;
+
+import com.jess.arms.di.component.AppComponent;
+
+import com.zkjc.policedemo.di.module.RhzfJxcsModule;
+import com.zkjc.policedemo.mvp.contract.RhzfJxcsContract;
+
+import com.jess.arms.di.scope.FragmentScope;
+import com.zkjc.policedemo.mvp.ui.fragment.RhzfJxcsFragment;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:34
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+@Component(modules = RhzfJxcsModule.class, dependencies = AppComponent.class)
+public interface RhzfJxcsComponent {
+    void inject(RhzfJxcsFragment fragment);
+
+    @Component.Builder
+    interface Builder {
+        @BindsInstance
+        RhzfJxcsComponent.Builder view(RhzfJxcsContract.View view);
+
+        RhzfJxcsComponent.Builder appComponent(AppComponent appComponent);
+
+        RhzfJxcsComponent build();
+    }
+}

+ 41 - 0
app/src/main/java/com/zkjc/policedemo/di/component/RhzfMdComponent.java

@@ -0,0 +1,41 @@
+package com.zkjc.policedemo.di.component;
+
+import dagger.BindsInstance;
+import dagger.Component;
+
+import com.jess.arms.di.component.AppComponent;
+
+import com.zkjc.policedemo.di.module.RhzfMdModule;
+import com.zkjc.policedemo.mvp.contract.RhzfMdContract;
+
+import com.jess.arms.di.scope.FragmentScope;
+import com.zkjc.policedemo.mvp.ui.fragment.RhzfMdFragment;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 09:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+@Component(modules = RhzfMdModule.class, dependencies = AppComponent.class)
+public interface RhzfMdComponent {
+    void inject(RhzfMdFragment fragment);
+
+    @Component.Builder
+    interface Builder {
+        @BindsInstance
+        RhzfMdComponent.Builder view(RhzfMdContract.View view);
+
+        RhzfMdComponent.Builder appComponent(AppComponent appComponent);
+
+        RhzfMdComponent build();
+    }
+}

+ 41 - 0
app/src/main/java/com/zkjc/policedemo/di/component/RhzfQzqzComponent.java

@@ -0,0 +1,41 @@
+package com.zkjc.policedemo.di.component;
+
+import dagger.BindsInstance;
+import dagger.Component;
+
+import com.jess.arms.di.component.AppComponent;
+
+import com.zkjc.policedemo.di.module.RhzfQzqzModule;
+import com.zkjc.policedemo.mvp.contract.RhzfQzqzContract;
+
+import com.jess.arms.di.scope.FragmentScope;
+import com.zkjc.policedemo.mvp.ui.fragment.RhzfQzqzFragment;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:40
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+@Component(modules = RhzfQzqzModule.class, dependencies = AppComponent.class)
+public interface RhzfQzqzComponent {
+    void inject(RhzfQzqzFragment fragment);
+
+    @Component.Builder
+    interface Builder {
+        @BindsInstance
+        RhzfQzqzComponent.Builder view(RhzfQzqzContract.View view);
+
+        RhzfQzqzComponent.Builder appComponent(AppComponent appComponent);
+
+        RhzfQzqzComponent build();
+    }
+}

+ 41 - 0
app/src/main/java/com/zkjc/policedemo/di/component/SyrkComponent.java

@@ -0,0 +1,41 @@
+package com.zkjc.policedemo.di.component;
+
+import dagger.BindsInstance;
+import dagger.Component;
+
+import com.jess.arms.di.component.AppComponent;
+
+import com.zkjc.policedemo.di.module.SyrkModule;
+import com.zkjc.policedemo.mvp.contract.SyrkContract;
+
+import com.jess.arms.di.scope.FragmentScope;
+import com.zkjc.policedemo.mvp.ui.fragment.SyrkFragment;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/13/2024 14:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+@Component(modules = SyrkModule.class, dependencies = AppComponent.class)
+public interface SyrkComponent {
+    void inject(SyrkFragment fragment);
+
+    @Component.Builder
+    interface Builder {
+        @BindsInstance
+        SyrkComponent.Builder view(SyrkContract.View view);
+
+        SyrkComponent.Builder appComponent(AppComponent appComponent);
+
+        SyrkComponent build();
+    }
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/di/module/RhzfDetailModule.java

@@ -0,0 +1,30 @@
+package com.zkjc.policedemo.di.module;
+
+import com.jess.arms.di.scope.ActivityScope;
+
+import dagger.Binds;
+import dagger.Module;
+import dagger.Provides;
+
+import com.zkjc.policedemo.mvp.contract.RhzfDetailContract;
+import com.zkjc.policedemo.mvp.model.RhzfDetailModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/12/2024 14:03
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@Module
+public abstract class RhzfDetailModule {
+
+    @Binds
+    abstract RhzfDetailContract.Model bindRhzfDetailModel(RhzfDetailModel model);
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/di/module/RhzfFwqzModule.java

@@ -0,0 +1,30 @@
+package com.zkjc.policedemo.di.module;
+
+import com.jess.arms.di.scope.FragmentScope;
+
+import dagger.Binds;
+import dagger.Module;
+import dagger.Provides;
+
+import com.zkjc.policedemo.mvp.contract.RhzfFwqzContract;
+import com.zkjc.policedemo.mvp.model.RhzfFwqzModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:36
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@Module
+public abstract class RhzfFwqzModule {
+
+    @Binds
+    abstract RhzfFwqzContract.Model bindRhzfFwqzModel(RhzfFwqzModel model);
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/di/module/RhzfJxcsModule.java

@@ -0,0 +1,30 @@
+package com.zkjc.policedemo.di.module;
+
+import com.jess.arms.di.scope.FragmentScope;
+
+import dagger.Binds;
+import dagger.Module;
+import dagger.Provides;
+
+import com.zkjc.policedemo.mvp.contract.RhzfJxcsContract;
+import com.zkjc.policedemo.mvp.model.RhzfJxcsModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:34
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@Module
+public abstract class RhzfJxcsModule {
+
+    @Binds
+    abstract RhzfJxcsContract.Model bindRhzfJxcsModel(RhzfJxcsModel model);
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/di/module/RhzfMdModule.java

@@ -0,0 +1,30 @@
+package com.zkjc.policedemo.di.module;
+
+import com.jess.arms.di.scope.FragmentScope;
+
+import dagger.Binds;
+import dagger.Module;
+import dagger.Provides;
+
+import com.zkjc.policedemo.mvp.contract.RhzfMdContract;
+import com.zkjc.policedemo.mvp.model.RhzfMdModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 09:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@Module
+public abstract class RhzfMdModule {
+
+    @Binds
+    abstract RhzfMdContract.Model bindRhzfMdModel(RhzfMdModel model);
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/di/module/RhzfQzqzModule.java

@@ -0,0 +1,30 @@
+package com.zkjc.policedemo.di.module;
+
+import com.jess.arms.di.scope.FragmentScope;
+
+import dagger.Binds;
+import dagger.Module;
+import dagger.Provides;
+
+import com.zkjc.policedemo.mvp.contract.RhzfQzqzContract;
+import com.zkjc.policedemo.mvp.model.RhzfQzqzModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:40
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@Module
+public abstract class RhzfQzqzModule {
+
+    @Binds
+    abstract RhzfQzqzContract.Model bindRhzfQzqzModel(RhzfQzqzModel model);
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/di/module/SyrkModule.java

@@ -0,0 +1,30 @@
+package com.zkjc.policedemo.di.module;
+
+import com.jess.arms.di.scope.FragmentScope;
+
+import dagger.Binds;
+import dagger.Module;
+import dagger.Provides;
+
+import com.zkjc.policedemo.mvp.contract.SyrkContract;
+import com.zkjc.policedemo.mvp.model.SyrkModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/13/2024 14:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@Module
+public abstract class SyrkModule {
+
+    @Binds
+    abstract SyrkContract.Model bindSyrkModel(SyrkModel model);
+}

+ 34 - 0
app/src/main/java/com/zkjc/policedemo/mvp/contract/RhzfDetailContract.java

@@ -0,0 +1,34 @@
+package com.zkjc.policedemo.mvp.contract;
+
+import com.jess.arms.mvp.IView;
+import com.jess.arms.mvp.IModel;
+import com.zkjc.policedemo.mvp.model.entity.RhzfEntity;
+import com.zkjc.policedemo.mvp.model.entity.ZdAllEntity;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/12/2024 14:03
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public interface RhzfDetailContract {
+    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
+    interface View extends IView {
+
+        void onDataSuccess(RhzfEntity.Room data);
+
+        void onSuccess(ZdAllEntity.DataBean data);
+    }
+
+    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
+    interface Model extends IModel {
+
+    }
+}

+ 29 - 0
app/src/main/java/com/zkjc/policedemo/mvp/contract/RhzfFwqzContract.java

@@ -0,0 +1,29 @@
+package com.zkjc.policedemo.mvp.contract;
+
+import com.jess.arms.mvp.IView;
+import com.jess.arms.mvp.IModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:36
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public interface RhzfFwqzContract {
+    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
+    interface View extends IView {
+
+    }
+
+    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
+    interface Model extends IModel {
+
+    }
+}

+ 29 - 0
app/src/main/java/com/zkjc/policedemo/mvp/contract/RhzfJxcsContract.java

@@ -0,0 +1,29 @@
+package com.zkjc.policedemo.mvp.contract;
+
+import com.jess.arms.mvp.IView;
+import com.jess.arms.mvp.IModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:34
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public interface RhzfJxcsContract {
+    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
+    interface View extends IView {
+
+    }
+
+    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
+    interface Model extends IModel {
+
+    }
+}

+ 32 - 0
app/src/main/java/com/zkjc/policedemo/mvp/contract/RhzfMdContract.java

@@ -0,0 +1,32 @@
+package com.zkjc.policedemo.mvp.contract;
+
+import com.jess.arms.mvp.IView;
+import com.jess.arms.mvp.IModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 09:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public interface RhzfMdContract {
+    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
+    interface View extends IView {
+
+        void onSuccess(String result);
+
+        void onYgz(String result);
+    }
+
+    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
+    interface Model extends IModel {
+
+    }
+}

+ 29 - 0
app/src/main/java/com/zkjc/policedemo/mvp/contract/RhzfQzqzContract.java

@@ -0,0 +1,29 @@
+package com.zkjc.policedemo.mvp.contract;
+
+import com.jess.arms.mvp.IView;
+import com.jess.arms.mvp.IModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:40
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public interface RhzfQzqzContract {
+    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
+    interface View extends IView {
+
+    }
+
+    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
+    interface Model extends IModel {
+
+    }
+}

+ 29 - 0
app/src/main/java/com/zkjc/policedemo/mvp/contract/SyrkContract.java

@@ -0,0 +1,29 @@
+package com.zkjc.policedemo.mvp.contract;
+
+import com.jess.arms.mvp.IView;
+import com.jess.arms.mvp.IModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/13/2024 14:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public interface SyrkContract {
+    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
+    interface View extends IView {
+
+    }
+
+    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
+    interface Model extends IModel {
+
+    }
+}

+ 46 - 0
app/src/main/java/com/zkjc/policedemo/mvp/model/RhzfDetailModel.java

@@ -0,0 +1,46 @@
+package com.zkjc.policedemo.mvp.model;
+
+import android.app.Application;
+
+import com.google.gson.Gson;
+import com.jess.arms.integration.IRepositoryManager;
+import com.jess.arms.mvp.BaseModel;
+
+import com.jess.arms.di.scope.ActivityScope;
+
+import javax.inject.Inject;
+
+import com.zkjc.policedemo.mvp.contract.RhzfDetailContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/12/2024 14:03
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@ActivityScope
+public class RhzfDetailModel extends BaseModel implements RhzfDetailContract.Model {
+    @Inject
+    Gson mGson;
+    @Inject
+    Application mApplication;
+
+    @Inject
+    public RhzfDetailModel(IRepositoryManager repositoryManager) {
+        super(repositoryManager);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mGson = null;
+        this.mApplication = null;
+    }
+}

+ 46 - 0
app/src/main/java/com/zkjc/policedemo/mvp/model/RhzfFwqzModel.java

@@ -0,0 +1,46 @@
+package com.zkjc.policedemo.mvp.model;
+
+import android.app.Application;
+
+import com.google.gson.Gson;
+import com.jess.arms.integration.IRepositoryManager;
+import com.jess.arms.mvp.BaseModel;
+
+import com.jess.arms.di.scope.FragmentScope;
+
+import javax.inject.Inject;
+
+import com.zkjc.policedemo.mvp.contract.RhzfFwqzContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:36
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+public class RhzfFwqzModel extends BaseModel implements RhzfFwqzContract.Model {
+    @Inject
+    Gson mGson;
+    @Inject
+    Application mApplication;
+
+    @Inject
+    public RhzfFwqzModel(IRepositoryManager repositoryManager) {
+        super(repositoryManager);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mGson = null;
+        this.mApplication = null;
+    }
+}

+ 46 - 0
app/src/main/java/com/zkjc/policedemo/mvp/model/RhzfJxcsModel.java

@@ -0,0 +1,46 @@
+package com.zkjc.policedemo.mvp.model;
+
+import android.app.Application;
+
+import com.google.gson.Gson;
+import com.jess.arms.integration.IRepositoryManager;
+import com.jess.arms.mvp.BaseModel;
+
+import com.jess.arms.di.scope.FragmentScope;
+
+import javax.inject.Inject;
+
+import com.zkjc.policedemo.mvp.contract.RhzfJxcsContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:34
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+public class RhzfJxcsModel extends BaseModel implements RhzfJxcsContract.Model {
+    @Inject
+    Gson mGson;
+    @Inject
+    Application mApplication;
+
+    @Inject
+    public RhzfJxcsModel(IRepositoryManager repositoryManager) {
+        super(repositoryManager);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mGson = null;
+        this.mApplication = null;
+    }
+}

+ 46 - 0
app/src/main/java/com/zkjc/policedemo/mvp/model/RhzfMdModel.java

@@ -0,0 +1,46 @@
+package com.zkjc.policedemo.mvp.model;
+
+import android.app.Application;
+
+import com.google.gson.Gson;
+import com.jess.arms.integration.IRepositoryManager;
+import com.jess.arms.mvp.BaseModel;
+
+import com.jess.arms.di.scope.FragmentScope;
+
+import javax.inject.Inject;
+
+import com.zkjc.policedemo.mvp.contract.RhzfMdContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 09:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+public class RhzfMdModel extends BaseModel implements RhzfMdContract.Model {
+    @Inject
+    Gson mGson;
+    @Inject
+    Application mApplication;
+
+    @Inject
+    public RhzfMdModel(IRepositoryManager repositoryManager) {
+        super(repositoryManager);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mGson = null;
+        this.mApplication = null;
+    }
+}

+ 46 - 0
app/src/main/java/com/zkjc/policedemo/mvp/model/RhzfQzqzModel.java

@@ -0,0 +1,46 @@
+package com.zkjc.policedemo.mvp.model;
+
+import android.app.Application;
+
+import com.google.gson.Gson;
+import com.jess.arms.integration.IRepositoryManager;
+import com.jess.arms.mvp.BaseModel;
+
+import com.jess.arms.di.scope.FragmentScope;
+
+import javax.inject.Inject;
+
+import com.zkjc.policedemo.mvp.contract.RhzfQzqzContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:40
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+public class RhzfQzqzModel extends BaseModel implements RhzfQzqzContract.Model {
+    @Inject
+    Gson mGson;
+    @Inject
+    Application mApplication;
+
+    @Inject
+    public RhzfQzqzModel(IRepositoryManager repositoryManager) {
+        super(repositoryManager);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mGson = null;
+        this.mApplication = null;
+    }
+}

+ 46 - 0
app/src/main/java/com/zkjc/policedemo/mvp/model/SyrkModel.java

@@ -0,0 +1,46 @@
+package com.zkjc.policedemo.mvp.model;
+
+import android.app.Application;
+
+import com.google.gson.Gson;
+import com.jess.arms.integration.IRepositoryManager;
+import com.jess.arms.mvp.BaseModel;
+
+import com.jess.arms.di.scope.FragmentScope;
+
+import javax.inject.Inject;
+
+import com.zkjc.policedemo.mvp.contract.SyrkContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/13/2024 14:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+public class SyrkModel extends BaseModel implements SyrkContract.Model {
+    @Inject
+    Gson mGson;
+    @Inject
+    Application mApplication;
+
+    @Inject
+    public SyrkModel(IRepositoryManager repositoryManager) {
+        super(repositoryManager);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mGson = null;
+        this.mApplication = null;
+    }
+}

+ 53 - 64
app/src/main/java/com/zkjc/policedemo/mvp/model/entity/RkxxEntity.java

@@ -1,12 +1,10 @@
 package com.zkjc.policedemo.mvp.model.entity;
 
-import java.util.List;
-
 public class RkxxEntity {
 
     private int code;
     private boolean success;
-    private List<Rkxx> data;
+    private Rkxx data;
     private String msg;
 
     public int getCode() {
@@ -33,11 +31,11 @@ public class RkxxEntity {
         this.msg = msg;
     }
 
-    public List<Rkxx> getData() {
+    public Rkxx getData() {
         return data;
     }
 
-    public void setData(List<Rkxx> data) {
+    public void setData(Rkxx data) {
         this.data = data;
     }
 
@@ -69,24 +67,23 @@ public class RkxxEntity {
         private String rk_jbxxly;
         private String fzDh;
         private String csrq;
-        private String ry_mz_dm;
-        private String ry_mz;
+        private String ryMzDm;
+        private String ryMz;
         private String hjdz;
         private String ryxb;
         private String zjxydm;
         private String zjxy;
-        private String ry_hyzk_dm;
-        private String ry_hyzk;
-        private String ry_byzk_dm;
-        private String ry_byzk;
+        private String ryHyzkDm;
+        private String ryHyzk;
+        private String ryByzkDm;
+        private String ryByzk;
         private String xldm;
-        private String xl;
         private String fzDw;
         private String fzZp;
-        private String ry_whcd;
-        private String ry_whcd_dm;
-        private String ry_zzmm;
-        private String ry_zzmm_dm;
+        private String ryWhcd;
+        private String ryWhcdDm;
+        private String ryZzmm;
+        private String ryZzmmDm;
 
         public String getRyxb() {
             return ryxb;
@@ -112,44 +109,44 @@ public class RkxxEntity {
             this.fzZp = fzZp;
         }
 
-        public String getRy_whcd() {
-            return ry_whcd;
+        public String getRyWhcd() {
+            return ryWhcd;
         }
 
-        public void setRy_whcd(String ry_whcd) {
-            this.ry_whcd = ry_whcd;
+        public void setRyWhcd(String ryWhcd) {
+            this.ryWhcd = ryWhcd;
         }
 
-        public String getRy_whcd_dm() {
-            return ry_whcd_dm;
+        public String getRyWhcdDm() {
+            return ryWhcdDm;
         }
 
-        public void setRy_whcd_dm(String ry_whcd_dm) {
-            this.ry_whcd_dm = ry_whcd_dm;
+        public void setRyWhcdDm(String ryWhcdDm) {
+            this.ryWhcdDm = ryWhcdDm;
         }
 
-        public String getRy_zzmm() {
-            return ry_zzmm;
+        public String getRyZzmm() {
+            return ryZzmm;
         }
 
-        public void setRy_zzmm(String ry_zzmm) {
-            this.ry_zzmm = ry_zzmm;
+        public void setRyZzmm(String ryZzmm) {
+            this.ryZzmm = ryZzmm;
         }
 
-        public String getRy_zzmm_dm() {
-            return ry_zzmm_dm;
+        public String getRyZzmmDm() {
+            return ryZzmmDm;
         }
 
-        public void setRy_zzmm_dm(String ry_zzmm_dm) {
-            this.ry_zzmm_dm = ry_zzmm_dm;
+        public void setRyZzmmDm(String ryZzmmDm) {
+            this.ryZzmmDm = ryZzmmDm;
         }
 
-        public String getRy_mz() {
-            return ry_mz;
+        public String getRyMz() {
+            return ryMz;
         }
 
-        public void setRy_mz(String ry_mz) {
-            this.ry_mz = ry_mz;
+        public void setRyMz(String ryMz) {
+            this.ryMz = ryMz;
         }
 
         public String getZjxy() {
@@ -160,28 +157,20 @@ public class RkxxEntity {
             this.zjxy = zjxy;
         }
 
-        public String getRy_hyzk() {
-            return ry_hyzk;
-        }
-
-        public void setRy_hyzk(String ry_hyzk) {
-            this.ry_hyzk = ry_hyzk;
-        }
-
-        public String getRy_byzk() {
-            return ry_byzk;
+        public String getRyHyzk() {
+            return ryHyzk;
         }
 
-        public void setRy_byzk(String ry_byzk) {
-            this.ry_byzk = ry_byzk;
+        public void setRyHyzk(String ryHyzk) {
+            this.ryHyzk = ryHyzk;
         }
 
-        public String getXl() {
-            return xl;
+        public String getRyByzk() {
+            return ryByzk;
         }
 
-        public void setXl(String xl) {
-            this.xl = xl;
+        public void setRyByzk(String ryByzk) {
+            this.ryByzk = ryByzk;
         }
 
         public String getZjxydm() {
@@ -192,20 +181,20 @@ public class RkxxEntity {
             this.zjxydm = zjxydm;
         }
 
-        public String getRy_hyzk_dm() {
-            return ry_hyzk_dm;
+        public String getRyHyzkDm() {
+            return ryHyzkDm;
         }
 
-        public void setRy_hyzk_dm(String ry_hyzk_dm) {
-            this.ry_hyzk_dm = ry_hyzk_dm;
+        public void setRyHyzkDm(String ryHyzkDm) {
+            this.ryHyzkDm = ryHyzkDm;
         }
 
-        public String getRy_byzk_dm() {
-            return ry_byzk_dm;
+        public String getRyByzkDm() {
+            return ryByzkDm;
         }
 
-        public void setRy_byzk_dm(String ry_byzk_dm) {
-            this.ry_byzk_dm = ry_byzk_dm;
+        public void setRyByzkDm(String ryByzkDm) {
+            this.ryByzkDm = ryByzkDm;
         }
 
         public String getXldm() {
@@ -256,12 +245,12 @@ public class RkxxEntity {
             this.csrq = csrq;
         }
 
-        public String getRy_mz_dm() {
-            return ry_mz_dm;
+        public String getRyMzDm() {
+            return ryMzDm;
         }
 
-        public void setRy_mz_dm(String ry_mz_dm) {
-            this.ry_mz_dm = ry_mz_dm;
+        public void setRyMzDm(String ryMzDm) {
+            this.ryMzDm = ryMzDm;
         }
     }
 }

+ 3 - 2
app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddCzrkPresenter.java

@@ -62,12 +62,13 @@ public class AddCzrkPresenter extends BasePresenter<AddCzrkContract.Model, AddCz
 
     public void getRyData(Map<String, String> map) {
         Map<String, Object> map1 = new HashMap<>();
-        map1.put("className", "fwInfoController");
-        map1.put("methodName", "getRyxxBySfzh");
+        map1.put("className", "userController");
+        map1.put("methodName", "selectRyxxBySfzh");
         map1.put("params", map);
         ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
             @Override
             public void onSuccess(String result) {
+                Utils.getInstances().dismissDialog();
                 if (mRootView != null)
                     mRootView.getRyDataSuccess(result);
             }

+ 1 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddJzrkPresenter.java

@@ -91,6 +91,7 @@ public class AddJzrkPresenter extends BasePresenter<AddJzrkContract.Model, AddJz
         ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
             @Override
             public void onSuccess(String result) {
+                Utils.getInstances().dismissDialog();
                 if (mRootView != null)
                     mRootView.getRyDataSuccess(result);
             }

+ 25 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddPersonPresenter.java

@@ -68,6 +68,31 @@ public class AddPersonPresenter extends BasePresenter<AddPersonContract.Model, A
         this.mApplication = null;
     }
 
+    public void getRyData(Map<String, String> map) {
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("className", "userController");
+        map1.put("methodName", "selectRyxxBySfzh");
+        map1.put("params", map);
+        ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
+            @Override
+            public void onSuccess(String result) {
+                Utils.getInstances().dismissDialog();
+                if (mRootView != null)
+                    mRootView.getRyDataSuccess(result);
+            }
+
+            @Override
+            public void onError(Throwable throwable) {
+                Utils.getInstances().dismissDialog();
+            }
+
+            @Override
+            public void onFinsh() {
+
+            }
+        });
+    }
+
     public void uploadImg(MultipartBody multipartBody) {
 
         mModel.uploadImg(multipartBody)

+ 26 - 2
app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddWlhRkPresenter.java

@@ -59,6 +59,30 @@ public class AddWlhRkPresenter extends BasePresenter<AddWlhRkContract.Model, Add
         this.mImageLoader = null;
         this.mApplication = null;
     }
+    public void getRyData(Map<String, String> map) {
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("className", "userController");
+        map1.put("methodName", "selectRyxxBySfzh");
+        map1.put("params", map);
+        ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
+            @Override
+            public void onSuccess(String result) {
+                Utils.getInstances().dismissDialog();
+                if (mRootView != null)
+                    mRootView.getRyDataSuccess(result);
+            }
+
+            @Override
+            public void onError(Throwable throwable) {
+                Utils.getInstances().dismissDialog();
+            }
+
+            @Override
+            public void onFinsh() {
+
+            }
+        });
+    }
 
     public void verifyRy(Map<String, String> map) {
         Map<String, Object> map1 = new HashMap<>();
@@ -68,8 +92,8 @@ public class AddWlhRkPresenter extends BasePresenter<AddWlhRkContract.Model, Add
         ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
             @Override
             public void onSuccess(String result) {
-                if (mRootView != null)
-                    mRootView.getRyDataSuccess(result);
+//                if (mRootView != null)
+//                    mRootView.getRyDataSuccess(result);
             }
 
             @Override

+ 133 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/RhzfDetailPresenter.java

@@ -0,0 +1,133 @@
+package com.zkjc.policedemo.mvp.presenter;
+
+import android.app.Application;
+
+import com.google.gson.Gson;
+import com.hjq.toast.ToastUtils;
+import com.jess.arms.integration.AppManager;
+import com.jess.arms.di.scope.ActivityScope;
+import com.jess.arms.mvp.BasePresenter;
+import com.jess.arms.http.imageloader.ImageLoader;
+
+import me.jessyan.rxerrorhandler.core.RxErrorHandler;
+
+import javax.inject.Inject;
+
+import com.zkjc.common.utils.Utils;
+import com.zkjc.policedemo.app.utils.CommonInterFace;
+import com.zkjc.policedemo.app.utils.ReqToBus;
+import com.zkjc.policedemo.mvp.contract.RhzfDetailContract;
+import com.zkjc.policedemo.mvp.model.entity.RhzfRoomEntity;
+import com.zkjc.policedemo.mvp.model.entity.ZdAllEntity;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/12/2024 14:03
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@ActivityScope
+public class RhzfDetailPresenter extends BasePresenter<RhzfDetailContract.Model, RhzfDetailContract.View> {
+    @Inject
+    RxErrorHandler mErrorHandler;
+    @Inject
+    Application mApplication;
+    @Inject
+    ImageLoader mImageLoader;
+    @Inject
+    AppManager mAppManager;
+
+    @Inject
+    public RhzfDetailPresenter(RhzfDetailContract.Model model, RhzfDetailContract.View rootView) {
+        super(model, rootView);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mErrorHandler = null;
+        this.mAppManager = null;
+        this.mImageLoader = null;
+        this.mApplication = null;
+    }
+
+    public void getRoomData(Map<String, String> map) {
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("className", "fwInfoController");
+        map1.put("methodName", "getFjDetail");
+        map1.put("params", map);
+        ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
+            @Override
+            public void onSuccess(String result) {
+                Utils.getInstances().dismissDialog();
+                RhzfRoomEntity entity = new Gson().fromJson(result, RhzfRoomEntity.class);
+                int code = entity.getCode();
+                if (code == 200) {
+                    if (mRootView != null) {
+                        mRootView.onDataSuccess(entity.getData());
+                    }
+                } else {
+                    ToastUtils.show(entity.getMsg());
+                }
+            }
+
+            @Override
+            public void onError(Throwable throwable) {
+                Utils.getInstances().dismissDialog();
+                ToastUtils.show("获取数据失败,请重试!");
+            }
+
+            @Override
+            public void onFinsh() {
+
+            }
+        });
+    }
+
+    public void getDictionary(Map<String, String> map) {
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("className", "fwInfoController");
+        map1.put("methodName", "dictionary");
+        map1.put("params", map);
+        ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
+            @Override
+            public void onSuccess(String result) {
+                ZdAllEntity entity = new Gson().fromJson(result, ZdAllEntity.class);
+                ZdAllEntity.DataBean data = entity.getData();
+                int code = entity.getCode();
+                if (code == 200) {
+                    if (data != null) {
+                        if (mRootView != null) {
+                            mRootView.onSuccess(data);
+                        }
+                    } else {
+                        ToastUtils.show("数据出错");
+                    }
+                } else {
+                    ToastUtils.show(entity.getMsg());
+                }
+            }
+
+            @Override
+            public void onError(Throwable throwable) {
+                ToastUtils.show("获取数据失败,请重试!");
+            }
+
+            @Override
+            public void onFinsh() {
+
+            }
+        });
+
+    }
+}

+ 53 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/RhzfFwqzPresenter.java

@@ -0,0 +1,53 @@
+package com.zkjc.policedemo.mvp.presenter;
+
+import android.app.Application;
+
+import com.jess.arms.integration.AppManager;
+import com.jess.arms.di.scope.FragmentScope;
+import com.jess.arms.mvp.BasePresenter;
+import com.jess.arms.http.imageloader.ImageLoader;
+
+import me.jessyan.rxerrorhandler.core.RxErrorHandler;
+
+import javax.inject.Inject;
+
+import com.zkjc.policedemo.mvp.contract.RhzfFwqzContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:36
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+public class RhzfFwqzPresenter extends BasePresenter<RhzfFwqzContract.Model, RhzfFwqzContract.View> {
+    @Inject
+    RxErrorHandler mErrorHandler;
+    @Inject
+    Application mApplication;
+    @Inject
+    ImageLoader mImageLoader;
+    @Inject
+    AppManager mAppManager;
+
+    @Inject
+    public RhzfFwqzPresenter(RhzfFwqzContract.Model model, RhzfFwqzContract.View rootView) {
+        super(model, rootView);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mErrorHandler = null;
+        this.mAppManager = null;
+        this.mImageLoader = null;
+        this.mApplication = null;
+    }
+}

+ 53 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/RhzfJxcsPresenter.java

@@ -0,0 +1,53 @@
+package com.zkjc.policedemo.mvp.presenter;
+
+import android.app.Application;
+
+import com.jess.arms.integration.AppManager;
+import com.jess.arms.di.scope.FragmentScope;
+import com.jess.arms.mvp.BasePresenter;
+import com.jess.arms.http.imageloader.ImageLoader;
+
+import me.jessyan.rxerrorhandler.core.RxErrorHandler;
+
+import javax.inject.Inject;
+
+import com.zkjc.policedemo.mvp.contract.RhzfJxcsContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:34
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+public class RhzfJxcsPresenter extends BasePresenter<RhzfJxcsContract.Model, RhzfJxcsContract.View> {
+    @Inject
+    RxErrorHandler mErrorHandler;
+    @Inject
+    Application mApplication;
+    @Inject
+    ImageLoader mImageLoader;
+    @Inject
+    AppManager mAppManager;
+
+    @Inject
+    public RhzfJxcsPresenter(RhzfJxcsContract.Model model, RhzfJxcsContract.View rootView) {
+        super(model, rootView);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mErrorHandler = null;
+        this.mAppManager = null;
+        this.mImageLoader = null;
+        this.mApplication = null;
+    }
+}

+ 112 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/RhzfMdPresenter.java

@@ -0,0 +1,112 @@
+package com.zkjc.policedemo.mvp.presenter;
+
+import android.app.Application;
+
+import com.hjq.toast.ToastUtils;
+import com.jess.arms.integration.AppManager;
+import com.jess.arms.di.scope.FragmentScope;
+import com.jess.arms.mvp.BasePresenter;
+import com.jess.arms.http.imageloader.ImageLoader;
+
+import me.jessyan.rxerrorhandler.core.RxErrorHandler;
+
+import javax.inject.Inject;
+
+import com.zkjc.common.utils.Utils;
+import com.zkjc.policedemo.app.utils.CommonInterFace;
+import com.zkjc.policedemo.app.utils.ReqToBus;
+import com.zkjc.policedemo.mvp.contract.RhzfMdContract;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 09:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+public class RhzfMdPresenter extends BasePresenter<RhzfMdContract.Model, RhzfMdContract.View> {
+    @Inject
+    RxErrorHandler mErrorHandler;
+    @Inject
+    Application mApplication;
+    @Inject
+    ImageLoader mImageLoader;
+    @Inject
+    AppManager mAppManager;
+
+    @Inject
+    public RhzfMdPresenter(RhzfMdContract.Model model, RhzfMdContract.View rootView) {
+        super(model, rootView);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mErrorHandler = null;
+        this.mAppManager = null;
+        this.mImageLoader = null;
+        this.mApplication = null;
+    }
+
+
+    public void getMddjLb(Map<String, String> map) {
+        Map<String, Object> param = new HashMap<>();
+        param.put("className", "mdjfDjController");
+        param.put("methodName", "pageToApp");
+        param.put("params", map);
+        ReqToBus.getInstance().init(mApplication).getRequest(param, new CommonInterFace() {
+            @Override
+            public void onSuccess(String result) {
+                if (mRootView != null) {
+                    mRootView.onSuccess(result);
+                }
+            }
+
+            @Override
+            public void onError(Throwable throwable) {
+                Utils.getInstances().dismissDialog();
+                ToastUtils.show("网络异常!");
+            }
+
+            @Override
+            public void onFinsh() {
+
+            }
+        });
+    }
+
+    public void mdgz(Map<String, String> map) {
+        Map<String, Object> param = new HashMap<>();
+        param.put("className", "mdjfDjController");
+        param.put("methodName", "update");
+        param.put("params", map);
+        ReqToBus.getInstance().init(mApplication).getRequest(param, new CommonInterFace() {
+            @Override
+            public void onSuccess(String result) {
+                if (mRootView != null) {
+                    mRootView.onYgz(result);
+                }
+            }
+
+            @Override
+            public void onError(Throwable throwable) {
+                ToastUtils.show("提交失败,请重试!");
+            }
+
+            @Override
+            public void onFinsh() {
+
+            }
+        });
+    }
+}

+ 53 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/RhzfQzqzPresenter.java

@@ -0,0 +1,53 @@
+package com.zkjc.policedemo.mvp.presenter;
+
+import android.app.Application;
+
+import com.jess.arms.integration.AppManager;
+import com.jess.arms.di.scope.FragmentScope;
+import com.jess.arms.mvp.BasePresenter;
+import com.jess.arms.http.imageloader.ImageLoader;
+
+import me.jessyan.rxerrorhandler.core.RxErrorHandler;
+
+import javax.inject.Inject;
+
+import com.zkjc.policedemo.mvp.contract.RhzfQzqzContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:40
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+public class RhzfQzqzPresenter extends BasePresenter<RhzfQzqzContract.Model, RhzfQzqzContract.View> {
+    @Inject
+    RxErrorHandler mErrorHandler;
+    @Inject
+    Application mApplication;
+    @Inject
+    ImageLoader mImageLoader;
+    @Inject
+    AppManager mAppManager;
+
+    @Inject
+    public RhzfQzqzPresenter(RhzfQzqzContract.Model model, RhzfQzqzContract.View rootView) {
+        super(model, rootView);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mErrorHandler = null;
+        this.mAppManager = null;
+        this.mImageLoader = null;
+        this.mApplication = null;
+    }
+}

+ 53 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/SyrkPresenter.java

@@ -0,0 +1,53 @@
+package com.zkjc.policedemo.mvp.presenter;
+
+import android.app.Application;
+
+import com.jess.arms.integration.AppManager;
+import com.jess.arms.di.scope.FragmentScope;
+import com.jess.arms.mvp.BasePresenter;
+import com.jess.arms.http.imageloader.ImageLoader;
+
+import me.jessyan.rxerrorhandler.core.RxErrorHandler;
+
+import javax.inject.Inject;
+
+import com.zkjc.policedemo.mvp.contract.SyrkContract;
+
+
+/**
+ * ================================================
+ * Description: 实有人口
+ * <p>
+ * Created by MVPArmsTemplate on 11/13/2024 14:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+@FragmentScope
+public class SyrkPresenter extends BasePresenter<SyrkContract.Model, SyrkContract.View> {
+    @Inject
+    RxErrorHandler mErrorHandler;
+    @Inject
+    Application mApplication;
+    @Inject
+    ImageLoader mImageLoader;
+    @Inject
+    AppManager mAppManager;
+
+    @Inject
+    public SyrkPresenter(SyrkContract.Model model, SyrkContract.View rootView) {
+        super(model, rootView);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mErrorHandler = null;
+        this.mAppManager = null;
+        this.mImageLoader = null;
+        this.mApplication = null;
+    }
+}

+ 33 - 25
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddCzrkActivity.java

@@ -551,9 +551,10 @@ public class AddCzrkActivity extends ZkjcBaseActivity<AddCzrkPresenter> implemen
                 ll_price_select.setVisibility(View.GONE);
                 et_id_card.getText().clear();
                 Map<String, String> map = new HashMap<>();
-                map.put("rksfzh", etSfzh.getText().toString());
+                map.put("sfzh", etSfzh.getText().toString());
 //                mPresenter.verifyRy(map);
-//                mPresenter.getRyData(map);
+                Utils.getInstances().showDialog(AddCzrkActivity.this, "获取人员信息中");
+                mPresenter.getRyData(map);
             }
         });
         ll_price_select.setOnClickListener(new View.OnClickListener() {
@@ -1104,9 +1105,10 @@ public class AddCzrkActivity extends ZkjcBaseActivity<AddCzrkPresenter> implemen
                     etSfzh.setText(result.getIdNumber().toString());
 
                     Map<String, String> map = new HashMap<>();
-                    map.put("rksfzh", etSfzh.getText().toString());
+                    map.put("sfzh", etSfzh.getText().toString());
 //                    mPresenter.verifyRy(map);
-//                    mPresenter.getRyData(map);
+                    Utils.getInstances().showDialog(AddCzrkActivity.this, "获取人员信息中");
+                    mPresenter.getRyData(map);
                 }
             }
 
@@ -1364,12 +1366,11 @@ public class AddCzrkActivity extends ZkjcBaseActivity<AddCzrkPresenter> implemen
     public void getRyDataSuccess(String result) {
         try {
             RkxxEntity entity = new Gson().fromJson(result, RkxxEntity.class);
-            List<RkxxEntity.Rkxx> list = entity.getData();
-            if (list == null || list.isEmpty()) {
+            RkxxEntity.Rkxx rkxx = entity.getData();
+            if (rkxx == null) {
                 ToastUtils.show(TOAST_INFO);
             } else {
                 mHasRkxx = true;
-                RkxxEntity.Rkxx rkxx = list.get(0);
                 etXm.setText(rkxx.getFzXm());
                 if ("男".equals(rkxx.getRyxb())) {
                     rbMan.setChecked(true);
@@ -1377,40 +1378,47 @@ public class AddCzrkActivity extends ZkjcBaseActivity<AddCzrkPresenter> implemen
                     rbWoman.setChecked(true);
                 }
                 etDh.setText(rkxx.getFzDh());
-                csrq.setText(rkxx.getCsrq());
+//                csrq.setText(rkxx.getCsrq());
                 etHjdz.setText(rkxx.getHjdz());
 
                 if (!TextUtils.isEmpty(rkxx.getZjxy())) {
                     zjxy.setText(rkxx.getZjxy());
                     mSelectZjxy = new Fwtd();
-                    mSelectZjxy.setValue(rkxx.getRy_byzk_dm());
+                    mSelectZjxy.setValue(rkxx.getRyByzkDm());
                     mSelectZjxy.setLabel(rkxx.getZjxy());
                 } 
-                if (!TextUtils.isEmpty(rkxx.getRy_hyzk())) {
-                    hyzk.setText(rkxx.getRy_hyzk());
+                if (!TextUtils.isEmpty(rkxx.getRyHyzk())) {
+                    hyzk.setText(rkxx.getRyHyzk());
                     mSelectHyzk = new Fwtd();
-                    mSelectHyzk.setValue(rkxx.getRy_hyzk_dm());
-                    mSelectHyzk.setLabel(rkxx.getRy_hyzk());
+                    mSelectHyzk.setValue(rkxx.getRyHyzkDm());
+                    mSelectHyzk.setLabel(rkxx.getRyHyzk());
                 } 
-                if (!TextUtils.isEmpty(rkxx.getXl())) {
-                    whcd.setText(rkxx.getXl());
+                if (!TextUtils.isEmpty(rkxx.getRyWhcd())) {
+                    whcd.setText(rkxx.getRyWhcd());
                     mSelectWhcd = new Fwtd();
-                    mSelectWhcd.setValue(rkxx.getXldm());
-                    mSelectWhcd.setLabel(rkxx.getXl());
+                    mSelectWhcd.setValue(rkxx.getRyWhcdDm());
+                    mSelectWhcd.setLabel(rkxx.getRyWhcd());
                 } 
-                if (!TextUtils.isEmpty(rkxx.getRy_byzk())) {
-                    byqk.setText(rkxx.getRy_byzk());
+                if (!TextUtils.isEmpty(rkxx.getRyByzk())) {
+                    byqk.setText(rkxx.getRyByzk());
                     mSelectByzk = new Fwtd();
-                    mSelectByzk.setValue(rkxx.getRy_byzk_dm());
-                    mSelectByzk.setLabel(rkxx.getRy_byzk());
+                    mSelectByzk.setValue(rkxx.getRyByzkDm());
+                    mSelectByzk.setLabel(rkxx.getRyByzk());
                 }
-                if (!TextUtils.isEmpty(rkxx.getRy_mz())) {
-                    tvMz.setText(rkxx.getRy_mz());
+                if (!TextUtils.isEmpty(rkxx.getRyMz())) {
+                    tvMz.setText(rkxx.getRyMz());
                     mSelectMz = new Fwtd();
-                    mSelectMz.setValue(rkxx.getRy_mz_dm());
-                    mSelectMz.setLabel(rkxx.getRy_mz());
+                    mSelectMz.setValue(rkxx.getRyMzDm());
+                    mSelectMz.setLabel(rkxx.getRyMz());
+                }
+                if (!TextUtils.isEmpty(rkxx.getRyZzmm())) {
+                    zzmm.setText(rkxx.getRyZzmm());
+                    mSelectZzmm = new Fwtd();
+                    mSelectZzmm.setValue(rkxx.getRyZzmmDm());
+                    mSelectZzmm.setLabel(rkxx.getRyZzmm());
                 }
 
+                etDw.setText(rkxx.getFzDw());
 //                etXm.setEnabled(false);
 //                rbWoman.setEnabled(false);
 //                rbMan.setEnabled(false);

+ 1 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddJfActivity.java

@@ -426,6 +426,7 @@ public class AddJfActivity extends ZkjcBaseActivity<AddJfPresenter> implements A
                 Utils.getInstances().showDialog(AddJfActivity.this, "正在上传数据");
                 if (mItem == null) {
                     map.put("mdjfDj", map1);
+                    map.put("fwId", getIntent().getStringExtra("fwId"));
                     mPresenter.mdkfDj(map);
                 } else {
                     map1.put("id", mItem.getId());

+ 24 - 3
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddPersonActivity.java

@@ -61,9 +61,11 @@ import com.zkjc.policedemo.app.utils.KeyboardUtil;
 import com.zkjc.policedemo.di.component.DaggerAddPersonComponent;
 import com.zkjc.policedemo.mvp.contract.AddPersonContract;
 import com.zkjc.policedemo.mvp.model.entity.CommonEntity;
+import com.zkjc.policedemo.mvp.model.entity.Fwtd;
 import com.zkjc.policedemo.mvp.model.entity.MdjfEntity;
 import com.zkjc.policedemo.mvp.model.entity.MdjfXqEntity;
 import com.zkjc.policedemo.mvp.model.entity.PersonEntity;
+import com.zkjc.policedemo.mvp.model.entity.RkxxEntity;
 import com.zkjc.policedemo.mvp.model.entity.RyEntity;
 import com.zkjc.policedemo.mvp.presenter.AddPersonPresenter;
 import com.zkjc.policedemo.mvp.ui.adapter.ImagePickerAdapter;
@@ -81,6 +83,7 @@ import okhttp3.MultipartBody;
 import okhttp3.RequestBody;
 
 import static com.jess.arms.utils.Preconditions.checkNotNull;
+import static com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity.TOAST_INFO;
 
 
 /**
@@ -464,8 +467,11 @@ public class AddPersonActivity extends ZkjcBaseActivity<AddPersonPresenter> impl
                 ll_price_select.setVisibility(View.GONE);
                 et_id_card.getText().clear();
                 Map<String, String> map = new HashMap<>();
-                map.put("rksfzh", etIdcard.getText().toString());
+                map.put("sfzh", etIdcard.getText().toString());
 //                mPresenter.verifyRy(map);
+
+                Utils.getInstances().showDialog(AddPersonActivity.this, "获取人员信息中");
+                mPresenter.getRyData(map);
             }
         });
         ll_price_select.setOnClickListener(new View.OnClickListener() {
@@ -613,8 +619,11 @@ public class AddPersonActivity extends ZkjcBaseActivity<AddPersonPresenter> impl
                     etXm.setText(result.getName().toString());
                     etIdcard.setText(result.getIdNumber().toString());
                     Map<String, String> map = new HashMap<>();
-                    map.put("rksfzh", etIdcard.getText().toString());
+                    map.put("sfzh", etIdcard.getText().toString());
 //                    mPresenter.verifyRy(map);
+
+                    Utils.getInstances().showDialog(AddPersonActivity.this, "获取人员信息中");
+                    mPresenter.getRyData(map);
                 }
             }
 
@@ -751,6 +760,18 @@ public class AddPersonActivity extends ZkjcBaseActivity<AddPersonPresenter> impl
     @Override
     public void getRyDataSuccess(String result) {
         try {
+            RkxxEntity entity = new Gson().fromJson(result, RkxxEntity.class);
+            RkxxEntity.Rkxx rkxx = entity.getData();
+            if (rkxx == null) {
+                ToastUtils.show(TOAST_INFO);
+            } else {
+                etXm.setText(rkxx.getFzXm());
+                etLxdh.setText(rkxx.getFzDh());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        /*try {
             RyEntity kqBean = new Gson().fromJson(result, RyEntity.class);
             if (kqBean.getData() >= 1) {
                 android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(AddPersonActivity.this);
@@ -765,7 +786,7 @@ public class AddPersonActivity extends ZkjcBaseActivity<AddPersonPresenter> impl
             }
         } catch (Exception e) {
             e.printStackTrace();
-        }
+        }*/
     }
 
 

+ 132 - 12
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddWlhRkActivity.java

@@ -1,5 +1,6 @@
 package com.zkjc.policedemo.mvp.ui.activity;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -30,6 +31,8 @@ import com.baidu.ocr.sdk.OCR;
 import com.baidu.ocr.sdk.OnResultListener;
 import com.baidu.ocr.sdk.exception.OCRError;
 import com.baidu.ocr.sdk.model.AccessToken;
+import com.baidu.ocr.sdk.model.IDCardParams;
+import com.baidu.ocr.sdk.model.IDCardResult;
 import com.baidu.ocr.ui.camera.CameraActivity;
 import com.baidu.ocr.ui.camera.CameraNativeHelper;
 import com.baidu.ocr.ui.camera.CameraView;
@@ -67,6 +70,7 @@ import com.zkjc.policedemo.mvp.model.entity.Area;
 import com.zkjc.policedemo.mvp.model.entity.Fwtd;
 import com.zkjc.policedemo.mvp.model.entity.JsonBean;
 import com.zkjc.policedemo.mvp.model.entity.RhxxBean;
+import com.zkjc.policedemo.mvp.model.entity.RkxxEntity;
 import com.zkjc.policedemo.mvp.model.entity.RyEntity;
 import com.zkjc.policedemo.mvp.model.entity.ZdAllEntity;
 import com.zkjc.policedemo.mvp.presenter.AddWlhRkPresenter;
@@ -74,6 +78,7 @@ import com.zkjc.policedemo.mvp.ui.fragment.RhzfRyDeleteDialog;
 
 import org.json.JSONArray;
 
+import java.io.File;
 import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -88,6 +93,7 @@ import static com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity.BYZK;
 import static com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity.GLLB;
 import static com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity.HYZK;
 import static com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity.MZ;
+import static com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity.TOAST_INFO;
 import static com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity.WHCD;
 import static com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity.YFZGX;
 import static com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity.ZZMM;
@@ -289,6 +295,7 @@ public class AddWlhRkActivity extends ZkjcBaseActivity<AddWlhRkPresenter> implem
     private Fwtd mSelectZjxy;
     private Fwtd mSelectMz;
     private boolean mNeedUpdate;
+    private boolean mHasRkxx = true;  // 暂时放开判断,外省人口不返回数据
 
     @Override
     public void setupActivityComponent(@NonNull AppComponent appComponent) {
@@ -474,8 +481,10 @@ public class AddWlhRkActivity extends ZkjcBaseActivity<AddWlhRkPresenter> implem
                 ll_price_select.setVisibility(View.GONE);
                 et_id_card.getText().clear();
                 Map<String, String> map = new HashMap<>();
-                map.put("rksfzh", etSfzh.getText().toString());
+                map.put("sfzh", etSfzh.getText().toString());
 //                mPresenter.verifyRy(map);
+                Utils.getInstances().showDialog(AddWlhRkActivity.this, "获取人员信息中");
+                mPresenter.getRyData(map);
             }
         });
         ll_price_select.setOnClickListener(new View.OnClickListener() {
@@ -812,6 +821,10 @@ public class AddWlhRkActivity extends ZkjcBaseActivity<AddWlhRkPresenter> implem
     }
 
     private void save() {
+        if (mInfo == null && !mHasRkxx) {
+            ToastUtils.show(TOAST_INFO);
+            return;
+        }
         if (!verifyData()) {
             return;
         }
@@ -995,6 +1008,19 @@ public class AddWlhRkActivity extends ZkjcBaseActivity<AddWlhRkPresenter> implem
     @Override
     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == REQUEST_CODE_CAMERA && resultCode == Activity.RESULT_OK) {
+            if (data != null) {
+                String contentType = data.getStringExtra(CameraActivity.KEY_CONTENT_TYPE);
+                String filePath = FileUtil.getSaveFile(getApplicationContext()).getAbsolutePath();
+                if (!TextUtils.isEmpty(contentType)) {
+                    if (CameraActivity.CONTENT_TYPE_ID_CARD_FRONT.equals(contentType)) {
+                        recIDCard(IDCardParams.ID_CARD_SIDE_FRONT, filePath);
+                    } else if (CameraActivity.CONTENT_TYPE_ID_CARD_BACK.equals(contentType)) {
+                        recIDCard(IDCardParams.ID_CARD_SIDE_BACK, filePath);
+                    }
+                }
+            }
+        }
         if (resultCode == 5) {
             if (data != null && requestCode == 0) {
                 String location = data.getStringExtra("location");
@@ -1002,6 +1028,52 @@ public class AddWlhRkActivity extends ZkjcBaseActivity<AddWlhRkPresenter> implem
             }
         }
     }
+
+    private void recIDCard(String idCardSide, String filePath) {
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                Utils.getInstances().showDialog(AddWlhRkActivity.this, "正在解析身份信息");
+            }
+        });
+
+        IDCardParams param = new IDCardParams();
+        param.setImageFile(new File(filePath));
+        // 设置身份证正反面
+        param.setIdCardSide(idCardSide);
+        // 设置方向检测
+        param.setDetectDirection(true);
+        // 设置图像参数压缩质量0-100, 越大图像质量越好但是请求时间越长。 不设置则默认值为20
+        param.setImageQuality(20);
+
+        param.setDetectRisk(true);
+
+        OCR.getInstance(this).recognizeIDCard(param, new OnResultListener<IDCardResult>() {
+            @Override
+            public void onResult(IDCardResult result) {
+                if (result != null) {
+                    String string = result.toString();
+                    System.out.println("string = " + string);
+                    Utils.getInstances().dismissDialog();
+                    // etXb.setText(result.getGender().toString());
+                    etXm.setText(result.getName().toString());
+                    etSfzh.setText(result.getIdNumber().toString());
+
+                    Map<String, String> map = new HashMap<>();
+                    map.put("sfzh", etSfzh.getText().toString());
+//                    mPresenter.verifyRy(map);
+                    Utils.getInstances().showDialog(AddWlhRkActivity.this, "获取人员信息中");
+                    mPresenter.getRyData(map);
+                }
+            }
+
+            @Override
+            public void onError(OCRError error) {
+                ToastUtils.show("识别失败" + error.getMessage());
+            }
+        });
+    }
+
     /**
      * 添加孩子到布局中 多选
      */
@@ -1286,19 +1358,67 @@ public class AddWlhRkActivity extends ZkjcBaseActivity<AddWlhRkPresenter> implem
     @Override
     public void getRyDataSuccess(String result) {
         try {
-            RyEntity kqBean = new Gson().fromJson(result, RyEntity.class);
-            if (kqBean.getData() >= 1) {
-                android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(AddWlhRkActivity.this);
-                builder.setMessage("后台出现代码级严重故障,请与数据管理员联系确认并核实。");
-                builder.setPositiveButton("我知道了", new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        dialog.dismiss();
-                    }
-                });
-                builder.create().show();
+            RkxxEntity entity = new Gson().fromJson(result, RkxxEntity.class);
+            RkxxEntity.Rkxx rkxx = entity.getData();
+            if (rkxx == null) {
+                ToastUtils.show(TOAST_INFO);
+            } else {
+                mHasRkxx = true;
+                etXm.setText(rkxx.getFzXm());
+                if ("男".equals(rkxx.getRyxb())) {
+                    rbMan.setChecked(true);
+                } else {
+                    rbWoman.setChecked(true);
+                }
+                etDh.setText(rkxx.getFzDh());
+//                csrq.setText(rkxx.getCsrq());
+                etHjdz.setText(rkxx.getHjdz());
+
+                if (!TextUtils.isEmpty(rkxx.getZjxy())) {
+                    zjxy.setText(rkxx.getZjxy());
+                    mSelectZjxy = new Fwtd();
+                    mSelectZjxy.setValue(rkxx.getRyByzkDm());
+                    mSelectZjxy.setLabel(rkxx.getZjxy());
+                }
+                if (!TextUtils.isEmpty(rkxx.getRyHyzk())) {
+                    hyzk.setText(rkxx.getRyHyzk());
+                    mSelectHyzk = new Fwtd();
+                    mSelectHyzk.setValue(rkxx.getRyHyzkDm());
+                    mSelectHyzk.setLabel(rkxx.getRyHyzk());
+                }
+                if (!TextUtils.isEmpty(rkxx.getRyWhcd())) {
+                    whcd.setText(rkxx.getRyWhcd());
+                    mSelectWhcd = new Fwtd();
+                    mSelectWhcd.setValue(rkxx.getRyWhcdDm());
+                    mSelectWhcd.setLabel(rkxx.getRyWhcd());
+                }
+                if (!TextUtils.isEmpty(rkxx.getRyByzk())) {
+                    byqk.setText(rkxx.getRyByzk());
+                    mSelectByzk = new Fwtd();
+                    mSelectByzk.setValue(rkxx.getRyByzkDm());
+                    mSelectByzk.setLabel(rkxx.getRyByzk());
+                }
+                if (!TextUtils.isEmpty(rkxx.getRyMz())) {
+                    tvMz.setText(rkxx.getRyMz());
+                    mSelectMz = new Fwtd();
+                    mSelectMz.setValue(rkxx.getRyMzDm());
+                    mSelectMz.setLabel(rkxx.getRyMz());
+                }
+                if (!TextUtils.isEmpty(rkxx.getRyZzmm())) {
+                    zzmm.setText(rkxx.getRyZzmm());
+                    mSelectZzmm = new Fwtd();
+                    mSelectZzmm.setValue(rkxx.getRyZzmmDm());
+                    mSelectZzmm.setLabel(rkxx.getRyZzmm());
+                }
+
+                etDw.setText(rkxx.getFzDw());
+//                etXm.setEnabled(false);
+//                rbWoman.setEnabled(false);
+//                rbMan.setEnabled(false);
+//                csrq.setEnabled(false);
             }
         } catch (Exception e) {
+            ToastUtils.show(TOAST_INFO);
             e.printStackTrace();
         }
     }

+ 26 - 25
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddZzrkActivity.java

@@ -512,9 +512,10 @@ public class AddZzrkActivity extends ZkjcBaseActivity<AddJzrkPresenter> implemen
                 ll_price_select.setVisibility(View.GONE);
                 et_id_card.getText().clear();
                 Map<String, String> map = new HashMap<>();
-                map.put("rksfzh", etSfzh.getText().toString());
+                map.put("sfzh", etSfzh.getText().toString());
 //                mPresenter.verifyRy(map);
-//                mPresenter.getRyData(map);
+                Utils.getInstances().showDialog(AddZzrkActivity.this, "获取人员信息中");
+                mPresenter.getRyData(map);
             }
         });
         ll_price_select.setOnClickListener(new View.OnClickListener() {
@@ -1131,9 +1132,10 @@ public class AddZzrkActivity extends ZkjcBaseActivity<AddJzrkPresenter> implemen
                     etXm.setText(result.getName().toString());
                     etSfzh.setText(result.getIdNumber().toString());
                     Map<String, String> map = new HashMap<>();
-                    map.put("rksfzh", etSfzh.getText().toString());
+                    map.put("sfzh", etSfzh.getText().toString());
 //                    mPresenter.verifyRy(map);
-//                    mPresenter.getRyData(map);
+                    Utils.getInstances().showDialog(AddZzrkActivity.this, "获取人员信息中");
+                    mPresenter.getRyData(map);
                 }
             }
 
@@ -1452,12 +1454,11 @@ public class AddZzrkActivity extends ZkjcBaseActivity<AddJzrkPresenter> implemen
     public void getRyDataSuccess(String result) {
         try {
             RkxxEntity entity = new Gson().fromJson(result, RkxxEntity.class);
-            List<RkxxEntity.Rkxx> list = entity.getData();
-            if (list == null || list.isEmpty()) {
+            RkxxEntity.Rkxx rkxx = entity.getData();
+            if (rkxx == null) {
                 ToastUtils.show(TOAST_INFO);
             } else {
                 mHasRkxx = true;
-                RkxxEntity.Rkxx rkxx = list.get(0);
                 etXm.setText(rkxx.getFzXm());
                 if ("男".equals(rkxx.getRyxb())) {
                     rbMan.setChecked(true);
@@ -1465,38 +1466,38 @@ public class AddZzrkActivity extends ZkjcBaseActivity<AddJzrkPresenter> implemen
                     rbWoman.setChecked(true);
                 }
                 etDh.setText(rkxx.getFzDh());
-                csrq.setText(rkxx.getCsrq());
+//                csrq.setText(rkxx.getCsrq());
                 etHjdz.setText(rkxx.getHjdz());
 
                 if (!TextUtils.isEmpty(rkxx.getZjxy())) {
                     zjxy.setText(rkxx.getZjxy());
                     mSelectZjxy = new Fwtd();
-                    mSelectZjxy.setValue(rkxx.getRy_byzk_dm());
+                    mSelectZjxy.setValue(rkxx.getRyByzkDm());
                     mSelectZjxy.setLabel(rkxx.getZjxy());
                 }
-                if (!TextUtils.isEmpty(rkxx.getRy_hyzk())) {
-                    hyzk.setText(rkxx.getRy_hyzk());
+                if (!TextUtils.isEmpty(rkxx.getRyHyzk())) {
+                    hyzk.setText(rkxx.getRyHyzk());
                     mSelectHyzk = new Fwtd();
-                    mSelectHyzk.setValue(rkxx.getRy_hyzk_dm());
-                    mSelectHyzk.setLabel(rkxx.getRy_hyzk());
+                    mSelectHyzk.setValue(rkxx.getRyHyzkDm());
+                    mSelectHyzk.setLabel(rkxx.getRyHyzk());
                 }
-                if (!TextUtils.isEmpty(rkxx.getXl())) {
-                    whcd.setText(rkxx.getXl());
+                if (!TextUtils.isEmpty(rkxx.getRyWhcd())) {
+                    whcd.setText(rkxx.getRyWhcd());
                     mSelectWhcd = new Fwtd();
-                    mSelectWhcd.setValue(rkxx.getXldm());
-                    mSelectWhcd.setLabel(rkxx.getXl());
+                    mSelectWhcd.setValue(rkxx.getRyWhcdDm());
+                    mSelectWhcd.setLabel(rkxx.getRyWhcd());
                 }
-                if (!TextUtils.isEmpty(rkxx.getRy_byzk())) {
-                    byqk.setText(rkxx.getRy_byzk());
+                if (!TextUtils.isEmpty(rkxx.getRyByzk())) {
+                    byqk.setText(rkxx.getRyByzk());
                     mSelectByzk = new Fwtd();
-                    mSelectByzk.setValue(rkxx.getRy_byzk_dm());
-                    mSelectByzk.setLabel(rkxx.getRy_byzk());
+                    mSelectByzk.setValue(rkxx.getRyByzkDm());
+                    mSelectByzk.setLabel(rkxx.getRyByzk());
                 }
-                if (!TextUtils.isEmpty(rkxx.getRy_mz())) {
-                    tvMz.setText(rkxx.getRy_mz());
+                if (!TextUtils.isEmpty(rkxx.getRyMz())) {
+                    tvMz.setText(rkxx.getRyMz());
                     mSelectMz = new Fwtd();
-                    mSelectMz.setValue(rkxx.getRy_mz_dm());
-                    mSelectMz.setLabel(rkxx.getRy_mz());
+                    mSelectMz.setValue(rkxx.getRyMzDm());
+                    mSelectMz.setLabel(rkxx.getRyMz());
                 }
 
 //                etXm.setEnabled(false);

+ 39 - 21
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/RhzfActivity.java

@@ -7,6 +7,7 @@ import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.graphics.Color;
+import android.net.Uri;
 import android.os.Bundle;
 import android.text.Editable;
 import android.text.TextUtils;
@@ -41,16 +42,19 @@ import com.amap.api.location.AMapLocationClient;
 import com.amap.api.location.AMapLocationClientOption;
 import com.amap.api.location.AMapLocationListener;
 import com.amap.api.maps.MapsInitializer;
+import com.bumptech.glide.Glide;
 import com.google.android.material.bottomsheet.BottomSheetDialog;
 import com.google.gson.Gson;
 import com.hjq.toast.ToastUtils;
 import com.jess.arms.base.DefaultAdapter;
 import com.jess.arms.di.component.AppComponent;
 import com.jess.arms.utils.ArmsUtils;
+import com.squareup.picasso.Picasso;
 import com.xm.permissions.OnRequestPermissionsCallback;
 import com.xm.permissions.XmPermissions;
 import com.zkjc.common.base.ZkjcBaseActivity;
 import com.zkjc.common.utils.ApkUtils;
+import com.zkjc.common.utils.BitmapUtils;
 import com.zkjc.common.utils.DevicesUtils;
 import com.zkjc.common.utils.IdCardUtil;
 import com.zkjc.common.utils.MyKeyBoardView;
@@ -78,6 +82,7 @@ import com.zkjc.policedemo.mvp.ui.adapter.SpFwtdAdapter;
 
 import org.jetbrains.annotations.NotNull;
 
+import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -301,6 +306,8 @@ public class RhzfActivity extends ZkjcBaseActivity<RhzfPresenter> implements Rhz
     View layoutZjhm;
     @BindView(R.id.et_zjhm)
     EditText etZjhm;
+    @BindView(R.id.iv_zp)
+    ImageView ivZp;
     private List<RhxxBean> listJzry;
     private List<RhxxBean> listFz;
     private List<RhxxBean> listDelete = new ArrayList<>();
@@ -1077,26 +1084,29 @@ public class RhzfActivity extends ZkjcBaseActivity<RhzfPresenter> implements Rhz
 //        mZdAllData = entity.getData();
         mRoom = (RhzfEntity.Room) getIntent().getSerializableExtra("data");
         if (mRoom != null) {
-//            setData(mRoom);
-            localJson = mSp.getString(mRoom.getDzbm(), "");
-            if (TextUtils.isEmpty(localJson)) {
-                String ldphxlh = getIntent().getStringExtra("ldphxlh");
-                if (!TextUtils.isEmpty(mRoom.getDzbm())) {
-                    Map<String, String> map = new HashMap<>();
-                    map.put("dzbm", mRoom.getDzbm());
-                    map.put("id", mRoom.getId());
-                    map.put("ldphxlh", ldphxlh);
-                    mPresenter.getRoomData(map);
-
-                    Utils.getInstances().showDialog(RhzfActivity.this, "正在获取数据");
-                }
+            mNetData = (RhzfEntity.Room) getIntent().getSerializableExtra("netData");
+            if (mNetData != null) {
+                setData(mNetData);
             } else {
-                ToastUtils.show("您本地有未上传服务器数据,请确认信息后提交");
-                mRoom = new Gson().fromJson(localJson, RhzfEntity.Room.class);
-                setData(mRoom);
-                // 本地存在数据特殊初始化这两个字段
-                pzsj = mRoom.getPzsj();
-                hb = mRoom.getHb();
+                localJson = mSp.getString(mRoom.getDzbm(), "");
+                if (TextUtils.isEmpty(localJson)) {
+                    String ldphxlh = getIntent().getStringExtra("ldphxlh");
+                    if (!TextUtils.isEmpty(mRoom.getDzbm())) {
+                        Map<String, String> map = new HashMap<>();
+                        map.put("dzbm", mRoom.getDzbm());
+                        map.put("id", mRoom.getId());
+                        map.put("ldphxlh", ldphxlh);
+                        mPresenter.getRoomData(map);
+                        Utils.getInstances().showDialog(RhzfActivity.this, "正在获取数据");
+                    }
+                } else {
+                    ToastUtils.show("您本地有未上传服务器数据,请确认信息后提交");
+                    mRoom = new Gson().fromJson(localJson, RhzfEntity.Room.class);
+                    setData(mRoom);
+                    // 本地存在数据特殊初始化这两个字段
+                    pzsj = mRoom.getPzsj();
+                    hb = mRoom.getHb();
+                }
             }
         }
 
@@ -1169,6 +1179,9 @@ public class RhzfActivity extends ZkjcBaseActivity<RhzfPresenter> implements Rhz
 //        tvFwfz.setText(room.getWzxxdz());
         etMj.setText(room.getFwMj());
         etSl.setText(room.getFwJs());
+        if (!TextUtils.isEmpty(room.getZp())) {
+            Picasso.with(this).load(room.getZp()).into(ivZp);
+        }
         if (!TextUtils.isEmpty(room.getFwLb()) && !TextUtils.isEmpty(room.getFwYt()) && !TextUtils.isEmpty(room.getFwXz()) && !TextUtils.isEmpty(room.getFwSyyt())) {
             mSelectFwlb = new Fwtd();
             mSelectFwlb.setLabel(room.getFwLb());
@@ -1204,8 +1217,8 @@ public class RhzfActivity extends ZkjcBaseActivity<RhzfPresenter> implements Rhz
                         }
                     }
                 }
-                if (TextUtils.isEmpty(mFzInfo.getId())) {
-                    if (TextUtils.isEmpty(mFzInfo.getZjzl()) || ApkUtils.isSqjw(this)) {
+                if (TextUtils.isEmpty(mFzInfo.getId()) || ApkUtils.isSqjw(this)) {
+                    if (TextUtils.isEmpty(mFzInfo.getZjzl()) || SFZ.equals(mFzInfo.getZjzl())) {
                         etSfzh.setText(mFzInfo.getFzSfzh());
                     } else {
                         etZjhm.setText(mFzInfo.getFzSfzh());
@@ -1844,6 +1857,11 @@ public class RhzfActivity extends ZkjcBaseActivity<RhzfPresenter> implements Rhz
                         if (data.hasExtra("fwzpLocal")) {
                             fwzpLocal = data.getStringExtra("fwzpLocal");
                         }
+                        if (!TextUtils.isEmpty(fwzp)) {
+                            Picasso.with(this).load(fwzp).into(ivZp);
+                        } else if (!TextUtils.isEmpty(fwzpLocal)) {
+                            Glide.with(this).load(fwzpLocal).into(ivZp);
+                        }
 
                     }
                 }

+ 341 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/RhzfDetailActivity.java

@@ -0,0 +1,341 @@
+package com.zkjc.policedemo.mvp.ui.activity;
+
+import android.content.Intent;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.viewpager2.adapter.FragmentStateAdapter;
+import androidx.viewpager2.widget.ViewPager2;
+
+import com.google.android.material.appbar.AppBarLayout;
+import com.google.android.material.tabs.TabLayout;
+import com.google.android.material.tabs.TabLayoutMediator;
+import com.hjq.toast.ToastUtils;
+import com.jess.arms.di.component.AppComponent;
+import com.jess.arms.utils.ArmsUtils;
+
+import com.squareup.picasso.Picasso;
+import com.zkjc.common.base.ZkjcBaseActivity;
+import com.zkjc.common.utils.ScreenUtils;
+import com.zkjc.common.utils.Utils;
+import com.zkjc.common.view.CommonTitleBarV3;
+import com.zkjc.policedemo.di.component.DaggerRhzfDetailComponent;
+import com.zkjc.policedemo.mvp.contract.RhzfDetailContract;
+import com.zkjc.policedemo.mvp.model.entity.FzInfo;
+import com.zkjc.policedemo.mvp.model.entity.RhxxBean;
+import com.zkjc.policedemo.mvp.model.entity.RhzfEntity;
+import com.zkjc.policedemo.mvp.model.entity.ZdAllEntity;
+import com.zkjc.policedemo.mvp.presenter.RhzfDetailPresenter;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.ui.fragment.RhzfMdFragment;
+import com.zkjc.policedemo.mvp.ui.fragment.SyrkFragment;
+import com.zkjc.policedemo.mvp.ui.fragment.WtjFragment;
+
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import butterknife.BindView;
+
+import static com.jess.arms.utils.Preconditions.checkNotNull;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/12/2024 14:03
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public class RhzfDetailActivity extends ZkjcBaseActivity<RhzfDetailPresenter> implements RhzfDetailContract.View {
+
+    @BindView(R.id.title_bar)
+    CommonTitleBarV3 titleBar;
+    @BindView(R.id.rhzf_detail_tab)
+    TabLayout tabLayout;
+    @BindView(R.id.rhzf_detail_vp)
+    ViewPager2 viewPager;
+    @BindView(R.id.rhzf_detail_appbar)
+    AppBarLayout appBarLayout;
+    @BindView(R.id.rhzf_detail_holder_layout)
+    View layoutHolder;
+    @BindView(R.id.rhzf_top_bg)
+    View layoutTopBg;
+    @BindView(R.id.rhzf_detail_tv_mj)
+    TextView tvMj;
+    @BindView(R.id.rhzf_detail_tv_fwtd)
+    TextView tvFwtd;
+    @BindView(R.id.rhzf_detail_tv_address)
+    TextView tvAddress;
+    @BindView(R.id.rhzf_detail_tv_count)
+    TextView tvCount;
+    @BindView(R.id.rhzf_detail_iv_fz_zp)
+    ImageView ivFzZp;
+    @BindView(R.id.rhzf_detail_iv_tag)
+    ImageView ivFzTag;
+    @BindView(R.id.rhzf_detail_iv_zp)
+    ImageView ivZp;
+    @BindView(R.id.rhzf_detail_tv_name)
+    TextView tvName;
+    @BindView(R.id.rhzf_detail_tv_sfzh)
+    TextView tvSfzh;
+    @BindView(R.id.rhzf_detail_tv_phone)
+    TextView tvPhone;
+    @BindView(R.id.rhzf_detail_tv_dw)
+    TextView tvDw;
+    @BindView(R.id.rhzf_detail_tv_xjzd)
+    TextView tvXjzd;
+    @BindView(R.id.rhzf_detail_tv_zcjz)
+    TextView tvZcjz;
+    @BindView(R.id.rhzf_detail_layout_jzdz)
+    View layoutJzdz;
+    @BindView(R.id.rhzf_detail_layout_dw)
+    View layoutDw;
+    @BindView(R.id.rhzf_detail_iv_sex)
+    ImageView ivSex;
+    @BindView(R.id.layout_fw)
+    View layoutFw;
+    @BindView(R.id.rhzf_detail_layout_tsqk)
+    View layoutTsqk;
+    @BindView(R.id.rhzf_detail_tv_tsqk)
+    TextView tvTsqk;
+    @BindView(R.id.rhzf_detail_layout_fz)
+    View layoutFz;
+
+    private int oldVerticalOffset;
+    private RhzfEntity.Room mRoom;
+    private RhzfEntity.Room mNetData;
+    private ZdAllEntity.DataBean mZdAllData;
+
+    @Override
+    public void setupActivityComponent(@NonNull AppComponent appComponent) {
+        DaggerRhzfDetailComponent //如找不到该类,请编译一下项目
+                .builder()
+                .appComponent(appComponent)
+                .view(this)
+                .build()
+                .inject(this);
+    }
+
+    @Override
+    public int initView(@Nullable Bundle savedInstanceState) {
+        return R.layout.activity_rhzf_detail; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
+    }
+
+    @Override
+    public void initData(@Nullable Bundle savedInstanceState) {
+        titleBar.setTitle("入户走访登记");
+
+        appBarLayout.addOnOffsetChangedListener(offsetChangedListener);
+        layoutFw.setOnClickListener(v -> {
+            Log.e("eee", "onclick is run !!!!!");
+            if (mNetData == null) {
+                ToastUtils.show("正在初始话数据");
+                return;
+            }
+            Intent intent = new Intent(RhzfDetailActivity.this, RhzfActivity.class);
+            intent.putExtra("netData", mNetData);
+            intent.putExtra("title", getIntent().getStringExtra("title"));
+            intent.putExtra("name", getIntent().getStringExtra("name"));
+            intent.putExtra("data", getIntent().getSerializableExtra("data"));
+            intent.putExtra("ldphxlh", getIntent().getStringExtra("ldphxlh"));
+            startActivity(intent);
+        });
+
+        mRoom = (RhzfEntity.Room) getIntent().getSerializableExtra("data");
+        String ldphxlh = getIntent().getStringExtra("ldphxlh");
+        Map<String, String> map = new HashMap<>();
+        map.put("dzbm", mRoom.getDzbm());
+        map.put("id", mRoom.getId());
+        map.put("ldphxlh", ldphxlh);
+        mPresenter.getRoomData(map);
+        Utils.getInstances().showDialog(this, "正在获取数据");
+    }
+
+    private void initVpData() {
+        List<Fragment> fragments = new ArrayList<>();
+        List<String> titles = new ArrayList<>();
+        ArrayList<RhxxBean> list = new ArrayList<>();
+        if (mNetData.getSyjzryList() != null) {
+            for (RhxxBean bean : mNetData.getSyjzryList()) {
+                bean.transToLocal();
+            }
+            list.addAll(mNetData.getSyjzryList());
+        }
+        fragments.add(SyrkFragment.newInstance(list));
+        titles.add("实有人口(" + list.size() + ")");
+        fragments.add(RhzfMdFragment.newInstance(mNetData.getMdId()));
+        titles.add("排查矛盾纠纷");
+        FragmentStateAdapter mAdapter = new FragmentStateAdapter(this) {
+            @Override
+            public int getItemCount() {
+                return fragments.size();
+            }
+
+            @NonNull
+            @Override
+            public Fragment createFragment(int position) {
+                return fragments.get(position);
+            }
+
+        };
+        viewPager.setAdapter(mAdapter);
+        new TabLayoutMediator(tabLayout, viewPager, new TabLayoutMediator.TabConfigurationStrategy() {
+            @Override
+            public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
+                tab.setText(titles.get(position));
+            }
+        }).attach();
+    }
+
+    // 这里的处理是当AppBarLayout处于最顶部也就是完全打开状态verticalOffse=0时才允许刷新控件可用.
+    private AppBarLayout.OnOffsetChangedListener offsetChangedListener = new AppBarLayout.OnOffsetChangedListener() {
+
+        @Override
+        public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffse) {
+            int totalScrollRange = appBarLayout.getTotalScrollRange();
+
+            if (oldVerticalOffset == verticalOffse) return;
+
+            if (Math.abs(verticalOffse) > totalScrollRange - 20) {
+                layoutHolder.setVisibility(View.VISIBLE);
+            } else {
+                layoutHolder.setVisibility(View.GONE);
+            }
+
+            if (Math.abs(verticalOffse) > totalScrollRange - 2) {
+                layoutTopBg.setVisibility(View.GONE);
+            } else {
+                layoutTopBg.setVisibility(View.VISIBLE);
+            }
+            layoutHolder.setAlpha(Math.abs(verticalOffse) * 1f / totalScrollRange);
+
+            oldVerticalOffset = verticalOffse;
+        }
+    };
+
+
+    @Override
+    public void showLoading() {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+
+    @Override
+    public void showMessage(@NonNull String message) {
+        checkNotNull(message);
+        ArmsUtils.snackbarText(message);
+    }
+
+    @Override
+    public void launchActivity(@NonNull Intent intent) {
+        checkNotNull(intent);
+        ArmsUtils.startActivity(intent);
+    }
+
+    @Override
+    public void killMyself() {
+        finish();
+    }
+
+    @Override
+    public void onDataSuccess(RhzfEntity.Room data) {
+        mNetData = data;
+        setData(data);
+        initVpData();
+    }
+
+    private void setData(RhzfEntity.Room room) {
+        if (!TextUtils.isEmpty(room.getZp())) {
+            Picasso.with(this).load(room.getZp()).into(ivZp);
+        }
+        tvAddress.setText(getIntent().getStringExtra("title") + getIntent().getStringExtra("name"));
+        tvFwtd.setText(room.getFwLb() + "|" + room.getFwYt() + "|" + room.getFwXz() + "|" + room.getFwSyyt());
+        tvMj.setText(room.getFwMj());
+        tvCount.setText(room.getFwJs());
+        FzInfo fzInfo = room.getFzInfo();
+        if (TextUtils.isEmpty(fzInfo.getTsqk())) {
+            layoutTsqk.setVisibility(View.GONE);
+        } else {
+            if (TextUtils.isEmpty(fzInfo.getFzXm()) && TextUtils.isEmpty(fzInfo.getFzDh())) {
+                layoutFz.setVisibility(View.GONE);
+            } 
+            layoutTsqk.setVisibility(View.VISIBLE);
+            tvTsqk.setText(fzInfo.getTsqk());
+        } 
+        if (fzInfo.getType() == 1) {
+            // 组织
+            tvName.setText(fzInfo.getFzXm());
+            tvSfzh.setText(fzInfo.getFzSfzh());
+            tvPhone.setText(fzInfo.getFzDh());
+            layoutDw.setVisibility(View.GONE);
+            layoutJzdz.setVisibility(View.GONE);
+            tvZcjz.setVisibility(View.GONE);
+            ivSex.setVisibility(View.GONE);
+        } else {
+            // 自然人
+//            Picasso.with(this).load("").into(ivFzZp); // 房主照片
+            tvName.setText(fzInfo.getFzXm());
+            tvSfzh.setText(fzInfo.getFzSfzh());// todo 加上民族
+            tvPhone.setText(fzInfo.getFzDh());
+            if (true) {
+                ivSex.setBackgroundResource(R.drawable.icon_boy);
+            } else {
+                ivSex.setBackgroundResource(R.drawable.icon_girl);
+            }
+            if (TextUtils.isEmpty(fzInfo.getFzJzd())) {
+                tvZcjz.setText("在此居住");
+                tvZcjz.setTextColor(Color.parseColor("#30B344"));
+            } else {
+                tvZcjz.setText("不在此居住");
+                tvZcjz.setTextColor(Color.parseColor("#FF1D1D"));
+                layoutJzdz.setVisibility(View.VISIBLE);
+                tvXjzd.setText(fzInfo.getFzJzd());
+            }
+            tvDw.setText(fzInfo.getFzDw());
+        }
+    }
+
+    @Override
+    public void onSuccess(ZdAllEntity.DataBean data) {
+        mZdAllData = data;
+    }
+
+    public ZdAllEntity.DataBean getZdAllData() {
+        return mZdAllData;
+    }
+
+    public RhzfEntity.Room getNetData() {
+        return mNetData;
+    }
+
+    public void refreshData() {
+        String ldphxlh = getIntent().getStringExtra("ldphxlh");
+        Map<String, String> map = new HashMap<>();
+        map.put("dzbm", mRoom.getDzbm());
+        map.put("id", mRoom.getId());
+        map.put("ldphxlh", ldphxlh);
+        mPresenter.getRoomData(map);
+        Utils.getInstances().showDialog(this, "正在获取数据");
+    }
+}

+ 6 - 1
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/RhzfLdActivity.java

@@ -372,10 +372,15 @@ public class RhzfLdActivity extends ZkjcBaseActivity<RhzfLdPresenter> implements
                         ToastUtils.show("该段时间不允许上班打卡");
                         return;
                     }*/
-                    Intent intent = new Intent(RhzfLdActivity.this, RhzfActivity.class);
                     RhzfEntity.Unit unit = mUnits.get(mSelectUnit);
                     RhzfEntity.Floor floor = unit.getFloors().get(mSelectFloor);
                     RhzfEntity.Room room = floor.getRooms().get(mSelectRoom);
+                    Intent intent;
+                    if (TextUtils.isEmpty(room.getId())) {
+                        intent = new Intent(RhzfLdActivity.this, RhzfActivity.class);
+                    } else {
+                        intent = new Intent(RhzfLdActivity.this, RhzfDetailActivity.class);
+                    }
                     intent.putExtra("title", mInfo.getName());
                     intent.putExtra("name", unit.getName() + "-" + room.getName());
                     intent.putExtra("data", room);

+ 5 - 4
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/SearchAppActivity.java

@@ -194,25 +194,26 @@ public class SearchAppActivity extends ZkjcBaseActivity<SearchAppPresenter> impl
                                 if (file.exists()) {
                                     ArmsUtils.startActivity(XlfkActivity.class);
                                 } else {
-                                    Observable.create(new ObservableOnSubscribe<Void>(){
+                                    Observable.create(new ObservableOnSubscribe<Object>(){
                                         @Override
-                                        public void subscribe(ObservableEmitter<Void> emitter) throws Exception {
+                                        public void subscribe(ObservableEmitter<Object> emitter) throws Exception {
                                             try {
                                                 UnZipAssetsFolder(SearchAppActivity.this, "map.zip", FileUtils.getGdMapFilePath() + "/data_v6");
+                                                emitter.onNext(new Object());
                                             } catch (Exception e) {
                                                 e.printStackTrace();
                                             }
                                         }
                                     }).subscribeOn(Schedulers.io())
                                             .observeOn(AndroidSchedulers.mainThread())
-                                            .subscribe(new Observer<Void>() {
+                                            .subscribe(new Observer<Object>() {
                                                 @Override
                                                 public void onSubscribe(Disposable d) {
 
                                                 }
 
                                                 @Override
-                                                public void onNext(Void list) {
+                                                public void onNext(Object o) {
                                                     ArmsUtils.startActivity(XlfkActivity.class);
                                                 }
 

+ 68 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/adapter/SyrkAdapter.java

@@ -0,0 +1,68 @@
+package com.zkjc.policedemo.mvp.ui.adapter;
+
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.model.entity.RhxxBean;
+import com.zkjc.policedemo.mvp.ui.activity.RhzfActivity;
+
+import java.util.List;
+
+public class SyrkAdapter extends BaseRecycleAdapter<RhxxBean> {
+    public SyrkAdapter(List<RhxxBean> datas) {
+        super(datas);
+    }
+
+    @Override
+    protected void bindData(BaseViewHolder holder, int position) {
+        RhxxBean bean = datas.get(position);
+        holder.setOnItemClickListener(R.id.item_root, position, onRecyclerViewListener);
+        if (RhzfActivity.TYPE_RK_JWRK.equals(bean.getRyType())) {
+            setItemText(holder.getView(R.id.item_syrk_tv_name), bean.getRyYwm() + bean.getRyXs());
+            setItemText(holder.getView(R.id.item_syrk_tv_sfzh), bean.getRyZjhm());
+        } else {
+            setItemText(holder.getView(R.id.item_syrk_tv_name), bean.getRyXm());
+            setItemText(holder.getView(R.id.item_syrk_tv_sfzh), bean.getRySfzh() + "|" + bean.getRyMz());
+        }
+        ImageView ivSex = (ImageView) holder.getView(R.id.item_syrk_iv_sex);
+        if (bean.isMan()) {
+            ivSex.setBackgroundResource(R.drawable.icon_boy);
+        } else {
+            ivSex.setBackgroundResource(R.drawable.icon_girl);
+        }
+        setItemText(holder.getView(R.id.item_syrk_tv_sfzh), bean.getRySfzh() + "|" + bean.getRyMz());
+        setItemText(holder.getView(R.id.item_syrk_tv_phone), bean.getRyDh());
+        TextView tvTsrq = (TextView) holder.getView(R.id.item_syrk_tv_tsrq);
+        if (!TextUtils.isEmpty(bean.getRyTsLb())) {
+            tvTsrq.setVisibility(View.VISIBLE);
+            setItemText(tvTsrq, bean.getRyTsLb());
+        } else {
+            tvTsrq.setVisibility(View.GONE);
+        }
+        if (TextUtils.isEmpty(bean.getDwMc())) {
+            holder.getView(R.id.item_syrk_layout_dw).setVisibility(View.GONE);
+        } else {
+            setItemText(holder.getView(R.id.item_syrk_tv_dw), bean.getDwMc());
+            holder.getView(R.id.item_syrk_layout_dw).setVisibility(View.VISIBLE);
+        }
+        if (position == 0) {
+            holder.getView(R.id.item_syrk_divider).setVisibility(View.GONE);
+        } else {
+            holder.getView(R.id.item_syrk_divider).setVisibility(View.VISIBLE);
+        }
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.item_syrk;
+    }
+
+    private OnRecyclerViewListener onRecyclerViewListener;
+
+    public void setOnRecyclerViewListener(OnRecyclerViewListener onRecyclerViewListener) {
+        this.onRecyclerViewListener = onRecyclerViewListener;
+    }
+}

+ 7 - 6
app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/HomeFragment.java

@@ -347,8 +347,8 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements HomeCon
                         MenuEntity.DataBean bean = menus.get(position);
                         switch (bean.getSort()) {
                             case "1": // 入户走访
-                              //  ArmsUtils.startActivity(RhzfMainNewActivity.class);
-                                ArmsUtils.startActivity(SydwActivity.class);
+                                ArmsUtils.startActivity(RhzfMainNewActivity.class);
+//                                ArmsUtils.startActivity(SydwActivity.class);
                                 break;
                             case "2": // 矛盾纠纷
                                 ArmsUtils.startActivity(MdjfActivity.class);
@@ -369,25 +369,26 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements HomeCon
                                 if (file.exists()) {
                                     ArmsUtils.startActivity(XlfkActivity.class);
                                 } else {
-                                    Observable.create(new ObservableOnSubscribe<Void>(){
+                                    Observable.create(new ObservableOnSubscribe<Object>(){
                                         @Override
-                                        public void subscribe(ObservableEmitter<Void> emitter) throws Exception {
+                                        public void subscribe(ObservableEmitter<Object> emitter) throws Exception {
                                             try {
                                                 UnZipAssetsFolder(getActivity(), "map.zip", FileUtils.getGdMapFilePath() + "/data_v6");
+                                                emitter.onNext(new Object());
                                             } catch (Exception e) {
                                                 e.printStackTrace();
                                             }
                                         }
                                     }).subscribeOn(Schedulers.io())
                                             .observeOn(AndroidSchedulers.mainThread())
-                                            .subscribe(new Observer<Void>() {
+                                            .subscribe(new Observer<Object>() {
                                                 @Override
                                                 public void onSubscribe(Disposable d) {
 
                                                 }
 
                                                 @Override
-                                                public void onNext(Void list) {
+                                                public void onNext(Object o) {
                                                     ArmsUtils.startActivity(XlfkActivity.class);
                                                 }
 

+ 134 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/RhzfFwqzFragment.java

@@ -0,0 +1,134 @@
+package com.zkjc.policedemo.mvp.ui.fragment;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.jess.arms.base.BaseFragment;
+import com.jess.arms.di.component.AppComponent;
+import com.jess.arms.utils.ArmsUtils;
+
+import com.zkjc.policedemo.di.component.DaggerRhzfFwqzComponent;
+import com.zkjc.policedemo.mvp.contract.RhzfFwqzContract;
+import com.zkjc.policedemo.mvp.presenter.RhzfFwqzPresenter;
+
+import com.zkjc.policedemo.R;
+
+import static com.jess.arms.utils.Preconditions.checkNotNull;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:36
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public class RhzfFwqzFragment extends BaseFragment<RhzfFwqzPresenter> implements RhzfFwqzContract.View {
+
+    public static RhzfFwqzFragment newInstance() {
+        RhzfFwqzFragment fragment = new RhzfFwqzFragment();
+        return fragment;
+    }
+
+    @Override
+    public void setupFragmentComponent(@NonNull AppComponent appComponent) {
+        DaggerRhzfFwqzComponent //如找不到该类,请编译一下项目
+                .builder()
+                .appComponent(appComponent)
+                .view(this)
+                .build()
+                .inject(this);
+    }
+
+    @Override
+    public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_rhzf_fwqz, container, false);
+    }
+
+    @Override
+    public void initData(@Nullable Bundle savedInstanceState) {
+
+    }
+
+    /**
+     * 通过此方法可以使 Fragment 能够与外界做一些交互和通信, 比如说外部的 Activity 想让自己持有的某个 Fragment 对象执行一些方法,
+     * 建议在有多个需要与外界交互的方法时, 统一传 {@link Message}, 通过 what 字段来区分不同的方法, 在 {@link #setData(Object)}
+     * 方法中就可以 {@code switch} 做不同的操作, 这样就可以用统一的入口方法做多个不同的操作, 可以起到分发的作用
+     * <p>
+     * 调用此方法时请注意调用时 Fragment 的生命周期, 如果调用 {@link #setData(Object)} 方法时 {@link Fragment#onCreate(Bundle)} 还没执行
+     * 但在 {@link #setData(Object)} 里却调用了 Presenter 的方法, 是会报空的, 因为 Dagger 注入是在 {@link Fragment#onCreate(Bundle)} 方法中执行的
+     * 然后才创建的 Presenter, 如果要做一些初始化操作,可以不必让外部调用 {@link #setData(Object)}, 在 {@link #initData(Bundle)} 中初始化就可以了
+     * <p>
+     * Example usage:
+     * <pre>
+     * public void setData(@Nullable Object data) {
+     *     if (data != null && data instanceof Message) {
+     *         switch (((Message) data).what) {
+     *             case 0:
+     *                 loadData(((Message) data).arg1);
+     *                 break;
+     *             case 1:
+     *                 refreshUI();
+     *                 break;
+     *             default:
+     *                 //do something
+     *                 break;
+     *         }
+     *     }
+     * }
+     *
+     * // call setData(Object):
+     * Message data = new Message();
+     * data.what = 0;
+     * data.arg1 = 1;
+     * fragment.setData(data);
+     * </pre>
+     *
+     * @param data 当不需要参数时 {@code data} 可以为 {@code null}
+     */
+    @Override
+    public void setData(@Nullable Object data) {
+
+    }
+
+    @Override
+    public void showLoading() {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+
+    @Override
+    public void showMessage(@NonNull String message) {
+        checkNotNull(message);
+        ArmsUtils.snackbarText(message);
+    }
+
+    @Override
+    public void launchActivity(@NonNull Intent intent) {
+        checkNotNull(intent);
+        ArmsUtils.startActivity(intent);
+    }
+
+    @Override
+    public void killMyself() {
+
+    }
+}

+ 134 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/RhzfJxcsFragment.java

@@ -0,0 +1,134 @@
+package com.zkjc.policedemo.mvp.ui.fragment;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.jess.arms.base.BaseFragment;
+import com.jess.arms.di.component.AppComponent;
+import com.jess.arms.utils.ArmsUtils;
+
+import com.zkjc.policedemo.di.component.DaggerRhzfJxcsComponent;
+import com.zkjc.policedemo.mvp.contract.RhzfJxcsContract;
+import com.zkjc.policedemo.mvp.presenter.RhzfJxcsPresenter;
+
+import com.zkjc.policedemo.R;
+
+import static com.jess.arms.utils.Preconditions.checkNotNull;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:34
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public class RhzfJxcsFragment extends BaseFragment<RhzfJxcsPresenter> implements RhzfJxcsContract.View {
+
+    public static RhzfJxcsFragment newInstance() {
+        RhzfJxcsFragment fragment = new RhzfJxcsFragment();
+        return fragment;
+    }
+
+    @Override
+    public void setupFragmentComponent(@NonNull AppComponent appComponent) {
+        DaggerRhzfJxcsComponent //如找不到该类,请编译一下项目
+                .builder()
+                .appComponent(appComponent)
+                .view(this)
+                .build()
+                .inject(this);
+    }
+
+    @Override
+    public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_rhzf_jxcs, container, false);
+    }
+
+    @Override
+    public void initData(@Nullable Bundle savedInstanceState) {
+
+    }
+
+    /**
+     * 通过此方法可以使 Fragment 能够与外界做一些交互和通信, 比如说外部的 Activity 想让自己持有的某个 Fragment 对象执行一些方法,
+     * 建议在有多个需要与外界交互的方法时, 统一传 {@link Message}, 通过 what 字段来区分不同的方法, 在 {@link #setData(Object)}
+     * 方法中就可以 {@code switch} 做不同的操作, 这样就可以用统一的入口方法做多个不同的操作, 可以起到分发的作用
+     * <p>
+     * 调用此方法时请注意调用时 Fragment 的生命周期, 如果调用 {@link #setData(Object)} 方法时 {@link Fragment#onCreate(Bundle)} 还没执行
+     * 但在 {@link #setData(Object)} 里却调用了 Presenter 的方法, 是会报空的, 因为 Dagger 注入是在 {@link Fragment#onCreate(Bundle)} 方法中执行的
+     * 然后才创建的 Presenter, 如果要做一些初始化操作,可以不必让外部调用 {@link #setData(Object)}, 在 {@link #initData(Bundle)} 中初始化就可以了
+     * <p>
+     * Example usage:
+     * <pre>
+     * public void setData(@Nullable Object data) {
+     *     if (data != null && data instanceof Message) {
+     *         switch (((Message) data).what) {
+     *             case 0:
+     *                 loadData(((Message) data).arg1);
+     *                 break;
+     *             case 1:
+     *                 refreshUI();
+     *                 break;
+     *             default:
+     *                 //do something
+     *                 break;
+     *         }
+     *     }
+     * }
+     *
+     * // call setData(Object):
+     * Message data = new Message();
+     * data.what = 0;
+     * data.arg1 = 1;
+     * fragment.setData(data);
+     * </pre>
+     *
+     * @param data 当不需要参数时 {@code data} 可以为 {@code null}
+     */
+    @Override
+    public void setData(@Nullable Object data) {
+
+    }
+
+    @Override
+    public void showLoading() {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+
+    @Override
+    public void showMessage(@NonNull String message) {
+        checkNotNull(message);
+        ArmsUtils.snackbarText(message);
+    }
+
+    @Override
+    public void launchActivity(@NonNull Intent intent) {
+        checkNotNull(intent);
+        ArmsUtils.startActivity(intent);
+    }
+
+    @Override
+    public void killMyself() {
+
+    }
+}

+ 346 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/RhzfMdFragment.java

@@ -0,0 +1,346 @@
+package com.zkjc.policedemo.mvp.ui.fragment;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.os.Message;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import com.hjq.toast.ToastUtils;
+import com.jess.arms.base.BaseFragment;
+import com.jess.arms.di.component.AppComponent;
+import com.jess.arms.utils.ArmsUtils;
+
+import com.zkjc.policedemo.di.component.DaggerRhzfMdComponent;
+import com.zkjc.policedemo.mvp.contract.RhzfMdContract;
+import com.zkjc.policedemo.mvp.model.entity.MdjfEntity;
+import com.zkjc.policedemo.mvp.presenter.RhzfMdPresenter;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.ui.activity.AddJfActivity;
+import com.zkjc.policedemo.mvp.ui.activity.MdDjXqActivity;
+import com.zkjc.policedemo.mvp.ui.activity.MdhfjlActivity;
+import com.zkjc.policedemo.mvp.ui.activity.RhzfDetailActivity;
+import com.zkjc.policedemo.mvp.ui.adapter.BaseRecycleAdapter;
+import com.zkjc.policedemo.mvp.ui.adapter.MdlbNewAdapter;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import butterknife.BindView;
+
+import static com.jess.arms.utils.Preconditions.checkNotNull;
+import static com.zkjc.policedemo.mvp.ui.activity.MdjfActivity.MSG;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 09:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public class RhzfMdFragment extends BaseFragment<RhzfMdPresenter> implements RhzfMdContract.View {
+
+    @BindView(R.id.recyclerView)
+    RecyclerView recyclerView;
+    @BindView(R.id.layout_add)
+    View layoutAdd;
+    private List<MdjfEntity.DataBean.RecordsBean> datas;
+    private int pageNo = 1;
+    private int pageSize = 10;
+    private MdlbNewAdapter mAdapter;
+    private String mdId;
+
+    public static RhzfMdFragment newInstance(String id) {
+        RhzfMdFragment fragment = new RhzfMdFragment();
+        Bundle bundle = new Bundle();
+        bundle.putString("mdId", id);
+        fragment.setArguments(bundle);
+        return fragment;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+
+    }
+
+    @Override
+    public void setupFragmentComponent(@NonNull AppComponent appComponent) {
+        DaggerRhzfMdComponent //如找不到该类,请编译一下项目
+                .builder()
+                .appComponent(appComponent)
+                .view(this)
+                .build()
+                .inject(this);
+    }
+
+    @Override
+    public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_rhzf_md, container, false);
+    }
+
+    @Override
+    public void initData(@Nullable Bundle savedInstanceState) {
+        mdId = getArguments().getString("mdId");
+        datas = new ArrayList<>();
+        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
+        mAdapter = new MdlbNewAdapter(datas, "2");
+        recyclerView.setAdapter(mAdapter);
+        mAdapter.notifyDataSetChanged();
+        if (!TextUtils.isEmpty(mdId)) {
+            requestData(pageNo, pageSize);
+        }
+
+        mAdapter.setOnRecyclerViewListener(new BaseRecycleAdapter.OnRecyclerViewListener() {
+            @Override
+            public void onItemClick(int position) {
+                MdjfEntity.DataBean.RecordsBean bean = datas.get(position);
+                String id = bean.getId();
+                if (TextUtils.isEmpty(bean.getTjzt()) || "调解未果".equals(bean.getTjzt())) {
+                    Intent intent = new Intent(getActivity(), MdDjXqActivity.class);
+                    intent.putExtra("wtj", "wtj");
+                    intent.putExtra("id", id);
+                    startActivity(intent);
+                } else if (bean.getHfztNew() == 0 || bean.getHfztNew() == 1) {
+                    Intent intent = new Intent(getActivity(), MdDjXqActivity.class);
+                    intent.putExtra("id", id);
+                    intent.putExtra("hf", "hf");
+                    startActivity(intent);
+                }  else {
+                    Intent intent = new Intent(getActivity(), MdDjXqActivity.class);
+                    intent.putExtra("id", id);
+                    intent.putExtra("ygz", "ygz");
+                    startActivity(intent);
+                }
+            }
+
+            @Override
+            public boolean onItemLongClick(int position) {
+                return false;
+            }
+        });
+/*        mAdapter.setOnRecyclerViewListenerv2(new BaseRecycleAdapter.OnRecyclerViewListenerV2() {
+            @Override
+            public void onItemClick(View view, int position) {
+                String id = datas.get(position).getId();
+                System.out.println(id + "*******");
+                Map<String, String> map = new HashMap<>();
+                map.put("id", id);
+                map.put("sfsc", "0");
+                mPresenter.mdgz(map);
+            }
+
+            @Override
+            public boolean onItemLongClick(View view, int position) {
+                return false;
+            }
+        });*/
+        mAdapter.setOnRecyclerViewListenerv2(new BaseRecycleAdapter.OnRecyclerViewListenerV2() {
+            @Override
+            public void onItemClick(View view, int position) {
+                switch (view.getId()) {
+                    case R.id.item_mdjf_tv_xgmd: {
+                        MdjfEntity.DataBean.RecordsBean item = datas.get(position);
+                        Intent intent = new Intent(getActivity(), AddJfActivity.class);
+                        intent.putExtra("item", item);
+                        startActivity(intent);
+                    }
+                    break;
+                    case R.id.item_mdjf_tv_hfjl:
+                        Intent intent = new Intent(getActivity(), MdhfjlActivity.class);
+                        MdjfEntity.DataBean.RecordsBean bean = datas.get(position);
+                        intent.putExtra("id", bean.getId());
+                        startActivity(intent);
+                        break;
+                    case R.id.item_mdjf_tv_focus:
+                        MdjfEntity.DataBean.RecordsBean recordsBean = datas.get(position);
+                        String sfsc = recordsBean.getSfsc();
+                        String id = recordsBean.getId();
+                        Map<String, String> map = new HashMap<>();
+                        map.put("id", id);
+                        if (sfsc.equals("1")) {
+                            map.put("sfsc", "0");
+                        } else {
+                            map.put("sfsc", "1");
+                        }
+
+                        mPresenter.mdgz(map);
+                        break;
+                    default:
+                        break;
+                }
+            }
+
+            @Override
+            public boolean onItemLongClick(View view, int position) {
+                return false;
+            }
+        });
+
+        layoutAdd.setOnClickListener(view -> {
+            SharedPreferences sys = getActivity().getSharedPreferences("sys", Activity.MODE_PRIVATE);
+            String role_name = sys.getString("role_name", "");
+            if (!role_name.contains("社区民警")) {
+                ToastUtils.show("社区民警才可录入矛盾");
+                return;
+            }
+            String deptCategory = sys.getString("deptCategory", "");
+            if (!"7".equals(deptCategory)) {
+                ToastUtils.show(MSG);
+                return;
+            }
+            Intent intent = new Intent(getActivity(), AddJfActivity.class);
+            intent.putExtra("is_from_rhzf", true);
+            intent.putExtra("fwId", ((RhzfDetailActivity) getActivity()).getNetData().getId());
+            startActivityForResult(intent, 1);
+
+        });
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (resultCode == Activity.RESULT_OK && requestCode == 1) {
+
+            String id = data.getStringExtra("id");
+            if (!TextUtils.isEmpty(mdId)) {
+                mdId = mdId + "," + id;
+                requestData(pageNo = 1, pageSize);
+            } else {
+                mdId = id;
+                requestData(pageNo = 1, pageSize);
+            }
+        }
+    }
+
+    private void requestData(int pageNo, int pageSize) {
+
+        Map<String, String> map = new HashMap<>();
+        map.put("current", pageNo + "");
+        map.put("size", pageSize + "");
+        if (!TextUtils.isEmpty(mdId)) {
+            map.put("jfIds", mdId);
+        }
+        if (mPresenter != null)
+            mPresenter.getMddjLb(map);
+
+    }
+
+    @Override
+    public void onSuccess(String result) {
+        try {
+            JsonObject obj = new JsonParser().parse(result).getAsJsonObject();
+            if (obj.has("code")) {
+                int code = obj.get("code").getAsInt();
+                if (code == 200) {
+                    MdjfEntity kqBean = new Gson().fromJson(result, MdjfEntity.class);
+                    List<MdjfEntity.DataBean.RecordsBean> records = kqBean.getData().getRecords();
+                    if (records.size() > 0 && records != null) {
+                        datas.addAll(records);
+                        mAdapter.notifyDataSetChanged();
+
+                    } else {
+                        ToastUtils.show("没有更多数据了");
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void onYgz(String result) {
+        requestData(pageNo = 1, pageSize);
+    }
+
+    /**
+     * 通过此方法可以使 Fragment 能够与外界做一些交互和通信, 比如说外部的 Activity 想让自己持有的某个 Fragment 对象执行一些方法,
+     * 建议在有多个需要与外界交互的方法时, 统一传 {@link Message}, 通过 what 字段来区分不同的方法, 在 {@link #setData(Object)}
+     * 方法中就可以 {@code switch} 做不同的操作, 这样就可以用统一的入口方法做多个不同的操作, 可以起到分发的作用
+     * <p>
+     * 调用此方法时请注意调用时 Fragment 的生命周期, 如果调用 {@link #setData(Object)} 方法时 {@link Fragment#onCreate(Bundle)} 还没执行
+     * 但在 {@link #setData(Object)} 里却调用了 Presenter 的方法, 是会报空的, 因为 Dagger 注入是在 {@link Fragment#onCreate(Bundle)} 方法中执行的
+     * 然后才创建的 Presenter, 如果要做一些初始化操作,可以不必让外部调用 {@link #setData(Object)}, 在 {@link #initData(Bundle)} 中初始化就可以了
+     * <p>
+     * Example usage:
+     * <pre>
+     * public void setData(@Nullable Object data) {
+     *     if (data != null && data instanceof Message) {
+     *         switch (((Message) data).what) {
+     *             case 0:
+     *                 loadData(((Message) data).arg1);
+     *                 break;
+     *             case 1:
+     *                 refreshUI();
+     *                 break;
+     *             default:
+     *                 //do something
+     *                 break;
+     *         }
+     *     }
+     * }
+     *
+     * // call setData(Object):
+     * Message data = new Message();
+     * data.what = 0;
+     * data.arg1 = 1;
+     * fragment.setData(data);
+     * </pre>
+     *
+     * @param data 当不需要参数时 {@code data} 可以为 {@code null}
+     */
+    @Override
+    public void setData(@Nullable Object data) {
+    }
+
+    @Override
+    public void showLoading() {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+
+    @Override
+    public void showMessage(@NonNull String message) {
+        checkNotNull(message);
+        ArmsUtils.snackbarText(message);
+    }
+
+    @Override
+    public void launchActivity(@NonNull Intent intent) {
+        checkNotNull(intent);
+        ArmsUtils.startActivity(intent);
+    }
+
+    @Override
+    public void killMyself() {
+
+    }
+}

+ 134 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/RhzfQzqzFragment.java

@@ -0,0 +1,134 @@
+package com.zkjc.policedemo.mvp.ui.fragment;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.jess.arms.base.BaseFragment;
+import com.jess.arms.di.component.AppComponent;
+import com.jess.arms.utils.ArmsUtils;
+
+import com.zkjc.policedemo.di.component.DaggerRhzfQzqzComponent;
+import com.zkjc.policedemo.mvp.contract.RhzfQzqzContract;
+import com.zkjc.policedemo.mvp.presenter.RhzfQzqzPresenter;
+
+import com.zkjc.policedemo.R;
+
+import static com.jess.arms.utils.Preconditions.checkNotNull;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/14/2024 13:40
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public class RhzfQzqzFragment extends BaseFragment<RhzfQzqzPresenter> implements RhzfQzqzContract.View {
+
+    public static RhzfQzqzFragment newInstance() {
+        RhzfQzqzFragment fragment = new RhzfQzqzFragment();
+        return fragment;
+    }
+
+    @Override
+    public void setupFragmentComponent(@NonNull AppComponent appComponent) {
+        DaggerRhzfQzqzComponent //如找不到该类,请编译一下项目
+                .builder()
+                .appComponent(appComponent)
+                .view(this)
+                .build()
+                .inject(this);
+    }
+
+    @Override
+    public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_rhzf_qzqz, container, false);
+    }
+
+    @Override
+    public void initData(@Nullable Bundle savedInstanceState) {
+
+    }
+
+    /**
+     * 通过此方法可以使 Fragment 能够与外界做一些交互和通信, 比如说外部的 Activity 想让自己持有的某个 Fragment 对象执行一些方法,
+     * 建议在有多个需要与外界交互的方法时, 统一传 {@link Message}, 通过 what 字段来区分不同的方法, 在 {@link #setData(Object)}
+     * 方法中就可以 {@code switch} 做不同的操作, 这样就可以用统一的入口方法做多个不同的操作, 可以起到分发的作用
+     * <p>
+     * 调用此方法时请注意调用时 Fragment 的生命周期, 如果调用 {@link #setData(Object)} 方法时 {@link Fragment#onCreate(Bundle)} 还没执行
+     * 但在 {@link #setData(Object)} 里却调用了 Presenter 的方法, 是会报空的, 因为 Dagger 注入是在 {@link Fragment#onCreate(Bundle)} 方法中执行的
+     * 然后才创建的 Presenter, 如果要做一些初始化操作,可以不必让外部调用 {@link #setData(Object)}, 在 {@link #initData(Bundle)} 中初始化就可以了
+     * <p>
+     * Example usage:
+     * <pre>
+     * public void setData(@Nullable Object data) {
+     *     if (data != null && data instanceof Message) {
+     *         switch (((Message) data).what) {
+     *             case 0:
+     *                 loadData(((Message) data).arg1);
+     *                 break;
+     *             case 1:
+     *                 refreshUI();
+     *                 break;
+     *             default:
+     *                 //do something
+     *                 break;
+     *         }
+     *     }
+     * }
+     *
+     * // call setData(Object):
+     * Message data = new Message();
+     * data.what = 0;
+     * data.arg1 = 1;
+     * fragment.setData(data);
+     * </pre>
+     *
+     * @param data 当不需要参数时 {@code data} 可以为 {@code null}
+     */
+    @Override
+    public void setData(@Nullable Object data) {
+
+    }
+
+    @Override
+    public void showLoading() {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+
+    @Override
+    public void showMessage(@NonNull String message) {
+        checkNotNull(message);
+        ArmsUtils.snackbarText(message);
+    }
+
+    @Override
+    public void launchActivity(@NonNull Intent intent) {
+        checkNotNull(intent);
+        ArmsUtils.startActivity(intent);
+    }
+
+    @Override
+    public void killMyself() {
+
+    }
+}

+ 214 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/SyrkFragment.java

@@ -0,0 +1,214 @@
+package com.zkjc.policedemo.mvp.ui.fragment;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.hjq.toast.ToastUtils;
+import com.jess.arms.base.BaseFragment;
+import com.jess.arms.di.component.AppComponent;
+import com.jess.arms.utils.ArmsUtils;
+
+import com.zkjc.policedemo.di.component.DaggerSyrkComponent;
+import com.zkjc.policedemo.mvp.contract.SyrkContract;
+import com.zkjc.policedemo.mvp.model.entity.RhxxBean;
+import com.zkjc.policedemo.mvp.model.entity.ZdAllEntity;
+import com.zkjc.policedemo.mvp.presenter.SyrkPresenter;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity;
+import com.zkjc.policedemo.mvp.ui.activity.AddWgrkActivity;
+import com.zkjc.policedemo.mvp.ui.activity.AddWlhRkActivity;
+import com.zkjc.policedemo.mvp.ui.activity.AddZzrkActivity;
+import com.zkjc.policedemo.mvp.ui.activity.RhzfActivity;
+import com.zkjc.policedemo.mvp.ui.activity.RhzfDetailActivity;
+import com.zkjc.policedemo.mvp.ui.adapter.BaseRecycleAdapter;
+import com.zkjc.policedemo.mvp.ui.adapter.SyrkAdapter;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+
+import butterknife.BindView;
+
+import static com.jess.arms.utils.Preconditions.checkNotNull;
+import static com.zkjc.policedemo.mvp.ui.activity.RhzfActivity.EXTRA_RYLB;
+import static com.zkjc.policedemo.mvp.ui.activity.RhzfActivity.TYPE_RK_CZRK;
+import static com.zkjc.policedemo.mvp.ui.activity.RhzfActivity.TYPE_RK_JWRK;
+import static com.zkjc.policedemo.mvp.ui.activity.RhzfActivity.TYPE_RK_JZRK;
+import static com.zkjc.policedemo.mvp.ui.activity.RhzfActivity.TYPE_RK_WLRK;
+import static com.zkjc.policedemo.mvp.ui.activity.RhzfActivity.TYPE_RK_ZZRK;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 11/13/2024 14:42
+ * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
+ * <a href="https://github.com/JessYanCoding">Follow me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
+ * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
+ * ================================================
+ */
+public class SyrkFragment extends BaseFragment<SyrkPresenter> implements SyrkContract.View {
+    @BindView(R.id.recycler_view)
+    RecyclerView recyclerView;
+
+    public static SyrkFragment newInstance(ArrayList<RhxxBean> list) {
+        SyrkFragment fragment = new SyrkFragment();
+        Bundle bundle = new Bundle();
+        bundle.putSerializable("list", list);
+        fragment.setArguments(bundle);
+        return fragment;
+    }
+
+    @Override
+    public void setupFragmentComponent(@NonNull AppComponent appComponent) {
+        DaggerSyrkComponent //如找不到该类,请编译一下项目
+                .builder()
+                .appComponent(appComponent)
+                .view(this)
+                .build()
+                .inject(this);
+    }
+
+    @Override
+    public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.fragment_syrk, container, false);
+    }
+
+    @Override
+    public void initData(@Nullable Bundle savedInstanceState) {
+        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
+        ArrayList<RhxxBean> list = (ArrayList<RhxxBean>) getArguments().getSerializable("list");
+        SyrkAdapter adapter = new SyrkAdapter(list);
+        adapter.setOnRecyclerViewListener(new BaseRecycleAdapter.OnRecyclerViewListener() {
+            @Override
+            public void onItemClick(int position) {
+                ZdAllEntity.DataBean zdAllData = ((RhzfDetailActivity) getActivity()).getZdAllData();
+                if (zdAllData == null) {
+                    ToastUtils.show("数据未初始化,请重新进入页面");
+                    return;
+                }
+                RhxxBean bean = list.get(position);
+                Intent intent = new Intent(getActivity(), AddCzrkActivity.class);
+                switch (bean.getRyType()) {
+                    case TYPE_RK_CZRK:
+                    case TYPE_RK_JZRK:
+                        intent = new Intent(getActivity(), AddCzrkActivity.class);
+                        break;
+                    case TYPE_RK_ZZRK:
+                        intent = new Intent(getActivity(), AddZzrkActivity.class);
+                        break;
+                    case TYPE_RK_JWRK:
+                        intent = new Intent(getActivity(), AddWgrkActivity.class);
+                        break;
+                    case TYPE_RK_WLRK:
+                        intent = new Intent(getActivity(), AddWlhRkActivity.class);
+                        break;
+                    default:
+                        break;
+                }
+                intent.putExtra("data", zdAllData);
+                intent.putExtra("is_fz", bean.isFz());
+                intent.putExtra("info", bean);
+                intent.putExtra("need_update", true);
+                intent.putExtra("position", position);
+                intent.putExtra(EXTRA_RYLB, bean.getRyType());
+                startActivityForResult(intent, 1);
+
+            }
+
+            @Override
+            public boolean onItemLongClick(int position) {
+                return false;
+            }
+        });
+        recyclerView.setAdapter(adapter);
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        ((RhzfDetailActivity) getActivity()).refreshData();
+    }
+
+    /**
+     * 通过此方法可以使 Fragment 能够与外界做一些交互和通信, 比如说外部的 Activity 想让自己持有的某个 Fragment 对象执行一些方法,
+     * 建议在有多个需要与外界交互的方法时, 统一传 {@link Message}, 通过 what 字段来区分不同的方法, 在 {@link #setData(Object)}
+     * 方法中就可以 {@code switch} 做不同的操作, 这样就可以用统一的入口方法做多个不同的操作, 可以起到分发的作用
+     * <p>
+     * 调用此方法时请注意调用时 Fragment 的生命周期, 如果调用 {@link #setData(Object)} 方法时 {@link Fragment#onCreate(Bundle)} 还没执行
+     * 但在 {@link #setData(Object)} 里却调用了 Presenter 的方法, 是会报空的, 因为 Dagger 注入是在 {@link Fragment#onCreate(Bundle)} 方法中执行的
+     * 然后才创建的 Presenter, 如果要做一些初始化操作,可以不必让外部调用 {@link #setData(Object)}, 在 {@link #initData(Bundle)} 中初始化就可以了
+     * <p>
+     * Example usage:
+     * <pre>
+     * public void setData(@Nullable Object data) {
+     *     if (data != null && data instanceof Message) {
+     *         switch (((Message) data).what) {
+     *             case 0:
+     *                 loadData(((Message) data).arg1);
+     *                 break;
+     *             case 1:
+     *                 refreshUI();
+     *                 break;
+     *             default:
+     *                 //do something
+     *                 break;
+     *         }
+     *     }
+     * }
+     *
+     * // call setData(Object):
+     * Message data = new Message();
+     * data.what = 0;
+     * data.arg1 = 1;
+     * fragment.setData(data);
+     * </pre>
+     *
+     * @param data 当不需要参数时 {@code data} 可以为 {@code null}
+     */
+    @Override
+    public void setData(@Nullable Object data) {
+
+    }
+
+    @Override
+    public void showLoading() {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+
+    @Override
+    public void showMessage(@NonNull String message) {
+        checkNotNull(message);
+        ArmsUtils.snackbarText(message);
+    }
+
+    @Override
+    public void launchActivity(@NonNull Intent intent) {
+        checkNotNull(intent);
+        ArmsUtils.startActivity(intent);
+    }
+
+    @Override
+    public void killMyself() {
+
+    }
+}

BIN
app/src/main/res/drawable-xxxhdpi/btn_edit_color.png


BIN
app/src/main/res/drawable-xxxhdpi/icon_house_color.png


BIN
app/src/main/res/drawable-xxxhdpi/icon_unit_gray.png


+ 5 - 0
app/src/main/res/drawable/bg_shape_248860cc_corner4.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#248860cc" />
+    <corners android:radius="4dp" />
+</shape>

+ 10 - 0
app/src/main/res/drawable/dash_line.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <stroke
+        android:dashWidth="2dp"
+    android:dashGap="2dp"
+    android:color="#e7e7e7"
+    android:width="0.5dp"/>
+
+</shape>

+ 0 - 1
app/src/main/res/layout/activity_add_wlh_rk.xml

@@ -64,7 +64,6 @@
                             android:id="@+id/iv_sm"
                             android:layout_width="24dp"
                             android:layout_height="24dp"
-                            android:visibility="gone"
                             android:layout_alignParentRight="true"
                             android:layout_centerVertical="true"
                             android:layout_marginRight="10dp"

+ 39 - 33
app/src/main/res/layout/activity_rhzf.xml

@@ -123,6 +123,42 @@
 
                 <RelativeLayout
                     android:layout_width="match_parent"
+                    android:id="@+id/layout_zp"
+                    android:layout_height="78dp">
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:layout_alignParentBottom="true"
+                        android:layout_marginLeft="12dp"
+                        android:layout_marginRight="12dp"
+                        android:background="#E7E7E7" />
+
+                    <TextView
+                        android:id="@+id/zp"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_centerVertical="true"
+                        android:layout_marginLeft="12dp"
+                        android:text="房屋照片(必填)"
+                        android:textColor="#666666"
+                        android:textSize="14sp" />
+
+                    <ImageView
+                        android:id="@+id/iv_zp"
+                        android:layout_width="48dp"
+                        android:layout_height="48dp"
+                        android:layout_alignParentRight="true"
+                        android:scaleType="centerCrop"
+                        android:layout_centerVertical="true"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="12dp"
+                        android:background="@drawable/icon_add_gray" />
+
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:layout_width="match_parent"
                     android:visibility="gone"
                     android:layout_height="54dp">
 
@@ -414,13 +450,6 @@
                     android:layout_width="match_parent"
                     android:layout_height="54dp">
 
-                    <View
-                        android:layout_width="match_parent"
-                        android:layout_height="1dp"
-                        android:layout_alignParentBottom="true"
-                        android:layout_marginLeft="12dp"
-                        android:layout_marginRight="12dp"
-                        android:background="#E7E7E7" />
                     <TextView
                         android:id="@+id/sl"
                         android:layout_width="wrap_content"
@@ -470,32 +499,6 @@
                     </RelativeLayout>
                 </RelativeLayout>
 
-                <RelativeLayout
-                    android:layout_width="match_parent"
-                    android:id="@+id/layout_zp"
-                    android:layout_height="54dp">
-
-                    <TextView
-                        android:id="@+id/zp"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_centerVertical="true"
-                        android:layout_marginLeft="12dp"
-                        android:text="房屋照片(必填)"
-                        android:textColor="#666666"
-                        android:textSize="14sp" />
-
-                    <ImageView
-                        android:id="@+id/iv_zp_arrow"
-                        android:layout_width="10dp"
-                        android:layout_height="15dp"
-                        android:layout_alignParentRight="true"
-                        android:layout_centerVertical="true"
-                        android:layout_marginLeft="10dp"
-                        android:layout_marginRight="12dp"
-                        android:background="@drawable/right_jt" />
-
-                </RelativeLayout>
             </LinearLayout>
 
             <LinearLayout
@@ -1396,6 +1399,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_below="@id/ll_one"
+                android:visibility="gone"
                 android:layout_marginLeft="12dp"
                 android:layout_marginTop="10dp"
                 android:layout_marginRight="12dp"
@@ -1476,6 +1480,7 @@
 
             <LinearLayout
                 android:id="@+id/ll_xc"
+                android:visibility="gone"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_below="@id/ll_cyry"
@@ -1538,6 +1543,7 @@
 
             <LinearLayout
                 android:id="@+id/ll_other"
+                android:visibility="gone"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_below="@id/ll_xc"

+ 426 - 0
app/src/main/res/layout/activity_rhzf_detail.xml

@@ -0,0 +1,426 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:orientation="vertical"
+    android:background="#f8f8f8"
+    android:layout_height="wrap_content">
+
+    <View
+        android:layout_width="match_parent"
+        android:id="@+id/rhzf_top_bg"
+        android:background="@drawable/bj_blue"
+        android:layout_height="232dp"/>
+
+    <com.zkjc.common.view.CommonTitleBarV3
+        android:id="@+id/title_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="25dp" />
+
+    <androidx.coordinatorlayout.widget.CoordinatorLayout
+        android:layout_width="match_parent"
+        android:id="@+id/layout_rwzx"
+        android:layout_below="@id/title_bar"
+        android:layout_height="match_parent">
+
+        <com.google.android.material.appbar.AppBarLayout
+            android:orientation="vertical"
+            android:id="@+id/rhzf_detail_appbar"
+            android:layout_width="match_parent"
+            app:elevation="0dp"
+            app:layout_behavior="com.yuruiyin.appbarlayoutbehavior.AppBarLayoutBehavior"
+            android:background="@color/transparent"
+            android:layout_height="wrap_content">
+            <com.google.android.material.appbar.CollapsingToolbarLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                app:layout_scrollFlags="scroll|exitUntilCollapsed">
+
+                <androidx.appcompat.widget.Toolbar
+                    android:id="@+id/toolbar"
+                    android:layout_width="match_parent"
+                    android:layout_height="44dp"/>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:orientation="vertical"
+                    android:layout_marginLeft="12dp"
+                    android:layout_marginRight="12dp"
+                    android:background="@drawable/white_bg"
+                    android:layout_marginTop="12dp"
+                    android:layout_height="wrap_content">
+
+                    <RelativeLayout
+                        android:layout_width="match_parent"
+                        android:id="@+id/layout_fw"
+                        android:layout_height="wrap_content">
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="实有房屋"
+                            android:layout_marginLeft="12dp"
+                            android:layout_marginTop="16dp"
+                            android:layout_marginBottom="16dp"
+                            android:textColor="#ff111111"
+                            android:textSize="16sp"
+                            />
+
+                        <ImageView
+                            android:layout_width="16dp"
+                            android:background="@drawable/btn_edit_color"
+                            android:layout_alignParentRight="true"
+                            android:layout_centerVertical="true"
+                            android:layout_marginRight="12dp"
+                            android:layout_height="16dp"/>
+
+                    </RelativeLayout>
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:background="#e7e7e7"
+                        android:layout_marginLeft="12dp"
+                        android:layout_marginRight="12dp"
+                        android:layout_height="1dp"/>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:orientation="horizontal"
+                        android:layout_marginTop="12dp"
+                        android:layout_marginBottom="11dp"
+                        android:layout_height="wrap_content">
+                        
+                        <ImageView
+                            android:layout_width="48dp"
+                            android:layout_marginLeft="12dp"
+                            android:id="@+id/rhzf_detail_iv_zp"
+                            android:background="@drawable/icon_house_color"
+                            android:scaleType="centerCrop"
+                            android:layout_height="48dp"/>
+
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:orientation="vertical"
+                            android:layout_marginRight="12dp"
+                            android:layout_marginLeft="12dp"
+                            android:layout_height="wrap_content">
+
+                            <TextView
+                                android:id="@+id/rhzf_detail_tv_address"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:text="吉林省长春市朝阳区飞跃街道学苑街众诚·一品东南1栋 1单元101室"
+                                android:textColor="#ff111111"
+                                android:lineSpacingExtra="3dp"
+                                android:textSize="14sp" />
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
+                                android:orientation="horizontal"
+                                android:layout_marginTop="8dp"
+                                android:layout_height="wrap_content">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:text="房屋特点"
+                                    android:textColor="#ff999999"
+                                    android:textSize="12sp"
+                                    />
+
+                                <TextView
+                                    android:layout_width="match_parent"
+                                    android:id="@+id/rhzf_detail_tv_fwtd"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginLeft="4dp"
+                                    android:text="单元公寓楼|住宅|居民住宅|出租"
+                                    android:textColor="#ff111111"
+                                    android:textSize="12sp"
+                                    />
+                            </LinearLayout>
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
+                                android:orientation="horizontal"
+                                android:layout_marginTop="8dp"
+                                android:layout_height="wrap_content">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:text="户内面积"
+                                    android:textColor="#ff999999"
+                                    android:textSize="12sp"
+                                    />
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:id="@+id/rhzf_detail_tv_mj"
+                                    android:layout_marginLeft="4dp"
+                                    android:text="86㎡"
+                                    android:textColor="#ff111111"
+                                    android:textSize="12sp"
+                                    />
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:text="|户内间数"
+                                    android:layout_marginLeft="4dp"
+                                    android:textColor="#ff999999"
+                                    android:textSize="12sp"
+                                    />
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:id="@+id/rhzf_detail_tv_count"
+                                    android:layout_marginLeft="4dp"
+                                    android:text="3"
+                                    android:textColor="#ff111111"
+                                    android:textSize="12sp"
+                                    />
+                            </LinearLayout>
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
+                                android:orientation="horizontal"
+                                android:id="@+id/rhzf_detail_layout_tsqk"
+                                android:layout_marginTop="8dp"
+                                android:layout_height="wrap_content">
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:text="特殊情况说明"
+                                    android:textColor="#ff999999"
+                                    android:textSize="12sp"
+                                    />
+
+                                <TextView
+                                    android:layout_width="match_parent"
+                                    android:id="@+id/rhzf_detail_tv_tsqk"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginLeft="4dp"
+                                    android:textColor="#ff111111"
+                                    android:textSize="12sp"
+                                    />
+                            </LinearLayout>
+
+                        </LinearLayout>
+
+                    </LinearLayout>
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:background="#e7e7e7"
+                        android:layout_height="0.5dp"/>
+
+                    <RelativeLayout
+                        android:layout_width="match_parent"
+                        android:orientation="horizontal"
+                        android:id="@+id/rhzf_detail_layout_fz"
+                        android:layout_marginTop="11dp"
+                        android:layout_height="wrap_content">
+
+                        <ImageView
+                            android:layout_width="48dp"
+                            android:layout_marginLeft="12dp"
+                            android:id="@+id/rhzf_detail_iv_fz_zp"
+                            android:layout_height="48dp"/>
+
+                        <ImageView
+                            android:layout_width="32dp"
+                            android:layout_marginLeft="36dp"
+                            android:visibility="invisible"
+                            android:id="@+id/rhzf_detail_iv_tag"
+                            android:layout_marginTop="51dp"
+                            android:layout_height="32dp"/>
+
+                        <RelativeLayout
+                            android:layout_width="match_parent"
+                            android:layout_marginLeft="4dp"
+                            android:layout_marginRight="12dp"
+                            android:layout_marginBottom="12dp"
+                            android:layout_toRightOf="@id/rhzf_detail_iv_tag"
+                            android:layout_height="wrap_content">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="赵一天"
+                                android:id="@+id/rhzf_detail_tv_name"
+                                android:textColor="#ff111111"
+                                android:textSize="14sp"/>
+
+                            <ImageView
+                                android:layout_width="16dp"
+                                android:layout_toRightOf="@id/rhzf_detail_tv_name"
+                                android:layout_marginLeft="8dp"
+                                android:id="@+id/rhzf_detail_iv_sex"
+                                android:layout_marginTop="2dp"
+                                android:background="@drawable/icon_boy"
+                                android:layout_height="16dp"/>
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="在此居住"
+                                android:visibility="gone"
+                                android:id="@+id/rhzf_detail_tv_zcjz"
+                                android:layout_alignParentRight="true"
+                                android:layout_marginTop="2dp"
+                                android:textColor="#ff30b344"
+                                android:textSize="12sp"
+                                />
+
+                            <TextView
+                                android:id="@+id/rhzf_detail_tv_sfzh"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginTop="8dp"
+                                android:layout_below="@id/rhzf_detail_tv_name"
+                                android:text="220102 1978 0120 1816|汉族"
+                                android:textColor="#ff111111"
+                                android:textSize="12sp"
+                                />
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
+                                android:orientation="horizontal"
+                                android:id="@+id/rhzf_detail_layout_sfzh"
+                                android:layout_below="@id/rhzf_detail_tv_sfzh"
+                                android:layout_marginTop="8dp"
+                                android:gravity="center_vertical"
+                                android:layout_height="wrap_content">
+
+                                <ImageView
+                                    android:layout_width="16dp"
+                                    android:background="@drawable/icon_fxpc_phone"
+                                    android:layout_height="16dp"/>
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:id="@+id/rhzf_detail_tv_phone"
+                                    android:text="188 4537 8246"
+                                    android:layout_marginLeft="8dp"
+                                    android:textColor="#ff111111"
+                                    android:textSize="12sp"
+                                    />
+
+                            </LinearLayout>
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
+                                android:orientation="horizontal"
+                                android:id="@+id/rhzf_detail_layout_dw"
+                                android:layout_below="@id/rhzf_detail_layout_sfzh"
+                                android:layout_marginTop="8dp"
+                                android:gravity="center_vertical"
+                                android:layout_height="wrap_content">
+
+                                <ImageView
+                                    android:layout_width="16dp"
+                                    android:background="@drawable/icon_unit_gray"
+                                    android:layout_height="16dp"/>
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:id="@+id/rhzf_detail_tv_dw"
+                                    android:text="吉林省玄武科技有限公司"
+                                    android:layout_marginLeft="8dp"
+                                    android:textColor="#ff111111"
+                                    android:textSize="12sp"
+                                    />
+
+                            </LinearLayout>
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
+                                android:orientation="horizontal"
+                                android:id="@+id/rhzf_detail_layout_jzdz"
+                                android:layout_below="@id/rhzf_detail_layout_dw"
+                                android:layout_marginTop="8dp"
+                                android:gravity="center_vertical"
+                                android:layout_height="wrap_content">
+
+                                <ImageView
+                                    android:layout_width="16dp"
+                                    android:background="@drawable/icon_address_gray"
+                                    android:layout_height="16dp"/>
+
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:id="@+id/rhzf_detail_tv_xjzd"
+                                    android:text="长春市绿园区绿源小区A8栋4-301"
+                                    android:layout_marginLeft="8dp"
+                                    android:textColor="#ff111111"
+                                    android:textSize="12sp"
+                                    />
+
+                            </LinearLayout>
+
+                        </RelativeLayout>
+
+                        
+
+                    </RelativeLayout>
+
+                </LinearLayout>
+
+
+            </com.google.android.material.appbar.CollapsingToolbarLayout>
+            <com.google.android.material.tabs.TabLayout
+                android:id="@+id/rhzf_detail_tab"
+                android:layout_width="match_parent"
+                android:layout_height="40dp"
+                android:paddingLeft="8dp"
+                android:paddingRight="8dp"
+                app:tabMode="scrollable"
+                app:tabIndicatorHeight="0dp"
+                app:tabSelectedTextColor="@color/blue"
+                app:tabTextColor="#666666" />
+
+        </com.google.android.material.appbar.AppBarLayout>
+
+        <androidx.viewpager2.widget.ViewPager2
+            android:id="@+id/rhzf_detail_vp"
+            android:layout_width="match_parent"
+            app:layout_behavior="@string/appbar_scrolling_view_behavior"
+            android:layout_height="match_parent"/>
+    </androidx.coordinatorlayout.widget.CoordinatorLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:orientation="horizontal"
+        android:layout_below="@id/title_bar"
+        android:background="#f8f8f8"
+        android:visibility="gone"
+        android:gravity="center_vertical"
+        android:id="@+id/rhzf_detail_holder_layout"
+        android:layout_height="44dp">
+
+        <ImageView
+            android:layout_width="32dp"
+            android:id="@+id/rhzf_detail_holder_iv_zp"
+            android:layout_marginLeft="16dp"
+            android:layout_height="32dp"/>
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="8dp"
+            android:text="吉林省长春市朝阳区飞跃街道学苑街众诚·一品东南1栋 1单元101室"
+            android:textColor="#ff111111"
+            android:textSize="12sp"
+            />
+
+    </LinearLayout>
+
+</RelativeLayout>

+ 8 - 0
app/src/main/res/layout/fragment_rhzf_fwqz.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+</LinearLayout>

+ 8 - 0
app/src/main/res/layout/fragment_rhzf_jxcs.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+</LinearLayout>

+ 35 - 0
app/src/main/res/layout/fragment_rhzf_md.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/recyclerView"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="53dp"
+        android:gravity="center"
+        android:id="@+id/layout_add"
+        android:layout_centerVertical="true"
+        android:orientation="horizontal">
+
+        <ImageView
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:background="@drawable/icon_plus_blue" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:text="添加矛盾纠纷"
+            android:textColor="#106DFF"
+            android:textSize="16sp" />
+    </LinearLayout>
+</LinearLayout>

+ 8 - 0
app/src/main/res/layout/fragment_rhzf_qzqz.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+</LinearLayout>

+ 38 - 0
app/src/main/res/layout/fragment_syrk.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:layout_width="match_parent"
+        android:id="@+id/recycler_view"
+        android:background="@drawable/white_bg"
+        android:layout_marginLeft="12dp"
+        android:layout_marginRight="12dp"
+        android:layout_height="wrap_content"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="53dp"
+        android:layout_centerInParent="true"
+        android:gravity="center"
+        android:layout_centerVertical="true"
+        android:orientation="horizontal">
+
+        <ImageView
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:background="@drawable/icon_plus_blue" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:text="添加从业人员"
+            android:textColor="#106DFF"
+            android:textSize="16sp" />
+    </LinearLayout>
+
+</LinearLayout>

+ 174 - 0
app/src/main/res/layout/item_syrk.xml

@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
+    android:orientation="vertical"
+    android:id="@+id/item_root"
+    android:layout_height="wrap_content">
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_marginLeft="12dp"
+        android:id="@+id/item_syrk_divider"
+        android:layout_marginRight="12dp"
+        android:background="@drawable/dash_line"
+        android:layout_height="1dp"/>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_marginTop="11dp"
+        android:layout_height="wrap_content">
+
+        <ImageView
+            android:layout_width="48dp"
+            android:layout_marginLeft="12dp"
+            android:id="@+id/item_syrk_iv_fz_zp"
+            android:layout_height="48dp"/>
+
+        <ImageView
+            android:layout_width="32dp"
+            android:layout_marginLeft="36dp"
+            android:visibility="invisible"
+            android:id="@+id/item_syrk_iv_tag"
+            android:layout_marginTop="51dp"
+            android:layout_height="32dp"/>
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_marginLeft="4dp"
+            android:layout_marginRight="12dp"
+            android:layout_marginBottom="12dp"
+            android:layout_toRightOf="@id/item_syrk_iv_tag"
+            android:layout_height="wrap_content">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="赵一天"
+                android:id="@+id/item_syrk_tv_name"
+                android:textColor="#ff111111"
+                android:textSize="14sp"/>
+
+            <ImageView
+                android:layout_width="16dp"
+                android:layout_toRightOf="@id/item_syrk_tv_name"
+                android:layout_marginLeft="8dp"
+                android:layout_marginTop="2dp"
+                android:id="@+id/item_syrk_iv_sex"
+                android:background="@drawable/icon_boy"
+                android:layout_height="16dp"/>
+
+            <ImageView
+                android:id="@+id/item_syrk_tv_zcjz"
+                android:layout_width="16dp"
+                android:layout_height="16dp"
+                android:background="@drawable/btn_edit_color"
+                android:layout_alignParentRight="true"
+                android:layout_marginTop="2dp" />
+
+            <TextView
+                android:id="@+id/item_syrk_tv_sfzh"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="8dp"
+                android:layout_below="@id/item_syrk_tv_name"
+                android:text="220102 1978 0120 1816|汉族"
+                android:textColor="#ff111111"
+                android:textSize="12sp"
+                />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:orientation="horizontal"
+                android:layout_marginTop="8dp"
+                android:id="@+id/item_syrk_layout_tag"
+                android:layout_below="@id/item_syrk_tv_sfzh"
+                android:layout_height="wrap_content">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:text="常住人口"
+                    android:id="@+id/item_syrk_tv_rklx"
+                    android:textColor="#ff106dff"
+                    android:textSize="12sp"
+                    android:paddingLeft="8dp"
+                    android:paddingRight="8dp"
+                    android:paddingTop="4dp"
+                    android:paddingBottom="4dp"
+                    android:layout_height="24dp"/>
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:text="残疾人"
+                    android:id="@+id/item_syrk_tv_tsrq"
+                    android:textColor="#ff8860cc"
+                    android:textSize="12sp"
+                    android:background="@drawable/bg_shape_248860cc_corner4"
+                    android:layout_marginLeft="8dp"
+                    android:paddingLeft="8dp"
+                    android:paddingRight="8dp"
+                    android:paddingTop="4dp"
+                    android:paddingBottom="4dp"
+                    android:layout_height="24dp"/>
+
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:orientation="horizontal"
+                android:id="@+id/item_syrk_layout_sfzh"
+                android:layout_below="@id/item_syrk_layout_tag"
+                android:layout_marginTop="8dp"
+                android:gravity="center_vertical"
+                android:layout_height="wrap_content">
+
+                <ImageView
+                    android:layout_width="16dp"
+                    android:background="@drawable/icon_fxpc_phone"
+                    android:layout_height="16dp"/>
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/item_syrk_tv_phone"
+                    android:text="188 4537 8246"
+                    android:layout_marginLeft="8dp"
+                    android:textColor="#ff111111"
+                    android:textSize="12sp"
+                    />
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:orientation="horizontal"
+                android:id="@+id/item_syrk_layout_dw"
+                android:layout_below="@id/item_syrk_layout_sfzh"
+                android:layout_marginTop="8dp"
+                android:gravity="center_vertical"
+                android:layout_height="wrap_content">
+
+                <ImageView
+                    android:layout_width="16dp"
+                    android:background="@drawable/icon_unit_gray"
+                    android:layout_height="16dp"/>
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/item_syrk_tv_dw"
+                    android:text="吉林省玄武科技有限公司"
+                    android:layout_marginLeft="8dp"
+                    android:textColor="#ff111111"
+                    android:textSize="12sp"
+                    />
+
+            </LinearLayout>
+
+        </RelativeLayout>
+
+
+
+    </RelativeLayout>
+
+</LinearLayout>