diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a8437e8..be886e1 100755
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -273,6 +273,18 @@
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden"
tools:ignore="LockedOrientationActivity" />
+
+
+
+
mDatas;
+ private NewSearchHouseAdapter mAdapter;
+
+ private int mCurPage = 1;
+
+ private String mKeywords;
+
+
+ @Override
+ protected int setLayoutId() {
+ return R.layout.activity_new_search_house_by_person;
+ }
+
+
+ @Override
+ public void initData() {
+ mBind = ButterKnife.bind(this);
+ refreshView(STATE_LOAD_SUCCESS);
+ mTvBaseTitle.setText("以人找房");
+ buildData();
+ setStateView(12);
+ }
+
+ private void buildData() {
+ mBtnSearch.setOnClickListener(v -> doSearch());
+ mIvClear.setOnClickListener(v -> {
+ mKeywords = "";
+ mEtSearchContent.setText("");
+ mDatas.clear();
+ mAdapter.notifyDataSetChanged();
+ setStateView(12);
+ });
+ mDatas = new ArrayList<>();
+ mAdapter = new NewSearchHouseAdapter(mActivity, mDatas, 1);
+ LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity);
+ layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
+ mXlvItems.setLoadingMoreEnabled(true);
+ mXlvItems.setPullRefreshEnabled(true);
+ mXlvItems.setLayoutManager(layoutManager);
+ mXlvItems.setAdapter(mAdapter);
+ mAdapter.addOnItemClickListener(this::showDetail);
+ mXlvItems.setRefreshProgressStyle(ProgressStyle.BallGridBeat);
+ mXlvItems.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
+ mXlvItems.setLoadingListener(new XRecyclerView.LoadingListener() {
+ @Override
+ public void onRefresh() {
+ refreshData();
+ }
+
+ @Override
+ public void onLoadMore() {
+ loadMore();
+ }
+ });
+ mEtSearchContent.setOnEditorActionListener((v, actionId, event) -> {
+ if (actionId == EditorInfo.IME_ACTION_SEARCH) {
+ hideSoftKeyboard();
+ setStateView(13);
+ mKeywords = v.getText().toString().trim();
+ mCurPage = 1;
+ doSearchHouseByPerson(mCurPage);
+ return true;
+ } else {
+ return false;
+ }
+ });
+ }
+
+ /**
+ * 房屋详情
+ *
+ * @param rowsBean
+ */
+ private void showDetail(HousePersonBean.RowsBean rowsBean) {
+ Intent intent = new Intent();
+ intent.putExtra("id", rowsBean.getHouseDTO().getHouseId());
+ intent.setClass(mActivity, NewHouseDetailActivity.class);
+ startActivityForResult(intent, 1234);
+ }
+
+ // 加载更多
+ private void loadMore() {
+ doSearchHouseByPerson(mCurPage);
+ }
+
+ /**
+ * 刷新数据
+ */
+ private void refreshData() {
+ mCurPage = 1;
+ doSearchHouseByPerson(mCurPage);
+ }
+
+ /**
+ *
+ */
+ private void doSearch() {
+
+ String searchContent = mEtSearchContent.getText().toString().trim();
+ if (!TextUtils.isEmpty(searchContent)) {
+ startSearch(searchContent);
+ //判断是手机号还是身份证号码
+// if (isHasChinese(searchContent)) {
+// LogUtils.e("包含中文");
+// startSearch(searchContent);
+// } else {
+// if (searchContent.length() == 11) {
+// LogUtils.e("手机号");
+// startSearch(searchContent);
+// } else {
+// LogUtils.e("身份证号码");
+// //判断身份证号码是否正确
+// if (!RegexUtils.isIDNumber(searchContent)) {
+// ToastUtils.showShort("请输入正确的身份证号码");
+// } else {
+// startSearch(searchContent);
+// }
+// }
+// }
+ } else {
+ ToastUtils.showShort("请输入查询内容");
+ }
+ }
+
+ private void startSearch(String searchContent) {
+ hideSoftKeyboard();
+ setStateView(13);
+ mKeywords = searchContent;
+ mCurPage = 1;
+ doSearchHouseByPerson(mCurPage);
+ }
+
+ private boolean isHasChinese(String conetnt) {
+ String regEx = "[\u4e00-\u9fa5]";
+ Pattern compile = Pattern.compile(regEx);
+ Matcher matcher = compile.matcher(conetnt);
+ while (matcher.find()) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * 进行搜索
+ */
+ private void doSearchHouseByPerson(int page) {
+ mCurPage = page;
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .doSearchHouseByPersonV3(mKeywords, page + "", UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(HousePersonBean leaveListBean) {
+ if (leaveListBean != null && leaveListBean.getRows().size() > 0) {
+ ++mCurPage;
+ if (page == 1) {
+ mDatas.clear();
+ mDatas.addAll(leaveListBean.getRows());
+ } else {
+ mDatas.addAll(leaveListBean.getRows());
+ }
+ setStateView(14);
+ 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);
+ setStateView(14);
+ } else {
+ if (TextUtils.isEmpty(mKeywords)) {
+ //无数据
+ setStateView(15);
+ } else {
+ setStateView(15);
+ ToastUtils.showShort("未查询到相关内容");
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ setStateView(16);
+ mXlvItems.refreshComplete();
+ mXlvItems.loadMoreComplete();
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+
+ /**
+ * 根据状态显示
+ * 12 默认
+ * 13 搜索中
+ * 14 搜索完成有数据
+ * 15 搜索完成没有数据
+ * 16 搜索失败
+ *
+ * @param state
+ */
+ private void setStateView(int state) {
+ switch (state) {
+ case 12://默认
+ mXlvItems.setVisibility(View.GONE);
+ mCsvState.setState(CustomStateView.STATE_SEARCH);
+ break;
+ case 13://搜索中
+ mXlvItems.setVisibility(View.GONE);
+ mCsvState.setState(CustomStateView.STATE_LOAD);
+ break;
+ case 14://搜索完成有数据
+ mXlvItems.setVisibility(View.VISIBLE);
+ mCsvState.setState(CustomStateView.STATE_SUCCESS);
+ break;
+ case 15://搜索完成没有数据
+ mXlvItems.setVisibility(View.GONE);
+ mCsvState.setState(CustomStateView.STATE_EMPTY);
+ break;
+ case 16://搜索失败
+ mXlvItems.setVisibility(View.GONE);
+ mCsvState.setState(CustomStateView.STATE_ERROR);
+ break;
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/house/NewSearchPersonByHouseActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/house/NewSearchPersonByHouseActivity.java
new file mode 100644
index 0000000..224d799
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/house/NewSearchPersonByHouseActivity.java
@@ -0,0 +1,750 @@
+package com.sucstepsoft.realtimelocation.activitys.census.house;
+
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.graphics.Color;
+import android.support.v7.widget.LinearLayoutManager;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.Switch;
+import android.widget.TextView;
+
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.view.OptionsPickerView;
+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.activitys.census.newhouse.activitys.NewHouseDetailActivity;
+import com.sucstepsoft.realtimelocation.adapters.NewSearchHousePersonAdapter;
+import com.sucstepsoft.realtimelocation.beans.CommunityBean;
+import com.sucstepsoft.realtimelocation.beans.DicBean;
+import com.sucstepsoft.realtimelocation.beans.HousePersonBean;
+import com.sucstepsoft.realtimelocation.beans.NewBuildingBean;
+import com.sucstepsoft.realtimelocation.beans.NewCommunityDetailBean;
+import com.sucstepsoft.realtimelocation.beans.StreetBean;
+import com.sucstepsoft.realtimelocation.net.LocationApiService;
+import com.sucstepsoft.realtimelocation.utils.ExceptionHandler;
+import com.sucstepsoft.realtimelocation.widget.ExpandableLinearLayout;
+
+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.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
+
+/**
+ * 以房找人
+ */
+public class NewSearchPersonByHouseActivity 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)
+ TextView mTvBuilding;
+ @BindView(R.id.tv_unit)
+ TextView mTvUnit;
+ @BindView(R.id.tv_floor)
+ TextView mTvFloor;
+ @BindView(R.id.et_room)
+ EditText mEtRoom;
+ @BindView(R.id.sw_is_hire)
+ Switch mSwIsHire;
+ @BindView(R.id.sw_is_empty)
+ Switch mSwIsEmpty;
+ @BindView(R.id.btn_confirm)
+ Button mBtnConfirm;
+ @BindView(R.id.elv_content)
+ ExpandableLinearLayout mElvContent;
+ @BindView(R.id.ll_content)
+ LinearLayout mLlContent;
+ @BindView(R.id.rlv_items)
+ XRecyclerView mRlvItems;
+ @BindView(R.id.csv_state)
+ CustomStateView mCsvState;
+ @BindView(R.id.btn_reset)
+ Button mBtnReset;
+ private Unbinder mBind;
+
+ private List mDatas;
+ private NewSearchHousePersonAdapter mAdapter;
+ private int mCurPage = 1;
+
+ 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;
+ private List mUnitList;
+ private List mFloorList;
+ private DicBean mSelUnit;
+ private DicBean mSelFloor;
+ private OptionsPickerView mUnitPicker;
+ private OptionsPickerView mFloorPicker;
+
+ @Override
+ protected int setLayoutId() {
+ return R.layout.activity_new_search_person_by_house;
+ }
+
+
+ @Override
+ public void initData() {
+ mBind = ButterKnife.bind(this);
+ refreshView(STATE_LOAD_SUCCESS);
+ mTvBaseTitle.setText("以房找人");
+ buildData();
+ setStateView(12);
+ }
+
+ private void buildData() {
+ mTvStreet.setOnClickListener(v -> onShowArea4());//街道
+ mTvCommunity.setOnClickListener(v -> onShowArea5());//社区
+ mTvCommunityArea.setOnClickListener(v -> onShowCommunity());//小区
+ mTvBuilding.setOnClickListener(v -> onShowBuildNum());//楼排
+ mTvUnit.setOnClickListener(v -> onShowUnit());//单元/列
+ mTvFloor.setOnClickListener(v -> onShowFloor());//层
+ mCsvState.setState(CustomStateView.STATE_SEARCH);
+ mBtnConfirm.setOnClickListener(v -> doSearch());
+ mDatas = new ArrayList<>();
+ mAdapter = new NewSearchHousePersonAdapter(mActivity, mDatas, 2);
+ LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity);
+ layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
+ mRlvItems.setLoadingMoreEnabled(true);
+ mRlvItems.setPullRefreshEnabled(true);
+ mRlvItems.setLayoutManager(layoutManager);
+ mRlvItems.setAdapter(mAdapter);
+ mAdapter.addOnItemClickListener(this::showDetail);
+ mRlvItems.setRefreshProgressStyle(ProgressStyle.BallGridBeat);
+ mRlvItems.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
+ mRlvItems.setLoadingListener(new XRecyclerView.LoadingListener() {
+ @Override
+ public void onRefresh() {
+ refreshData();
+ }
+
+ @Override
+ public void onLoadMore() {
+ loadMore();
+ }
+ });
+ mBtnReset.setOnClickListener(v -> resetSearchOptions());
+ }
+
+ /**
+ * 显示楼排选择
+ */
+ 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());
+ mSelUnit = null;
+ mUnitList = null;
+ mTvUnit.setText("");
+
+ mSelFloor = null;
+ mFloorList = null;
+ mTvFloor.setText("");
+ //构建单元 层数
+ buildBuildingData(mSelBuilding);
+ })
+ .setTitleText("楼/排")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mBuildingPicker.setPicker(mBuildingList);
+ mBuildingPicker.show();
+ }
+ }
+ }
+
+ private void onShowUnit() {
+ if (mUnitList == null) {
+ ToastUtils.showShort("所选楼/排未录入单元数量");
+ } else {
+ mUnitPicker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
+ mSelUnit = mUnitList.get(options1);
+ mTvUnit.setText(mSelUnit.getDictionaryName());
+ })
+ .setTitleText("楼/排")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mUnitPicker.setPicker(mUnitList);
+ mUnitPicker.show();
+ }
+ }
+
+ private void onShowFloor() {
+ if (mFloorList == null) {
+ ToastUtils.showShort("所选楼/排未录入层院数量");
+ } else {
+ mFloorPicker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> {
+ mSelFloor = mFloorList.get(options1);
+ mTvFloor.setText(mSelFloor.getDictionaryName());
+ })
+ .setTitleText("层/院")
+ .isDialog(false)
+ .setCancelColor(Color.parseColor("#1189FF"))
+ .setSubmitColor(Color.parseColor("#1189FF"))
+ .setTitleColor(Color.parseColor("#1189FF"))
+ .build();
+ mFloorPicker.setPicker(mFloorList);
+ mFloorPicker.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() {
+
+ }
+ });
+ }
+
+ /**
+ * 构建单元 层
+ *
+ * @param selBuilding
+ */
+ private void buildBuildingData(NewBuildingBean.RowsBean selBuilding) {
+ String unitNum = selBuilding.getUnitNum();
+ String floorNum = selBuilding.getFloorsNum();
+ if (!TextUtils.isEmpty(unitNum)) {
+ mUnitList = new ArrayList<>();
+ try {
+ int unitInt = Integer.parseInt(unitNum);
+ for (int i = 0; i < unitInt; i++) {
+ DicBean b = new DicBean();
+ b.setDictionaryName(i + 1 + "");
+ mUnitList.add(b);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ if (!TextUtils.isEmpty(floorNum)) {
+ try {
+ mFloorList = new ArrayList<>();
+ int floorInt = Integer.parseInt(floorNum);
+ for (int i = 0; i < floorInt; i++) {
+ DicBean b = new DicBean();
+ b.setDictionaryName(i + 1 + "");
+ mFloorList.add(b);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private void resetSearchOptions() {
+ mArea4List = null;
+ mTvStreet.setText("");
+ mSelArea4 = null;
+ mSelArea5 = null;
+ mTvCommunity.setText("");
+ mArea5List = null;
+ mSelCommunity = null;
+ mCommunityList = null;
+ mTvCommunityArea.setText("");
+ mSelBuilding = null;
+ mBuildingList = null;
+ mTvBuilding.setText("");
+ mSelUnit = null;
+ mTvUnit.setText("");
+ mSelFloor = null;
+ mTvFloor.setText("");
+ mEtRoom.setText("");
+ mSwIsHire.setChecked(false);
+ mSwIsEmpty.setChecked(false);
+ doSearch();
+ }
+
+ /**
+ * 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("");
+
+ mSelUnit = null;
+ mTvUnit.setText("");
+
+ mSelFloor = null;
+ mTvFloor.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("");
+
+ mSelUnit = null;
+ mTvUnit.setText("");
+
+ mSelFloor = null;
+ mTvFloor.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)
+ .getCommunityDicList(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("");
+
+ mSelUnit = null;
+ mTvUnit.setText("");
+
+ mSelFloor = null;
+ mTvFloor.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() {
+
+ }
+ });
+ }
+
+
+ /**
+ * 房屋详情
+ *
+ * @param rowsBean
+ */
+ private void showDetail(HousePersonBean.RowsBean rowsBean) {
+ Intent intent = new Intent();
+ intent.putExtra("id", rowsBean.getHouseDTO().getHouseId());
+ intent.setClass(mActivity, NewHouseDetailActivity.class);
+ startActivityForResult(intent, 1234);
+ }
+
+ // 加载更多
+ private void loadMore() {
+ doSearchPersonByHouse(mCurPage);
+ }
+
+ /**
+ * 刷新数据
+ */
+ private void refreshData() {
+ mCurPage = 1;
+ doSearchPersonByHouse(mCurPage);
+ }
+
+ /**
+ *
+ */
+ private void doSearch() {
+ mDatas.clear();
+ mAdapter.setData(mDatas);
+ mCsvState.setState(CustomStateView.STATE_LOAD);
+ mCurPage = 1;
+ doSearchPersonByHouse(mCurPage);
+ boolean isExpand = mElvContent.getIsExpand();
+ if (isExpand) {
+ mElvContent.toggle();
+ }
+ }
+
+
+ /**
+ * 进行搜索
+ */
+ private void doSearchPersonByHouse(int page) {
+ mCurPage = page;
+ String streetID = mSelArea4 == null ? "" : mSelArea4.getId();
+ String communityID = mSelArea5 == null ? "" : mSelArea5.getCommunityId();
+ String communityAreaId = mSelCommunity == null ? "" : mSelCommunity.getResidentialId();
+ String buildingId = mSelBuilding == null ? "" : mSelBuilding.getBuildingId();
+ String unitId = mSelUnit == null ? "" : mSelUnit.getDictionaryName();
+ String floorId = mSelFloor == null ? "" : mSelFloor.getDictionaryName();
+ String roomNum = mEtRoom.getText().toString().trim();
+ String isHire = mSwIsHire.isChecked() ? "1" : "0";
+ String isEmpty = mSwIsHire.isChecked() ? "1" : "0";
+ RetrofitManager.getInstance()
+ .create(LocationApiService.class)
+ .doSearchPersonByHouseV3("" + page,
+ streetID,
+ communityID,
+ communityAreaId,
+ buildingId,
+ unitId,
+ floorId,
+ roomNum,
+ isHire,
+ isEmpty,
+ UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(HousePersonBean leaveListBean) {
+ if (leaveListBean != null && leaveListBean.getRows().size() > 0) {
+ ++mCurPage;
+ if (page == 1) {
+ mDatas.clear();
+ mDatas.addAll(leaveListBean.getRows());
+ } else {
+ mDatas.addAll(leaveListBean.getRows());
+ }
+ setStateView(14);
+ mAdapter.notifyDataSetChanged();
+ mRlvItems.refreshComplete();
+ if (mDatas.size() >= leaveListBean.getTotal()) {
+ mRlvItems.loadMoreComplete();
+ mRlvItems.setNoMore(true);
+ } else {
+ mRlvItems.loadMoreComplete();
+ mRlvItems.setNoMore(false);
+ }
+ } else {
+ if (page > 1) {
+ mRlvItems.loadMoreComplete();
+ mRlvItems.setNoMore(true);
+ setStateView(14);
+ } else {
+ setStateView(15);
+ }
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ setStateView(16);
+ mRlvItems.refreshComplete();
+ mRlvItems.loadMoreComplete();
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ /**
+ * 根据状态显示
+ * 12 默认
+ * 13 搜索中
+ * 14 搜索完成有数据
+ * 15 搜索完成没有数据
+ * 16 搜索失败
+ *
+ * @param state
+ */
+ private void setStateView(int state) {
+ switch (state) {
+ case 12://默认
+ mRlvItems.setVisibility(View.GONE);
+ mCsvState.setState(CustomStateView.STATE_SEARCH);
+ break;
+ case 13://搜索中
+ mRlvItems.setVisibility(View.GONE);
+ mCsvState.setState(CustomStateView.STATE_LOAD);
+ break;
+ case 14://搜索完成有数据
+ mRlvItems.setVisibility(View.VISIBLE);
+ mCsvState.setState(CustomStateView.STATE_SUCCESS);
+ break;
+ case 15://搜索完成没有数据
+ mRlvItems.setVisibility(View.GONE);
+ mCsvState.setState(CustomStateView.STATE_EMPTY);
+ break;
+ case 16://搜索失败
+ mRlvItems.setVisibility(View.GONE);
+ mCsvState.setState(CustomStateView.STATE_ERROR);
+ break;
+ }
+ }
+
+}
\ No newline at end of file
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
index fa0960b..9e5ad14 100644
--- 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
@@ -132,6 +132,9 @@ public class NewGroupHouseAddActivity extends BaseActivity {
private List mCommunityList;
private OptionsPickerView mCommunityPicker;
private NewCommunityDetailBean mSelCommunity;
+ private NewBuildingBean.RowsBean mSelBuilding;
+ private List mBuildingList;
+ private OptionsPickerView mBuildingPicker;
private List mUnitList;
private List mFloorList;
@@ -139,9 +142,7 @@ public class NewGroupHouseAddActivity extends BaseActivity {
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;
@@ -562,6 +563,7 @@ public class NewGroupHouseAddActivity extends BaseActivity {
ToastUtils.showShort("请选择楼/排");
return false;
}
+
List data = mUnitAdapter.getData();
for (int i = 0; i < data.size(); i++) {
if (TextUtils.isEmpty(data.get(i).getUnitValue())) {
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/NewSearchHouseAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/NewSearchHouseAdapter.java
new file mode 100644
index 0000000..067c0ea
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/NewSearchHouseAdapter.java
@@ -0,0 +1,78 @@
+package com.sucstepsoft.realtimelocation.adapters;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.beloo.widget.chipslayoutmanager.ChipsLayoutManager;
+import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter;
+import com.sucstepsoft.realtimelocation.R;
+import com.sucstepsoft.realtimelocation.adapters.holders.NewHousePersonHolder;
+import com.sucstepsoft.realtimelocation.beans.HousePersonBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/17 - 1:22 PM
+ * 邮箱: itgaojian@163.com
+ * 描述: 楼宇
+ */
+public class NewSearchHouseAdapter extends BaseRecyclerAdapter {
+
+ private int mType = 1;
+
+ public NewSearchHouseAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ public NewSearchHouseAdapter(Context ctx, List list, int type) {
+ super(ctx, list);
+ this.mType = type;
+ }
+
+
+ @Override
+ public NewHousePersonHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_house_person, parent, false);
+ return new NewHousePersonHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(NewHousePersonHolder h, int i) {
+ HousePersonBean.RowsBean bean = mData.get(i);
+ if (mType == 1) {
+ //以人找房
+ h.mTvAreaName.setText(bean.getHouseDTO().getStreetName());
+ h.mTvDistrictName.setText(bean.getHouseDTO().getBuildingName() + "(" + bean.getHouseDTO().getHouseNum() + ")");
+ h.mTvCommunityName.setText(bean.getHouseDTO().getCommunityName());
+ h.mTvBuilding.setVisibility(View.GONE);
+ h.mTvUnit.setVisibility(View.VISIBLE);
+ h.mTvUnit.setText(bean.getHouseDTO().getResidentialName());
+ PersonInHouseAdapter adapter = new PersonInHouseAdapter(mContext, bean.getHouseDTO().getPopulationDTOList());
+ ChipsLayoutManager chipsLayoutManager = ChipsLayoutManager.newBuilder(mContext)
+ .setOrientation(ChipsLayoutManager.HORIZONTAL)
+ .build();
+ h.mRlvPerson.setLayoutManager(chipsLayoutManager);
+ h.mRlvPerson.setAdapter(adapter);
+ } else {
+ //以房找人
+ h.mTvDistrictName.setText(bean.getName());//人名
+ h.mTvAreaName.setText(bean.getCardNum());//证件号码
+ h.mTvCommunityName.setText(bean.getPhone());//联系电话
+ List datas = new ArrayList();
+ if(bean.getHouseDTO() != null){
+ datas.add(bean.getHouseDTO());
+ PersonInHouseAdapter adapter = new PersonInHouseAdapter(mContext, datas);
+ ChipsLayoutManager chipsLayoutManager = ChipsLayoutManager.newBuilder(mContext)
+ .setOrientation(ChipsLayoutManager.HORIZONTAL)
+ .build();
+ h.mRlvPerson.setLayoutManager(chipsLayoutManager);
+ h.mRlvPerson.setAdapter(adapter);
+ }
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/NewSearchHousePersonAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/NewSearchHousePersonAdapter.java
new file mode 100644
index 0000000..85ff0b6
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/NewSearchHousePersonAdapter.java
@@ -0,0 +1,62 @@
+package com.sucstepsoft.realtimelocation.adapters;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.beloo.widget.chipslayoutmanager.ChipsLayoutManager;
+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.NewHousePersonByHolder;
+import com.sucstepsoft.realtimelocation.beans.HousePersonBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/17 - 1:22 PM
+ * 邮箱: itgaojian@163.com
+ * 描述: 楼宇
+ */
+public class NewSearchHousePersonAdapter extends BaseRecyclerAdapter {
+
+ private int mType = 1;
+
+ public NewSearchHousePersonAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ public NewSearchHousePersonAdapter(Context ctx, List list, int type) {
+ super(ctx, list);
+ this.mType = type;
+ }
+
+
+ @Override
+ public NewHousePersonByHolder createHolder(ViewGroup parent, int viewType) {
+ View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_search_house_by_person, parent, false);
+ return new NewHousePersonByHolder(itemView);
+ }
+
+ @Override
+ public void bindHolder(NewHousePersonByHolder h, int i) {
+ HousePersonBean.RowsBean bean = mData.get(i);
+ h.mTvName.setText(bean.getName());//人名
+ h.mTvCard.setText("证件号码:" + DesensitizationUtil.idCardNum(bean.getCardNum()));//证件号码
+ h.mTvPhone.setText("联系电话:" + DesensitizationUtil.mobilePhone(bean.getPhone()));//联系电话
+ List datas = new ArrayList();
+ if (bean.getHouseDTO() != null) {
+ datas.add(bean.getHouseDTO());
+ PersonInHouseAdapter adapter = new PersonInHouseAdapter(mContext, datas);
+ ChipsLayoutManager chipsLayoutManager = ChipsLayoutManager.newBuilder(mContext)
+ .setOrientation(ChipsLayoutManager.HORIZONTAL)
+ .build();
+ h.mRlvPerson.setLayoutManager(chipsLayoutManager);
+ h.mRlvPerson.setAdapter(adapter);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonInHouseAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonInHouseAdapter.java
new file mode 100644
index 0000000..bac7306
--- /dev/null
+++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/PersonInHouseAdapter.java
@@ -0,0 +1,49 @@
+package com.sucstepsoft.realtimelocation.adapters;
+
+import android.content.Context;
+import android.view.Gravity;
+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.PersonInHouseHolder;
+import com.sucstepsoft.realtimelocation.beans.HousePersonBean;
+
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2020/11/24 - 9:16 AM
+ * 邮箱: itgaojian@163.com
+ * 描述: 房屋中的人
+ */
+public class PersonInHouseAdapter extends BaseRecyclerAdapter