重点上访

This commit is contained in:
itgaojian 2023-11-02 11:06:41 +08:00
parent 9b3df82535
commit 861c7a27bc
14 changed files with 2167 additions and 4 deletions

View File

@ -48,7 +48,21 @@
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".activitys.census.special.CensusPetitionDetailActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden"
tools:ignore="LockedOrientationActivity" />
<activity
android:name=".activitys.census.special.CensusPetitionAddActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden"
tools:ignore="LockedOrientationActivity" />
<activity
android:name=".activitys.census.special.CensusPetitionListActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden"
tools:ignore="LockedOrientationActivity" />
<activity
android:name=".activitys.census.special.CensusHeresyAddActivity"

View File

@ -15,6 +15,7 @@ import com.sucstepsoft.realtimelocation.R;
import com.sucstepsoft.realtimelocation.activitys.census.special.CensusCorrctListActivity;
import com.sucstepsoft.realtimelocation.activitys.census.special.CensusDrugListActivity;
import com.sucstepsoft.realtimelocation.activitys.census.special.CensusHeresyListActivity;
import com.sucstepsoft.realtimelocation.activitys.census.special.CensusPetitionListActivity;
import com.sucstepsoft.realtimelocation.activitys.census.special.CensusSecurityListActivity;
import com.sucstepsoft.realtimelocation.activitys.census.special.CensusSpecialCriminalListActivity;
import com.sucstepsoft.realtimelocation.beans.OperateBean;
@ -267,6 +268,8 @@ public class CensusRegisterDetailActivity extends BaseActivity {
startActivity(intent);
break;
case "7"://重点上访
intent.setClass(mActivity, CensusPetitionListActivity.class);
startActivity(intent);
break;
}

View File

