diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a9ba253..cd3dc50 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -48,6 +48,22 @@ android:theme="@style/AppTheme" android:usesCleartextTraffic="true" tools:ignore="GoogleAppIndexingWarning"> + + + + mDatas; - private NoticeAdapter mAdapter; + private NewNoticeAdapter mAdapter; @Override protected int setLayoutId() { @@ -224,7 +227,7 @@ public class MainActivity extends BaseActivity { } }).request(); initBaseView(); -// getUserPenList(); + registerGpsSignal(); registerGpsState(); getNoticeList(); @@ -516,6 +519,7 @@ public class MainActivity extends BaseActivity { private void initBaseView() { mGson = new Gson(); String loginInfo = UserLgUtils.getLoginInfo(); + LogUtils.e("登录信息:" + loginInfo); if (!TextUtils.isEmpty(loginInfo)) { AppTokenUser appTokenUser = mGson.fromJson(loginInfo, AppTokenUser.class); if (appTokenUser.getRoles() != null && appTokenUser.getRoles().size() > 0) { @@ -546,7 +550,7 @@ public class MainActivity extends BaseActivity { .placeholder(R.drawable.ic_user_default)) .into(mIvUserIcon); mDatas = new ArrayList<>(); - mAdapter = new NoticeAdapter(mActivity, mDatas); + mAdapter = new NewNoticeAdapter(mActivity, mDatas); mRlvNotice.setLayoutManager(new LinearLayoutManager(mActivity)); mRlvNotice.setAdapter(mAdapter); mCsvNotice.setOnClickListener(v -> { @@ -1299,6 +1303,7 @@ public class MainActivity extends BaseActivity { R.id.ll_user_center, R.id.ll_day_aviso, R.id.ll_address_list, + R.id.rl_notice, R.id.ll_case_record}) public void onViewClicked(View view) { switch (view.getId()) { @@ -1317,6 +1322,9 @@ public class MainActivity extends BaseActivity { intent.putExtra("type", "type"); startActivity(intent); break; + case R.id.rl_notice: + startActivity(new Intent(MainActivity.this, NoticeActivity.class)); + break; case R.id.ll_user_center://个人中心 startActivity(new Intent(MainActivity.this, UserActivity.class)); break; @@ -1389,7 +1397,6 @@ public class MainActivity extends BaseActivity { protected void onStart() { super.onStart(); isForeground = true; - checkAmSign(); if (mSignTimeBean != null) { Intent intent = new Intent(); intent.setAction(PathConfig.ACTION_PUNCH_TIME_MESSAGE); diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterDetailActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterDetailActivity.java index 51003c3..8fd4d88 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterDetailActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterDetailActivity.java @@ -13,6 +13,7 @@ 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.activitys.census.special.CensusCorrctListActivity; +import com.sucstepsoft.realtimelocation.activitys.census.special.CensusDisputeListActivity; import com.sucstepsoft.realtimelocation.activitys.census.special.CensusDrugListActivity; import com.sucstepsoft.realtimelocation.activitys.census.special.CensusHeresyListActivity; import com.sucstepsoft.realtimelocation.activitys.census.special.CensusPetitionListActivity; @@ -254,6 +255,8 @@ public class CensusRegisterDetailActivity extends BaseActivity { startActivity(intent); break; case "3"://矛盾纠纷 + intent.setClass(mActivity, CensusDisputeListActivity.class); + startActivity(intent); break; case "4"://社会治安 intent.setClass(mActivity, CensusSecurityListActivity.class); diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusDisputeAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusDisputeAddActivity.java new file mode 100644 index 0000000..2993aec --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusDisputeAddActivity.java @@ -0,0 +1,1156 @@ +package com.sucstepsoft.realtimelocation.activitys.census.special; + +import android.app.ProgressDialog; +import android.content.Intent; +import android.database.Cursor; +import android.graphics.Color; +import android.net.Uri; +import android.os.Build; +import android.os.Environment; +import android.provider.MediaStore; +import android.support.annotation.Nullable; +import android.support.v4.content.FileProvider; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.Gravity; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.Switch; +import android.widget.TextView; +import android.widget.ZoomControls; + +import com.baidu.mapapi.map.BaiduMap; +import com.baidu.mapapi.map.BitmapDescriptor; +import com.baidu.mapapi.map.BitmapDescriptorFactory; +import com.baidu.mapapi.map.MapStatus; +import com.baidu.mapapi.map.MapStatusUpdate; +import com.baidu.mapapi.map.MapStatusUpdateFactory; +import com.baidu.mapapi.map.MarkerOptions; +import com.baidu.mapapi.map.OverlayOptions; +import com.baidu.mapapi.map.TextureMapView; +import com.baidu.mapapi.model.LatLng; +import com.bigkoo.pickerview.builder.OptionsPickerBuilder; +import com.bigkoo.pickerview.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.beans.AddPhotoBean; +import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; +import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +import com.sucstepsoft.cm_utils.core.widget.base.AddPhotoAdapter; +import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +import com.sucstepsoft.cm_utils.core.widget.views.AreaChooseDialog; +import com.sucstepsoft.cm_utils.core.widget.views.ButtomDialogView; +import com.sucstepsoft.cm_utils.utils.ProiderUtil; +import com.sucstepsoft.cm_utils.utils.ToastUtils; +import com.sucstepsoft.cm_utils.utils.UIUtil; +import com.sucstepsoft.cm_utils.utils.UserLgUtils; +import com.sucstepsoft.realtimelocation.R; +import com.sucstepsoft.realtimelocation.activitys.common.PhotoActivity; +import com.sucstepsoft.realtimelocation.activitys.issue.TakePointActivity; +import com.sucstepsoft.realtimelocation.beans.BaseUserBean; +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.DisputeDetailBean; +import com.sucstepsoft.realtimelocation.beans.person.SaveDisputeBean; +import com.sucstepsoft.realtimelocation.net.LocationApiService; +import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; + +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.Unbinder; +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.annotations.NonNull; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; +import top.zibin.luban.Luban; +import top.zibin.luban.OnCompressListener; + +/** + * 矛盾纠纷 + */ +public class CensusDisputeAddActivity 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.et_case_name) + EditText mEtCaseName; + @BindView(R.id.et_case_title) + EditText mEtCaseTitle; + @BindView(R.id.tv_case_date) + TextView mTvCaseDate; + @BindView(R.id.tv_case_address) + TextView mTvCaseAddress; + @BindView(R.id.et_detail_address) + EditText mEtDetailAddress; + @BindView(R.id.tv_loc_lng) + TextView mTvLocLng; + @BindView(R.id.mp_view) + TextureMapView mMpView; + @BindView(R.id.tv_point) + TextView mTvPoint; + @BindView(R.id.tv_case_scale) + TextView mTvCaseScale; + @BindView(R.id.tv_case_type) + TextView mTvCaseType; + @BindView(R.id.tv_case_assess) + TextView mTvCaseAssess; + @BindView(R.id.tv_case_degree) + TextView mTvCaseDegree; + @BindView(R.id.tv_case_level) + TextView mTvCaseLevel; + @BindView(R.id.tv_dispute_type) + TextView mTvDisputeType; + @BindView(R.id.tv_dispute_level) + TextView mTvDisputeLevel; + @BindView(R.id.tv_risk_type) + TextView mTvRiskType; + @BindView(R.id.tv_risk_level) + TextView mTvRiskLevel; + @BindView(R.id.et_money) + EditText mEtMoney; + @BindView(R.id.et_person_num) + EditText mEtPersonNum; + @BindView(R.id.et_dept) + EditText mEtDept; + @BindView(R.id.tv_compose_date) + TextView mTvComposeDate; + @BindView(R.id.et_reason_other) + EditText mEtReasonOther; + @BindView(R.id.rlv_photo) + RecyclerView mRlvPhoto; + @BindView(R.id.tv_party_card_type) + TextView mTvPartyCardType; + @BindView(R.id.et_party_card_num) + EditText mEtPartyCardNum; + @BindView(R.id.et_party_name) + EditText mEtPartyName; + @BindView(R.id.et_party_phone) + EditText mEtPartyPhone; + @BindView(R.id.tv_party_sex) + TextView mTvPartySex; + @BindView(R.id.tv_party_nation) + TextView mTvPartyNation; + @BindView(R.id.tv_party_edu) + TextView mTvPartyEdu; + @BindView(R.id.tv_party_person_type) + TextView mTvPartyPersonType; + @BindView(R.id.tv_party_person_address) + TextView mTvPartyPersonAddress; + @BindView(R.id.tv_resolve_date) + TextView mTvResolveDate; + @BindView(R.id.tv_resolve_way) + TextView mTvResolveWay; + @BindView(R.id.et_resolve_dept) + EditText mEtResolveDept; + @BindView(R.id.et_resolve_name) + EditText mEtResolveName; + @BindView(R.id.et_resolve_id_card) + EditText mEtResolveIdCard; + @BindView(R.id.et_resolve_phone) + EditText mEtResolvePhone; + @BindView(R.id.sw_is_resolve) + Switch mSwIsResolve; + @BindView(R.id.et_resolve_result) + EditText mEtResolveResult; + @BindView(R.id.et_eva_advice) + EditText mEtEvaAdvice; + @BindView(R.id.tv_eva_date) + TextView mTvEvaDate; + @BindView(R.id.et_measure) + EditText mEtMeasure; + @BindView(R.id.et_work_record) + EditText mEtWorkRecord; + @BindView(R.id.et_party_b_name) + EditText mEtPartyBName; + @BindView(R.id.et_party_b_phone) + EditText mEtPartyBPhone; + @BindView(R.id.et_party_b_num) + EditText mEtPartyBNum; + @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 mDicPicker; + private List mDicBeanList; + + private DicBean mSelTalk; + private DicBean mSelCoordinate; + + private String mSelAreaName = ""; + private String mSelAreaCode = ""; + private String mSelPartyAreaCode = ""; + private String mSelPartyAreaName = ""; + private String mSelLa; + private String mSelLo; + private BaiduMap mBaiduMap; + private LatLng mDefaultPoint; + private BitmapDescriptor mBitmapDescriptor; + private String mIdCard; + private BaseRegisterDetailBean mBaseInfoBean; + private List mPhotos = new ArrayList<>(); + private AddPhotoBean mCurrentBean; + private String mPicPath; + private String mPhotoIds = "";//相片Id + private AddPhotoAdapter mPhotoAdapter; + private DicBean mSelResolveeWay; + private DicBean mSelRiskType; + private DicBean mSelRiskLevel; + private DicBean mSelDisputeLevel; + private DicBean mSelDisputeType; + private DicBean mSelCaseLevel; + private DicBean mSelCaseDegree; + private DicBean mSelCaseAssess; + private DicBean mSelCaseType; + private DicBean mSelCaseScale; + + @Override + protected int setLayoutId() { + return R.layout.activity_census_dispute_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() { + @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() { + mDefaultPoint = new LatLng(PathConfig.LA, PathConfig.LO); + mBaiduMap = mMpView.getMap(); + MapStatus ms = new MapStatus.Builder().zoom(14).target(mDefaultPoint).build(); + MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); + View child = mMpView.getChildAt(1); + if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { + child.setVisibility(View.GONE); + } + mMpView.showZoomControls(false); + mBaiduMap.animateMapStatus(u); + mTvCaseDate.setOnClickListener(v -> onShowDate(mTvCaseDate));//发生日期 + mTvCaseAddress.setOnClickListener(v -> onShowArea(1));//发生地点 + mTvLocLng.setOnClickListener(v -> { + Intent intent = new Intent(mActivity, TakePointActivity.class); + startActivityForResult(intent, 1234); + }); + mTvCaseScale.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_CASE_SCALE, 2, 1));//事件规模 + mTvCaseType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_CASE_CATE, 2, 2));//事件类别 + mTvCaseAssess.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_CASE_ASSESS, 2, 3));//事件评估 + mTvCaseDegree.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_CASE_DEGREE, 2, 4));//激烈程度 + mTvCaseLevel.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_CASE_LEVEL, 2, 5));//预警等级 + mTvDisputeType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_DISPUTE_TYPE, 2, 6));//纠纷类型 + mTvDisputeLevel.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_DISPUTE_LEVEL, 2, 7));//纠纷等级 + mTvRiskType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_RISK_TYPE, 2, 8));//风险类型 + mTvRiskLevel.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_RISK_LEVEL, 2, 9));//风险类型 + mTvComposeDate.setOnClickListener(v -> onShowDate(mTvComposeDate));//最后调解日期 + mTvPartySex.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_GENDER, 2, 10));//当事人性别 + mTvPartyNation.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_NATION, 2, 11));//当事人民族 + mTvPartyEdu.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_EDU, 2, 12));//当事人文化程度 + mTvPartyPersonType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_PERSON_TYPE, 2, 13));//当事人类别 + mTvPartyPersonAddress.setOnClickListener(v -> onShowArea(2)); + mTvResolveDate.setOnClickListener(v -> onShowDate(mTvResolveDate));//化解日期 + mTvResolveWay.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_RESOLVE_WAY, 2, 14));//化解方式 + mTvEvaDate.setOnClickListener(v -> onShowDate(mTvEvaDate));//考评日期 + + mPhotos.add(new AddPhotoBean()); + mPhotoAdapter = new AddPhotoAdapter(CensusDisputeAddActivity.this, mPhotos); + mRlvPhoto.setLayoutManager(new GridLayoutManager(mActivity, 4)); + mRlvPhoto.setAdapter(mPhotoAdapter); + //删除上传的相片 + mPhotoAdapter.addOnDeleteListener(((bean, i) -> { + mPhotoAdapter.removeItem(bean); + mPhotoIds = mPhotoIds.replace(bean.getId() + ",", ""); + })); + mPhotoAdapter.addOnItemClickListener(bean -> { + if (TextUtils.isEmpty(bean.getPath())) { + //空数据 + showSelectPhoto(bean); + } else { + //预览 + ArrayList list = new ArrayList<>(); + list.add(bean.getPath()); + Intent intent = new Intent(); + intent.putExtra(PhotoActivity.TAG_IMGURL, list); + intent.setClass(CensusDisputeAddActivity.this, PhotoActivity.class); + startActivity(intent); + } + }); + + + mBtnConfirm.setOnClickListener(v -> doSubmit()); + } + + /** + * 显示选择图片 + * + * @param bean + */ + private void showSelectPhoto(AddPhotoBean bean) { + hideSoftKeyboard(); + ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity) + .setIsBackCancelable(true) + .setIscancelable(true) + .setShowLocation(Gravity.BOTTOM) + .setIsShowFile(false) + .build(); + buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() { + @Override + public void choseFile() { + } + + @Override + public void choseAlbum() { + mCurrentBean = bean; + Intent intent = new Intent(Intent.ACTION_PICK, null); + intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, + "image/*"); + startActivityForResult(intent, BaseUrlApi.PHOTO_REQUEST); + buttomDialogView.dismiss(); + } + + @Override + public void choseShoot() { + mCurrentBean = bean; + String pathStr = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + PathConfig.CATCH_PATH; + mPicPath = pathStr + System.currentTimeMillis() + ".jpg"; + File file = new File(mPicPath); + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + // 下面这句指定调用相机拍照后的照片存储的路径 + Uri uri; + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) { + uri = Uri.fromFile(file); + } else { + uri = FileProvider.getUriForFile(mActivity, ProiderUtil.getFileProviderName(mActivity), file); + } + intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); + startActivityForResult(intent, BaseUrlApi.CAMERA_REQUEST); + } + + @Override + public void loginOut() { + + } + + @Override + public void changePwd() { + + } + }); + buttomDialogView.show(); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + if (resultCode == RESULT_OK) { + switch (requestCode) { + case BaseUrlApi.CAMERA_REQUEST://相机 + uploadImg(mPicPath, 1); + break; + case BaseUrlApi.PHOTO_REQUEST://相册 + try { + if (data == null) return; + Uri uri = data.getData(); + String[] proj = {MediaStore.Images.Media.DATA}; + Cursor cursor = managedQuery(uri, proj, null, null, null); + int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); + cursor.moveToFirst(); + String srcPath = cursor.getString(column_index); + uploadImg(srcPath, 2); + } catch (Exception e) { + e.printStackTrace(); + } + break; + case 1234: + String lo = data.getStringExtra("lo"); + String la = data.getStringExtra("la"); + String address = data.getStringExtra("address"); + mSelLa = la; + mSelLo = lo; + mTvPoint.setText("经纬度:" + mSelLa + "-" + mSelLo); + Double laD = Double.parseDouble(la); + Double loD = Double.parseDouble(lo); + addMarker(new LatLng(laD, loD)); + mEtDetailAddress.setText(address); + break; + } + } + super.onActivityResult(requestCode, resultCode, data); + } + + + /** + * 上传文件 + * + * @param picPath + */ + private void uploadImg(String picPath, int src) { + File file = new File(picPath); + if (!file.exists()) { + showToast("图片路径错误."); + return; + } + ProgressDialog progressDialog = UIUtil.initDialog(mActivity, "正在上传..."); + progressDialog.show(); + String pathStr = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + PathConfig.CATCH_PATH; + Luban.with(mActivity) + .load(picPath) + .ignoreBy(100) + .setTargetDir(pathStr) + .filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"))) + .setCompressListener(new OnCompressListener() { + @Override + public void onStart() { + + } + + @Override + public void onSuccess(File file) { + RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); + MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .uploadImage(body, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(BaseUserBean baseUserBean) { + if (progressDialog != null && progressDialog.isShowing()) { + progressDialog.dismiss(); + } + ToastUtils.showShort("上传成功"); + mPhotoIds += (baseUserBean.getData() + ","); + mCurrentBean.setId(baseUserBean.getData()); + mCurrentBean.setPath(picPath); + if (mPhotos.size() < 4) { + mPhotos.add(new AddPhotoBean()); + } + mPhotoAdapter.notifyDataSetChanged(); + mCurrentBean = null; + } + + @Override + public void onError(Throwable e) { + if (progressDialog != null && progressDialog.isShowing()) { + progressDialog.dismiss(); + } + ToastUtils.showShort("上传失败,请稍后重试."); + if (file.exists()) { + file.delete(); + } + } + + @Override + public void onComplete() { + + } + }); + } + + @Override + public void onError(Throwable e) { + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + ToastUtils.showShort("图片上传失败,请稍后重试"); + } + }) + .launch(); + } + + /** + * 添加marker + * + * @param latLng + */ + private void addMarker(LatLng latLng) { + mBaiduMap.clear(); + mBitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker); + OverlayOptions option = new MarkerOptions() + .position(latLng) + .icon(mBitmapDescriptor) + .animateType(MarkerOptions.MarkerAnimateType.drop); + mBaiduMap.addOverlay(option); + MapStatus ms = new MapStatus.Builder().zoom(14).target(latLng).build(); + MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); + mBaiduMap.animateMapStatus(u); + } + + + /** + * 地区选择 + */ + private void onShowArea(int i) { + AreaChooseDialog dialog = new AreaChooseDialog + .DialogBuilder(mActivity) + .setDefault(true) + .build(); + dialog.addOnChoseListener((names, id, code) -> { + if (i == 1) { + mSelAreaCode = code; + mSelAreaName = names; + mTvCaseAddress.setText(names); + } else { + mSelPartyAreaCode = code; + mSelPartyAreaName = names; + mTvPartyPersonAddress.setText(names); + } + dialog.dismiss(); + }); + dialog.show(); + } + + 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://事件规模 + mSelCaseScale = dicBean; + mTvCaseScale.setText(dicBean.getDictionaryName()); + break; + case 2://事件类别 + mSelCaseType = dicBean; + mTvCaseType.setText(dicBean.getDictionaryName()); + break; + case 3://事件评估 + mSelCaseAssess = dicBean; + mTvCaseAssess.setText(dicBean.getDictionaryName()); + break; + case 4://激烈程度 + mSelCaseDegree = dicBean; + mTvCaseDegree.setText(dicBean.getDictionaryName()); + break; + case 5://预警等级 + mSelCaseLevel = dicBean; + mTvCaseLevel.setText(dicBean.getDictionaryName()); + break; + case 6://纠纷类型 + mSelDisputeType = dicBean; + mTvDisputeType.setText(dicBean.getDictionaryName()); + break; + case 7://纠纷等级 + mSelDisputeLevel = dicBean; + mTvDisputeLevel.setText(dicBean.getDictionaryName()); + break; + case 8://风险类型 + mSelRiskType = dicBean; + mTvRiskType.setText(dicBean.getDictionaryName()); + break; + case 9://风险等级 + mSelRiskLevel = dicBean; + mTvRiskLevel.setText(dicBean.getDictionaryName()); + break; + case 10://当事人性别 + mTvPartySex.setText(dicBean.getDictionaryName()); + break; + case 11://当事人民族 + mTvPartyNation.setText(dicBean.getDictionaryName()); + break; + case 12://当事人文化程度 + mTvPartyEdu.setText(dicBean.getDictionaryName()); + break; + case 13://当事人类别 + mTvPartyPersonType.setText(dicBean.getDictionaryName()); + break; + case 14://化解方式 + mSelResolveeWay = dicBean; + mTvResolveWay.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>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull List l) { + dialog.dismiss(); + if (l != null && l.size() > 0) { + mDicBeanList = l; + onShowDicPicker(pId, 1, source); + } else { + ToastUtils.showShort("暂无数据"); + } + } + + @Override + public void onError(@NonNull Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + + } + + + private void 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) + .doSaveDispute(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 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) + .doEditDispute(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 RequestBody buildParams() { + SaveDisputeBean bean = new SaveDisputeBean(); + bean.setPartyPopulationInfoId(mBaseInfoBean.getPopulationInfoId()); + String caseName = mEtCaseName.getText().toString().trim(); + bean.setCaseName(caseName); + String caseTitle = mEtCaseTitle.getText().toString().trim(); + bean.setCaseTitle(caseTitle); + String caseDate = mTvCaseDate.getText().toString().trim(); + bean.setCaseTime(caseDate); + String caseAddress = mTvCaseAddress.getText().toString().trim(); + bean.setCaseAddress(caseAddress); + bean.setCaseAreaCode(mSelAreaCode); + bean.setCaseAreaName(mSelAreaName); + String detailAddress = mEtDetailAddress.getText().toString().trim(); + bean.setCaseMapAddress(detailAddress); + bean.setCaseLat(mSelLa); + bean.setCaseLng(mSelLo); + if (mSelCaseScale != null) { + bean.setCaseScale(mSelCaseScale.getDictionaryId()); + } + if (mSelCaseType != null) { + bean.setCaseType(mSelCaseType.getDictionaryId()); + } + + if (mSelCaseAssess != null) { + bean.setCaseEstimate(mSelCaseAssess.getDictionaryId()); + } + if (mSelCaseDegree != null) { + bean.setCaseDegree(mSelCaseDegree.getDictionaryId()); + } + if (mSelCaseLevel != null) { + bean.setCaseLevel(mSelCaseLevel.getDictionaryId()); + } + if (mSelDisputeType != null) { + bean.setDisputeType(mSelDisputeType.getDictionaryId()); + } + if (mSelDisputeLevel != null) { + bean.setDisputeLevel(mSelDisputeLevel.getDictionaryId()); + } + if (mSelRiskType != null) { + bean.setRiskType(mSelRiskType.getDictionaryId()); + } + if (mSelRiskLevel != null) { + bean.setRiskLevel(mSelRiskLevel.getDictionaryId()); + } + String money = mEtMoney.getText().toString().trim(); + bean.setDisputeMoney(money); + String num = mEtPersonNum.getText().toString().trim(); + bean.setDisputeNumber(num); + String dept = mEtDept.getText().toString().trim(); + bean.setDisputeOrganization(dept); + String composeDate = mTvComposeDate.getText().toString().trim(); + bean.setMediateLastTime(composeDate); + String reasonOther = mEtReasonOther.getText().toString().trim(); + bean.setCaseDescription(reasonOther); + String ids = ""; + for (int i = 0; i < mPhotoAdapter.getData().size(); i++) { + if (!TextUtils.isEmpty(mPhotoAdapter.getData().get(i).getId())) { + ids += mPhotoAdapter.getData().get(i).getId() + ","; + } + } + if (ids.endsWith(",")) { + ids = ids.substring(0, ids.length() - 1); + } + bean.setCaseImages(ids); + String cardType = mTvPartyCardType.getText().toString().trim(); + bean.setPartyIdcardType(cardType); + String cardNum = mEtPartyCardNum.getText().toString().trim(); + bean.setPartyIdcard(cardNum); + String partyName = mEtPartyName.getText().toString().trim(); + bean.setPartyName(partyName); + String partyPhone = mEtPartyPhone.getText().toString().trim(); + bean.setPartyPhone(partyPhone); + String partySex = mTvPartySex.getText().toString().trim(); + bean.setPartySex(partySex); + String partyNation = mTvPartyNation.getText().toString().trim(); + bean.setPartyNation(partyNation); + String partyPersonType = mTvPartyPersonType.getText().toString().trim(); + bean.setPartyType(partyPersonType); + String partyPersonAddress = mTvPartyPersonAddress.getText().toString().trim(); + bean.setPartyAddress(mSelPartyAreaName); + bean.setPartyAreaCode(mSelPartyAreaCode); + bean.setPartyAreaName(mSelPartyAreaName); + String resolveDate = mTvResolveDate.getText().toString().trim(); + bean.setDefuseTime(resolveDate); + if (mSelResolveeWay != null) { + bean.setDefuseWay(mSelResolveeWay.getDictionaryId()); + } + String edu = mTvPartyEdu.getText().toString().trim(); + bean.setPartyEducation(edu); + String resolveDept = mEtResolveDept.getText().toString().trim(); + bean.setDefuseOrganization(resolveDept); + String defuseName = mEtResolveName.getText().toString().trim(); + bean.setDefuseResponsibleName(defuseName); + String resolveIdCard = mEtResolveIdCard.getText().toString().trim(); + bean.setDefuseResponsibleIdcard(resolveIdCard); + String resolvePhone = mEtResolvePhone.getText().toString().trim(); + bean.setDefuseResponsiblePhone(resolvePhone); + bean.setDefuseStatus(mSwIsResolve.isChecked() ? "是" : "否"); + String defuseResult = mEtResolveResult.getText().toString().trim(); + bean.setDefuseDescription(defuseResult); + String evaAdvice = mEtEvaAdvice.getText().toString().trim(); + bean.setEvaluationOpinion(evaAdvice); + String evaDate = mTvEvaDate.getText().toString().trim(); + bean.setEvaluationTime(evaDate); + String measure = mEtMeasure.getText().toString().trim(); + bean.setMeasureDescription(measure); + String workRecord = mEtWorkRecord.getText().toString().trim(); + bean.setRecordDescription(workRecord); + String partyBNum = mEtPartyBNum.getText().toString().trim(); + bean.setPartybIdcard(partyBNum); + String partyBPhone = mEtPartyBPhone.getText().toString().trim(); + bean.setPartybPhone(partyBPhone); + String partyBName = mEtPartyBName.getText().toString().trim(); + bean.setPartybName(partyBName); + 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 caseName = mEtCaseName.getText().toString().trim(); + if (TextUtils.isEmpty(caseName)) { + ToastUtils.showShort("请输入事件名称"); + return false; + } + String caseTitle = mEtCaseTitle.getText().toString().trim(); + if (TextUtils.isEmpty(caseTitle)) { + ToastUtils.showShort("请输入事件标题"); + return false; + } + String caseDate = mTvCaseDate.getText().toString().trim(); + if (TextUtils.isEmpty(caseDate)) { + ToastUtils.showShort("请选择发生日期"); + return false; + } + String caseAddress = mTvCaseAddress.getText().toString().trim(); + if (TextUtils.isEmpty(caseAddress)) { + ToastUtils.showShort("请选择发生地点"); + return false; + } + return true; + } + + /** + * 获取详情 + */ + private void getDetailById(String id) { + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getDisputeDetailById(id, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull DisputeDetailBean 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(DisputeDetailBean bean, int type) { + mId = bean.getDisputeId(); + mEtCaseName.setText(bean.getCaseName()); + mEtCaseTitle.setText(bean.getCaseTitle()); + mTvCaseDate.setText(bean.getCaseTime()); + mTvCaseAddress.setText(bean.getCaseAddress()); + mSelAreaCode = bean.getCaseAreaCode(); + mSelAreaName = bean.getCaseAreaName(); + mEtDetailAddress.setText(bean.getCaseMapAddress()); + mSelLa = bean.getCaseLat(); + mSelLo = bean.getCaseLng(); + if (!TextUtils.isEmpty(bean.getCaseLat()) && !TextUtils.isEmpty(bean.getCaseLng())) { + Double lat = Double.parseDouble(bean.getCaseLat()); + Double lng = Double.parseDouble(bean.getCaseLng()); + addMarker(new LatLng(lat, lng)); + mTvPoint.setText("经纬度:" + mSelLa + "-" + mSelLo); + } + if (!TextUtils.isEmpty(bean.getCaseScale())) { + mSelCaseScale = new DicBean(); + mSelCaseScale.setDictionaryName(bean.getCaseScaleName()); + mSelCaseScale.setDictionaryId(bean.getCaseScale()); + mTvCaseScale.setText(bean.getCaseScaleName()); + } + if (!TextUtils.isEmpty(bean.getCaseType())) { + mSelCaseType = new DicBean(); + mSelCaseType.setDictionaryName(bean.getCaseTypeName()); + mSelCaseType.setDictionaryId(bean.getCaseType()); + mTvCaseType.setText(bean.getCaseTypeName()); + } + if (!TextUtils.isEmpty(bean.getCaseEstimate())) { + mSelCaseAssess = new DicBean(); + mSelCaseAssess.setDictionaryId(bean.getCaseEstimate()); + mSelCaseAssess.setDictionaryName(bean.getCaseEstimateName()); + mTvCaseAssess.setText(bean.getCaseEstimateName()); + } + if (!TextUtils.isEmpty(bean.getCaseDegree())) { + mSelCaseDegree = new DicBean(); + mSelCaseDegree.setDictionaryId(bean.getCaseDegree()); + mSelCaseDegree.setDictionaryName(bean.getCaseDegreeName()); + mTvCaseDegree.setText(bean.getCaseDegreeName()); + } + if (!TextUtils.isEmpty(bean.getCaseLevel())) { + mSelCaseLevel = new DicBean(); + mSelCaseLevel.setDictionaryId(bean.getCaseLevel()); + mSelCaseLevel.setDictionaryName(bean.getCaseLevelName()); + mTvCaseLevel.setText(bean.getCaseLevelName()); + } + if (!TextUtils.isEmpty(bean.getDisputeType())) { + mSelDisputeType = new DicBean(); + mSelDisputeType.setDictionaryId(bean.getDisputeType()); + mSelDisputeType.setDictionaryName(bean.getDisputeTypeName()); + mTvDisputeType.setText(bean.getDisputeTypeName()); + } + if (!TextUtils.isEmpty(bean.getDisputeLevel())) { + mSelDisputeLevel = new DicBean(); + mSelDisputeLevel.setDictionaryId(bean.getDisputeLevel()); + mSelDisputeLevel.setDictionaryName(bean.getDisputeLevelName()); + mTvDisputeLevel.setText(bean.getDisputeLevelName()); + } + if (!TextUtils.isEmpty(bean.getRiskType())) { + mSelRiskType = new DicBean(); + mSelRiskType.setDictionaryName(bean.getRiskTypeName()); + mSelRiskType.setDictionaryId(bean.getRiskType()); + mTvRiskType.setText(bean.getRiskTypeName()); + } + + if (!TextUtils.isEmpty(bean.getRiskLevel())) { + mSelRiskLevel = new DicBean(); + mSelRiskLevel.setDictionaryName(bean.getRiskLevelName()); + mSelRiskLevel.setDictionaryId(bean.getRiskLevel()); + mTvRiskLevel.setText(bean.getRiskLevelName()); + } + + mEtMoney.setText(bean.getDisputeMoney()); + mEtPersonNum.setText(bean.getDisputeNumber()); + mEtDept.setText(bean.getDisputeOrganization()); + mTvComposeDate.setText(bean.getMediateLastTime()); + mEtReasonOther.setText(bean.getCaseDescription()); + if (!TextUtils.isEmpty(bean.getCaseImages())) { + String[] photos = bean.getCaseImages().split(","); + mPhotos.clear(); + for (int i = 0; i < photos.length; i++) { + AddPhotoBean pBean = new AddPhotoBean(); + pBean.setId(photos[i]); + pBean.setPath(BaseUrlApi.BASE_IMG_URL + photos[i]); + mPhotos.add(pBean); + } + mPhotoAdapter.setData(mPhotos); + } + mTvPartyCardType.setText(bean.getPartyIdcardType()); + mEtPartyCardNum.setText(bean.getPartyIdcard()); + mEtPartyName.setText(bean.getPartyName()); + mEtPartyPhone.setText(bean.getPartyPhone()); + mTvPartySex.setText(bean.getPartySex()); + mTvPartyNation.setText(bean.getPartyNation()); + mTvPartyPersonType.setText(bean.getPartyType()); + mTvPartyEdu.setText(bean.getPartyEducation()); + mTvPartyPersonAddress.setText(bean.getPartyAddress()); + mSelPartyAreaName = bean.getPartyAddress(); + mSelPartyAreaCode = bean.getPartyAreaCode(); + mTvResolveDate.setText(bean.getDefuseTime()); + if (!TextUtils.isEmpty(bean.getDefuseWay())) { + mSelResolveeWay = new DicBean(); + mSelResolveeWay.setDictionaryName(bean.getDefuseWayName()); + mSelResolveeWay.setDictionaryId(bean.getDefuseWay()); + mTvResolveWay.setText(bean.getDefuseWayName()); + } + mEtResolveDept.setText(bean.getDefuseOrganization()); + mEtResolveName.setText(bean.getDefuseResponsibleName()); + mEtResolveIdCard.setText(bean.getDefuseResponsibleIdcard()); + mEtResolvePhone.setText(bean.getDefuseResponsiblePhone()); + mSwIsResolve.setChecked("是".equals(bean.getDefuseStatus())); + mEtResolveResult.setText(bean.getDefuseDescription()); + mEtEvaAdvice.setText(bean.getEvaluationOpinion()); + mTvEvaDate.setText(bean.getEvaluationTime()); + mEtMeasure.setText(bean.getMeasureDescription()); + mEtWorkRecord.setText(bean.getRecordDescription()); + mEtPartyBNum.setText(bean.getPartybIdcard()); + mEtPartyBPhone.setText(bean.getPartybPhone()); + mEtPartyBName.setText(bean.getPartybName()); + 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()); + if (TextUtils.isEmpty(mId)) { + mTvPartyCardType.setText(o.getIdcardType()); + mEtPartyName.setText(o.getName()); + mEtPartyPhone.setText(o.getPhone()); + mEtPartyCardNum.setText(o.getIdcard()); + mTvPartySex.setText(o.getSex()); + mTvPartyNation.setText(o.getNation()); + mTvPartyEdu.setText(o.getEducation()); + } + } + + @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/CensusDisputeDetailActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusDisputeDetailActivity.java new file mode 100644 index 0000000..d3b35c7 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusDisputeDetailActivity.java @@ -0,0 +1,395 @@ +package com.sucstepsoft.realtimelocation.activitys.census.special; + +import android.content.Intent; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.Switch; +import android.widget.TextView; +import android.widget.ZoomControls; + +import com.baidu.mapapi.map.BaiduMap; +import com.baidu.mapapi.map.BitmapDescriptor; +import com.baidu.mapapi.map.BitmapDescriptorFactory; +import com.baidu.mapapi.map.MapStatus; +import com.baidu.mapapi.map.MapStatusUpdate; +import com.baidu.mapapi.map.MapStatusUpdateFactory; +import com.baidu.mapapi.map.MarkerOptions; +import com.baidu.mapapi.map.OverlayOptions; +import com.baidu.mapapi.map.TextureMapView; +import com.baidu.mapapi.model.LatLng; +import com.sucstepsoft.cm_utils.constant.PathConfig; +import com.sucstepsoft.cm_utils.core.beans.AddPhotoBean; +import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; +import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +import com.sucstepsoft.cm_utils.core.widget.base.AddPhotoAdapter; +import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +import com.sucstepsoft.cm_utils.utils.UserLgUtils; +import com.sucstepsoft.realtimelocation.R; +import com.sucstepsoft.realtimelocation.activitys.common.PhotoActivity; +import com.sucstepsoft.realtimelocation.beans.person.BaseRegisterDetailBean; +import com.sucstepsoft.realtimelocation.beans.person.DisputeDetailBean; +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.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 CensusDisputeDetailActivity 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_case_name) + TextView mTvCaseName; + @BindView(R.id.tv_case_title) + TextView mTvCaseTitle; + @BindView(R.id.tv_case_date) + TextView mTvCaseDate; + @BindView(R.id.tv_case_address) + TextView mTvCaseAddress; + @BindView(R.id.tv_detail_address) + TextView mTvDetailAddress; + @BindView(R.id.tv_loc_lng) + TextView mTvLocLng; + @BindView(R.id.mp_view) + TextureMapView mMpView; + @BindView(R.id.tv_point) + TextView mTvPoint; + @BindView(R.id.tv_case_scale) + TextView mTvCaseScale; + @BindView(R.id.tv_case_type) + TextView mTvCaseType; + @BindView(R.id.tv_case_assess) + TextView mTvCaseAssess; + @BindView(R.id.tv_case_degree) + TextView mTvCaseDegree; + @BindView(R.id.tv_case_level) + TextView mTvCaseLevel; + @BindView(R.id.tv_dispute_type) + TextView mTvDisputeType; + @BindView(R.id.tv_dispute_level) + TextView mTvDisputeLevel; + @BindView(R.id.tv_risk_type) + TextView mTvRiskType; + @BindView(R.id.tv_risk_level) + TextView mTvRiskLevel; + @BindView(R.id.tv_money) + TextView mTvMoney; + @BindView(R.id.tv_person_num) + TextView mTvPersonNum; + @BindView(R.id.tv_dept) + TextView mTvDept; + @BindView(R.id.tv_compose_date) + TextView mTvComposeDate; + @BindView(R.id.tv_reason_other) + TextView mTvReasonOther; + @BindView(R.id.rlv_photo) + RecyclerView mRlvPhoto; + @BindView(R.id.tv_party_card_type) + TextView mTvPartyCardType; + @BindView(R.id.tv_party_card_num) + TextView mTvPartyCardNum; + @BindView(R.id.tv_party_name) + TextView mTvPartyName; + @BindView(R.id.tv_party_phone) + TextView mTvPartyPhone; + @BindView(R.id.tv_party_sex) + TextView mTvPartySex; + @BindView(R.id.tv_party_nation) + TextView mTvPartyNation; + @BindView(R.id.tv_party_edu) + TextView mTvPartyEdu; + @BindView(R.id.tv_party_person_type) + TextView mTvPartyPersonType; + @BindView(R.id.tv_party_person_address) + TextView mTvPartyPersonAddress; + @BindView(R.id.tv_resolve_date) + TextView mTvResolveDate; + @BindView(R.id.tv_resolve_way) + TextView mTvResolveWay; + @BindView(R.id.tv_resolve_dept) + TextView mTvResolveDept; + @BindView(R.id.tv_resolve_name) + TextView mTvResolveName; + @BindView(R.id.tv_resolve_id_card) + TextView mTvResolveIdCard; + @BindView(R.id.tv_resolve_phone) + TextView mTvResolvePhone; + @BindView(R.id.sw_is_resolve) + Switch mSwIsResolve; + @BindView(R.id.tv_resolve_result) + TextView mTvResolveResult; + @BindView(R.id.tv_eva_advice) + TextView mTvEvaAdvice; + @BindView(R.id.tv_eva_date) + TextView mTvEvaDate; + @BindView(R.id.tv_measure) + TextView mTvMeasure; + @BindView(R.id.tv_work_record) + TextView mTvWorkRecord; + @BindView(R.id.tv_party_b_num) + TextView mTvPartyBNum; + @BindView(R.id.tv_party_b_name) + TextView mTvPartyBName; + @BindView(R.id.tv_party_b_phone) + TextView mTvPartyBPhone; + @BindView(R.id.ll_content) + LinearLayout mLlContent; + private Unbinder mBind; + private BaseRegisterDetailBean mBaseInfo; + private DisputeDetailBean bean; + private BaiduMap mBaiduMap; + private LatLng mDefaultPoint; + private BitmapDescriptor mBitmapDescriptor; + private List mPhotos = new ArrayList<>(); + private AddPhotoBean mCurrentBean; + private String mPicPath; + private String mPhotoIds = "";//相片Id + private AddPhotoAdapter mPhotoAdapter; + + @Override + protected int setLayoutId() { + return R.layout.activity_census_dispute_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"); + mPhotoAdapter = new AddPhotoAdapter(CensusDisputeDetailActivity.this, mPhotos); + mRlvPhoto.setLayoutManager(new GridLayoutManager(mActivity, 4)); + mRlvPhoto.setAdapter(mPhotoAdapter); + mPhotoAdapter.addOnItemClickListener(bean -> { + if (TextUtils.isEmpty(bean.getPath())) { + //空数据 + + } else { + //预览 + ArrayList list = new ArrayList<>(); + list.add(bean.getPath()); + Intent intent = new Intent(); + intent.putExtra(PhotoActivity.TAG_IMGURL, list); + intent.setClass(CensusDisputeDetailActivity.this, PhotoActivity.class); + startActivity(intent); + } + }); + initBaiduMap(); + 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 securityDetailById = RetrofitManager.getInstance().create(LocationApiService.class).getDisputeDetailById(id, UserLgUtils.getToken()); + Observable.merge(baseRegisterDetail, securityDetailById) + .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 DisputeDetailBean) { + bean = (DisputeDetailBean) 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 initBaiduMap() { + mDefaultPoint = new LatLng(PathConfig.LA, PathConfig.LO); + mBaiduMap = mMpView.getMap(); + MapStatus ms = new MapStatus.Builder().zoom(14).target(mDefaultPoint).build(); + MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); + View child = mMpView.getChildAt(1); + if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { + child.setVisibility(View.GONE); + } + mMpView.showZoomControls(false); + mBaiduMap.animateMapStatus(u); + } + + /** + * 详细信息 + */ + private void setDataToView() { + mTvCaseName.setText(bean.getCaseName()); + mTvCaseTitle.setText(bean.getCaseTitle()); + mTvCaseDate.setText(bean.getCaseTime()); + mTvCaseAddress.setText(bean.getCaseAddress()); + mTvDetailAddress.setText(bean.getCaseMapAddress()); + if (!TextUtils.isEmpty(bean.getCaseLat()) && !TextUtils.isEmpty(bean.getCaseLng())) { + Double lat = Double.parseDouble(bean.getCaseLat()); + Double lng = Double.parseDouble(bean.getCaseLng()); + addMarker(new LatLng(lat, lng)); + mTvPoint.setText("经纬度:" + bean.getCaseLat() + "-" + bean.getCaseLng()); + } + if (!TextUtils.isEmpty(bean.getCaseScale())) { + mTvCaseScale.setText(bean.getCaseScaleName()); + } + if (!TextUtils.isEmpty(bean.getCaseType())) { + mTvCaseType.setText(bean.getCaseTypeName()); + } + if (!TextUtils.isEmpty(bean.getCaseEstimate())) { + mTvCaseAssess.setText(bean.getCaseEstimateName()); + } + if (!TextUtils.isEmpty(bean.getCaseDegree())) { + mTvCaseDegree.setText(bean.getCaseDegreeName()); + } + if (!TextUtils.isEmpty(bean.getCaseLevel())) { + mTvCaseLevel.setText(bean.getCaseLevelName()); + } + if (!TextUtils.isEmpty(bean.getDisputeType())) { + mTvDisputeType.setText(bean.getDisputeTypeName()); + } + if (!TextUtils.isEmpty(bean.getDisputeLevel())) { + mTvDisputeLevel.setText(bean.getDisputeLevelName()); + } + if (!TextUtils.isEmpty(bean.getRiskType())) { + mTvRiskType.setText(bean.getRiskTypeName()); + } + + if (!TextUtils.isEmpty(bean.getRiskLevel())) { + mTvRiskLevel.setText(bean.getRiskLevelName()); + } + + mTvMoney.setText(bean.getDisputeMoney()); + mTvPersonNum.setText(bean.getDisputeNumber()); + mTvDept.setText(bean.getDisputeOrganization()); + mTvComposeDate.setText(bean.getMediateLastTime()); + mTvReasonOther.setText(bean.getCaseDescription()); + if (!TextUtils.isEmpty(bean.getCaseImages())) { + String[] photos = bean.getCaseImages().split(","); + mPhotos.clear(); + for (int i = 0; i < photos.length; i++) { + AddPhotoBean pBean = new AddPhotoBean(); + pBean.setId(photos[i]); + pBean.setPath(BaseUrlApi.BASE_IMG_URL + photos[i]); + mPhotos.add(pBean); + } + mPhotoAdapter.setData(mPhotos); + } + mTvPartyCardType.setText(bean.getPartyIdcardType()); + mTvPartyCardNum.setText(bean.getPartyIdcard()); + mTvPartyName.setText(bean.getPartyName()); + mTvPartyPhone.setText(bean.getPartyPhone()); + mTvPartySex.setText(bean.getPartySex()); + mTvPartyNation.setText(bean.getPartyNation()); + mTvPartyEdu.setText(bean.getPartyEducation()); + mTvPartyPersonType.setText(bean.getPartyType()); + mTvPartyPersonAddress.setText(bean.getPartyAddress()); + mTvResolveDate.setText(bean.getDefuseTime()); + if (!TextUtils.isEmpty(bean.getDefuseWay())) { + mTvResolveWay.setText(bean.getDefuseWayName()); + } + mTvResolveDept.setText(bean.getDefuseOrganization()); + mTvResolveName.setText(bean.getDefuseResponsibleName()); + mTvResolveIdCard.setText(bean.getDefuseResponsibleIdcard()); + mTvResolvePhone.setText(bean.getDefuseResponsiblePhone()); + mSwIsResolve.setChecked("是".equals(bean.getDefuseStatus())); + mTvResolveResult.setText(bean.getDefuseDescription()); + mTvEvaAdvice.setText(bean.getEvaluationOpinion()); + mTvEvaDate.setText(bean.getEvaluationTime()); + mTvMeasure.setText(bean.getMeasureDescription()); + mTvWorkRecord.setText(bean.getRecordDescription()); + mTvPartyBNum.setText(bean.getPartybIdcard()); + mTvPartyBPhone.setText(bean.getPartybPhone()); + mTvPartyBName.setText(bean.getPartybName()); + refreshView(STATE_LOAD_SUCCESS); + } + + /** + * 添加marker + * + * @param latLng + */ + private void addMarker(LatLng latLng) { + mBaiduMap.clear(); + mBitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker); + OverlayOptions option = new MarkerOptions() + .position(latLng) + .icon(mBitmapDescriptor) + .animateType(MarkerOptions.MarkerAnimateType.drop); + mBaiduMap.addOverlay(option); + MapStatus ms = new MapStatus.Builder().zoom(14).target(latLng).build(); + MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); + mBaiduMap.animateMapStatus(u); + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusDisputeListActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusDisputeListActivity.java new file mode 100644 index 0000000..0a274b9 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusDisputeListActivity.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.CorrectDisputeAdapter; +import com.sucstepsoft.realtimelocation.beans.SuccessBean; +import com.sucstepsoft.realtimelocation.beans.person.DisputeBean; +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 CensusDisputeListActivity extends BaseActivity { + @BindView(R.id.xlv_content) + XRecyclerView mXlvItems; + private Unbinder mBind; + private String mRows = "20"; + private int mCurPage = 1; + private CorrectDisputeAdapter mAdapter; + private List mDatas = new ArrayList<>(); + private Disposable mDisposable; + + + private String mKeywords = ""; + private String mId; + + @Override + protected int setLayoutId() { + return R.layout.activity_census_dispute_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, CensusDisputeAddActivity.class); + intent.putExtra("title", "矛盾纠纷信息录入"); + intent.putExtra("idCard", mId); + startActivity(intent); + }); + + mAdapter = new CorrectDisputeAdapter(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 CorrectDisputeAdapter.OnEditListener() { + @Override + public void onDel(DisputeBean.RowsBean bean, int pos) { + doDelBean(bean, pos); + } + + @Override + public void onEdit(DisputeBean.RowsBean bean, int pos) { + doEditBean(bean, pos); + } + }); + } + + + /** + * 删除数据 + * + * @param bean + * @param pos + */ + private void doDelBean(DisputeBean.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) + .doDelDispute(bean.getDisputeId(), 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(DisputeBean.RowsBean bean, int pos) { + Intent intent = new Intent(mActivity, CensusDisputeAddActivity.class); + intent.putExtra("title", "矛盾纠纷信息编辑"); + intent.putExtra("id", bean.getDisputeId()); + intent.putExtra("idCard", bean.getPartyPopulationInfoId()); + startActivity(intent); + } + + /** + * 显示详情 + * + * @param bean + */ + private void showDetail(DisputeBean.RowsBean bean) { + Intent intent = new Intent(mActivity, CensusDisputeDetailActivity.class); + intent.putExtra("id", bean.getDisputeId()); + intent.putExtra("idCard", bean.getPartyPopulationInfoId()); + 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) + .getDisputeList(mId, page + "", mKeywords, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(DisputeBean 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/activitys/census/special/CensusPetitionListActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusPetitionListActivity.java index e829800..f511c46 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusPetitionListActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/special/CensusPetitionListActivity.java @@ -120,7 +120,7 @@ public class CensusPetitionListActivity extends BaseActivity { dialog1.show(); RetrofitManager.getInstance() .create(LocationApiService.class) - .doDelSecurity(bean.getPetitionId(), UserLgUtils.getToken()) + .doDelPetition(bean.getPetitionId(), UserLgUtils.getToken()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/common/WorkSignActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/common/WorkSignActivity.java index c7a1ba5..e2b017d 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/common/WorkSignActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/common/WorkSignActivity.java @@ -35,6 +35,7 @@ import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; import com.sucstepsoft.cm_utils.utils.ConvertUtils; +import com.sucstepsoft.cm_utils.utils.LogUtils; import com.sucstepsoft.cm_utils.utils.TimeUtils; import com.sucstepsoft.cm_utils.utils.ToastUtils; import com.sucstepsoft.cm_utils.utils.UIUtil; @@ -52,6 +53,7 @@ import com.sucstepsoft.realtimelocation.beans.SuccessBean; import com.sucstepsoft.realtimelocation.net.LocationApiService; import com.sucstepsoft.realtimelocation.services.GlobalProvider; import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; +import com.sucstepsoft.realtimelocation.utils.PointUtils; import java.util.ArrayList; import java.util.List; @@ -93,8 +95,7 @@ public class WorkSignActivity extends BaseActivity { TextView mTvCurTime; @BindView(R.id.tv_out_time) TextView mTvOutTime; - @BindView(R.id.iv_state) - ImageView mIvState; + @BindView(R.id.iv_sign_in_state) ImageView mIvSignInState; @BindView(R.id.iv_sign_out_state) @@ -143,7 +144,7 @@ public class WorkSignActivity extends BaseActivity { mBtnResetLoc.setOnClickListener(v -> { if (mCurrent != null && mCurrent.getLatitude() != 0 && mCurrent.getLongitude() != 0) { - MapStatus cur = new MapStatus.Builder().zoom(16).target(new LatLng(mCurrent.getLatitude(), mCurrent.getLongitude())).build(); + MapStatus cur = new MapStatus.Builder().zoom(20).target(new LatLng(mCurrent.getLatitude(), mCurrent.getLongitude())).build(); MapStatusUpdate curUpdate = MapStatusUpdateFactory.newMapStatus(cur); mBaiduMap.animateMapStatus(curUpdate); } @@ -175,7 +176,7 @@ public class WorkSignActivity extends BaseActivity { if (checkCurrentPointIsBeyond(mCurrent)) { showSignOffDialog(); } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); + ToastUtils.showShort("当前位置不在打卡范围内."); } } else { getUserGrid(); @@ -187,7 +188,7 @@ public class WorkSignActivity extends BaseActivity { if (checkCurrentPointIsBeyond(mCurrent)) { showSDialog(); } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); + ToastUtils.showShort("当前位置不在打卡范围内"); } } else { getUserGrid(); @@ -238,7 +239,7 @@ public class WorkSignActivity extends BaseActivity { } } - if (legal) { + if (!legal) { hintMsg = "确定要签退吗?"; } else { hintMsg = "未到签退时间,提前签退属早退,您确定要早退吗?"; @@ -285,9 +286,6 @@ public class WorkSignActivity extends BaseActivity { mIvSignInState.setBackground(getResources().getDrawable(R.drawable.ic_sign_late)); } else { mIvSignInState.setBackground(getResources().getDrawable(R.drawable.ic_sign_normal)); - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); mTvState.setText("正常"); mTvState.setTextColor(Color.WHITE); } @@ -368,6 +366,7 @@ public class WorkSignActivity extends BaseActivity { * @param bdLocation */ private boolean checkCurrentPointIsBeyond(BDLocation bdLocation) { + return true; // if (mPenLineList != null && mPenLineList.size() > 0) { // for (int i = 0; i < mPenLineList.size(); i++) { // LatLng latLng = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); @@ -380,7 +379,6 @@ public class WorkSignActivity extends BaseActivity { // } else { // return false; // } - return true; } private void checkSign() { @@ -534,7 +532,7 @@ public class WorkSignActivity extends BaseActivity { @Override public void onNext(Long aLong) { - String curTime = TimeUtils.getCurDate() + "\n" + TimeUtils.getCurTime(); + String curTime = TimeUtils.getCurDate() + " " + TimeUtils.getCurTime(); mTvCurTime.setText(curTime); } @@ -617,6 +615,7 @@ public class WorkSignActivity extends BaseActivity { intent.putExtra("timeBean", mSignTimeBean); sendBroadcast(intent); setSignRuleTimeText(); + LogUtils.e(userType + "=="); } } @@ -750,7 +749,7 @@ public class WorkSignActivity extends BaseActivity { * @param latLng */ private void moveMapToCenter(LatLng latLng) { - MapStatus cur = new MapStatus.Builder().zoom(16).target(latLng).build(); + MapStatus cur = new MapStatus.Builder().zoom(18).target(latLng).build(); MapStatusUpdate curUpdate = MapStatusUpdateFactory.newMapStatus(cur); mBaiduMap.animateMapStatus(curUpdate); } @@ -793,9 +792,9 @@ public class WorkSignActivity extends BaseActivity { if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { mCurrent = bdLocation; if (TextUtils.isEmpty(mCurrent.getAddrStr())) { - mTvCurLocation.setText("当前地址:未知"); + mTvCurLocation.setText("当前位置:未知"); } else { - mTvCurLocation.setText("当前地址:" + mCurrent.getAddrStr()); + mTvCurLocation.setText("当前位置:" + mCurrent.getAddrStr()); } mBaiduMap.setMyLocationEnabled(true); MyLocationData locData = new MyLocationData.Builder() diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/CorrectDisputeAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/CorrectDisputeAdapter.java new file mode 100644 index 0000000..8cd9b3a --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/CorrectDisputeAdapter.java @@ -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.person.DisputeBean; + +import java.util.List; + +/** + * 作者: adam + * 日期: 2020/11/17 - 1:22 PM + * 邮箱: itgaojian@163.com + * 描述: 人口adapter + */ +public class CorrectDisputeAdapter extends BaseRecyclerAdapter { + public CorrectDisputeAdapter(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) { + DisputeBean.RowsBean bean = mData.get(i); + censusPersonHolder.mTvName.setText(bean.getCaseTitle()); + censusPersonHolder.mTvNative.setText("发生日期:" + bean.getCaseTime()); + censusPersonHolder.mTvPhone.setText("事件规模:" + bean.getCaseScaleName()); + censusPersonHolder.mTvLocation.setVisibility(View.VISIBLE); + censusPersonHolder.mTvLocation.setText(bean.getCaseAddress()); + censusPersonHolder.mLine.setVisibility(View.VISIBLE); + 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(DisputeBean.RowsBean bean, int pos); + + void onEdit(DisputeBean.RowsBean bean, int pos); + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/NewNoticeAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/NewNoticeAdapter.java new file mode 100755 index 0000000..45b8e1d --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/NewNoticeAdapter.java @@ -0,0 +1,38 @@ +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.NoticeHolder; +import com.sucstepsoft.realtimelocation.beans.NewsListBean; + +import java.util.List; + +/** + * 作者: Adam + * 日期: 2019/8/13 - 10:29 + * 邮箱: itgaojian@163.com + * 描述: + */ +public class NewNoticeAdapter extends BaseRecyclerAdapter { + public NewNoticeAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public NoticeHolder createHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_notice_new, parent, false); + return new NoticeHolder(itemView); + } + + @Override + public void bindHolder(NoticeHolder noticeHolder, int i) { + noticeHolder.mTvTitle.setText(mData.get(i).getNewsTitle()); + noticeHolder.mTvTime.setText(mData.get(i).getNewsTime()); + noticeHolder.mTvPub.setText(mData.get(i).getNewsAuthor()); + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/DisputeBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/DisputeBean.java new file mode 100644 index 0000000..2dc4faf --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/DisputeBean.java @@ -0,0 +1,595 @@ +package com.sucstepsoft.realtimelocation.beans.person; + +import java.util.List; + +public class DisputeBean { + + 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 caseAddress; + private String caseAreaCode; + private String caseAreaName; + private String caseDegree; + private String caseDescription; + private String caseEstimate; + private String caseEstimateName; + private String caseImages; + private String caseLat; + private String caseLevel; + private String caseLng; + private String caseMapAddress; + private String caseName; + private String caseScale; + private String caseScaleName; + private String caseTime; + private String caseTitle; + private String caseType; + private String caseTypeName; + private String creator; + private String defuseDescription; + private String defuseOrganization; + private String defuseResponsibleIdcard; + private String defuseResponsibleName; + private String defuseResponsiblePhone; + private String defuseResponsiblePopulationInfoId; + private String defuseStatus; + private String defuseTime; + private String defuseWay; + private String disputeId; + private String disputeLevel; + private String disputeMoney; + private String disputeNumber; + private String disputeOrganization; + private String disputeType; + private String evaluationOpinion; + private String evaluationTime; + private String gmtCreate; + private String gmtModified; + private String isDelete; + private String measureDescription; + private String mediateLastTime; + private String modifier; + private String partyAddress; + private String partyAreaCode; + private String partyAreaName; + private String partyEducation; + private String partyIdcard; + private String partyIdcardType; + private String partyName; + private String partyNation; + private String partyPhone; + private String partyPopulationInfoId; + private String partySex; + private String partyType; + private String partybIdcard; + private String partybName; + private String partybPhone; + private String partybPopulationInfoId; + private String recordDescription; + private String riskLevel; + private String riskType; + + public String getCaseAddress() { + return caseAddress; + } + + public void setCaseAddress(String caseAddress) { + this.caseAddress = caseAddress; + } + + public String getCaseAreaCode() { + return caseAreaCode; + } + + public void setCaseAreaCode(String caseAreaCode) { + this.caseAreaCode = caseAreaCode; + } + + public String getCaseAreaName() { + return caseAreaName; + } + + public void setCaseAreaName(String caseAreaName) { + this.caseAreaName = caseAreaName; + } + + public String getCaseDegree() { + return caseDegree; + } + + public void setCaseDegree(String caseDegree) { + this.caseDegree = caseDegree; + } + + public String getCaseDescription() { + return caseDescription; + } + + public void setCaseDescription(String caseDescription) { + this.caseDescription = caseDescription; + } + + public String getCaseEstimate() { + return caseEstimate; + } + + public void setCaseEstimate(String caseEstimate) { + this.caseEstimate = caseEstimate; + } + + public String getCaseEstimateName() { + return caseEstimateName; + } + + public void setCaseEstimateName(String caseEstimateName) { + this.caseEstimateName = caseEstimateName; + } + + public String getCaseImages() { + return caseImages; + } + + public void setCaseImages(String caseImages) { + this.caseImages = caseImages; + } + + public String getCaseLat() { + return caseLat; + } + + public void setCaseLat(String caseLat) { + this.caseLat = caseLat; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getCaseLng() { + return caseLng; + } + + public void setCaseLng(String caseLng) { + this.caseLng = caseLng; + } + + public String getCaseMapAddress() { + return caseMapAddress; + } + + public void setCaseMapAddress(String caseMapAddress) { + this.caseMapAddress = caseMapAddress; + } + + public String getCaseName() { + return caseName; + } + + public void setCaseName(String caseName) { + this.caseName = caseName; + } + + public String getCaseScale() { + return caseScale; + } + + public void setCaseScale(String caseScale) { + this.caseScale = caseScale; + } + + public String getCaseScaleName() { + return caseScaleName; + } + + public void setCaseScaleName(String caseScaleName) { + this.caseScaleName = caseScaleName; + } + + public String getCaseTime() { + return caseTime; + } + + public void setCaseTime(String caseTime) { + this.caseTime = caseTime; + } + + public String getCaseTitle() { + return caseTitle; + } + + public void setCaseTitle(String caseTitle) { + this.caseTitle = caseTitle; + } + + public String getCaseType() { + return caseType; + } + + public void setCaseType(String caseType) { + this.caseType = caseType; + } + + public String getCaseTypeName() { + return caseTypeName; + } + + public void setCaseTypeName(String caseTypeName) { + this.caseTypeName = caseTypeName; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getDefuseDescription() { + return defuseDescription; + } + + public void setDefuseDescription(String defuseDescription) { + this.defuseDescription = defuseDescription; + } + + public String getDefuseOrganization() { + return defuseOrganization; + } + + public void setDefuseOrganization(String defuseOrganization) { + this.defuseOrganization = defuseOrganization; + } + + public String getDefuseResponsibleIdcard() { + return defuseResponsibleIdcard; + } + + public void setDefuseResponsibleIdcard(String defuseResponsibleIdcard) { + this.defuseResponsibleIdcard = defuseResponsibleIdcard; + } + + public String getDefuseResponsibleName() { + return defuseResponsibleName; + } + + public void setDefuseResponsibleName(String defuseResponsibleName) { + this.defuseResponsibleName = defuseResponsibleName; + } + + public String getDefuseResponsiblePhone() { + return defuseResponsiblePhone; + } + + public void setDefuseResponsiblePhone(String defuseResponsiblePhone) { + this.defuseResponsiblePhone = defuseResponsiblePhone; + } + + public String getDefuseResponsiblePopulationInfoId() { + return defuseResponsiblePopulationInfoId; + } + + public void setDefuseResponsiblePopulationInfoId(String defuseResponsiblePopulationInfoId) { + this.defuseResponsiblePopulationInfoId = defuseResponsiblePopulationInfoId; + } + + public String getDefuseStatus() { + return defuseStatus; + } + + public void setDefuseStatus(String defuseStatus) { + this.defuseStatus = defuseStatus; + } + + public String getDefuseTime() { + return defuseTime; + } + + public void setDefuseTime(String defuseTime) { + this.defuseTime = defuseTime; + } + + public String getDefuseWay() { + return defuseWay; + } + + public void setDefuseWay(String defuseWay) { + this.defuseWay = defuseWay; + } + + public String getDisputeId() { + return disputeId; + } + + public void setDisputeId(String disputeId) { + this.disputeId = disputeId; + } + + public String getDisputeLevel() { + return disputeLevel; + } + + public void setDisputeLevel(String disputeLevel) { + this.disputeLevel = disputeLevel; + } + + public String getDisputeMoney() { + return disputeMoney; + } + + public void setDisputeMoney(String disputeMoney) { + this.disputeMoney = disputeMoney; + } + + public String getDisputeNumber() { + return disputeNumber; + } + + public void setDisputeNumber(String disputeNumber) { + this.disputeNumber = disputeNumber; + } + + public String getDisputeOrganization() { + return disputeOrganization; + } + + public void setDisputeOrganization(String disputeOrganization) { + this.disputeOrganization = disputeOrganization; + } + + public String getDisputeType() { + return disputeType; + } + + public void setDisputeType(String disputeType) { + this.disputeType = disputeType; + } + + public String getEvaluationOpinion() { + return evaluationOpinion; + } + + public void setEvaluationOpinion(String evaluationOpinion) { + this.evaluationOpinion = evaluationOpinion; + } + + public String getEvaluationTime() { + return evaluationTime; + } + + public void setEvaluationTime(String evaluationTime) { + this.evaluationTime = evaluationTime; + } + + 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 getIsDelete() { + return isDelete; + } + + public void setIsDelete(String isDelete) { + this.isDelete = isDelete; + } + + public String getMeasureDescription() { + return measureDescription; + } + + public void setMeasureDescription(String measureDescription) { + this.measureDescription = measureDescription; + } + + public String getMediateLastTime() { + return mediateLastTime; + } + + public void setMediateLastTime(String mediateLastTime) { + this.mediateLastTime = mediateLastTime; + } + + public String getModifier() { + return modifier; + } + + public void setModifier(String modifier) { + this.modifier = modifier; + } + + public String getPartyAddress() { + return partyAddress; + } + + public void setPartyAddress(String partyAddress) { + this.partyAddress = partyAddress; + } + + public String getPartyAreaCode() { + return partyAreaCode; + } + + public void setPartyAreaCode(String partyAreaCode) { + this.partyAreaCode = partyAreaCode; + } + + public String getPartyAreaName() { + return partyAreaName; + } + + public void setPartyAreaName(String partyAreaName) { + this.partyAreaName = partyAreaName; + } + + public String getPartyEducation() { + return partyEducation; + } + + public void setPartyEducation(String partyEducation) { + this.partyEducation = partyEducation; + } + + public String getPartyIdcard() { + return partyIdcard; + } + + public void setPartyIdcard(String partyIdcard) { + this.partyIdcard = partyIdcard; + } + + public String getPartyIdcardType() { + return partyIdcardType; + } + + public void setPartyIdcardType(String partyIdcardType) { + this.partyIdcardType = partyIdcardType; + } + + public String getPartyName() { + return partyName; + } + + public void setPartyName(String partyName) { + this.partyName = partyName; + } + + public String getPartyNation() { + return partyNation; + } + + public void setPartyNation(String partyNation) { + this.partyNation = partyNation; + } + + public String getPartyPhone() { + return partyPhone; + } + + public void setPartyPhone(String partyPhone) { + this.partyPhone = partyPhone; + } + + public String getPartyPopulationInfoId() { + return partyPopulationInfoId; + } + + public void setPartyPopulationInfoId(String partyPopulationInfoId) { + this.partyPopulationInfoId = partyPopulationInfoId; + } + + public String getPartySex() { + return partySex; + } + + public void setPartySex(String partySex) { + this.partySex = partySex; + } + + public String getPartyType() { + return partyType; + } + + public void setPartyType(String partyType) { + this.partyType = partyType; + } + + public String getPartybIdcard() { + return partybIdcard; + } + + public void setPartybIdcard(String partybIdcard) { + this.partybIdcard = partybIdcard; + } + + public String getPartybName() { + return partybName; + } + + public void setPartybName(String partybName) { + this.partybName = partybName; + } + + public String getPartybPhone() { + return partybPhone; + } + + public void setPartybPhone(String partybPhone) { + this.partybPhone = partybPhone; + } + + public String getPartybPopulationInfoId() { + return partybPopulationInfoId; + } + + public void setPartybPopulationInfoId(String partybPopulationInfoId) { + this.partybPopulationInfoId = partybPopulationInfoId; + } + + public String getRecordDescription() { + return recordDescription; + } + + public void setRecordDescription(String recordDescription) { + this.recordDescription = recordDescription; + } + + public String getRiskLevel() { + return riskLevel; + } + + public void setRiskLevel(String riskLevel) { + this.riskLevel = riskLevel; + } + + public String getRiskType() { + return riskType; + } + + public void setRiskType(String riskType) { + this.riskType = riskType; + } + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/DisputeDetailBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/DisputeDetailBean.java new file mode 100644 index 0000000..58ba08c --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/DisputeDetailBean.java @@ -0,0 +1,626 @@ +package com.sucstepsoft.realtimelocation.beans.person; + +public class DisputeDetailBean { + + private String caseAddress; + private String caseAreaCode; + private String caseAreaName; + private String caseDegree; + private String caseDegreeName; + private String caseDescription; + private String caseEstimate; + private String caseEstimateName; + private String caseImages; + private String caseLat; + private String caseLevel; + private String caseLevelName; + private String caseLng; + private String caseMapAddress; + private String caseName; + private String caseScale; + private String caseScaleName; + private String caseTime; + private String caseTitle; + private String caseType; + private String caseTypeName; + private String creator; + private String defuseDescription; + private String defuseOrganization; + private String defuseResponsibleIdcard; + private String defuseResponsibleName; + private String defuseResponsiblePhone; + private String defuseResponsiblePopulationInfoId; + private String defuseStatus; + private String defuseTime; + private String defuseWay; + private String defuseWayName; + private String disputeId; + private String disputeLevel; + private String disputeLevelName; + private String disputeMoney; + private String disputeNumber; + private String disputeOrganization; + private String disputeType; + private String disputeTypeName; + private String evaluationOpinion; + private String evaluationTime; + private String gmtCreate; + private String gmtModified; + private String isDelete; + private String measureDescription; + private String mediateLastTime; + private String modifier; + private String partyAddress; + private String partyAreaCode; + private String partyAreaName; + private String partyEducation; + private String partyIdcard; + private String partyIdcardType; + private String partyName; + private String partyNation; + private String partyPhone; + private String partyPopulationInfoId; + private String partySex; + private String partyType; + private String partybIdcard; + private String partybName; + private String partybPhone; + private String partybPopulationInfoId; + private String recordDescription; + private String riskLevel; + private String riskLevelName; + private String riskType; + private String riskTypeName; + + public String getCaseAddress() { + return caseAddress; + } + + public void setCaseAddress(String caseAddress) { + this.caseAddress = caseAddress; + } + + public String getCaseAreaCode() { + return caseAreaCode; + } + + public void setCaseAreaCode(String caseAreaCode) { + this.caseAreaCode = caseAreaCode; + } + + public String getCaseAreaName() { + return caseAreaName; + } + + public void setCaseAreaName(String caseAreaName) { + this.caseAreaName = caseAreaName; + } + + public String getCaseDegree() { + return caseDegree; + } + + public void setCaseDegree(String caseDegree) { + this.caseDegree = caseDegree; + } + + public String getCaseDegreeName() { + return caseDegreeName; + } + + public void setCaseDegreeName(String caseDegreeName) { + this.caseDegreeName = caseDegreeName; + } + + public String getCaseDescription() { + return caseDescription; + } + + public void setCaseDescription(String caseDescription) { + this.caseDescription = caseDescription; + } + + public String getCaseEstimate() { + return caseEstimate; + } + + public void setCaseEstimate(String caseEstimate) { + this.caseEstimate = caseEstimate; + } + + public String getCaseEstimateName() { + return caseEstimateName; + } + + public void setCaseEstimateName(String caseEstimateName) { + this.caseEstimateName = caseEstimateName; + } + + public String getCaseImages() { + return caseImages; + } + + public void setCaseImages(String caseImages) { + this.caseImages = caseImages; + } + + public String getCaseLat() { + return caseLat; + } + + public void setCaseLat(String caseLat) { + this.caseLat = caseLat; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getCaseLevelName() { + return caseLevelName; + } + + public void setCaseLevelName(String caseLevelName) { + this.caseLevelName = caseLevelName; + } + + public String getCaseLng() { + return caseLng; + } + + public void setCaseLng(String caseLng) { + this.caseLng = caseLng; + } + + public String getCaseMapAddress() { + return caseMapAddress; + } + + public void setCaseMapAddress(String caseMapAddress) { + this.caseMapAddress = caseMapAddress; + } + + public String getCaseName() { + return caseName; + } + + public void setCaseName(String caseName) { + this.caseName = caseName; + } + + public String getCaseScale() { + return caseScale; + } + + public void setCaseScale(String caseScale) { + this.caseScale = caseScale; + } + + public String getCaseScaleName() { + return caseScaleName; + } + + public void setCaseScaleName(String caseScaleName) { + this.caseScaleName = caseScaleName; + } + + public String getCaseTime() { + return caseTime; + } + + public void setCaseTime(String caseTime) { + this.caseTime = caseTime; + } + + public String getCaseTitle() { + return caseTitle; + } + + public void setCaseTitle(String caseTitle) { + this.caseTitle = caseTitle; + } + + public String getCaseType() { + return caseType; + } + + public void setCaseType(String caseType) { + this.caseType = caseType; + } + + public String getCaseTypeName() { + return caseTypeName; + } + + public void setCaseTypeName(String caseTypeName) { + this.caseTypeName = caseTypeName; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getDefuseDescription() { + return defuseDescription; + } + + public void setDefuseDescription(String defuseDescription) { + this.defuseDescription = defuseDescription; + } + + public String getDefuseOrganization() { + return defuseOrganization; + } + + public void setDefuseOrganization(String defuseOrganization) { + this.defuseOrganization = defuseOrganization; + } + + public String getDefuseResponsibleIdcard() { + return defuseResponsibleIdcard; + } + + public void setDefuseResponsibleIdcard(String defuseResponsibleIdcard) { + this.defuseResponsibleIdcard = defuseResponsibleIdcard; + } + + public String getDefuseResponsibleName() { + return defuseResponsibleName; + } + + public void setDefuseResponsibleName(String defuseResponsibleName) { + this.defuseResponsibleName = defuseResponsibleName; + } + + public String getDefuseResponsiblePhone() { + return defuseResponsiblePhone; + } + + public void setDefuseResponsiblePhone(String defuseResponsiblePhone) { + this.defuseResponsiblePhone = defuseResponsiblePhone; + } + + public String getDefuseResponsiblePopulationInfoId() { + return defuseResponsiblePopulationInfoId; + } + + public void setDefuseResponsiblePopulationInfoId(String defuseResponsiblePopulationInfoId) { + this.defuseResponsiblePopulationInfoId = defuseResponsiblePopulationInfoId; + } + + public String getDefuseStatus() { + return defuseStatus; + } + + public void setDefuseStatus(String defuseStatus) { + this.defuseStatus = defuseStatus; + } + + public String getDefuseTime() { + return defuseTime; + } + + public void setDefuseTime(String defuseTime) { + this.defuseTime = defuseTime; + } + + public String getDefuseWay() { + return defuseWay; + } + + public void setDefuseWay(String defuseWay) { + this.defuseWay = defuseWay; + } + + public String getDefuseWayName() { + return defuseWayName; + } + + public void setDefuseWayName(String defuseWayName) { + this.defuseWayName = defuseWayName; + } + + public String getDisputeId() { + return disputeId; + } + + public void setDisputeId(String disputeId) { + this.disputeId = disputeId; + } + + public String getDisputeLevel() { + return disputeLevel; + } + + public void setDisputeLevel(String disputeLevel) { + this.disputeLevel = disputeLevel; + } + + public String getDisputeLevelName() { + return disputeLevelName; + } + + public void setDisputeLevelName(String disputeLevelName) { + this.disputeLevelName = disputeLevelName; + } + + public String getDisputeMoney() { + return disputeMoney; + } + + public void setDisputeMoney(String disputeMoney) { + this.disputeMoney = disputeMoney; + } + + public String getDisputeNumber() { + return disputeNumber; + } + + public void setDisputeNumber(String disputeNumber) { + this.disputeNumber = disputeNumber; + } + + public String getDisputeOrganization() { + return disputeOrganization; + } + + public void setDisputeOrganization(String disputeOrganization) { + this.disputeOrganization = disputeOrganization; + } + + public String getDisputeType() { + return disputeType; + } + + public void setDisputeType(String disputeType) { + this.disputeType = disputeType; + } + + public String getDisputeTypeName() { + return disputeTypeName; + } + + public void setDisputeTypeName(String disputeTypeName) { + this.disputeTypeName = disputeTypeName; + } + + public String getEvaluationOpinion() { + return evaluationOpinion; + } + + public void setEvaluationOpinion(String evaluationOpinion) { + this.evaluationOpinion = evaluationOpinion; + } + + public String getEvaluationTime() { + return evaluationTime; + } + + public void setEvaluationTime(String evaluationTime) { + this.evaluationTime = evaluationTime; + } + + 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 getIsDelete() { + return isDelete; + } + + public void setIsDelete(String isDelete) { + this.isDelete = isDelete; + } + + public String getMeasureDescription() { + return measureDescription; + } + + public void setMeasureDescription(String measureDescription) { + this.measureDescription = measureDescription; + } + + public String getMediateLastTime() { + return mediateLastTime; + } + + public void setMediateLastTime(String mediateLastTime) { + this.mediateLastTime = mediateLastTime; + } + + public String getModifier() { + return modifier; + } + + public void setModifier(String modifier) { + this.modifier = modifier; + } + + public String getPartyAddress() { + return partyAddress; + } + + public void setPartyAddress(String partyAddress) { + this.partyAddress = partyAddress; + } + + public String getPartyAreaCode() { + return partyAreaCode; + } + + public void setPartyAreaCode(String partyAreaCode) { + this.partyAreaCode = partyAreaCode; + } + + public String getPartyAreaName() { + return partyAreaName; + } + + public void setPartyAreaName(String partyAreaName) { + this.partyAreaName = partyAreaName; + } + + public String getPartyEducation() { + return partyEducation; + } + + public void setPartyEducation(String partyEducation) { + this.partyEducation = partyEducation; + } + + public String getPartyIdcard() { + return partyIdcard; + } + + public void setPartyIdcard(String partyIdcard) { + this.partyIdcard = partyIdcard; + } + + public String getPartyIdcardType() { + return partyIdcardType; + } + + public void setPartyIdcardType(String partyIdcardType) { + this.partyIdcardType = partyIdcardType; + } + + public String getPartyName() { + return partyName; + } + + public void setPartyName(String partyName) { + this.partyName = partyName; + } + + public String getPartyNation() { + return partyNation; + } + + public void setPartyNation(String partyNation) { + this.partyNation = partyNation; + } + + public String getPartyPhone() { + return partyPhone; + } + + public void setPartyPhone(String partyPhone) { + this.partyPhone = partyPhone; + } + + public String getPartyPopulationInfoId() { + return partyPopulationInfoId; + } + + public void setPartyPopulationInfoId(String partyPopulationInfoId) { + this.partyPopulationInfoId = partyPopulationInfoId; + } + + public String getPartySex() { + return partySex; + } + + public void setPartySex(String partySex) { + this.partySex = partySex; + } + + public String getPartyType() { + return partyType; + } + + public void setPartyType(String partyType) { + this.partyType = partyType; + } + + public String getPartybIdcard() { + return partybIdcard; + } + + public void setPartybIdcard(String partybIdcard) { + this.partybIdcard = partybIdcard; + } + + public String getPartybName() { + return partybName; + } + + public void setPartybName(String partybName) { + this.partybName = partybName; + } + + public String getPartybPhone() { + return partybPhone; + } + + public void setPartybPhone(String partybPhone) { + this.partybPhone = partybPhone; + } + + public String getPartybPopulationInfoId() { + return partybPopulationInfoId; + } + + public void setPartybPopulationInfoId(String partybPopulationInfoId) { + this.partybPopulationInfoId = partybPopulationInfoId; + } + + public String getRecordDescription() { + return recordDescription; + } + + public void setRecordDescription(String recordDescription) { + this.recordDescription = recordDescription; + } + + public String getRiskLevel() { + return riskLevel; + } + + public void setRiskLevel(String riskLevel) { + this.riskLevel = riskLevel; + } + + public String getRiskLevelName() { + return riskLevelName; + } + + public void setRiskLevelName(String riskLevelName) { + this.riskLevelName = riskLevelName; + } + + public String getRiskType() { + return riskType; + } + + public void setRiskType(String riskType) { + this.riskType = riskType; + } + + public String getRiskTypeName() { + return riskTypeName; + } + + public void setRiskTypeName(String riskTypeName) { + this.riskTypeName = riskTypeName; + } +} diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/SaveDisputeBean.java b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/SaveDisputeBean.java new file mode 100644 index 0000000..8382075 --- /dev/null +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/beans/person/SaveDisputeBean.java @@ -0,0 +1,482 @@ +package com.sucstepsoft.realtimelocation.beans.person; + +public class SaveDisputeBean { + + private String caseAddress; + private String caseAreaCode; + private String caseAreaName; + private String caseDegree; + private String caseDescription; + private String caseEstimate; + private String caseImages; + private String caseLat; + private String caseLevel; + private String caseLng; + private String caseMapAddress; + private String caseName; + private String caseScale; + private String caseTime; + private String caseTitle; + private String caseType; + private String defuseDescription; + private String defuseOrganization; + private String defuseResponsibleIdcard; + private String defuseResponsibleName; + private String defuseResponsiblePhone; + private String defuseResponsiblePopulationInfoId; + private String defuseStatus; + private String defuseTime; + private String defuseWay; + private String disputeLevel; + private String disputeMoney; + private String disputeNumber; + private String disputeOrganization; + private String disputeType; + private String evaluationOpinion; + private String evaluationTime; + private String measureDescription; + private String mediateLastTime; + private String partyAddress; + private String partyAreaCode; + private String partyAreaName; + private String partyEducation; + private String partyIdcard; + private String partyIdcardType; + private String partyName; + private String partyNation; + private String partyPhone; + private String partyPopulationInfoId; + private String partySex; + private String partyType; + private String partybIdcard; + private String partybName; + private String partybPhone; + private String partybPopulationInfoId; + private String recordDescription; + private String riskLevel; + private String riskType; + + public String getCaseAddress() { + return caseAddress; + } + + public void setCaseAddress(String caseAddress) { + this.caseAddress = caseAddress; + } + + public String getCaseAreaCode() { + return caseAreaCode; + } + + public void setCaseAreaCode(String caseAreaCode) { + this.caseAreaCode = caseAreaCode; + } + + public String getCaseAreaName() { + return caseAreaName; + } + + public void setCaseAreaName(String caseAreaName) { + this.caseAreaName = caseAreaName; + } + + public String getCaseDegree() { + return caseDegree; + } + + public void setCaseDegree(String caseDegree) { + this.caseDegree = caseDegree; + } + + public String getCaseDescription() { + return caseDescription; + } + + public void setCaseDescription(String caseDescription) { + this.caseDescription = caseDescription; + } + + public String getCaseEstimate() { + return caseEstimate; + } + + public void setCaseEstimate(String caseEstimate) { + this.caseEstimate = caseEstimate; + } + + public String getCaseImages() { + return caseImages; + } + + public void setCaseImages(String caseImages) { + this.caseImages = caseImages; + } + + public String getCaseLat() { + return caseLat; + } + + public void setCaseLat(String caseLat) { + this.caseLat = caseLat; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getCaseLng() { + return caseLng; + } + + public void setCaseLng(String caseLng) { + this.caseLng = caseLng; + } + + public String getCaseMapAddress() { + return caseMapAddress; + } + + public void setCaseMapAddress(String caseMapAddress) { + this.caseMapAddress = caseMapAddress; + } + + public String getCaseName() { + return caseName; + } + + public void setCaseName(String caseName) { + this.caseName = caseName; + } + + public String getCaseScale() { + return caseScale; + } + + public void setCaseScale(String caseScale) { + this.caseScale = caseScale; + } + + public String getCaseTime() { + return caseTime; + } + + public void setCaseTime(String caseTime) { + this.caseTime = caseTime; + } + + public String getCaseTitle() { + return caseTitle; + } + + public void setCaseTitle(String caseTitle) { + this.caseTitle = caseTitle; + } + + public String getCaseType() { + return caseType; + } + + public void setCaseType(String caseType) { + this.caseType = caseType; + } + + public String getDefuseDescription() { + return defuseDescription; + } + + public void setDefuseDescription(String defuseDescription) { + this.defuseDescription = defuseDescription; + } + + public String getDefuseOrganization() { + return defuseOrganization; + } + + public void setDefuseOrganization(String defuseOrganization) { + this.defuseOrganization = defuseOrganization; + } + + public String getDefuseResponsibleIdcard() { + return defuseResponsibleIdcard; + } + + public void setDefuseResponsibleIdcard(String defuseResponsibleIdcard) { + this.defuseResponsibleIdcard = defuseResponsibleIdcard; + } + + public String getDefuseResponsibleName() { + return defuseResponsibleName; + } + + public void setDefuseResponsibleName(String defuseResponsibleName) { + this.defuseResponsibleName = defuseResponsibleName; + } + + public String getDefuseResponsiblePhone() { + return defuseResponsiblePhone; + } + + public void setDefuseResponsiblePhone(String defuseResponsiblePhone) { + this.defuseResponsiblePhone = defuseResponsiblePhone; + } + + public String getDefuseResponsiblePopulationInfoId() { + return defuseResponsiblePopulationInfoId; + } + + public void setDefuseResponsiblePopulationInfoId(String defuseResponsiblePopulationInfoId) { + this.defuseResponsiblePopulationInfoId = defuseResponsiblePopulationInfoId; + } + + public String getDefuseStatus() { + return defuseStatus; + } + + public void setDefuseStatus(String defuseStatus) { + this.defuseStatus = defuseStatus; + } + + public String getDefuseTime() { + return defuseTime; + } + + public void setDefuseTime(String defuseTime) { + this.defuseTime = defuseTime; + } + + public String getDefuseWay() { + return defuseWay; + } + + public void setDefuseWay(String defuseWay) { + this.defuseWay = defuseWay; + } + + public String getDisputeLevel() { + return disputeLevel; + } + + public void setDisputeLevel(String disputeLevel) { + this.disputeLevel = disputeLevel; + } + + public String getDisputeMoney() { + return disputeMoney; + } + + public void setDisputeMoney(String disputeMoney) { + this.disputeMoney = disputeMoney; + } + + public String getDisputeNumber() { + return disputeNumber; + } + + public void setDisputeNumber(String disputeNumber) { + this.disputeNumber = disputeNumber; + } + + public String getDisputeOrganization() { + return disputeOrganization; + } + + public void setDisputeOrganization(String disputeOrganization) { + this.disputeOrganization = disputeOrganization; + } + + public String getDisputeType() { + return disputeType; + } + + public void setDisputeType(String disputeType) { + this.disputeType = disputeType; + } + + public String getEvaluationOpinion() { + return evaluationOpinion; + } + + public void setEvaluationOpinion(String evaluationOpinion) { + this.evaluationOpinion = evaluationOpinion; + } + + public String getEvaluationTime() { + return evaluationTime; + } + + public void setEvaluationTime(String evaluationTime) { + this.evaluationTime = evaluationTime; + } + + public String getMeasureDescription() { + return measureDescription; + } + + public void setMeasureDescription(String measureDescription) { + this.measureDescription = measureDescription; + } + + public String getMediateLastTime() { + return mediateLastTime; + } + + public void setMediateLastTime(String mediateLastTime) { + this.mediateLastTime = mediateLastTime; + } + + public String getPartyAddress() { + return partyAddress; + } + + public void setPartyAddress(String partyAddress) { + this.partyAddress = partyAddress; + } + + public String getPartyAreaCode() { + return partyAreaCode; + } + + public void setPartyAreaCode(String partyAreaCode) { + this.partyAreaCode = partyAreaCode; + } + + public String getPartyAreaName() { + return partyAreaName; + } + + public void setPartyAreaName(String partyAreaName) { + this.partyAreaName = partyAreaName; + } + + public String getPartyEducation() { + return partyEducation; + } + + public void setPartyEducation(String partyEducation) { + this.partyEducation = partyEducation; + } + + public String getPartyIdcard() { + return partyIdcard; + } + + public void setPartyIdcard(String partyIdcard) { + this.partyIdcard = partyIdcard; + } + + public String getPartyIdcardType() { + return partyIdcardType; + } + + public void setPartyIdcardType(String partyIdcardType) { + this.partyIdcardType = partyIdcardType; + } + + public String getPartyName() { + return partyName; + } + + public void setPartyName(String partyName) { + this.partyName = partyName; + } + + public String getPartyNation() { + return partyNation; + } + + public void setPartyNation(String partyNation) { + this.partyNation = partyNation; + } + + public String getPartyPhone() { + return partyPhone; + } + + public void setPartyPhone(String partyPhone) { + this.partyPhone = partyPhone; + } + + public String getPartyPopulationInfoId() { + return partyPopulationInfoId; + } + + public void setPartyPopulationInfoId(String partyPopulationInfoId) { + this.partyPopulationInfoId = partyPopulationInfoId; + } + + public String getPartySex() { + return partySex; + } + + public void setPartySex(String partySex) { + this.partySex = partySex; + } + + public String getPartyType() { + return partyType; + } + + public void setPartyType(String partyType) { + this.partyType = partyType; + } + + public String getPartybIdcard() { + return partybIdcard; + } + + public void setPartybIdcard(String partybIdcard) { + this.partybIdcard = partybIdcard; + } + + public String getPartybName() { + return partybName; + } + + public void setPartybName(String partybName) { + this.partybName = partybName; + } + + public String getPartybPhone() { + return partybPhone; + } + + public void setPartybPhone(String partybPhone) { + this.partybPhone = partybPhone; + } + + public String getPartybPopulationInfoId() { + return partybPopulationInfoId; + } + + public void setPartybPopulationInfoId(String partybPopulationInfoId) { + this.partybPopulationInfoId = partybPopulationInfoId; + } + + public String getRecordDescription() { + return recordDescription; + } + + public void setRecordDescription(String recordDescription) { + this.recordDescription = recordDescription; + } + + public String getRiskLevel() { + return riskLevel; + } + + public void setRiskLevel(String riskLevel) { + this.riskLevel = riskLevel; + } + + public String getRiskType() { + return riskType; + } + + public void setRiskType(String riskType) { + this.riskType = riskType; + } +} 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 b3d9e28..1553f37 100755 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/net/LocationApiService.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/net/LocationApiService.java @@ -52,6 +52,8 @@ import com.sucstepsoft.realtimelocation.beans.person.CensusRegisterDetailBean; import com.sucstepsoft.realtimelocation.beans.person.CensusYoungDetailBean; import com.sucstepsoft.realtimelocation.beans.person.CommunityListBean; import com.sucstepsoft.realtimelocation.beans.person.CorrectDetailBean; +import com.sucstepsoft.realtimelocation.beans.person.DisputeBean; +import com.sucstepsoft.realtimelocation.beans.person.DisputeDetailBean; import com.sucstepsoft.realtimelocation.beans.person.DrugDetailBean; import com.sucstepsoft.realtimelocation.beans.person.DrugPersonBean; import com.sucstepsoft.realtimelocation.beans.person.HeresyBean; @@ -1356,12 +1358,51 @@ public interface LocationApiService { /** - * 涉邪重点上访 + * 重点上访 */ @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) @GET("app/petition/listpagepetition") Observable getPetitionList(@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/dispute/save") + Observable doSaveDispute(@Body RequestBody body, @Header("token") String token); + + /** + * 编辑矛盾纠纷 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @PUT("app/dispute/updatedispute/{disputeId}") + Observable doEditDispute(@Path("disputeId") String id, @Body RequestBody body, @Header("token") String token); + + /** + * 删除矛盾纠纷 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @DELETE("app/dispute/remove/{ids}") + Observable doDelDispute(@Path("ids") String id, @Header("token") String token); + + /** + * 根据ID获取详情 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/dispute/get/{disputeId}") + Observable getDisputeDetailById(@Path("disputeId") String id, @Header("token") String token); + + + /** + * 矛盾纠纷 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/dispute/listpagedispute") + Observable getDisputeList(@Query("populationInfoId") String id, @Query("page") String page, @Query("keywords") String key, @Header("token") String token); + /*===========================================艾滋===========================================*/ /** diff --git a/app/src/main/res/drawable-xhdpi/ic_more_16.png b/app/src/main/res/drawable-xhdpi/ic_more_16.png new file mode 100644 index 0000000..f90071a Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_more_16.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_more_32.png b/app/src/main/res/drawable-xhdpi/ic_more_32.png new file mode 100644 index 0000000..5258060 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_more_32.png differ diff --git a/app/src/main/res/layout/activity_census_dispute_add.xml b/app/src/main/res/layout/activity_census_dispute_add.xml new file mode 100644 index 0000000..a5cfbc0 --- /dev/null +++ b/app/src/main/res/layout/activity_census_dispute_add.xml @@ -0,0 +1,950 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +