diff --git a/README.md b/README.md
index 40a3b08..3fbcb03 100755
--- a/README.md
+++ b/README.md
@@ -49,3 +49,11 @@
1.请假 类型跟换数据字典 添加上传假条
```
+
+## 2023-11-16
+```
+> 1.5.0
+
+1.人口房屋录入
+
+```
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f8999ef..a8437e8 100755
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -48,6 +48,22 @@
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning">
+
+
+
+
mFragments = new ArrayList<>();
@Override
@@ -49,22 +50,41 @@ public class BuildingViewPageActivity extends BaseActivity {
ButterKnife.bind(this);
mTvBaseTitle.setText("房屋管理");
refreshView(STATE_LOAD_SUCCESS);
- mTvPublish.setVisibility(ViewPager.VISIBLE);
mTvPublish.setText("新增");
CommunityManageFragment communityFragment = new CommunityManageFragment();
BuildingManageFragment buildingManageFragment = new BuildingManageFragment();
HouseManageNewFragment houseManageNewFragment = new HouseManageNewFragment();
- HireHouseManageFragment hireHouseManageFragment = new HireHouseManageFragment();
+// HireHouseManageFragment hireHouseManageFragment = new HireHouseManageFragment();
mFragments.add(communityFragment);
mFragments.add(buildingManageFragment);
mFragments.add(houseManageNewFragment);
- mFragments.add(hireHouseManageFragment);
-
+// mFragments.add(hireHouseManageFragment);
+ mTvPublish.setVisibility(View.GONE);
VpNoticeAdapter adapter = new VpNoticeAdapter(getSupportFragmentManager());
mVpContent.setAdapter(adapter);
- mTablayout.setxTabDisplayNum(4);
+ mTablayout.setxTabDisplayNum(3);
mTablayout.setupWithViewPager(mVpContent);
mTvPublish.setOnClickListener(v -> onAddPage());
+ mVpContent.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int i, float v, int i1) {
+
+ }
+
+ @Override
+ public void onPageSelected(int i) {
+ if (i == 2 || i == 3) {
+ mTvPublish.setVisibility(View.VISIBLE);
+ } else {
+ mTvPublish.setVisibility(View.GONE);
+ }
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int i) {
+
+ }
+ });
}
/**
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/HouseLivePersonBindActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/HouseLivePersonBindActivity.java
index 873718a..8479023 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/HouseLivePersonBindActivity.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/HouseLivePersonBindActivity.java
@@ -1,24 +1,34 @@
package com.sucstepsoft.realtimelocation.activitys.census.newhouse.activitys;
+import android.app.AlertDialog;
import android.app.ProgressDialog;
+import android.content.Intent;
+import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
+import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
+import android.widget.TextView;
+import com.google.android.flexbox.FlexDirection;
+import com.google.android.flexbox.FlexWrap;
+import com.google.android.flexbox.FlexboxLayoutManager;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.ProgressStyle;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
-import com.sucstepsoft.cm_utils.utils.TimeUtils;
import com.sucstepsoft.cm_utils.utils.ToastUtils;
import com.sucstepsoft.cm_utils.utils.UIUtil;
import com.sucstepsoft.cm_utils.utils.UserLgUtils;
import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.activitys.census.normal.CensusRegisterAddActivity;
import com.sucstepsoft.realtimelocation.adapters.PersonBaseHouseLiveSelAdapter;
+import com.sucstepsoft.realtimelocation.adapters.SelectedHousePersonAdapter;
import com.sucstepsoft.realtimelocation.beans.SaveBindLiveHousePerson;
import com.sucstepsoft.realtimelocation.beans.SuccessBean;
import com.sucstepsoft.realtimelocation.beans.person.PersonBaseListBean;
@@ -68,6 +78,14 @@ public class HouseLivePersonBindActivity extends BaseActivity {
Button mBtnConfirm;
@BindView(R.id.ll_content)
LinearLayout mLlContent;
+ @BindView(R.id.rlv_select)
+ RecyclerView mRlvSelect;
+ @BindView(R.id.ll_person)
+ LinearLayout mLlPerson;
+ @BindView(R.id.ll_single)
+ LinearLayout mLlSingle;
+ @BindView(R.id.tv_hint)
+ TextView mTvHint;
private Unbinder mBind;
private String mId;//房屋ID
private String mKeywords = "";
@@ -75,6 +93,8 @@ public class HouseLivePersonBindActivity extends BaseActivity {
private PersonBaseHouseLiveSelAdapter mAdapter;
private List mDatas = new ArrayList<>();
private PersonBaseListBean.RowsBean mSelBean;
+ private ArrayList mSelBeans;
+ private SelectedHousePersonAdapter mSelAdapter;
@Override
protected int setLayoutId() {
@@ -88,11 +108,13 @@ public class HouseLivePersonBindActivity extends BaseActivity {
refreshView(STATE_LOAD_SUCCESS);
mId = getIntent().getStringExtra("id");
if (TextUtils.isEmpty(mId)) {
- ToastUtils.showShort("数据有误");
- finish();
+ mLlSingle.setVisibility(View.GONE);
+ mLlPerson.setVisibility(View.VISIBLE);
} else {
- initPersonList();
+ mLlSingle.setVisibility(View.VISIBLE);
+ mLlPerson.setVisibility(View.GONE);
}
+ initPersonList();
}
/**
@@ -105,12 +127,71 @@ public class HouseLivePersonBindActivity extends BaseActivity {
mEtSearchIdCard.setText("");
refreshData();
});
+ //选择
+ FlexboxLayoutManager manage = new FlexboxLayoutManager(mActivity, FlexDirection.ROW, FlexWrap.WRAP) {
+ @Override
+ public boolean canScrollHorizontally() {
+ return false;
+ }
+ };
+ mSelBeans = new ArrayList<>();
+ mSelAdapter = new SelectedHousePersonAdapter(mActivity, mSelBeans);
+ mRlvSelect.setLayoutManager(manage);
+ mRlvSelect.setAdapter(mSelAdapter);
+ mSelAdapter.addOnDelListener((bean, pos) -> {
+ for (PersonBaseListBean.RowsBean p : mDatas) {
+ if (p.getPopulationInfoId().equals(bean.getPopulationInfoId())) {
+ p.setCheck(false);
+ }
+ }
+ mSelBeans.remove(bean);
+ mSelAdapter.setData(mSelBeans);
+ mAdapter.setData(mDatas);
+ if (mSelBeans.size() == 0) {
+ mTvHint.setVisibility(View.VISIBLE);
+ } else {
+ mTvHint.setVisibility(View.GONE);
+ }
+ });
+
+
mAdapter = new PersonBaseHouseLiveSelAdapter(mActivity, mDatas);
LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mXrlvContent.setLayoutManager(layoutManager);
mXrlvContent.setAdapter(mAdapter);
- mAdapter.addOnItemClickListener(bean -> doSetCheckBean(bean));
+ mAdapter.addOnitemCheckChange((bean, isCheck, pos) -> {
+ if (TextUtils.isEmpty(mId)) {
+ if (isCheck) {
+ mSelBeans.add(bean);
+ } else {
+ mSelBeans.remove(bean);
+ }
+ mSelAdapter.setData(mSelBeans);
+ bean.setCheck(isCheck);
+ mAdapter.notifyDataSetChanged();
+ if (mSelBeans.size() == 0) {
+ mTvHint.setVisibility(View.VISIBLE);
+ } else {
+ mTvHint.setVisibility(View.GONE);
+ }
+ } else {
+ //单选
+ mSelBean = bean;
+ mEtName.setText(bean.getName());
+ mEtIdCard.setText(bean.getIdcard());
+ mEtPhone.setText(bean.getPhone());
+ for (int i = 0; i < mDatas.size(); i++) {
+ if (mDatas.get(i).getPopulationInfoId().equals(bean.getPopulationInfoId())) {
+ mDatas.get(i).setCheck(true);
+
+ } else {
+ mDatas.get(i).setCheck(false);
+ }
+ }
+ mAdapter.setData(mDatas);
+ }
+ });
mXrlvContent.setRefreshProgressStyle(ProgressStyle.BallGridBeat);
mXrlvContent.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
mXrlvContent.setPullRefreshEnabled(true);
@@ -126,10 +207,86 @@ public class HouseLivePersonBindActivity extends BaseActivity {
getPersonList(mCurPage);
}
});
- mBtnConfirm.setOnClickListener(v -> doSubmit());
+ mBtnConfirm.setOnClickListener(v -> doConfirm());
getPersonList(mCurPage);
}
+ /**
+ * 提交
+ */
+ private void doConfirm() {
+ if (!TextUtils.isEmpty(mId)) {
+ if (mSelBean == null) {
+ ToastUtils.showShort("请选择人员");
+ } else {
+ getPersonInfo(mSelBean.getPopulationInfoId());
+ }
+ } else {
+ if (mSelBeans == null || mSelBeans.size() <= 0) {
+ ToastUtils.showShort("请选择人员");
+ } else {
+ String ids = "";
+ for (int i = 0; i < mSelBeans.size(); i++) {
+ ids += mSelBeans.get(i).getPopulationInfoId() + "_";
+ }
+ if (ids.endsWith("_")) {
+ ids = ids.substring(0, ids.length() - 1);
+ }
+ getPersonInfo(ids);
+ }
+ }
+ }
+
+ /**
+ * 获取未脱敏的信息
+ */
+ private void getPersonInfo(String id) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getListByIds(id, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(List rowsBeans) {
+ dialog.dismiss();
+ if (rowsBeans != null && rowsBeans.size() > 0) {
+ if (!TextUtils.isEmpty(mId)) {
+ mSelBean = rowsBeans.get(0);
+ doSubmit();
+ } else {
+ mSelBeans = new ArrayList<>(rowsBeans);
+ Intent intent = new Intent();
+ intent.putExtra("beans", mSelBeans);
+ setResult(RESULT_OK, intent);
+ finish();
+ }
+
+ } else {
+ ToastUtils.showShort("未查询到人员信息");
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ dialog.dismiss();
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
/**
* 设置选中的Bean
@@ -137,18 +294,43 @@ public class HouseLivePersonBindActivity extends BaseActivity {
* @param bean
*/
private void doSetCheckBean(PersonBaseListBean.RowsBean bean) {
- mSelBean = bean;
- mEtName.setText(bean.getName());
- mEtIdCard.setText(bean.getIdcard());
- mEtPhone.setText(bean.getPhone());
- for (int i = 0; i < mDatas.size(); i++) {
- if (mDatas.get(i).getPopulationInfoId().equals(bean.getPopulationInfoId())) {
- mDatas.get(i).setCheck(true);
+ if (!TextUtils.isEmpty(mId)) {
+ mSelBean = bean;
+ mEtName.setText(bean.getName());
+ mEtIdCard.setText(bean.getIdcard());
+ mEtPhone.setText(bean.getPhone());
+ for (int i = 0; i < mDatas.size(); i++) {
+ if (mDatas.get(i).getPopulationInfoId().equals(bean.getPopulationInfoId())) {
+ mDatas.get(i).setCheck(true);
+
+ } else {
+ mDatas.get(i).setCheck(false);
+ }
+ }
+ mAdapter.setData(mDatas);
+ } else {
+ //多选
+ boolean isExist = false;
+ for (int i = 0; i < mSelBeans.size(); i++) {
+ if (mSelBeans.get(i).getPopulationInfoId().equals(bean.getPopulationInfoId())) {
+ isExist = true;
+ break;
+ }
+ }
+ if (isExist) {
+ mSelBeans.remove(bean);
} else {
- mDatas.get(i).setCheck(false);
+ mSelBeans.add(bean);
+ }
+ mSelAdapter.setData(mSelBeans);
+ for (int i = 0; i < mDatas.size(); i++) {
+ for (int j = 0; j < mSelBeans.size(); j++) {
+ if (mDatas.get(i).getPopulationInfoId().equals(mSelBeans.get(j).getPopulationInfoId())) {
+ mDatas.get(i).setCheck(true);
+ }
+ }
}
}
- mAdapter.setData(mDatas);
}
private void refreshData() {
@@ -189,6 +371,16 @@ public class HouseLivePersonBindActivity extends BaseActivity {
public void onNext(PersonBaseListBean leaveListBean) {
if (leaveListBean != null && leaveListBean.getRows() != null && leaveListBean.getRows().size() > 0) {
++mCurPage;
+ if (TextUtils.isEmpty(mId)) {
+ for (int i = 0; i < mSelBeans.size(); i++) {
+ PersonBaseListBean.RowsBean rowsBean = mSelBeans.get(i);
+ for (int j = 0; j < leaveListBean.getRows().size(); j++) {
+ if (rowsBean.getPopulationInfoId().equals(leaveListBean.getRows().get(j).getPopulationInfoId())) {
+ leaveListBean.getRows().get(j).setCheck(true);
+ }
+ }
+ }
+ }
if (page == 1) {
mDatas.clear();
mDatas.addAll(leaveListBean.getRows());
@@ -222,6 +414,7 @@ public class HouseLivePersonBindActivity extends BaseActivity {
//无数据
} else {
ToastUtils.showShort("未查询到相关内容");
+ showAddAlter();
}
}
}
@@ -239,6 +432,33 @@ public class HouseLivePersonBindActivity extends BaseActivity {
});
}
+ /**
+ * 没有搜索到人员,提示新增
+ */
+ private void showAddAlter() {
+ AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
+ builder.setTitle("提示")
+ .setMessage("未搜索到该人员信息,现在要去新增吗?")
+ .setPositiveButton("确定", (dialog, which) -> {
+ dialog.dismiss();
+ Intent intent = new Intent(mActivity, CensusRegisterAddActivity.class);
+ intent.putExtra("title", "基础信息录入");
+ startActivityForResult(intent, 12345);
+ })
+ .setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
+ .create()
+ .show();
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+ if (resultCode == RESULT_OK) {
+ if (requestCode == 12345) {
+ doSearch();
+ }
+ }
+ super.onActivityResult(requestCode, resultCode, data);
+ }
/**
* 提交参数
@@ -264,8 +484,8 @@ public class HouseLivePersonBindActivity extends BaseActivity {
public void onNext(@NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.showShort("保存成功");
- setResult(RESULT_OK);
- finish();
+ showConfirmDialog();
+
}
@Override
@@ -282,19 +502,43 @@ public class HouseLivePersonBindActivity extends BaseActivity {
}
}
+ /**
+ * 继续绑定
+ */
+ private void showConfirmDialog() {
+ AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
+ builder.setTitle("提示")
+ .setMessage("需要继续添加入住人员吗?")
+ .setPositiveButton("确定", (dialog, which) -> {
+ dialog.dismiss();
+ for (int i = 0; i < mDatas.size(); i++) {
+ if (mSelBean.getPopulationInfoId().equals(mDatas.get(i).getPopulationInfoId())) {
+ mDatas.get(i).setCheck(false);
+ }
+ }
+ mAdapter.setData(mDatas);
+ mSelBean = null;
+ mEtName.setText("");
+ mEtPhone.setText("");
+ mEtIdCard.setText("");
+ })
+ .setNegativeButton("取消", (dialog, which) -> {
+ dialog.dismiss();
+ setResult(RESULT_OK);
+ finish();
+ })
+ .create()
+ .show();
+ }
+
private RequestBody buildParams() {
SaveBindLiveHousePerson bean = new SaveBindLiveHousePerson();
- String name = mEtName.getText().toString().trim();
- bean.setName(name);
- String phone = mEtPhone.getText().toString().trim();
- bean.setPhone(phone);
- String idCard = mEtIdCard.getText().toString().trim();
- bean.setCardNum(idCard);
+ bean.setName(mSelBean.getName());
+ bean.setPhone(mSelBean.getPhone());
+ bean.setCardNum(mSelBean.getIdcard());
bean.setHouseId(mId);
- bean.setBindTime(TimeUtils.getNowTime());
- if (mSelBean != null) {
- bean.setPopulationInfoId(mSelBean.getPopulationInfoId());
- }
+ bean.setOutHouse("0");
+ bean.setPopulationInfoId(mSelBean.getPopulationInfoId());
Gson gson = new Gson();
String obj = gson.toJson(bean);
RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewBuildingDetailActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewBuildingDetailActivity.java
index 1d3dbc4..e50509d 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewBuildingDetailActivity.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewBuildingDetailActivity.java
@@ -180,11 +180,11 @@ public class NewBuildingDetailActivity extends BaseActivity {
}
mPhotoAdapter.setData(mPhotos);
}
- if (UserLgUtils.getUserId().equals(bean.getCreator())){
- mLlBtns.setVisibility(View.VISIBLE);
- } else {
- mLlBtns.setVisibility(View.GONE);
- }
+// if (UserLgUtils.getUserId().equals(bean.getCreator())){
+// mLlBtns.setVisibility(View.VISIBLE);
+// } else {
+// }
+ mLlBtns.setVisibility(View.GONE);
refreshView(STATE_LOAD_SUCCESS);
}
@@ -271,10 +271,10 @@ public class NewBuildingDetailActivity extends BaseActivity {
}
mMpView.showZoomControls(false);
mBaiduMap.animateMapStatus(u);
- mTvLocLng.setOnClickListener(v -> {
- Intent intent = new Intent(mActivity, TakePointActivity.class);
- startActivityForResult(intent, 1234);
- });
+// mTvLocLng.setOnClickListener(v -> {
+// Intent intent = new Intent(mActivity, TakePointActivity.class);
+// startActivityForResult(intent, 1234);
+// });
}
/**
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewGroupHouseAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewGroupHouseAddActivity.java
new file mode 100644
index 0000000..fa0960b
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewGroupHouseAddActivity.java
@@ -0,0 +1,1006 @@
+package com.sucstepsoft.realtimelocation.activitys.census.newhouse.activitys;
+
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.database.Cursor;
+import android.graphics.Color;
+import android.net.Uri;
+import android.os.Build;
+import android.os.Environment;
+import android.provider.MediaStore;
+import android.support.annotation.Nullable;
+import android.support.v4.content.FileProvider;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.ZoomControls;
+
+import com.baidu.mapapi.map.BaiduMap;
+import com.baidu.mapapi.map.BitmapDescriptor;
+import com.baidu.mapapi.map.BitmapDescriptorFactory;
+import com.baidu.mapapi.map.MapStatus;
+import com.baidu.mapapi.map.MapStatusUpdate;
+import com.baidu.mapapi.map.MapStatusUpdateFactory;
+import com.baidu.mapapi.map.MarkerOptions;
+import com.baidu.mapapi.map.OverlayOptions;
+import com.baidu.mapapi.map.TextureMapView;
+import com.baidu.mapapi.model.LatLng;
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.view.OptionsPickerView;
+import com.google.gson.Gson;
+import com.sucstepsoft.cm_utils.constant.PathConfig;
+import com.sucstepsoft.cm_utils.core.beans.AddPhotoBean;
+import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi;
+import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
+import com.sucstepsoft.cm_utils.core.widget.base.AddPhotoAdapter;
+import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
+import com.sucstepsoft.cm_utils.core.widget.views.ButtomDialogView;
+import com.sucstepsoft.cm_utils.utils.ProiderUtil;
+import com.sucstepsoft.cm_utils.utils.ToastUtils;
+import com.sucstepsoft.cm_utils.utils.UIUtil;
+import com.sucstepsoft.cm_utils.utils.UserLgUtils;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.activitys.common.PhotoActivity;
+import com.sucstepsoft.realtimelocation.activitys.issue.TakePointActivity;
+import com.sucstepsoft.realtimelocation.adapters.HouseUnitAdapter;
+import com.sucstepsoft.realtimelocation.beans.BaseUserBean;
+import com.sucstepsoft.realtimelocation.beans.CommunityBean;
+import com.sucstepsoft.realtimelocation.beans.DicBean;
+import com.sucstepsoft.realtimelocation.beans.NewBuildingBean;
+import com.sucstepsoft.realtimelocation.beans.NewCommunityDetailBean;
+import com.sucstepsoft.realtimelocation.beans.SaveGroupHouse;
+import com.sucstepsoft.realtimelocation.beans.StreetBean;
+import com.sucstepsoft.realtimelocation.beans.SuccessBean;
+import com.sucstepsoft.realtimelocation.net.LocationApiService;
+import com.sucstepsoft.realtimelocation.utils.ExceptionHandler;
+
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+import io.reactivex.Observer;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.annotations.NonNull;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
+import top.zibin.luban.Luban;
+import top.zibin.luban.OnCompressListener;
+
+/**
+ * 房屋添加-批量添加
+ */
+public class NewGroupHouseAddActivity extends BaseActivity {
+
+
+ @BindView(R.id.tv_street)
+ TextView mTvStreet;
+ @BindView(R.id.tv_community)
+ TextView mTvCommunity;
+ @BindView(R.id.tv_community_area)
+ TextView mTvCommunityArea;
+ @BindView(R.id.et_building_name)
+ EditText mEtBuildingName;
+ @BindView(R.id.et_building_num)
+ EditText mEtBuildingNum;
+ @BindView(R.id.et_floor_num)
+ EditText mEtFloorNum;
+ @BindView(R.id.et_unit_num)
+ EditText mEtUnitNum;
+ @BindView(R.id.tv_loc_lng)
+ TextView mTvLocLng;
+ @BindView(R.id.mp_view)
+ TextureMapView mMpView;
+ @BindView(R.id.tv_point)
+ TextView mTvPoint;
+ @BindView(R.id.et_address)
+ EditText mEtAddress;
+ @BindView(R.id.btn_add_unit)
+ ImageView mBtnAddUnit;
+ @BindView(R.id.rlv_units)
+ RecyclerView mRlvUnits;
+ @BindView(R.id.btn_confirm)
+ Button mBtnConfirm;
+ @BindView(R.id.rlv_photo)
+ RecyclerView mRlvPhoto;
+ @BindView(R.id.tv_building)
+ TextView mTvBuilding;
+ private Unbinder mBind;
+
+ private OptionsPickerView mArea4Picker;
+ private OptionsPickerView mArea5Picker;
+ private List mArea4List;
+ private List mArea5List;
+ private StreetBean mSelArea4;
+ private CommunityBean mSelArea5;
+ private OptionsPickerView mDicPicker;
+ private List mDicBeanList;
+
+ private List mCommunityList;
+ private OptionsPickerView mCommunityPicker;
+ private NewCommunityDetailBean mSelCommunity;
+
+ private List mUnitList;
+ private List mFloorList;
+ private DicBean mSelUnit;
+ private DicBean mSelFloor;
+ private OptionsPickerView mUnitPicker;
+ private OptionsPickerView mFloorPicker;
+ private NewBuildingBean.RowsBean mSelBuilding;
+ private List mBuildingList;
+ private OptionsPickerView mBuildingPicker;
+ private SimpleDateFormat mDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ private String mId = "";
+ private DicBean mSelHouseFrame;
+ private String mSelLat;
+ private String mSelLng;
+
+ private BaiduMap mBaiduMap;
+ private LatLng mDefaultPoint;
+ private BitmapDescriptor mBitmapDescriptor;
+ private List mPhotos = new ArrayList<>();
+ private AddPhotoBean mCurrentBean;
+ private String mPicPath;
+ private String mPhotoIds = "";//相片Id
+ private AddPhotoAdapter mPhotoAdapter;
+
+ private HouseUnitAdapter mUnitAdapter;
+ private List mDatas = new ArrayList<>();
+
+ @Override
+ protected int setLayoutId() {
+ return R.layout.activity_add_new_group_house;
+ }
+
+ @Override
+ public void initData() {
+ mBind = ButterKnife.bind(this);
+ mTvBaseTitle.setText("批量建房");
+ refreshView(STATE_LOAD_SUCCESS);
+ initContentView();
+ }
+
+ private void doSubmit() {
+ if (checkParams()) {
+ doSave();
+ }
+
+ }
+
+ /**
+ * 保存编辑
+ */
+
+
+ private void initContentView() {
+ mTvStreet.setOnClickListener(v -> onShowArea4());
+ mTvCommunity.setOnClickListener(v -> onShowArea5());
+ mTvCommunityArea.setOnClickListener(v -> onShowCommunity());
+ mTvBuilding.setOnClickListener(v -> onShowBuildNum());
+ addEmptyUnit();
+ mUnitAdapter = new HouseUnitAdapter(mActivity, mDatas);
+ mRlvUnits.setLayoutManager(new LinearLayoutManager(mActivity));
+ mRlvUnits.setAdapter(mUnitAdapter);
+ mUnitAdapter.setDelListener((bean, pos) -> {
+ if (mDatas.size() > 1) {
+ mDatas.remove(pos);
+ mUnitAdapter.notifyDataSetChanged();
+ } else {
+ ToastUtils.showShort("必须存在一个单元信息");
+ }
+ });
+ mBtnAddUnit.setOnClickListener(v -> addEmptyUnit());
+ mBtnConfirm.setOnClickListener(v -> doSubmit());
+
+ mPhotos.add(new AddPhotoBean());
+ mPhotoAdapter = new AddPhotoAdapter(mActivity, mPhotos);
+ mRlvPhoto.setLayoutManager(new GridLayoutManager(mActivity, 4));
+ mRlvPhoto.setAdapter(mPhotoAdapter);
+ //删除上传的相片
+ mPhotoAdapter.addOnDeleteListener(((bean, i) -> {
+ mPhotoAdapter.removeItem(bean);
+ mPhotoIds = mPhotoIds.replace(bean.getId() + ",", "");
+ }));
+ mPhotoAdapter.addOnItemClickListener(bean -> {
+ if (TextUtils.isEmpty(bean.getPath())) {
+ //空数据
+ showSelectPhoto(bean);
+ } else {
+ //预览
+ ArrayList list = new ArrayList<>();
+ list.add(bean.getPath());
+ Intent intent = new Intent();
+ intent.putExtra(PhotoActivity.TAG_IMGURL, list);
+ intent.setClass(mActivity, PhotoActivity.class);
+ startActivity(intent);
+ }
+ });
+
+ initBaiduMap();
+ }
+
+
+ /**
+ * 添加一个空的单元
+ */
+ private void addEmptyUnit() {
+ SaveGroupHouse.ResultListBean.FloorListBean.HouseListBean roomBean = new SaveGroupHouse.ResultListBean.FloorListBean.HouseListBean();
+ SaveGroupHouse.ResultListBean.FloorListBean floorBean = new SaveGroupHouse.ResultListBean.FloorListBean();
+ List roomBeans = new ArrayList<>();
+ roomBeans.add(roomBean);
+ floorBean.setHouseList(roomBeans);
+ SaveGroupHouse.ResultListBean groupBean = new SaveGroupHouse.ResultListBean();
+ List floorBeans = new ArrayList<>();
+ floorBeans.add(floorBean);
+ groupBean.setFloorList(floorBeans);
+ mDatas.add(groupBean);
+ if (mUnitAdapter != null) {
+ mUnitAdapter.setData(mDatas);
+ }
+ }
+
+ private void initBaiduMap() {
+ mDefaultPoint = new LatLng(PathConfig.LA, PathConfig.LO);
+ mBaiduMap = mMpView.getMap();
+ MapStatus ms = new MapStatus.Builder().zoom(14).target(mDefaultPoint).build();
+ MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms);
+ View child = mMpView.getChildAt(1);
+ if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) {
+ child.setVisibility(View.GONE);
+ }
+ mMpView.showZoomControls(false);
+ mBaiduMap.animateMapStatus(u);
+ mTvLocLng.setOnClickListener(v -> {
+ Intent intent = new Intent(mActivity, TakePointActivity.class);
+ startActivityForResult(intent, 1234);
+ });
+ }
+
+ /**
+ * 添加marker
+ *
+ * @param latLng
+ */
+ private void addMarker(LatLng latLng) {
+ mBaiduMap.clear();
+ mBitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker);
+ OverlayOptions option = new MarkerOptions()
+ .position(latLng)
+ .icon(mBitmapDescriptor)
+ .animateType(MarkerOptions.MarkerAnimateType.drop);
+ mBaiduMap.addOverlay(option);
+ MapStatus ms = new MapStatus.Builder().zoom(14).target(latLng).build();
+ MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms);
+ mBaiduMap.animateMapStatus(u);
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+ if (resultCode == RESULT_OK) {
+ switch (requestCode) {
+ case BaseUrlApi.CAMERA_REQUEST://相机
+ uploadImg(mPicPath, 1);
+ break;
+ case BaseUrlApi.PHOTO_REQUEST://相册
+ try {
+ if (data == null) return;
+ Uri uri = data.getData();
+ String[] proj = {MediaStore.Images.Media.DATA};
+ Cursor cursor = managedQuery(uri, proj, null, null, null);
+ int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
+ cursor.moveToFirst();
+ String srcPath = cursor.getString(column_index);
+ uploadImg(srcPath, 2);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ break;
+ case 1234:
+ String lo = data.getStringExtra("lo");
+ String la = data.getStringExtra("la");
+ String address = data.getStringExtra("address");
+ mSelLat = la;
+ mSelLng = lo;
+ mTvPoint.setText("经纬度:" + mSelLat + "-" + mSelLng);
+ Double laD = Double.parseDouble(la);
+ Double loD = Double.parseDouble(lo);
+ addMarker(new LatLng(laD, loD));
+ mEtAddress.setText(address);
+ break;
+ }
+ }
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+
+ /**
+ * 上传文件
+ *
+ * @param picPath
+ */
+ private void uploadImg(String picPath, int src) {
+ File file = new File(picPath);
+ if (!file.exists()) {
+ showToast("图片路径错误.");
+ return;
+ }
+ ProgressDialog progressDialog = UIUtil.initDialog(mActivity, "正在上传...");
+ progressDialog.show();
+ String pathStr = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + PathConfig.CATCH_PATH;
+ Luban.with(mActivity)
+ .load(picPath)
+ .ignoreBy(100)
+ .setTargetDir(pathStr)
+ .filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif")))
+ .setCompressListener(new OnCompressListener() {
+ @Override
+ public void onStart() {
+
+ }
+
+ @Override
+ public void onSuccess(File file) {
+ RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+ MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile);
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .uploadImage(body, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(BaseUserBean baseUserBean) {
+ if (progressDialog != null && progressDialog.isShowing()) {
+ progressDialog.dismiss();
+ }
+ ToastUtils.showShort("上传成功");
+ mPhotoIds += (baseUserBean.getData() + ",");
+ mCurrentBean.setId(baseUserBean.getData());
+ mCurrentBean.setPath(picPath);
+ if (mPhotos.size() < 4) {
+ mPhotos.add(new AddPhotoBean());
+ }
+ mPhotoAdapter.notifyDataSetChanged();
+ mCurrentBean = null;
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (progressDialog != null && progressDialog.isShowing()) {
+ progressDialog.dismiss();
+ }
+ ToastUtils.showShort("上传失败,请稍后重试.");
+ if (file.exists()) {
+ file.delete();
+ }
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (progressDialog.isShowing()) {
+ progressDialog.dismiss();
+ }
+ ToastUtils.showShort("图片上传失败,请稍后重试");
+ }
+ })
+ .launch();
+ }
+
+ /**
+ * 显示选择图片
+ *
+ * @param bean
+ */
+ private void showSelectPhoto(AddPhotoBean bean) {
+ hideSoftKeyboard();
+ ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity)
+ .setIsBackCancelable(true)
+ .setIscancelable(true)
+ .setShowLocation(Gravity.BOTTOM)
+ .setIsShowFile(false)
+ .build();
+ buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() {
+ @Override
+ public void choseFile() {
+ }
+
+ @Override
+ public void choseAlbum() {
+ mCurrentBean = bean;
+ Intent intent = new Intent(Intent.ACTION_PICK, null);
+ intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
+ "image/*");
+ startActivityForResult(intent, BaseUrlApi.PHOTO_REQUEST);
+ buttomDialogView.dismiss();
+ }
+
+ @Override
+ public void choseShoot() {
+ mCurrentBean = bean;
+ String pathStr = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + PathConfig.CATCH_PATH;
+ mPicPath = pathStr + System.currentTimeMillis() + ".jpg";
+ File file = new File(mPicPath);
+ Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+ // 下面这句指定调用相机拍照后的照片存储的路径
+ Uri uri;
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
+ uri = Uri.fromFile(file);
+ } else {
+ uri = FileProvider.getUriForFile(mActivity, ProiderUtil.getFileProviderName(mActivity), file);
+ }
+ intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
+ startActivityForResult(intent, BaseUrlApi.CAMERA_REQUEST);
+ }
+
+ @Override
+ public void loginOut() {
+
+ }
+
+ @Override
+ public void changePwd() {
+
+ }
+ });
+ buttomDialogView.show();
+ }
+
+ /**
+ * 显示楼排选择
+ */
+ private void onShowBuildNum() {
+ if (mSelCommunity == null) {
+ ToastUtils.showShort("请选择所在小区");
+ } else {
+ if (mBuildingList == null) {
+ getAllUnitNum(mSelCommunity.getResidentialId());
+ } else {
+ mBuildingPicker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
+ mSelBuilding = mBuildingList.get(options1);
+ mTvBuilding.setText(mSelBuilding.getName());
+
+ })
+ .setTitleText("楼/排")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mBuildingPicker.setPicker(mBuildingList);
+ mBuildingPicker.show();
+ }
+ }
+ }
+
+
+ /**
+ * 根据小区获取楼
+ *
+ * @param residentialId
+ */
+ private void getAllUnitNum(String residentialId) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getAllBuilding(residentialId, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(List newCommunityDetailBeans) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ if (newCommunityDetailBeans != null && newCommunityDetailBeans.size() > 0) {
+ mBuildingList = newCommunityDetailBeans;
+ onShowBuildNum();
+ } else {
+ ToastUtils.showShort("所选小区下,暂无楼/排信息");
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+
+ private boolean checkParams() {
+ if (mSelArea4 == null) {
+ ToastUtils.showShort("请选择所在街道");
+ return false;
+ }
+ if (mSelArea5 == null) {
+ ToastUtils.showShort("请选择所在社区");
+ return false;
+ }
+ if (mSelCommunity == null) {
+ ToastUtils.showShort("请选择所在小区");
+ return false;
+ }
+ if (mSelBuilding == null) {
+ ToastUtils.showShort("请选择楼/排");
+ return false;
+ }
+ List data = mUnitAdapter.getData();
+ for (int i = 0; i < data.size(); i++) {
+ if (TextUtils.isEmpty(data.get(i).getUnitValue())) {
+ ToastUtils.showShort("请输入单元号");
+ return false;
+ }
+ for (int j = 0; j < data.get(i).getFloorList().size(); j++) {
+ SaveGroupHouse.ResultListBean.FloorListBean floorBean = data.get(i).getFloorList().get(j);
+ if (TextUtils.isEmpty(floorBean.getFloorValue())) {
+ ToastUtils.showShort("请输入楼层");
+ return false;
+ }
+ List roomList = data.get(i).getFloorList().get(j).getHouseList();
+ for (int k = 0; k < roomList.size(); k++) {
+ if (TextUtils.isEmpty(roomList.get(k).getHouseValue())) {
+ ToastUtils.showShort("请输入门牌号");
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+ }
+
+
+ /**
+ * area4
+ */
+ private void onShowArea4() {
+ if (null == mArea4List || mArea4List.size() <= 0) {
+ getStreetList();
+ } else {
+ mArea4Picker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
+ StreetBean bean = mArea4List.get(options1);
+ mTvStreet.setText(bean.getName());
+ mSelArea4 = bean;
+
+ mSelArea5 = null;
+ mTvCommunity.setText("");
+ mArea5List = null;
+
+ mSelCommunity = null;
+ mCommunityList = null;
+ mTvCommunityArea.setText("");
+
+ mSelBuilding = null;
+ mBuildingList = null;
+ mTvBuilding.setText("");
+
+ })
+ .setTitleText("请选择区域")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mArea4Picker.setPicker(mArea4List);
+ mArea4Picker.show();
+ }
+ }
+
+ /**
+ * 获取街道
+ */
+ private void getStreetList() {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getStreetList(UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(List streetBeans) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ if (streetBeans != null && streetBeans.size() > 0) {
+ mArea4List = streetBeans;
+ onShowArea4();
+ } else {
+ ToastUtils.showShort("暂无街道数据");
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ /**
+ * area5
+ */
+ private void onShowArea5() {
+ if (null == mArea5List || mArea5List.size() <= 0) {
+ if (mSelArea4 == null) {
+ ToastUtils.showShort("请选择乡镇街道");
+ } else {
+ getCommunity(mSelArea4.getId());
+ }
+ } else {
+ mArea5Picker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
+ CommunityBean bean = mArea5List.get(options1);
+ mTvCommunity.setText(bean.getCommunityName());
+ mSelArea5 = bean;
+
+ mSelCommunity = null;
+ mCommunityList = null;
+ mTvCommunityArea.setText("");
+
+ mSelBuilding = null;
+ mBuildingList = null;
+ mTvBuilding.setText("");
+
+ })
+ .setTitleText("请选择社区")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mArea5Picker.setPicker(mArea5List);
+ mArea5Picker.show();
+ }
+ }
+
+ private void getCommunity(String areaId) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getCommunityList(areaId, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(List communityBeans) {
+ dialog.dismiss();
+ if (null != communityBeans && communityBeans.size() > 0) {
+ mArea5List = communityBeans;
+ onShowArea5();
+ } else {
+ ToastUtils.showShort("暂无社区数据");
+ }
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ dialog.dismiss();
+ ToastUtils.showShort("获取区域失败");
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+
+ /**
+ * 小区选择
+ */
+ private void onShowCommunity() {
+ if (mSelArea5 == null) {
+ ToastUtils.showShort("请选择所在社区");
+ } else {
+ if (mCommunityList == null) {
+ getAllCommunity(mSelArea5.getCommunityId());
+ } else {
+ mCommunityPicker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
+ mSelCommunity = mCommunityList.get(options1);
+ mTvCommunityArea.setText(mSelCommunity.getName());
+
+ mSelBuilding = null;
+ mBuildingList = null;
+ mTvBuilding.setText("");
+
+ })
+ .setTitleText("请选择小区")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mCommunityPicker.setPicker(mCommunityList);
+ mCommunityPicker.show();
+ }
+ }
+
+ }
+
+ /**
+ * 社区下全部小区
+ *
+ * @param id
+ */
+ private void getAllCommunity(String id) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getNewCommunityListAll(id, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(List newCommunityDetailBeans) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ if (newCommunityDetailBeans != null && newCommunityDetailBeans.size() > 0) {
+ mCommunityList = newCommunityDetailBeans;
+ onShowCommunity();
+ } else {
+ ToastUtils.showShort("所选社区下暂无小区");
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+
+ private void onShowDicPicker(String id, int type, int source) {
+ hideSoftKeyboard();
+ if (type == 1) {
+ mDicPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> {
+ DicBean bean = mDicBeanList.get(o1);
+ chooseDic(bean, source);
+ })
+ .setTitleText("请选择")
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mDicPicker.setPicker(mDicBeanList);
+ mDicPicker.show();
+ } else {
+ getDicListByType(id, type, source);
+ }
+ }
+
+ private void chooseDic(DicBean bean, int source) {
+// switch (source) {
+// case 1://房屋类别
+// mSelHouseType = bean;
+// mTvHouseType.setText(bean.getDictionaryName());
+// break;
+// case 2://房屋性质
+// mHouseProperty = bean;
+// mTvHouseProperty.setText(bean.getDictionaryName());
+// break;
+// case 3://房屋种类
+// mSelHouseKind = bean;
+// mTvHouseKind.setText(bean.getDictionaryName());
+// break;
+// case 4:
+// //房屋结构
+// mSelHouseFrame = bean;
+// mTvHouseFrame.setText(bean.getDictionaryName());
+// break;
+// case 5:
+// //建筑用途
+// mSelBuildUse = bean;
+// mTvBuildUse.setText(bean.getDictionaryName());
+// break;
+// case 6:
+// //房屋用途
+// mSelHouseUse = bean;
+// mTvHouseUse.setText(bean.getDictionaryName());
+// break;
+// case 7:
+// //隐患类型
+// mSelTrouble = bean;
+// mTvTrouble.setText(bean.getDictionaryName());
+// break;
+// case 8:
+// //租住类型
+// mSelRentingType = bean;
+// mTvRentingType.setText(bean.getDictionaryName());
+// break;
+// case 9://房主证件种类
+// mSelOwner = bean;
+// mTvOwnerIdCardType.setText(bean.getDictionaryName());
+// break;
+// case 10://托管人证件种类
+// mSelManage = bean;
+// mTvManageIdCardType.setText(bean.getDictionaryName());
+// break;
+// }
+ }
+
+
+ private void getDicListByType(String pId, int i, int source) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getDictListAllByPid(pId, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(@NonNull List l) {
+ dialog.dismiss();
+ if (l != null && l.size() > 0) {
+ mDicBeanList = l;
+ onShowDicPicker(pId, 1, source);
+ } else {
+ ToastUtils.showShort("暂无数据");
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ dialog.dismiss();
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+
+ }
+
+
+ /**
+ * 提交数据
+ */
+ private void doSave() {
+ hideSoftKeyboard();
+ RequestBody bean = buildParams();
+ ProgressDialog progressDialog = UIUtil.initDialog(NewGroupHouseAddActivity.this, "添加中...");
+ progressDialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .doSaveGroupHouse(bean, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(SuccessBean s) {
+ progressDialog.dismiss();
+ ToastUtils.showShort("添加成功");
+ setResult(RESULT_OK);
+ finish();
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ progressDialog.dismiss();
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+
+ /**
+ * 构建提交参数
+ *
+ * @return
+ */
+ private RequestBody buildParams() {
+ SaveGroupHouse bean = new SaveGroupHouse();
+ bean.setStreet(mSelArea4.getId());
+ bean.setStreetName(mSelArea4.getName());
+
+ bean.setCommunity(mSelArea5.getCommunityId());
+ bean.setCommunityName(mSelArea5.getCommunityName());
+
+ bean.setResidentialId(mSelCommunity.getResidentialId());
+ bean.setResidentialName(mSelCommunity.getName());
+
+ bean.setBuildingId(mSelBuilding.getBuildingId());
+ bean.setBuildingName(mSelBuilding.getName());
+
+ bean.setResultList(mDatas);
+
+ Gson gson = new Gson();
+ String obj = gson.toJson(bean);
+ RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
+ return requestBody;
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseAddActivity.java
index bb8f1fa..f6139f0 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseAddActivity.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseAddActivity.java
@@ -1,8 +1,13 @@
package com.sucstepsoft.realtimelocation.activitys.census.newhouse.activitys;
import android.app.ProgressDialog;
+import android.content.Intent;
import android.graphics.Color;
+import android.support.annotation.Nullable;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
+import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
@@ -21,6 +26,7 @@ import com.sucstepsoft.cm_utils.utils.ToastUtils;
import com.sucstepsoft.cm_utils.utils.UIUtil;
import com.sucstepsoft.cm_utils.utils.UserLgUtils;
import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.adapters.HouseLiveAddPersonAdapter;
import com.sucstepsoft.realtimelocation.beans.CommunityBean;
import com.sucstepsoft.realtimelocation.beans.DicBean;
import com.sucstepsoft.realtimelocation.beans.NewBuildingBean;
@@ -30,6 +36,7 @@ import com.sucstepsoft.realtimelocation.beans.NewHouseDetailBean;
import com.sucstepsoft.realtimelocation.beans.SaveNewHouseBean;
import com.sucstepsoft.realtimelocation.beans.StreetBean;
import com.sucstepsoft.realtimelocation.beans.SuccessBean;
+import com.sucstepsoft.realtimelocation.beans.person.PersonBaseListBean;
import com.sucstepsoft.realtimelocation.net.LocationApiService;
import com.sucstepsoft.realtimelocation.utils.ExceptionHandler;
@@ -122,6 +129,14 @@ public class NewHouseAddActivity extends BaseActivity {
Button mBtnConfirm;
@BindView(R.id.ll_content)
LinearLayout mLlContent;
+ @BindView(R.id.btn_add_person)
+ Button mBtnAddPerson;
+ @BindView(R.id.tv_hint)
+ TextView mTvHint;
+ @BindView(R.id.rlv_live_person)
+ RecyclerView mRlvLivePerson;
+ @BindView(R.id.ll_live_person)
+ LinearLayout mLlLivePerson;
private Unbinder mBind;
private OptionsPickerView mArea4Picker;
@@ -158,6 +173,8 @@ public class NewHouseAddActivity extends BaseActivity {
private DicBean mSelRentingType;
private DicBean mSelOwner;
private DicBean mSelManage;
+ private HouseLiveAddPersonAdapter mLiveAddPersonAdapter;
+ private List mSelLivePerson;
@Override
protected int setLayoutId() {
@@ -172,8 +189,10 @@ public class NewHouseAddActivity extends BaseActivity {
mId = getIntent().getStringExtra("id");
if (!TextUtils.isEmpty(mId)) {
refreshView(STATE_LOAD_LOADING);
+ mLlLivePerson.setVisibility(View.GONE);
getDetailById();
} else {
+ mLlLivePerson.setVisibility(View.VISIBLE);
refreshView(STATE_LOAD_SUCCESS);
}
@@ -249,9 +268,55 @@ public class NewHouseAddActivity extends BaseActivity {
mTvOwnerIdCardType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_CARD_TYPE, 2, 9));
mTvManageIdCardType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_CARD_TYPE, 2, 10));
mTvRegisterDate.setOnClickListener(v -> onShowDate(mTvRegisterDate));
+ mSelLivePerson = new ArrayList<>();
+ mLiveAddPersonAdapter = new HouseLiveAddPersonAdapter(mActivity, mSelLivePerson);
+ mRlvLivePerson.setLayoutManager(new LinearLayoutManager(mActivity));
+ mRlvLivePerson.setAdapter(mLiveAddPersonAdapter);
+ mLiveAddPersonAdapter.setCanEdit(true);
+ if (mSelLivePerson.size() >= 1) {
+ mTvHint.setVisibility(View.GONE);
+ } else {
+ mTvHint.setVisibility(View.VISIBLE);
+ }
+ mLiveAddPersonAdapter.addOnEditListener(new HouseLiveAddPersonAdapter.OnEditListener() {
+ @Override
+ public void onDel(PersonBaseListBean.RowsBean bean, int pos) {
+ mSelLivePerson.remove(bean);
+ mLiveAddPersonAdapter.setData(mSelLivePerson);
+ if (mSelLivePerson.size() >= 1) {
+ mTvHint.setVisibility(View.GONE);
+ } else {
+ mTvHint.setVisibility(View.VISIBLE);
+ }
+ }
+
+ @Override
+ public void onEdit(PersonBaseListBean.RowsBean b, int pos) {
+
+ }
+ });
+ mBtnAddPerson.setOnClickListener(v -> {
+ startActivityForResult(new Intent(mActivity, HouseLivePersonBindActivity.class), 12345);
+ });
mBtnConfirm.setOnClickListener(v -> doSubmit());
}
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+ if (resultCode == RESULT_OK) {
+ if (requestCode == 12345) {
+ mSelLivePerson = (List) data.getSerializableExtra("beans");
+ mLiveAddPersonAdapter.setData(mSelLivePerson);
+ if (mSelLivePerson != null && mSelLivePerson.size() > 0) {
+ mTvHint.setVisibility(View.GONE);
+ } else {
+ mTvHint.setVisibility(View.VISIBLE);
+ }
+ }
+ }
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+
private void onShowDate(TextView tvItem) {
hideSoftKeyboard();
TimePickerView mTimePickerView = new TimePickerBuilder(mActivity, (date, v) -> {
@@ -278,7 +343,7 @@ public class NewHouseAddActivity extends BaseActivity {
} else {
mBuildingPicker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
mSelBuilding = mBuildingList.get(options1);
- mTvBuildingNum.setText(mSelCommunity.getName());
+ mTvBuildingNum.setText(mSelBuilding.getName());
mSelUnit = null;
mUnitList = null;
@@ -443,34 +508,34 @@ public class NewHouseAddActivity extends BaseActivity {
ToastUtils.showShort("请选择所在楼/排");
return false;
}
- if (mSelHouseType == null) {
- ToastUtils.showShort("请选择房屋类别");
- return false;
- }
- if (mHouseProperty == null) {
- ToastUtils.showShort("请选择房屋性质");
- return false;
- }
- if (mSelHouseKind == null) {
- ToastUtils.showShort("请选择房屋种类");
- return false;
- }
- if (mSelHouseFrame == null) {
- ToastUtils.showShort("请选择房屋结构");
- return false;
- }
- if (mSelBuildUse == null) {
- ToastUtils.showShort("请选择建筑用途");
- return false;
- }
- if (mSelHouseUse == null) {
- ToastUtils.showShort("请选择房屋用途");
- return false;
- }
- if (mSelTrouble == null) {
- ToastUtils.showShort("请选择隐患类型");
- return false;
- }
+// if (mSelHouseType == null) {
+// ToastUtils.showShort("请选择房屋类别");
+// return false;
+// }
+// if (mHouseProperty == null) {
+// ToastUtils.showShort("请选择房屋性质");
+// return false;
+// }
+// if (mSelHouseKind == null) {
+// ToastUtils.showShort("请选择房屋种类");
+// return false;
+// }
+// if (mSelHouseFrame == null) {
+// ToastUtils.showShort("请选择房屋结构");
+// return false;
+// }
+// if (mSelBuildUse == null) {
+// ToastUtils.showShort("请选择建筑用途");
+// return false;
+// }
+// if (mSelHouseUse == null) {
+// ToastUtils.showShort("请选择房屋用途");
+// return false;
+// }
+// if (mSelTrouble == null) {
+// ToastUtils.showShort("请选择隐患类型");
+// return false;
+// }
return true;
}
@@ -1120,30 +1185,38 @@ public class NewHouseAddActivity extends BaseActivity {
String unitNum = mTvUnitNum.getText().toString().trim();
bean.setAffiliationUnit(Integer.parseInt(unitNum));
String floorNum = mTvFloorNum.getText().toString().trim();
- bean.setAffiliationFloors(Integer.parseInt(floorNum));
+ bean.setAffiliationFloors(floorNum);
String door = mEtDoor.getText().toString().trim();
- bean.setHouseNum(Integer.parseInt(door));
+ bean.setHouseNum(door);
+ if (mSelHouseType != null) {
+ bean.setCategoryId(mSelHouseType.getDictionaryId());
+ bean.setCategoryName(mSelHouseType.getDictionaryName());
+ }
+ if (mHouseProperty != null) {
+ bean.setNatureId(mHouseProperty.getDictionaryId());
+ bean.setNatureName(mHouseProperty.getDictionaryName());
+ }
+ if (mSelHouseFrame != null) {
+ bean.setStructureId(mSelHouseFrame.getDictionaryId());
+ bean.setStructureName(mSelHouseFrame.getDictionaryName());
+ }
+ if (mSelHouseKind != null) {
+ bean.setTypeId(mSelHouseKind.getDictionaryId());
+ bean.setTypeName(mSelHouseKind.getDictionaryName());
+ }
+ if (mSelBuildUse != null) {
+ bean.setBuildingPurposeId(mSelBuildUse.getDictionaryId());
+ bean.setBuildingPurposeName(mSelBuildUse.getDictionaryName());
+ }
+ if (mSelHouseUse != null) {
+ bean.setRoomUseId(mSelHouseUse.getDictionaryId());
+ bean.setRoomUseName(mSelHouseUse.getDictionaryName());
+ }
- bean.setCategoryId(mSelHouseType.getDictionaryId());
- bean.setCategoryName(mSelHouseType.getDictionaryName());
-
- bean.setNatureId(mHouseProperty.getDictionaryId());
- bean.setNatureName(mHouseProperty.getDictionaryName());
-
- bean.setStructureId(mSelHouseFrame.getDictionaryId());
- bean.setStructureName(mSelHouseFrame.getDictionaryName());
-
- bean.setTypeId(mSelHouseKind.getDictionaryId());
- bean.setTypeName(mSelHouseKind.getDictionaryName());
-
- bean.setBuildingPurposeId(mSelBuildUse.getDictionaryId());
- bean.setBuildingPurposeName(mSelBuildUse.getDictionaryName());
-
- bean.setRoomUseId(mSelHouseUse.getDictionaryId());
- bean.setRoomUseName(mSelHouseUse.getDictionaryName());
-
- bean.setDangerId(mSelTrouble.getDictionaryId());
- bean.setDangerName(mSelTrouble.getDictionaryName());
+ if (mSelTrouble != null) {
+ bean.setDangerId(mSelTrouble.getDictionaryId());
+ bean.setDangerName(mSelTrouble.getDictionaryName());
+ }
String houseNumber = mEtHouseNumber.getText().toString().trim();
if (!TextUtils.isEmpty(houseNumber)) {
bean.setRoomNum(Integer.parseInt(houseNumber));
@@ -1187,6 +1260,21 @@ public class NewHouseAddActivity extends BaseActivity {
bean.setCustodianPhone(managePhone);
String relation = mEtManageRelation.getText().toString().trim();
bean.setRelationshipHomeowner(relation);
+
+ if (mSelLivePerson != null && mSelLivePerson.size() > 0) {
+ List list = new ArrayList<>();
+ for (int i = 0; i < mSelLivePerson.size(); i++) {
+ PersonBaseListBean.RowsBean b1 = mSelLivePerson.get(i);
+ SaveNewHouseBean.PopulationVOListBean b = new SaveNewHouseBean.PopulationVOListBean();
+ b.setName(b1.getName());
+ b.setCardNum(b1.getIdcard());
+ b.setPopulationInfoId(b1.getPopulationInfoId());
+ b.setPhone(b1.getPhone());
+ b.setOutHouse("0");
+ list.add(b);
+ }
+ bean.setPopulationVOList(list);
+ }
Gson gson = new Gson();
String obj = gson.toJson(bean);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseDetailActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseDetailActivity.java
index 32cde00..5de635e 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseDetailActivity.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseDetailActivity.java
@@ -12,6 +12,7 @@ import android.widget.LinearLayout;
import android.widget.Switch;
import android.widget.TextView;
+import com.google.gson.Gson;
import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
import com.sucstepsoft.cm_utils.utils.ToastUtils;
@@ -21,6 +22,7 @@ import com.sucstepsoft.realtimelocation.R;
import com.sucstepsoft.realtimelocation.adapters.HouseLivePersonAdapter;
import com.sucstepsoft.realtimelocation.beans.HouseLivePersonBean;
import com.sucstepsoft.realtimelocation.beans.NewHouseDetailBean;
+import com.sucstepsoft.realtimelocation.beans.SaveBindLiveHousePerson;
import com.sucstepsoft.realtimelocation.beans.SuccessBean;
import com.sucstepsoft.realtimelocation.net.LocationApiService;
import com.sucstepsoft.realtimelocation.utils.ExceptionHandler;
@@ -36,6 +38,8 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import okhttp3.MediaType;
+import okhttp3.RequestBody;
/**
* 作者: Adam
@@ -217,9 +221,11 @@ public class NewHouseDetailActivity extends BaseActivity {
mLlBtns.setVisibility(View.VISIBLE);
mBtnAddPerson.setVisibility(View.VISIBLE);
mAdapter.setCanEdit(true);
+ mAdapter.setEncrypt(false);
} else {
mLlBtns.setVisibility(View.GONE);
mBtnAddPerson.setVisibility(View.GONE);
+ mAdapter.setEncrypt(true);
mAdapter.setCanEdit(false);
}
getBindPersonList();
@@ -238,7 +244,7 @@ public class NewHouseDetailActivity extends BaseActivity {
mPersons = new ArrayList<>();
- mAdapter = new HouseLivePersonAdapter(mActivity, mPersons);
+ mAdapter = new HouseLivePersonAdapter(mActivity, mPersons, false);
mRlvLivePerson.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvLivePerson.setAdapter(mAdapter);
mAdapter.addOnEditListener(new HouseLivePersonAdapter.OnEditListener() {
@@ -249,14 +255,14 @@ public class NewHouseDetailActivity extends BaseActivity {
@Override
public void onEdit(HouseLivePersonBean b, int pos) {
-
+ doLeavePerson(b, pos);
}
});
- mAdapter.addOnItemClickListener(bean -> {
- Intent intent = new Intent(mActivity, EditHouseLivePersonBindActivity.class);
- intent.putExtra("id", bean.getPopulationId());
- startActivityForResult(intent, 12);
- });
+// mAdapter.addOnItemClickListener(bean -> {
+// Intent intent = new Intent(mActivity, EditHouseLivePersonBindActivity.class);
+// intent.putExtra("id", bean.getPopulationId());
+// startActivityForResult(intent, 12);
+// });
mBtnAddPerson.setOnClickListener(v -> {
Intent intent = new Intent(mActivity, HouseLivePersonBindActivity.class);
intent.putExtra("id", mId);
@@ -266,6 +272,70 @@ public class NewHouseDetailActivity extends BaseActivity {
}
+ /**
+ * 人员离开
+ *
+ * @param b outHouse 0正常 1离开
+ * @param pos
+ */
+ private void doLeavePerson(HouseLivePersonBean b, int pos) {
+ new AlertDialog.Builder(mActivity)
+ .setTitle("警告")
+ .setMessage("确定要将该人员移除该房屋吗?")
+ .setPositiveButton("确定", (dialog, which) -> {
+ dialog.dismiss();
+ ProgressDialog s = UIUtil.initDialog(mActivity, "移除中...");
+ s.dismiss();
+ RequestBody body = buildLeaveBody(b);
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .doEditHouseLivePerson(b.getPopulationId(), body, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(SuccessBean successBean) {
+ s.dismiss();
+ ToastUtils.showShort("移除成功");
+ getBindPersonList();
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ s.dismiss();
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ })
+ .setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
+ .create().show();
+ }
+
+
+ private RequestBody buildLeaveBody(HouseLivePersonBean b) {
+ SaveBindLiveHousePerson bean = new SaveBindLiveHousePerson();
+ bean.setName(b.getName());
+ bean.setPhone(b.getPhone());
+ bean.setCardNum(b.getCardNum());
+ bean.setHouseId(b.getHouseId());
+ bean.setOutHouse("1");
+ bean.setPopulationInfoId(b.getPopulationInfoId());
+ Gson gson = new Gson();
+ String obj = gson.toJson(bean);
+ RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
+ return body;
+ }
+
/**
* 删除居住人员
*/
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewRuleHouseAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewRuleHouseAddActivity.java
new file mode 100644
index 0000000..2d16dbf
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewRuleHouseAddActivity.java
@@ -0,0 +1,511 @@
+package com.sucstepsoft.realtimelocation.activitys.census.newhouse.activitys;
+
+import android.app.ProgressDialog;
+import android.graphics.Color;
+import android.text.TextUtils;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.view.OptionsPickerView;
+import com.google.gson.Gson;
+import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
+import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
+import com.sucstepsoft.cm_utils.utils.ToastUtils;
+import com.sucstepsoft.cm_utils.utils.UIUtil;
+import com.sucstepsoft.cm_utils.utils.UserLgUtils;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.beans.CommunityBean;
+import com.sucstepsoft.realtimelocation.beans.NewBuildingBean;
+import com.sucstepsoft.realtimelocation.beans.NewCommunityDetailBean;
+import com.sucstepsoft.realtimelocation.beans.SaveGroupHouse;
+import com.sucstepsoft.realtimelocation.beans.StreetBean;
+import com.sucstepsoft.realtimelocation.beans.SuccessBean;
+import com.sucstepsoft.realtimelocation.net.LocationApiService;
+import com.sucstepsoft.realtimelocation.utils.ExceptionHandler;
+
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+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.RequestBody;
+
+/**
+ * 房屋添加-批量添加-规则
+ */
+public class NewRuleHouseAddActivity extends BaseActivity {
+
+
+ @BindView(R.id.tv_street)
+ TextView mTvStreet;
+ @BindView(R.id.tv_community)
+ TextView mTvCommunity;
+ @BindView(R.id.tv_community_area)
+ TextView mTvCommunityArea;
+ @BindView(R.id.tv_building_num)
+ TextView mTvBuildingNum;
+
+ @BindView(R.id.btn_confirm)
+ Button mBtnConfirm;
+ @BindView(R.id.et_room)
+ EditText mEtRoom;
+
+ private Unbinder mBind;
+
+ private OptionsPickerView mArea4Picker;
+ private OptionsPickerView mArea5Picker;
+ private List mArea4List;
+ private List mArea5List;
+ private StreetBean mSelArea4;
+ private CommunityBean mSelArea5;
+
+ private List mCommunityList;
+ private OptionsPickerView mCommunityPicker;
+ private NewCommunityDetailBean mSelCommunity;
+
+ private NewBuildingBean.RowsBean mSelBuilding;
+ private List mBuildingList;
+ private OptionsPickerView mBuildingPicker;
+
+ @Override
+ protected int setLayoutId() {
+ return R.layout.activity_add_new_group_rule_house;
+ }
+
+ @Override
+ public void initData() {
+ mBind = ButterKnife.bind(this);
+ mTvBaseTitle.setText("快速建房");
+ refreshView(STATE_LOAD_SUCCESS);
+ initContentView();
+ }
+
+ private void doSubmit() {
+ if (checkParams()) {
+ doSave();
+ }
+
+ }
+
+ /**
+ * 保存编辑
+ */
+
+
+ private void initContentView() {
+ mTvStreet.setOnClickListener(v -> onShowArea4());
+ mTvCommunity.setOnClickListener(v -> onShowArea5());
+ mTvCommunityArea.setOnClickListener(v -> onShowCommunity());
+ mTvBuildingNum.setOnClickListener(v -> onShowBuildNum());//楼排
+ mBtnConfirm.setOnClickListener(v -> doSubmit());
+ }
+
+
+ /**
+ * 显示楼排选择
+ */
+ private void onShowBuildNum() {
+ if (mSelCommunity == null) {
+ ToastUtils.showShort("请选择所在小区");
+ } else {
+ if (mBuildingList == null) {
+ getAllUnitNum(mSelCommunity.getResidentialId());
+ } else {
+ mBuildingPicker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
+ mSelBuilding = mBuildingList.get(options1);
+ mTvBuildingNum.setText(mSelBuilding.getName());
+ })
+ .setTitleText("楼/排")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mBuildingPicker.setPicker(mBuildingList);
+ mBuildingPicker.show();
+ }
+ }
+ }
+
+
+ /**
+ * 根据小区获取楼
+ *
+ * @param residentialId
+ */
+ private void getAllUnitNum(String residentialId) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getAllBuilding(residentialId, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(List newCommunityDetailBeans) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ if (newCommunityDetailBeans != null && newCommunityDetailBeans.size() > 0) {
+ mBuildingList = newCommunityDetailBeans;
+ onShowBuildNum();
+ } else {
+ ToastUtils.showShort("所选小区下,暂无楼/排信息");
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+
+ private boolean checkParams() {
+ if (mSelArea4 == null) {
+ ToastUtils.showShort("请选择所在街道");
+ return false;
+ }
+ if (mSelArea5 == null) {
+ ToastUtils.showShort("请选择所在社区");
+ return false;
+ }
+ if (mSelCommunity == null) {
+ ToastUtils.showShort("请选择所在小区");
+ return false;
+ }
+ if (mSelBuilding == null) {
+ ToastUtils.showShort("请选择所在楼/排");
+ return false;
+ }
+ String roomCount = mEtRoom.getText().toString().trim();
+ if (TextUtils.isEmpty(roomCount)) {
+ ToastUtils.showShort("请输入每单元每层户数");
+ return false;
+ }
+ return true;
+ }
+
+
+ /**
+ * area4
+ */
+ private void onShowArea4() {
+ if (null == mArea4List || mArea4List.size() <= 0) {
+ getStreetList();
+ } else {
+ mArea4Picker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
+ StreetBean bean = mArea4List.get(options1);
+ mTvStreet.setText(bean.getName());
+ mSelArea4 = bean;
+
+ mSelArea5 = null;
+ mTvCommunity.setText("");
+ mArea5List = null;
+
+ mSelCommunity = null;
+ mCommunityList = null;
+ mTvCommunityArea.setText("");
+
+ mSelBuilding = null;
+ mBuildingList = null;
+ mTvBuildingNum.setText("");
+
+
+ })
+ .setTitleText("请选择区域")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mArea4Picker.setPicker(mArea4List);
+ mArea4Picker.show();
+ }
+ }
+
+ /**
+ * 获取街道
+ */
+ private void getStreetList() {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getStreetList(UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(List streetBeans) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ if (streetBeans != null && streetBeans.size() > 0) {
+ mArea4List = streetBeans;
+ onShowArea4();
+ } else {
+ ToastUtils.showShort("暂无街道数据");
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ /**
+ * area5
+ */
+ private void onShowArea5() {
+ if (null == mArea5List || mArea5List.size() <= 0) {
+ if (mSelArea4 == null) {
+ ToastUtils.showShort("请选择乡镇街道");
+ } else {
+ getCommunity(mSelArea4.getId());
+ }
+ } else {
+ mArea5Picker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
+ CommunityBean bean = mArea5List.get(options1);
+ mTvCommunity.setText(bean.getCommunityName());
+ mSelArea5 = bean;
+
+ mSelCommunity = null;
+ mCommunityList = null;
+ mTvCommunityArea.setText("");
+
+ mSelBuilding = null;
+ mBuildingList = null;
+ mTvBuildingNum.setText("");
+
+
+ })
+ .setTitleText("请选择社区")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mArea5Picker.setPicker(mArea5List);
+ mArea5Picker.show();
+ }
+ }
+
+ private void getCommunity(String areaId) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getCommunityList(areaId, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(List communityBeans) {
+ dialog.dismiss();
+ if (null != communityBeans && communityBeans.size() > 0) {
+ mArea5List = communityBeans;
+ onShowArea5();
+ } else {
+ ToastUtils.showShort("暂无社区数据");
+ }
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ dialog.dismiss();
+ ToastUtils.showShort("获取区域失败");
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+
+ /**
+ * 小区选择
+ */
+ private void onShowCommunity() {
+ if (mSelArea5 == null) {
+ ToastUtils.showShort("请选择所在社区");
+ } else {
+ if (mCommunityList == null) {
+ getAllCommunity(mSelArea5.getCommunityId());
+ } else {
+ mCommunityPicker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
+ mSelCommunity = mCommunityList.get(options1);
+ mTvCommunityArea.setText(mSelCommunity.getName());
+
+ mSelBuilding = null;
+ mBuildingList = null;
+ mTvBuildingNum.setText("");
+
+
+ })
+ .setTitleText("请选择小区")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mCommunityPicker.setPicker(mCommunityList);
+ mCommunityPicker.show();
+ }
+ }
+
+ }
+
+ /**
+ * 社区下全部小区
+ *
+ * @param id
+ */
+ private void getAllCommunity(String id) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getNewCommunityListAll(id, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(List newCommunityDetailBeans) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ if (newCommunityDetailBeans != null && newCommunityDetailBeans.size() > 0) {
+ mCommunityList = newCommunityDetailBeans;
+ onShowCommunity();
+ } else {
+ ToastUtils.showShort("所选社区下暂无小区");
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (dialog != null && dialog.isShowing()) {
+ dialog.dismiss();
+ }
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+
+ /**
+ * 提交数据
+ */
+ private void doSave() {
+ hideSoftKeyboard();
+ RequestBody bean = buildParams();
+ ProgressDialog progressDialog = UIUtil.initDialog(NewRuleHouseAddActivity.this, "生成中...");
+ progressDialog.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .doSaveNewHouseAuto(bean, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(SuccessBean s) {
+ progressDialog.dismiss();
+ ToastUtils.showShort("生成成功");
+ setResult(RESULT_OK);
+ finish();
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ progressDialog.dismiss();
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+
+ /**
+ * 构建提交参数
+ *
+ * @return
+ */
+ private RequestBody buildParams() {
+ SaveGroupHouse bean = new SaveGroupHouse();
+ bean.setBuildingId(mSelBuilding.getBuildingId());
+ String roomCount = mEtRoom.getText().toString().trim();
+ bean.setFloorUnitHouseCount(roomCount);
+
+ Gson gson = new Gson();
+ String obj = gson.toJson(bean);
+ RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
+ return requestBody;
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/BuildingManageFragment.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/BuildingManageFragment.java
index b507cfc..71ae762 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/BuildingManageFragment.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/BuildingManageFragment.java
@@ -104,7 +104,7 @@ public class BuildingManageFragment extends LazyFragment {
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRlvItems.setLayoutManager(layoutManager);
mRlvItems.setAdapter(mAdapter);
- mAdapter.addOnItemClickListener(bean -> showIssueDetail(bean));
+ mAdapter.addOnItemClickListener(this::showIssueDetail);
mRlvItems.setNoMore(true);
mRlvItems.setRefreshProgressStyle(ProgressStyle.BallGridBeat);
mRlvItems.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
@@ -119,6 +119,12 @@ public class BuildingManageFragment extends LazyFragment {
loadMore();
}
});
+ mKeywords = "";
+ mSelBuilding = null;
+ mSelCommunityArea = null;
+ mSelStreet = null;
+ mSelCommunity = null;
+ mEtSearchKey.setText("");
getBuildingList(1);
initSearchView();
}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/CommunityManageFragment.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/CommunityManageFragment.java
index d0ee780..fd82586 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/CommunityManageFragment.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/CommunityManageFragment.java
@@ -102,7 +102,7 @@ public class CommunityManageFragment extends LazyFragment {
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRlvItems.setLayoutManager(layoutManager);
mRlvItems.setAdapter(mAdapter);
- mAdapter.addOnItemClickListener(bean -> showIssueDetail(bean));
+ mAdapter.addOnItemClickListener(this::showIssueDetail);
mRlvItems.setNoMore(true);
mRlvItems.setRefreshProgressStyle(ProgressStyle.BallGridBeat);
mRlvItems.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
@@ -117,8 +117,15 @@ public class CommunityManageFragment extends LazyFragment {
loadMore();
}
});
+ mKeywords = "";
+ mSelBuilding = null;
+ mSelCommunityArea = null;
+ mSelStreet = null;
+ mSelCommunity = null;
+ mEtSearchKey.setText("");
getCommunityList(1);
initSearchView();
+ LogUtils.e("刷新页面");
}
@@ -170,7 +177,7 @@ public class CommunityManageFragment extends LazyFragment {
});
mEtSearchKey.setOnEditorActionListener((v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
- hideSoftKeyboard(mEtSearchKey,mActivity);
+ hideSoftKeyboard(mEtSearchKey, mActivity);
mEtSearchKey.clearFocus();
mKeywords = v.getText().toString();
refresh();
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/HireHouseManageFragment.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/HireHouseManageFragment.java
index 5fe9d50..c92a9d7 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/HireHouseManageFragment.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/HireHouseManageFragment.java
@@ -61,7 +61,7 @@ public class HireHouseManageFragment extends LazyFragment {
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRlvItems.setLayoutManager(layoutManager);
mRlvItems.setAdapter(mAdapter);
- mAdapter.addOnItemClickListener(bean -> showIssueDetail(bean));
+ mAdapter.addOnItemClickListener(this::showIssueDetail);
mRlvItems.setNoMore(true);
mRlvItems.setRefreshProgressStyle(ProgressStyle.BallGridBeat);
mRlvItems.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/HouseManageNewFragment.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/HouseManageNewFragment.java
index 716f7ac..6353eae 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/HouseManageNewFragment.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/HouseManageNewFragment.java
@@ -106,7 +106,7 @@ public class HouseManageNewFragment extends LazyFragment {
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRlvItems.setLayoutManager(layoutManager);
mRlvItems.setAdapter(mAdapter);
- mAdapter.addOnItemClickListener(bean -> showIssueDetail(bean));
+ mAdapter.addOnItemClickListener(this::showIssueDetail);
mRlvItems.setNoMore(true);
mRlvItems.setRefreshProgressStyle(ProgressStyle.BallGridBeat);
mRlvItems.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
@@ -122,6 +122,12 @@ public class HouseManageNewFragment extends LazyFragment {
}
});
mCsvState.setState(CustomStateView.STATE_LOAD);
+ mKeywords = "";
+ mSelBuilding = null;
+ mSelCommunityArea = null;
+ mSelStreet = null;
+ mSelCommunity = null;
+ mEtSearchKey.setText("");
getHouseList(1);
initSearchView();
}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusClaimListActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusClaimListActivity.java
new file mode 100644
index 0000000..bc79250
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusClaimListActivity.java
@@ -0,0 +1,410 @@
+package com.sucstepsoft.realtimelocation.activitys.census.normal;
+
+import android.app.AlertDialog;
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.support.v7.widget.LinearLayoutManager;
+import android.text.TextUtils;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.RadioGroup;
+
+import com.jcodecraeer.xrecyclerview.ProgressStyle;
+import com.jcodecraeer.xrecyclerview.XRecyclerView;
+import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
+import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
+import com.sucstepsoft.cm_utils.core.widget.views.CustomStateView;
+import com.sucstepsoft.cm_utils.utils.ToastUtils;
+import com.sucstepsoft.cm_utils.utils.UIUtil;
+import com.sucstepsoft.cm_utils.utils.UserLgUtils;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.adapters.PersonBaseClaimAdapter;
+import com.sucstepsoft.realtimelocation.beans.SuccessBean;
+import com.sucstepsoft.realtimelocation.beans.person.PersonBaseListBean;
+import com.sucstepsoft.realtimelocation.net.LocationApiService;
+import com.sucstepsoft.realtimelocation.utils.ExceptionHandler;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+import io.reactivex.Observer;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.annotations.NonNull;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
+
+/**
+ * 人口认领
+ */
+public class CensusClaimListActivity extends BaseActivity {
+ @BindView(R.id.iv_clear)
+ ImageView mIvClear;
+ @BindView(R.id.et_search_centent)
+ EditText mEtSearchContent;
+ @BindView(R.id.btn_search)
+ Button mBtnSearch;
+ @BindView(R.id.xlv_content)
+ XRecyclerView mXlvItems;
+ @BindView(R.id.rg_type)
+ RadioGroup mRGType;
+ @BindView(R.id.csv_state)
+ CustomStateView mCsvState;
+ private Unbinder mBind;
+ private String mRows = "20";
+ private int mCurPage = 1;
+ private boolean mIsSelf = true;
+ private PersonBaseClaimAdapter mAdapter;
+ private List mDatas = new ArrayList<>();
+ private Disposable mDisposable;
+
+ private String mKeywords = "";
+ private Disposable mListDis;
+
+ @Override
+ protected int setLayoutId() {
+ return R.layout.activity_census_claim_list;
+ }
+
+ @Override
+ public void initData() {
+ mBind = ButterKnife.bind(this);
+ mTvBaseTitle.setText("人口认领");
+ mCsvState.setState(CustomStateView.STATE_LOAD);
+ mBtnSearch.setOnClickListener(v -> doSearch());
+ mIvClear.setOnClickListener(v -> {
+ mKeywords = "";
+ mEtSearchContent.setText("");
+ refreshData();
+ });
+ refreshView(STATE_LOAD_SUCCESS);
+ mAdapter = new PersonBaseClaimAdapter(mActivity, mDatas);
+ LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity);
+ layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
+ mXlvItems.setLayoutManager(layoutManager);
+ mXlvItems.setAdapter(mAdapter);
+ mAdapter.addOnItemClickListener(bean -> showDetail(bean));
+ mXlvItems.setRefreshProgressStyle(ProgressStyle.BallGridBeat);
+ mXlvItems.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
+ mXlvItems.setPullRefreshEnabled(true);
+ mXlvItems.setLoadingMoreEnabled(true);
+ mXlvItems.setLoadingListener(new XRecyclerView.LoadingListener() {
+ @Override
+ public void onRefresh() {
+ refreshData();
+ }
+
+ @Override
+ public void onLoadMore() {
+ if (mIsSelf) {
+ getMineList(mCurPage);
+ } else {
+ getUpcomingList(mCurPage);
+ }
+ }
+ });
+ mAdapter.addOnEditListener(new PersonBaseClaimAdapter.OnEditListener() {
+ @Override
+ public void onDel(PersonBaseListBean.RowsBean bean, int pos) {
+ doDelBean(bean, pos);
+ }
+
+ @Override
+ public void onEdit(PersonBaseListBean.RowsBean bean, int pos) {
+ doEditBean(bean, pos);
+ }
+ });
+ mRGType.setOnCheckedChangeListener((group, checkedId) -> {
+ if (checkedId == R.id.rb_mine) {
+ mIsSelf = true;
+ } else {
+ mIsSelf = false;
+ }
+ refreshData();
+ });
+ }
+
+ /**
+ * 搜索
+ */
+ private void doSearch() {
+ String searchContent = mEtSearchContent.getText().toString().trim();
+ if (!TextUtils.isEmpty(searchContent)) {
+ hideSoftKeyboard();
+ mKeywords = searchContent;
+ mCurPage = 1;
+ if (mIsSelf) {
+ getMineList(mCurPage);
+ } else {
+ getUpcomingList(mCurPage);
+ }
+ } else {
+ ToastUtils.showShort("请输入要查询的内容");
+ }
+ }
+
+ private void getMineList(int page) {
+ mCurPage = page;
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getCensusRegisterList(page + "", mKeywords, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ mListDis = d;
+ }
+
+ @Override
+ public void onNext(PersonBaseListBean leaveListBean) {
+ if (leaveListBean != null && leaveListBean.getRows() != null && leaveListBean.getRows().size() > 0) {
+ ++mCurPage;
+ if (page == 1) {
+ mDatas.clear();
+ mDatas.addAll(leaveListBean.getRows());
+ } else {
+ mDatas.addAll(leaveListBean.getRows());
+ }
+ mAdapter.notifyDataSetChanged();
+ mXlvItems.refreshComplete();
+ if (mDatas.size() >= leaveListBean.getTotal()) {
+ mXlvItems.loadMoreComplete();
+ mXlvItems.setNoMore(true);
+ } else {
+ mXlvItems.loadMoreComplete();
+ mXlvItems.setNoMore(false);
+ }
+ mCsvState.setState(CustomStateView.STATE_SUCCESS);
+ } else {
+ mXlvItems.refreshComplete();
+ if (page > 1) {
+ mXlvItems.loadMoreComplete();
+ mXlvItems.setNoMore(true);
+ } else {
+ if (TextUtils.isEmpty(mKeywords)) {
+ mCsvState.setState(CustomStateView.STATE_EMPTY);
+ } else {
+ ToastUtils.showShort("未查询到相关内容");
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ mCsvState.setState(CustomStateView.STATE_ERROR);
+ ToastUtils.showShort("数据加载失,请稍后重试");
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ /**
+ * 删除数据
+ *
+ * @param bean
+ * @param pos
+ */
+ private void doDelBean(PersonBaseListBean.RowsBean bean, int pos) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
+ builder.setTitle("提示")
+ .setMessage("确定要删除该条信息吗?")
+ .setPositiveButton("确定", (dialog, which) -> {
+ dialog.dismiss();
+ ProgressDialog dialog1 = UIUtil.initDialog(mActivity, "删除中...");
+ dialog1.show();
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .doDelBaseRegister(bean.getPopulationInfoId(), UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(@NonNull SuccessBean successBean) {
+ ToastUtils.showShort("删除成功");
+ mDatas.remove(bean);
+ mAdapter.notifyDataSetChanged();
+ dialog1.dismiss();
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ dialog1.dismiss();
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ })
+ .setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
+ .create()
+ .show();
+ }
+
+ /**
+ * 人口认领
+ *
+ * @param bean
+ * @param pos
+ */
+ private void doEditBean(PersonBaseListBean.RowsBean bean, int pos) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "保存中...");
+ dialog.show();
+ RetrofitManager
+ .getInstance()
+ .create(LocationApiService.class)
+ .doClaimPerson(bean.getPopulationInfoId(), UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(SuccessBean successBean) {
+ dialog.dismiss();
+ ToastUtils.showShort("认领成功");
+ refreshData();
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ dialog.dismiss();
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ /**
+ * 显示详情
+ *
+ * @param bean
+ */
+ private void showDetail(PersonBaseListBean.RowsBean bean) {
+ Intent intent = new Intent(mActivity, CensusRegisterDetailActivity.class);
+ intent.putExtra("id", bean.getPopulationInfoId());
+ intent.putExtra("idCard", bean.getIdcard());
+ startActivity(intent);
+ }
+
+ private void refreshData() {
+ mDatas.clear();
+ mAdapter.setData(mDatas);
+ mCsvState.setState(CustomStateView.STATE_LOAD);
+ if (mIsSelf) {
+ getMineList(1);
+ } else {
+ getUpcomingList(1);
+ }
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ refreshData();
+ }
+
+ /**
+ * 获取列表
+ */
+ private void getUpcomingList(int page) {
+ mCurPage = page;
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .getCensusRegisterListAll(page + "", mKeywords, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ mListDis = d;
+ }
+
+ @Override
+ public void onNext(PersonBaseListBean leaveListBean) {
+ if (leaveListBean != null && leaveListBean.getRows() != null && leaveListBean.getRows().size() > 0) {
+ ++mCurPage;
+ if (page == 1) {
+ mDatas.clear();
+ mDatas.addAll(leaveListBean.getRows());
+ } else {
+ mDatas.addAll(leaveListBean.getRows());
+ }
+ mCsvState.setState(CustomStateView.STATE_SUCCESS);
+ mAdapter.notifyDataSetChanged();
+ mXlvItems.refreshComplete();
+ if (mDatas.size() >= leaveListBean.getTotal()) {
+ mXlvItems.loadMoreComplete();
+ mXlvItems.setNoMore(true);
+ } else {
+ mXlvItems.loadMoreComplete();
+ mXlvItems.setNoMore(false);
+ }
+ } else {
+ if (page > 1) {
+ mXlvItems.loadMoreComplete();
+ mXlvItems.setNoMore(true);
+ mCsvState.setState(CustomStateView.STATE_SUCCESS);
+ } else {
+ if (TextUtils.isEmpty(mKeywords)) {
+ //无数据
+ mCsvState.setState(CustomStateView.STATE_EMPTY);
+ } else {
+ ToastUtils.showShort("未查询到相关内容");
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ ToastUtils.showShort("数据加载失,请稍后重试");
+ mCsvState.setState(CustomStateView.STATE_ERROR);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ @Override
+ protected void onDestroy() {
+ if (mListDis != null && !mListDis.isDisposed()) {
+ mListDis.dispose();
+ }
+ if (mDisposable != null && !mDisposable.isDisposed()) {
+ mDisposable.dispose();
+ }
+ mXlvItems.destroy();
+ mXlvItems = null;
+ if (mBind != null) {
+ mBind.unbind();
+ }
+ super.onDestroy();
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java
index 0c05c83..28aa8af 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java
@@ -871,6 +871,7 @@ public class CensusRegisterAddActivity extends BaseActivity {
public void onNext(@NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.showShort("录入成功");
+ setResult(RESULT_OK);
finish();
}
@@ -1129,9 +1130,9 @@ public class CensusRegisterAddActivity extends BaseActivity {
LogUtils.e(data);
String tags = "";
for (int i = 0; i < data.size(); i++) {
- if(data.get(i).isCheck()){
- tags += data.get(i).getId() + ",";
- }
+ if (data.get(i).isCheck()) {
+ tags += data.get(i).getId() + ",";
+ }
}
if (tags.endsWith(",")) {
tags = tags.substring(0, tags.length() - 1);
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterDetailActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterDetailActivity.java
index d3bd507..dc06e3e 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterDetailActivity.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterDetailActivity.java
@@ -11,6 +11,8 @@ import android.widget.TextView;
import com.beloo.widget.chipslayoutmanager.ChipsLayoutManager;
import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager;
import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity;
+import com.sucstepsoft.cm_utils.utils.DesensitizationUtil;
+import com.sucstepsoft.cm_utils.utils.LogUtils;
import com.sucstepsoft.cm_utils.utils.UserLgUtils;
import com.sucstepsoft.realtimelocation.R;
import com.sucstepsoft.realtimelocation.activitys.census.special.CensusCorrctListActivity;
@@ -241,7 +243,7 @@ public class CensusRegisterDetailActivity extends BaseActivity {
ChipsLayoutManager chipsLayoutManager = ChipsLayoutManager.newBuilder(mActivity)
.setOrientation(ChipsLayoutManager.HORIZONTAL)
.build();
- mTagAdapter = new PersonTagAdapter(mActivity, mTags,false);
+ mTagAdapter = new PersonTagAdapter(mActivity, mTags, false);
mRlvTags.setLayoutManager(chipsLayoutManager);
mRlvTags.setAdapter(mTagAdapter);
@@ -345,10 +347,12 @@ public class CensusRegisterDetailActivity extends BaseActivity {
* 户籍信息
*/
private void setRegisterInfo() {
- mTvName.setText(mRegisterDetailBean.getName());//姓名
- mTvCardNumber.setText(mRegisterDetailBean.getIdcard());//证件号码
+ boolean isSelf = UserLgUtils.getUserId().equals(mRegisterDetailBean.getCreator());
+ LogUtils.e("是否自己录入:"+isSelf);
+ mTvName.setText(isSelf ? mRegisterDetailBean.getName() : DesensitizationUtil.chineseName(mRegisterDetailBean.getName()));//姓名
+ mTvCardNumber.setText(isSelf?mRegisterDetailBean.getIdcard():DesensitizationUtil.idCardNum(mRegisterDetailBean.getIdcard()));//证件号码
mTvCardType.setText(mRegisterDetailBean.getIdcardType());//证件类型
- mTvBirth.setText(mRegisterDetailBean.getBirthday());//出生日期
+ mTvBirth.setText(isSelf?mRegisterDetailBean.getBirthday():DesensitizationUtil.birthDate(mRegisterDetailBean.getBirthday()));//出生日期
mTvGender.setText(mRegisterDetailBean.getSex());//性别
mTvNation.setText(mRegisterDetailBean.getNation());//民族
mTvDegree.setText(mRegisterDetailBean.getEducation());//文化程度
@@ -357,7 +361,7 @@ public class CensusRegisterDetailActivity extends BaseActivity {
mTvRelation.setText(mRegisterDetailBean.getRelationship());
// String phone = mEtPhone.getText().toString().trim();
// bean.setPhone(phone);//联系电话
- mTvPhone.setText(mRegisterDetailBean.getPhone());
+ mTvPhone.setText(isSelf?mRegisterDetailBean.getPhone():DesensitizationUtil.mobilePhone(mRegisterDetailBean.getPhone()));
// String academy = mEtAcademy.getText().toString().trim();
// bean.setDescription(academy);//就读院校及专业
mTvAcademy.setText(mRegisterDetailBean.getDescription());
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseFloorAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseFloorAdapter.java
new file mode 100644
index 0000000..84cd31b
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseFloorAdapter.java
@@ -0,0 +1,49 @@
+package com.sucstepsoft.realtimelocation.adapters;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.adapters.holders.HouseFloorHolder;
+import com.sucstepsoft.realtimelocation.beans.ResultListBean;
+
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/24 - 9:16 AM
+ * 邮箱: itgaojian@163.com
+ * 描述: 楼层信息
+ */
+public class HouseFloorAdapter extends BaseRecyclerAdapter {
+ public HouseFloorAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ @Override
+ public HouseFloorHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_floor_item, parent, false);
+ return new HouseFloorHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(HouseFloorHolder holder, int i) {
+ ResultListBean.FloorBean bean = mData.get(i);
+// holder.mRlvItems.setLayoutManager(new LinearLayoutManager(mContext));
+// HouseFloorInputAdapter adapter = new HouseFloorInputAdapter(mContext, mData,this,i);
+// holder.mRlvItems.setAdapter(adapter);
+// holder.mBtnAdd.setOnClickListener(v -> {
+// LogUtils.e("添加楼层");
+
+// });
+
+ }
+ public void doDelBean(int pos){
+ mData.remove(pos);
+ this.setData(mData);
+ }
+
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseFloorInputAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseFloorInputAdapter.java
new file mode 100644
index 0000000..fd8ae76
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseFloorInputAdapter.java
@@ -0,0 +1,69 @@
+package com.sucstepsoft.realtimelocation.adapters;
+
+import android.content.Context;
+import android.support.v7.widget.LinearLayoutManager;
+import android.text.Editable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.adapters.holders.HouseFloorInputHolder;
+import com.sucstepsoft.realtimelocation.beans.ResultListBean;
+import com.sucstepsoft.realtimelocation.beans.SaveGroupHouse;
+import com.sucstepsoft.realtimelocation.widget.SimpleTextWatch;
+
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/24 - 9:16 AM
+ * 邮箱: itgaojian@163.com
+ * 描述: 楼层信息
+ */
+public class HouseFloorInputAdapter extends BaseRecyclerAdapter {
+
+ public HouseFloorInputAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ @Override
+ public HouseFloorInputHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_floor_input, parent, false);
+ return new HouseFloorInputHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(HouseFloorInputHolder holder, int i) {
+ SaveGroupHouse.ResultListBean.FloorListBean bean = mData.get(i);
+ holder.mEtNum.setTag(i);
+ holder.mEtNum.setText(bean.getFloorValue());
+ holder.mRlvItems.setLayoutManager(new LinearLayoutManager(mContext));
+ HouseRoomInputAdapter itemAdapter = new HouseRoomInputAdapter(mContext, bean.getHouseList());
+ holder.mRlvItems.setAdapter(itemAdapter);
+ holder.mEtNum.addTextChangedListener(new SimpleTextWatch() {
+ @Override
+ public void afterTextChanged(Editable s) {
+ if ((int) holder.mEtNum.getTag() == i) {
+ bean.setFloorValue(s.toString());
+ }
+ }
+ });
+ holder.mBtnDel.setOnClickListener(v -> {
+ if (mData.size() > 1) {
+ mData.remove(i);
+ HouseFloorInputAdapter.this.setData(mData);
+ }
+ });
+ holder.mBtnAdd.setOnClickListener(v -> {
+ //添加房屋
+ List data = itemAdapter.getData();
+ SaveGroupHouse.ResultListBean.FloorListBean.HouseListBean roomBean = new SaveGroupHouse.ResultListBean.FloorListBean.HouseListBean();
+ data.add(roomBean);
+ itemAdapter.notifyDataSetChanged();
+ });
+ }
+
+
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseLiveAddPersonAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseLiveAddPersonAdapter.java
new file mode 100644
index 0000000..f6f7c28
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseLiveAddPersonAdapter.java
@@ -0,0 +1,65 @@
+package com.sucstepsoft.realtimelocation.adapters;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.adapters.holders.HousePersonHolder;
+import com.sucstepsoft.realtimelocation.beans.person.PersonBaseListBean;
+
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/17 - 1:22 PM
+ * 邮箱: itgaojian@163.com
+ * 描述: 人口adapter
+ */
+public class HouseLiveAddPersonAdapter extends BaseRecyclerAdapter {
+ private boolean canEdit = false;
+
+ public HouseLiveAddPersonAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ @Override
+ public HousePersonHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_person_tenement, parent, false);
+ return new HousePersonHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(HousePersonHolder holder, int i) {
+ PersonBaseListBean.RowsBean bean = mData.get(i);
+ holder.mTvName.setText(bean.getName());
+ holder.mTvPhone.setText("联系方式:" + bean.getPhone());
+ holder.mTvShip.setText("证件号码:" + bean.getIdcard());
+ holder.mBtnLeave.setVisibility(View.GONE);
+ if (canEdit) {
+ holder.mBtnUnbind.setVisibility(View.VISIBLE);
+ } else {
+ holder.mBtnUnbind.setVisibility(View.GONE);
+ }
+ holder.mBtnUnbind.setOnClickListener(v -> mEditListener.onDel(bean, i));
+ }
+
+ public void setCanEdit(boolean isCan) {
+ canEdit = isCan;
+ notifyDataSetChanged();
+ }
+
+ private OnEditListener mEditListener;
+
+ public void addOnEditListener(OnEditListener mListener) {
+ this.mEditListener = mListener;
+ }
+
+ public interface OnEditListener {
+ void onDel(PersonBaseListBean.RowsBean bean, int pos);
+
+ void onEdit(PersonBaseListBean.RowsBean b, int pos);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseLivePersonAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseLivePersonAdapter.java
index f249b2f..abbffb8 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseLivePersonAdapter.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseLivePersonAdapter.java
@@ -6,6 +6,7 @@ import android.view.View;
import android.view.ViewGroup;
import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.sucstepsoft.cm_utils.utils.DesensitizationUtil;
import com.sucstepsoft.realtimelocation.R;
import com.sucstepsoft.realtimelocation.adapters.holders.HousePersonHolder;
import com.sucstepsoft.realtimelocation.beans.HouseLivePersonBean;
@@ -20,9 +21,12 @@ import java.util.List;
*/
public class HouseLivePersonAdapter extends BaseRecyclerAdapter {
private boolean canEdit = false;
+ private boolean isEncrypt = false;
- public HouseLivePersonAdapter(Context ctx, List list) {
+ public HouseLivePersonAdapter(Context ctx, List list, boolean isEncrypt) {
super(ctx, list);
+ this.isEncrypt = isEncrypt;
+
}
@Override
@@ -35,14 +39,17 @@ public class HouseLivePersonAdapter extends BaseRecyclerAdapter mEditListener.onDel(bean, i));
+ holder.mBtnLeave.setOnClickListener(v -> mEditListener.onEdit(bean, i));
}
public void setCanEdit(boolean isCan) {
@@ -50,6 +57,11 @@ public class HouseLivePersonAdapter extends BaseRecyclerAdapter {
+ public HouseRoomInputAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ @Override
+ public HouseRoomInputHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_room_input, parent, false);
+ return new HouseRoomInputHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(HouseRoomInputHolder holder, int i) {
+ SaveGroupHouse.ResultListBean.FloorListBean.HouseListBean bean = mData.get(i);
+ holder.mEtNum.setTag(i);
+ holder.mEtNum.setText(bean.getHouseValue());
+ holder.mEtNum.addTextChangedListener(new SimpleTextWatch() {
+ @Override
+ public void afterTextChanged(Editable s) {
+ if ((int) holder.mEtNum.getTag() == i) {
+ bean.setHouseValue(s.toString());
+ }
+ }
+ });
+ holder.mBtnDel.setOnClickListener(v -> {
+ if (mData.size() > 1) {
+ mData.remove(i);
+ HouseRoomInputAdapter.this.setData(mData);
+ }
+ });
+ }
+
+
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseRoomItemAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseRoomItemAdapter.java
new file mode 100644
index 0000000..ada5b58
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseRoomItemAdapter.java
@@ -0,0 +1,48 @@
+package com.sucstepsoft.realtimelocation.adapters;
+
+import android.content.Context;
+import android.support.v7.widget.LinearLayoutManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.adapters.holders.HouseRoomItemHolder;
+import com.sucstepsoft.realtimelocation.beans.ResultListBean;
+
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/24 - 9:16 AM
+ * 邮箱: itgaojian@163.com
+ * 描述: 楼层信息
+ */
+public class HouseRoomItemAdapter extends BaseRecyclerAdapter {
+ public HouseRoomItemAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ @Override
+ public HouseRoomItemHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_room_item, parent, false);
+ return new HouseRoomItemHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(HouseRoomItemHolder holder, int i) {
+ ResultListBean.RoomBean bean = mData.get(i);
+ holder.mRlvItems.setLayoutManager(new LinearLayoutManager(mContext));
+// holder.mBtnAdd.setOnClickListener(v -> {
+// //添加楼层
+// AddGroupHouseBean.RoomBean roomBean = new AddGroupHouseBean.RoomBean();
+// List data = adapter.getData();
+// data.add(roomBean);
+// adapter.setData(data);
+// });
+
+ }
+
+
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseUnitAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseUnitAdapter.java
new file mode 100644
index 0000000..a9a73e3
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HouseUnitAdapter.java
@@ -0,0 +1,90 @@
+package com.sucstepsoft.realtimelocation.adapters;
+
+import android.content.Context;
+import android.support.v7.widget.LinearLayoutManager;
+import android.text.Editable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.adapters.holders.HouseUnitHolder;
+import com.sucstepsoft.realtimelocation.beans.ResultListBean;
+import com.sucstepsoft.realtimelocation.beans.SaveGroupHouse;
+import com.sucstepsoft.realtimelocation.widget.SimpleTextWatch;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/24 - 9:16 AM
+ * 邮箱: itgaojian@163.com
+ * 描述: 单元信息
+ */
+public class HouseUnitAdapter extends BaseRecyclerAdapter {
+ public HouseUnitAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ @Override
+ public HouseUnitHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_unit_item, parent, false);
+ return new HouseUnitHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(HouseUnitHolder holder, int i) {
+ SaveGroupHouse.ResultListBean bean = mData.get(i);
+ holder.mEtNum.setTag(i);
+ holder.mEtNum.setText(bean.getUnitValue());
+ holder.mBtnDel.setOnClickListener(v -> {
+ if (mOnDelListener != null) {
+ mOnDelListener.doDelUnit(bean, i);
+ }
+ });
+ holder.mEtNum.addTextChangedListener(new SimpleTextWatch() {
+ @Override
+ public void afterTextChanged(Editable s) {
+ if ((int) holder.mEtNum.getTag() == i) {
+ bean.setUnitValue(s.toString());
+ }
+ }
+ });
+ holder.mRlvItems.setLayoutManager(new LinearLayoutManager(mContext));
+ HouseFloorInputAdapter adapter = new HouseFloorInputAdapter(mContext, bean.getFloorList());
+ holder.mRlvItems.setAdapter(adapter);
+ holder.mBtnAdd.setOnClickListener(v -> {
+ //添加楼层
+ List data = adapter.getData();
+ SaveGroupHouse.ResultListBean.FloorListBean floorBean = new SaveGroupHouse.ResultListBean.FloorListBean();
+ List roomList = new ArrayList<>();
+ floorBean.setHouseList(roomList);
+ SaveGroupHouse.ResultListBean.FloorListBean.HouseListBean roomBean = new SaveGroupHouse.ResultListBean.FloorListBean.HouseListBean();
+ roomList.add(roomBean);
+ data.add(floorBean);
+ adapter.notifyDataSetChanged();
+ });
+ }
+
+ private OnDelListener mOnDelListener;
+
+ public void setDelListener(OnDelListener listener) {
+ this.mOnDelListener = listener;
+ }
+
+ public interface OnDelListener {
+ void doDelUnit(SaveGroupHouse.ResultListBean bean, int pos);
+ }
+
+ /**
+ * 删除楼层
+ *
+ * @param pos
+ */
+ public void doDelBean(int pos) {
+ mData.remove(pos);
+ this.setData(mData);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonBaseClaimAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonBaseClaimAdapter.java
new file mode 100644
index 0000000..44b4ac2
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonBaseClaimAdapter.java
@@ -0,0 +1,59 @@
+package com.sucstepsoft.realtimelocation.adapters;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.sucstepsoft.cm_utils.utils.UserLgUtils;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.adapters.holders.CensusPersonClaimHolder;
+import com.sucstepsoft.realtimelocation.beans.person.PersonBaseListBean;
+
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/17 - 1:22 PM
+ * 邮箱: itgaojian@163.com
+ * 描述: 人口认领
+ */
+public class PersonBaseClaimAdapter extends BaseRecyclerAdapter {
+ public PersonBaseClaimAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ @Override
+ public CensusPersonClaimHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_person_claim, parent, false);
+ return new CensusPersonClaimHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(CensusPersonClaimHolder censusPersonHolder, int i) {
+ PersonBaseListBean.RowsBean bean = mData.get(i);
+ censusPersonHolder.mTvName.setText(bean.getName());
+ censusPersonHolder.mTvLocation.setText("户籍地址:" + bean.getDomicileAreaName() + "/" + bean.getDomicileAddress());//现在住地
+ censusPersonHolder.mTvNative.setText("性别:" + bean.getSex());
+ censusPersonHolder.mTvPhone.setText("联系电话:" + bean.getPhone());
+ if (!UserLgUtils.getUserId().equals(bean.getCreator())) {
+ censusPersonHolder.mLlBtns.setVisibility(View.VISIBLE);
+ } else {
+ censusPersonHolder.mLlBtns.setVisibility(View.GONE);
+ }
+ censusPersonHolder.mBtnClaim.setOnClickListener(v -> mEditListener.onEdit(bean, i));
+ }
+
+ private OnEditListener mEditListener;
+
+ public void addOnEditListener(OnEditListener mListener) {
+ this.mEditListener = mListener;
+ }
+
+ public interface OnEditListener {
+ void onDel(PersonBaseListBean.RowsBean bean, int pos);
+
+ void onEdit(PersonBaseListBean.RowsBean bean, int pos);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonBaseHouseLiveSelAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonBaseHouseLiveSelAdapter.java
index 65d7e2e..c61a94e 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonBaseHouseLiveSelAdapter.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonBaseHouseLiveSelAdapter.java
@@ -5,6 +5,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import com.sucstepsoft.cm_utils.core.retrofit_net.bean.BindPersonBean;
import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
import com.sucstepsoft.realtimelocation.R;
import com.sucstepsoft.realtimelocation.adapters.holders.CensusPersonLiveHouseHolder;
@@ -38,7 +39,17 @@ public class PersonBaseHouseLiveSelAdapter extends BaseRecyclerAdapter mLis.onItemCheckChange(bean, isChecked, i));
+ censusPersonHolder.itemView.setOnClickListener(v -> mLis.onItemCheckChange(bean, !bean.isCheck(), i));
}
+ private OnItemCheckChange mLis;
+ public void addOnitemCheckChange(OnItemCheckChange lis) {
+ this.mLis = lis;
+ }
+
+ public interface OnItemCheckChange {
+ void onItemCheckChange(PersonBaseListBean.RowsBean bean, boolean isCheck, int pos);
+ }
}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonTagAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonTagAdapter.java
index c87dd49..d2df804 100755
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonTagAdapter.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonTagAdapter.java
@@ -2,6 +2,8 @@ package com.sucstepsoft.realtimelocation.adapters;
import android.content.Context;
import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -37,12 +39,21 @@ public class PersonTagAdapter extends BaseRecyclerAdapter {
holder.mTvName.setChecked(isChecked);
mData.get(i).setCheck(isChecked);
});
+ } else {
+ holder.mTvName.setCompoundDrawables(null, null, null, null);
}
}
}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/SelectedHousePersonAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/SelectedHousePersonAdapter.java
new file mode 100644
index 0000000..675b076
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/SelectedHousePersonAdapter.java
@@ -0,0 +1,52 @@
+package com.sucstepsoft.realtimelocation.adapters;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.sucstepsoft.cm_utils.core.retrofit_net.bean.BindPersonBean;
+import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.adapters.holders.SelPersonHolder;
+import com.sucstepsoft.realtimelocation.beans.person.PersonBaseListBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/24 - 9:16 AM
+ * 邮箱: itgaojian@163.com
+ * 描述: 选中的人员
+ */
+public class SelectedHousePersonAdapter extends BaseRecyclerAdapter {
+ public List mSelBeans = new ArrayList<>();
+
+ public SelectedHousePersonAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ @Override
+ public SelPersonHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_dept_selected, parent, false);
+ return new SelPersonHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(SelPersonHolder holder, int i) {
+ PersonBaseListBean.RowsBean bean = mData.get(i);
+ holder.mTvName.setText(bean.getName());
+ holder.mIvDel.setOnClickListener(v -> mOnDelListener.onDel(bean, i));
+ }
+
+ private OnDelListener mOnDelListener;
+
+ public void addOnDelListener(OnDelListener listener) {
+ this.mOnDelListener = listener;
+ }
+
+ public interface OnDelListener {
+ void onDel(PersonBaseListBean.RowsBean bean, int pos);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/CensusPersonClaimHolder.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/CensusPersonClaimHolder.java
new file mode 100644
index 0000000..ff7bf6a
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/CensusPersonClaimHolder.java
@@ -0,0 +1,38 @@
+package com.sucstepsoft.realtimelocation.adapters.holders;
+
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.Button;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.sucstepsoft.realtimelocation.R;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/17 - 1:19 PM
+ * 邮箱: itgaojian@163.com
+ * 描述:
+ */
+public class CensusPersonClaimHolder extends RecyclerView.ViewHolder {
+ public TextView mTvName;
+ public TextView mTvLocation;
+ public TextView mTvPhone;
+ public TextView mTvNative;
+ public View mLine;
+
+ public Button mBtnClaim;
+ public LinearLayout mLlBtns;
+
+ public CensusPersonClaimHolder(@NonNull View itemView) {
+ super(itemView);
+ mTvName = itemView.findViewById(R.id.tv_name);
+ mTvLocation = itemView.findViewById(R.id.tv_location);
+ mBtnClaim = itemView.findViewById(R.id.btn_claim);
+ mTvNative = itemView.findViewById(R.id.tv_native);
+ mTvPhone = itemView.findViewById(R.id.tv_phone);
+ mLine= itemView.findViewById(R.id.line);
+ mLlBtns= itemView.findViewById(R.id.ll_btns);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseFloorHolder.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseFloorHolder.java
new file mode 100644
index 0000000..e3b9e32
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseFloorHolder.java
@@ -0,0 +1,18 @@
+package com.sucstepsoft.realtimelocation.adapters.holders;
+
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+/**
+ * 单元信息
+ */
+public class HouseFloorHolder extends RecyclerView.ViewHolder {
+ // public ImageView mBtnAdd;
+// public RecyclerView mRlvItems;
+ public HouseFloorHolder(@NonNull View itemView) {
+ super(itemView);
+// mRlvItems = itemView.findViewById(R.id.rlv_items);
+// mBtnAdd = itemView.findViewById(R.id.btn_add);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseFloorInputHolder.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseFloorInputHolder.java
new file mode 100644
index 0000000..11b6100
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseFloorInputHolder.java
@@ -0,0 +1,27 @@
+package com.sucstepsoft.realtimelocation.adapters.holders;
+
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.ImageView;
+
+import com.sucstepsoft.realtimelocation.R;
+
+/**
+ * 单元信息
+ */
+public class HouseFloorInputHolder extends RecyclerView.ViewHolder {
+ public EditText mEtNum;
+ public RecyclerView mRlvItems;
+ public ImageView mBtnDel;
+ public ImageView mBtnAdd;
+
+ public HouseFloorInputHolder(@NonNull View itemView) {
+ super(itemView);
+ mEtNum = itemView.findViewById(R.id.et_num);
+ mRlvItems = itemView.findViewById(R.id.rlv_items);
+ mBtnDel = itemView.findViewById(R.id.btn_del);
+ mBtnAdd = itemView.findViewById(R.id.btn_add);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HousePersonHolder.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HousePersonHolder.java
index 98dc107..5145db3 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HousePersonHolder.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HousePersonHolder.java
@@ -1,6 +1,5 @@
package com.sucstepsoft.realtimelocation.adapters.holders;
-import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;
@@ -19,6 +18,7 @@ public class HousePersonHolder extends RecyclerView.ViewHolder {
public TextView mTvPhone;
public Button mBtnUnbind;
public TextView mTvShip;
+ public Button mBtnLeave;
public HousePersonHolder(View itemView) {
super(itemView);
@@ -26,5 +26,6 @@ public class HousePersonHolder extends RecyclerView.ViewHolder {
mTvPhone = itemView.findViewById(R.id.tv_phone);
mBtnUnbind = itemView.findViewById(R.id.btn_unbind);
mTvShip = itemView.findViewById(R.id.tv_ship);
+ mBtnLeave = itemView.findViewById(R.id.btn_leave);
}
}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseRoomInputHolder.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseRoomInputHolder.java
new file mode 100644
index 0000000..aa4d15c
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseRoomInputHolder.java
@@ -0,0 +1,24 @@
+package com.sucstepsoft.realtimelocation.adapters.holders;
+
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+
+import com.sucstepsoft.realtimelocation.R;
+
+/**
+ * 房间信息
+ */
+public class HouseRoomInputHolder extends RecyclerView.ViewHolder {
+ public EditText mEtNum;
+ public ImageView mBtnDel;
+
+ public HouseRoomInputHolder(@NonNull View itemView) {
+ super(itemView);
+ mEtNum = itemView.findViewById(R.id.et_num);
+ mBtnDel = itemView.findViewById(R.id.btn_del);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseRoomItemHolder.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseRoomItemHolder.java
new file mode 100644
index 0000000..ed9da8a
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseRoomItemHolder.java
@@ -0,0 +1,21 @@
+package com.sucstepsoft.realtimelocation.adapters.holders;
+
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+
+import com.sucstepsoft.realtimelocation.R;
+
+/**
+ * 房间信息
+ */
+public class HouseRoomItemHolder extends RecyclerView.ViewHolder {
+ public RecyclerView mRlvItems;
+
+ public HouseRoomItemHolder(@NonNull View itemView) {
+ super(itemView);
+ mRlvItems = itemView.findViewById(R.id.rlv_items);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseUnitHolder.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseUnitHolder.java
new file mode 100644
index 0000000..b68003d
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/HouseUnitHolder.java
@@ -0,0 +1,27 @@
+package com.sucstepsoft.realtimelocation.adapters.holders;
+
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.ImageView;
+
+import com.sucstepsoft.realtimelocation.R;
+
+/**
+ * 单元信息
+ */
+public class HouseUnitHolder extends RecyclerView.ViewHolder {
+ public EditText mEtNum;
+ public RecyclerView mRlvItems;
+ public ImageView mBtnDel;
+ public ImageView mBtnAdd;
+
+ public HouseUnitHolder(@NonNull View itemView) {
+ super(itemView);
+ mEtNum = itemView.findViewById(R.id.et_num);
+ mRlvItems = itemView.findViewById(R.id.rlv_items);
+ mBtnDel = itemView.findViewById(R.id.btn_del);
+ mBtnAdd = itemView.findViewById(R.id.btn_add);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/NewHouseDetailBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/NewHouseDetailBean.java
index b6ddf93..afd938b 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/NewHouseDetailBean.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/NewHouseDetailBean.java
@@ -30,7 +30,7 @@ public class NewHouseDetailBean {
private String gmtModified;
private String homeowner;
private String houseId;
- private int houseNum;
+ private String houseNum;
private String houseType;
private int isDelete;
private int isRental;
@@ -282,11 +282,11 @@ public class NewHouseDetailBean {
this.houseId = houseId;
}
- public int getHouseNum() {
+ public String getHouseNum() {
return houseNum;
}
- public void setHouseNum(int houseNum) {
+ public void setHouseNum(String houseNum) {
this.houseNum = houseNum;
}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/ResultListBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/ResultListBean.java
new file mode 100644
index 0000000..cf766d4
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/ResultListBean.java
@@ -0,0 +1,57 @@
+package com.sucstepsoft.realtimelocation.beans;
+
+import java.util.List;
+
+public class ResultListBean {
+ private List floorList;
+ private String unitValue;
+
+ public List getFloorList() {
+ return floorList;
+ }
+
+ public void setFloorList(List floorList) {
+ this.floorList = floorList;
+ }
+
+ public String getUnitValue() {
+ return unitValue;
+ }
+
+ public void setUnitValue(String unitValue) {
+ this.unitValue = unitValue;
+ }
+
+ public static class FloorBean {
+ private String floorValue;
+ private List houseList;
+
+ public String getFloorValue() {
+ return floorValue;
+ }
+
+ public void setFloorValue(String floorValue) {
+ this.floorValue = floorValue;
+ }
+
+ public List getHouseList() {
+ return houseList;
+ }
+
+ public void setHouseList(List houseList) {
+ this.houseList = houseList;
+ }
+ }
+
+ public static class RoomBean {
+ private String houseValue;
+
+ public String getHouseValue() {
+ return houseValue;
+ }
+
+ public void setHouseValue(String houseValue) {
+ this.houseValue = houseValue;
+ }
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveBindLiveHousePerson.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveBindLiveHousePerson.java
index 35a5b17..3613f4f 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveBindLiveHousePerson.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveBindLiveHousePerson.java
@@ -6,7 +6,9 @@ public class SaveBindLiveHousePerson {
private String cardNum;
private String houseId;
private String name;
+ private String outHouse;
private String phone;
+ private String populationId;
private String populationInfoId;
public String getBindTime() {
@@ -41,6 +43,14 @@ public class SaveBindLiveHousePerson {
this.name = name;
}
+ public String getOutHouse() {
+ return outHouse;
+ }
+
+ public void setOutHouse(String outHouse) {
+ this.outHouse = outHouse;
+ }
+
public String getPhone() {
return phone;
}
@@ -49,6 +59,14 @@ public class SaveBindLiveHousePerson {
this.phone = phone;
}
+ public String getPopulationId() {
+ return populationId;
+ }
+
+ public void setPopulationId(String populationId) {
+ this.populationId = populationId;
+ }
+
public String getPopulationInfoId() {
return populationInfoId;
}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveGroupHouse.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveGroupHouse.java
new file mode 100644
index 0000000..e28b14b
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveGroupHouse.java
@@ -0,0 +1,224 @@
+package com.sucstepsoft.realtimelocation.beans;
+
+import java.util.List;
+
+public class SaveGroupHouse {
+
+ private String address;
+ private int buildNum;
+ private String community;
+ private String communityName;
+ private int floorsNum;
+ private String image;
+ private String latitude;
+ private String longitude;
+ private String name;
+ private String residentialId;
+ private String residentialName;
+ private List resultList;
+ private String buildingId;
+ private String buildingName;
+ private String street;
+ private String streetName;
+ private int unitNum;
+
+ private String floorUnitHouseCount;
+
+ public String getFloorUnitHouseCount() {
+ return floorUnitHouseCount;
+ }
+
+ public void setFloorUnitHouseCount(String floorUnitHouseCount) {
+ this.floorUnitHouseCount = floorUnitHouseCount;
+ }
+
+ public String getBuildingName() {
+ return buildingName;
+ }
+
+ public void setBuildingName(String buildingName) {
+ this.buildingName = buildingName;
+ }
+
+ public String getBuildingId() {
+ return buildingId;
+ }
+
+ public void setBuildingId(String buildingId) {
+ this.buildingId = buildingId;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public int getBuildNum() {
+ return buildNum;
+ }
+
+ public void setBuildNum(int buildNum) {
+ this.buildNum = buildNum;
+ }
+
+ public String getCommunity() {
+ return community;
+ }
+
+ public void setCommunity(String community) {
+ this.community = community;
+ }
+
+ public String getCommunityName() {
+ return communityName;
+ }
+
+ public void setCommunityName(String communityName) {
+ this.communityName = communityName;
+ }
+
+ public int getFloorsNum() {
+ return floorsNum;
+ }
+
+ public void setFloorsNum(int floorsNum) {
+ this.floorsNum = floorsNum;
+ }
+
+ public String getImage() {
+ return image;
+ }
+
+ public void setImage(String image) {
+ this.image = image;
+ }
+
+ public String getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(String latitude) {
+ this.latitude = latitude;
+ }
+
+ public String getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(String longitude) {
+ this.longitude = longitude;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getResidentialId() {
+ return residentialId;
+ }
+
+ public void setResidentialId(String residentialId) {
+ this.residentialId = residentialId;
+ }
+
+ public String getResidentialName() {
+ return residentialName;
+ }
+
+ public void setResidentialName(String residentialName) {
+ this.residentialName = residentialName;
+ }
+
+ public List getResultList() {
+ return resultList;
+ }
+
+ public void setResultList(List resultList) {
+ this.resultList = resultList;
+ }
+
+ public String getStreet() {
+ return street;
+ }
+
+ public void setStreet(String street) {
+ this.street = street;
+ }
+
+ public String getStreetName() {
+ return streetName;
+ }
+
+ public void setStreetName(String streetName) {
+ this.streetName = streetName;
+ }
+
+ public int getUnitNum() {
+ return unitNum;
+ }
+
+ public void setUnitNum(int unitNum) {
+ this.unitNum = unitNum;
+ }
+
+ public static class ResultListBean {
+ private List floorList;
+ private String unitValue;
+
+ public List getFloorList() {
+ return floorList;
+ }
+
+ public void setFloorList(List floorList) {
+ this.floorList = floorList;
+ }
+
+ public String getUnitValue() {
+ return unitValue;
+ }
+
+ public void setUnitValue(String unitValue) {
+ this.unitValue = unitValue;
+ }
+
+ public static class FloorListBean {
+ private String floorValue;
+ private List houseList;
+
+ public String getFloorValue() {
+ return floorValue;
+ }
+
+ public void setFloorValue(String floorValue) {
+ this.floorValue = floorValue;
+ }
+
+ public List getHouseList() {
+ return houseList;
+ }
+
+ public void setHouseList(List houseList) {
+ this.houseList = houseList;
+ }
+
+ public static class HouseListBean {
+ private String houseValue;
+
+ public String getHouseValue() {
+ return houseValue;
+ }
+
+ public void setHouseValue(String houseValue) {
+ this.houseValue = houseValue;
+ }
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveNewHouseBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveNewHouseBean.java
index 6f034a6..09c96c7 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveNewHouseBean.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/SaveNewHouseBean.java
@@ -1,9 +1,11 @@
package com.sucstepsoft.realtimelocation.beans;
+import java.util.List;
+
public class SaveNewHouseBean {
private String affiliatedUnit;
- private int affiliationFloors;
+ private String affiliationFloors;
private int affiliationUnit;
private String buildingId;
private String buildingName;
@@ -25,7 +27,8 @@ public class SaveNewHouseBean {
private String documentName;
private String documentNum;
private String homeowner;
- private int houseNum;
+ private String houseNum;
+ private String houseValue;
private int isRental;
private int isVacant;
private String lodgeTypeId;
@@ -33,6 +36,7 @@ public class SaveNewHouseBean {
private String natureId;
private String natureName;
private String phone;
+ private List populationVOList;
private String registrationDate;
private String relationshipHomeowner;
private String rentalPurposes;
@@ -57,11 +61,11 @@ public class SaveNewHouseBean {
this.affiliatedUnit = affiliatedUnit;
}
- public int getAffiliationFloors() {
+ public String getAffiliationFloors() {
return affiliationFloors;
}
- public void setAffiliationFloors(int affiliationFloors) {
+ public void setAffiliationFloors(String affiliationFloors) {
this.affiliationFloors = affiliationFloors;
}
@@ -233,14 +237,22 @@ public class SaveNewHouseBean {
this.homeowner = homeowner;
}
- public int getHouseNum() {
+ public String getHouseNum() {
return houseNum;
}
- public void setHouseNum(int houseNum) {
+ public void setHouseNum(String houseNum) {
this.houseNum = houseNum;
}
+ public String getHouseValue() {
+ return houseValue;
+ }
+
+ public void setHouseValue(String houseValue) {
+ this.houseValue = houseValue;
+ }
+
public int getIsRental() {
return isRental;
}
@@ -297,6 +309,14 @@ public class SaveNewHouseBean {
this.phone = phone;
}
+ public List getPopulationVOList() {
+ return populationVOList;
+ }
+
+ public void setPopulationVOList(List populationVOList) {
+ this.populationVOList = populationVOList;
+ }
+
public String getRegistrationDate() {
return registrationDate;
}
@@ -416,4 +436,79 @@ public class SaveNewHouseBean {
public void setTypeName(String typeName) {
this.typeName = typeName;
}
+
+ public static class PopulationVOListBean {
+ private String bindTime;
+ private String cardNum;
+ private String houseId;
+ private String name;
+ private String outHouse;
+ private String phone;
+ private String populationId;
+ private String populationInfoId;
+
+ public String getBindTime() {
+ return bindTime;
+ }
+
+ public void setBindTime(String bindTime) {
+ this.bindTime = bindTime;
+ }
+
+ public String getCardNum() {
+ return cardNum;
+ }
+
+ public void setCardNum(String cardNum) {
+ this.cardNum = cardNum;
+ }
+
+ public String getHouseId() {
+ return houseId;
+ }
+
+ public void setHouseId(String houseId) {
+ this.houseId = houseId;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getOutHouse() {
+ return outHouse;
+ }
+
+ public void setOutHouse(String outHouse) {
+ this.outHouse = outHouse;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPopulationId() {
+ return populationId;
+ }
+
+ public void setPopulationId(String populationId) {
+ this.populationId = populationId;
+ }
+
+ public String getPopulationInfoId() {
+ return populationInfoId;
+ }
+
+ public void setPopulationInfoId(String populationInfoId) {
+ this.populationInfoId = populationInfoId;
+ }
+ }
}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/PersonBaseListBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/PersonBaseListBean.java
index 0384dc7..29039a3 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/PersonBaseListBean.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/PersonBaseListBean.java
@@ -1,5 +1,6 @@
package com.sucstepsoft.realtimelocation.beans.person;
+import java.io.Serializable;
import java.util.List;
public class PersonBaseListBean {
@@ -32,7 +33,7 @@ public class PersonBaseListBean {
this.total = total;
}
- public static class RowsBean {
+ public static class RowsBean implements Serializable {
private String populationInfoId;
private String name;
private String idcard;
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/net/LocationApiService.java b/app/src/main/java/com/sucstepsoft/realtimelocation/net/LocationApiService.java
index c98a396..617ee4f 100755
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/net/LocationApiService.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/net/LocationApiService.java
@@ -825,6 +825,13 @@ public interface LocationApiService {
@POST("app/populationinfo/save")
Observable doSaveCensusRegister(@Body RequestBody body, @Header("token") String token);
+ /**
+ * 未脱敏的人员信息
+ */
+ @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
+ @GET("app/populationinfo/list")
+ Observable> getListByIds(@Query("populationInfoIds") String ids, @Header("token") String token);
+
/**
* 基础信息人员列表-新
@@ -848,6 +855,8 @@ public interface LocationApiService {
@DELETE("app/populationinfo/remove/{ids}")
Observable doDelBaseRegister(@Path("ids") String id, @Header("token") String token);
+
+
/**
* 详情
*/
@@ -1618,7 +1627,14 @@ public interface LocationApiService {
/*==================================TODO=========房屋===========================================*/
/**
- * 保存楼宇信息
+ * 批量建房
+ */
+ @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
+ @POST("app/house/saveAuto")
+ Observable doSaveNewHouseAuto(@Body RequestBody body, @Header("token") String token);
+
+ /**
+ * 保存房屋信息
*/
@Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
@POST("app/house/save")
@@ -1781,6 +1797,13 @@ public interface LocationApiService {
@POST("app/buildinghouse/save")
Observable doSaveHouse(@Body RequestBody body, @Header("token") String token);
+ /**
+ * 批量信息房屋
+ */
+ @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
+ @POST("app/house/saveBatch")
+ Observable doSaveGroupHouse(@Body RequestBody body, @Header("token") String token);
+
/**
* 获取房屋详情
*/
@@ -1816,6 +1839,13 @@ public interface LocationApiService {
@POST("app/buildinghouseuser/save")
Observable doBindPerson(@Body RequestBody body, @Header("token") String token);
+ /**
+ * 认领人员
+ */
+ @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
+ @POST("app/populationlog/save/{populationInfoIds}")
+ Observable doClaimPerson(@Path("populationInfoIds") String ids, @Header("token") String token);
+
/**
* 绑定人员
*/
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/BuildingPopup.java b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/BuildingPopup.java
index 4d64eb8..e73fa83 100644
--- a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/BuildingPopup.java
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/BuildingPopup.java
@@ -45,7 +45,7 @@ public class BuildingPopup extends BasePopupWindow {
if (isCheck) {
if (true) {
for (int i = 0; i < adapter.getData().size(); i++) {
- if (!adapter.getData().get(i).getResidentialId().equals(bean.getResidentialId())) {
+ if (!adapter.getData().get(i).getBuildingId().equals(bean.getBuildingId())) {
adapter.getData().get(i).setCheck(false);
}
}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/CustomLinearLayout.java b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/CustomLinearLayout.java
new file mode 100644
index 0000000..37f1559
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/CustomLinearLayout.java
@@ -0,0 +1,33 @@
+package com.sucstepsoft.realtimelocation.widget;
+
+import android.content.Context;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+
+import com.sucstepsoft.cm_utils.utils.ConvertUtils;
+import com.sucstepsoft.realtimelocation.R;
+
+public class CustomLinearLayout extends LinearLayout {
+ public CustomLinearLayout(Context context) {
+ super(context);
+ initView();
+ }
+
+ private void initView() {
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
+ this.setBackgroundResource(R.color.white);
+ this.setOrientation(VERTICAL);
+ this.setPadding(ConvertUtils.dp2px(20), 0, ConvertUtils.dp2px(20), ConvertUtils.dp2px(10));
+ this.setLayoutParams(params);
+ }
+
+ public CustomLinearLayout(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public CustomLinearLayout(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/InputOriContent.java b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/InputOriContent.java
new file mode 100644
index 0000000..a9c0908
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/InputOriContent.java
@@ -0,0 +1,31 @@
+package com.sucstepsoft.realtimelocation.widget;
+
+import android.content.Context;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+
+import com.sucstepsoft.cm_utils.utils.ConvertUtils;
+import com.sucstepsoft.realtimelocation.R;
+
+public class InputOriContent extends LinearLayout {
+ public InputOriContent(Context context) {
+ super(context);
+ initView(context);
+ }
+
+ private void initView(Context context) {
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
+ this.setBackgroundResource(R.drawable.shp_rectangle_bottom_border);
+ this.setOrientation(HORIZONTAL);
+ this.setPadding(0, ConvertUtils.dp2px(5), 0, ConvertUtils.dp2px(5));
+ }
+
+ public InputOriContent(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public InputOriContent(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/InputView.java b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/InputView.java
new file mode 100644
index 0000000..f0695c2
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/InputView.java
@@ -0,0 +1,29 @@
+package com.sucstepsoft.realtimelocation.widget;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.Gravity;
+import android.widget.LinearLayout;
+
+import com.sucstepsoft.cm_utils.utils.ConvertUtils;
+
+public class InputView extends android.support.v7.widget.AppCompatEditText {
+ public InputView(Context context) {
+ super(context);
+ initView(context);
+ }
+
+ private void initView(Context ctx) {
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f);
+ this.setBackground(null);
+ this.setGravity(Gravity.RIGHT);
+ int padding = ConvertUtils.dp2px(5);
+ this.setPadding(padding, padding, padding, padding);
+ this.setTextSize(14);
+ this.setLayoutParams(params);
+ }
+
+ public InputView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/SecondContent.java b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/SecondContent.java
new file mode 100644
index 0000000..e928cf6
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/SecondContent.java
@@ -0,0 +1,33 @@
+package com.sucstepsoft.realtimelocation.widget;
+
+import android.content.Context;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+
+import com.sucstepsoft.cm_utils.utils.ConvertUtils;
+import com.sucstepsoft.realtimelocation.R;
+
+public class SecondContent extends LinearLayout {
+ public SecondContent(Context context) {
+ super(context);
+ initView();
+ }
+
+ private void initView() {
+ LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
+ this.setBackgroundResource(R.color.white);
+ this.setOrientation(VERTICAL);
+ this.setPadding(ConvertUtils.dp2px(10), ConvertUtils.dp2px(5), 0, ConvertUtils.dp2px(5));
+ this.setLayoutParams(params);
+ }
+
+ public SecondContent(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public SecondContent(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/SimpleTextWatch.java b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/SimpleTextWatch.java
new file mode 100644
index 0000000..b9fd980
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/SimpleTextWatch.java
@@ -0,0 +1,15 @@
+package com.sucstepsoft.realtimelocation.widget;
+
+import android.text.TextWatcher;
+
+public abstract class SimpleTextWatch implements TextWatcher {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+ }
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/TitleContent.java b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/TitleContent.java
new file mode 100644
index 0000000..08d3ba1
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/TitleContent.java
@@ -0,0 +1,29 @@
+package com.sucstepsoft.realtimelocation.widget;
+
+import android.content.Context;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+import android.widget.RelativeLayout;
+
+import com.sucstepsoft.realtimelocation.R;
+
+public class TitleContent extends RelativeLayout {
+ public TitleContent(Context context) {
+ super(context);
+ initView();
+ }
+
+ private void initView() {
+ LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
+ this.setLayoutParams(params);
+ }
+
+ public TitleContent(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public TitleContent(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/TitleTextView.java b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/TitleTextView.java
new file mode 100644
index 0000000..878e1b5
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/TitleTextView.java
@@ -0,0 +1,33 @@
+package com.sucstepsoft.realtimelocation.widget;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.support.annotation.Nullable;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+
+import com.sucstepsoft.cm_utils.utils.ConvertUtils;
+
+public class TitleTextView extends android.support.v7.widget.AppCompatTextView {
+ public TitleTextView(Context context) {
+ super(context);
+ initView(context);
+ }
+
+ private void initView(Context context) {
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+ int padding = ConvertUtils.dp2px(2);
+ this.setPadding(padding, padding, padding, padding);
+ this.setTextColor(Color.BLACK);
+ this.setTextSize(14);
+ this.setLayoutParams(params);
+ }
+
+ public TitleTextView(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public TitleTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+}
diff --git a/app/src/main/res/drawable-xhdpi/ic_add_floor_icon.png b/app/src/main/res/drawable-xhdpi/ic_add_floor_icon.png
new file mode 100644
index 0000000..767da50
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_add_floor_icon.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_add_icon.png b/app/src/main/res/drawable-xhdpi/ic_add_icon.png
new file mode 100644
index 0000000..bcaa5e9
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_add_icon.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_del_icon.png b/app/src/main/res/drawable-xhdpi/ic_del_icon.png
new file mode 100644
index 0000000..c1b2dd8
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_del_icon.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_floor_add_icon.png b/app/src/main/res/drawable-xhdpi/ic_floor_add_icon.png
new file mode 100644
index 0000000..4b5a828
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_floor_add_icon.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_floor_del_icon.png b/app/src/main/res/drawable-xhdpi/ic_floor_del_icon.png
new file mode 100644
index 0000000..8bbc304
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_floor_del_icon.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_house_add_icon.png b/app/src/main/res/drawable-xhdpi/ic_house_add_icon.png
new file mode 100644
index 0000000..5cb8a28
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_house_add_icon.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_house_del_icon.png b/app/src/main/res/drawable-xhdpi/ic_house_del_icon.png
new file mode 100644
index 0000000..0b06923
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_house_del_icon.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_scroll_bar_line.png b/app/src/main/res/drawable-xhdpi/ic_scroll_bar_line.png
new file mode 100644
index 0000000..088991c
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_scroll_bar_line.png differ
diff --git a/app/src/main/res/drawable/sel_radio_white.xml b/app/src/main/res/drawable/sel_radio_white.xml
new file mode 100644
index 0000000..ab92328
--- /dev/null
+++ b/app/src/main/res/drawable/sel_radio_white.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_btn_no_radius_blue.xml b/app/src/main/res/drawable/shape_btn_no_radius_blue.xml
index e051630..27dd0c9 100755
--- a/app/src/main/res/drawable/shape_btn_no_radius_blue.xml
+++ b/app/src/main/res/drawable/shape_btn_no_radius_blue.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shp_scroll_bar.xml b/app/src/main/res/drawable/shp_scroll_bar.xml
new file mode 100644
index 0000000..50092a0
--- /dev/null
+++ b/app/src/main/res/drawable/shp_scroll_bar.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_new_community.xml b/app/src/main/res/layout/activity_add_new_community.xml
index cc3ab27..9acba0e 100644
--- a/app/src/main/res/layout/activity_add_new_community.xml
+++ b/app/src/main/res/layout/activity_add_new_community.xml
@@ -141,7 +141,7 @@
android:drawableLeft="@drawable/ic_item_title_icon_rec"
android:drawablePadding="5dp"
android:padding="8dp"
- android:text="基础信息"
+ android:text="地理信息"
android:textStyle="bold" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_add_new_group_rule_house.xml b/app/src/main/res/layout/activity_add_new_group_rule_house.xml
new file mode 100644
index 0000000..76efe98
--- /dev/null
+++ b/app/src/main/res/layout/activity_add_new_group_rule_house.xml
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_add_new_house.xml b/app/src/main/res/layout/activity_add_new_house.xml
index a026963..6eeb076 100644
--- a/app/src/main/res/layout/activity_add_new_house.xml
+++ b/app/src/main/res/layout/activity_add_new_house.xml
@@ -1,24 +1,24 @@
-
+ android:layout_height="match_parent">
-
-
-
+ android:layout_height="match_parent"
+ android:layout_marginBottom="80dp"
+ android:orientation="vertical"
+ android:overScrollMode="never"
+ android:scrollbars="none">
+
+ android:hint="请输入门牌号" />
@@ -158,7 +157,8 @@
+ android:layout_gravity="center_vertical"
+ android:visibility="gone" />
+ android:layout_gravity="center_vertical"
+ android:visibility="gone" />
+ android:layout_gravity="center_vertical"
+ android:visibility="gone" />
+ android:layout_gravity="center_vertical"
+ android:visibility="gone" />
+ android:layout_gravity="center_vertical"
+ android:visibility="gone" />
+ android:layout_gravity="center_vertical"
+ android:visibility="gone" />
+ android:layout_gravity="center_vertical"
+ android:visibility="gone" />
+ android:layout_gravity="center_vertical"
+ android:visibility="gone" />
-
-
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_census_claim_list.xml b/app/src/main/res/layout/activity_census_claim_list.xml
new file mode 100644
index 0000000..c6d1c94
--- /dev/null
+++ b/app/src/main/res/layout/activity_census_claim_list.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_detail_new_building.xml b/app/src/main/res/layout/activity_detail_new_building.xml
index a067b00..663f27d 100644
--- a/app/src/main/res/layout/activity_detail_new_building.xml
+++ b/app/src/main/res/layout/activity_detail_new_building.xml
@@ -178,7 +178,6 @@
style="@style/item_title_wrap"
android:layout_width="match_parent"
android:layout_gravity="center_vertical"
- android:drawableRight="@drawable/ic_arrow_sort_gray"
android:text="地图位置" />
diff --git a/app/src/main/res/layout/activity_house_live_person_bind.xml b/app/src/main/res/layout/activity_house_live_person_bind.xml
index d1e8acb..2e776a2 100644
--- a/app/src/main/res/layout/activity_house_live_person_bind.xml
+++ b/app/src/main/res/layout/activity_house_live_person_bind.xml
@@ -26,6 +26,36 @@
android:textStyle="bold" />
+
+
+
+
+
+
+
+
+
+
+
@@ -67,7 +98,8 @@
+ android:enabled="false"
+ android:hint="请选择证件号码" />
@@ -87,7 +119,8 @@
+ android:enabled="false"
+ android:hint="请选择联系方式" />
diff --git a/app/src/main/res/layout/activity_house_live_person_bind_edit.xml b/app/src/main/res/layout/activity_house_live_person_bind_edit.xml
index 5749b25..1367627 100644
--- a/app/src/main/res/layout/activity_house_live_person_bind_edit.xml
+++ b/app/src/main/res/layout/activity_house_live_person_bind_edit.xml
@@ -42,6 +42,7 @@
android:id="@+id/et_name"
style="@style/item_content"
android:layout_gravity="center_vertical"
+ android:enabled="false"
android:hint="请输入姓名"
android:inputType="textMultiLine" />
@@ -61,6 +62,7 @@
@@ -81,6 +83,7 @@
@@ -97,11 +100,16 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
- android:layout_margin="15dp"
+ android:layout_marginStart="15dp"
+ android:layout_marginLeft="15dp"
+ android:layout_marginTop="15dp"
+ android:layout_marginEnd="15dp"
+ android:layout_marginRight="15dp"
+ android:layout_marginBottom="15dp"
android:background="@drawable/sel_btn_submit"
android:minHeight="0dp"
android:padding="10dp"
- android:text="保 存"
+ android:text="人员离开"
android:textColor="@color/white"
android:textSize="17sp" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_floor_input.xml b/app/src/main/res/layout/item_floor_input.xml
new file mode 100644
index 0000000..c484593
--- /dev/null
+++ b/app/src/main/res/layout/item_floor_input.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_floor_item.xml b/app/src/main/res/layout/item_floor_item.xml
new file mode 100644
index 0000000..1f60c7b
--- /dev/null
+++ b/app/src/main/res/layout/item_floor_item.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_person_bind_live_house.xml b/app/src/main/res/layout/item_person_bind_live_house.xml
index 6647bb2..9e52666 100644
--- a/app/src/main/res/layout/item_person_bind_live_house.xml
+++ b/app/src/main/res/layout/item_person_bind_live_house.xml
@@ -81,5 +81,10 @@
android:textSize="12dp"
tools:text="中国内蒙古自治区包头市九原区X067中国内蒙古自治区包头市九原区X067中国内蒙古自治区包头市九原区X067中国内蒙古自治区包头市九原区X067中国内蒙古自治区包头市九原区X067中国内蒙古自治区包头市九原区X067(包哈公里)" />
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_person_claim.xml b/app/src/main/res/layout/item_person_claim.xml
new file mode 100644
index 0000000..9481e72
--- /dev/null
+++ b/app/src/main/res/layout/item_person_claim.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_person_tag.xml b/app/src/main/res/layout/item_person_tag.xml
index 5077e10..dda8917 100755
--- a/app/src/main/res/layout/item_person_tag.xml
+++ b/app/src/main/res/layout/item_person_tag.xml
@@ -1,7 +1,7 @@
@@ -10,12 +10,15 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
- android:background="@drawable/sel_service_type"
android:button="@null"
- android:paddingLeft="4dp"
+ android:drawableRight="@drawable/sel_radio_white"
+ android:gravity="center"
+ android:paddingLeft="5dp"
android:paddingTop="2dp"
- android:paddingRight="4dp"
+ android:paddingRight="5dp"
android:paddingBottom="2dp"
- android:textSize="14sp"
+ android:textColor="@color/white"
+ android:textSize="14dp"
+ tools:background="@drawable/shp_status_tag"
tools:text="帮扶老人" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_person_tenement.xml b/app/src/main/res/layout/item_person_tenement.xml
index ec23b40..5ab5faa 100644
--- a/app/src/main/res/layout/item_person_tenement.xml
+++ b/app/src/main/res/layout/item_person_tenement.xml
@@ -58,21 +58,47 @@
android:textSize="12sp"
tools:text="联系电话" />
-
+ android:orientation="horizontal">
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_room_input.xml b/app/src/main/res/layout/item_room_input.xml
new file mode 100644
index 0000000..4493331
--- /dev/null
+++ b/app/src/main/res/layout/item_room_input.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_room_item.xml b/app/src/main/res/layout/item_room_item.xml
new file mode 100644
index 0000000..05bb301
--- /dev/null
+++ b/app/src/main/res/layout/item_room_item.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_unit_item.xml b/app/src/main/res/layout/item_unit_item.xml
new file mode 100644
index 0000000..0175e9d
--- /dev/null
+++ b/app/src/main/res/layout/item_unit_item.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/popup_condition_layout.xml b/app/src/main/res/layout/popup_condition_layout.xml
index 1c2aeb6..a60b3e2 100644
--- a/app/src/main/res/layout/popup_condition_layout.xml
+++ b/app/src/main/res/layout/popup_condition_layout.xml
@@ -9,5 +9,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shp_rectangle_white_nora"
- android:padding="5dp" />
+ android:padding="5dp"
+ android:scrollbarStyle="insideOverlay"
+ android:scrollbarThumbVertical="@drawable/shp_scroll_bar"
+ android:fadeScrollbars="false"
+ android:scrollbarFadeDuration="0"
+ android:scrollbars="vertical" />
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 0f6f463..b0930dd 100755
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -241,4 +241,14 @@
- @color/white
- 17sp
+
+
diff --git a/build.gradle b/build.gradle
index b8d3b35..6af227e 100755
--- a/build.gradle
+++ b/build.gradle
@@ -61,8 +61,8 @@ ext {
gTargetSdkVersion = 28
// gVersionCode = 3
// gVersionName = '1.0.3'
- gVersionCode=49
- gVersionName='1.4.9'
+ gVersionCode=50
+ gVersionName='1.5.0'
//Router编译版本
gRouterApiVersion = '1.4.1'
gRouterCompileVersion = '1.2.2'
diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java
index 345a4f9..6384dc6 100755
--- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java
+++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/BaseUrlApi.java
@@ -9,8 +9,8 @@ import com.sucstepsoft.cm_utils.constant.PathConfig;
*/
public class BaseUrlApi {
-// public static final String IP = "http://219.147.99.164:8082/usercenter/"; /*正式统一用户*/
- public static final String IP = "http://192.168.0.15:7021/usercenter/"; /*测试统一用户*/
+ public static final String IP = "http://219.147.99.164:8082/usercenter/"; /*正式统一用户*/
+// public static final String IP = "http://192.168.0.15:7021/usercenter/"; /*测试统一用户*/
// public static final String IP = "http://175.24.42.217:7000/usercenter/"; /*测试统一用户*/
public static final String BASE_URL = IP;
public static final String APP_VERSION = BASE_URL + "appCmVersionManagement/getAppVersion";
@@ -18,13 +18,13 @@ public class BaseUrlApi {
public static final String FIELD_SAFETY = BASE_URL + "appFieldSafety/goFloorPlan";
public static final int PHOTO_REQUEST = 233;
public static final int CAMERA_REQUEST = 123;
- public static final String BASE_IP_P = "http://219.147.99.164:8082/"; /*正式IP*/
+ public static final String BASE_IP_P = "http://219.147.99.164:8082/"; /*正式IP*/
// public static final String BASE_IP_P = "http://175.24.42.217"; /*演示IP*/
// public static final String BASE_IP_P = "http://192.168.0.15:7022/"; /*测试IP*/
public static final String BASE_IP = BASE_IP_P + "servicecity/";/*网格系统*/
// public static final String BASE_IP = "http://192.168.0.109:8083/servicecity/";/*测试网格系统*/
-// public static final String BASE_POPULATION_IP = BASE_IP_P + "population/";/*人口系统*/
- public static final String BASE_POPULATION_IP = "http://192.168.0.115:7023/population/";/*人口系统 测试*/
+ public static final String BASE_POPULATION_IP = BASE_IP_P + "population/";/*人口系统*/
+// public static final String BASE_POPULATION_IP = "http://192.168.0.9:7023/population/";/*人口系统 测试*/
// public static final String BASE_POPULATION_IP = "http://192.168.0.15:7023/population/";/*人口系统*/
public static final String BASE_IMG_URL = BASE_IP + "route/file/downloadfile/true/";
public static final String SOCKET_IP = BASE_IP_P + "social/appws";/*SocketIP*/
diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CenterFuncDialogView.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CenterFuncDialogView.java
index c0b8005..3b88921 100755
--- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CenterFuncDialogView.java
+++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CenterFuncDialogView.java
@@ -50,11 +50,11 @@ public class CenterFuncDialogView extends Dialog {
setContentView(view);
setCancelable(iscancelable);
setCanceledOnTouchOutside(isBackCancelable);
- view.findViewById(R.id.ll_base).setOnClickListener(v -> choseType(1));
- view.findViewById(R.id.ll_outbound).setOnClickListener(v -> choseType(2));
- view.findViewById(R.id.ll_hire).setOnClickListener(v -> choseType(3));
- view.findViewById(R.id.ll_build).setOnClickListener(v -> choseType(4));
- view.findViewById(R.id.ll_person).setOnClickListener(v -> choseType(5));
+ view.findViewById(R.id.ll_base).setOnClickListener(v -> choseType(1));//人口信息
+ view.findViewById(R.id.ll_outbound).setOnClickListener(v -> choseType(2));//人口认领
+ view.findViewById(R.id.ll_house_add_rule).setOnClickListener(v -> choseType(3));//规则房屋
+ view.findViewById(R.id.ll_build).setOnClickListener(v -> choseType(4));//房屋管理
+ view.findViewById(R.id.ll_house_add_n_rule).setOnClickListener(v -> choseType(5));//不规则房屋
view.findViewById(R.id.ll_house).setOnClickListener(v -> choseType(6));
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
Window window = this.getWindow();
diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/DesensitizationUtil.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/DesensitizationUtil.java
new file mode 100644
index 0000000..7845ba1
--- /dev/null
+++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/DesensitizationUtil.java
@@ -0,0 +1,197 @@
+package com.sucstepsoft.cm_utils.utils;
+
+import android.text.TextUtils;
+
+public class DesensitizationUtil {
+ /**
+ * [中文姓名] 如果长度为2,后一位隐藏为星号<例子:李*>,如果长度>2,中间隐藏为星号<例子:李*星>
+ *
+ * @param fullName 姓名
+ * @return
+ */
+ public static String chineseName(String fullName) {
+ if (TextUtils.isEmpty(fullName)) {
+ return "";
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append(fullName.subSequence(0, 1));
+ for (int i = 0; i < fullName.length() - 2; i++) {
+ sb.append("*");
+ }
+ if (fullName.length() > 2) {
+ sb.append(fullName.substring(fullName.length() - 1));
+ } else {
+ sb.append("*");
+ }
+ return sb.toString();
+ }
+
+ /**
+ * [身份证号] 显示最后四位,其他隐藏。共计18位或者15位。<例子:*************5762>
+ *
+ * @param id
+ * @return
+ */
+ public static String idCardNum(String id) {
+ if (TextUtils.isEmpty(id)) {
+ return "";
+ }
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < id.length() - 4; i++) {
+ sb.append("*");
+ }
+ sb.append(id.substring(id.length() - 4));
+ return sb.toString();
+ }
+
+ /**
+ * 出生日期 2022-22-22
+ * @param date
+ * @return
+ */
+ public static String birthDate(String date) {
+ if (TextUtils.isEmpty(date)) {
+ return "";
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append(date.subSequence(0, 2));
+ for (int i = 0; i < date.length() - 2; i++) {
+ sb.append("*");
+ }
+ sb.append(date.substring(date.length() - 1));
+ return sb.toString();
+ }
+
+ /**
+ * [身份证号] 前六位,后四位,其他用星号隐藏每位1个星号<例子:451002********1647>
+ *
+ * @param cardId
+ * @return
+ */
+ public static String idCard(String cardId) {
+ if (TextUtils.isEmpty(cardId)) {
+ return "";
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append(cardId.subSequence(0, 6));
+ for (int i = 0; i < cardId.length() - 10; i++) {
+ sb.append("*");
+ }
+ sb.append(cardId.substring(cardId.length() - 4));
+ return sb.toString();
+ }
+
+ /**
+ * [固定电话] 后四位,其他隐藏<例子:****1234>
+ *
+ * @param num
+ * @return
+ */
+ public static String fixedPhone(String num) {
+ if (TextUtils.isEmpty(num)) {
+ return "";
+ }
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < num.length() - 4; i++) {
+ sb.append("*");
+ }
+ sb.append(num.substring(num.length() - 4));
+ return sb.toString();
+ }
+
+ /**
+ * [手机号码] 前三位,后两位,其他隐藏<例子:138********34>
+ *
+ * @param num
+ * @return
+ */
+ public static String mobilePhone(String num) {
+ if (TextUtils.isEmpty(num)) {
+ return "";
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append(num.subSequence(0, 3));
+ for (int i = 0; i < num.length() - 5; i++) {
+ sb.append("*");
+ }
+ sb.append(num.substring(num.length() - 2));
+ return sb.toString();
+ }
+
+ /**
+ * [地址] 只显示到地区,不显示详细地址;我们要对个人信息增强保护<例子:北京市海淀区****>
+ *
+ * @param address
+ * @param sensitiveSize 敏感信息长度
+ * @return
+ */
+ public static String address(String address, int sensitiveSize) {
+ if (TextUtils.isEmpty(address)) {
+ return "";
+ }
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < address.length() - sensitiveSize; i++) {
+ sb.append("*");
+ }
+ sb.append(address.substring(address.length() - sensitiveSize));
+ return sb.toString();
+ }
+
+ /**
+ * [电子邮箱] 邮箱前缀仅显示第一个字母,前缀其他隐藏,用星号代替,@及后面的地址显示<例子:g**@163.com>
+ *
+ * @param email
+ * @return
+ */
+ public static String email(String email) {
+ if (TextUtils.isEmpty(email)) {
+ return "";
+ }
+ int index = email.indexOf("@");
+ String end = email.substring(index);
+ StringBuilder sb = new StringBuilder();
+ sb.append(email.subSequence(0, 1));
+ for (int i = 0; i < email.length() - end.length() - 1; i++) {
+ sb.append("*");
+ }
+ sb.append(end);
+ return sb.toString();
+ }
+
+ /**
+ * [银行卡号] 前六位,后四位,其他用星号隐藏每位1个星号<例子:6222600**********1234>
+ *
+ * @param cardNum
+ * @return
+ */
+ public static String bankCard(String cardNum) {
+ if (TextUtils.isEmpty(cardNum)) {
+ return "";
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append(cardNum.subSequence(0, 6));
+ for (int i = 0; i < cardNum.length() - 10; i++) {
+ sb.append("*");
+ }
+ sb.append(cardNum.substring(cardNum.length() - 4));
+ return sb.toString();
+ }
+
+ /**
+ * [公司开户银行联号] 公司开户银行联行号,显示前两位,其他用星号隐藏,每位1个星号<例子:12********>
+ *
+ * @param code
+ * @return
+ */
+ public static String cnapsCode(String code) {
+ if (TextUtils.isEmpty(code)) {
+ return "";
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append(code.subSequence(0, 2));
+ for (int i = 0; i < code.length() - 2; i++) {
+ sb.append("*");
+ }
+ return sb.toString();
+ }
+}
diff --git a/cm_utils/src/main/res/drawable-xhdpi/ic_radio_circle_normal.png b/cm_utils/src/main/res/drawable-xhdpi/ic_radio_circle_normal.png
new file mode 100644
index 0000000..2539e01
Binary files /dev/null and b/cm_utils/src/main/res/drawable-xhdpi/ic_radio_circle_normal.png differ
diff --git a/cm_utils/src/main/res/drawable-xhdpi/ic_radio_circle_sel.png b/cm_utils/src/main/res/drawable-xhdpi/ic_radio_circle_sel.png
new file mode 100644
index 0000000..d375ea3
Binary files /dev/null and b/cm_utils/src/main/res/drawable-xhdpi/ic_radio_circle_sel.png differ
diff --git a/cm_utils/src/main/res/drawable/shp_status_tag.xml b/cm_utils/src/main/res/drawable/shp_status_tag.xml
new file mode 100755
index 0000000..85e9a98
--- /dev/null
+++ b/cm_utils/src/main/res/drawable/shp_status_tag.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cm_utils/src/main/res/layout/dialog_choose_func.xml b/cm_utils/src/main/res/layout/dialog_choose_func.xml
index c3a2e2d..18b4996 100755
--- a/cm_utils/src/main/res/layout/dialog_choose_func.xml
+++ b/cm_utils/src/main/res/layout/dialog_choose_func.xml
@@ -37,6 +37,7 @@
android:textSize="12sp" />
+
+ android:padding="10dp"
+ android:visibility="visible">
+ android:src="@drawable/ic_census" />
@@ -96,9 +98,9 @@
+ android:orientation="horizontal"
+ android:visibility="gone">
@@ -189,7 +191,7 @@
+ android:padding="10dp">
+ android:src="@drawable/ic_build" />