@ -0,0 +1,544 @@
package com.sucstepsoft.realtimelocation.activitys.census.special;
import android.app.ProgressDialog;
import android.graphics.Color;
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.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.bigkoo.pickerview.view.TimePickerView;
import com.google.gson.Gson;
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;
import com.sucstepsoft.cm_utils.utils.UIUtil;
import com.sucstepsoft.cm_utils.utils.UserLgUtils;
import com.sucstepsoft.realtimelocation.R;
import com.sucstepsoft.realtimelocation.beans.DicBean;
import com.sucstepsoft.realtimelocation.beans.SuccessBean;
import com.sucstepsoft.realtimelocation.beans.person.BaseRegisterDetailBean;
import com.sucstepsoft.realtimelocation.beans.person.PetitionDetailBean;
import com.sucstepsoft.realtimelocation.beans.person.SavePetitionBean;
import com.sucstepsoft.realtimelocation.net.LocationApiService;
import com.sucstepsoft.realtimelocation.utils.ExceptionHandler;
import java.text.SimpleDateFormat;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* 社会治安
*/
public class CensusPetitionAddActivity 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_activation)
TextView mTvActivation;
@BindView(R.id.tv_measure)
TextView mTvMeasure;
@BindView(R.id.tv_economy)
TextView mTvEconomy;
@BindView(R.id.tv_stabilize_status)
TextView mTvStabilizeStatus;
@BindView(R.id.tv_stabilize_level)
TextView mTvStabilizeLevel;
@BindView(R.id.tv_type)
TextView mTvType;
@BindView(R.id.tv_reason)
TextView mTvReason;
@BindView(R.id.et_reason_other)
EditText mEtReasonOther;
@BindView(R.id.tv_onduty)
TextView mTvOnduty;
@BindView(R.id.tv_handle)
TextView mTvHandle;
@BindView(R.id.tv_coordinate)
TextView mTvCoordinate;
@BindView(R.id.tv_talk)
TextView mTvTalk;
@BindView(R.id.btn_confirm)
Button mBtnConfirm;
@BindView(R.id.ll_content)
LinearLayout mLlContent;
private Unbinder mBind;
private String mId;
private SimpleDateFormat mDateFormat = new SimpleDateFormat("yyyy-MM-dd");
private OptionsPickerView<DicBean> mDicPicker;
private List<DicBean> mDicBeanList;
private DicBean mSelTalk;
private DicBean mSelCoordinate;
private String mSelAreaName = "";
private String mSelAreaCode = "";
private String mIdCard;
private BaseRegisterDetailBean mBaseInfoBean;
@Override
protected int setLayoutId() {
return R.layout.activity_census_petition_add;
}
@Override
public void initData() {
mBind = ButterKnife.bind(this);
//主键
mId = getIntent().getStringExtra("id");
mIdCard = getIntent().getStringExtra("idCard");
String title = getIntent().getStringExtra("title");
if (!TextUtils.isEmpty(mId)) {
//编辑
refreshView(STATE_LOAD_LOADING);
getDetailById(mId);
} else {
//新增
refreshView(STATE_LOAD_SUCCESS);
}
mTvBaseTitle.setText(title);
initContentView();
getPersonDetail();
}
/**
* 获取人员详情
*/
private void getPersonDetail() {
RetrofitManager.getInstance()
.create(LocationApiService.class)
.getBaseRegisterDetail(mIdCard, UserLgUtils.getToken())
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Observer<BaseRegisterDetailBean>() {
@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() {
}
});
}
/**
* 初始化
*/
private void initContentView() {
mTvActivation.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_ACTIVATION, 2, 1));
mTvMeasure.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_MEASURE, 2, 2));
mTvEconomy.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_ECONOMY_SOURCE, 2, 3));
mTvStabilizeStatus.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_STABILIZE_STATUS, 2, 4));
mTvStabilizeLevel.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_STABILIZE_LEVEL, 2, 5));
mTvType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_UP_TYPE, 2, 6));
mTvReason.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_UP_REASON, 2, 7));
mTvOnduty.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_ONDUTY, 2, 8));
mTvHandle.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_HANDLE, 2, 9));
mTvCoordinate.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_COORD, 2, 10));
mTvTalk.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_TALK, 2, 11));
mBtnConfirm.setOnClickListener(v -> doSubmit());
}
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);
chooseDic(dicBean, source);
})
.setTitleText("请选择")
.setCancelColor(Color.parseColor("#1189FF"))
.setSubmitColor(Color.parseColor("#1189FF"))
.setTitleColor(Color.parseColor("#1189FF"))
.build();
mDicPicker.setPicker(mDicBeanList);
mDicPicker.show();
} else {
getDicListByType(id, type, source);
}
}
/**
* 确认字典
*
* @param source
*/
private void chooseDic(DicBean dicBean, int source) {
switch (source) {
case 1://活跃度
mTvActivation.setText(dicBean.getDictionaryName());
break;
case 2://措施手段
mTvMeasure.setText(dicBean.getDictionaryName());
break;
case 3://经济来源
mTvEconomy.setText(dicBean.getDictionaryName());
break;
case 4://装填
mTvStabilizeStatus.setText(dicBean.getDictionaryName());
break;
case 5://等级
mTvStabilizeLevel.setText(dicBean.getDictionaryName());
break;
case 6://类型
mTvType.setText(dicBean.getDictionaryName());
break;
case 7://原因
mTvReason.setText(dicBean.getDictionaryName());
break;
case 8://在位情况
mTvOnduty.setText(dicBean.getDictionaryName());
break;
case 9://处理情况
mTvHandle.setText(dicBean.getDictionaryName());
break;
case 10://工作协调
mSelCoordinate = dicBean;
mTvCoordinate.setText(dicBean.getDictionaryName());
break;
case 11://谈话
mSelTalk = dicBean;
mTvTalk.setText(dicBean.getDictionaryName());
break;
}
}
private void getDicListByType(String pId, int i, int source) {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
RetrofitManager.getInstance()
.create(LocationApiService.class)
.getDictListAllByPid(pId, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<DicBean>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull List<DicBean> l) {
dialog.dismiss();
if (l != null && l.size() > 0) {
mDicBeanList = l;
onShowDicPicker(pId, 1, source);
} else {
ToastUtils.showShort("暂无数据");
}
}
@Override
public void onError(@NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
private void onShowDate(TextView i) {
hideSoftKeyboard();
TimePickerView mTimePickerView = new TimePickerBuilder(mActivity, (date, v) -> {
i.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 doAdd() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "保存中...");
dialog.show();
RequestBody body = buildParams();
RetrofitManager.getInstance()
.create(LocationApiService.class)
.doSavePetition(body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@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 doSubmit() {
if (checkParams()) {
if (!TextUtils.isEmpty(mId)) {
doEdit();
} else {
doAdd();
}
}
}
/**
* 编辑
*/
private void doEdit() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "修改中...");
dialog.show();
RequestBody body = buildParams();
RetrofitManager.getInstance()
.create(LocationApiService.class)
.doEditPetition(mId, body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@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 RequestBody buildParams() {
SavePetitionBean bean = new SavePetitionBean();
bean.setPopulationInfoId(mBaseInfoBean.getPopulationInfoId());
String activation = mTvActivation.getText().toString().trim();
bean.setActivation(activation);
String measure = mTvMeasure.getText().toString().trim();
bean.setMeasure(measure);
String economy = mTvEconomy.getText().toString().trim();
bean.setEconomy(economy);
String status = mTvStabilizeStatus.getText().toString().trim();
bean.setStabilizeStatus(status);
String levle = mTvStabilizeLevel.getText().toString().trim();
bean.setStabilizeLevel(levle);
String type = mTvType.getText().toString().trim();
bean.setType(type);
String reason = mTvReason.getText().toString().trim();
bean.setReason(reason);
String reasonOther = mEtReasonOther.getText().toString().trim();
bean.setReasonOther(reasonOther);
String onduty = mTvOnduty.getText().toString().trim();
bean.setOnduty(onduty);
String handleStatus = mTvHandle.getText().toString().trim();
bean.setHandle(handleStatus);
if (mSelCoordinate != null) {
bean.setCoordinate(mSelCoordinate.getDictionaryId());
}
if (mSelTalk != null) {
bean.setTalk(mSelTalk.getDictionaryId());
}
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 = mTvActivation.getText().toString().trim();
if (TextUtils.isEmpty(crimeName)) {
ToastUtils.showShort("请选择活跃度");
return false;
}
String crimeName1 = mTvMeasure.getText().toString().trim();
if (TextUtils.isEmpty(crimeName1)) {
ToastUtils.showShort("请选择措施手段");
return false;
}
String type = mTvType.getText().toString().trim();
if (TextUtils.isEmpty(type)) {
ToastUtils.showShort("请选择上访类型");
return false;
}
return true;
}
/**
* 获取详情
*/
private void getDetailById(String id) {
RetrofitManager.getInstance()
.create(LocationApiService.class)
.getPetitionDetailById(id, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<PetitionDetailBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull PetitionDetailBean censusCrimeDetailBean) {
setDataToView(censusCrimeDetailBean, 0);
}
@Override
public void onError(@NonNull Throwable e) {
ExceptionHandler.handleException(e);
refreshView(STATE_LOAD_ERROR);
}
@Override
public void onComplete() {
}
});
}
/**
* 回填数据
*/
private void setDataToView(PetitionDetailBean bean, int type) {
mId = bean.getPetitionId();
mTvActivation.setText(bean.getActivation());
mTvMeasure.setText(bean.getMeasure());
mTvEconomy.setText(bean.getEconomy());
mTvStabilizeStatus.setText(bean.getStabilizeStatus());
mTvStabilizeLevel.setText(bean.getStabilizeLevel());
mTvType.setText(bean.getType());
mTvReason.setText(bean.getReason());
mEtReasonOther.setText(bean.getReasonOther());
mTvOnduty.setText(bean.getOnduty());
mTvHandle.setText(bean.getHandle());
if (!TextUtils.isEmpty(bean.getCoordinate())) {
mSelCoordinate = new DicBean();
mSelCoordinate.setDictionaryId(bean.getCoordinate());
mSelCoordinate.setDictionaryName(bean.getCoordinateName());
mTvCoordinate.setText(bean.getCoordinateName());
}
if (!TextUtils.isEmpty(bean.getTalk())) {
mSelTalk = new DicBean();
mSelTalk.setDictionaryId(bean.getCoordinate());
mSelTalk.setDictionaryName(bean.getTalkName());
mTvTalk.setText(bean.getTalkName());
}
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();
}
}
}

View File

@ -0,0 +1,175 @@
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.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.PetitionDetailBean;
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 CensusPetitionDetailActivity 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_activation)
TextView mTvActivation;
@BindView(R.id.tv_measure)
TextView mTvMeasure;
@BindView(R.id.tv_economy)
TextView mTvEconomy;
@BindView(R.id.tv_stabilize_status)
TextView mTvStabilizeStatus;
@BindView(R.id.tv_stabilize_level)
TextView mTvStabilizeLevel;
@BindView(R.id.tv_type)
TextView mTvType;
@BindView(R.id.tv_reason)
TextView mTvReason;
@BindView(R.id.tv_reason_other)
TextView mTvReasonOther;
@BindView(R.id.tv_onduty)
TextView mTvOnduty;
@BindView(R.id.tv_handle)
TextView mTvHandle;
@BindView(R.id.tv_coordinate)
TextView mTvCoordinate;
@BindView(R.id.tv_talk)
TextView mTvTalk;
@BindView(R.id.ll_content)
LinearLayout mLlContent;
private Unbinder mBind;
private BaseRegisterDetailBean mBaseInfo;
private PetitionDetailBean mDetailBean;
@Override
protected int setLayoutId() {
return R.layout.activity_census_petition_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<BaseRegisterDetailBean> baseRegisterDetail = RetrofitManager.getInstance().create(LocationApiService.class).getBaseRegisterDetail(idCard, UserLgUtils.getToken());
Observable<PetitionDetailBean> securityDetailById = RetrofitManager.getInstance().create(LocationApiService.class).getPetitionDetailById(id, UserLgUtils.getToken());
Observable.merge(baseRegisterDetail, securityDetailById)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Object>() {
@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 PetitionDetailBean) {
mDetailBean = (PetitionDetailBean) 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() {
mTvActivation.setText(mDetailBean.getActivation());
mTvMeasure.setText(mDetailBean.getMeasure());
mTvEconomy.setText(mDetailBean.getEconomy());
mTvStabilizeStatus.setText(mDetailBean.getStabilizeStatus());
mTvStabilizeLevel.setText(mDetailBean.getStabilizeLevel());
mTvType.setText(mDetailBean.getType());
mTvReason.setText(mDetailBean.getReason());
mTvReasonOther.setText(mDetailBean.getReasonOther());
mTvOnduty.setText(mDetailBean.getOnduty());
mTvHandle.setText(mDetailBean.getHandle());
mTvCoordinate.setText(mDetailBean.getCoordinateName());
mTvTalk.setText(mDetailBean.getTalkName());
refreshView(STATE_LOAD_SUCCESS);
}
}

View File

@ -0,0 +1,270 @@
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.CorrectPetitionAdapter;
import com.sucstepsoft.realtimelocation.beans.SuccessBean;
import com.sucstepsoft.realtimelocation.beans.person.PetitionBean;
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 CensusPetitionListActivity extends BaseActivity {
@BindView(R.id.xlv_content)
XRecyclerView mXlvItems;
private Unbinder mBind;
private String mRows = "20";
private int mCurPage = 1;
private CorrectPetitionAdapter mAdapter;
private List<PetitionBean.RowsBean> mDatas = new ArrayList<>();
private Disposable mDisposable;
private String mKeywords = "";
private String mId;
@Override
protected int setLayoutId() {
return R.layout.activity_census_petition_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, CensusPetitionAddActivity.class);
intent.putExtra("title", "重点上访信息录入");
intent.putExtra("idCard", mId);
startActivity(intent);
});
mAdapter = new CorrectPetitionAdapter(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 CorrectPetitionAdapter.OnEditListener() {
@Override
public void onDel(PetitionBean.RowsBean bean, int pos) {
doDelBean(bean, pos);
}
@Override
public void onEdit(PetitionBean.RowsBean bean, int pos) {
doEditBean(bean, pos);
}
});
}
/**
* 删除数据
*
* @param bean
* @param pos
*/
private void doDelBean(PetitionBean.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)
.doDelSecurity(bean.getPetitionId(), UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@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(PetitionBean.RowsBean bean, int pos) {
Intent intent = new Intent(mActivity, CensusPetitionAddActivity.class);
intent.putExtra("title", "重点上访信息编辑");
intent.putExtra("id", bean.getPetitionId());
intent.putExtra("idCard", bean.getPopulationInfoId());
startActivity(intent);
}
/**
* 显示详情
*
* @param bean
*/
private void showDetail(PetitionBean.RowsBean bean) {
Intent intent = new Intent(mActivity, CensusPetitionDetailActivity.class);
intent.putExtra("id", bean.getPetitionId());
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)
.getPetitionList(mId, page + "", mKeywords, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<PetitionBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(PetitionBean 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();
}
}

View File

@ -0,0 +1,56 @@
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.CensusSecurityBean;
import com.sucstepsoft.realtimelocation.beans.person.PetitionBean;
import java.util.List;
/**
* 作者: adam
* 日期: 2020/11/17 - 1:22 PM
* 邮箱: itgaojian@163.com
* 描述: 人口adapter
*/
public class CorrectPetitionAdapter extends BaseRecyclerAdapter<PetitionBean.RowsBean, CensusPersonHolder> {
public CorrectPetitionAdapter(Context ctx, List<PetitionBean.RowsBean> 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) {
PetitionBean.RowsBean bean = mData.get(i);
censusPersonHolder.mTvName.setText(bean.getActivation());
censusPersonHolder.mTvNative.setText("措施手段:" + bean.getMeasure());
censusPersonHolder.mTvPhone.setText("上访类型:" + bean.getType());
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(PetitionBean.RowsBean bean, int pos);
void onEdit(PetitionBean.RowsBean bean, int pos);
}
}

View File

@ -0,0 +1,208 @@
package com.sucstepsoft.realtimelocation.beans.person;
import java.util.List;
public class PetitionBean {
private int page;
private List<RowsBean> rows;
private int total;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public List<RowsBean> getRows() {
return rows;
}
public void setRows(List<RowsBean> rows) {
this.rows = rows;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public static class RowsBean {
private String activation;
private String coordinate;
private String creator;
private String economy;
private String gmtCreate;
private String gmtModified;
private String handle;
private String isDelete;
private String measure;
private String modifier;
private String onduty;
private String petitionId;
private String populationInfoId;
private String reason;
private String reasonOther;
private String stabilizeLevel;
private String stabilizeStatus;
private String talk;
private String type;
public String getActivation() {
return activation;
}
public void setActivation(String activation) {
this.activation = activation;
}
public String getCoordinate() {
return coordinate;
}
public void setCoordinate(String coordinate) {
this.coordinate = coordinate;
}
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public String getEconomy() {
return economy;
}
public void setEconomy(String economy) {
this.economy = economy;
}
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 getHandle() {
return handle;
}
public void setHandle(String handle) {
this.handle = handle;
}
public String getIsDelete() {
return isDelete;
}
public void setIsDelete(String isDelete) {
this.isDelete = isDelete;
}
public String getMeasure() {
return measure;
}
public void setMeasure(String measure) {
this.measure = measure;
}
public String getModifier() {
return modifier;
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
public String getOnduty() {
return onduty;
}
public void setOnduty(String onduty) {
this.onduty = onduty;
}
public String getPetitionId() {
return petitionId;
}
public void setPetitionId(String petitionId) {
this.petitionId = petitionId;
}
public String getPopulationInfoId() {
return populationInfoId;
}
public void setPopulationInfoId(String populationInfoId) {
this.populationInfoId = populationInfoId;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public String getReasonOther() {
return reasonOther;
}
public void setReasonOther(String reasonOther) {
this.reasonOther = reasonOther;
}
public String getStabilizeLevel() {
return stabilizeLevel;
}
public void setStabilizeLevel(String stabilizeLevel) {
this.stabilizeLevel = stabilizeLevel;
}
public String getStabilizeStatus() {
return stabilizeStatus;
}
public void setStabilizeStatus(String stabilizeStatus) {
this.stabilizeStatus = stabilizeStatus;
}
public String getTalk() {
return talk;
}
public void setTalk(String talk) {
this.talk = talk;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
}

View File

@ -0,0 +1,194 @@
package com.sucstepsoft.realtimelocation.beans.person;
public class PetitionDetailBean {
private String activation;
private String coordinate;
private String coordinateName;
private String creator;
private String economy;
private String gmtCreate;
private String gmtModified;
private String handle;
private String isDelete;
private String measure;
private String modifier;
private String onduty;
private String petitionId;
private String populationInfoId;
private String reason;
private String reasonOther;
private String stabilizeLevel;
private String stabilizeStatus;
private String talk;
private String talkName;
private String type;
public String getCoordinateName() {
return coordinateName;
}
public void setCoordinateName(String coordinateName) {
this.coordinateName = coordinateName;
}
public String getTalkName() {
return talkName;
}
public void setTalkName(String talkName) {
this.talkName = talkName;
}
public String getActivation() {
return activation;
}
public void setActivation(String activation) {
this.activation = activation;
}
public String getCoordinate() {
return coordinate;
}
public void setCoordinate(String coordinate) {
this.coordinate = coordinate;
}
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public String getEconomy() {
return economy;
}
public void setEconomy(String economy) {
this.economy = economy;
}
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 getHandle() {
return handle;
}
public void setHandle(String handle) {
this.handle = handle;
}
public String getIsDelete() {
return isDelete;
}
public void setIsDelete(String isDelete) {
this.isDelete = isDelete;
}
public String getMeasure() {
return measure;
}
public void setMeasure(String measure) {
this.measure = measure;
}
public String getModifier() {
return modifier;
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
public String getOnduty() {
return onduty;
}
public void setOnduty(String onduty) {
this.onduty = onduty;
}
public String getPetitionId() {
return petitionId;
}
public void setPetitionId(String petitionId) {
this.petitionId = petitionId;
}
public String getPopulationInfoId() {
return populationInfoId;
}
public void setPopulationInfoId(String populationInfoId) {
this.populationInfoId = populationInfoId;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public String getReasonOther() {
return reasonOther;
}
public void setReasonOther(String reasonOther) {
this.reasonOther = reasonOther;
}
public String getStabilizeLevel() {
return stabilizeLevel;
}
public void setStabilizeLevel(String stabilizeLevel) {
this.stabilizeLevel = stabilizeLevel;
}
public String getStabilizeStatus() {
return stabilizeStatus;
}
public void setStabilizeStatus(String stabilizeStatus) {
this.stabilizeStatus = stabilizeStatus;
}
public String getTalk() {
return talk;
}
public void setTalk(String talk) {
this.talk = talk;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}

View File

@ -0,0 +1,122 @@
package com.sucstepsoft.realtimelocation.beans.person;
public class SavePetitionBean {
private String activation;
private String coordinate;
private String economy;
private String handle;
private String measure;
private String onduty;
private String populationInfoId;
private String reason;
private String reasonOther;
private String stabilizeLevel;
private String stabilizeStatus;
private String talk;
private String type;
public String getActivation() {
return activation;
}
public void setActivation(String activation) {
this.activation = activation;
}
public String getCoordinate() {
return coordinate;
}
public void setCoordinate(String coordinate) {
this.coordinate = coordinate;
}
public String getEconomy() {
return economy;
}
public void setEconomy(String economy) {
this.economy = economy;
}
public String getHandle() {
return handle;
}
public void setHandle(String handle) {
this.handle = handle;
}
public String getMeasure() {
return measure;
}
public void setMeasure(String measure) {
this.measure = measure;
}
public String getOnduty() {
return onduty;
}
public void setOnduty(String onduty) {
this.onduty = onduty;
}
public String getPopulationInfoId() {
return populationInfoId;
}
public void setPopulationInfoId(String populationInfoId) {
this.populationInfoId = populationInfoId;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public String getReasonOther() {
return reasonOther;
}
public void setReasonOther(String reasonOther) {
this.reasonOther = reasonOther;
}
public String getStabilizeLevel() {
return stabilizeLevel;
}
public void setStabilizeLevel(String stabilizeLevel) {
this.stabilizeLevel = stabilizeLevel;
}
public String getStabilizeStatus() {
return stabilizeStatus;
}
public void setStabilizeStatus(String stabilizeStatus) {
this.stabilizeStatus = stabilizeStatus;
}
public String getTalk() {
return talk;
}
public void setTalk(String talk) {
this.talk = talk;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}

View File

@ -62,6 +62,8 @@ import com.sucstepsoft.realtimelocation.beans.person.OutboundDetailBean;
import com.sucstepsoft.realtimelocation.beans.person.OutboundListBean;
import com.sucstepsoft.realtimelocation.beans.person.PersonBaseListBean;
import com.sucstepsoft.realtimelocation.beans.person.PersonCorrectBean;
import com.sucstepsoft.realtimelocation.beans.person.PetitionBean;
import com.sucstepsoft.realtimelocation.beans.person.PetitionDetailBean;
import com.sucstepsoft.realtimelocation.beans.person.SearchHouseByPersonBean;
import com.sucstepsoft.realtimelocation.beans.person.SecurityDetailBean;
import com.sucstepsoft.realtimelocation.beans.person.TroubleDetailBean;
@ -1286,21 +1288,21 @@ public interface LocationApiService {
/*===========================================涉邪人员===========================================*/
/**
* 保存吸毒人员
* 保存涉邪人员
*/
@Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
@POST("app/cult/save")
Observable<SuccessBean> 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<SuccessBean> 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}")
@ -1321,6 +1323,45 @@ public interface LocationApiService {
@GET("app/cult/listpagecult")
Observable<HeresyBean> getHeresyList(@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/petition/save")
Observable<SuccessBean> doSavePetition(@Body RequestBody body, @Header("token") String token);
/**
* 编辑重点上访
*/
@Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/petition/updatepetition/{petitionId}")
Observable<SuccessBean> doEditPetition(@Path("petitionId") String id, @Body RequestBody body, @Header("token") String token);
/**
* 删除重点上访
*/
@Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
@DELETE("app/petition/remove/{ids}")
Observable<SuccessBean> doDelPetition(@Path("ids") String id, @Header("token") String token);
/**
* 根据ID获取详情
*/
@Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
@GET("app/petition/get/{petitionId}")
Observable<PetitionDetailBean> getPetitionDetailById(@Path("petitionId") String id, @Header("token") String token);
/**
* 涉邪重点上访
*/
@Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
@GET("app/petition/listpagepetition")
Observable<PetitionBean> getPetitionList(@Query("populationInfoId") String id, @Query("page") String page, @Query("keywords") String key, @Header("token") String token);
/*===========================================艾滋===========================================*/
/**

View File

@ -0,0 +1,270 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:overScrollMode="never"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
layout="@layout/layout_search"
android:visibility="gone" />
<include layout="@layout/layout_base_info" />
<LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
style="@style/issue_report_title"
android:drawableLeft="@drawable/ic_item_title_icon_rec"
android:drawablePadding="5dp"
android:padding="8dp"
android:text="重点上访"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingRight="20dp">
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="活跃度" />
<ImageView
style="@style/style_hint_star"
android:layout_gravity="center_vertical" />
<TextView
android:id="@+id/tv_activation"
style="@style/sel_text_arrow"
android:hint="请选择活跃度" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="措施手段" />
<ImageView
style="@style/style_hint_star"
android:layout_gravity="center_vertical" />
<TextView
android:id="@+id/tv_measure"
style="@style/sel_text_arrow"
android:hint="请选择措施手段" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="经济来源" />
<TextView
android:id="@+id/tv_economy"
style="@style/sel_text_arrow"
android:hint="请选择经济来源" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="涉稳状态" />
<TextView
android:id="@+id/tv_stabilize_status"
style="@style/sel_text_arrow"
android:hint="请选择涉稳状态" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="涉稳等级" />
<TextView
android:id="@+id/tv_stabilize_level"
style="@style/sel_text_arrow"
android:hint="请选择涉稳等级" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="上访类型" />
<ImageView
style="@style/style_hint_star"
android:layout_gravity="center_vertical" />
<TextView
android:id="@+id/tv_type"
style="@style/sel_text_arrow"
android:hint="请选择上访类型" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="上访原因" />
<TextView
android:id="@+id/tv_reason"
style="@style/sel_text_arrow"
android:hint="请选择上访原因" />
</LinearLayout>
<LinearLayout style="@style/item_white_ver">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="上访原因(其他)" />
<EditText
android:id="@+id/et_reason_other"
style="@style/item_content_match_ver_gray"
android:hint="请输入上访原因(其他)"
android:inputType="text"
android:minHeight="80dp" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="在位情况" />
<TextView
android:id="@+id/tv_onduty"
style="@style/sel_text_arrow"
android:hint="请选择在位情况" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="处理情况" />
<TextView
android:id="@+id/tv_handle"
style="@style/sel_text_arrow"
android:hint="请选择处理情况" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="工作协调情况" />
<TextView
android:id="@+id/tv_coordinate"
style="@style/sel_text_arrow"
android:hint="请选择工作协调情况" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="谈话教育训诫情况" />
<TextView
android:id="@+id/tv_talk"
style="@style/sel_text_arrow"
android:hint="请选择谈话教育训诫情况" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/btn_confirm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:background="@drawable/sel_btn_submit"
android:minHeight="0dp"
android:padding="10dp"
android:text="保&#160;&#160;&#160;&#160;存"
android:textColor="@color/white"
android:textSize="17sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>

View File

@ -0,0 +1,238 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:overScrollMode="never"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
layout="@layout/layout_search"
android:visibility="gone" />
<include layout="@layout/layout_base_info" />
<LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
style="@style/issue_report_title"
android:drawableLeft="@drawable/ic_item_title_icon_rec"
android:drawablePadding="5dp"
android:padding="8dp"
android:text="重点上访"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingRight="20dp">
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="活跃度" />
<TextView
android:id="@+id/tv_activation"
style="@style/sel_text_arrow_text" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="措施手段" />
<TextView
android:id="@+id/tv_measure"
style="@style/sel_text_arrow_text" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="经济来源" />
<TextView
android:id="@+id/tv_economy"
style="@style/sel_text_arrow_text" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="涉稳状态" />
<TextView
android:id="@+id/tv_stabilize_status"
style="@style/sel_text_arrow_text" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="涉稳等级" />
<TextView
android:id="@+id/tv_stabilize_level"
style="@style/sel_text_arrow_text" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="上访类型" />
<TextView
android:id="@+id/tv_type"
style="@style/sel_text_arrow_text" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="上访原因" />
<TextView
android:id="@+id/tv_reason"
style="@style/sel_text_arrow_text" />
</LinearLayout>
<LinearLayout style="@style/item_white_ver">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="上访原因(其他)" />
<TextView
android:id="@+id/tv_reason_other"
style="@style/item_content_match_ver_gray"
android:hint="未录入"
android:minHeight="80dp" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="在位情况" />
<TextView
android:id="@+id/tv_onduty"
style="@style/sel_text_arrow_text" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="处理情况" />
<TextView
android:id="@+id/tv_handle"
style="@style/sel_text_arrow_text" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="工作协调情况" />
<TextView
android:id="@+id/tv_coordinate"
style="@style/sel_text_arrow_text" />
</LinearLayout>
<LinearLayout style="@style/item_white_bottom_border">
<TextView
style="@style/item_title_wrap"
android:layout_gravity="center_vertical"
android:text="谈话教育训诫情况" />
<TextView
android:id="@+id/tv_talk"
style="@style/sel_text_arrow_text" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.jcodecraeer.xrecyclerview.XRecyclerView
android:id="@+id/xlv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp" />
</RelativeLayout>

View File

@ -107,6 +107,19 @@ public class PathConfig {
public static final String DIC_GROUP = "b30da878-2576-4e70-8a39-4eeee5ad9983";//小组组成
public static final String DIC_LEAVE = "f29299aa-0651-4346-845a-2f8bf8987778";//请假类型
public static final String DIC_LEAVE_2 = "626c1b6a-e1cc-45f8-9782-55e5a295aae6";//请假类型2
public static final String DIC_ACTIVATION = "e4eb1efc-b61d-478a-9980-94e508019abb";
public static final String DIC_MEASURE = "25b0379c-d101-47f4-bef3-12f34ba011fe";
public static final String DIC_ECONOMY_SOURCE = "55f00c8f-a564-4ba2-b8fb-89c5735118fb";
public static final String DIC_STABILIZE_STATUS = "8d4f4133-41d7-4564-97fc-55313e4d1a80";
public static final String DIC_STABILIZE_LEVEL = "fef0db2c-0f2a-4b2a-ba6d-a389a89f24bb";
public static final String DIC_UP_REASON = "f1a70443-47ae-4d0e-9d33-44b0a902343e";
public static final String DIC_UP_TYPE="02473db5-575c-487b-9df8-3fae9d66ac8b";
public static final String DIC_ONDUTY = "ae674cf5-2b10-424c-8120-39dd7edf9483";
public static final String DIC_HANDLE = "66923b65-acbb-487b-8893-bfcf26d36028";
public static final String DIC_COORD="0a0060a9-0136-4a5a-ae01-6e6654426be4";
public static final String DIC_TALK="3d6a1b33-5cdd-4c60-b5ef-39a8019e6c2e";
/**
* 请假外出市五区外
*/
@ -263,4 +276,5 @@ public class PathConfig {
public static final String ACTION_PUSH_STOP_SOCKET = "com.tengshisoft.zonemanagement.push_stop";//关闭socket
}