diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bbdea26..4fb7fce 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -48,6 +48,27 @@ android:theme="@style/AppTheme" android:usesCleartextTraffic="true" tools:ignore="GoogleAppIndexingWarning"> + + + + + + + + + mDicPicker; + private List mDicBeanList; + + private String mSelAreaName = ""; + private String mSelAreaCode = ""; + private String mIdCard; + + + @Override + protected int setLayoutId() { + return R.layout.activity_census_heresy_add; + } + + @Override + public void initData() { + mBind = ButterKnife.bind(this); + + mLlContent.setVisibility(View.INVISIBLE); + //主键 + mId = getIntent().getStringExtra("id"); + mIdCard = getIntent().getStringExtra("idCard"); + //获取人员详情 + String title = getIntent().getStringExtra("title"); + if (!TextUtils.isEmpty(mId)) { + //编辑 + mLlSearchContent.setVisibility(View.GONE); + refreshView(STATE_LOAD_LOADING); + getDetailById(mId); + } else { + //新增 + mLlSearchContent.setVisibility(View.GONE); + } + mTvBaseTitle.setText(title); + mBtnSearch.setOnClickListener(v -> doSearchPerson()); + mIvClear.setOnClickListener(v -> mEtSearchIdCard.setText("")); + mTvHeresyType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_HERESY_TYPE, 2, 1)); + mTvHelpCase.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_HELP, 2, 2)); + mTvAddress.setOnClickListener(v -> onShowArea()); + mTvHeresyDate.setOnClickListener(v -> onShowDate(mTvHeresyDate)); + mTvGetDate.setOnClickListener(v -> onShowDate(mTvGetDate)); + + mBtnConfirm.setOnClickListener(v -> doSubmit()); + getPersonDetail(); + } + + /** + * 获取人员详情 + */ + private void getPersonDetail() { + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getBaseRegisterDetail(mIdCard, UserLgUtils.getToken()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribeOn(Schedulers.io()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(BaseRegisterDetailBean baseRegisterDetailBean) { + //设置基础信息 + setBaseInfo(baseRegisterDetailBean); + refreshView(STATE_LOAD_SUCCESS); + } + + @Override + public void onError(Throwable e) { + refreshView(STATE_LOAD_ERROR); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + + /** + * 日期 + * 1 释放日期 2衔接日期 3释放日期 + */ + private void onShowDate(TextView tvItem) { + hideSoftKeyboard(); + TimePickerView mTimePickerView = new TimePickerBuilder(mActivity, (date, v) -> { + tvItem.setText(mDateFormat.format(date)); + }) + .setTitleText("请选日期") + .setCancelColor(Color.parseColor("#1189FF")) + .setSubmitColor(Color.parseColor("#1189FF")) + .setType(new boolean[]{true, true, true, false, false, false}) + .setTitleColor(Color.parseColor("#1189FF")) + .build(); + mTimePickerView.show(); + } + + + private void doSubmit() { + if (checkParams()) { + if (!TextUtils.isEmpty(mId)) { + doEdit(); + } else { + doAdd(); + } + } + } + + /** + * 地区选择 + */ + private void onShowArea() { + AreaChooseDialog dialog = new AreaChooseDialog + .DialogBuilder(mActivity) + .setDefault(true) + .build(); + dialog.addOnChoseListener((names, id, code) -> { + mSelAreaCode = code; + mSelAreaName = names; + mTvAddress.setText(names); + dialog.dismiss(); + }); + dialog.show(); + } + + /** + * 添加 + */ + private void doAdd() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "保存中..."); + dialog.show(); + RequestBody body = buildParams(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .doSaveHeresy(body, 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) { + dialog.dismiss(); + ToastUtils.showShort("新增成功"); + finish(); + } + + @Override + public void onError(@NonNull Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + + } + + /** + * 编辑 + */ + private void doEdit() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "修改中..."); + dialog.show(); + RequestBody body = buildParams(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .doEditHeresy(mId, body, 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) { + dialog.dismiss(); + ToastUtils.showShort("修改成功"); + finish(); + } + + @Override + public void onError(@NonNull Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + private void onShowDicPicker(String id, int type, int source) { + hideSoftKeyboard(); + if (type == 1) { + mDicPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { + DicBean dicBean = mDicBeanList.get(o1); + if (source == 1) { + mTvHeresyType.setText(dicBean.getDictionaryName()); + } else { + mTvHelpCase.setText(dicBean.getDictionaryName()); + } + }) + .setTitleText("请选择") + .setCancelColor(Color.parseColor("#1189FF")) + .setSubmitColor(Color.parseColor("#1189FF")) + .setTitleColor(Color.parseColor("#1189FF")) + .build(); + mDicPicker.setPicker(mDicBeanList); + mDicPicker.show(); + } else { + getDicListByType(id, type, source); + } + } + + private void getDicListByType(String pId, int i, int source) { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getDictListAllByPid(pId, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull List l) { + dialog.dismiss(); + if (l != null && l.size() > 0) { + mDicBeanList = l; + onShowDicPicker(pId, 1, source); + } else { + ToastUtils.showShort("暂无数据"); + } + } + + @Override + public void onError(@NonNull Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + + } + + + private RequestBody buildParams() { + SaveHeresyBean bean = new SaveHeresyBean(); + bean.setPopulationInfoId(mBaseInfoBean.getPopulationInfoId()); + String type = mTvHeresyType.getText().toString().trim(); + bean.setType(type); + String heresyDate = mTvHeresyDate.getText().toString().trim(); + bean.setTime(heresyDate); + String phone = mEtPhone.getText().toString().trim(); + bean.setPhone(phone); + String helpCase = mTvHelpCase.getText().toString().trim(); + bean.setHelp(helpCase); + bean.setCultAddress(mSelAreaName); + bean.setCultAreaCode(mSelAreaCode); + bean.setCultAreaName(mSelAreaName); + String getDate = mTvGetDate.getText().toString().trim(); + bean.setPuttime(getDate); + bean.setDocontinue(mSwIsHeresy.isChecked() ? "是" : "否"); + Gson gson = new Gson(); + String obj = gson.toJson(bean); + RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); + return requestBody; + } + + /** + * 校验参数 + */ + private boolean checkParams() { + String crimeName = mTvHeresyType.getText().toString().trim(); + if (TextUtils.isEmpty(crimeName)) { + ToastUtils.showShort("请选择涉邪代码"); + return false; + } + String prisonTerm = mTvHeresyDate.getText().toString().trim(); + if (TextUtils.isEmpty(prisonTerm)) { + ToastUtils.showShort("请选择涉邪时间"); + return false; + } + String controlPhone = mEtPhone.getText().toString().trim(); + if (TextUtils.isEmpty(controlPhone) || !RegexUtils.isPhone(controlPhone)) { + ToastUtils.showShort("请输入正确的联系电话"); + return false; + } + + + return true; + } + + /** + * 获取详情 + */ + private void getDetailById(String id) { + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getHeresyDetailById(id, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull HeresyDetailBean censusCrimeDetailBean) { + setDataToView(censusCrimeDetailBean, 0); + } + + @Override + public void onError(@NonNull Throwable e) { + ExceptionHandler.handleException(e); + refreshView(STATE_LOAD_ERROR); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 根据身份证号码收搜人员详细信息 + */ + private void doSearchPerson() { + String searchIdCard = mEtSearchIdCard.getText().toString().trim(); + if (TextUtils.isEmpty(searchIdCard) || !RegexUtils.isIDNumber(searchIdCard)) { + ToastUtils.showShort("请输入合法的身份证号码"); + } else { + hideSoftKeyboard(); + ProgressDialog dialog = UIUtil.initDialog(mActivity, "查询中..."); + dialog.show(); + + + } + } + + /** + * 回填数据 + */ + private void setDataToView(HeresyDetailBean bean, int type) { + mId = bean.getCultId(); + mTvHeresyType.setText(bean.getType()); + mTvHeresyDate.setText(bean.getTime()); + mEtPhone.setText(bean.getPhone()); + mTvHelpCase.setText(bean.getHelp()); + mSelAreaCode = bean.getCultAreaCode(); + mSelAreaName = bean.getCultAreaName(); + mTvAddress.setText(bean.getCultAddress()); + mTvGetDate.setText(bean.getPuttime()); + mSwIsHeresy.setChecked("是".equals(bean.getDocontinue())); + refreshView(STATE_LOAD_SUCCESS); + } + + /** + * 设置基础信息 + */ + private void setBaseInfo(BaseRegisterDetailBean o) { + mBaseInfoBean = o; + mLlContent.setVisibility(View.VISIBLE); + mTvBaseName.setText(o.getName()); + mTvBaseGender.setText(o.getSex()); + mTvBasePhone.setText(o.getPhone()); + mTvBaseNative.setText(o.getOriginAddress()); + mTvBaseCurLoc.setText(o.getDomicileAreaName() + "/" + o.getDomicileAddress()); + + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (mBind != null) { + mBind.unbind(); + } + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusHeresyDetailActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusHeresyDetailActivity.java new file mode 100644 index 0000000..17e3824 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusHeresyDetailActivity.java @@ -0,0 +1,158 @@ +package com.sucstepsoft.realtimelocation.activitys.census.special; + +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.Switch; +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.UserLgUtils; +import com.sucstepsoft.realtimelocation.R; +import com.sucstepsoft.realtimelocation.beans.person.BaseRegisterDetailBean; +import com.sucstepsoft.realtimelocation.beans.person.CorrectDetailBean; +import com.sucstepsoft.realtimelocation.beans.person.HeresyDetailBean; +import com.sucstepsoft.realtimelocation.net.LocationApiService; +import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.Unbinder; +import io.reactivex.Observable; +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.annotations.NonNull; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; + +/** + * 特殊人群-涉邪人员 + */ +public class CensusHeresyDetailActivity 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) + LinearLayout mCvBaseInfo; + @BindView(R.id.tv_heresy_type) + TextView mTvHeresyType; + @BindView(R.id.tv_heresy_date) + TextView mTvHeresyDate; + @BindView(R.id.et_phone) + TextView mEtPhone; + @BindView(R.id.tv_help_case) + TextView mTvHelpCase; + @BindView(R.id.tv_address) + TextView mTvAddress; + @BindView(R.id.tv_get_date) + TextView mTvGetDate; + @BindView(R.id.sw_is_heresy) + Switch mSwIsHeresy; + @BindView(R.id.ll_content) + LinearLayout mLlContent; + private Unbinder mBind; + private BaseRegisterDetailBean mBaseInfo; + private HeresyDetailBean mDetailBean; + + + @Override + protected int setLayoutId() { + return R.layout.activity_census_heresy_detail; + } + + @Override + public void initData() { + mBind = ButterKnife.bind(this); + mTvBaseTitle.setText("详情"); + refreshView(STATE_LOAD_LOADING); + String id = getIntent().getStringExtra("id"); + String idCard = getIntent().getStringExtra("idCard"); + getDetailData(id, idCard); + } + + /** + * 获取详细信息 + * + * @param id + * @param idCard + */ + private void getDetailData(String id, String idCard) { + Observable baseRegisterDetail = RetrofitManager.getInstance().create(LocationApiService.class).getBaseRegisterDetail(idCard, UserLgUtils.getToken()); + Observable heresyDetailById = RetrofitManager.getInstance().create(LocationApiService.class).getHeresyDetailById(id, UserLgUtils.getToken()); + Observable.merge(baseRegisterDetail, heresyDetailById) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull Object o) { + if (o instanceof BaseRegisterDetailBean) { + mBaseInfo = (BaseRegisterDetailBean) o; + setBaseInfo(); + } else if (o instanceof HeresyDetailBean) { + mDetailBean = (HeresyDetailBean) o; + setDataToView(); + } + refreshView(STATE_LOAD_SUCCESS); + } + + @Override + public void onError(@NonNull Throwable e) { + ExceptionHandler.handleException(e); + refreshView(STATE_LOAD_ERROR); + } + + @Override + public void onComplete() { + + } + }); + + } + + /** + * 基础信息 + */ + private void setBaseInfo() { + mTvBaseName.setText(mBaseInfo.getName()); + mTvBaseGender.setText(mBaseInfo.getSex()); + mTvBasePhone.setText(mBaseInfo.getPhone()); + mTvBaseNative.setText(mBaseInfo.getOriginAddress()); + mTvBaseCurLoc.setText(mBaseInfo.getDomicileAreaName() + "/" + mBaseInfo.getDomicileAddress()); + } + + /** + * 详细信息 + */ + private void setDataToView() { + mTvHeresyType.setText(mDetailBean.getType()); + mTvHeresyDate.setText(mDetailBean.getTime()); + mEtPhone.setText(mDetailBean.getPhone()); + mTvHelpCase.setText(mDetailBean.getHelp()); + mTvAddress.setText(mDetailBean.getCultAddress()); + mTvGetDate.setText(mDetailBean.getPuttime()); + mSwIsHeresy.setChecked("是".equals(mDetailBean.getDocontinue())); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusHeresyListActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusHeresyListActivity.java new file mode 100644 index 0000000..f181bde --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusHeresyListActivity.java @@ -0,0 +1,271 @@ +package com.sucstepsoft.realtimelocation.activitys.census.special; + +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 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.CorrectPersonAdapter; +import com.sucstepsoft.realtimelocation.adapters.HeresyPersonAdapter; +import com.sucstepsoft.realtimelocation.beans.SuccessBean; +import com.sucstepsoft.realtimelocation.beans.person.HeresyBean; +import com.sucstepsoft.realtimelocation.beans.person.PersonCorrectBean; +import com.sucstepsoft.realtimelocation.net.LocationApiService; +import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.Unbinder; +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.annotations.NonNull; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; + +/** + * 特殊人群-涉邪人员 + */ +public class CensusHeresyListActivity extends BaseActivity { + @BindView(R.id.xlv_content) + XRecyclerView mXlvItems; + private Unbinder mBind; + private String mRows = "20"; + private int mCurPage = 1; + private HeresyPersonAdapter mAdapter; + private List mDatas = new ArrayList<>(); + private Disposable mDisposable; + + + private String mKeywords = ""; + private String mId; + + @Override + protected int setLayoutId() { + return R.layout.activity_census_corrct_list; + } + + @Override + public void initData() { + mBind = ButterKnife.bind(this); + mTvBaseTitle.setText("涉邪人员"); + mTvPublish.setVisibility(View.VISIBLE); + mTvPublish.setText("新增"); + mId = getIntent().getStringExtra("idCard"); + mTvPublish.setOnClickListener(v -> { + Intent intent = new Intent(mActivity, CensusHeresyAddActivity.class); + intent.putExtra("title", "涉邪人员信息录入"); + intent.putExtra("idCard", mId); + startActivity(intent); + }); + mAdapter = new HeresyPersonAdapter(mActivity, mDatas); + LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity); + layoutManager.setOrientation(LinearLayoutManager.VERTICAL); + mXlvItems.setLayoutManager(layoutManager); + mXlvItems.setAdapter(mAdapter); + mAdapter.addOnItemClickListener(bean -> showDetail(bean)); + mXlvItems.setRefreshProgressStyle(ProgressStyle.BallGridBeat); + mXlvItems.setLoadingMoreProgressStyle(ProgressStyle.Pacman); + mXlvItems.setPullRefreshEnabled(true); + mXlvItems.setLoadingMoreEnabled(true); + mXlvItems.setLoadingListener(new XRecyclerView.LoadingListener() { + @Override + public void onRefresh() { + refreshData(); + } + + @Override + public void onLoadMore() { + getUpcomingList(mCurPage); + } + }); + mAdapter.addOnEditListener(new HeresyPersonAdapter.OnEditListener() { + @Override + public void onDel(HeresyBean.RowsBean bean, int pos) { + doDelBean(bean, pos); + } + + @Override + public void onEdit(HeresyBean.RowsBean bean, int pos) { + doEditBean(bean, pos); + } + }); + } + + + /** + * 删除数据 + * + * @param bean + * @param pos + */ + private void doDelBean(HeresyBean.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) + .doDelHeresy(bean.getCultId(), 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(HeresyBean.RowsBean bean, int pos) { + Intent intent = new Intent(mActivity, CensusHeresyAddActivity.class); + intent.putExtra("title", "涉邪人员信息编辑"); + intent.putExtra("id", bean.getCultId()); + intent.putExtra("idCard", bean.getPopulationInfoId()); + startActivity(intent); + } + + /** + * 显示详情 + * + * @param bean + */ + private void showDetail(HeresyBean.RowsBean bean) { + Intent intent = new Intent(mActivity, CensusHeresyDetailActivity.class); + intent.putExtra("id", bean.getCultId()); + intent.putExtra("idCard", bean.getPopulationInfoId()); + startActivity(intent); + } + + private void refreshData() { + getUpcomingList(1); + } + + @Override + protected void onResume() { + super.onResume(); + refreshData(); + } + + /** + * 获取列表 + */ + private void getUpcomingList(int page) { + mCurPage = page; + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getHeresyList(mId, page + "", mKeywords, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(HeresyBean 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()); + } + refreshView(STATE_LOAD_SUCCESS); + mAdapter.notifyDataSetChanged(); + mXlvItems.refreshComplete(); + if (mDatas.size() >= leaveListBean.getTotal()) { + mXlvItems.loadMoreComplete(); + mXlvItems.setNoMore(true); + } else { + mXlvItems.loadMoreComplete(); + mXlvItems.setNoMore(false); + } + } else { + if (page > 1) { + mXlvItems.loadMoreComplete(); + mXlvItems.setNoMore(true); + refreshView(STATE_LOAD_SUCCESS); + } else { + if (TextUtils.isEmpty(mKeywords)) { + //无数据 + refreshView(STATE_LOAD_EMPTY); + } else { + ToastUtils.showShort("未查询到相关内容"); + } + } + } + } + + @Override + public void onError(Throwable e) { + ToastUtils.showShort("数据加载失,请稍后重试"); + refreshView(STATE_LOAD_ERROR); + } + + @Override + public void onComplete() { + + } + }); + } + + @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/adapters/HeresyPersonAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HeresyPersonAdapter.java new file mode 100644 index 0000000..a51f4bc --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/HeresyPersonAdapter.java @@ -0,0 +1,55 @@ +package com.sucstepsoft.realtimelocation.adapters; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; +import com.sucstepsoft.realtimelocation.R; +import com.sucstepsoft.realtimelocation.adapters.holders.CensusPersonHolder; +import com.sucstepsoft.realtimelocation.beans.person.HeresyBean; + +import java.util.List; + +/** + * 作者: adam + * 日期: 2020/11/17 - 1:22 PM + * 邮箱: itgaojian@163.com + * 描述: 人口adapter + */ +public class HeresyPersonAdapter extends BaseRecyclerAdapter { + public HeresyPersonAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public CensusPersonHolder createHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_person, parent, false); + return new CensusPersonHolder(itemView); + } + + @Override + public void bindHolder(CensusPersonHolder censusPersonHolder, int i) { + HeresyBean.RowsBean bean = mData.get(i); + censusPersonHolder.mTvName.setText(bean.getType()); + censusPersonHolder.mTvNative.setText("涉邪时间:" + bean.getTime()); + censusPersonHolder.mTvPhone.setText("联系方式:" + bean.getPhone()); + censusPersonHolder.mTvLocation.setVisibility(View.GONE); + censusPersonHolder.mLine.setVisibility(View.GONE); + censusPersonHolder.mBtnEdit.setOnClickListener(v -> mEditListener.onEdit(bean, i)); + censusPersonHolder.mBtnDel.setOnClickListener(v -> mEditListener.onDel(bean, i)); + } + + private OnEditListener mEditListener; + + public void addOnEditListener(OnEditListener mListener) { + this.mEditListener = mListener; + } + + public interface OnEditListener { + void onDel(HeresyBean.RowsBean bean, int pos); + + void onEdit(HeresyBean.RowsBean bean, int pos); + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/HeresyBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/HeresyBean.java new file mode 100644 index 0000000..3fd345c --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/HeresyBean.java @@ -0,0 +1,181 @@ +package com.sucstepsoft.realtimelocation.beans.person; + +import java.util.List; + +public class HeresyBean { + + private int page; + private List rows; + private int total; + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsBean { + private String creator; + private String cultAddress; + private String cultAreaCode; + private String cultAreaName; + private String cultId; + private String docontinue; + private String gmtCreate; + private String gmtModified; + private String help; + private String isDelete; + private String modifier; + private String phone; + private String populationInfoId; + private String puttime; + private String time; + private String type; + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getCultAddress() { + return cultAddress; + } + + public void setCultAddress(String cultAddress) { + this.cultAddress = cultAddress; + } + + public String getCultAreaCode() { + return cultAreaCode; + } + + public void setCultAreaCode(String cultAreaCode) { + this.cultAreaCode = cultAreaCode; + } + + public String getCultAreaName() { + return cultAreaName; + } + + public void setCultAreaName(String cultAreaName) { + this.cultAreaName = cultAreaName; + } + + public String getCultId() { + return cultId; + } + + public void setCultId(String cultId) { + this.cultId = cultId; + } + + public String getDocontinue() { + return docontinue; + } + + public void setDocontinue(String docontinue) { + this.docontinue = docontinue; + } + + public String getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public String getGmtModified() { + return gmtModified; + } + + public void setGmtModified(String gmtModified) { + this.gmtModified = gmtModified; + } + + public String getHelp() { + return help; + } + + public void setHelp(String help) { + this.help = help; + } + + public String getIsDelete() { + return isDelete; + } + + public void setIsDelete(String isDelete) { + this.isDelete = isDelete; + } + + public String getModifier() { + return modifier; + } + + public void setModifier(String modifier) { + this.modifier = modifier; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPopulationInfoId() { + return populationInfoId; + } + + public void setPopulationInfoId(String populationInfoId) { + this.populationInfoId = populationInfoId; + } + + public String getPuttime() { + return puttime; + } + + public void setPuttime(String puttime) { + this.puttime = puttime; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/HeresyDetailBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/HeresyDetailBean.java new file mode 100644 index 0000000..a4d9a9d --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/HeresyDetailBean.java @@ -0,0 +1,149 @@ +package com.sucstepsoft.realtimelocation.beans.person; + +public class HeresyDetailBean { + + private String creator; + private String cultAddress; + private String cultAreaCode; + private String cultAreaName; + private String cultId; + private String docontinue; + private String gmtCreate; + private String gmtModified; + private String help; + private String isDelete; + private String modifier; + private String phone; + private String populationInfoId; + private String puttime; + private String time; + private String type; + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getCultAddress() { + return cultAddress; + } + + public void setCultAddress(String cultAddress) { + this.cultAddress = cultAddress; + } + + public String getCultAreaCode() { + return cultAreaCode; + } + + public void setCultAreaCode(String cultAreaCode) { + this.cultAreaCode = cultAreaCode; + } + + public String getCultAreaName() { + return cultAreaName; + } + + public void setCultAreaName(String cultAreaName) { + this.cultAreaName = cultAreaName; + } + + public String getCultId() { + return cultId; + } + + public void setCultId(String cultId) { + this.cultId = cultId; + } + + public String getDocontinue() { + return docontinue; + } + + public void setDocontinue(String docontinue) { + this.docontinue = docontinue; + } + + public String getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public String getGmtModified() { + return gmtModified; + } + + public void setGmtModified(String gmtModified) { + this.gmtModified = gmtModified; + } + + public String getHelp() { + return help; + } + + public void setHelp(String help) { + this.help = help; + } + + public String getIsDelete() { + return isDelete; + } + + public void setIsDelete(String isDelete) { + this.isDelete = isDelete; + } + + public String getModifier() { + return modifier; + } + + public void setModifier(String modifier) { + this.modifier = modifier; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPopulationInfoId() { + return populationInfoId; + } + + public void setPopulationInfoId(String populationInfoId) { + this.populationInfoId = populationInfoId; + } + + public String getPuttime() { + return puttime; + } + + public void setPuttime(String puttime) { + this.puttime = puttime; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/SaveHeresyBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/SaveHeresyBean.java new file mode 100644 index 0000000..8ced94d --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/SaveHeresyBean.java @@ -0,0 +1,95 @@ +package com.sucstepsoft.realtimelocation.beans.person; + +public class SaveHeresyBean { + + private String cultAddress; + private String cultAreaCode; + private String cultAreaName; + private String docontinue; + private String help; + private String phone; + private String populationInfoId; + private String puttime; + private String time; + private String type; + + public String getCultAddress() { + return cultAddress; + } + + public void setCultAddress(String cultAddress) { + this.cultAddress = cultAddress; + } + + public String getCultAreaCode() { + return cultAreaCode; + } + + public void setCultAreaCode(String cultAreaCode) { + this.cultAreaCode = cultAreaCode; + } + + public String getCultAreaName() { + return cultAreaName; + } + + public void setCultAreaName(String cultAreaName) { + this.cultAreaName = cultAreaName; + } + + public String getDocontinue() { + return docontinue; + } + + public void setDocontinue(String docontinue) { + this.docontinue = docontinue; + } + + public String getHelp() { + return help; + } + + public void setHelp(String help) { + this.help = help; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPopulationInfoId() { + return populationInfoId; + } + + public void setPopulationInfoId(String populationInfoId) { + this.populationInfoId = populationInfoId; + } + + public String getPuttime() { + return puttime; + } + + public void setPuttime(String puttime) { + this.puttime = puttime; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } +} 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 28aab33..2b0b1ca 100755 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/net/LocationApiService.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/net/LocationApiService.java @@ -54,6 +54,8 @@ import com.sucstepsoft.realtimelocation.beans.person.CommunityListBean; import com.sucstepsoft.realtimelocation.beans.person.CorrectDetailBean; import com.sucstepsoft.realtimelocation.beans.person.DrugDetailBean; import com.sucstepsoft.realtimelocation.beans.person.DrugPersonBean; +import com.sucstepsoft.realtimelocation.beans.person.HeresyBean; +import com.sucstepsoft.realtimelocation.beans.person.HeresyDetailBean; import com.sucstepsoft.realtimelocation.beans.person.HouseDetailBean; import com.sucstepsoft.realtimelocation.beans.person.HouseListBean; import com.sucstepsoft.realtimelocation.beans.person.OutboundDetailBean; @@ -1098,7 +1100,7 @@ public interface LocationApiService { */ @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) @GET("app/security/listpagesecurity") - Observable getSecurityList(@Query("populationInfoId")String id, @Query("page") String page, @Query("keywords") String key, @Header("token") String token); + Observable getSecurityList(@Query("populationInfoId") String id, @Query("page") String page, @Query("keywords") String key, @Header("token") String token); /*============================================刑满释放===========================================*/ @@ -1143,7 +1145,7 @@ public interface LocationApiService { */ @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) @GET("app/release/listpagerelease") - Observable getCrimeList(@Query("populationInfoId")String id,@Query("page") String page, @Query("keywords") String key, @Header("token") String token); + Observable getCrimeList(@Query("populationInfoId") String id, @Query("page") String page, @Query("keywords") String key, @Header("token") String token); /*===========================================社区矫正===========================================*/ @@ -1188,7 +1190,7 @@ public interface LocationApiService { */ @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) @GET("app/correct/listpagecorrect") - Observable getCorrectList(@Query("populationInfoId") String id,@Query("page") String page, @Query("keywords") String keywords, @Header("token") String token); + Observable getCorrectList(@Query("populationInfoId") String id, @Query("page") String page, @Query("keywords") String keywords, @Header("token") String token); /*===========================================肇事===========================================*/ @@ -1277,7 +1279,47 @@ public interface LocationApiService { */ @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) @GET("app/drug/listpagedrug") - Observable getDrugList(@Query("populationInfoId")String id, @Query("page") String page, @Query("keywords") String key, @Header("token") String token); + Observable getDrugList(@Query("populationInfoId") String id, @Query("page") String page, @Query("keywords") String key, @Header("token") String token); + + + + /*===========================================涉邪人员===========================================*/ + + /** + * 保存吸毒人员 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @POST("app/cult/save") + Observable doSaveHeresy(@Body RequestBody body, @Header("token") String token); + + /** + * 编辑吸毒人员 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @PUT("app/cult/updatecult/{cultId}") + Observable doEditHeresy(@Path("cultId") String id, @Body RequestBody body, @Header("token") String token); + + /** + * 删除吸毒 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @DELETE("app/cult/remove/{ids}") + Observable doDelHeresy(@Path("ids") String id, @Header("token") String token); + + /** + * 根据ID获取详情 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/cult/get/{cultId}") + Observable getHeresyDetailById(@Path("cultId") String id, @Header("token") String token); + + + /** + * 涉邪人员列表 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/cult/listpagecult") + Observable getHeresyList(@Query("populationInfoId") String id, @Query("page") String page, @Query("keywords") String key, @Header("token") String token); /*===========================================艾滋===========================================*/ diff --git a/app/src/main/res/layout/activity_census_corrct_heresy.xml b/app/src/main/res/layout/activity_census_corrct_heresy.xml new file mode 100644 index 0000000..d90746f --- /dev/null +++ b/app/src/main/res/layout/activity_census_corrct_heresy.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_census_heresy_add.xml b/app/src/main/res/layout/activity_census_heresy_add.xml new file mode 100644 index 0000000..a775aee --- /dev/null +++ b/app/src/main/res/layout/activity_census_heresy_add.xml @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +