Explorar el Código

警务团队功能;服务总线调试

lichao hace 4 días
padre
commit
55c3b698be
Se han modificado 62 ficheros con 2857 adiciones y 155 borrados
  1. 1 1
      app/build.gradle
  2. 4 0
      app/src/main/AndroidManifest.xml
  3. 163 12
      app/src/main/java/com/xwkj/sqjw/mvp/ui/activity/SqjwLoginActivity.java
  4. 18 3
      app/src/main/java/com/zkjc/policedemo/app/GlobalHttpHandlerImpl.java
  5. 4 6
      app/src/main/java/com/zkjc/policedemo/app/utils/ReqToBus.java
  6. 4 2
      app/src/main/java/com/zkjc/policedemo/app/utils/StartActivityUtil.java
  7. 11 0
      app/src/main/java/com/zkjc/policedemo/app/utils/UploadUtil.java
  8. 41 0
      app/src/main/java/com/zkjc/policedemo/di/component/AddJwryComponent.java
  9. 41 0
      app/src/main/java/com/zkjc/policedemo/di/component/AddJwtdComponent.java
  10. 41 0
      app/src/main/java/com/zkjc/policedemo/di/component/JwryListComponent.java
  11. 41 0
      app/src/main/java/com/zkjc/policedemo/di/component/JwtdListComponent.java
  12. 30 0
      app/src/main/java/com/zkjc/policedemo/di/module/AddJwryModule.java
  13. 30 0
      app/src/main/java/com/zkjc/policedemo/di/module/AddJwtdModule.java
  14. 30 0
      app/src/main/java/com/zkjc/policedemo/di/module/JwryListModule.java
  15. 30 0
      app/src/main/java/com/zkjc/policedemo/di/module/JwtdListModule.java
  16. 29 0
      app/src/main/java/com/zkjc/policedemo/mvp/contract/AddJwryContract.java
  17. 30 0
      app/src/main/java/com/zkjc/policedemo/mvp/contract/AddJwtdContract.java
  18. 29 0
      app/src/main/java/com/zkjc/policedemo/mvp/contract/JwryListContract.java
  19. 29 0
      app/src/main/java/com/zkjc/policedemo/mvp/contract/JwtdListContract.java
  20. 1 1
      app/src/main/java/com/zkjc/policedemo/mvp/contract/LoginContract.java
  21. 46 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/AddJwryModel.java
  22. 46 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/AddJwtdModel.java
  23. 46 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/JwryListModel.java
  24. 46 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/JwtdListModel.java
  25. 3 2
      app/src/main/java/com/zkjc/policedemo/mvp/model/api/Api.java
  26. 86 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/entity/JwtdEntity.java
  27. 75 0
      app/src/main/java/com/zkjc/policedemo/mvp/model/entity/UserCredential.java
  28. 2 2
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddCzrkPresenter.java
  29. 53 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddJwryPresenter.java
  30. 84 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddJwtdPresenter.java
  31. 2 2
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddPersonPresenter.java
  32. 2 2
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddWlhRkPresenter.java
  33. 2 2
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/CyryhcPresenter.java
  34. 53 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/JwryListPresenter.java
  35. 53 0
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/JwtdListPresenter.java
  36. 38 2
      app/src/main/java/com/zkjc/policedemo/mvp/presenter/LoginPresenter.java
  37. 168 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddJwryActivity.java
  38. 211 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddJwtdActivity.java
  39. 1 1
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddMyQahyActivity.java
  40. 1 1
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddSqmyActivity.java
  41. 104 72
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/CyryhcActivity.java
  42. 112 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/JwryListActivity.java
  43. 189 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/JwtdListActivity.java
  44. 5 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/MenuListActivity.java
  45. 2 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/UpdateXqtActivity.java
  46. 32 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/adapter/JwrySelectAdapter.java
  47. 29 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/adapter/JwtdAdapter.java
  48. 42 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/adapter/JwtdRyAdapter.java
  49. 1 0
      app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/SydwRightFragment.java
  50. 6 0
      app/src/main/res/color/selector_text_color_jwtd.xml
  51. 8 0
      app/src/main/res/drawable/jwtd_ry_selector.xml
  52. 175 0
      app/src/main/res/layout/activity_add_jwry.xml
  53. 209 0
      app/src/main/res/layout/activity_add_jwtd.xml
  54. 0 7
      app/src/main/res/layout/activity_add_my_qahy.xml
  55. 35 34
      app/src/main/res/layout/activity_cyryhc.xml
  56. 43 0
      app/src/main/res/layout/activity_jwry_list.xml
  57. 49 0
      app/src/main/res/layout/activity_jwtd_list.xml
  58. 1 1
      app/src/main/res/layout/item_fwhc.xml
  59. 85 0
      app/src/main/res/layout/item_jwtd.xml
  60. 46 0
      app/src/main/res/layout/item_jwtd_ry.xml
  61. 58 0
      app/src/main/res/layout/item_jwtd_select.xml
  62. 1 2
      app/src/main/res/layout/item_my_chry.xml

+ 1 - 1
app/build.gradle

@@ -73,7 +73,7 @@ android {
     productFlavors {
         //应用商店版本
         sqjw {
-            resValue "string", "app_name", "社区警务"
+            resValue "string", "app_name", "社区警务APP"
             signingConfig signingConfigs.release
             manifestPlaceholders = [UMENG_CHANNEL: "appstore", CATEGORY: "android.intent.category.DEFAULT", APP_ICON: "@mipmap/ic_launcher"]
         }

+ 4 - 0
app/src/main/AndroidManifest.xml

@@ -95,6 +95,10 @@
         android:networkSecurityConfig="@xml/network_security_config"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
+        <activity android:name=".mvp.ui.activity.AddJwryActivity" />
+        <activity android:name=".mvp.ui.activity.JwryListActivity" />
+        <activity android:name=".mvp.ui.activity.AddJwtdActivity" />
+        <activity android:name=".mvp.ui.activity.JwtdListActivity" />
         <activity android:name=".mvp.ui.activity.JmhRyActivity" />
         <activity android:name=".mvp.ui.activity.FwhcjlActivity" />
         <activity android:name=".mvp.ui.activity.SyfwHcSearchActivity" />

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

@@ -3,10 +3,14 @@ package com.xwkj.sqjw.mvp.ui.activity;
 import android.Manifest;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.net.Uri;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
 import android.text.TextUtils;
 import android.text.method.HideReturnsTransformationMethod;
 import android.text.method.PasswordTransformationMethod;
+import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Button;
@@ -16,6 +20,7 @@ import android.widget.LinearLayout;
 import android.widget.RadioGroup;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -30,23 +35,40 @@ 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.UUIDUtils;
 import com.zkjc.common.utils.Utils;
 import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.app.utils.FileUtils;
 import com.zkjc.policedemo.di.component.DaggerLoginComponent;
 import com.zkjc.policedemo.mvp.contract.LoginContract;
 import com.zkjc.policedemo.mvp.model.entity.Login;
+import com.zkjc.policedemo.mvp.model.entity.UserCredential;
 import com.zkjc.policedemo.mvp.presenter.LoginPresenter;
 import com.zkjc.policedemo.mvp.ui.activity.StHomeActivity;
 import com.zkjc.policedemo.mvp.ui.activity.SydwActivity;
+import com.zkjc.policedemo.mvp.ui.activity.XfjcQdActivity;
 
 import org.jetbrains.annotations.NotNull;
 import org.xutils.common.util.MD5;
 
+import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.UUID;
 
 import butterknife.BindView;
+import io.reactivex.Observable;
+import io.reactivex.ObservableEmitter;
+import io.reactivex.ObservableOnSubscribe;
+import io.reactivex.Observer;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
 
 import static com.jess.arms.utils.Preconditions.checkNotNull;
 
@@ -92,6 +114,20 @@ public class SqjwLoginActivity extends ZkjcBaseActivity<LoginPresenter> implemen
     private XmPermissions xmPermissions;
     private SharedPreferences sys;
     private boolean isFj; // 目前取消此功能
+    private Handler handler = new Handler() {
+        @Override
+        public void handleMessage(@NonNull Message msg) {
+            super.handleMessage(msg);
+//            getInterface();
+        }
+    };
+
+    private void onTime(long time) {
+
+        handler.postDelayed(() -> {
+            getInterface();
+        }, time);
+    }
 
     @Override
     public void setupActivityComponent(@NonNull AppComponent appComponent) {
@@ -126,13 +162,9 @@ public class SqjwLoginActivity extends ZkjcBaseActivity<LoginPresenter> implemen
         if (ApkUtils.isSqjw(this)) {
             layoutTop.setVisibility(View.GONE);
             layoutBottom.setVisibility(View.GONE);
-            Map<String, Object> map1 = new HashMap<>();
-            map1.put("className", "bladeTokenEndPoint");
-            map1.put("methodName", "token3");
-            map1.put("username", /*getIntent().getStringExtra("jh")*/"sqmj1");
-            map1.put("password", MD5.md5("123456"));
-            mPresenter.login(map1);
             Utils.getInstances().showDialog(SqjwLoginActivity.this, "正在获取数据");
+            getInterface();
+
 
         } else {
             layoutTop.setVisibility(View.VISIBLE);
@@ -155,7 +187,7 @@ public class SqjwLoginActivity extends ZkjcBaseActivity<LoginPresenter> implemen
                 map1.put("methodName", "token3");
                 map1.put("username", zh);
                 map1.put("password", com.zkjc.policedemo.app.utils.MD5.md5(mm));
-                mPresenter.login(map1);
+                mPresenter.login(map1, zh);
                 Utils.getInstances().showDialog(SqjwLoginActivity.this, "正在登录");
 
             });
@@ -261,7 +293,7 @@ public class SqjwLoginActivity extends ZkjcBaseActivity<LoginPresenter> implemen
 
 
     @Override
-    public void onSuccess(String result) {
+    public void onSuccess(String result, String jinghao) {
 
         Utils.getInstances().dismissDialog();
         System.out.println("****" + result);
@@ -284,7 +316,7 @@ public class SqjwLoginActivity extends ZkjcBaseActivity<LoginPresenter> implemen
                     mPresenter.bindMj(map, entity);
                 } else {
                     Utils.getInstances().dismissDialog();
-                    saveLoginInfo(entity);
+                    saveLoginInfo(entity, jinghao);
                 }
 
             } else {
@@ -298,7 +330,7 @@ public class SqjwLoginActivity extends ZkjcBaseActivity<LoginPresenter> implemen
 
     }
 
-    private void saveLoginInfo(Login entity) {
+    private void saveLoginInfo(Login entity, String jinghao) {
         SharedPreferences sharedPreferences = getSharedPreferences("sys", MODE_PRIVATE);
         SharedPreferences.Editor edit = sharedPreferences.edit();
         edit.putString("token", entity.getAccess_token());
@@ -322,7 +354,7 @@ public class SqjwLoginActivity extends ZkjcBaseActivity<LoginPresenter> implemen
         edit.putString("mj_name", entity.getMjname());
         edit.putString("sspcs", entity.getSspcs());
         if (ApkUtils.isSqjw(this)) {
-            edit.putString("zh", /*getIntent().getStringExtra("jh")*/"sqmj1");
+            edit.putString("zh", jinghao);
             edit.putString("mm", MD5.md5(/*etMm.getText().toString().trim()*/"123456"));
         } else {
             edit.putString("zh", etZh.getText().toString().trim());
@@ -352,6 +384,125 @@ public class SqjwLoginActivity extends ZkjcBaseActivity<LoginPresenter> implemen
 
     @Override
     public void onBindMjSuccess(Login login) {
-        saveLoginInfo(login);
+        saveLoginInfo(login, "");
+    }
+
+    private void getInterface() {
+        Observable.create(new ObservableOnSubscribe<Boolean>(){
+            @Override
+            public void subscribe(ObservableEmitter<Boolean> emitter) throws Exception {
+                Uri uri = Uri.parse("content://com.ydjw.ua.getCredential");
+                Bundle params = new Bundle();
+                //构建参数
+                String paramsMessageId = UUID.randomUUID().toString();
+                params.putString("messageId", paramsMessageId);//消息id
+                params.putString("version", "1");//接口版本号,当前为1
+                params.putString("appId", "220000000000-3-1-97acefd890394d58a10b283e873b9ff3");//
+                params.putString("orgId", "220000000000");//
+                params.putString("networkAreaCode", "3");//
+                params.putString("packageName", "com.xwkj.sqjw");//应用包名,可空
+                //获取票据
+                Bundle bundle = null;
+                try {
+                    bundle = getContentResolver().call(uri, "", null, params);
+                } catch (Exception e) {
+//            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
+                }
+                //解析结果
+                if (bundle == null) {
+//            UiUtils.toast("获取应用凭证失败,bundle为空!");
+                    onTime(3000);
+                    return;
+                }
+                Log.e("eee", "bundle.getStringuserCredential ====== " + bundle.getString("userCredential"));
+                Log.e("eee", "bundle.getStringappCredential ====== " + bundle.getString("appCredential"));
+
+                String messageId = bundle.getString("messageId");
+
+                Log.e("eee", "getInterface messageId ====== " + messageId);
+                if (paramsMessageId.equals(messageId)) {
+                    int resultCode = bundle.getInt("resultCode");
+                    if (0 == resultCode) {
+                        UserCredential userCredential = new Gson().fromJson(bundle.getString("userCredential"), UserCredential.class);
+                        String jinghao = userCredential.getCredential().getLoad().getUserInfo().getJh();
+                        String sfzh = userCredential.getCredential().getLoad().getUserInfo().getSfzh();
+                        String orgid = userCredential.getCredential().getLoad().getUserInfo().getOrgId();
+                        String xm = userCredential.getCredential().getLoad().getUserInfo().getXm();
+                        if (TextUtils.isEmpty(sfzh)){
+                            onTime(3000L);
+                            return;
+                        }
+                        boolean success = getAddress(bundle.getString("appCredential"), bundle.getString("userCredential"));
+                        if (success) {
+                            Map<String, Object> map1 = new HashMap<>();
+                            map1.put("className", "bladeTokenEndPoint");
+                            map1.put("methodName", "token3");
+                            map1.put("username", jinghao);
+                            map1.put("password", MD5.md5("123456"));
+                            mPresenter.login(map1, jinghao);
+
+//                            mPresenter.getDictionary(new HashMap<>());
+                            emitter.onNext(true);
+                        } else {
+                            onTime(3000);
+                        }
+                    } else {
+                        onTime(3000);
+                    }
+                } else {
+                    onTime(3000);
+                }
+            }
+        }).subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Observer<Boolean>() {
+                    @Override
+                    public void onSubscribe(Disposable d) {
+
+                    }
+
+                    @Override
+                    public void onNext(Boolean v) {
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                    }
+
+                    @Override
+                    public void onComplete() {
+                    }
+                });
+    }
+
+    private boolean getAddress(String appCredential, String userCredential) {
+        SharedPreferences sp = getSharedPreferences("sys", MODE_PRIVATE);
+        Uri uri = Uri.parse("content://com.ydjw.rsb.getResourceAddress");
+        Bundle pararms = new Bundle();
+        String paramsMessageId = UUID.randomUUID().toString();
+        pararms.putString("messageId", paramsMessageId);
+        pararms.putString("version", "1");
+        pararms.putString("appCredential", appCredential);
+        Bundle bundle = getContentResolver().call(uri, "", null, pararms);
+        if (bundle == null) {
+            ToastUtils.show("获取应用地址失败!!!");
+            return false;
+        }
+        String messageId = bundle.getString("messageId");
+        Log.e("eee", "getAddress messageId ====== " + messageId);
+        if (messageId.equals(paramsMessageId)) {
+            String resourceList = bundle.getString("resourceList");
+            int code = bundle.getInt("resultCode");
+            if (code == 0) {
+                SharedPreferences.Editor edit = sp.edit();
+                edit.putString("appCredential", appCredential);
+                edit.putString("userCredential", userCredential);
+                edit.putString("resourceList", resourceList);
+                System.out.println("寻址" + resourceList);
+                edit.commit();
+                return true;
+            }
+        }
+        return false;
     }
 }

+ 18 - 3
app/src/main/java/com/zkjc/policedemo/app/GlobalHttpHandlerImpl.java

@@ -15,6 +15,8 @@ import com.zkjc.policedemo.mvp.model.api.Api;
 import com.zkjc.policedemo.mvp.model.entity.Login;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
 import java.nio.charset.Charset;
 import java.util.Arrays;
 import java.util.List;
@@ -103,7 +105,18 @@ public class GlobalHttpHandlerImpl implements GlobalHttpHandler {
         SharedPreferences sharedPreferences = context.getSharedPreferences("sys", Context.MODE_PRIVATE);
         String token = sharedPreferences.getString("token", "");
         Request.Builder builder = chain.request().newBuilder();
-        builder.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0");
+//        builder.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0");
+
+        String appCredential = sharedPreferences.getString("appCredential", "")/*.replace("社区警务", "")*/;
+        String userCredential = sharedPreferences.getString("userCredential", "");
+        try {
+            builder.header("appCredential", URLEncoder.encode(appCredential, "UTF-8")/*.replace("+","%2B")*/);
+            builder.header("userCredential", URLEncoder.encode(userCredential, "UTF-8"));
+//            builder.header("appCredential", "123");
+//            builder.header("userCredential", "222");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
 
         HttpUrl url = request.url();
       //  List<String> list = Arrays.asList(urls);
@@ -111,8 +124,10 @@ public class GlobalHttpHandlerImpl implements GlobalHttpHandler {
             builder.header("phone", "phone");
         }*/
 
-        if (!TextUtils.isEmpty(token))
-            builder.header("Blade-Auth", "bearer " + token);
+        if (!TextUtils.isEmpty(token)) {
+
+//            builder.header("Blade-Auth", "bearer " + token);
+        }
 
         Request build = builder.build();
 //        sharedPreferences.edit().putString("request", request.body().toString()).apply();

+ 4 - 6
app/src/main/java/com/zkjc/policedemo/app/utils/ReqToBus.java

@@ -74,14 +74,12 @@ public class ReqToBus {
         reqValue.put("version_code", ApkUtils.getVersionCode(context));
         reqValue.put("appId", sp.getString("appId", /*"1849702769842196481"*/"1846809831194980354"));
         if (!reqValue.containsKey("username")) {
-//        param.put("username", "admin");
-//        param.put("password", "937b0ec364aff24c011307493f5155b4");
             reqValue.put("username", sp.getString("zh", "106470"));
             reqValue.put("password", sp.getString("mm", MD5.md5("123456")));
         }
         // String url = "http://192.168.0.63:8090/jlyqfk/request/getData";
         // String dataObjId="220000000000-3-0100-74b66b22b1524937ac713c10489a55fc";
-        String dataObjId = "220000000000-3-0100-5262bf9ccd72456e802fe9a0b77097e5";
+        String dataObjId = "220000000000-3-0100-a26c47abe2264ccb80dccbe51c5828c1";
         //正式环境
 
 /*        String resourceList = sp.getString("resourceList", "[{\n" +
@@ -95,14 +93,14 @@ public class ReqToBus {
             resourceList = sp.getString("resourceList", "[{\n" +
                     "\"resourceRegionalismCode\":\"120000000000\",\n" +
                     "\"resourceAddress\":\"" + Api.APP_DOMAIN + "/zf/request\",\n" +
-                    "\"resourceId\":\"220000000000-3-0100-5262bf9ccd72456e802fe9a0b77097e5\",\"resourceServiceType\":\"10\"\n" +
+                    "\"resourceId\":\"220000000000-3-0100-a26c47abe2264ccb80dccbe51c5828c1\",\"resourceServiceType\":\"10\"\n" +
                     "}\n" +
                     "]");
         } else {
             resourceList = sp.getString("resourceList", "[{\n" +
                     "\"resourceRegionalismCode\":\"120000000000\",\n" +
                     "\"resourceAddress\":\"" + Api.APP_DOMAIN + "/zf/reflect\",\n" +
-                    "\"resourceId\":\"220000000000-3-0100-5262bf9ccd72456e802fe9a0b77097e5\",\"resourceServiceType\":\"10\"\n" +
+                    "\"resourceId\":\"220000000000-3-0100-a26c47abe2264ccb80dccbe51c5828c1\",\"resourceServiceType\":\"10\"\n" +
                     "}\n" +
                     "]");
         }
@@ -207,7 +205,7 @@ public class ReqToBus {
         condition.setKeyValueList(list);
         parameter.setCondition(condition);
         parameter.setDataObjId(dataObjId);
-        parameter.setFields("data");
+        parameter.setFields("params");
         parameter.setNetworkCode("3");
         List<BaseNetEntity.ParameterBean.OrderByBean> data = new ArrayList<>();
         parameter.setOrderBy(data);

+ 4 - 2
app/src/main/java/com/zkjc/policedemo/app/utils/StartActivityUtil.java

@@ -17,6 +17,7 @@ import com.zkjc.policedemo.mvp.ui.activity.FjGlySpActivity;
 import com.zkjc.policedemo.mvp.ui.activity.FktsActivity;
 import com.zkjc.policedemo.mvp.ui.activity.FxpcListActivity;
 import com.zkjc.policedemo.mvp.ui.activity.JwsLbActivity;
+import com.zkjc.policedemo.mvp.ui.activity.JwtdListActivity;
 import com.zkjc.policedemo.mvp.ui.activity.MdjfActivity;
 import com.zkjc.policedemo.mvp.ui.activity.MenuListActivity;
 import com.zkjc.policedemo.mvp.ui.activity.NbdwActivity;
@@ -71,8 +72,8 @@ public class StartActivityUtil {
                 if (!"7".equals(deptCategory)) {
                     ToastUtils.show(MSG);
                 } else {
-//                    ArmsUtils.startActivity(RhzfMainNewActivity.class);
-                    ArmsUtils.startActivity(SyfwHcActivity.class);
+                    ArmsUtils.startActivity(RhzfMainNewActivity.class);
+//                    ArmsUtils.startActivity(SyfwHcActivity.class);
                 }
                 break;
             case 2: // 矛盾纠纷
@@ -196,6 +197,7 @@ public class StartActivityUtil {
                 break;
             case 99: // 更多
                 ArmsUtils.startActivity(MenuListActivity.class);
+//                ArmsUtils.startActivity(JwtdListActivity.class);
                 break;
             default:
                 break;

+ 11 - 0
app/src/main/java/com/zkjc/policedemo/app/utils/UploadUtil.java

@@ -8,6 +8,7 @@ import com.google.gson.GsonBuilder;
 import com.google.gson.JsonObject;
 import com.hjq.toast.ToastUtils;
 import com.jess.arms.utils.ArmsUtils;
+import com.zkjc.common.utils.BitmapUtils;
 import com.zkjc.common.utils.UUIDUtils;
 import com.zkjc.common.utils.Utils;
 import com.zkjc.policedemo.mvp.model.api.Api;
@@ -61,6 +62,16 @@ public class UploadUtil {
     }
 
     public void getRequest(String path, CommonInterFace interFace) {
+        if (true) {
+            Map<String, String> map = new HashMap<>();
+            map.put("base64", "data:image/jpeg;base64," + BitmapUtils.fileToBase64(new File(path)));
+            Map<String, Object> map1 = new HashMap<>();
+            map1.put("className", "ossEndpoint");
+            map1.put("methodName", "putFile3");
+            map1.put("params", map);
+            ReqToBus.getInstance().init(context).getRequest(map1, interFace);
+            return;
+        }
 
         String url = Api.APP_DOMAIN + PATH;
         //正式环境

+ 41 - 0
app/src/main/java/com/zkjc/policedemo/di/component/AddJwryComponent.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.AddJwryModule;
+import com.zkjc.policedemo.mvp.contract.AddJwryContract;
+
+import com.jess.arms.di.scope.ActivityScope;
+import com.zkjc.policedemo.mvp.ui.activity.AddJwryActivity;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/2024 09:44
+ * <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 = AddJwryModule.class, dependencies = AppComponent.class)
+public interface AddJwryComponent {
+    void inject(AddJwryActivity activity);
+
+    @Component.Builder
+    interface Builder {
+        @BindsInstance
+        AddJwryComponent.Builder view(AddJwryContract.View view);
+
+        AddJwryComponent.Builder appComponent(AppComponent appComponent);
+
+        AddJwryComponent build();
+    }
+}

+ 41 - 0
app/src/main/java/com/zkjc/policedemo/di/component/AddJwtdComponent.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.AddJwtdModule;
+import com.zkjc.policedemo.mvp.contract.AddJwtdContract;
+
+import com.jess.arms.di.scope.ActivityScope;
+import com.zkjc.policedemo.mvp.ui.activity.AddJwtdActivity;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/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>
+ * ================================================
+ */
+@ActivityScope
+@Component(modules = AddJwtdModule.class, dependencies = AppComponent.class)
+public interface AddJwtdComponent {
+    void inject(AddJwtdActivity activity);
+
+    @Component.Builder
+    interface Builder {
+        @BindsInstance
+        AddJwtdComponent.Builder view(AddJwtdContract.View view);
+
+        AddJwtdComponent.Builder appComponent(AppComponent appComponent);
+
+        AddJwtdComponent build();
+    }
+}

+ 41 - 0
app/src/main/java/com/zkjc/policedemo/di/component/JwryListComponent.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.JwryListModule;
+import com.zkjc.policedemo.mvp.contract.JwryListContract;
+
+import com.jess.arms.di.scope.ActivityScope;
+import com.zkjc.policedemo.mvp.ui.activity.JwryListActivity;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/2024 09:43
+ * <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 = JwryListModule.class, dependencies = AppComponent.class)
+public interface JwryListComponent {
+    void inject(JwryListActivity activity);
+
+    @Component.Builder
+    interface Builder {
+        @BindsInstance
+        JwryListComponent.Builder view(JwryListContract.View view);
+
+        JwryListComponent.Builder appComponent(AppComponent appComponent);
+
+        JwryListComponent build();
+    }
+}

+ 41 - 0
app/src/main/java/com/zkjc/policedemo/di/component/JwtdListComponent.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.JwtdListModule;
+import com.zkjc.policedemo.mvp.contract.JwtdListContract;
+
+import com.jess.arms.di.scope.ActivityScope;
+import com.zkjc.policedemo.mvp.ui.activity.JwtdListActivity;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/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>
+ * ================================================
+ */
+@ActivityScope
+@Component(modules = JwtdListModule.class, dependencies = AppComponent.class)
+public interface JwtdListComponent {
+    void inject(JwtdListActivity activity);
+
+    @Component.Builder
+    interface Builder {
+        @BindsInstance
+        JwtdListComponent.Builder view(JwtdListContract.View view);
+
+        JwtdListComponent.Builder appComponent(AppComponent appComponent);
+
+        JwtdListComponent build();
+    }
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/di/module/AddJwryModule.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.AddJwryContract;
+import com.zkjc.policedemo.mvp.model.AddJwryModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/2024 09:44
+ * <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 AddJwryModule {
+
+    @Binds
+    abstract AddJwryContract.Model bindAddJwryModel(AddJwryModel model);
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/di/module/AddJwtdModule.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.AddJwtdContract;
+import com.zkjc.policedemo.mvp.model.AddJwtdModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/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 AddJwtdModule {
+
+    @Binds
+    abstract AddJwtdContract.Model bindAddJwtdModel(AddJwtdModel model);
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/di/module/JwryListModule.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.JwryListContract;
+import com.zkjc.policedemo.mvp.model.JwryListModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/2024 09:43
+ * <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 JwryListModule {
+
+    @Binds
+    abstract JwryListContract.Model bindJwryListModel(JwryListModel model);
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/di/module/JwtdListModule.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.JwtdListContract;
+import com.zkjc.policedemo.mvp.model.JwtdListModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/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 JwtdListModule {
+
+    @Binds
+    abstract JwtdListContract.Model bindJwtdListModel(JwtdListModel model);
+}

+ 29 - 0
app/src/main/java/com/zkjc/policedemo/mvp/contract/AddJwryContract.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 12/24/2024 09:44
+ * <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 AddJwryContract {
+    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
+    interface View extends IView {
+
+    }
+
+    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
+    interface Model extends IModel {
+
+    }
+}

+ 30 - 0
app/src/main/java/com/zkjc/policedemo/mvp/contract/AddJwtdContract.java

@@ -0,0 +1,30 @@
+package com.zkjc.policedemo.mvp.contract;
+
+import com.jess.arms.mvp.IView;
+import com.jess.arms.mvp.IModel;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/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 AddJwtdContract {
+    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
+    interface View extends IView {
+
+        void onDit(String result);
+    }
+
+    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
+    interface Model extends IModel {
+
+    }
+}

+ 29 - 0
app/src/main/java/com/zkjc/policedemo/mvp/contract/JwryListContract.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 12/24/2024 09:43
+ * <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 JwryListContract {
+    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
+    interface View extends IView {
+
+    }
+
+    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
+    interface Model extends IModel {
+
+    }
+}

+ 29 - 0
app/src/main/java/com/zkjc/policedemo/mvp/contract/JwtdListContract.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 12/24/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 JwtdListContract {
+    //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
+    interface View extends IView {
+
+    }
+
+    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
+    interface Model extends IModel {
+
+    }
+}

+ 1 - 1
app/src/main/java/com/zkjc/policedemo/mvp/contract/LoginContract.java

@@ -28,7 +28,7 @@ import retrofit2.http.FieldMap;
 public interface LoginContract {
     //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
     interface View extends IView {
-        void onSuccess(String result);
+        void onSuccess(String result, String jinghao);
 
         void onError(Throwable mThrowable);
 

+ 46 - 0
app/src/main/java/com/zkjc/policedemo/mvp/model/AddJwryModel.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.AddJwryContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/2024 09:44
+ * <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 AddJwryModel extends BaseModel implements AddJwryContract.Model {
+    @Inject
+    Gson mGson;
+    @Inject
+    Application mApplication;
+
+    @Inject
+    public AddJwryModel(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/AddJwtdModel.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.AddJwtdContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/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>
+ * ================================================
+ */
+@ActivityScope
+public class AddJwtdModel extends BaseModel implements AddJwtdContract.Model {
+    @Inject
+    Gson mGson;
+    @Inject
+    Application mApplication;
+
+    @Inject
+    public AddJwtdModel(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/JwryListModel.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.JwryListContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/2024 09:43
+ * <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 JwryListModel extends BaseModel implements JwryListContract.Model {
+    @Inject
+    Gson mGson;
+    @Inject
+    Application mApplication;
+
+    @Inject
+    public JwryListModel(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/JwtdListModel.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.JwtdListContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/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>
+ * ================================================
+ */
+@ActivityScope
+public class JwtdListModel extends BaseModel implements JwtdListContract.Model {
+    @Inject
+    Gson mGson;
+    @Inject
+    Application mApplication;
+
+    @Inject
+    public JwtdListModel(IRepositoryManager repositoryManager) {
+        super(repositoryManager);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mGson = null;
+        this.mApplication = null;
+    }
+}

+ 3 - 2
app/src/main/java/com/zkjc/policedemo/mvp/model/api/Api.java

@@ -10,7 +10,7 @@ package com.zkjc.policedemo.mvp.model.api;
  * ================================================
  */
 public interface Api {
-    // String APP_DOMAIN = "http://192.168.20.228:7022";173900 000806
+    // String APP_DOMAIN = "http://192.168.20.228:7022";300586
     // String APP_DOMAIN = "http://192.168.122.69:8080";206220   011681    015147
     // String APP_DOMAIN = "http://140.143.235.69:6543";192.168.122.188
 
@@ -29,7 +29,8 @@ public interface Api {
 //    String url = "http://192.168.50.93:6543/common/zf3";
 //    String APP_DOMAIN = "http://192.168.50.93:6543";
 
-    String APP_DOMAIN = "http://192.168.0.12:1234"; // 300586
+//    String APP_DOMAIN = "http://192.168.58.205:1234"; // 300586
+    String APP_DOMAIN = "http://192.168.186.205:1234"; // 300586
 //    String APP_DOMAIN = "http://192.168.50.100:1234"; // 300586
 //    String APP_DOMAIN = "http://192.168.20.228:7022/yysd/";
 }

+ 86 - 0
app/src/main/java/com/zkjc/policedemo/mvp/model/entity/JwtdEntity.java

@@ -0,0 +1,86 @@
+package com.zkjc.policedemo.mvp.model.entity;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class JwtdEntity {
+
+    private int code;
+    private boolean success;
+    private String msg;
+    private List<Jwtd> data;
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public boolean isSuccess() {
+        return success;
+    }
+
+    public void setSuccess(boolean success) {
+        this.success = success;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public List<Jwtd> getData() {
+        return data;
+    }
+
+    public void setData(List<Jwtd> data) {
+        this.data = data;
+    }
+
+    public static class Jwtd {
+
+    }
+    public static class JwtdRy implements Serializable {
+        private String id;
+        private String xm;
+        private String lxdh;
+        private String zw;
+
+        public String getId() {
+            return id;
+        }
+
+        public void setId(String id) {
+            this.id = id;
+        }
+
+        public String getZw() {
+            return zw;
+        }
+
+        public void setZw(String zw) {
+            this.zw = zw;
+        }
+
+        public String getXm() {
+            return xm;
+        }
+
+        public void setXm(String xm) {
+            this.xm = xm;
+        }
+
+        public String getLxdh() {
+            return lxdh;
+        }
+
+        public void setLxdh(String lxdh) {
+            this.lxdh = lxdh;
+        }
+    }
+}

+ 75 - 0
app/src/main/java/com/zkjc/policedemo/mvp/model/entity/UserCredential.java

@@ -0,0 +1,75 @@
+package com.zkjc.policedemo.mvp.model.entity;
+
+public class UserCredential {
+    private Credential credential;
+
+    public Credential getCredential() {
+        return credential;
+    }
+
+    public void setCredential(Credential credential) {
+        this.credential = credential;
+    }
+
+    public static class Credential {
+        private Load load;
+
+        public Load getLoad() {
+            return load;
+        }
+
+        public void setLoad(Load load) {
+            this.load = load;
+        }
+    }
+    public static class Load {
+        private UserInfo userInfo;
+
+        public UserInfo getUserInfo() {
+            return userInfo;
+        }
+
+        public void setUserInfo(UserInfo userInfo) {
+            this.userInfo = userInfo;
+        }
+    }
+    public static class UserInfo {
+        private String jh;
+        private String sfzh;
+        private String orgId;
+        private String xm;
+
+        public String getJh() {
+            return jh;
+        }
+
+        public void setJh(String jh) {
+            this.jh = jh;
+        }
+
+        public String getSfzh() {
+            return sfzh;
+        }
+
+        public void setSfzh(String sfzh) {
+            this.sfzh = sfzh;
+        }
+
+        public String getOrgId() {
+            return orgId;
+        }
+
+        public void setOrgId(String orgId) {
+            this.orgId = orgId;
+        }
+
+        public String getXm() {
+            return xm;
+        }
+
+        public void setXm(String xm) {
+            this.xm = xm;
+        }
+    }
+
+}

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

@@ -62,8 +62,8 @@ public class AddCzrkPresenter extends BasePresenter<AddCzrkContract.Model, AddCz
 
     public void getRyData(Map<String, String> map) {
         Map<String, Object> map1 = new HashMap<>();
-        map1.put("className", "userController");
-        map1.put("methodName", "selectRyxxBySfzh");
+        map1.put("className", "fwInfoController");
+        map1.put("methodName", "getRyxxBySfzh");
         map1.put("params", map);
         ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
             @Override

+ 53 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddJwryPresenter.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.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.policedemo.mvp.contract.AddJwryContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/2024 09:44
+ * <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 AddJwryPresenter extends BasePresenter<AddJwryContract.Model, AddJwryContract.View> {
+    @Inject
+    RxErrorHandler mErrorHandler;
+    @Inject
+    Application mApplication;
+    @Inject
+    ImageLoader mImageLoader;
+    @Inject
+    AppManager mAppManager;
+
+    @Inject
+    public AddJwryPresenter(AddJwryContract.Model model, AddJwryContract.View rootView) {
+        super(model, rootView);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mErrorHandler = null;
+        this.mAppManager = null;
+        this.mImageLoader = null;
+        this.mApplication = null;
+    }
+}

+ 84 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/AddJwtdPresenter.java

@@ -0,0 +1,84 @@
+package com.zkjc.policedemo.mvp.presenter;
+
+import android.app.Application;
+
+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.AddJwtdContract;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/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>
+ * ================================================
+ */
+@ActivityScope
+public class AddJwtdPresenter extends BasePresenter<AddJwtdContract.Model, AddJwtdContract.View> {
+    @Inject
+    RxErrorHandler mErrorHandler;
+    @Inject
+    Application mApplication;
+    @Inject
+    ImageLoader mImageLoader;
+    @Inject
+    AppManager mAppManager;
+
+    @Inject
+    public AddJwtdPresenter(AddJwtdContract.Model model, AddJwtdContract.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 zd() {
+        Map<String, String> map = new HashMap<>();
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("className", "appMenuController");
+        map1.put("methodName", "getDeptList");
+        map1.put("params", map);
+        ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
+            @Override
+            public void onSuccess(String result) {
+                if (mRootView != null)
+                    mRootView.onDit(result);
+            }
+
+            @Override
+            public void onError(Throwable throwable) {
+                Utils.getInstances().dismissDialog();
+            }
+
+            @Override
+            public void onFinsh() {
+
+            }
+        });
+    }
+}

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

@@ -70,8 +70,8 @@ public class AddPersonPresenter extends BasePresenter<AddPersonContract.Model, A
 
     public void getRyData(Map<String, String> map) {
         Map<String, Object> map1 = new HashMap<>();
-        map1.put("className", "userController");
-        map1.put("methodName", "selectRyxxBySfzh");
+        map1.put("className", "fwInfoController");
+        map1.put("methodName", "getRyxxBySfzh");
         map1.put("params", map);
         ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
             @Override

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

@@ -61,8 +61,8 @@ public class AddWlhRkPresenter extends BasePresenter<AddWlhRkContract.Model, Add
     }
     public void getRyData(Map<String, String> map) {
         Map<String, Object> map1 = new HashMap<>();
-        map1.put("className", "userController");
-        map1.put("methodName", "selectRyxxBySfzh");
+        map1.put("className", "fwInfoController");
+        map1.put("methodName", "getRyxxBySfzh");
         map1.put("params", map);
         ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
             @Override

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

@@ -63,8 +63,8 @@ public class CyryhcPresenter extends BasePresenter<CyryhcContract.Model, CyryhcC
 
     public void getRyData(Map<String, String> map, String sfhm) {
         Map<String, Object> map1 = new HashMap<>();
-        map1.put("className", "userController");
-        map1.put("methodName", "selectRyxxBySfzh");
+        map1.put("className", "fwInfoController");
+        map1.put("methodName", "getRyxxBySfzh");
         map1.put("params", map);
         ReqToBus.getInstance().init(mApplication).getRequest(map1, new CommonInterFace() {
             @Override

+ 53 - 0
app/src/main/java/com/zkjc/policedemo/mvp/presenter/JwryListPresenter.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.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.policedemo.mvp.contract.JwryListContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/2024 09:43
+ * <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 JwryListPresenter extends BasePresenter<JwryListContract.Model, JwryListContract.View> {
+    @Inject
+    RxErrorHandler mErrorHandler;
+    @Inject
+    Application mApplication;
+    @Inject
+    ImageLoader mImageLoader;
+    @Inject
+    AppManager mAppManager;
+
+    @Inject
+    public JwryListPresenter(JwryListContract.Model model, JwryListContract.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/JwtdListPresenter.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.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.policedemo.mvp.contract.JwtdListContract;
+
+
+/**
+ * ================================================
+ * Description:
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/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>
+ * ================================================
+ */
+@ActivityScope
+public class JwtdListPresenter extends BasePresenter<JwtdListContract.Model, JwtdListContract.View> {
+    @Inject
+    RxErrorHandler mErrorHandler;
+    @Inject
+    Application mApplication;
+    @Inject
+    ImageLoader mImageLoader;
+    @Inject
+    AppManager mAppManager;
+
+    @Inject
+    public JwtdListPresenter(JwtdListContract.Model model, JwtdListContract.View rootView) {
+        super(model, rootView);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        this.mErrorHandler = null;
+        this.mAppManager = null;
+        this.mImageLoader = null;
+        this.mApplication = null;
+    }
+}

+ 38 - 2
app/src/main/java/com/zkjc/policedemo/mvp/presenter/LoginPresenter.java

@@ -27,6 +27,7 @@ import com.zkjc.policedemo.mvp.contract.LoginContract;
 import com.zkjc.policedemo.mvp.model.entity.Login;
 import com.zkjc.policedemo.mvp.model.entity.NormalEntity;
 import com.zkjc.policedemo.mvp.model.entity.RhzfRoomEntity;
+import com.zkjc.policedemo.mvp.model.entity.ZdAllEntity;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -60,12 +61,12 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
         super(model, rootView);
     }
 
-    public void login(Map<String, Object> map) {
+    public void login(Map<String, Object> map, String jinghao) {
         ReqToBus.getInstance().init(mApplication).getRequest(map, new CommonInterFace() {
             @Override
             public void onSuccess(String result) {
                 if (mRootView != null) {
-                    mRootView.onSuccess(result);
+                    mRootView.onSuccess(result, jinghao);
                 }
             }
 
@@ -112,7 +113,42 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
             }
         });
     }
+    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() {
+
+            }
+        });
+
+    }
     @Override
     public void onDestroy() {
         super.onDestroy();

+ 168 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddJwryActivity.java

@@ -0,0 +1,168 @@
+package com.zkjc.policedemo.mvp.ui.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.jess.arms.base.BaseActivity;
+import com.jess.arms.di.component.AppComponent;
+import com.jess.arms.utils.ArmsUtils;
+
+import com.zkjc.common.base.ZkjcBaseActivity;
+import com.zkjc.common.view.CommonTitleBarV3;
+import com.zkjc.policedemo.di.component.DaggerAddJwryComponent;
+import com.zkjc.policedemo.mvp.contract.AddJwryContract;
+import com.zkjc.policedemo.mvp.model.entity.JmhEntity;
+import com.zkjc.policedemo.mvp.model.entity.JwtdEntity;
+import com.zkjc.policedemo.mvp.presenter.AddJwryPresenter;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.ui.fragment.SelectStringDialog;
+
+
+import java.util.ArrayList;
+
+import butterknife.BindView;
+
+import static com.jess.arms.utils.Preconditions.checkNotNull;
+
+
+/**
+ * ================================================
+ * Description: 新增警务人员
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/2024 09:44
+ * <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 AddJwryActivity extends ZkjcBaseActivity<AddJwryPresenter> implements AddJwryContract.View {
+    @BindView(R.id.et_name)
+    EditText etName;
+    @BindView(R.id.et_phone)
+    EditText etPhone;
+    @BindView(R.id.tv_ryzw)
+    TextView tvRyzw;
+    @BindView(R.id.tv_confirm)
+    TextView tvSave;
+    @BindView(R.id.title_bar)
+    CommonTitleBarV3 titleBar;
+    private JwtdEntity.JwtdRy mData;
+    private String mSelectZw;
+    @Override
+    public void setupActivityComponent(@NonNull AppComponent appComponent) {
+        DaggerAddJwryComponent //如找不到该类,请编译一下项目
+                .builder()
+                .appComponent(appComponent)
+                .view(this)
+                .build()
+                .inject(this);
+    }
+
+    @Override
+    public int initView(@Nullable Bundle savedInstanceState) {
+        return R.layout.activity_add_jwry; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
+    }
+
+    @Override
+    public void initData(@Nullable Bundle savedInstanceState) {
+        titleBar.setTitle("添加警务人员");
+        ArrayList<String> list = new ArrayList<>();
+        list.add("辅警");
+        list.add("警务助理");
+        list.add("网格员");
+        list.add("楼栋长");
+        tvRyzw.setOnClickListener(v -> {
+            SelectStringDialog dialog = SelectStringDialog.newInstance("请选择人员职务", list, mSelectZw);
+            dialog.setDialogListener(new SelectStringDialog.DialogListener() {
+                @Override
+                public void onDialogClick(String string) {
+                    mSelectZw = string;
+                    tvRyzw.setText(mSelectZw);
+                }
+            });
+            dialog.show(getSupportFragmentManager(), "xslx");
+        });
+
+        mData = (JwtdEntity.JwtdRy) getIntent().getSerializableExtra("ry");
+        if (mData == null) {
+            Intent intent = new Intent(this, CyryhcActivity.class);
+            intent.putExtra("type", CyryhcActivity.TYPE_JWTDRY);
+            startActivityForResult(intent, 100);
+        } else {
+            setData();
+        }
+
+        tvSave.setOnClickListener(v -> {
+            if (mData == null) {
+                JwtdEntity.JwtdRy ry = new JwtdEntity.JwtdRy();
+                ry.setLxdh(etPhone.getText().toString().trim());
+                ry.setXm(etName.getText().toString().trim());
+                ry.setZw(tvRyzw.getText().toString().trim());
+                Intent i = new Intent();
+                i.putExtra("ry", ry);
+                setResult(RESULT_OK, i);
+            } else {
+                mData.setLxdh(etPhone.getText().toString().trim());
+                mData.setXm(etName.getText().toString().trim());
+                mData.setZw(tvRyzw.getText().toString().trim());
+                Intent i = new Intent();
+                i.putExtra("ry", mData);
+                i.putExtra("position", getIntent().getIntExtra("position", 0));
+                setResult(RESULT_OK, i);
+            }
+            finish();
+        });
+    }
+
+    private void setData() {
+        etPhone.setText(mData.getLxdh());
+        etName.setText(mData.getXm());
+        mSelectZw = mData.getZw();
+        tvRyzw.setText(mData.getZw());
+    }
+
+    @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
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (resultCode == RESULT_OK) {
+            JwtdEntity.JwtdRy ry = (JwtdEntity.JwtdRy) data.getSerializableExtra("ry");
+            etName.setText(ry.getXm());
+            etPhone.setText(ry.getLxdh());
+        }
+    }
+}

+ 211 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/AddJwtdActivity.java

@@ -0,0 +1,211 @@
+package com.zkjc.policedemo.mvp.ui.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.google.gson.Gson;
+import com.jess.arms.base.BaseActivity;
+import com.jess.arms.di.component.AppComponent;
+import com.jess.arms.utils.ArmsUtils;
+
+import com.zkjc.common.base.ZkjcBaseActivity;
+import com.zkjc.common.utils.Utils;
+import com.zkjc.common.view.CommonTitleBarV3;
+import com.zkjc.policedemo.di.component.DaggerAddJwtdComponent;
+import com.zkjc.policedemo.mvp.contract.AddJwtdContract;
+import com.zkjc.policedemo.mvp.model.entity.JwsJgEntity;
+import com.zkjc.policedemo.mvp.model.entity.JwtdEntity;
+import com.zkjc.policedemo.mvp.presenter.AddJwtdPresenter;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.ui.adapter.BaseRecycleAdapter;
+import com.zkjc.policedemo.mvp.ui.adapter.JwtdRyAdapter;
+import com.zkjc.policedemo.mvp.ui.fragment.SelectSssqDialog;
+
+
+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 12/24/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 AddJwtdActivity extends ZkjcBaseActivity<AddJwtdPresenter> implements AddJwtdContract.View {
+
+    @BindView(R.id.title_bar)
+    CommonTitleBarV3 titleBar;
+    @BindView(R.id.recycler_view)
+    RecyclerView recyclerView;
+    @BindView(R.id.rl_addry)
+    View layoutAddRy;
+    @BindView(R.id.tv_sssq)
+    TextView tvSssq;
+    @BindView(R.id.rl_sssq)
+    RelativeLayout rlSssq;
+    private ArrayList<JwsJgEntity.DataBean> sqList;
+    private JwsJgEntity.DataBean mSelectSssq;
+    private JwtdRyAdapter adapter;
+    private List<JwtdEntity.JwtdRy> list;
+    private List<JwtdEntity.JwtdRy> listRemove;
+
+    @Override
+    public void setupActivityComponent(@NonNull AppComponent appComponent) {
+        DaggerAddJwtdComponent //如找不到该类,请编译一下项目
+                .builder()
+                .appComponent(appComponent)
+                .view(this)
+                .build()
+                .inject(this);
+    }
+
+    @Override
+    public int initView(@Nullable Bundle savedInstanceState) {
+        return R.layout.activity_add_jwtd; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
+    }
+
+    @Override
+    public void initData(@Nullable Bundle savedInstanceState) {
+        if (true) {
+            titleBar.setTitle("新增警务团队");
+        } else {
+            titleBar.setTitle("修改警务团队");
+        }
+        recyclerView.setLayoutManager(new LinearLayoutManager(this));
+        list = new ArrayList<>();
+        adapter = new JwtdRyAdapter(list);
+        adapter.setListener(new BaseRecycleAdapter.OnRecyclerViewListenerV2() {
+            @Override
+            public void onItemClick(View view, int position) {
+                switch (view.getId()) {
+                    case R.id.iv_delete:
+                        JwtdEntity.JwtdRy remove = list.remove(position);
+                        adapter.notifyDataSetChanged();
+                        break;
+                    case R.id.item_root:
+                        Intent intent = new Intent(AddJwtdActivity.this, AddJwryActivity.class);
+                        JwtdEntity.JwtdRy ry = list.get(position);
+                        intent.putExtra("position", position);
+                        intent.putExtra("ry", ry);
+                        startActivityForResult(intent, 2);
+                        break;
+                    default:
+                        break;
+                }
+            }
+
+            @Override
+            public boolean onItemLongClick(View view, int position) {
+                return false;
+            }
+        });
+        recyclerView.setAdapter(adapter);
+        layoutAddRy.setOnClickListener(v -> {
+            Intent intent = new Intent(AddJwtdActivity.this, AddJwryActivity.class);
+            startActivityForResult(intent, 1);
+        });
+        Utils.getInstances().showDialog(this, "正在获取数据");
+        mPresenter.zd();
+    }
+
+    @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 onDit(String result) {
+        try {
+            JwsJgEntity entity = new Gson().fromJson(result, JwsJgEntity.class);
+            sqList = (ArrayList<JwsJgEntity.DataBean>) entity.getData();
+            tvSssq.setOnClickListener(v -> {
+                SelectSssqDialog dialog = SelectSssqDialog.newInstance("请选择所属社区", sqList, mSelectSssq);
+                dialog.setDialogListener(new SelectSssqDialog.DialogListener() {
+                    @Override
+                    public void onDialogClick(JwsJgEntity.DataBean sssq) {
+                        mSelectSssq = sssq;
+                        tvSssq.setText(mSelectSssq.getDeptName());
+                    }
+                });
+                dialog.show(getSupportFragmentManager(), "xslx");
+            });
+            /*if (!TextUtils.isEmpty(mId)) {
+                Map<String, String> map = new HashMap<>();
+                map.put("id", mId);
+                mPresenter.getDetail(map);
+            } else {
+            }*/
+            Utils.getInstances().dismissDialog();
+        } catch (Exception e) {
+
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (resultCode == RESULT_OK) {
+            switch (requestCode) {
+                case 1: {
+                    JwtdEntity.JwtdRy ry = (JwtdEntity.JwtdRy) data.getSerializableExtra("ry");
+                    list.add(ry);
+                    adapter.notifyDataSetChanged();
+                }
+                    break;
+                case 2: {
+                    JwtdEntity.JwtdRy ry = (JwtdEntity.JwtdRy) data.getSerializableExtra("ry");
+                    list.set(data.getIntExtra("position", 0), ry);
+                    adapter.notifyDataSetChanged();
+                }
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+}

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

@@ -178,7 +178,7 @@ public class AddMyQahyActivity extends ZkjcBaseActivity<AddMyQahyPresenter> impl
 
                         break;
                     case R.id.item_root: {
-                        Intent intent = new Intent(AddMyQahyActivity.this, AddChryActivity.class);
+                        Intent intent = new Intent(AddMyQahyActivity.this, JmhRyActivity.class);
                         intent.putExtra("ry", ry);
                         startActivityForResult(intent, position);
                     }

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

@@ -201,7 +201,7 @@ public class AddSqmyActivity extends ZkjcBaseActivity<AddSqmyPresenter> implemen
         recyclerView.setAdapter(xstgrAdapter);
         rlAddry.setOnClickListener(view -> {
             Intent intent = new Intent(AddSqmyActivity.this, CyryhcActivity.class);
-            intent.putExtra("xstgr", "xstgr");
+            intent.putExtra("type", CyryhcActivity.TYPE_XSTGR);
             startActivityForResult(intent, 1000);
         });
         initDatePicker();

+ 104 - 72
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/CyryhcActivity.java

@@ -33,6 +33,7 @@ import com.zkjc.policedemo.app.view.WordGroupView;
 import com.zkjc.policedemo.di.component.DaggerCyryhcComponent;
 import com.zkjc.policedemo.mvp.contract.CyryhcContract;
 import com.zkjc.policedemo.mvp.model.entity.Fwtd;
+import com.zkjc.policedemo.mvp.model.entity.JwtdEntity;
 import com.zkjc.policedemo.mvp.model.entity.RkxxEntity;
 import com.zkjc.policedemo.mvp.model.entity.SqmyEntity;
 import com.zkjc.policedemo.mvp.model.entity.SydwEntity;
@@ -65,6 +66,9 @@ import static com.zkjc.policedemo.mvp.ui.activity.AddCzrkActivity.TOAST_INFO;
  * ================================================
  */
 public class CyryhcActivity extends ZkjcBaseActivity<CyryhcPresenter> implements CyryhcContract.View {
+    public static final String TYPE_XSTGR = "xstgr"; // 线索提供人
+    public static final String TYPE_CYRY = "cyry"; // 从业人员
+    public static final String TYPE_JWTDRY = "jwtdry"; // 警务团队人员
 
     @BindView(R.id.comtop_return)
     ImageView comtopReturn;
@@ -98,6 +102,8 @@ public class CyryhcActivity extends ZkjcBaseActivity<CyryhcPresenter> implements
     View view;
     @BindView(R.id.word)
     WordGroupView word;
+    @BindView(R.id.layout_zdry)
+    View layoutZdry;
     @BindView(R.id.view1)
     View view1;
     @BindView(R.id.tv_hzzdr)
@@ -124,8 +130,8 @@ public class CyryhcActivity extends ZkjcBaseActivity<CyryhcPresenter> implements
     LinearLayout ll_price_select;
     //虚拟键盘工具类
     private KeyboardUtil keyboardUtil;
-    private boolean isCyry;
     private RkxxEntity.Rkxx mRyxx;
+    private String type;
 
     @Override
     public void setupActivityComponent(@NonNull AppComponent appComponent) {
@@ -144,13 +150,22 @@ public class CyryhcActivity extends ZkjcBaseActivity<CyryhcPresenter> implements
 
     @Override
     public void initData(@Nullable Bundle savedInstanceState) {
-        String xstgr = getIntent().getStringExtra("xstgr");
-        if ("xstgr".equals(xstgr)) {
-            isCyry = false;
-            tvAddcy.setText("添加线索提供人");
-        } else {
-            isCyry = true;
-            tvAddcy.setText("添加为从业人员");
+        type = getIntent().getStringExtra("type");
+        switch (type) {
+            case TYPE_XSTGR:
+                tvAddcy.setText("添加线索提供人");
+                break;
+            case TYPE_CYRY:
+                tvAddcy.setText("添加为从业人员");
+                break;
+            case TYPE_JWTDRY:
+                tvAddcy.setText("添加为警务团队人员");
+                layoutZdry.setVisibility(View.GONE);
+                view1.setVisibility(View.GONE);
+                word.setVisibility(View.GONE);
+                break;
+            default:
+                break;
         }
         String[] words = {"青年组", "大学本科及以上", "公司职员", "离家独居", "失独群体", "故意杀人", "管制", "征地拆迁", "多次进京上访", "多次或经常被人欺凌"};
         List<String> list = new ArrayList<>();
@@ -245,72 +260,89 @@ public class CyryhcActivity extends ZkjcBaseActivity<CyryhcPresenter> implements
 
         });
         tvAddcy.setOnClickListener(v -> {
-            if (isCyry) {
-                if (mRyxx == null) {
-                    ToastUtils.show("请选择人员");
-                    return;
-                }
-                SelectCyryZyDialog dialog = SelectCyryZyDialog.newInstance((ArrayList<Fwtd>) getIntent().getSerializableExtra("zylb"));
-                dialog.setMyDialogListener(new SelectCyryZyDialog.MyDialogListener() {
-                    @Override
-                    public void onConfirmClick(Fwtd status, String desc) {
-                        String id = getIntent().getStringExtra("id");
-                        SydwEntity.Cyry cyry = new SydwEntity.Cyry();
-                        cyry.setXm(mRyxx.getFzXm());
-                        cyry.setZp(mRyxx.getFzZp());
-                        cyry.setGmsfhm(mRyxx.getGmsfhm());
-                        cyry.setXb(mRyxx.getRyxb());
-                        cyry.setZy(desc);
-                        cyry.setZylb(status.getLabel());
-                        cyry.setZylbDm(status.getValue());
-                        cyry.setLxdh(mRyxx.getFzDh());
-                        cyry.setXz(mRyxx.getHjdz());
-                        if (TextUtils.isEmpty(id)) {
-                            // dwdzbm  单位地址编码
-                            //tyshxydm  统一社会信用代码
-                            //xm  姓名
-                            //gmsfhm  公民身份号码
-                            //xb  性别
-                            //zy  职业(手填)
-                            //zylb  职业类别(字典值)
-                            //lxdh  联系电话
-                            //xz  现居住地
-                            Intent intent = new Intent();
-                            intent.putExtra("cyry", cyry);
-                            setResult(RESULT_OK, intent);
-                            finish();
-                        } else {
-                            Map<String, Object> map = new HashMap<>();
-                            map.put("dwdzbm", getIntent().getStringExtra("dzbm"));
-                            map.put("tyshxydm", getIntent().getStringExtra("tyshxydm"));
-                            map.put("xm", mRyxx.getFzXm());
-                            map.put("zp", mRyxx.getFzZp());
-                            map.put("gmsfhm", mRyxx.getGmsfhm());
-                            map.put("xb", mRyxx.getRyxb());
-                            map.put("zy", desc);
-                            map.put("zylb", status.getLabel());
-                            map.put("lxdh", mRyxx.getFzDh());
-                            map.put("zylbDm", status.getValue());
-                            map.put("xz", mRyxx.getHjdz());
+            switch (type) {
+                case TYPE_CYRY: {
+                    if (mRyxx == null) {
+                        ToastUtils.show("请选择人员");
+                        return;
+                    }
+                    SelectCyryZyDialog dialog = SelectCyryZyDialog.newInstance((ArrayList<Fwtd>) getIntent().getSerializableExtra("zylb"));
+                    dialog.setMyDialogListener(new SelectCyryZyDialog.MyDialogListener() {
+                        @Override
+                        public void onConfirmClick(Fwtd status, String desc) {
+                            String id = getIntent().getStringExtra("id");
+                            SydwEntity.Cyry cyry = new SydwEntity.Cyry();
+                            cyry.setXm(mRyxx.getFzXm());
+                            cyry.setZp(mRyxx.getFzZp());
+                            cyry.setGmsfhm(mRyxx.getGmsfhm());
+                            cyry.setXb(mRyxx.getRyxb());
+                            cyry.setZy(desc);
+                            cyry.setZylb(status.getLabel());
+                            cyry.setZylbDm(status.getValue());
+                            cyry.setLxdh(mRyxx.getFzDh());
+                            cyry.setXz(mRyxx.getHjdz());
+                            if (TextUtils.isEmpty(id)) {
+                                // dwdzbm  单位地址编码
+                                //tyshxydm  统一社会信用代码
+                                //xm  姓名
+                                //gmsfhm  公民身份号码
+                                //xb  性别
+                                //zy  职业(手填)
+                                //zylb  职业类别(字典值)
+                                //lxdh  联系电话
+                                //xz  现居住地
+                                Intent intent = new Intent();
+                                intent.putExtra("cyry", cyry);
+                                setResult(RESULT_OK, intent);
+                                finish();
+                            } else {
+                                Map<String, Object> map = new HashMap<>();
+                                map.put("dwdzbm", getIntent().getStringExtra("dzbm"));
+                                map.put("tyshxydm", getIntent().getStringExtra("tyshxydm"));
+                                map.put("xm", mRyxx.getFzXm());
+                                map.put("zp", mRyxx.getFzZp());
+                                map.put("gmsfhm", mRyxx.getGmsfhm());
+                                map.put("xb", mRyxx.getRyxb());
+                                map.put("zy", desc);
+                                map.put("zylb", status.getLabel());
+                                map.put("lxdh", mRyxx.getFzDh());
+                                map.put("zylbDm", status.getValue());
+                                map.put("xz", mRyxx.getHjdz());
 
-                            mPresenter.update(map, cyry);
+                                mPresenter.update(map, cyry);
+                            }
                         }
-                    }
-                });
-                dialog.show(getSupportFragmentManager(), "zy");
-            } else {
-                SqmyEntity.Xstgr item = new SqmyEntity.Xstgr();
-                item.setXm(mRyxx.getFzXm());
-                item.setZp(mRyxx.getFzZp());
-                item.setGmsfhm(mRyxx.getGmsfhm());
-                item.setXb(mRyxx.getRyxb());
-                item.setLxdh(mRyxx.getFzDh());
-                item.setMz(mRyxx.getRyMz());
-                item.setXjzdxz(mRyxx.getHjdz());
-                Intent intent = new Intent();
-                intent.putExtra("xstgr", item);
-                setResult(RESULT_OK, intent);
-                finish();
+                    });
+                    dialog.show(getSupportFragmentManager(), "zy");
+                }
+                    break;
+                case TYPE_XSTGR: {
+                    SqmyEntity.Xstgr item = new SqmyEntity.Xstgr();
+                    item.setXm(mRyxx.getFzXm());
+                    item.setZp(mRyxx.getFzZp());
+                    item.setGmsfhm(mRyxx.getGmsfhm());
+                    item.setXb(mRyxx.getRyxb());
+                    item.setLxdh(mRyxx.getFzDh());
+                    item.setMz(mRyxx.getRyMz());
+                    item.setXjzdxz(mRyxx.getHjdz());
+                    Intent intent = new Intent();
+                    intent.putExtra("xstgr", item);
+                    setResult(RESULT_OK, intent);
+                    finish();
+                }
+                    break;
+                case TYPE_JWTDRY: {
+                    JwtdEntity.JwtdRy ry = new JwtdEntity.JwtdRy();
+                    ry.setXm(mRyxx.getFzXm());
+                    ry.setLxdh(mRyxx.getFzDh());
+                    Intent intent = new Intent();
+                    intent.putExtra("ry", ry);
+                    setResult(RESULT_OK, intent);
+                    finish();
+                }
+                    break;
+                default:
+                    break;
             }
         });
     }

+ 112 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/JwryListActivity.java

@@ -0,0 +1,112 @@
+package com.zkjc.policedemo.mvp.ui.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import com.jess.arms.base.BaseActivity;
+import com.jess.arms.di.component.AppComponent;
+import com.jess.arms.utils.ArmsUtils;
+
+import com.zkjc.common.base.ZkjcBaseActivity;
+import com.zkjc.common.view.CommonTitleBarV3;
+import com.zkjc.policedemo.di.component.DaggerJwryListComponent;
+import com.zkjc.policedemo.mvp.contract.JwryListContract;
+import com.zkjc.policedemo.mvp.model.entity.JwtdEntity;
+import com.zkjc.policedemo.mvp.presenter.JwryListPresenter;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.ui.adapter.JwrySelectAdapter;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+import static com.jess.arms.utils.Preconditions.checkNotNull;
+
+
+/**
+ * ================================================
+ * Description: 警务人员列表
+ * <p>
+ * Created by MVPArmsTemplate on 12/24/2024 09:43
+ * <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 JwryListActivity extends ZkjcBaseActivity<JwryListPresenter> implements JwryListContract.View {
+    @BindView(R.id.recycler_view)
+    RecyclerView recyclerView;
+    @BindView(R.id.float_button)
+    FloatingActionButton floatingButton;
+    @BindView(R.id.title_bar)
+    CommonTitleBarV3 titleBar;
+
+    @Override
+    public void setupActivityComponent(@NonNull AppComponent appComponent) {
+        DaggerJwryListComponent //如找不到该类,请编译一下项目
+                .builder()
+                .appComponent(appComponent)
+                .view(this)
+                .build()
+                .inject(this);
+    }
+
+    @Override
+    public int initView(@Nullable Bundle savedInstanceState) {
+        return R.layout.activity_jwry_list; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
+    }
+
+    @Override
+    public void initData(@Nullable Bundle savedInstanceState) {
+        titleBar.setTitle("选择人员");
+        floatingButton.setOnClickListener(v -> {
+            Intent intent = new Intent(JwryListActivity.this, AddJwryActivity.class);
+            startActivityForResult(intent, 100);
+        });
+        recyclerView.setLayoutManager(new LinearLayoutManager(this));
+        List<JwtdEntity.JwtdRy> list = new ArrayList<>();
+        for (int i = 0; i < 20; i++) {
+            list.add(new JwtdEntity.JwtdRy());
+        }
+        JwrySelectAdapter adapter = new JwrySelectAdapter(list);
+        recyclerView.setAdapter(adapter);
+    }
+
+    @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();
+    }
+}

+ 189 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/JwtdListActivity.java

@@ -0,0 +1,189 @@
+package com.zkjc.policedemo.mvp.ui.activity;
+
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.view.WindowManager;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import com.jess.arms.base.BaseActivity;
+import com.jess.arms.di.component.AppComponent;
+import com.jess.arms.utils.ArmsUtils;
+
+import com.scwang.smart.refresh.footer.ClassicsFooter;
+import com.scwang.smart.refresh.header.ClassicsHeader;
+import com.scwang.smart.refresh.layout.SmartRefreshLayout;
+import com.scwang.smart.refresh.layout.api.RefreshLayout;
+import com.scwang.smart.refresh.layout.constant.SpinnerStyle;
+import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
+import com.zkjc.common.base.ZkjcBaseActivity;
+import com.zkjc.common.utils.ScreenUtils;
+import com.zkjc.common.view.CommonTitleBarV3;
+import com.zkjc.policedemo.di.component.DaggerJwtdListComponent;
+import com.zkjc.policedemo.mvp.contract.JwtdListContract;
+import com.zkjc.policedemo.mvp.model.entity.HyjlEntity;
+import com.zkjc.policedemo.mvp.model.entity.JwtdEntity;
+import com.zkjc.policedemo.mvp.presenter.JwtdListPresenter;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.ui.adapter.BaseRecycleAdapter;
+import com.zkjc.policedemo.mvp.ui.adapter.JwtdAdapter;
+import com.zkjc.policedemo.mvp.ui.adapter.MyAqhylAdapter;
+
+
+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 12/24/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 JwtdListActivity extends ZkjcBaseActivity<JwtdListPresenter> implements JwtdListContract.View, OnRefreshListener, OnLoadMoreListener {
+
+    @BindView(R.id.title_bar)
+    CommonTitleBarV3 titleBar;
+    @BindView(R.id.recyclerView)
+    RecyclerView recyclerView;
+    @BindView(R.id.smart_refresh)
+    SmartRefreshLayout smart_refresh;
+    @BindView(R.id.float_button)
+    FloatingActionButton floatButton;
+    private JwtdAdapter mAdapter;
+    private List<JwtdEntity.Jwtd> datas;
+    private int pageNo = 1;
+    private int pageSize = 10;
+    @Override
+    public void setupActivityComponent(@NonNull AppComponent appComponent) {
+        DaggerJwtdListComponent //如找不到该类,请编译一下项目
+                .builder()
+                .appComponent(appComponent)
+                .view(this)
+                .build()
+                .inject(this);
+    }
+
+    @Override
+    public int initView(@Nullable Bundle savedInstanceState) {
+        return R.layout.activity_jwtd_list; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
+    }
+
+    @Override
+    public void initData(@Nullable Bundle savedInstanceState) {
+        titleBar.setTitle("警务团队");
+        floatButton.setOnClickListener(view -> {
+            Intent intent = new Intent(JwtdListActivity.this, AddJwtdActivity.class);
+            startActivityForResult(intent, 1);
+        });
+        //设置 Header
+        smart_refresh.setRefreshHeader(new ClassicsHeader(this).setEnableLastTime(true));
+        //设置 Footer
+        smart_refresh.setRefreshFooter(new ClassicsFooter(this).setSpinnerStyle(SpinnerStyle.FixedBehind));
+        smart_refresh.autoRefresh();
+        datas = new ArrayList<>();
+        recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
+        smart_refresh.setOnRefreshListener(this);
+        smart_refresh.setOnLoadMoreListener(this);
+        mAdapter = new JwtdAdapter(datas);
+        mAdapter.setHasStableIds(true);
+        recyclerView.setAdapter(mAdapter);
+        mAdapter.setListener(new BaseRecycleAdapter.OnRecyclerViewListener() {
+            @Override
+            public void onItemClick(int position) {
+                Intent intent = new Intent(JwtdListActivity.this, AddJwtdActivity.class);
+                startActivityForResult(intent, 100);
+            }
+
+            @Override
+            public boolean onItemLongClick(int position) {
+                return false;
+            }
+        });
+        mAdapter.notifyDataSetChanged();
+
+    }
+
+    @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 onRefresh(@NonNull RefreshLayout refreshLayout) {
+        datas.clear();
+        mAdapter.notifyDataSetChanged();
+        requestData(pageNo = 1, pageSize);
+    }
+
+    @Override
+    public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
+        requestData(++pageNo, pageSize);
+    }
+
+    private void requestData(int pageNo, int pageSize) {
+        Map<String, String> map = new HashMap<>();
+        map.put("current", pageNo + "");
+        map.put("size", pageSize + "");
+//        mPresenter.getList(map);
+
+        smart_refresh.finishLoadMore();
+        smart_refresh.finishRefresh();
+        for (int i = 0; i < 8; i++) {
+            datas.add(new JwtdEntity.Jwtd());
+        }
+        mAdapter.notifyDataSetChanged();
+    }
+
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (resultCode == RESULT_OK) {
+            smart_refresh.autoRefresh();
+        }
+    }
+}

+ 5 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/MenuListActivity.java

@@ -56,6 +56,8 @@ public class MenuListActivity extends ZkjcBaseActivity<MenuListPresenter> implem
 
     @BindView(R.id.recycler_view)
     RecyclerView recyclerView;
+    @BindView(R.id.back_return_ll)
+    View layoutBack;
     @BindView(R.id.layout_search)
     View layoutSearch;
     @BindView(R.id.tab_menu)
@@ -78,6 +80,9 @@ public class MenuListActivity extends ZkjcBaseActivity<MenuListPresenter> implem
 
     @Override
     public void initData(@Nullable Bundle savedInstanceState) {
+        layoutBack.setOnClickListener(v -> {
+            finish();
+        });
         layoutSearch.setOnClickListener(v -> {
             ArmsUtils.startActivity(SearchAppActivity.class);
         });

+ 2 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/activity/UpdateXqtActivity.java

@@ -82,6 +82,8 @@ public class UpdateXqtActivity extends ZkjcBaseActivity<UpdateXqtPresenter> impl
     ImageView ivDelete;
     @BindView(R.id.xqt_iv_image)
     ImageView ivImage;
+    @BindView(R.id.iv_example)
+    ImageView ivExample;
     @BindView(R.id.layout_upload)
     View layout_upload;
     @BindView(R.id.bt_commit)

+ 32 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/adapter/JwrySelectAdapter.java

@@ -0,0 +1,32 @@
+package com.zkjc.policedemo.mvp.ui.adapter;
+
+import android.view.View;
+import android.widget.TextView;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.model.entity.JwtdEntity;
+
+import java.util.List;
+
+public class JwrySelectAdapter extends BaseRecycleAdapter<JwtdEntity.JwtdRy> {
+    public JwrySelectAdapter(List<JwtdEntity.JwtdRy> datas) {
+        super(datas);
+    }
+
+    @Override
+    protected void bindData(BaseViewHolder holder, int position) {
+        TextView tvSelect = (TextView) holder.getView(R.id.tv_select);
+        if (position % 2 == 1) {
+            tvSelect.setSelected(true);
+            tvSelect.setText("已添加");
+        } else {
+            tvSelect.setSelected(false);
+            tvSelect.setText("添加");
+        }
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.item_jwtd_select;
+    }
+}

+ 29 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/adapter/JwtdAdapter.java

@@ -0,0 +1,29 @@
+package com.zkjc.policedemo.mvp.ui.adapter;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.model.entity.JwtdEntity;
+
+import java.util.List;
+
+public class JwtdAdapter extends BaseRecycleAdapter<JwtdEntity.Jwtd> {
+    private OnRecyclerViewListener listener;
+    public JwtdAdapter(List<JwtdEntity.Jwtd> datas) {
+        super(datas);
+    }
+
+    @Override
+    protected void bindData(BaseViewHolder holder, int position) {
+        if (listener != null) {
+            holder.setOnItemClickListener(R.id.item_root, position, listener);
+        }
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.item_jwtd;
+    }
+
+    public void setListener(OnRecyclerViewListener listener) {
+        this.listener = listener;
+    }
+}

+ 42 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/adapter/JwtdRyAdapter.java

@@ -0,0 +1,42 @@
+package com.zkjc.policedemo.mvp.ui.adapter;
+
+import com.zkjc.policedemo.R;
+import com.zkjc.policedemo.mvp.model.entity.HyjlEntity;
+import com.zkjc.policedemo.mvp.model.entity.JwtdEntity;
+
+import java.util.List;
+
+public class JwtdRyAdapter extends BaseRecycleAdapter<JwtdEntity.JwtdRy> {
+
+    public JwtdRyAdapter(List<JwtdEntity.JwtdRy> datas) {
+        super(datas);
+    }
+
+    @Override
+    protected void bindData(BaseViewHolder holder, int position) {
+        if (holder != null) {
+            JwtdEntity.JwtdRy ry = datas.get(position);
+            setItemText(holder.getView(R.id.item_name), ry.getXm());
+            setItemText(holder.getView(R.id.item_zw_dh), ry.getZw() + " | " + ry.getLxdh());
+            if (listener != null) {
+                holder.setOnItemClickListenerV2(R.id.iv_delete, position, listener);
+                holder.setOnItemClickListenerV2(R.id.item_root, position, listener);
+            }
+        }
+    }
+
+
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.item_jwtd_ry;
+    }
+
+
+    private OnRecyclerViewListenerV2 listener;
+
+    public void setListener(OnRecyclerViewListenerV2 listener) {
+        this.listener = listener;
+    }
+
+}

+ 1 - 0
app/src/main/java/com/zkjc/policedemo/mvp/ui/fragment/SydwRightFragment.java

@@ -298,6 +298,7 @@ public class SydwRightFragment extends BaseFragment<SydwRightPresenter> implemen
         rlAddry.setOnClickListener(view -> {
             Intent intent = new Intent(getActivity(), CyryhcActivity.class);
             intent.putExtra("zylb", (ArrayList<Fwtd>)zd.getZylb());
+            intent.putExtra("type", CyryhcActivity.TYPE_CYRY);
             if (mData != null) {
                 intent.putExtra("id", mData.getId());
                 intent.putExtra("dzbm", mData.getDzbm());

+ 6 - 0
app/src/main/res/color/selector_text_color_jwtd.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@color/ruhu_blue" android:state_selected="true" />
+    <item android:color="@color/white" android:state_selected="false" />
+    <item android:color="@color/white"/>
+</selector>

+ 8 - 0
app/src/main/res/drawable/jwtd_ry_selector.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:drawable="@drawable/bg_shape_stroke_blue_corner4" android:state_selected="true"/>
+    <item android:drawable="@drawable/bg_shape_blue_corner4" android:state_selected="false"/>
+    <item android:drawable="@drawable/bg_shape_blue_corner4"/>
+
+</selector>

+ 175 - 0
app/src/main/res/layout/activity_add_jwry.xml

@@ -0,0 +1,175 @@
+<?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:layout_height="match_parent"
+    android:background="#f8f8f8"
+    android:orientation="vertical">
+
+    <com.zkjc.common.view.CommonTitleBarV3
+        android:id="@+id/title_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="25dp" />
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@id/title_bar">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_marginTop="12dp"
+                android:layout_marginRight="12dp"
+                android:background="@drawable/white_bg"
+                android:orientation="vertical">
+
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="50dp"
+                    android:paddingLeft="12dp"
+                    android:layout_marginRight="12dp"
+                    android:paddingRight="12dp">
+
+                    <TextView
+
+                        android:id="@+id/name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_centerVertical="true"
+                        android:text="人员姓名"
+                        android:textColor="#666666"
+                        android:textSize="14sp" />
+
+                    <EditText
+                        android:id="@+id/et_name"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_centerVertical="true"
+                        android:layout_toRightOf="@id/name"
+                        android:background="@null"
+                        android:gravity="right|center_vertical"
+                        android:hint="请输入人员姓名"
+                        android:textColor="#111111"
+                        android:textColorHint="#999999"
+                        android:textSize="14sp" />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:layout_alignParentBottom="true"
+                        android:background="#e7e7e7" />
+
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:id="@+id/rl_xslx"
+                    android:layout_width="match_parent"
+                    android:layout_height="50dp"
+                    android:paddingLeft="12dp"
+                    android:paddingRight="12dp">
+
+                    <TextView
+                        android:id="@+id/xslx"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_centerVertical="true"
+                        android:text="人员职务"
+                        android:textColor="#666666"
+                        android:textSize="14sp" />
+
+                    <TextView
+                        android:id="@+id/tv_ryzw"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_centerVertical="true"
+                        android:layout_marginRight="8dp"
+                        android:layout_toLeftOf="@id/jt1"
+                        android:layout_toRightOf="@id/xslx"
+                        android:background="@null"
+                        android:gravity="right|center_vertical"
+                        android:hint="请选择人员职务"
+                        android:textColor="#111111"
+                        android:textColorHint="#999999"
+                        android:textSize="14sp" />
+
+                    <ImageView
+                        android:id="@+id/jt1"
+                        android:layout_width="14dp"
+                        android:layout_height="14dp"
+                        android:layout_alignParentRight="true"
+                        android:layout_centerVertical="true"
+                        android:src="@drawable/right_jt" />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:layout_alignParentBottom="true"
+                        android:background="#e7e7e7" />
+
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="50dp"
+                    android:paddingLeft="12dp"
+                    android:layout_marginRight="12dp"
+                    android:paddingRight="12dp">
+
+                    <TextView
+                        android:id="@+id/phone"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_centerVertical="true"
+                        android:text="人员电话"
+                        android:textColor="#666666"
+                        android:textSize="14sp" />
+
+                    <EditText
+                        android:id="@+id/et_phone"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_centerVertical="true"
+                        android:layout_toRightOf="@id/phone"
+                        android:background="@null"
+                        android:inputType="phone"
+                        android:gravity="right|center_vertical"
+                        android:hint="请输入人员电话"
+                        android:textColor="#111111"
+                        android:textColorHint="#999999"
+                        android:textSize="14sp" />
+
+
+                </RelativeLayout>
+
+
+            </LinearLayout>
+
+            <TextView
+                android:id="@+id/tv_confirm"
+                android:layout_width="match_parent"
+                android:layout_height="44dp"
+                android:layout_alignParentBottom="true"
+                android:layout_marginLeft="12dp"
+                android:layout_marginTop="15dp"
+                android:layout_marginRight="12dp"
+                android:layout_marginBottom="20dp"
+                android:background="@drawable/bg_selector_fxpc_next"
+                android:enabled="true"
+                android:gravity="center"
+                android:text="确定"
+                android:textColor="@color/white"
+                android:textSize="18sp" />
+        </LinearLayout>
+    </ScrollView>
+
+
+</RelativeLayout>

+ 209 - 0
app/src/main/res/layout/activity_add_jwtd.xml

@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout 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:background="#f8f8f8"
+    android:orientation="vertical">
+
+    <com.zkjc.common.view.CommonTitleBarV3
+        android:id="@+id/title_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="25dp" />
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginBottom="70dp"
+        android:layout_below="@id/title_bar">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_marginTop="12dp"
+                android:layout_marginRight="12dp"
+                android:background="@drawable/white_bg"
+                android:orientation="vertical">
+
+                <RelativeLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="50dp"
+                    android:layout_marginRight="12dp"
+                    android:paddingLeft="12dp"
+                    android:paddingRight="12dp">
+
+                    <TextView
+                        android:id="@+id/fxpc_left_tv_phone"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_centerVertical="true"
+                        android:text="团队名称"
+                        android:textColor="#666666"
+                        android:textSize="14sp" />
+
+                    <EditText
+                        android:id="@+id/et_hysz"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_centerVertical="true"
+                        android:layout_toRightOf="@id/fxpc_left_tv_phone"
+                        android:background="@null"
+                        android:gravity="right|center_vertical"
+                        android:hint="请输入团队名称"
+                        android:textColor="#111111"
+                        android:textColorHint="#999999"
+                        android:textSize="14sp" />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:layout_alignParentBottom="true"
+                        android:background="#e7e7e7" />
+                </RelativeLayout>
+
+
+                <RelativeLayout
+                    android:id="@+id/rl_sssq"
+                    android:layout_width="match_parent"
+                    android:layout_height="50dp"
+                    android:paddingLeft="12dp"
+                    android:paddingRight="12dp">
+
+                    <TextView
+                        android:id="@+id/sssq"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_centerVertical="true"
+                        android:text="所属社区"
+                        android:textColor="#666666"
+                        android:textSize="14sp" />
+
+                    <TextView
+                        android:id="@+id/tv_sssq"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_centerVertical="true"
+                        android:layout_marginRight="8dp"
+                        android:layout_toLeftOf="@id/jt2"
+                        android:layout_toRightOf="@id/sssq"
+                        android:background="@null"
+                        android:gravity="right|center_vertical"
+                        android:hint="请选择所属社区"
+                        android:textColor="#111111"
+                        android:textColorHint="#999999"
+                        android:textSize="14sp" />
+
+                    <ImageView
+                        android:id="@+id/jt2"
+                        android:layout_width="14dp"
+                        android:layout_height="14dp"
+                        android:layout_alignParentRight="true"
+                        android:layout_centerVertical="true"
+                        android:src="@drawable/right_jt" />
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:layout_alignParentBottom="true"
+                        android:background="#e7e7e7" />
+
+                </RelativeLayout>
+
+                <LinearLayout
+                    android:id="@+id/ll_cyry"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_below="@id/ll_one"
+                    android:layout_marginLeft="12dp"
+                    android:layout_marginTop="10dp"
+                    android:layout_marginRight="12dp"
+                    android:background="@drawable/white_bg"
+                    android:orientation="vertical">
+
+                    <RelativeLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="54dp">
+
+                        <View
+                            android:layout_width="match_parent"
+                            android:layout_height="1dp"
+                            android:layout_alignParentBottom="true"
+                            android:background="#E7E7E7" />
+
+                        <TextView
+                            android:id="@+id/tv_one"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_centerVertical="true"
+                            android:text="团队人员"
+                            android:textColor="#111111"
+                            android:textSize="16sp"
+                            android:textStyle="bold" />
+
+                    </RelativeLayout>
+
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/recycler_view"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        tools:itemCount="2"/>
+
+                    <RelativeLayout
+                        android:id="@+id/rl_addry"
+                        android:layout_width="match_parent"
+                        android:layout_height="54dp">
+
+                        <LinearLayout
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_centerInParent="true"
+                            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"
+                                android:textStyle="bold" />
+                        </LinearLayout>
+
+
+                    </RelativeLayout>
+
+                </LinearLayout>
+            </LinearLayout>
+
+        </LinearLayout>
+    </ScrollView>
+
+    <TextView
+        android:id="@+id/tv_confirm"
+        android:layout_width="match_parent"
+        android:layout_height="44dp"
+        android:layout_alignParentBottom="true"
+        android:layout_marginLeft="12dp"
+        android:layout_marginTop="15dp"
+        android:layout_marginRight="12dp"
+        android:layout_marginBottom="20dp"
+        android:background="@drawable/bg_selector_fxpc_next"
+        android:enabled="true"
+        android:gravity="center"
+        android:text="确定"
+        android:textColor="@color/white"
+        android:textSize="18sp" />
+</RelativeLayout>

+ 0 - 7
app/src/main/res/layout/activity_add_my_qahy.xml

@@ -32,8 +32,6 @@
                 android:background="@drawable/white_bg"
                 android:orientation="vertical">
 
-
-
                 <RelativeLayout
                     android:layout_width="match_parent"
                     android:layout_height="50dp"
@@ -119,8 +117,6 @@
                 </RelativeLayout>
 
 
-
-
                 <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -199,8 +195,6 @@
                             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
@@ -208,7 +202,6 @@
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:layout_centerVertical="true"
-                            android:layout_marginLeft="12dp"
                             android:text="参会人员"
                             android:textColor="#111111"
                             android:textSize="16sp"

+ 35 - 34
app/src/main/res/layout/activity_cyryhc.xml

@@ -229,6 +229,7 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_below="@id/view1"
+                    android:id="@+id/layout_zdry"
                     android:orientation="vertical">
 
                     <TextView
@@ -322,41 +323,41 @@
                         android:layout_margin="12dp"
                         android:background="@drawable/imaginary_line" />
 
-                    <LinearLayout
-                        android:layout_width="wrap_content"
-                        android:layout_below="@id/line"
-                        android:layout_gravity="right"
-                        android:orientation="horizontal"
-                        android:layout_height="wrap_content">
+                </LinearLayout>
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_below="@id/layout_zdry"
+                    android:orientation="horizontal"
+                    android:layout_alignParentRight="true"
+                    android:layout_height="wrap_content">
 
-                        <TextView
-                            android:layout_toLeftOf="@id/item_jc"
-                            android:layout_marginRight="12dp"
-                            android:id="@+id/tv_ryda"
-                            android:layout_width="80dp"
-                            android:layout_height="32dp"
-                            android:background="@drawable/btn_dwxg_shape"
-                            android:layout_marginBottom="12dp"
-                            android:text="人员档案"
-                            android:textColor="#ff666666"
-                            android:textSize="14sp"
-                            android:gravity="center"/>
-                        <TextView
-                            android:id="@+id/tv_addcy"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginRight="12dp"
-                            android:layout_marginBottom="12dp"
-                            android:background="@drawable/btn_dwjc_shape"
-                            android:gravity="center"
-                            android:paddingLeft="16dp"
-                            android:paddingTop="6dp"
-                            android:paddingRight="16dp"
-                            android:paddingBottom="6dp"
-                            android:text="添加为从业人员"
-                            android:textColor="#ff106dff"
-                            android:textSize="14sp" />
-                    </LinearLayout>
+                    <TextView
+                        android:layout_toLeftOf="@id/item_jc"
+                        android:layout_marginRight="12dp"
+                        android:id="@+id/tv_ryda"
+                        android:layout_width="80dp"
+                        android:layout_height="32dp"
+                        android:background="@drawable/btn_dwxg_shape"
+                        android:layout_marginBottom="12dp"
+                        android:text="人员档案"
+                        android:textColor="#ff666666"
+                        android:textSize="14sp"
+                        android:gravity="center"/>
+                    <TextView
+                        android:id="@+id/tv_addcy"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginRight="12dp"
+                        android:layout_marginBottom="12dp"
+                        android:background="@drawable/btn_dwjc_shape"
+                        android:gravity="center"
+                        android:paddingLeft="16dp"
+                        android:paddingTop="6dp"
+                        android:paddingRight="16dp"
+                        android:paddingBottom="6dp"
+                        android:text="添加为从业人员"
+                        android:textColor="#ff106dff"
+                        android:textSize="14sp" />
                 </LinearLayout>
 
             </RelativeLayout>

+ 43 - 0
app/src/main/res/layout/activity_jwry_list.xml

@@ -0,0 +1,43 @@
+<?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:layout_height="match_parent"
+    android:background="#f8f8f8"
+    android:orientation="vertical">
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="240dp"
+        android:background="@mipmap/bj_home_up" />
+
+    <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.recyclerview.widget.RecyclerView
+        android:id="@+id/recycler_view"
+        android:layout_width="match_parent"
+        android:layout_below="@id/title_bar"
+        android:layout_height="match_parent"
+        tools:listitem="@layout/item_jwtd_select" />
+
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
+        android:id="@+id/float_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentBottom="true"
+        android:layout_marginRight="20dp"
+        android:layout_marginBottom="20dp"
+        android:backgroundTint="#03A9F4"
+        android:clickable="true"
+        android:src="@drawable/add"
+        app:borderWidth="0dp"
+        app:elevation="6dp"
+        app:pressedTranslationZ="12dp"
+        app:rippleColor="#0097a7" />
+</RelativeLayout>

+ 49 - 0
app/src/main/res/layout/activity_jwtd_list.xml

@@ -0,0 +1,49 @@
+<?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:layout_height="match_parent"
+    android:background="#f8f8f8"
+    android:orientation="vertical">
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="240dp"
+        android:background="@mipmap/bj_home_up" />
+
+    <com.zkjc.common.view.CommonTitleBarV3
+        android:id="@+id/title_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="25dp" />
+
+    <com.scwang.smart.refresh.layout.SmartRefreshLayout
+        android:id="@+id/smart_refresh"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@id/title_bar">
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/recyclerView"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            tools:listitem="@layout/item_jwtd" />
+    </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+    <com.google.android.material.floatingactionbutton.FloatingActionButton
+        android:id="@+id/float_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentBottom="true"
+        android:layout_marginRight="20dp"
+        android:layout_marginBottom="20dp"
+        android:backgroundTint="#03A9F4"
+        android:clickable="true"
+        android:src="@drawable/add"
+        app:borderWidth="0dp"
+        app:elevation="6dp"
+        app:pressedTranslationZ="12dp"
+        app:rippleColor="#0097a7" />
+</RelativeLayout>

+ 1 - 1
app/src/main/res/layout/item_fwhc.xml

@@ -31,7 +31,7 @@
 
     <TextView
         android:id="@+id/item_fwhc_tv_address"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_toLeftOf="@id/item_fwhc_iv_arrow"
         android:text="吉林省长春市朝阳区飞跃街道学苑街众诚·一品东南1栋 1单元101室"

+ 85 - 0
app/src/main/res/layout/item_jwtd.xml

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
+    android:background="@drawable/white_bg"
+    android:layout_marginLeft="12dp"
+    android:layout_marginRight="12dp"
+    android:id="@+id/item_root"
+    android:paddingBottom="12dp"
+    android:layout_marginTop="12dp"
+    android:layout_height="wrap_content">
+
+    <ImageView
+        android:id="@+id/item_jwtd_iv_arrow"
+        android:layout_width="16dp"
+        android:layout_marginTop="15dp"
+        android:layout_alignParentRight="true"
+        android:layout_marginRight="12dp"
+        android:background="@drawable/arrow_right"
+        android:layout_height="16dp"/>
+
+    <TextView
+        android:id="@+id/item_jwtd_tv_name"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_toLeftOf="@id/item_jwtd_iv_arrow"
+        android:text="警务团队1"
+        android:textColor="#ff111111"
+        android:layout_marginLeft="12dp"
+        android:layout_marginTop="12dp"
+        android:textSize="16sp" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:id="@+id/layout_count"
+        android:layout_below="@id/item_jwtd_tv_name"
+        android:layout_marginLeft="12dp"
+        android:layout_marginTop="8dp"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="团队人数:"
+            android:textColor="#ff999999"
+            android:textSize="12sp" />
+
+        <TextView
+            android:id="@+id/item_count"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="8dp"
+            android:text="10"
+            android:textColor="#ff111111"
+            android:textSize="12sp" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/layout_count"
+        android:layout_marginLeft="12dp"
+        android:layout_marginTop="8dp"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="所属社区:"
+            android:textColor="#ff999999"
+            android:textSize="12sp" />
+
+        <TextView
+            android:id="@+id/item_fzxm"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="8dp"
+            android:maxLines="2"
+            android:ellipsize="end"
+            android:text="社区abcd"
+            android:textColor="#ff111111"
+            android:textSize="12sp" />
+    </LinearLayout>
+
+</RelativeLayout>

+ 46 - 0
app/src/main/res/layout/item_jwtd_ry.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:id="@+id/item_root"
+    android:layout_marginTop="12dp"
+    android:background="@color/white">
+
+
+    <ImageView
+        android:layout_width="50dp"
+        android:id="@+id/iv_delete"
+        android:layout_alignParentRight="true"
+        android:padding="15dp"
+        android:src="@drawable/icon_delete"
+        android:layout_height="50dp"/>
+
+
+    <ImageView
+        android:id="@+id/iv_head"
+        android:layout_width="16dp"
+        android:layout_height="16dp"
+        android:src="@drawable/icon_person_gray_sdyw" />
+
+    <TextView
+        android:id="@+id/item_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="4dp"
+        android:layout_toRightOf="@id/iv_head"
+        android:text="张三"
+        android:textColor="#ff111111"
+        android:textSize="14sp" />
+
+    <TextView
+        android:id="@+id/item_zw_dh"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="4dp"
+        android:layout_below="@id/item_name"
+        android:layout_marginLeft="4dp"
+        android:layout_toRightOf="@id/iv_head"
+        android:text="辅警|188 4537 8246"
+        android:textColor="#ff111111"
+        android:textSize="12sp" />
+</RelativeLayout>

+ 58 - 0
app/src/main/res/layout/item_jwtd_select.xml

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginLeft="12dp"
+    android:id="@+id/item_root"
+    android:layout_marginTop="12dp"
+    android:paddingLeft="12dp"
+    android:paddingTop="6dp"
+    android:layout_marginRight="12dp"
+    android:background="@color/white">
+
+    <TextView
+        android:layout_width="70dp"
+        android:id="@+id/tv_select"
+        android:text="已添加"
+        android:gravity="center"
+        android:paddingLeft="8dp"
+        android:background="@drawable/jwtd_ry_selector"
+        android:layout_marginRight="12dp"
+        android:layout_centerVertical="true"
+        android:paddingRight="8dp"
+        android:layout_marginTop="4dp"
+        android:layout_marginBottom="4dp"
+        android:textColor="@color/selector_text_color_jwtd"
+        android:textSize="14sp"
+        android:layout_alignParentRight="true"
+        android:layout_height="44dp"/>
+
+
+    <ImageView
+        android:id="@+id/iv_head"
+        android:layout_width="16dp"
+        android:layout_height="16dp"
+        android:src="@drawable/icon_person_gray_sdyw" />
+
+    <TextView
+        android:id="@+id/item_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="4dp"
+        android:layout_toRightOf="@id/iv_head"
+        android:text="张三"
+        android:textColor="#ff111111"
+        android:textSize="14sp" />
+
+    <TextView
+        android:id="@+id/item_zw_dh"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="4dp"
+        android:layout_below="@id/item_name"
+        android:layout_marginLeft="4dp"
+        android:layout_toRightOf="@id/iv_head"
+        android:text="辅警|188 4537 8246"
+        android:textColor="#ff111111"
+        android:textSize="12sp" />
+</RelativeLayout>

+ 1 - 2
app/src/main/res/layout/item_my_chry.xml

@@ -2,10 +2,8 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginLeft="12dp"
     android:id="@+id/item_root"
     android:layout_marginTop="12dp"
-    android:layout_marginRight="12dp"
     android:background="@color/white">
     <ImageView
         android:layout_width="50dp"
@@ -42,6 +40,7 @@
         android:id="@+id/item_zw_dh"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"
         android:layout_below="@id/item_name"
         android:layout_marginLeft="4dp"
         android:layout_toRightOf="@id/iv_head"