From 5bf578906e4bdcf13595033fe2ae19918848cbcb Mon Sep 17 00:00:00 2001 From: adam Date: Thu, 28 Jul 2022 09:16:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=8F=A3=E3=80=81=E6=88=BF=E5=B1=8B?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/compiler.xml | 2 +- .idea/misc.xml | 2 +- app/src/main/AndroidManifest.xml | 17 + .../activitys/base/MainActivity.java | 42 +- .../activitys/census/CensusBaseActivity.java | 330 +++++-- .../census/CensusBaseDetailActivity.java | 12 +- .../activitys/census/CensusEnterActivity.java | 20 +- .../census/CensusExpandableMainActivity.java | 54 +- .../census/CensusYoungAddActivity.java | 2 +- .../census/PopulationAddActivity.java | 199 ++++ .../census/PopulationListActivity.java | 749 +++++++++++++++ .../census/house/SearchHouseActivity.java | 2 +- .../activitys/NewBuildingManageActivity.java | 173 ++++ .../activitys/NewHouseListActivity.java | 172 ++++ .../activitys/NewHouseManageActivity.java | 351 +++++++ .../fragments/BuildingManageFragment.java | 38 + .../fragments/CommunityManageFragment.java | 37 + .../fragments/HouseManageNewFragment.java | 39 + .../normal/CensusNmigrantAddActivity.java | 2 +- .../activitys/issue/TakePointActivity.java | 27 +- .../activitys/locus/LocusMapActivity.java | 34 +- .../adapters/BuildingAdapter.java | 10 +- .../adapters/CensusPersonNewAdapter.java | 54 ++ .../adapters/CommunityAdapter.java | 17 +- .../adapters/ConditionAdapter.java | 13 +- .../adapters/ConditionAreaAdapter.java | 59 ++ .../holders/CensusPersonNewHolder.java | 35 + .../beans/ConditionDicBean.java | 38 + .../fragments/house/HouseManageFragment.java | 192 ++-- .../net/LocationApiService.java | 86 +- .../services/LocationService.java | 893 +++++++++--------- .../widget/ConditionAreaPopup.java | 72 ++ .../widget/ConditionPopup.java | 9 +- .../activity_census_expandable_main.xml | 117 ++- .../layout/activity_new_building_manage.xml | 26 + .../res/layout/activity_new_house_list.xml | 25 + .../res/layout/activity_new_house_manage.xml | 96 ++ .../res/layout/activity_population_add.xml | 42 + .../res/layout/activity_population_list.xml | 168 ++++ .../res/layout/fragment_building_manage.xml | 14 + .../res/layout/fragment_community_manage.xml | 14 + .../res/layout/fragment_house_manage_new.xml | 14 + app/src/main/res/layout/item_person_new.xml | 88 ++ app/src/main/res/layout/layout_base_info.xml | 2 +- .../cm_utils/constant/PathConfig.java | 22 +- .../cm_utils/core/beans/AreaBean.java | 10 + .../core/retrofit_net/BaseUrlApi.java | 12 +- .../views/CenterChooseAreaDialogView.java | 9 +- .../main/res/layout/dialog_choose_area.xml | 4 + .../main/res/layout/dialog_choose_func.xml | 120 +-- 50 files changed, 3799 insertions(+), 766 deletions(-) create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/PopulationAddActivity.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/PopulationListActivity.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewBuildingManageActivity.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseListActivity.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseManageActivity.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/BuildingManageFragment.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/CommunityManageFragment.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/HouseManageNewFragment.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/adapters/CensusPersonNewAdapter.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/adapters/ConditionAreaAdapter.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/CensusPersonNewHolder.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/beans/ConditionDicBean.java create mode 100644 app/src/main/java/com/sucstepsoft/realtimelocation/widget/ConditionAreaPopup.java create mode 100644 app/src/main/res/layout/activity_new_building_manage.xml create mode 100644 app/src/main/res/layout/activity_new_house_list.xml create mode 100644 app/src/main/res/layout/activity_new_house_manage.xml create mode 100644 app/src/main/res/layout/activity_population_add.xml create mode 100644 app/src/main/res/layout/activity_population_list.xml create mode 100755 app/src/main/res/layout/fragment_building_manage.xml create mode 100755 app/src/main/res/layout/fragment_community_manage.xml create mode 100755 app/src/main/res/layout/fragment_house_manage_new.xml create mode 100644 app/src/main/res/layout/item_person_new.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 61a9130..fb7f4a8 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 3378229..7c7f635 100755 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,7 +5,7 @@ - + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0174243..3fbb16a 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -48,6 +48,23 @@ android:theme="@style/AppTheme" android:usesCleartextTraffic="true" tools:ignore="GoogleAppIndexingWarning"> + + + + + = mPrecMax) { + mPrecision = mPrecisionDefault; + if (mGpsWeakDialog == null) { + AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); + builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") + .setTitle("提示") + .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); + mGpsWeakDialog = builder.create(); + } + if (!mGpsWeakDialog.isShowing()) { + mGpsWeakDialog.show(); + } + } else { + if (bdLocation.getRadius() <= mPrecision) { + mPrecision = mPrecisionDefault; + if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { + mCurrentLocation = bdLocation; + if (mGpsDis != null && !mGpsDis.isDisposed()) { + mGpsDis.dispose(); + } + if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { + mTvCurrentTime.setText("当前地址:未知"); + } else { + mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); + } + } + } else { + mPrecision += 10; + } + } + } + } + } else { + if (bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { if (mPrecision >= mPrecMax) { mPrecision = mPrecisionDefault; if (mGpsWeakDialog == null) { diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusBaseActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusBaseActivity.java index af6cebc..7a37643 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusBaseActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusBaseActivity.java @@ -15,7 +15,6 @@ import android.widget.TextView; import com.jcodecraeer.xrecyclerview.ProgressStyle; import com.jcodecraeer.xrecyclerview.XRecyclerView; -import com.sucstepsoft.cm_utils.constant.PathConfig; 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; @@ -23,7 +22,7 @@ import com.sucstepsoft.cm_utils.utils.UIUtil; import com.sucstepsoft.cm_utils.utils.UserLgUtils; import com.sucstepsoft.realtimelocation.R; import com.sucstepsoft.realtimelocation.adapters.CensusPersonAdapter; -import com.sucstepsoft.realtimelocation.beans.DicBean; +import com.sucstepsoft.realtimelocation.beans.ConditionDicBean; import com.sucstepsoft.realtimelocation.beans.SuccessBean; import com.sucstepsoft.realtimelocation.beans.person.CensusPersonBean; import com.sucstepsoft.realtimelocation.net.LocationApiService; @@ -81,20 +80,20 @@ public class CensusBaseActivity extends BaseActivity { private String mKeywords = ""; - private List mNations = new ArrayList<>(); - private DicBean mSelNation; + private List mNations = new ArrayList<>(); + private ConditionDicBean mSelNation; - private List mFaiths; - private DicBean mSelFaith; + private List mFaiths; + private ConditionDicBean mSelFaith; - private List mPoliticals; - private DicBean mSelPolitical; + private List mPoliticals; + private ConditionDicBean mSelPolitical; - private List mMarrays; - private DicBean mSelMarray; + private List mMarrays; + private ConditionDicBean mSelMarray; - private List mEdus; - private DicBean mSelEdu; + private List mEdus; + private ConditionDicBean mSelEdu; @Override @@ -158,35 +157,35 @@ public class CensusBaseActivity extends BaseActivity { if (mNations != null && mNations.size() > 0) { onShowNationPopup(); } else { - getDicListByType(PathConfig.DIC_NATION, 2); + getNationConditionList(); } });//民族 mTvFaith.setOnClickListener(v -> { if (mFaiths != null && mFaiths.size() > 0) { onShowFaith(); } else { - getDicListByType(PathConfig.DIC_FAITH, 6); + getFaithConditionList(); } });//宗教 mTvPolitical.setOnClickListener(v -> { if (mPoliticals != null && mPoliticals.size() > 0) { onShowPolitical(); } else { - getDicListByType(PathConfig.DIC_POLITICS, 4); + getPoliticalConditionList(); } });//政治 mTvMarr.setOnClickListener(v -> { if (mMarrays != null && mMarrays.size() > 0) { onShowMarray(); } else { - getDicListByType(PathConfig.DIC_MARRIAGE, 3); + getMarryConditionList(); } });//婚姻 mTvEdu.setOnClickListener(v -> { if (mEdus != null && mEdus.size() > 0) { onShowEdu(); } else { - getDicListByType(PathConfig.DIC_EDU, 5); + getEduConditionList(); } });//学历 } @@ -200,12 +199,13 @@ public class CensusBaseActivity extends BaseActivity { if (isCheck) { //选中了 mSelNation = bean; - mTvNation.setText(mSelNation.getDictionaryName()); + mTvNation.setText(mSelNation.getName()); } else { //清除了选项 mSelNation = null; mTvNation.setText("民族"); } + refreshData(); conditionPopup.dismiss(); }); conditionPopup.showPopupWindow(mTvNation); @@ -221,12 +221,13 @@ public class CensusBaseActivity extends BaseActivity { if (isCheck) { //选中了 mSelFaith = bean; - mTvFaith.setText(mSelFaith.getDictionaryName()); + mTvFaith.setText(mSelFaith.getName()); } else { //清除了选项 mSelFaith = null; mTvFaith.setText("宗教信仰"); } + refreshData(); conditionPopup.dismiss(); }); conditionPopup.showPopupWindow(mTvFaith); @@ -241,12 +242,13 @@ public class CensusBaseActivity extends BaseActivity { if (isCheck) { //选中了 mSelPolitical = bean; - mTvPolitical.setText(mSelPolitical.getDictionaryName()); + mTvPolitical.setText(mSelPolitical.getName()); } else { //清除了选项 mSelPolitical = null; mTvPolitical.setText("政治面貌"); } + refreshData(); conditionPopup.dismiss(); }); conditionPopup.showPopupWindow(mTvPolitical); @@ -261,12 +263,13 @@ public class CensusBaseActivity extends BaseActivity { if (isCheck) { //选中了 mSelMarray = bean; - mTvMarr.setText(mSelMarray.getDictionaryName()); + mTvMarr.setText(mSelMarray.getName()); } else { //清除了选项 mSelMarray = null; mTvMarr.setText("婚姻状况"); } + refreshData(); conditionPopup.dismiss(); }); conditionPopup.showPopupWindow(mTvMarr); @@ -281,78 +284,18 @@ public class CensusBaseActivity extends BaseActivity { if (isCheck) { //选中了 mSelEdu = bean; - mTvEdu.setText(mSelEdu.getDictionaryName()); + mTvEdu.setText(mSelEdu.getName()); } else { //清除了选项 mSelEdu = null; mTvEdu.setText("学历"); } + refreshData(); conditionPopup.dismiss(); }); conditionPopup.showPopupWindow(mTvEdu); } - /** - * 字典 - */ - private void getDicListByType(String pId, int i) { - 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 typeListBeans) { - dialog.dismiss(); - if (typeListBeans.size() > 0) { - switch (i) { - case 2://名族 - mNations = typeListBeans; - onShowNationPopup(); - break; - case 3://婚姻状况 - mMarrays = typeListBeans; - onShowMarray(); - break; - case 4://政治面貌 - mPoliticals = typeListBeans; - onShowPolitical(); - break; - case 5://学历 - mEdus = typeListBeans; - onShowEdu(); - break; - case 6://宗教信仰 - mFaiths = typeListBeans; - onShowFaith(); - break; - } - } else { - ToastUtils.showShort("暂无数据"); - } - } - - @Override - public void onError(@NonNull Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } - - @Override - public void onComplete() { - - } - }); - } - /** * 搜索 @@ -449,19 +392,228 @@ public class CensusBaseActivity extends BaseActivity { refreshData(); } + + /** + * 获取名族筛选条件 + */ + private void getNationConditionList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getNationDic(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (conditionDicBeans != null && conditionDicBeans.size() > 0) { + mNations = conditionDicBeans; + onShowNationPopup(); + } else { + ToastUtils.showShort("暂无筛选条件"); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + + /** + * 获取宗教筛选条件 + */ + private void getFaithConditionList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getConditionReligion(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (conditionDicBeans != null && conditionDicBeans.size() > 0) { + mFaiths = conditionDicBeans; + onShowFaith(); + } else { + ToastUtils.showShort("暂无筛选条件"); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + + /** + * 学历 + */ + private void getEduConditionList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getConditionEdu(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (conditionDicBeans != null && conditionDicBeans.size() > 0) { + mEdus = conditionDicBeans; + onShowEdu(); + } else { + ToastUtils.showShort("暂无筛选条件"); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 婚姻状况 + */ + private void getMarryConditionList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getConditionMarry(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (conditionDicBeans != null && conditionDicBeans.size() > 0) { + mMarrays = conditionDicBeans; + onShowMarray(); + } else { + ToastUtils.showShort("暂无筛选条件"); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 政治面貌 + */ + private void getPoliticalConditionList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getConditionPolitical(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (conditionDicBeans != null && conditionDicBeans.size() > 0) { + mPoliticals = conditionDicBeans; + onShowPolitical(); + } else { + ToastUtils.showShort("暂无筛选条件"); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** * 获取列表 */ private void getUpcomingList(int page) { mCurPage = page; - String nation = mSelNation == null ? "" : mSelNation.getDictionaryId(); - String faith = mSelFaith == null ? "" : mSelFaith.getDictionaryId(); - String polition = mSelPolitical == null ? "" : mSelPolitical.getDictionaryId(); - String marry = mSelMarray == null ? "" : mSelMarray.getDictionaryId(); - String edu = mSelEdu == null ? "" : mSelEdu.getDictionaryId(); + String nation = mSelNation == null ? "" : mSelNation.getName(); + String faith = mSelFaith == null ? "" : mSelFaith.getName(); + String polition = mSelPolitical == null ? "" : mSelPolitical.getName(); + String marry = mSelMarray == null ? "" : mSelMarray.getName(); + String edu = mSelEdu == null ? "" : mSelEdu.getName(); RetrofitManager.getInstance() .create(LocationApiService.class) - .getBaseInfoList(page + "", mKeywords, nation, faith, polition, marry, edu, UserLgUtils.getToken()) + .getBaseInfoList(page + "", mKeywords, nation, faith, polition, marry, edu, "", UserLgUtils.getToken()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusBaseDetailActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusBaseDetailActivity.java index 6b98756..cbe0761 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusBaseDetailActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusBaseDetailActivity.java @@ -114,14 +114,14 @@ public class CensusBaseDetailActivity extends BaseActivity { mEtIdentity.setText(bean.getIdCardNumber());//身份证号码 mEtName.setText(bean.getFullName());//姓名 mEtOnceName.setText(bean.getNameUsedBefore());//曾用名--- - mTvGender.setText(bean.getGenderDictionaryName());//性别 + mTvGender.setText(bean.getGender());//性别 mTvBirth.setText(bean.getBirthDate());//生日 - mTvNation.setText(bean.getNationDictionaryName());//民族 + mTvNation.setText(bean.getNation());//民族 mTvNative.setText(bean.getNativePlaceAddr());//籍贯 - mTvMarry.setText(bean.getMaritalStatusDictionaryName());//婚姻 - mTvPolitical.setText(bean.getPoliticalStatusDictionaryName());//政治面貌 - mTvEdu.setText(bean.getEducationDictionaryName());//学历 - mTvReligion.setText(bean.getReligionDictionaryName());//宗教 + mTvMarry.setText(bean.getMaritalStatus());//婚姻 + mTvPolitical.setText(bean.getPoliticalStatus());//政治面貌 + mTvEdu.setText(bean.getEducation());//学历 + mTvReligion.setText(bean.getReligion());//宗教 mTvWork.setText(bean.getOccupation());//职业 mEtWorkSpace.setText(bean.getServiceSpace());//服务处所----- mEtPhone.setText(bean.getTelephone());//联系方式 diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java index 109effa..e3ef537 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java @@ -243,7 +243,7 @@ public class CensusEnterActivity extends BaseActivity { } String nation = mTvNation.getText().toString().trim(); if (mSelNation != null) { - bean.setNation(mSelNation.getDictionaryId()); + bean.setNation(mSelNation.getDictionaryName()); } String nativeStr = mEtNative.getText().toString().trim(); @@ -251,19 +251,19 @@ public class CensusEnterActivity extends BaseActivity { String marry = mTvMarry.getText().toString().trim(); if (mSelMarry != null) { - bean.setMaritalStatus(mSelMarry.getDictionaryId()); + bean.setMaritalStatus(mSelMarry.getDictionaryName()); } String political = mTvPolitical.getText().toString().trim(); if (mSelPolitical != null) { - bean.setPoliticalStatus(mSelPolitical.getDictionaryId()); + bean.setPoliticalStatus(mSelPolitical.getDictionaryName()); } String edu = mTvEdu.getText().toString().trim(); if (mSelEdu != null) { - bean.setEducation(mSelEdu.getDictionaryId()); + bean.setEducation(mSelEdu.getDictionaryName()); } String religion = mTvReligion.getText().toString().trim(); if (!TextUtils.isEmpty(religion)) { - bean.setReligion(mSelReligion.getDictionaryId()); + bean.setReligion(mSelReligion.getDictionaryName()); } String work = mTvWork.getText().toString().trim(); bean.setOccupation(work); @@ -295,7 +295,7 @@ public class CensusEnterActivity extends BaseActivity { mEtOnceName.setText(bean.getNameUsedBefore());//曾用名--- // mTvGender.setText(bean.getGender());//性别 // mTvBirth.setText(bean.getBirthDate());//生日 - mTvNation.setText(bean.getNationDictionaryName());//民族 + mTvNation.setText(bean.getNation());//民族 if (!TextUtils.isEmpty(bean.getNation())) { mSelNation = new DicBean(); mSelNation.setDictionaryId(bean.getNation()); @@ -303,25 +303,25 @@ public class CensusEnterActivity extends BaseActivity { } // mTvNative.setText(bean.getNativePlace());//籍贯 mEtNative.setText(bean.getNativePlaceAddr()); - mTvMarry.setText(bean.getMaritalStatusDictionaryName());//婚姻 + mTvMarry.setText(bean.getMaritalStatus());//婚姻 if (!TextUtils.isEmpty(bean.getMaritalStatus())) { mSelMarry = new DicBean(); mSelMarry.setDictionaryName(bean.getMaritalStatusDictionaryName()); mSelMarry.setDictionaryId(bean.getMaritalStatus()); } - mTvPolitical.setText(bean.getPoliticalStatusDictionaryName());//政治面貌 + mTvPolitical.setText(bean.getPoliticalStatus());//政治面貌 if (!TextUtils.isEmpty(bean.getPoliticalStatus())) { mSelPolitical = new DicBean(); mSelPolitical.setDictionaryId(bean.getPoliticalStatus()); mSelPolitical.setDictionaryName(bean.getPoliticalStatusDictionaryName()); } - mTvEdu.setText(bean.getEducationDictionaryName());//学历 + mTvEdu.setText(bean.getEducation());//学历 if (!TextUtils.isEmpty(bean.getEducation())) { mSelEdu = new DicBean(); mSelEdu.setDictionaryId(bean.getEducation()); mSelEdu.setDictionaryName(bean.getEducationDictionaryName()); } - mTvReligion.setText(bean.getReligionDictionaryName());//宗教 + mTvReligion.setText(bean.getReligion());//宗教 if (!TextUtils.isEmpty(bean.getReligion())) { mSelReligion = new DicBean(); mSelReligion.setDictionaryId(bean.getReligion()); diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusExpandableMainActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusExpandableMainActivity.java index 861483e..6588929 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusExpandableMainActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusExpandableMainActivity.java @@ -5,14 +5,6 @@ import android.widget.TextView; import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; import com.sucstepsoft.realtimelocation.R; -import com.sucstepsoft.realtimelocation.activitys.census.normal.CensusNmigrantListActivity; -import com.sucstepsoft.realtimelocation.activitys.census.normal.CensusRegisterListActivity; -import com.sucstepsoft.realtimelocation.activitys.census.normal.CensusResrPersonListActivity; -import com.sucstepsoft.realtimelocation.activitys.census.special.CensusAidsListActivity; -import com.sucstepsoft.realtimelocation.activitys.census.special.CensusCorrctListActivity; -import com.sucstepsoft.realtimelocation.activitys.census.special.CensusDrugListActivity; -import com.sucstepsoft.realtimelocation.activitys.census.special.CensusSpecialCriminalListActivity; -import com.sucstepsoft.realtimelocation.activitys.census.special.CensusTroubleListActivity; import butterknife.BindView; import butterknife.ButterKnife; @@ -43,6 +35,16 @@ public class CensusExpandableMainActivity extends BaseActivity { TextView mTvAids; @BindView(R.id.tv_young) TextView mTvYoung; + @BindView(R.id.tv_soldier) + TextView mTvSoldier; + @BindView(R.id.tv_poor_5) + TextView mTvPoor5; + @BindView(R.id.tv_poor_1) + TextView mTvPoor1; + @BindView(R.id.tv_handicapped) + TextView mTvHandicapped; + @BindView(R.id.tv_petition) + TextView mTvPetition; private Unbinder mBind; @Override @@ -56,17 +58,35 @@ public class CensusExpandableMainActivity extends BaseActivity { mTvBaseTitle.setText("户籍人口"); refreshView(STATE_LOAD_SUCCESS); mTvBase.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusBaseActivity.class)));//基础信息 - mTvRegister.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusRegisterListActivity.class)));//户籍信息 - mTvFloat.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusNmigrantListActivity.class)));//流动人员 - mTvRear.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusResrPersonListActivity.class)));//留守人员 - mTvCrime.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusSpecialCriminalListActivity.class)));//刑满释放 - mTvTrouble.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusTroubleListActivity.class)));//肇事 - mTvDrug.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusDrugListActivity.class)));//吸毒 - mTvCorrct.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusCorrctListActivity.class)));//社区矫正 - mTvAids.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusAidsListActivity.class)));//艾滋 -// mTvYoung.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusYoungListActivity.class)));//重点青少年 +// mTvRegister.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusRegisterListActivity.class)));//户籍信息 +// mTvFloat.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusNmigrantListActivity.class)));//流动人员 +// mTvRear.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusResrPersonListActivity.class)));//留守人员 +// mTvCrime.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusSpecialCriminalListActivity.class)));//刑满释放 +// mTvTrouble.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusTroubleListActivity.class)));//肇事 +// mTvDrug.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusDrugListActivity.class)));//吸毒 +// mTvCorrct.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusCorrctListActivity.class)));//社区矫正 +// mTvAids.setOnClickListener(v -> startActivity(new Intent(mActivity, CensusAidsListActivity.class)));//艾滋 + + mTvFloat.setOnClickListener(v -> openPage("1", "流动人口")); + mTvRear.setOnClickListener(v -> openPage("2", "留守人口")); + mTvSoldier.setOnClickListener(v -> openPage("3", "退伍军人")); + mTvPoor5.setOnClickListener(v -> openPage("4", "五保户")); + mTvPoor1.setOnClickListener(v -> openPage("5", "低保户")); + mTvHandicapped.setOnClickListener(v -> openPage("6", "残疾人")); + mTvPetition.setOnClickListener(v -> openPage("7", "重点信访户")); + mTvCrime.setOnClickListener(v -> openPage("8", "刑满释放人员")); + mTvCorrct.setOnClickListener(v -> openPage("9", "社区矫正人员")); + mTvTrouble.setOnClickListener(v -> openPage("10", "肇事肇祸等严重精神...")); + mTvDrug.setOnClickListener(v -> openPage("11", "吸毒人员")); + mTvAids.setOnClickListener(v -> openPage("12", "艾滋病危险人员")); } + private void openPage(String type, String title) { + Intent intent = new Intent(mActivity, PopulationListActivity.class); + intent.putExtra("type", type); + intent.putExtra("title", title); + startActivity(intent); + } } \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusYoungAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusYoungAddActivity.java index 2e937ab..e58cf75 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusYoungAddActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusYoungAddActivity.java @@ -640,7 +640,7 @@ public class CensusYoungAddActivity extends BaseActivity { mBaseInfoBean = o; mLlContent.setVisibility(View.VISIBLE); mTvBaseName.setText(o.getFullName()); - mTvBaseGender.setText(o.getGenderDictionaryName()); + mTvBaseGender.setText(o.getGender()); mTvBasePhone.setText(o.getTelephone()); mTvBaseNative.setText(o.getNativePlaceAddr()); mTvBaseCurLoc.setText(o.getCurrentResidenceAddr()); diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/PopulationAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/PopulationAddActivity.java new file mode 100644 index 0000000..b92884c --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/PopulationAddActivity.java @@ -0,0 +1,199 @@ +package com.sucstepsoft.realtimelocation.activitys.census; + +import android.app.ProgressDialog; +import android.support.v7.widget.CardView; +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.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +import com.sucstepsoft.cm_utils.utils.RegexUtils; +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.SearchBaseInfoBean; +import com.sucstepsoft.realtimelocation.beans.SuccessBean; +import com.sucstepsoft.realtimelocation.net.LocationApiService; +import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; + +import butterknife.BindView; +import butterknife.ButterKnife; +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; + +/** + * 作者: Adam + * 日期: 2022年07月26日10:53:13 + * 邮箱: itgaojian@163.com + * 描述: 各类人员添加标记 + */ +public class PopulationAddActivity extends BaseActivity { + + @BindView(R.id.et_search_id_card) + EditText mEtSearchIdCard; + @BindView(R.id.iv_clear) + ImageView mIvClear; + @BindView(R.id.btn_search) + Button mBtnSearch; + @BindView(R.id.ll_search_content) + LinearLayout mLlSearchContent; + //基础信息 + @BindView(R.id.tv_base_name) + TextView mTvBaseName; + @BindView(R.id.tv_base_gender) + TextView mTvBaseGender; + @BindView(R.id.tv_base_phone) + TextView mTvBasePhone; + @BindView(R.id.tv_base_native) + TextView mTvBaseNative; + @BindView(R.id.tv_base_cur_loc) + TextView mTvBaseCurLoc; + @BindView(R.id.cv_base_info) + CardView mCvBaseInfo; + @BindView(R.id.btn_confirm) + Button mBtnConfirm; + @BindView(R.id.ll_content) + LinearLayout mLlContent; + private String mType; + private String mTitle; + private SearchBaseInfoBean mBaseInfoBean; + + @Override + protected int setLayoutId() { + return R.layout.activity_population_add; + } + + @Override + public void initData() { + ButterKnife.bind(this); + mType = getIntent().getStringExtra("type"); + mTitle = getIntent().getStringExtra("title"); + mTvBaseTitle.setText(mTitle); + refreshView(STATE_LOAD_SUCCESS); + mLlContent.setVisibility(View.GONE); + mBtnSearch.setOnClickListener(v -> doSearchPerson()); + mIvClear.setOnClickListener(v -> mEtSearchIdCard.setText("")); + mBtnConfirm.setOnClickListener(v -> doSubmit()); + } + + + /** + * 搜索人员基础信息 + */ + private void doSearchPerson() { + String searchIdCard = mEtSearchIdCard.getText().toString().trim(); + if (TextUtils.isEmpty(searchIdCard) || !RegexUtils.isIDNumber(searchIdCard)) { + ToastUtils.showShort("请输入合法的身份证号码"); + return; + } else { + hideSoftKeyboard(); + ProgressDialog dialog = UIUtil.initDialog(mActivity, "查询中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .doSearchBaseInfoByIdCard(searchIdCard, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(SearchBaseInfoBean searchBaseInfoBean) { + //设置基础信息 + dialog.dismiss(); + if (!TextUtils.isEmpty(searchBaseInfoBean.getIdCardNumber())) { + setBaseInfo(searchBaseInfoBean); + } else { + ToastUtils.showLong("未查询到改人员的基础信息,请完善基础信息"); + mTvBaseName.setText(""); + mTvBaseGender.setText(""); + mTvBasePhone.setText(""); + mTvBaseNative.setText(""); + mTvBaseCurLoc.setText(""); + mLlContent.setVisibility(View.GONE); + } + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } + } + + + /** + * 设置基础信息 + */ + private void setBaseInfo(SearchBaseInfoBean o) { + mBaseInfoBean = o; + mLlContent.setVisibility(View.VISIBLE); + mTvBaseName.setText(o.getFullName()); + mTvBaseGender.setText(o.getGender()); + mTvBasePhone.setText(o.getTelephone()); + mTvBaseNative.setText(o.getNativePlaceAddr()); + mTvBaseCurLoc.setText(o.getCurrentResidenceAddr()); + } + + /** + * 提交 + */ + private void doSubmit() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "添加中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .doUpdateBasePerson(mBaseInfoBean.getBasePopulationInfoId(), mType, 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("添加成功"); + mTvBaseName.setText(""); + mTvBaseGender.setText(""); + mTvBasePhone.setText(""); + mTvBaseNative.setText(""); + mTvBaseCurLoc.setText(""); + mLlContent.setVisibility(View.GONE); + mBaseInfoBean = null; + mEtSearchIdCard.setText(""); + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/PopulationListActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/PopulationListActivity.java new file mode 100644 index 0000000..c0d9f32 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/PopulationListActivity.java @@ -0,0 +1,749 @@ +package com.sucstepsoft.realtimelocation.activitys.census; + +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.Intent; +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.ImageView; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.TextView; + +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.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.CensusPersonNewAdapter; +import com.sucstepsoft.realtimelocation.beans.ConditionDicBean; +import com.sucstepsoft.realtimelocation.beans.SuccessBean; +import com.sucstepsoft.realtimelocation.beans.person.CensusPersonBean; +import com.sucstepsoft.realtimelocation.net.LocationApiService; +import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; +import com.sucstepsoft.realtimelocation.widget.ConditionPopup; + +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; + +/** + * 作者: Adam + * 日期: 2022年07月26日10:33:44 + * 邮箱: itgaojian@163.com + * 描述: 人口信息列表 + */ +public class PopulationListActivity extends BaseActivity { + + + @BindView(R.id.tv_nation) + TextView mTvNation; + @BindView(R.id.tv_faith) + TextView mTvFaith; + @BindView(R.id.tv_political) + TextView mTvPolitical; + @BindView(R.id.tv_marr) + TextView mTvMarr; + @BindView(R.id.tv_edu) + TextView mTvEdu; + @BindView(R.id.et_search_centent) + EditText mEtSearchContent; + @BindView(R.id.iv_clear) + ImageView mIvClear; + @BindView(R.id.btn_search) + Button mBtnSearch; + @BindView(R.id.ll_search_content) + LinearLayout mLlSearchContent; + @BindView(R.id.ll_condition) + LinearLayout mLlCondition; + @BindView(R.id.xlv_content) + XRecyclerView mXlvItems; + @BindView(R.id.iv_page_empty) + ImageView mIvAEmpty; + @BindView(R.id.pb_page_loading) + ProgressBar mPbALoading; + @BindView(R.id.tv_page_hint) + TextView mTvAHint; + @BindView(R.id.ll_page_empty) + LinearLayout mLlAEmpty; + /** + * 1 流动人口 + * 2 留守人员 + * 3 退伍军人 + * 4 五保户 + * 5 低保户 + * 6 残疾人 + * 7 重点信访户 + * 8 刑满释放人员 + * 9 社区矫正人员 + * 10 肇事肇祸 + * 11 吸毒人员 + * 12 艾滋病人员 + */ + private String mType; + private String title;//页面标题 + private Unbinder mBind; + private String mTitle; + + private String mRows = "20"; + private int mCurPage = 1; + private CensusPersonNewAdapter mAdapter; + private List mDatas = new ArrayList<>(); + private Disposable mDisposable; + + private String mKeywords = ""; + + private List mNations = new ArrayList<>(); + private ConditionDicBean mSelNation; + + private List mFaiths; + private ConditionDicBean mSelFaith; + + private List mPoliticals; + private ConditionDicBean mSelPolitical; + + private List mMarrays; + private ConditionDicBean mSelMarray; + + private List mEdus; + private ConditionDicBean mSelEdu; + + @Override + protected int setLayoutId() { + return R.layout.activity_population_list; + } + + @Override + public void initData() { + mBind = ButterKnife.bind(this); + mType = getIntent().getStringExtra("type"); + mTitle = getIntent().getStringExtra("title"); + mTvBaseTitle.setText(mTitle); + mTvPublish.setVisibility(View.VISIBLE); + mTvPublish.setText("新增"); + mTvPublish.setOnClickListener(v -> { + Intent intent = new Intent(mActivity, PopulationAddActivity.class); + String title = mTitle.equals("肇事肇祸等严重精神...") ? (mTitle.substring(0, 5) + "人员录入") : (mTitle + "录入"); + intent.putExtra("title", title); + intent.putExtra("type", mType); + startActivity(intent); + }); + refreshView(STATE_LOAD_SUCCESS); + mEtSearchContent.setHint("请输入要查询的关键字"); + mBtnSearch.setOnClickListener(v -> doSearch()); + mIvClear.setOnClickListener(v -> { + mKeywords = ""; + mEtSearchContent.setText(""); + refreshData(); + }); + + mAdapter = new CensusPersonNewAdapter(mActivity, mDatas); + LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity); + layoutManager.setOrientation(LinearLayoutManager.VERTICAL); + mXlvItems.setLayoutManager(layoutManager); + mXlvItems.setAdapter(mAdapter); + mAdapter.addOnItemClickListener(this::showDetail); + 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() { + getUpcomingList(mCurPage); + } + }); + mAdapter.addOnEditListener(new CensusPersonNewAdapter.OnEditListener() { + @Override + public void onDel(CensusPersonBean.RowsBean bean, int pos) { + doDelBean(bean, pos); + } + + @Override + public void onEdit(CensusPersonBean.RowsBean bean, int pos) { + doEditBean(bean, pos); + } + }); + mTvNation.setOnClickListener(v -> { + if (mNations != null && mNations.size() > 0) { + onShowNationPopup(); + } else { + getNationConditionList(); + } + });//民族 + mTvFaith.setOnClickListener(v -> { + if (mFaiths != null && mFaiths.size() > 0) { + onShowFaith(); + } else { + getFaithConditionList(); + } + });//宗教 + mTvPolitical.setOnClickListener(v -> { + if (mPoliticals != null && mPoliticals.size() > 0) { + onShowPolitical(); + } else { + getPoliticalConditionList(); + } + });//政治 + mTvMarr.setOnClickListener(v -> { + if (mMarrays != null && mMarrays.size() > 0) { + onShowMarray(); + } else { + getMarryConditionList(); + } + });//婚姻 + mTvEdu.setOnClickListener(v -> { + if (mEdus != null && mEdus.size() > 0) { + onShowEdu(); + } else { + getEduConditionList(); + } + });//学历 + } + + + /** + * 名族弹窗 + */ + private void onShowNationPopup() { + ConditionPopup conditionPopup = new ConditionPopup(mActivity, mNations); + conditionPopup.setOnListPopupItemClickListener((bean, isCheck, pos) -> { + if (isCheck) { + //选中了 + mSelNation = bean; + mTvNation.setText(mSelNation.getName()); + } else { + //清除了选项 + mSelNation = null; + mTvNation.setText("民族"); + } + refreshData(); + conditionPopup.dismiss(); + }); + conditionPopup.showPopupWindow(mTvNation); + } + + /** + * 宗教信仰 + */ + private void onShowFaith() { + ConditionPopup conditionPopup = new ConditionPopup(mActivity, mFaiths); + conditionPopup.setOnListPopupItemClickListener((bean, isCheck, pos) -> { + if (isCheck) { + //选中了 + mSelFaith = bean; + mTvFaith.setText(mSelFaith.getName()); + } else { + //清除了选项 + mSelFaith = null; + mTvFaith.setText("宗教信仰"); + } + refreshData(); + conditionPopup.dismiss(); + }); + conditionPopup.showPopupWindow(mTvFaith); + } + + /** + * 政治面貌 + */ + private void onShowPolitical() { + ConditionPopup conditionPopup = new ConditionPopup(mActivity, mPoliticals); + conditionPopup.setOnListPopupItemClickListener((bean, isCheck, pos) -> { + if (isCheck) { + //选中了 + mSelPolitical = bean; + mTvPolitical.setText(mSelPolitical.getName()); + } else { + //清除了选项 + mSelPolitical = null; + mTvPolitical.setText("政治面貌"); + } + refreshData(); + conditionPopup.dismiss(); + }); + conditionPopup.showPopupWindow(mTvPolitical); + } + + /** + * 婚姻状况 + */ + private void onShowMarray() { + ConditionPopup conditionPopup = new ConditionPopup(mActivity, mMarrays); + conditionPopup.setOnListPopupItemClickListener((bean, isCheck, pos) -> { + if (isCheck) { + //选中了 + mSelMarray = bean; + mTvMarr.setText(mSelMarray.getName()); + } else { + //清除了选项 + mSelMarray = null; + mTvMarr.setText("婚姻状况"); + } + refreshData(); + conditionPopup.dismiss(); + }); + conditionPopup.showPopupWindow(mTvMarr); + } + + /** + * 学历 + */ + private void onShowEdu() { + ConditionPopup conditionPopup = new ConditionPopup(mActivity, mEdus); + conditionPopup.setOnListPopupItemClickListener((bean, isCheck, pos) -> { + if (isCheck) { + //选中了 + mSelEdu = bean; + mTvEdu.setText(mSelEdu.getName()); + } else { + //清除了选项 + mSelEdu = null; + mTvEdu.setText("学历"); + } + refreshData(); + conditionPopup.dismiss(); + }); + conditionPopup.showPopupWindow(mTvEdu); + } + + + /** + * 搜索 + */ + private void doSearch() { + String searchContent = mEtSearchContent.getText().toString().trim(); + hideSoftKeyboard(); + mKeywords = searchContent; + mCurPage = 1; + getUpcomingList(mCurPage); + } + + /** + * 删除数据 + * + * @param bean + * @param pos + */ + private void doDelBean(CensusPersonBean.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) + .doDelBasePersonByType(bean.getBasePopulationInfoId(), mType, 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(CensusPersonBean.RowsBean bean, int pos) { + Intent intent = new Intent(mActivity, CensusEnterActivity.class); + intent.putExtra("title", "人员基础信息编辑"); + intent.putExtra("id", bean.getBasePopulationInfoId()); + startActivity(intent); + } + + /** + * 显示详情 + * + * @param bean + */ + private void showDetail(CensusPersonBean.RowsBean bean) { + Intent intent = new Intent(mActivity, CensusBaseDetailActivity.class); + intent.putExtra("id", bean.getBasePopulationInfoId()); + startActivity(intent); + } + + private void refreshData() { + getUpcomingList(1); + } + + @Override + protected void onResume() { + super.onResume(); + refreshData(); + } + + /** + * 获取名族筛选条件 + */ + private void getNationConditionList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getNationDic(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (conditionDicBeans != null && conditionDicBeans.size() > 0) { + mNations = conditionDicBeans; + onShowNationPopup(); + } else { + ToastUtils.showShort("暂无筛选条件"); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + + /** + * 获取宗教筛选条件 + */ + private void getFaithConditionList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getConditionReligion(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (conditionDicBeans != null && conditionDicBeans.size() > 0) { + mFaiths = conditionDicBeans; + onShowFaith(); + } else { + ToastUtils.showShort("暂无筛选条件"); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + + /** + * 学历 + */ + private void getEduConditionList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getConditionEdu(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (conditionDicBeans != null && conditionDicBeans.size() > 0) { + mEdus = conditionDicBeans; + onShowEdu(); + } else { + ToastUtils.showShort("暂无筛选条件"); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 婚姻状况 + */ + private void getMarryConditionList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getConditionMarry(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (conditionDicBeans != null && conditionDicBeans.size() > 0) { + mMarrays = conditionDicBeans; + onShowMarray(); + } else { + ToastUtils.showShort("暂无筛选条件"); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 政治面貌 + */ + private void getPoliticalConditionList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getConditionPolitical(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (conditionDicBeans != null && conditionDicBeans.size() > 0) { + mPoliticals = conditionDicBeans; + onShowPolitical(); + } else { + ToastUtils.showShort("暂无筛选条件"); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + + /** + * 获取列表 + */ + private void getUpcomingList(int page) { + mCurPage = page; + String nation = mSelNation == null ? "" : mSelNation.getName(); + String faith = mSelFaith == null ? "" : mSelFaith.getName(); + String polition = mSelPolitical == null ? "" : mSelPolitical.getName(); + String marry = mSelMarray == null ? "" : mSelMarray.getName(); + String edu = mSelEdu == null ? "" : mSelEdu.getName(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getBaseInfoList(page + "", mKeywords, nation, faith, polition, marry, edu, mType, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(CensusPersonBean 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); + } + setStateView(STATE_LOAD_SUCCESS); + } else { + if (page > 1) { + mXlvItems.loadMoreComplete(); + mXlvItems.setNoMore(true); + setStateView(STATE_LOAD_SUCCESS); + } else { + //无数据 + if (!TextUtils.isEmpty(mKeywords) || mSelFaith != null || mSelEdu != null || mSelMarray != null || mSelNation != null || mSelPolitical != null) { + ToastUtils.showShort("未查询到相关内容"); + } else { + setStateView(STATE_LOAD_EMPTY); + } + } + } + } + + @Override + public void onError(Throwable e) { + ToastUtils.showShort("数据加载失,请稍后重试"); + setStateView(STATE_LOAD_ERROR); + } + + @Override + public void onComplete() { + + } + }); + } + + private void setStateView(int state) { + switch (state) { + case STATE_LOAD_LOADING://加载中 + mPbALoading.setVisibility(View.VISIBLE); + mIvAEmpty.setVisibility(View.GONE); + mTvAHint.setVisibility(View.VISIBLE); + mTvAHint.setText(getResources().getString(com.sucstepsoft.cm_utils.R.string.loading)); + mXlvItems.setVisibility(View.INVISIBLE); + break; + case STATE_LOAD_SUCCESS://加载成功 + mPbALoading.setVisibility(View.GONE); + mIvAEmpty.setVisibility(View.GONE); + mTvAHint.setVisibility(View.GONE); + mXlvItems.setVisibility(View.VISIBLE); + break; + case STATE_LOAD_EMPTY://空数据 + mPbALoading.setVisibility(View.GONE); + mIvAEmpty.setVisibility(View.VISIBLE); + mTvAHint.setVisibility(View.VISIBLE); + mTvAHint.setText(getResources().getString(com.sucstepsoft.cm_utils.R.string.empty_data)); + mXlvItems.setVisibility(View.INVISIBLE); + break; + case STATE_LOAD_ERROR: + mPbALoading.setVisibility(View.GONE); + mIvAEmpty.setVisibility(View.VISIBLE); + mTvAHint.setVisibility(View.VISIBLE); + mTvAHint.setText(getResources().getString(com.sucstepsoft.cm_utils.R.string.loading_error)); + mXlvItems.setVisibility(View.INVISIBLE); + break; + } + } + + + @Override + protected void onDestroy() { + 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/house/SearchHouseActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/house/SearchHouseActivity.java index ccf5ae0..3d701c5 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/house/SearchHouseActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/house/SearchHouseActivity.java @@ -230,7 +230,7 @@ public class SearchHouseActivity extends BaseActivity { mCurPage = page; RetrofitManager.getInstance() .create(LocationApiService.class) - .getBuildingList(mCurPage + "", mKeywords, UserLgUtils.getToken()) + .getBuildingList(mCurPage + "", mKeywords, "",UserLgUtils.getToken()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewBuildingManageActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewBuildingManageActivity.java new file mode 100644 index 0000000..a4af8cd --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewBuildingManageActivity.java @@ -0,0 +1,173 @@ +package com.sucstepsoft.realtimelocation.activitys.census.newhouse.activitys; + +import android.content.Intent; +import android.support.v7.widget.LinearLayoutManager; +import android.widget.TextView; + +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.ToastUtils; +import com.sucstepsoft.cm_utils.utils.UserLgUtils; +import com.sucstepsoft.realtimelocation.R; +import com.sucstepsoft.realtimelocation.adapters.BuildingAdapter; +import com.sucstepsoft.realtimelocation.beans.BuildingListBean; +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 io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; + +/** + * 作者: Adam + * 日期: 2022年07月27日09:04:35 + * 邮箱: itgaojian@163.com + * 描述: 楼宇管理 + */ +public class NewBuildingManageActivity extends BaseActivity { + + + @BindView(R.id.tv_community_name) + TextView mTvCommunityName; + @BindView(R.id.rlv_items) + XRecyclerView mRlvItems; + private String mId; + private String mTitle; + private List mDatas; + private BuildingAdapter mAdapter; + private String mRows = "20"; + private int mCurPage = 1; + private String mArea; + + @Override + protected int setLayoutId() { + return R.layout.activity_new_building_manage; + } + + @Override + public void initData() { + ButterKnife.bind(this); + mId = getIntent().getStringExtra("id"); + mTitle = getIntent().getStringExtra("title"); + mArea = getIntent().getStringExtra("area"); + mTvCommunityName.setText(mArea); + mTvBaseTitle.setText(mTitle); + + mDatas = new ArrayList<>(); + refreshView(STATE_LOAD_LOADING); + mAdapter = new BuildingAdapter(mActivity, mDatas, "1"); + LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity); + layoutManager.setOrientation(LinearLayoutManager.VERTICAL); + mRlvItems.setLayoutManager(layoutManager); + mRlvItems.setAdapter(mAdapter); + mAdapter.addOnItemClickListener(this::showDetail); + mRlvItems.setNoMore(true); + mRlvItems.setRefreshProgressStyle(ProgressStyle.BallGridBeat); + mRlvItems.setLoadingMoreProgressStyle(ProgressStyle.Pacman); + mRlvItems.setLoadingListener(new XRecyclerView.LoadingListener() { + @Override + public void onRefresh() { + refresh(); + } + + @Override + public void onLoadMore() { + loadMore(); + } + }); + getHouse(mCurPage); + } + + + /** + * 显示详情 + */ + private void showDetail(BuildingListBean.RowsBean bean) { + Intent intent = new Intent(mActivity, NewHouseListActivity.class); + intent.putExtra("id", bean.getCityBuildingId()); + intent.putExtra("title", bean.getBuildingName()); + intent.putExtra("area", mArea + " >> " + bean.getBuildingName()); + startActivity(intent); + } + + private void refresh() { + getHouse(1); + } + + private void loadMore() { + getHouse(mCurPage); + } + + /** + * 获取房屋 + */ + private void getHouse(int page) { + mCurPage = page; + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getBuildingList(mCurPage + "", "", mId, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(BuildingListBean issueSubBean) { + if (issueSubBean != null && issueSubBean.getRows() != null && issueSubBean.getRows().size() > 0) { + ++mCurPage; + if (page == 1) { + refreshView(STATE_LOAD_SUCCESS); + mDatas.clear(); + mDatas.addAll(issueSubBean.getRows()); + } else { + mDatas.addAll(issueSubBean.getRows()); + } + mAdapter.notifyDataSetChanged(); + mRlvItems.refreshComplete(); + if (mDatas.size() >= issueSubBean.getTotal()) { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(true); + } else { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(false); + } + } else { + if (page > 1) { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(true); + + } else { + //无数据 + refreshView(STATE_LOAD_EMPTY); + mRlvItems.refreshComplete(); + mRlvItems.setNoMore(true); + ToastUtils.showShort("暂无数据"); + } + } + } + + @Override + public void onError(Throwable e) { + mRlvItems.refreshComplete(); + mRlvItems.loadMoreComplete(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseListActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseListActivity.java new file mode 100644 index 0000000..49df6d1 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseListActivity.java @@ -0,0 +1,172 @@ +package com.sucstepsoft.realtimelocation.activitys.census.newhouse.activitys; + +import android.content.Intent; +import android.support.v7.widget.LinearLayoutManager; +import android.widget.TextView; + +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.ToastUtils; +import com.sucstepsoft.cm_utils.utils.UserLgUtils; +import com.sucstepsoft.realtimelocation.R; +import com.sucstepsoft.realtimelocation.activitys.census.house.HouseDetailActivity; +import com.sucstepsoft.realtimelocation.adapters.BuildingAdapter; +import com.sucstepsoft.realtimelocation.beans.BuildingListBean; +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 io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; + +/** + * 作者: Adam + * 日期: 2022年07月27日10:11:01 + * 邮箱: itgaojian@163.com + * 描述: 房屋列表 + */ +public class NewHouseListActivity extends BaseActivity { + + + @BindView(R.id.tv_community_name) + TextView mTvCommunityName; + @BindView(R.id.rlv_items) + XRecyclerView mRlvItems; + private String mId; //楼宇ID + private String mArea; + private List mDatas; + private BuildingAdapter mAdapter; + private String mRows = "20"; + private int mCurPage = 1; + + @Override + protected int setLayoutId() { + return R.layout.activity_new_house_list; + } + + @Override + public void initData() { + ButterKnife.bind(this); + mId = getIntent().getStringExtra("id"); + mArea = getIntent().getStringExtra("area"); + String title = getIntent().getStringExtra("title"); + mTvBaseTitle.setText(title); + mTvCommunityName.setText(mArea); + mDatas = new ArrayList<>(); + refreshView(STATE_LOAD_LOADING); + mAdapter = new BuildingAdapter(mActivity, mDatas, "4"); + LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity); + layoutManager.setOrientation(LinearLayoutManager.VERTICAL); + mRlvItems.setLayoutManager(layoutManager); + mRlvItems.setAdapter(mAdapter); + mAdapter.addOnItemClickListener(this::showDetail); + mRlvItems.setNoMore(true); + mRlvItems.setRefreshProgressStyle(ProgressStyle.BallGridBeat); + mRlvItems.setLoadingMoreProgressStyle(ProgressStyle.Pacman); + mRlvItems.setLoadingListener(new XRecyclerView.LoadingListener() { + @Override + public void onRefresh() { + refresh(); + } + + @Override + public void onLoadMore() { + loadMore(); + } + }); + getHouse(mCurPage); + } + + /** + * 显示详情 + */ + private void showDetail(BuildingListBean.RowsBean bean) { + //显示房屋详情 + Intent intent = new Intent(mActivity, HouseDetailActivity.class); + intent.putExtra("id", bean.getBuildingHouseId()); + intent.putExtra("title", bean.getDistrictName()); + startActivityForResult(intent, 12); + } + + private void refresh() { + getHouse(1); + } + + private void loadMore() { + getHouse(mCurPage); + } + + /** + * 获取房屋 + */ + private void getHouse(int page) { + mCurPage = page; + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getHouse(mCurPage + "", "", mId, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(BuildingListBean issueSubBean) { + if (issueSubBean != null && issueSubBean.getRows() != null && issueSubBean.getRows().size() > 0) { + ++mCurPage; + if (page == 1) { + refreshView(STATE_LOAD_SUCCESS); + mDatas.clear(); + mDatas.addAll(issueSubBean.getRows()); + } else { + mDatas.addAll(issueSubBean.getRows()); + } + mAdapter.notifyDataSetChanged(); + mRlvItems.refreshComplete(); + if (mDatas.size() >= issueSubBean.getTotal()) { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(true); + } else { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(false); + } + } else { + if (page > 1) { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(true); + + } else { + //无数据 + refreshView(STATE_LOAD_EMPTY); + mRlvItems.refreshComplete(); + mRlvItems.setNoMore(true); + ToastUtils.showShort("暂无数据"); + } + } + } + + @Override + public void onError(Throwable e) { + mRlvItems.refreshComplete(); + mRlvItems.loadMoreComplete(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseManageActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseManageActivity.java new file mode 100644 index 0000000..ef399b1 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/activitys/NewHouseManageActivity.java @@ -0,0 +1,351 @@ +package com.sucstepsoft.realtimelocation.activitys.census.newhouse.activitys; + +import android.app.ProgressDialog; +import android.content.Intent; +import android.support.v7.widget.LinearLayoutManager; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.TextView; + +import com.jcodecraeer.xrecyclerview.ProgressStyle; +import com.jcodecraeer.xrecyclerview.XRecyclerView; +import com.sucstepsoft.cm_utils.constant.PathConfig; +import com.sucstepsoft.cm_utils.core.beans.AreaBean; +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.adapters.CommunityAdapter; +import com.sucstepsoft.realtimelocation.beans.person.CommunityListBean; +import com.sucstepsoft.realtimelocation.net.LocationApiService; +import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; +import com.sucstepsoft.realtimelocation.widget.ConditionAreaPopup; + +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; + +/** + * 作者: Adam + * 日期: 2022年07月26日16:02:07 + * 邮箱: itgaojian@163.com + * 描述: 房屋管理 + */ +public class NewHouseManageActivity extends BaseActivity { + + @BindView(R.id.tv_street) + TextView mTvStreet;//街道 + @BindView(R.id.tv_community) + TextView mTvCommunity;//社区 + @BindView(R.id.xlv_content) + XRecyclerView mXlvContent; + @BindView(R.id.iv_page_empty) + ImageView mIvPageEmpty; + @BindView(R.id.pb_page_loading) + ProgressBar mPbPageLoading; + @BindView(R.id.tv_page_hint) + TextView mTvPageHint; + @BindView(R.id.ll_page_empty) + LinearLayout mLlPageEmpty; + private Unbinder mBind; + + + private List mStreetList = new ArrayList<>(); + private AreaBean mSelStreet; + + private List mCommunityList = new ArrayList<>(); + private AreaBean mSelCommunity; + + + private int mCurPage = 1; + private String mKeywords = ""; + + private List mDatas = new ArrayList<>(); + private CommunityAdapter mAdapter; + + + @Override + protected int setLayoutId() { + return R.layout.activity_new_house_manage; + } + + @Override + public void initData() { + mBind = ButterKnife.bind(this); + mTvBaseTitle.setText("房屋管理"); + mTvPublish.setVisibility(View.GONE); + refreshView(STATE_LOAD_LOADING); + mTvStreet.setOnClickListener(v -> onShowStreet()); + mTvCommunity.setOnClickListener(v -> onShowCommunity()); + getStreetList(PathConfig.DIC_STREET_ID, 1); + mAdapter = new CommunityAdapter(mActivity, mDatas, 2); + LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity); + layoutManager.setOrientation(LinearLayoutManager.VERTICAL); + mXlvContent.setLayoutManager(layoutManager); + mXlvContent.setAdapter(mAdapter); + mXlvContent.setRefreshProgressStyle(ProgressStyle.BallGridBeat); + mXlvContent.setLoadingMoreProgressStyle(ProgressStyle.Pacman); + mXlvContent.setPullRefreshEnabled(true); + mXlvContent.setLoadingMoreEnabled(true); + mXlvContent.setLoadingListener(new XRecyclerView.LoadingListener() { + @Override + public void onRefresh() { + doRefresh(); + } + + @Override + public void onLoadMore() { + getCommunityList(mCurPage); + } + }); + mAdapter.addOnItemClickListener(this::showBuildingList); + } + + /** + * 显示小区下楼宇列表 + */ + private void showBuildingList(CommunityListBean.RowsBean rowsBean) { + Intent intent = new Intent(mActivity, NewBuildingManageActivity.class); + String area = rowsBean.getAreaName() + " >> " + rowsBean.getCommunityName() + " >> " + rowsBean.getDistrictName(); + intent.putExtra("area", area); + intent.putExtra("id", rowsBean.getCityDistrictId()); + intent.putExtra("title", rowsBean.getDistrictName()); + startActivity(intent); + } + + /** + * 显示街道 + */ + private void onShowStreet() { + if (mStreetList != null && mStreetList.size() > 0) { + ConditionAreaPopup conditionPopup = new ConditionAreaPopup(mActivity, mStreetList); + conditionPopup.setOnListPopupItemClickListener((bean, isCheck, pos) -> { + if (isCheck) { + //选中了 + mSelStreet = bean; + mTvStreet.setText(mSelStreet.getAreaName()); + } else { + //清除了选项 + mSelStreet = null; + mTvStreet.setText("街道"); + } + conditionPopup.dismiss(); + doRefresh(); + }); + conditionPopup.showPopupWindow(mTvStreet); + } else { + getStreetList(PathConfig.DIC_STREET_ID, 2); + } + } + + /** + * 显示社区 + */ + private void onShowCommunity() { + if (mCommunityList != null && mCommunityList.size() > 0) { + ConditionAreaPopup conditionPopup = new ConditionAreaPopup(mActivity, mCommunityList); + conditionPopup.setOnListPopupItemClickListener((bean, isCheck, pos) -> { + if (isCheck) { + //选中了 + mSelCommunity = bean; + mTvCommunity.setText(mSelCommunity.getAreaName()); + } else { + //清除了选项 + mSelCommunity = null; + mTvCommunity.setText("社区"); + } + conditionPopup.dismiss(); + doRefresh(); + }); + conditionPopup.showPopupWindow(mTvCommunity); + } else { + if (mSelStreet != null) { + getStreetList(mSelStreet.getAreaId(), 3); + } else { + ToastUtils.showShort("请选择街道"); + } + } + } + + /** + * 获取街道 + */ + private void getStreetList(String pid, int type) { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getConditionHouseList(pid, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List conditionDicBeans) { + dialog.dismiss(); + if (type == 2) { + mStreetList = conditionDicBeans; + onShowStreet(); + } else if (type == 1) { + mStreetList = conditionDicBeans; + if (mStreetList != null && mStreetList.size() > 0) { + mStreetList.get(0).setCheck(true); + mSelStreet = mStreetList.get(0); + mTvStreet.setText(mSelStreet.getAreaName()); + refreshView(STATE_LOAD_SUCCESS); + doRefresh(); + } else { + refreshView(STATE_LOAD_EMPTY); + } + } else if (type == 3) { + mCommunityList = conditionDicBeans; + onShowCommunity(); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 刷新页面 + */ + private void doRefresh() { + setStateView(STATE_LOAD_LOADING); + mDatas.clear(); + mAdapter.notifyDataSetChanged(); + getCommunityList(1); + } + + /** + * 获取小区列表 + */ + private void getCommunityList(int page) { + mCurPage = page; + String streetId = mSelStreet == null ? "" : mSelStreet.getAreaId(); + String communityId = mSelCommunity == null ? "" : mSelCommunity.getAreaId(); + + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getCommunityNewList(page + "", streetId, communityId, mKeywords, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(CommunityListBean 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(); + mXlvContent.refreshComplete(); + if (mDatas.size() >= leaveListBean.getTotal()) { + mXlvContent.loadMoreComplete(); + mXlvContent.setNoMore(true); + } else { + mXlvContent.loadMoreComplete(); + mXlvContent.setNoMore(false); + } + setStateView(STATE_LOAD_SUCCESS); + } else { + if (page > 1) { + mXlvContent.loadMoreComplete(); + mXlvContent.setNoMore(true); + setStateView(STATE_LOAD_SUCCESS); + } else { + setStateView(STATE_LOAD_EMPTY); + if (mSelCommunity != null) { + ToastUtils.showShort("未查询到相关内容"); + } + } + } + } + + @Override + public void onError(Throwable e) { + ToastUtils.showShort("数据加载失,请稍后重试"); + setStateView(STATE_LOAD_ERROR); + } + + @Override + public void onComplete() { + + } + }); + } + + + private void setStateView(int state) { + switch (state) { + case STATE_LOAD_LOADING://加载中 + mPbPageLoading.setVisibility(View.VISIBLE); + mIvPageEmpty.setVisibility(View.GONE); + mTvPageHint.setVisibility(View.VISIBLE); + mTvPageHint.setText(getResources().getString(R.string.loading)); + mXlvContent.setVisibility(View.INVISIBLE); + break; + case STATE_LOAD_SUCCESS://加载成功 + mPbPageLoading.setVisibility(View.GONE); + mIvPageEmpty.setVisibility(View.GONE); + mTvPageHint.setVisibility(View.GONE); + mXlvContent.setVisibility(View.VISIBLE); + break; + case STATE_LOAD_EMPTY://空数据 + mPbPageLoading.setVisibility(View.GONE); + mIvPageEmpty.setVisibility(View.VISIBLE); + mTvPageHint.setVisibility(View.VISIBLE); + mTvPageHint.setText(getResources().getString(R.string.empty_data)); + mXlvContent.setVisibility(View.INVISIBLE); + break; + case STATE_LOAD_ERROR://加载失败 + mPbPageLoading.setVisibility(View.GONE); + mIvPageEmpty.setVisibility(View.VISIBLE); + mTvPageHint.setVisibility(View.VISIBLE); + mTvPageHint.setText(getResources().getString(R.string.loading_error)); + mXlvContent.setVisibility(View.INVISIBLE); + break; + } + } + + @Override + protected void onDestroy() { + 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/newhouse/fragments/BuildingManageFragment.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/BuildingManageFragment.java new file mode 100644 index 0000000..9af3644 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/BuildingManageFragment.java @@ -0,0 +1,38 @@ +package com.sucstepsoft.realtimelocation.activitys.census.newhouse.fragments; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import com.sucstepsoft.cm_utils.core.widget.base.LazyFragment; +import com.sucstepsoft.realtimelocation.R; + +import butterknife.ButterKnife; +import butterknife.Unbinder; + +/** + * 作者: adam + * 日期: 2022/7/26 - 16:17 + * 邮箱: itgaojian@163.com + * 描述: 楼宇管理 + */ +public class BuildingManageFragment extends LazyFragment { + private Activity mActivity; + private Unbinder mBind; + + @Override + protected void onCreateViewLazy(Bundle savedInstanceState) { + super.onCreateViewLazy(savedInstanceState); + View view = LayoutInflater.from(mActivity).inflate(R.layout.fragment_building_manage, null); + setContentView(view); + mBind = ButterKnife.bind(this, view); + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + this.mActivity = getActivity(); + } +} 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 new file mode 100644 index 0000000..99155bd --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/CommunityManageFragment.java @@ -0,0 +1,37 @@ +package com.sucstepsoft.realtimelocation.activitys.census.newhouse.fragments; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import com.sucstepsoft.cm_utils.core.widget.base.LazyFragment; +import com.sucstepsoft.realtimelocation.R; + +import butterknife.ButterKnife; +import butterknife.Unbinder; + +/** + * 作者: adam + * 日期: 2022/7/26 - 16:17 + * 邮箱: itgaojian@163.com + * 描述: 小区管理 + */ +public class CommunityManageFragment extends LazyFragment { + private Activity mActivity; + private Unbinder mBind; + + @Override + protected void onCreateViewLazy(Bundle savedInstanceState) { + super.onCreateViewLazy(savedInstanceState); + View view = LayoutInflater.from(mActivity).inflate(R.layout.fragment_community_manage, null); + setContentView(view); + mBind = ButterKnife.bind(this, view); + } + @Override + public void onAttach(Context context) { + super.onAttach(context); + this.mActivity = getActivity(); + } +} 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 new file mode 100644 index 0000000..42a6e45 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/newhouse/fragments/HouseManageNewFragment.java @@ -0,0 +1,39 @@ +package com.sucstepsoft.realtimelocation.activitys.census.newhouse.fragments; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import com.sucstepsoft.cm_utils.core.widget.base.LazyFragment; +import com.sucstepsoft.realtimelocation.R; + +import butterknife.ButterKnife; +import butterknife.Unbinder; + +/** + * 作者: adam + * 日期: 2022/7/26 - 16:17 + * 邮箱: itgaojian@163.com + * 描述: 房屋管理 + */ +public class HouseManageNewFragment extends LazyFragment { + private Activity mActivity; + private Unbinder mBind; + + @Override + protected void onCreateViewLazy(Bundle savedInstanceState) { + super.onCreateViewLazy(savedInstanceState); + View view = LayoutInflater.from(mActivity).inflate(R.layout.fragment_house_manage_new, null); + setContentView(view); + mBind = ButterKnife.bind(this, view); + } + + + @Override + public void onAttach(Context context) { + super.onAttach(context); + this.mActivity = getActivity(); + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusNmigrantAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusNmigrantAddActivity.java index 8306093..27cf191 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusNmigrantAddActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusNmigrantAddActivity.java @@ -550,7 +550,7 @@ public class CensusNmigrantAddActivity extends BaseActivity { mBaseInfoBean = o; mLlContent.setVisibility(View.VISIBLE); mTvBaseName.setText(o.getFullName()); - mTvBaseGender.setText(o.getGenderDictionaryName()); + mTvBaseGender.setText(o.getGender()); mTvBasePhone.setText(o.getTelephone()); mTvBaseNative.setText(o.getNativePlaceAddr()); mTvBaseCurLoc.setText(o.getAreaNames() + "/" + o.getCurrentResidenceAddr()); diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/issue/TakePointActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/issue/TakePointActivity.java index 6f8481e..d6d38cb 100755 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/issue/TakePointActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/issue/TakePointActivity.java @@ -297,15 +297,34 @@ public class TakePointActivity extends BaseActivity { } private void checkPointIsLegal(BDLocation bdLocation) { - if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) { + if(PathConfig.IS_LIMIT){ + if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) { + if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { + if (bdLocation.getRadius() <= 150) { + if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { + mBaiduMap.setMyLocationEnabled(true); + MyLocationData locData = new MyLocationData.Builder() + .accuracy(bdLocation.getRadius()) + .latitude(bdLocation.getLatitude()) + .longitude(bdLocation.getLongitude()).build(); + mBaiduMap.setMyLocationData(locData); + if (mCurrentLocation == null) { + mCurrentLocation = bdLocation; + moveMapToCenter(new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude())); + } + } + } + } + } + }else{ if (bdLocation != null && bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { if (bdLocation.getRadius() <= 150) { if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { mBaiduMap.setMyLocationEnabled(true); MyLocationData locData = new MyLocationData.Builder() - .accuracy(bdLocation.getRadius()) - .latitude(bdLocation.getLatitude()) - .longitude(bdLocation.getLongitude()).build(); + .accuracy(bdLocation.getRadius()) + .latitude(bdLocation.getLatitude()) + .longitude(bdLocation.getLongitude()).build(); mBaiduMap.setMyLocationData(locData); if (mCurrentLocation == null) { mCurrentLocation = bdLocation; diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/locus/LocusMapActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/locus/LocusMapActivity.java index 2ce069a..5507157 100755 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/locus/LocusMapActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/locus/LocusMapActivity.java @@ -1000,14 +1000,39 @@ public class LocusMapActivity extends BaseActivity { } private void checkPointIsLegal(BDLocation bdLocation) { - if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) { + if(PathConfig.IS_LIMIT){ + if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) { + if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { + if (bdLocation.getRadius() <= 150) { + mBaiduMap.setMyLocationEnabled(true); + MyLocationData locData = new MyLocationData.Builder() + .accuracy(bdLocation.getRadius()) + .latitude(bdLocation.getLatitude()) + .longitude(bdLocation.getLongitude()).build(); + mBaiduMap.setMyLocationData(locData); + if (mCurrent == null) { + mCurrent = bdLocation; + moveMapToCenter(new LatLng(mCurrent.getLatitude(), mCurrent.getLongitude())); + } + if (mPenLineBeans != null && mPenLineBeans.size() > 0) { + boolean isIn = getPointIsIn(bdLocation, mPenLineBeans); + if (!isIn) { + setDisToView(bdLocation); + } else { + mTvDistance.setText("已在片区内"); + } + } + } + } + } + }else{ if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { if (bdLocation.getRadius() <= 150) { mBaiduMap.setMyLocationEnabled(true); MyLocationData locData = new MyLocationData.Builder() - .accuracy(bdLocation.getRadius()) - .latitude(bdLocation.getLatitude()) - .longitude(bdLocation.getLongitude()).build(); + .accuracy(bdLocation.getRadius()) + .latitude(bdLocation.getLatitude()) + .longitude(bdLocation.getLongitude()).build(); mBaiduMap.setMyLocationData(locData); if (mCurrent == null) { mCurrent = bdLocation; @@ -1024,6 +1049,7 @@ public class LocusMapActivity extends BaseActivity { } } } + //显示定位图标 } diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/BuildingAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/BuildingAdapter.java index 29a7284..0e35ecd 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/BuildingAdapter.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/BuildingAdapter.java @@ -7,10 +7,8 @@ import android.view.ViewGroup; import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; import com.sucstepsoft.realtimelocation.R; -import com.sucstepsoft.realtimelocation.adapters.holders.CensusHouseHolder; import com.sucstepsoft.realtimelocation.adapters.holders.HouseHolder; import com.sucstepsoft.realtimelocation.beans.BuildingListBean; -import com.sucstepsoft.realtimelocation.beans.person.HouseListBean; import java.util.List; @@ -48,13 +46,13 @@ public class BuildingAdapter extends BaseRecyclerAdapter { + public CensusPersonNewAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public CensusPersonNewHolder createHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_person_new, parent, false); + return new CensusPersonNewHolder(itemView); + } + + @Override + public void bindHolder(CensusPersonNewHolder censusPersonHolder, int i) { + CensusPersonBean.RowsBean bean = mData.get(i); + censusPersonHolder.mTvName.setText(bean.getFullName()); + censusPersonHolder.mTvLocation.setText("现住地:" + bean.getAreaNames() + "/" + bean.getCurrentResidenceAddr());//现在住地 + censusPersonHolder.mTvNative.setText("籍贯:" + bean.getNativePlaceAddr()); + censusPersonHolder.mTvPhone.setText("联系电话:" + bean.getTelephone()); + censusPersonHolder.mBtnDel.setOnClickListener(v -> mEditListener.onDel(bean, i)); + } + + private OnEditListener mEditListener; + + public void addOnEditListener(OnEditListener mListener) { + this.mEditListener = mListener; + } + + public interface OnEditListener { + void onDel(CensusPersonBean.RowsBean bean, int pos); + + void onEdit(CensusPersonBean.RowsBean bean, int pos); + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/CommunityAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/CommunityAdapter.java index 3fbed22..8422ce2 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/CommunityAdapter.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/CommunityAdapter.java @@ -7,9 +7,7 @@ import android.view.ViewGroup; import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; import com.sucstepsoft.realtimelocation.R; -import com.sucstepsoft.realtimelocation.adapters.holders.CensusPersonHolder; import com.sucstepsoft.realtimelocation.adapters.holders.CommunityHolder; -import com.sucstepsoft.realtimelocation.beans.person.CensusPersonBean; import com.sucstepsoft.realtimelocation.beans.person.CommunityListBean; import java.util.List; @@ -21,10 +19,18 @@ import java.util.List; * 描述: 人口adapter */ public class CommunityAdapter extends BaseRecyclerAdapter { + private int mType = 1; + public CommunityAdapter(Context ctx, List list) { super(ctx, list); } + public CommunityAdapter(Context ctx, List list, int type) { + super(ctx, list); + this.mType = type; + } + + @Override public CommunityHolder createHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_community_sel, parent, false); @@ -37,7 +43,12 @@ public class CommunityAdapter extends BaseRecyclerAdapter mEditListener.onEdit(bean, i)); + if (mType == 1) { + censusPersonHolder.mBtnConfirm.setVisibility(View.VISIBLE); + censusPersonHolder.mBtnConfirm.setOnClickListener(v -> mEditListener.onEdit(bean, i)); + } else { + censusPersonHolder.mBtnConfirm.setVisibility(View.GONE); + } } private OnEditListener mEditListener; diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/ConditionAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/ConditionAdapter.java index 0ec7fc9..1d29018 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/ConditionAdapter.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/ConditionAdapter.java @@ -9,6 +9,7 @@ import android.view.ViewGroup; import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; import com.sucstepsoft.realtimelocation.R; import com.sucstepsoft.realtimelocation.adapters.holders.ConditionViewHolder; +import com.sucstepsoft.realtimelocation.beans.ConditionDicBean; import com.sucstepsoft.realtimelocation.beans.DicBean; import java.util.ArrayList; @@ -20,9 +21,9 @@ import java.util.List; * 邮箱: itgaojian@163.com * 描述: */ -public class ConditionAdapter extends BaseRecyclerAdapter { - public List mSelBeans = new ArrayList<>(); - public ConditionAdapter(Context ctx, List list) { +public class ConditionAdapter extends BaseRecyclerAdapter { + public List mSelBeans = new ArrayList<>(); + public ConditionAdapter(Context ctx, List list) { super(ctx, list); } @@ -34,8 +35,8 @@ public class ConditionAdapter extends BaseRecyclerAdapter { + public List mSelBeans = new ArrayList<>(); + + public ConditionAreaAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public ConditionViewHolder createHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_condition_dic, parent, false); + return new ConditionViewHolder(itemView); + } + + @Override + public void bindHolder(ConditionViewHolder holder, int i) { + AreaBean bean = mData.get(i); + holder.mTvName.setText(bean.getAreaName()); + holder.mTvName.setTextColor(bean.isCheck() ? Color.parseColor("#1296db") : Color.BLACK); + if (bean.isCheck()) { + holder.mIvCheck.setVisibility(View.VISIBLE); + holder.mIvCheck.setImageResource(R.drawable.ic_check_blue); + } else { + holder.mIvCheck.setVisibility(View.INVISIBLE); + } + holder.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(AreaBean bean, boolean isCheck, int pos); + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/CensusPersonNewHolder.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/CensusPersonNewHolder.java new file mode 100644 index 0000000..7ac5f15 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/holders/CensusPersonNewHolder.java @@ -0,0 +1,35 @@ +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.TextView; + +import com.sucstepsoft.realtimelocation.R; + +/** + * 作者: adam + * 日期: 2020/11/17 - 1:19 PM + * 邮箱: itgaojian@163.com + * 描述: + */ +public class CensusPersonNewHolder extends RecyclerView.ViewHolder { + public TextView mTvName; + public TextView mTvLocation; + public TextView mTvPhone; + public TextView mTvNative; + + public Button mBtnDel; + public Button mBtnEdit; + + public CensusPersonNewHolder(@NonNull View itemView) { + super(itemView); + mTvName = itemView.findViewById(R.id.tv_name); + mTvLocation = itemView.findViewById(R.id.tv_location); + mBtnDel = itemView.findViewById(R.id.btn_del); + mBtnEdit = itemView.findViewById(R.id.btn_edit); + mTvNative = itemView.findViewById(R.id.tv_native); + mTvPhone = itemView.findViewById(R.id.tv_phone); + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/ConditionDicBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/ConditionDicBean.java new file mode 100644 index 0000000..54fc496 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/ConditionDicBean.java @@ -0,0 +1,38 @@ +package com.sucstepsoft.realtimelocation.beans; + +/** + * 作者: adam + * 日期: 2022/7/26 - 14:35 + * 邮箱: itgaojian@163.com + * 描述: + */ +public class ConditionDicBean { + private String name; + private String counts; + private boolean isCheck; + + + public boolean isCheck() { + return isCheck; + } + + public void setCheck(boolean check) { + isCheck = check; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCounts() { + return counts; + } + + public void setCounts(String counts) { + this.counts = counts; + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/fragments/house/HouseManageFragment.java b/app/src/main/java/com/sucstepsoft/realtimelocation/fragments/house/HouseManageFragment.java index e063ab0..c29fbdd 100755 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/fragments/house/HouseManageFragment.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/fragments/house/HouseManageFragment.java @@ -1,7 +1,6 @@ package com.sucstepsoft.realtimelocation.fragments.house; import android.app.Activity; -import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; @@ -12,21 +11,14 @@ import android.view.View; 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.BaseRecyclerAdapter; import com.sucstepsoft.cm_utils.core.widget.base.LazyFragment; 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.house.BuildingListActivity; import com.sucstepsoft.realtimelocation.activitys.census.house.HouseDetailActivity; -import com.sucstepsoft.realtimelocation.activitys.issue.IssueSpecialDetailActivity; import com.sucstepsoft.realtimelocation.adapters.BuildingAdapter; -import com.sucstepsoft.realtimelocation.adapters.IssueSubAdapter; -import com.sucstepsoft.realtimelocation.beans.BuildHouseListBean; import com.sucstepsoft.realtimelocation.beans.BuildingListBean; -import com.sucstepsoft.realtimelocation.beans.IssueSubBean; -import com.sucstepsoft.realtimelocation.beans.person.HouseListBean; import com.sucstepsoft.realtimelocation.net.LocationApiService; import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; @@ -137,60 +129,60 @@ public class HouseManageFragment extends LazyFragment { private void getBuild(int page) { mCurPage = page; RetrofitManager.getInstance() - .create(LocationApiService.class) - .getBuildingList(mCurPage + "", "", UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getBuildingList(mCurPage + "", "", "", UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(BuildingListBean issueSubBean) { - if (issueSubBean != null && issueSubBean.getRows() != null && issueSubBean.getRows().size() > 0) { - ++mCurPage; - if (page == 1) { - mDatas.clear(); - mDatas.addAll(issueSubBean.getRows()); - } else { - mDatas.addAll(issueSubBean.getRows()); - } - mAdapter.notifyDataSetChanged(); - mRlvItems.refreshComplete(); - if (mDatas.size() >= issueSubBean.getTotal()) { - mRlvItems.loadMoreComplete(); - mRlvItems.setNoMore(true); - } else { - mRlvItems.loadMoreComplete(); - mRlvItems.setNoMore(false); - } + @Override + public void onNext(BuildingListBean issueSubBean) { + if (issueSubBean != null && issueSubBean.getRows() != null && issueSubBean.getRows().size() > 0) { + ++mCurPage; + if (page == 1) { + mDatas.clear(); + mDatas.addAll(issueSubBean.getRows()); } else { - if (page > 1) { - mRlvItems.loadMoreComplete(); - mRlvItems.setNoMore(true); - } else { - //无数据 - mRlvItems.refreshComplete(); - mRlvItems.setNoMore(true); - ToastUtils.showShort("暂无数据"); - } + mDatas.addAll(issueSubBean.getRows()); + } + mAdapter.notifyDataSetChanged(); + mRlvItems.refreshComplete(); + if (mDatas.size() >= issueSubBean.getTotal()) { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(true); + } else { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(false); + } + } else { + if (page > 1) { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(true); + } else { + //无数据 + mRlvItems.refreshComplete(); + mRlvItems.setNoMore(true); + ToastUtils.showShort("暂无数据"); } } + } - @Override - public void onError(Throwable e) { - mRlvItems.refreshComplete(); - mRlvItems.loadMoreComplete(); - ExceptionHandler.handleException(e); - } + @Override + public void onError(Throwable e) { + mRlvItems.refreshComplete(); + mRlvItems.loadMoreComplete(); + ExceptionHandler.handleException(e); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } @@ -200,60 +192,60 @@ public class HouseManageFragment extends LazyFragment { private void getHouse(int page) { mCurPage = page; RetrofitManager.getInstance() - .create(LocationApiService.class) - .getHouse(mCurPage + "", "", "", UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getHouse(mCurPage + "", "", "", UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(BuildingListBean issueSubBean) { - if (issueSubBean != null && issueSubBean.getRows() != null && issueSubBean.getRows().size() > 0) { - ++mCurPage; - if (page == 1) { - mDatas.clear(); - mDatas.addAll(issueSubBean.getRows()); - } else { - mDatas.addAll(issueSubBean.getRows()); - } - mAdapter.notifyDataSetChanged(); - mRlvItems.refreshComplete(); - if (mDatas.size() >= issueSubBean.getTotal()) { - mRlvItems.loadMoreComplete(); - mRlvItems.setNoMore(true); - } else { - mRlvItems.loadMoreComplete(); - mRlvItems.setNoMore(false); - } + @Override + public void onNext(BuildingListBean issueSubBean) { + if (issueSubBean != null && issueSubBean.getRows() != null && issueSubBean.getRows().size() > 0) { + ++mCurPage; + if (page == 1) { + mDatas.clear(); + mDatas.addAll(issueSubBean.getRows()); } else { - if (page > 1) { - mRlvItems.loadMoreComplete(); - mRlvItems.setNoMore(true); - } else { - //无数据 - mRlvItems.refreshComplete(); - mRlvItems.setNoMore(true); - ToastUtils.showShort("暂无数据"); - } + mDatas.addAll(issueSubBean.getRows()); + } + mAdapter.notifyDataSetChanged(); + mRlvItems.refreshComplete(); + if (mDatas.size() >= issueSubBean.getTotal()) { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(true); + } else { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(false); + } + } else { + if (page > 1) { + mRlvItems.loadMoreComplete(); + mRlvItems.setNoMore(true); + } else { + //无数据 + mRlvItems.refreshComplete(); + mRlvItems.setNoMore(true); + ToastUtils.showShort("暂无数据"); } } + } - @Override - public void onError(Throwable e) { - mRlvItems.refreshComplete(); - mRlvItems.loadMoreComplete(); - ExceptionHandler.handleException(e); - } + @Override + public void onError(Throwable e) { + mRlvItems.refreshComplete(); + mRlvItems.loadMoreComplete(); + ExceptionHandler.handleException(e); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } 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 4d9d311..1d63aa0 100755 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/net/LocationApiService.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/net/LocationApiService.java @@ -1,6 +1,7 @@ package com.sucstepsoft.realtimelocation.net; +import com.sucstepsoft.cm_utils.core.beans.AreaBean; import com.sucstepsoft.realtimelocation.beans.AddressListBean; import com.sucstepsoft.realtimelocation.beans.AreaListBean; import com.sucstepsoft.realtimelocation.beans.BaseUserBean; @@ -11,6 +12,7 @@ import com.sucstepsoft.realtimelocation.beans.CaseFlowBean; import com.sucstepsoft.realtimelocation.beans.CheckSignBean; import com.sucstepsoft.realtimelocation.beans.CheckSignOffBean; import com.sucstepsoft.realtimelocation.beans.CommunityBean; +import com.sucstepsoft.realtimelocation.beans.ConditionDicBean; import com.sucstepsoft.realtimelocation.beans.DepartmentBean; import com.sucstepsoft.realtimelocation.beans.DicBean; import com.sucstepsoft.realtimelocation.beans.HousePersonListBean; @@ -1224,7 +1226,7 @@ public interface LocationApiService { */ @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) @GET("app/citybuilding/listpagecitybuilding") - Observable getBuildingList(@Query("page") String page, @Query("keywords") String keywords, @Header("token") String token); + Observable getBuildingList(@Query("page") String page, @Query("keywords") String keywords, @Query("districtId") String id, @Header("token") String token); /** * 获取房屋列表 @@ -1392,7 +1394,89 @@ public interface LocationApiService { @Query("politicalStatus") String political, @Query("maritalStatus") String marry, @Query("education") String edu, + @Query("otherPeopleType") String type, @Header("token") String token); + + /** + * 更新基础信息 标签 流动、留守 + */ +// + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @PUT("app/basepopulationinfo/update-other-people-type/{basePopulationInfoId}/{otherPeopleType}") + Observable doUpdateBasePerson( + @Path("basePopulationInfoId") String id, + @Path("otherPeopleType") String type, + @Header("token") String token); + + /** + * 删除 特殊人群标签 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @PUT("app/basepopulationinfo/delete-other-people-type/{basePopulationInfoId}/{otherPeopleType}") + Observable doDelBasePersonByType( + @Path("basePopulationInfoId") String id, + @Path("otherPeopleType") String type, + @Header("token") String token); + + /** + * 名族筛选条件 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/sys-basic-info/release/list-population-info-nation-app") + Observable> getNationDic(@Header("token") String token); + + /** + * 宗教筛选条件 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/sys-basic-info/release/list-population-info-religion-app") + Observable> getConditionReligion(@Header("token") String token); + + + /** + * 学历筛选条件 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/sys-basic-info/release/list-population-info-education-app") + Observable> getConditionEdu(@Header("token") String token); + + + /** + * 政治面貌 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/sys-basic-info/release/list-population-info-political-app") + Observable> getConditionPolitical(@Header("token") String token); + + + /** + * 婚姻状况 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/sys-basic-info/release/list-population-info-marital-app") + Observable> getConditionMarry(@Header("token") String token); + + /** + * 获取街道、社区列表 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/sys-basic-info/release/list-area-info-app") + Observable> getConditionHouseList(@Query("areaParentId") String pId, @Header("token") String token); + + + /** + * 根据街道、社区获取小区列表 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/citydistrict/listpagecitydistrict") + Observable getCommunityNewList( + @Query("page") String page, + @Query("areaId") String streetId, + @Query("communityId") String communityid, + @Query("keywords") String keywords, + @Header("token") String token); + + /*===========================================工作日志===========================================*/ /** diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/services/LocationService.java b/app/src/main/java/com/sucstepsoft/realtimelocation/services/LocationService.java index cc9f431..551de81 100755 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/services/LocationService.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/services/LocationService.java @@ -26,15 +26,12 @@ import com.sucstepsoft.cm_utils.core.widget.base.NotificationUtils; import com.sucstepsoft.cm_utils.utils.AppUtils; import com.sucstepsoft.cm_utils.utils.LogUtils; import com.sucstepsoft.cm_utils.utils.TimeUtils; -import com.sucstepsoft.cm_utils.utils.ToastUtils; import com.sucstepsoft.cm_utils.utils.UserLgUtils; import com.sucstepsoft.realtimelocation.R; import com.sucstepsoft.realtimelocation.activitys.base.LoginActivity; -import com.sucstepsoft.realtimelocation.beans.AppTokenUser; import com.sucstepsoft.realtimelocation.beans.CheckSignBean; import com.sucstepsoft.realtimelocation.beans.CheckSignOffBean; import com.sucstepsoft.realtimelocation.beans.LocationPosition; -import com.sucstepsoft.realtimelocation.beans.PenLineBean; import com.sucstepsoft.realtimelocation.beans.PenNewLineBean; import com.sucstepsoft.realtimelocation.beans.SignTimeBean; import com.sucstepsoft.realtimelocation.beans.SuccessBean; @@ -135,30 +132,30 @@ public class LocationService extends NotificationService { private void registerSignStateListener() { Observable.interval(1, TimeUnit.MINUTES) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(Long aLong) { - int notifyType = getNotifyType(); - LogUtils.e(notifyType); - } + @Override + public void onNext(Long aLong) { + int notifyType = getNotifyType(); + LogUtils.e(notifyType); + } - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } private void registerTimeReceiver() { @@ -175,60 +172,60 @@ public class LocationService extends NotificationService { private void registerGpsState() { Observable.interval(5, TimeUnit.SECONDS) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(Long aLong) { - checkGpsState(); - } + @Override + public void onNext(Long aLong) { + checkGpsState(); + } - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } private void registerSi() { Observable.interval(50, TimeUnit.SECONDS) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(Long aLong) { - if (!mIsHolday) { - if (isWeek()) { - getIsSign(); - } + @Override + public void onNext(Long aLong) { + if (!mIsHolday) { + if (isWeek()) { + getIsSign(); } } + } - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } private static final int NOTIFY_TYPE_P_AM_SIGN_1 = 1221;//片长上午签到提前一分钟 @@ -323,154 +320,57 @@ public class LocationService extends NotificationService { String token = GlobalProvider.getString(LocationService.this, "token"); if (!TextUtils.isEmpty(token)) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .checkSign(token) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(CheckSignBean checkSignBean) { - if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData().getIsSign())) { - boolean b = Boolean.parseBoolean(checkSignBean.getData().getIsSign()); - if (!b) { - String nowHourMM = TimeUtils.getNowHourMM(); - String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); - if ("N".equals(userType)) { - //N员 - if (!TextUtils.isEmpty(nowHourMM)) { - if (!TextUtils.isEmpty(mNStartPunchTime)) { - String currentTime = TimeUtils.getCurrentTime(mNStartPunchTime); - if (nowHourMM.equals(currentTime)) { - sendNotifySignN(1); - } - } - } - } else { - if (!TextUtils.isEmpty(nowHourMM)) { - if (!TextUtils.isEmpty(mAmStartPunchTime)) { - String currentTime = TimeUtils.getCurrentTime(mAmStartPunchTime); - if (nowHourMM.equals(currentTime)) { - sendNotifySign(1); - } - } - if (!TextUtils.isEmpty(mPmStartPunchTime)) { - String currentTime = TimeUtils.getCurrentTime(mPmStartPunchTime); - if (nowHourMM.equals(currentTime)) { - sendNotifySign(3); - } - } - } - } - } else { - getIsSignOff(); - } - } - } - - @Override - public void onError(Throwable e) { - } - - @Override - public void onComplete() { - - } - }); - } - } - - private void getIsSignOff() { - String token = GlobalProvider.getString(LocationService.this, "token"); - if (!TextUtils.isEmpty(token)) { - RetrofitManager.getInstance() - .create(LocationApiService.class) - .checkSignOff(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(CheckSignOffBean checkSignBean) { - if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData())) { - boolean b = Boolean.parseBoolean(checkSignBean.getData()); - if (!b) { - String nowHourMM = TimeUtils.getNowHourMM(); - String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); - if ("N".equals(userType)) { - //N员 - String currentTime = TimeUtils.getCurrentTime(mNEndWorkTime); - if (!TextUtils.isEmpty(nowHourMM)) { - if (nowHourMM.equals(currentTime)) { - sendNotifySignN(2); - } - } - } else { - //片长 - if (!TextUtils.isEmpty(mAmEndWorkTime)) { - String currentTime = TimeUtils.getCurrentTime(mAmEndWorkTime); - if (nowHourMM.equals(currentTime)) { - sendNotifySign(2); - } - } - if (!TextUtils.isEmpty(mPmEndWorkTime)) { - String currentTime = TimeUtils.getCurrentTime(mPmEndWorkTime); - if (nowHourMM.equals(currentTime)) { - sendNotifySign(4); - } - } - } - } - } - } - - @Override - public void onError(Throwable e) { - } - - @Override - public void onComplete() { - - } - }); - } - } - - private void registerIsSendNogify() { - Observable.interval(50, TimeUnit.SECONDS) + .create(LocationApiService.class) + .checkSign(token) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { + .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { } @Override - public void onNext(Long aLong) { - String isHolday = GlobalProvider.getString(LocationService.this, "isHolday", ""); - if (!TextUtils.isEmpty(isHolday)) { - if ("1".equals(isHolday)) { - mIsHolday = true; + public void onNext(CheckSignBean checkSignBean) { + if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData().getIsSign())) { + boolean b = Boolean.parseBoolean(checkSignBean.getData().getIsSign()); + if (!b) { + String nowHourMM = TimeUtils.getNowHourMM(); + String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); + if ("N".equals(userType)) { + //N员 + if (!TextUtils.isEmpty(nowHourMM)) { + if (!TextUtils.isEmpty(mNStartPunchTime)) { + String currentTime = TimeUtils.getCurrentTime(mNStartPunchTime); + if (nowHourMM.equals(currentTime)) { + sendNotifySignN(1); + } + } + } + } else { + if (!TextUtils.isEmpty(nowHourMM)) { + if (!TextUtils.isEmpty(mAmStartPunchTime)) { + String currentTime = TimeUtils.getCurrentTime(mAmStartPunchTime); + if (nowHourMM.equals(currentTime)) { + sendNotifySign(1); + } + } + if (!TextUtils.isEmpty(mPmStartPunchTime)) { + String currentTime = TimeUtils.getCurrentTime(mPmStartPunchTime); + if (nowHourMM.equals(currentTime)) { + sendNotifySign(3); + } + } + } + } } else { - mIsHolday = false; + getIsSignOff(); } - } else { - mIsHolday = false; } } @Override public void onError(Throwable e) { - } @Override @@ -478,6 +378,103 @@ public class LocationService extends NotificationService { } }); + } + } + + private void getIsSignOff() { + String token = GlobalProvider.getString(LocationService.this, "token"); + if (!TextUtils.isEmpty(token)) { + RetrofitManager.getInstance() + .create(LocationApiService.class) + .checkSignOff(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(CheckSignOffBean checkSignBean) { + if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData())) { + boolean b = Boolean.parseBoolean(checkSignBean.getData()); + if (!b) { + String nowHourMM = TimeUtils.getNowHourMM(); + String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); + if ("N".equals(userType)) { + //N员 + String currentTime = TimeUtils.getCurrentTime(mNEndWorkTime); + if (!TextUtils.isEmpty(nowHourMM)) { + if (nowHourMM.equals(currentTime)) { + sendNotifySignN(2); + } + } + } else { + //片长 + if (!TextUtils.isEmpty(mAmEndWorkTime)) { + String currentTime = TimeUtils.getCurrentTime(mAmEndWorkTime); + if (nowHourMM.equals(currentTime)) { + sendNotifySign(2); + } + } + if (!TextUtils.isEmpty(mPmEndWorkTime)) { + String currentTime = TimeUtils.getCurrentTime(mPmEndWorkTime); + if (nowHourMM.equals(currentTime)) { + sendNotifySign(4); + } + } + } + } + } + } + + @Override + public void onError(Throwable e) { + } + + @Override + public void onComplete() { + + } + }); + } + } + + private void registerIsSendNogify() { + Observable.interval(50, TimeUnit.SECONDS) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(Long aLong) { + String isHolday = GlobalProvider.getString(LocationService.this, "isHolday", ""); + if (!TextUtils.isEmpty(isHolday)) { + if ("1".equals(isHolday)) { + mIsHolday = true; + } else { + mIsHolday = false; + } + } else { + mIsHolday = false; + } + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); } @@ -530,46 +527,46 @@ public class LocationService extends NotificationService { private void registerUploadPointListener() { Observable.interval(1, 1, TimeUnit.MINUTES) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(Long aLong) { - if (mUploadPointTime != 0) { - long timeSpan = TimeUtils.getTimeSpan(System.currentTimeMillis(), mUploadPointTime, TimeConstants.MIN); - if (timeSpan >= 9) { - if (!mIsHolday) { - if (isWeek()) { - mUploadPointTime = System.currentTimeMillis(); - String nowHour = TimeUtils.getNowHour(); - if (TimeUtils.isInTime("08:30-12:00", nowHour) || TimeUtils.isInTime("14:00-17:00", nowHour)) { - if (canUpload()) { - startLocation(); - } - NotificationUtils utils = new NotificationUtils(LocationService.this); - utils.sendNotification(45, "片长工作", "您已较长时间未上传定位信息,可能当前位置信号弱,请检查GPS和数据开关设置或者移动到开阔位置."); + @Override + public void onNext(Long aLong) { + if (mUploadPointTime != 0) { + long timeSpan = TimeUtils.getTimeSpan(System.currentTimeMillis(), mUploadPointTime, TimeConstants.MIN); + if (timeSpan >= 9) { + if (!mIsHolday) { + if (isWeek()) { + mUploadPointTime = System.currentTimeMillis(); + String nowHour = TimeUtils.getNowHour(); + if (TimeUtils.isInTime("08:30-12:00", nowHour) || TimeUtils.isInTime("14:00-17:00", nowHour)) { + if (canUpload()) { + startLocation(); } + NotificationUtils utils = new NotificationUtils(LocationService.this); + utils.sendNotification(45, "片长工作", "您已较长时间未上传定位信息,可能当前位置信号弱,请检查GPS和数据开关设置或者移动到开阔位置."); } } } } } + } - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } //保存 @@ -588,31 +585,31 @@ public class LocationService extends NotificationService { */ private void checkSign() { Observable.interval(0, 5, TimeUnit.MINUTES) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - mMTimeDis = d; + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + mMTimeDis = d; + } + + @Override + public void onNext(Long aLong) { + if (!TextUtils.isEmpty(mSignInStr)) { + checkIsSign(); + } else { + getSignTime(); } + } - @Override - public void onNext(Long aLong) { - if (!TextUtils.isEmpty(mSignInStr)) { - checkIsSign(); - } else { - getSignTime(); - } - } + @Override + public void onError(Throwable e) { - @Override - public void onError(Throwable e) { + } - } + @Override + public void onComplete() { - @Override - public void onComplete() { - - } - }); + } + }); } /** @@ -620,44 +617,44 @@ public class LocationService extends NotificationService { */ private void getSignTime() { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getpunchTime(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getpunchTime(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + } + + @Override + public void onNext(SignTimeBean signTimeBean) { + if (signTimeBean != null) { + mNSignInStr = signTimeBean.getNSignInStr(); + mNSignInEnd = signTimeBean.getNSignInEnd(); + mNSignOutStr = signTimeBean.getNSignOutStr(); + mNSignOutEnd = signTimeBean.getNSignOutEnd(); + mNPositionRecordStr = signTimeBean.getNPositionRecordStr(); + mNPositionRecordEnd = signTimeBean.getNPositionRecordEnd(); + mSignInStr = signTimeBean.getSignInStr(); + mSignInEnd = signTimeBean.getSignInEnd(); + mSignOutStr = signTimeBean.getSignOutStr(); + mSignOutEnd = signTimeBean.getSignOutEnd(); + mPositionRecordSrt = signTimeBean.getPositionRecordSrt(); + mPositionRecordEnd = signTimeBean.getPositionRecordEnd(); } + } - @Override - public void onNext(SignTimeBean signTimeBean) { - if (signTimeBean != null) { - mNSignInStr = signTimeBean.getNSignInStr(); - mNSignInEnd = signTimeBean.getNSignInEnd(); - mNSignOutStr = signTimeBean.getNSignOutStr(); - mNSignOutEnd = signTimeBean.getNSignOutEnd(); - mNPositionRecordStr = signTimeBean.getNPositionRecordStr(); - mNPositionRecordEnd = signTimeBean.getNPositionRecordEnd(); - mSignInStr = signTimeBean.getSignInStr(); - mSignInEnd = signTimeBean.getSignInEnd(); - mSignOutStr = signTimeBean.getSignOutStr(); - mSignOutEnd = signTimeBean.getSignOutEnd(); - mPositionRecordSrt = signTimeBean.getPositionRecordSrt(); - mPositionRecordEnd = signTimeBean.getPositionRecordEnd(); - } - } + @Override + public void onError(Throwable e) { + e.printStackTrace(); + } - @Override - public void onError(Throwable e) { - e.printStackTrace(); - } + @Override + public void onComplete() { - @Override - public void onComplete() { - - } - }); + } + }); } /** @@ -667,60 +664,60 @@ public class LocationService extends NotificationService { String token = GlobalProvider.getString(LocationService.this, "token"); if (!TextUtils.isEmpty(token)) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .checkSign(token) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .checkSign(token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(CheckSignBean checkSignBean) { - if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData().getIsSign())) { - isSignIn = Boolean.parseBoolean(checkSignBean.getData().getIsSign()); - if (isSignIn) { - //已经签到 - checkSignOff(); - } else { - //未签到 - if (!mIsHolday) { - boolean isWeek = isWeek(); - if (isWeek) { - String nowHourMM = TimeUtils.getNowHourMM(); - String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); - if ("N".equals(userType)) { - //N员 - //签到提醒 - //提前10分钟提醒 - String timeSpan = TimeUtils.getCurrentTimeSpan(mNSignInStr, -10); - if (TimeUtils.isInTime(timeSpan + "-" + mNSignInEnd, nowHourMM)) { - sendNotif(1); - } - } else { - //签到提醒 - String timeSpan = TimeUtils.getCurrentTimeSpan(mSignInStr, -10); - if (TimeUtils.isInTime(timeSpan + "-" + mSignInEnd, nowHourMM)) { - sendNotif(1); - } + @Override + public void onNext(CheckSignBean checkSignBean) { + if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData().getIsSign())) { + isSignIn = Boolean.parseBoolean(checkSignBean.getData().getIsSign()); + if (isSignIn) { + //已经签到 + checkSignOff(); + } else { + //未签到 + if (!mIsHolday) { + boolean isWeek = isWeek(); + if (isWeek) { + String nowHourMM = TimeUtils.getNowHourMM(); + String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); + if ("N".equals(userType)) { + //N员 + //签到提醒 + //提前10分钟提醒 + String timeSpan = TimeUtils.getCurrentTimeSpan(mNSignInStr, -10); + if (TimeUtils.isInTime(timeSpan + "-" + mNSignInEnd, nowHourMM)) { + sendNotif(1); + } + } else { + //签到提醒 + String timeSpan = TimeUtils.getCurrentTimeSpan(mSignInStr, -10); + if (TimeUtils.isInTime(timeSpan + "-" + mSignInEnd, nowHourMM)) { + sendNotif(1); } } } } } } + } - @Override - public void onError(Throwable e) { - } + @Override + public void onError(Throwable e) { + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } } @@ -775,55 +772,55 @@ public class LocationService extends NotificationService { String token = GlobalProvider.getString(LocationService.this, "token", ""); if (!TextUtils.isEmpty(token)) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .checkSignOff(token) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .checkSignOff(token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(CheckSignOffBean checkSignBean) { - if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData())) { - isSignUp = Boolean.parseBoolean(checkSignBean.getData()); - if (!isSignUp) { - //没有签退 - if (!mIsHolday) { - String nowHourMM = TimeUtils.getNowHour(); - boolean isWeek = isWeek(); - if (isWeek) { - String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); - if ("N".equals(userType)) { - //N员 - String timeSpan = TimeUtils.getCurrentTimeSpan(mNSignOutStr, -10); - if (TimeUtils.isInTime(timeSpan + "-" + mNSignOutEnd, nowHourMM)) { - sendNotif(23); - } - } else { - //片长 - String timeSpan = TimeUtils.getCurrentTimeSpan(mSignOutStr, -10); - if (TimeUtils.isInTime(timeSpan + "-" + mSignOutEnd, nowHourMM)) { - sendNotif(23); - } + @Override + public void onNext(CheckSignOffBean checkSignBean) { + if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData())) { + isSignUp = Boolean.parseBoolean(checkSignBean.getData()); + if (!isSignUp) { + //没有签退 + if (!mIsHolday) { + String nowHourMM = TimeUtils.getNowHour(); + boolean isWeek = isWeek(); + if (isWeek) { + String userType = GlobalProvider.getString(LocationService.this, "userType", "P"); + if ("N".equals(userType)) { + //N员 + String timeSpan = TimeUtils.getCurrentTimeSpan(mNSignOutStr, -10); + if (TimeUtils.isInTime(timeSpan + "-" + mNSignOutEnd, nowHourMM)) { + sendNotif(23); + } + } else { + //片长 + String timeSpan = TimeUtils.getCurrentTimeSpan(mSignOutStr, -10); + if (TimeUtils.isInTime(timeSpan + "-" + mSignOutEnd, nowHourMM)) { + sendNotif(23); } } } } } } + } - @Override - public void onError(Throwable e) { - } + @Override + public void onError(Throwable e) { + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } } @@ -836,33 +833,33 @@ public class LocationService extends NotificationService { String token = GlobalProvider.getString(LocationService.this, "token"); if (!TextUtils.isEmpty(token)) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getUserNewPenList(token) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .getUserNewPenList(token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + } + + @Override + public void onNext(List penLineBeans) { + if (penLineBeans != null && penLineBeans.size() > 0) { + buildPenList(penLineBeans); } + } - @Override - public void onNext(List penLineBeans) { - if (penLineBeans != null && penLineBeans.size() > 0) { - buildPenList(penLineBeans); - } - } - - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { // ToastUtils.showShort("获取围栏数据失败,请稍后重试"); - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } } @@ -964,10 +961,18 @@ public class LocationService extends NotificationService { } private void checkPointIs(BDLocation bdLocation) { - if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode()) && bdLocation.getRadius() <= 300) { - Intent mIntent = new Intent(PathConfig.ACTION_LOCATION_MESSAGE); - mIntent.putExtra("data", bdLocation); - sendBroadcast(mIntent); + if (PathConfig.IS_LIMIT) { + if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode()) && bdLocation.getRadius() <= 300) { + Intent mIntent = new Intent(PathConfig.ACTION_LOCATION_MESSAGE); + mIntent.putExtra("data", bdLocation); + sendBroadcast(mIntent); + } + } else { + if (bdLocation.getRadius() <= 300) { + Intent mIntent = new Intent(PathConfig.ACTION_LOCATION_MESSAGE); + mIntent.putExtra("data", bdLocation); + sendBroadcast(mIntent); + } } } @@ -980,30 +985,56 @@ public class LocationService extends NotificationService { private boolean checkSinglePoint(BDLocation bdLocation) { boolean isLegal = false; if (isFirst) { - if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) { - isLegal = true; - } else { - isLegal = false; - } - } else { - if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode()) && bdLocation.getRadius() <= mPrecision) { - if (mCurrentLocation != null) { - LatLng latLng1 = new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude()); - LatLng latLng2 = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); - boolean circleContainsPoint = SpatialRelationUtil.isCircleContainsPoint(latLng1, 200, latLng2); - if (circleContainsPoint) { - mCurrentLocation = bdLocation; - isLegal = true; - } else { - isLegal = false; - } - } else { - mCurrentLocation = bdLocation; + if (PathConfig.IS_LIMIT) { + if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) { isLegal = true; + } else { + isLegal = false; } } else { - isLegal = false; + isLegal = true; } + } else { + if (PathConfig.IS_LIMIT) { + if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode()) && bdLocation.getRadius() <= mPrecision) { + if (mCurrentLocation != null) { + LatLng latLng1 = new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude()); + LatLng latLng2 = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); + boolean circleContainsPoint = SpatialRelationUtil.isCircleContainsPoint(latLng1, 200, latLng2); + if (circleContainsPoint) { + mCurrentLocation = bdLocation; + isLegal = true; + } else { + isLegal = false; + } + } else { + mCurrentLocation = bdLocation; + isLegal = true; + } + } else { + isLegal = false; + } + } else { + if (bdLocation.getRadius() <= mPrecision) { + if (mCurrentLocation != null) { + LatLng latLng1 = new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude()); + LatLng latLng2 = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); + boolean circleContainsPoint = SpatialRelationUtil.isCircleContainsPoint(latLng1, 200, latLng2); + if (circleContainsPoint) { + mCurrentLocation = bdLocation; + isLegal = true; + } else { + isLegal = false; + } + } else { + mCurrentLocation = bdLocation; + isLegal = true; + } + } else { + isLegal = false; + } + } + } return isLegal; } @@ -1154,41 +1185,41 @@ public class LocationService extends NotificationService { isUpload = true; RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), points); RetrofitManager.getInstance() - .create(LocationApiService.class) - .saveLocationData(body, token) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(LocationApiService.class) + .saveLocationData(body, token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(SuccessBean successBean) { - isUpload = false; - mCurrentLocation = null; - mTempList.clear(); - mUploadPointTime = System.currentTimeMillis(); - Intent intent = new Intent(); - intent.setAction("com.sucstepsoft.realtimelocation.isonlone"); - intent.putExtra("uploadTime", mUploadPointTime + ""); - sendBroadcast(intent); - } + @Override + public void onNext(SuccessBean successBean) { + isUpload = false; + mCurrentLocation = null; + mTempList.clear(); + mUploadPointTime = System.currentTimeMillis(); + Intent intent = new Intent(); + intent.setAction("com.sucstepsoft.realtimelocation.isonlone"); + intent.putExtra("uploadTime", mUploadPointTime + ""); + sendBroadcast(intent); + } - @Override - public void onError(Throwable e) { - isUpload = false; - mCurrentLocation = null; - mTempList.clear(); - e.printStackTrace(); - } + @Override + public void onError(Throwable e) { + isUpload = false; + mCurrentLocation = null; + mTempList.clear(); + e.printStackTrace(); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } else { mTempList.clear(); } @@ -1257,10 +1288,10 @@ public class LocationService extends NotificationService { private void startSocketService() { if (mWsManager == null) { mWsManager = new WsManager - .Builder(getApplication()) - .wsUrl(BaseUrlApi.SOCKET_IP) - .needReconnect(true) - .build(); + .Builder(getApplication()) + .wsUrl(BaseUrlApi.SOCKET_IP) + .needReconnect(true) + .build(); } if (!mWsManager.isWsConnected()) { diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/ConditionAreaPopup.java b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/ConditionAreaPopup.java new file mode 100644 index 0000000..aac770c --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/ConditionAreaPopup.java @@ -0,0 +1,72 @@ +package com.sucstepsoft.realtimelocation.widget; + +import android.content.Context; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.View; + +import com.sucstepsoft.cm_utils.core.beans.AreaBean; +import com.sucstepsoft.realtimelocation.R; +import com.sucstepsoft.realtimelocation.adapters.ConditionAreaAdapter; + +import java.util.List; + +import razerdp.basepopup.BasePopupWindow; + +/** + * 作者: adam + * 日期: 2022/3/30 - 10:12 上午 + * 邮箱: itgaojian@163.com + * 描述: 地区筛选 + */ +public class ConditionAreaPopup extends BasePopupWindow { + private List mDatas; + private final RecyclerView mRlvConditions; + private OnListPopupItemClickListener mOnListPopupItemClickListener; + + public ConditionAreaPopup(Context context, List data) { + super(context); + this.mDatas = data; + mRlvConditions = findViewById(R.id.rlv_conditions); + mRlvConditions.setLayoutManager(new LinearLayoutManager(context)); + ConditionAreaAdapter adapter = new ConditionAreaAdapter(context, mDatas); + mRlvConditions.setAdapter(adapter); + adapter.addOnitemCheckChange((bean, isCheck, pos) -> { + if (isCheck) { + adapter.mSelBeans.clear(); + adapter.mSelBeans.add(bean); + } else { + adapter.mSelBeans.remove(bean); + } + bean.setCheck(isCheck); + mOnListPopupItemClickListener.onItemClick(bean, isCheck, pos); + if (isCheck) { + if (true) { + for (int i = 0; i < adapter.getData().size(); i++) { + if (!adapter.getData().get(i).getAreaId().equals(bean.getAreaId())) { + adapter.getData().get(i).setCheck(false); + } + } + } + } + adapter.notifyDataSetChanged(); + }); + } + + @Override + public View onCreateContentView() { + return createPopupById(R.layout.popup_condition_layout); + } + + public OnListPopupItemClickListener getOnListPopupItemClickListener() { + return mOnListPopupItemClickListener; + } + + public void setOnListPopupItemClickListener(OnListPopupItemClickListener onListPopupItemClickListener) { + mOnListPopupItemClickListener = onListPopupItemClickListener; + } + + public interface OnListPopupItemClickListener { + void onItemClick(AreaBean bean, boolean isCheck, int pos); + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/ConditionPopup.java b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/ConditionPopup.java index 58a3cbb..16b3ccf 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/widget/ConditionPopup.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/widget/ConditionPopup.java @@ -7,6 +7,7 @@ import android.view.View; import com.sucstepsoft.realtimelocation.R; import com.sucstepsoft.realtimelocation.adapters.ConditionAdapter; +import com.sucstepsoft.realtimelocation.beans.ConditionDicBean; import com.sucstepsoft.realtimelocation.beans.DicBean; import java.util.List; @@ -20,11 +21,11 @@ import razerdp.basepopup.BasePopupWindow; * 描述: */ public class ConditionPopup extends BasePopupWindow { - private List mDatas; + private List mDatas; private final RecyclerView mRlvConditions; private OnListPopupItemClickListener mOnListPopupItemClickListener; - public ConditionPopup(Context context, List data) { + public ConditionPopup(Context context, List data) { super(context); this.mDatas = data; mRlvConditions = findViewById(R.id.rlv_conditions); @@ -43,7 +44,7 @@ public class ConditionPopup extends BasePopupWindow { if (isCheck) { if (true) { for (int i = 0; i < adapter.getData().size(); i++) { - if (!adapter.getData().get(i).getDictionaryId().equals(bean.getDictionaryId())) { + if (!adapter.getData().get(i).getName().equals(bean.getName())) { adapter.getData().get(i).setCheck(false); } } @@ -67,6 +68,6 @@ public class ConditionPopup extends BasePopupWindow { } public interface OnListPopupItemClickListener { - void onItemClick(DicBean bean, boolean isCheck, int pos); + void onItemClick(ConditionDicBean bean, boolean isCheck, int pos); } } diff --git a/app/src/main/res/layout/activity_census_expandable_main.xml b/app/src/main/res/layout/activity_census_expandable_main.xml index 3981f93..bf7e388 100644 --- a/app/src/main/res/layout/activity_census_expandable_main.xml +++ b/app/src/main/res/layout/activity_census_expandable_main.xml @@ -42,7 +42,7 @@ android:drawablePadding="10dp" android:paddingTop="8dp" android:paddingBottom="8dp" - android:text="正常人群" + android:text="一般群体" android:textColor="@color/black" android:textSize="18sp" /> @@ -72,7 +72,8 @@ android:paddingBottom="8dp" android:text="户籍信息" android:textColor="@color/black" - android:textSize="18sp" /> + android:textSize="18sp" + android:visibility="gone" /> @@ -151,6 +152,116 @@ android:layout_height="wrap_content" android:orientation="vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_new_house_list.xml b/app/src/main/res/layout/activity_new_house_list.xml new file mode 100644 index 0000000..f5c9aa5 --- /dev/null +++ b/app/src/main/res/layout/activity_new_house_list.xml @@ -0,0 +1,25 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_new_house_manage.xml b/app/src/main/res/layout/activity_new_house_manage.xml new file mode 100644 index 0000000..9ea70f0 --- /dev/null +++ b/app/src/main/res/layout/activity_new_house_manage.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_population_add.xml b/app/src/main/res/layout/activity_population_add.xml new file mode 100644 index 0000000..6031a43 --- /dev/null +++ b/app/src/main/res/layout/activity_population_add.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + +