diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 62b5e6d..b3f7be9 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -50,11 +50,10 @@ tools:ignore="GoogleAppIndexingWarning"> - - + android:screenOrientation="portrait" + android:windowSoftInputMode="adjustPan|stateHidden" + tools:ignore="LockedOrientationActivity" /> + mFuncs = new ArrayList<>(); //TODO "特殊案件\n上报", "特殊案件\n处理", "特殊案件\n记录", - private String[] mBtnStrs = new String[]{"案件上报", "案件记录", "案件处理", "工作路径", "通讯录", "通知公告", "人口房屋", "工作日志"}; - private int[] mBtnIds = new int[]{R.drawable.ic_issue_report, - R.drawable.ic_issue_record, + private String[] mBtnStrs = new String[]{"案件上报", "案件处理", "工作路径", "人口房屋", "工作日志"}; + private int[] mBtnIds = new int[]{ + R.drawable.ic_issue_report, R.drawable.ic_issue_disp, R.drawable.ic_work_path, - R.drawable.ic_address_list, - R.drawable.ic_notice, - R.drawable.ic_address_list, - R.drawable.ic_issue_record}; + R.drawable.ic_hose_person, + R.drawable.ic_work_log}; private Gson mGson = null; private boolean isSgin = false;//是否签到 private boolean isSignOff = false;//是否签退 @@ -206,9 +195,12 @@ public class MainActivity extends BaseActivity { private long mCurrentLongTime; private LocationClient mLocationClient; + private List mDatas; + private NoticeAdapter mAdapter; + @Override protected int setLayoutId() { - return R.layout.activity_main; + return R.layout.activity_main_new; } @Override @@ -217,8 +209,6 @@ public class MainActivity extends BaseActivity { refreshView(STATE_LOAD_SUCCESS); mRlTitleBar.setVisibility(View.GONE); initMainFuncs(); - //TODO 一像素保活 -// initScreenListener(); mCurrentLongTime = 0; PermissionUtils.permission(permissions).callback(new PermissionUtils.SimpleCallback() { @Override @@ -226,7 +216,6 @@ public class MainActivity extends BaseActivity { registerMessageReceiver(); createCacheFile(); startListenLocation(); - startSignLocation(); } @Override @@ -235,14 +224,10 @@ public class MainActivity extends BaseActivity { } }).request(); initBaseView(); - //TODO - getPunchTime(123); - setSignText(); - getUserPenList(); - interval(); +// getUserPenList(); registerGpsSignal(); -// checkLocalText(); registerGpsState(); + getNoticeList(); String page = getIntent().getStringExtra("page"); if (!TextUtils.isEmpty(page) && "uncheck".equals(page)) { startActivity(new Intent(MainActivity.this, IssueCheckActivity.class)); @@ -410,8 +395,8 @@ public class MainActivity extends BaseActivity { mFuncs.add(bean); } FunctionNumAdapter adapter = new FunctionNumAdapter(mActivity, mFuncs); - mRlvBtns.setLayoutManager(new GridLayoutManager(mActivity, 2)); - mRlvBtns.setAdapter(adapter); + mRlvFuncs.setLayoutManager(new GridLayoutManager(mActivity, 4)); + mRlvFuncs.setAdapter(adapter); adapter.addOnItemClickListener(this::chosePage); } @@ -463,7 +448,6 @@ public class MainActivity extends BaseActivity { case "工作日志": startActivity(new Intent(mActivity, WorkLogActivity.class)); break; - } } @@ -486,7 +470,10 @@ public class MainActivity extends BaseActivity { @Override public void choseAlbum() { //户籍人口 - startActivity(new Intent(mActivity, CensusExpandableMainActivity.class)); +// startActivity(new Intent(mActivity, CensusExpandableMainActivity.class)); + Intent intent = new Intent(mActivity, CensusRegisterAddActivity.class); + intent.putExtra("title", "基础人口信息录入"); + startActivity(intent); build.dismiss(); } @@ -561,13 +548,16 @@ public class MainActivity extends BaseActivity { .error(R.drawable.ic_user_default) .placeholder(R.drawable.ic_user_default)) .into(mIvUserIcon); - mTvCurrentTime.setText("当前地址:定位中..."); - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); -// checkAmSign(); + mDatas = new ArrayList<>(); + mAdapter = new NoticeAdapter(mActivity, mDatas); + mRlvNotice.setLayoutManager(new LinearLayoutManager(mActivity)); + mRlvNotice.setAdapter(mAdapter); + mCsvNotice.setOnClickListener(v -> { + if (mCsvNotice.getState() == CustomStateView.STATE_ERROR) { + mCsvNotice.setState(CustomStateView.STATE_LOAD); + getNoticeList(); + } + }); checkPermission(); } @@ -735,33 +725,10 @@ public class MainActivity extends BaseActivity { @Override public void onNext(CheckSignBean checkSignBean) { - if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData().getIsSign())) { - boolean b = Boolean.parseBoolean(checkSignBean.getData().getIsSign()); - if (!TextUtils.isEmpty(checkSignBean.getData().getStatus())) { - boolean late = Boolean.parseBoolean(checkSignBean.getData().getStatus()); - if (late) { - //迟到了 - Glide.with(mActivity) - .load(R.drawable.ic_late) - .into(mIvState); - mTvState.setText("迟到"); - mTvState.setTextColor(Color.RED); - } else { - //正常 - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); - } - } else { - //正常 - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); - } + if (checkSignBean != null) { + boolean b = checkSignBean.getData().isSignIn(); + boolean late = checkSignBean.getData().isLate(); + if (b) { isSgin = true; mBtnSign.setTextColor(Color.WHITE); @@ -789,6 +756,47 @@ public class MainActivity extends BaseActivity { }); } + /** + * 获取通知公告 + */ + private void getNoticeList() { + mDatas.clear(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getNewsList("notice", "20", "1", UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(NewsListBean newsListBean) { + if (newsListBean != null && newsListBean.getRows() != null && newsListBean.getRows().size() > 0) { + mDatas = newsListBean.getRows(); + mAdapter.setData(mDatas); + mCsvNotice.setState(CustomStateView.STATE_SUCCESS); + } else { + mRlvNotice.setVisibility(View.GONE); + mCsvNotice.setState(CustomStateView.STATE_EMPTY); + } + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + mCsvNotice.setState(CustomStateView.STATE_ERROR); + } + + @Override + public void onComplete() { + + } + }); + } + /** * 校验是否签退 */ @@ -891,60 +899,32 @@ public class MainActivity extends BaseActivity { * 显示N员签到签退 */ private void showN() { - String nowHour = TimeUtils.getNowHourHHmmSS(); - if (mSignTimeBean != null) { - if (isSgin) { - //已经签到,显示签退 - if (isSignOff) { - ToastUtils.showShort("今日打卡已完成"); - } else { - boolean isTimeLegal = false; - if (!TextUtils.isEmpty(mSignTimeBean.getCustomSignOutStr())) { -// isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getGaSignOutStr() + "-" + mSignTimeBean.getGaSignOutEnd(), nowHour); - isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getCustomSignOutStr() + "-" + mSignTimeBean.getCustomSignOutEnd(), nowHour); - } else { - isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getNSignOutStr() + "-" + mSignTimeBean.getNSignOutEnd(), nowHour); - } - if (isTimeLegal) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSignOffDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } - } else { - getPenList(); - } - } else { - //获取当前时间判断在哪个时间范围内 - ToastUtils.showLong("请按照签退规则进行签退."); - } - } + if (isSgin) { + //已经签到,显示签退 + if (isSignOff) { + ToastUtils.showShort("今日打卡已完成"); } else { - //未签到 - boolean isLegalTime = false; - if (!TextUtils.isEmpty(mSignTimeBean.getCustomSignInStr())) { -// isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getGaSignInStr() + "-" + mSignTimeBean.getGaSignOutStr(), nowHour); - isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getCustomSignInStr() + "-" + mSignTimeBean.getCustomSignOutStr(), nowHour); - } else { - isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getNSignInStr() + "-" + mSignTimeBean.getNSignOutStr(), nowHour); - } - if (isLegalTime) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrenPointIsBeyond(mCurrentLocation)) { + showSignOffDialog(); } else { - getPenList(); + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); } } else { - ToastUtils.showLong("请按照签到规则进行签到."); + getPenList(); } } } else { - getPunchTime(2); + //未签到 + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrenPointIsBeyond(mCurrentLocation)) { + showSDialog(); + } else { + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); + } + } else { + getPenList(); + } } } @@ -952,48 +932,32 @@ public class MainActivity extends BaseActivity { * 显示片长签到签退 */ private void show() { - String nowHour = TimeUtils.getNowHourHHmmSS(); - if (mSignTimeBean != null) { - if (isSgin) { - //已经签到,显示签退 - if (isSignOff) { - ToastUtils.showShort("今日打卡已完成"); - } else { - boolean isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getSignOutStr() + "-" + mSignTimeBean.getSignOutEnd(), nowHour); - if (isTimeLegal) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSignOffDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } - } else { - getPenList(); - } - } else { - //获取当前时间判断在哪个时间范围内 - ToastUtils.showLong("请按照签退规则进行签退."); - } - } + if (isSgin) { + //已经签到,显示签退 + if (isSignOff) { + ToastUtils.showShort("今日打卡已完成"); } else { - //未签到 - boolean isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getSignInStr() + "-" + mSignTimeBean.getSignOutStr(), nowHour); - if (isLegalTime) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrenPointIsBeyond(mCurrentLocation)) { + showSignOffDialog(); } else { - getPenList(); + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); } } else { - ToastUtils.showLong("请按照签到规则进行签到."); + getPenList(); } } } else { - getPunchTime(2); + //未签到 + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrenPointIsBeyond(mCurrentLocation)) { + showSDialog(); + } else { + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); + } + } else { + getPenList(); + } } } @@ -1222,23 +1186,9 @@ public class MainActivity extends BaseActivity { @Override public void onNext(SignDataBean successBean) { -// LogUtils.e(successBean); -// uploadPoint(); isSgin = true; isSignOff = false; - if (successBean.isData()) { - Glide.with(mActivity) - .load(R.drawable.ic_late) - .into(mIvState); - mTvState.setText("迟到"); - mTvState.setTextColor(Color.RED); - } else { - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); - } + dialog.dismiss(); GlobalProvider.save(mActivity, "isUpload", "13"); setSignOffText(); @@ -1304,40 +1254,7 @@ public class MainActivity extends BaseActivity { * 设置签到完成文字 */ private void setSignCompleteText() { - mBtnSign.setText("打卡\n完成"); - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); -// if (userType == 2) { -// mBtnSign.setText("打卡\n完成"); -// Glide.with(mActivity) -// .load(R.drawable.ic_nomal) -// .into(mIvState); -// mTvState.setText("正常"); -// mTvState.setTextColor(Color.WHITE); -// boolean amOrPm = TimeUtils.isAmOrPm(); -// if (amOrPm) { -// //未签到 -// mBtnSign.setText("下午\n签到"); -// } else { -// //下午 -// mBtnSign.setText("打卡\n完成"); -// Glide.with(mActivity) -// .load(R.drawable.ic_nomal) -// .into(mIvState); -// mTvState.setText("正常"); -// mTvState.setTextColor(Color.WHITE); -// } -// } else { -// mBtnSign.setText("打卡\n完成"); -// Glide.with(mActivity) -// .load(R.drawable.ic_nomal) -// .into(mIvState); -// mTvState.setText("正常"); -// mTvState.setTextColor(Color.WHITE); -// } + } /** @@ -1378,19 +1295,14 @@ public class MainActivity extends BaseActivity { *

* R.id.ll_mine_issue, */ - @OnClick({/**R.id.rl_issue_report, - R.id.rl_issue_record, - R.id.rl_issue_dispose, - R.id.rl_address_list, - R.id.rl_notice, - R.id.rl_work_iocus,*/ -// R.id.ll_issue_dis, + @OnClick({ R.id.ll_history, R.id.btn_sign, R.id.ll_plan, - R.id.tv_rule, R.id.ll_user_center, - R.id.ll_day_aviso}) + R.id.ll_day_aviso, + R.id.ll_address_list, + R.id.ll_case_record}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.ll_history://待办案件 @@ -1400,7 +1312,8 @@ public class MainActivity extends BaseActivity { startActivity(new Intent(mActivity, IssueMineActivity.class)); break; case R.id.btn_sign://签到 - showSignDialog(); +// showSignDialog(); + startActivity(new Intent(mActivity, WorkSignActivity.class)); break; case R.id.ll_day_aviso://每日通报 Intent intent = new Intent(MainActivity.this, NoticeActivity.class); @@ -1410,12 +1323,13 @@ public class MainActivity extends BaseActivity { case R.id.ll_user_center://个人中心 startActivity(new Intent(MainActivity.this, UserActivity.class)); break; - case R.id.tv_rule://签到规则 - if (2 == userType) { - showRuleDialog(); - } else { - showNRuleDialog(); - } + case R.id.ll_address_list://通讯录 + Intent intent2 = new Intent(mActivity, AddressListMainActivity.class); + intent2.putExtra("uType", userType); + startActivity(intent2); + break; + case R.id.ll_case_record://案件记录 + startActivity(new Intent(mActivity, IssueRecordActivity.class)); break; } } @@ -1732,76 +1646,76 @@ public class MainActivity extends BaseActivity { } private void checkPointIsLegal(BDLocation bdLocation) { - LogUtils.e("城市码==" + bdLocation.getCityCode() + "===" + bdLocation.getLatitude() + "===" + bdLocation.getLongitude()); - if (PathConfig.IS_LIMIT) { - if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) { - if (bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { - if (mPrecision >= mPrecMax) { - mPrecision = mPrecisionDefault; - if (mGpsWeakDialog == null) { - AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); - builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") - .setTitle("提示") - .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); - mGpsWeakDialog = builder.create(); - } - if (!mGpsWeakDialog.isShowing()) { - mGpsWeakDialog.show(); - } - } else { - if (bdLocation.getRadius() <= mPrecision) { - mPrecision = mPrecisionDefault; - if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { - mCurrentLocation = bdLocation; - if (mGpsDis != null && !mGpsDis.isDisposed()) { - mGpsDis.dispose(); - } - if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { - mTvCurrentTime.setText("当前地址:未知"); - } else { - mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); - } - } - } else { - mPrecision += 10; - } - } - } - } - } else { - if (bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { - if (mPrecision >= mPrecMax) { - mPrecision = mPrecisionDefault; - if (mGpsWeakDialog == null) { - AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); - builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") - .setTitle("提示") - .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); - mGpsWeakDialog = builder.create(); - } - if (!mGpsWeakDialog.isShowing()) { - mGpsWeakDialog.show(); - } - } else { - if (bdLocation.getRadius() <= mPrecision) { - mPrecision = mPrecisionDefault; - if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { - mCurrentLocation = bdLocation; - if (mGpsDis != null && !mGpsDis.isDisposed()) { - mGpsDis.dispose(); - } - if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { - mTvCurrentTime.setText("当前地址:未知"); - } else { - mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); - } - } - } else { - mPrecision += 10; - } - } - } - } +// LogUtils.e("城市码==" + bdLocation.getCityCode() + "===" + bdLocation.getLatitude() + "===" + bdLocation.getLongitude()); +// if (PathConfig.IS_LIMIT) { +// if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) { +// if (bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { +// if (mPrecision >= mPrecMax) { +// mPrecision = mPrecisionDefault; +// if (mGpsWeakDialog == null) { +// AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); +// builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") +// .setTitle("提示") +// .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); +// mGpsWeakDialog = builder.create(); +// } +// if (!mGpsWeakDialog.isShowing()) { +// mGpsWeakDialog.show(); +// } +// } else { +// if (bdLocation.getRadius() <= mPrecision) { +// mPrecision = mPrecisionDefault; +// if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { +// mCurrentLocation = bdLocation; +// if (mGpsDis != null && !mGpsDis.isDisposed()) { +// mGpsDis.dispose(); +// } +// if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { +// mTvCurrentTime.setText("当前地址:未知"); +// } else { +// mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); +// } +// } +// } else { +// mPrecision += 10; +// } +// } +// } +// } +// } else { +// if (bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { +// if (mPrecision >= mPrecMax) { +// mPrecision = mPrecisionDefault; +// if (mGpsWeakDialog == null) { +// AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); +// builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") +// .setTitle("提示") +// .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); +// mGpsWeakDialog = builder.create(); +// } +// if (!mGpsWeakDialog.isShowing()) { +// mGpsWeakDialog.show(); +// } +// } else { +// if (bdLocation.getRadius() <= mPrecision) { +// mPrecision = mPrecisionDefault; +// if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { +// mCurrentLocation = bdLocation; +// if (mGpsDis != null && !mGpsDis.isDisposed()) { +// mGpsDis.dispose(); +// } +// if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { +// mTvCurrentTime.setText("当前地址:未知"); +// } else { +// mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); +// } +// } +// } else { +// mPrecision += 10; +// } +// } +// } +// } } @Override diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java index aae99c7..059a33e 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java @@ -875,7 +875,7 @@ public class CensusEnterActivity extends BaseActivity { } mReligionPicker.show(); } else { - getDicListByType(PathConfig.DIC_FAITH, 6); + getDicListByType(PathConfig.DIC_RELIGION, 6); } } diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java index 6b0f67b..1cb597a 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java @@ -2,41 +2,39 @@ package com.sucstepsoft.realtimelocation.activitys.census.normal; import android.app.ProgressDialog; import android.graphics.Color; -import android.support.v7.widget.CardView; import android.text.TextUtils; -import android.view.View; import android.widget.Button; import android.widget.EditText; -import android.widget.ImageView; -import android.widget.LinearLayout; +import android.widget.RadioButton; +import android.widget.RadioGroup; import android.widget.Switch; import android.widget.TextView; import com.bigkoo.pickerview.builder.OptionsPickerBuilder; +import com.bigkoo.pickerview.builder.TimePickerBuilder; import com.bigkoo.pickerview.view.OptionsPickerView; +import com.bigkoo.pickerview.view.TimePickerView; import com.google.gson.Gson; import com.sucstepsoft.cm_utils.constant.PathConfig; import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; -import com.sucstepsoft.cm_utils.utils.RegexUtils; import com.sucstepsoft.cm_utils.utils.ToastUtils; import com.sucstepsoft.cm_utils.utils.UIUtil; import com.sucstepsoft.cm_utils.utils.UserLgUtils; import com.sucstepsoft.realtimelocation.R; import com.sucstepsoft.realtimelocation.beans.DicBean; -import com.sucstepsoft.realtimelocation.beans.SearchBaseInfoBean; import com.sucstepsoft.realtimelocation.beans.SuccessBean; import com.sucstepsoft.realtimelocation.beans.person.CensusRegisterDetailBean; import com.sucstepsoft.realtimelocation.beans.person.CensusmsgBean; import com.sucstepsoft.realtimelocation.net.LocationApiService; import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; +import java.text.SimpleDateFormat; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; -import io.reactivex.Observable; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.annotations.NonNull; @@ -49,50 +47,285 @@ import okhttp3.RequestBody; * 正常人群-户籍信息录入 */ public class CensusRegisterAddActivity extends BaseActivity { - @BindView(R.id.ll_into_content) - LinearLayout mLlContent; - @BindView(R.id.sw_accord) - Switch mSwAccord;//人户一致 * 01 一致 02 不一致 - @BindView(R.id.et_house_number) - EditText mEtHouseNumber;//户号 * - @BindView(R.id.et_id_card) - EditText mEtIdCard;//户主身份证号 - @BindView(R.id.et_house_name) - EditText mEtHouseName;//户主姓名 + @BindView(R.id.tv_issue_base_info) + TextView mTvIssueBaseInfo; + @BindView(R.id.et_name) + EditText mEtName; + @BindView(R.id.tv_card_type) + TextView mTvCardType; + @BindView(R.id.et_card_number) + EditText mEtCardNumber; + @BindView(R.id.tv_birth) + TextView mTvBirth; + @BindView(R.id.tv_gender) + TextView mTvGender; + @BindView(R.id.tv_nation) + TextView mTvNation; + @BindView(R.id.tv_degree) + TextView mTvDegree; @BindView(R.id.tv_relation) - TextView mTvRelation;//与户主关系 * + TextView mTvRelation; @BindView(R.id.et_phone) - EditText mEtPhone;//户主联系方式 + EditText mEtPhone; + @BindView(R.id.et_academy) + EditText mEtAcademy; + @BindView(R.id.tv_political) + TextView mTvPolitical; + @BindView(R.id.tv_religion) + TextView mTvReligion; + @BindView(R.id.tv_marriage) + TextView mTvMarriage; + @BindView(R.id.tv_marriage_change_date) + TextView mTvMarriageChangeDate; + @BindView(R.id.tv_marriage_date) + TextView mTvMarriageDate; + @BindView(R.id.tv_insure) + TextView mTvInsure; + @BindView(R.id.tv_health) + TextView mTvHealth; + @BindView(R.id.rb_diss_1) + RadioButton mRbDiss1; + @BindView(R.id.rb_diss_2) + RadioButton mRbDiss2; + @BindView(R.id.rb_so) + RadioButton mRbSo; + @BindView(R.id.rg_get_job) + RadioGroup mRgGetJob; + @BindView(R.id.et_workplace) + EditText mEtWorkplace; + @BindView(R.id.et_job_title) + EditText mEtJobTitle; + @BindView(R.id.et_work_post) + EditText mEtWorkPost; + @BindView(R.id.et_work_good) + EditText mEtWorkGood; + @BindView(R.id.et_father) + EditText mEtFather; + @BindView(R.id.et_father_card_number) + EditText mEtFatherCardNumber; + @BindView(R.id.et_father_phone) + EditText mEtFatherPhone; + @BindView(R.id.et_mather) + EditText mEtMather; + @BindView(R.id.et_mather_card_number) + EditText mEtMatherCardNumber; + @BindView(R.id.et_mather_phone) + EditText mEtMatherPhone; + @BindView(R.id.tv_register_address) + TextView mTvRegisterAddress; + @BindView(R.id.et_register_address_detail) + EditText mEtRegisterAddressDetail; + @BindView(R.id.et_native_place) + EditText mEtNativePlace; + @BindView(R.id.tv_flow_date) + TextView mTvFlowDate; + @BindView(R.id.tv_flow_cause) + TextView mTvFlowCause; + @BindView(R.id.et_flow_other_cause) + EditText mEtFlowOtherCause; + @BindView(R.id.sw_is_old) + Switch mSwIsOld; + @BindView(R.id.tv_old_type) + TextView mTvOldType; + @BindView(R.id.et_old_work) + EditText mEtOldWork; + @BindView(R.id.tv_live_care) + TextView mTvOldLiveCare; + @BindView(R.id.tv_old_health) + TextView mTvOldHealth; + @BindView(R.id.tv_old_live_ability) + TextView mTvOldLiveAbility; + @BindView(R.id.tv_old_live_house) + TextView mTvOldLiveHouse; + @BindView(R.id.sw_is_deformity) + Switch mSwIsDeformity; + @BindView(R.id.tv_deformity_type) + TextView mTvDeformityType; + @BindView(R.id.tv_deformity_level) + TextView mTvDeformityLevel; + @BindView(R.id.et_deformity_card_number) + EditText mEtDeformityCardNumber; + @BindView(R.id.et_deformity_car_number) + EditText mEtDeformityCarNumber; + @BindView(R.id.et_deformity_address) + EditText mEtDeformityAddress; + @BindView(R.id.tv_deformity_earing) + TextView mTvDeformityEaring; + @BindView(R.id.tv_deformity_house_source) + TextView mTvDeformityHouseSource; + @BindView(R.id.tv_deformity_card_date) + TextView mTvDeformityCardDate; + @BindView(R.id.et_deformity_spouse) + EditText mEtDeformitySpouse; + @BindView(R.id.et_deformity_phone) + EditText mEtDeformityPhone; + @BindView(R.id.tv_deformity_guarder_relation) + TextView mTvDeformityGuarderRelation; + @BindView(R.id.sw_is_soldier) + Switch mSwIsSoldier; + @BindView(R.id.tv_soldier_out_date) + TextView mTvSoldierOutDate; + @BindView(R.id.tv_soldier_level) + TextView mTvSoldierLevel; + @BindView(R.id.sw_is_salvation) + Switch mSwIsSalvation; + @BindView(R.id.sw_is_low) + Switch mSwIsLow; + @BindView(R.id.sw_is_yiliao) + Switch mSwIsYiliao; + @BindView(R.id.sw_is_kongnan) + Switch mSwIsKongnan; + @BindView(R.id.sw_is_laoling) + Switch mSwIsLaoling; + @BindView(R.id.sw_is_dangyuan) + Switch mSwIsDangyuan; + @BindView(R.id.et_dangzhuzhi) + EditText mEtDangzhuzhi; + @BindView(R.id.tv_rudangshijian) + TextView mTvRudangshijian; + @BindView(R.id.et_dangqitashuoming) + EditText mEtDangqitashuoming; @BindView(R.id.btn_confirm) Button mBtnConfirm; - //搜索布局 - @BindView(R.id.ll_search_content) - LinearLayout mLlSearchContent; - @BindView(R.id.et_search_id_card) - EditText mEtSearchIdCard;//搜索框 - @BindView(R.id.btn_search) - Button mBtnSearch;//收搜按钮 - @BindView(R.id.iv_clear) - ImageView mIvClear; - //基础信息 - @BindView(R.id.cv_base_info) - CardView mCvBaseInfo;//基础信息 - @BindView(R.id.tv_base_name) - TextView mTvBaseName; - @BindView(R.id.tv_base_gender) - TextView mTvBaseGender; - @BindView(R.id.tv_base_native) - TextView mTvBaseNative; - @BindView(R.id.tv_base_phone) - TextView mTvBasePhone; - @BindView(R.id.tv_base_cur_loc) - TextView mTvBaseCurLoc; private Unbinder mBind; - private boolean isAccord = false;//人户一致标识 - private OptionsPickerView mRelationPicker; - private List mRelationList; - private String mSelRelation; - private SearchBaseInfoBean mBaseInfoBean; + private SimpleDateFormat mDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + private int mCurrentHealthType = -1;//当前选择的那个健康状况 + /** + * 证件类型 + */ + private OptionsPickerView mCardTypePicker; + private List mCardTypeList; + private DicBean mSelCardType; + /** + * 性别 + */ + private OptionsPickerView mGenderPicker; + private List mGenderList; + private DicBean mSelGender; + /** + * 民族 + */ + private OptionsPickerView mNationPicker; + private List mNationList; + private DicBean mSelNation; + /** + * 文化程度 + */ + private OptionsPickerView mDegreePicker; + private List mDegreeList; + private DicBean mSelDegree; + /** + * 与户主关系 + */ + private OptionsPickerView mHeadRelationPicker; + private List mHeadRelationList; + private DicBean mSelHeadRelation; + /** + * 所属党派 + */ + private OptionsPickerView mPoliticalPicker; + private List mPoliticalList; + private DicBean mSelPolitical; + /** + * 宗教信仰 + */ + private OptionsPickerView mReligionPicker; + private List mReligionList; + private DicBean mSelReligion; + /** + * 婚姻状况 + */ + private OptionsPickerView mMarriagePicker; + private List mMarriageList; + private DicBean mSelMarriage; + /** + * 社会保险情况 + */ + private OptionsPickerView mInsurePicker; + private List mInsureList; + private DicBean mSelInsure; + /** + * 健康状况 + */ + private OptionsPickerView mHealthPicker; + private List mHealthList; + private DicBean mSelHealth; + private DicBean mSelOldHealth; + /** + * 流动原因 + */ + private OptionsPickerView mFlowPicker; + private List mFlowList; + private DicBean mSelFlow; + + /** + * 老人类别 + */ + private OptionsPickerView mOldTypePicker; + private List mOldTypeList; + private DicBean mSelOldType; + /** + * 生活照料情况 + */ + private OptionsPickerView mOldLiveCarePicker; + private List mOldLiveCareList; + private DicBean mSelOldLiveCare; + /** + * 生活自理能力 + */ + private OptionsPickerView mOldLiveAbilityPicker; + private List mOldLiveAbilityList; + private DicBean mSelOldLiveAbility; + /** + * 居住状况 + */ + private OptionsPickerView mLiveStatePicker; + private List mLiveStateList; + private DicBean mSelLiveState; + + /** + * 残疾类别 + */ + private OptionsPickerView mDeformityTypePicker; + private List mDeformityTypeList; + private DicBean mSelDeformityType; + /** + * 残疾等级 + */ + private OptionsPickerView mDeformityLevelPicker; + private List mDeformityLevelList; + private DicBean mSelDeformityLevel; + /** + * 收入情况 + */ + private OptionsPickerView mEarningPicker; + private List mEarningList; + private DicBean mSelEarning; + /** + * 住房来源 + */ + private OptionsPickerView mHouseSourcePicker; + private List mHouseSourceList; + private DicBean mSelHouseSource; + /** + * 与监护人关系 + */ + private OptionsPickerView mGuarderRelationPicker; + private List mGuarderRelationList; + private DicBean mSelGuarderRelation; + /** + * 退出现役职级 + */ + private OptionsPickerView mSoldierLevelPicker; + private List mSoldierLevelList; + private DicBean mSelSoldierLevel; + /** + * 公共 + */ + private OptionsPickerView mDicPicker; + private List mDicBeanList; + + private String mId; @Override @@ -103,30 +336,519 @@ public class CensusRegisterAddActivity extends BaseActivity { @Override public void initData() { mBind = ButterKnife.bind(this); - - - mLlContent.setVisibility(View.INVISIBLE); - //主键 mId = getIntent().getStringExtra("id"); String title = getIntent().getStringExtra("title"); if (!TextUtils.isEmpty(mId)) { //编辑 - mLlSearchContent.setVisibility(View.GONE); refreshView(STATE_LOAD_LOADING); getDetialById(mId); } else { //新增 - mLlSearchContent.setVisibility(View.VISIBLE); refreshView(STATE_LOAD_SUCCESS); } mTvBaseTitle.setText(title); - mBtnSearch.setOnClickListener(v -> doSearchPerson()); - mIvClear.setOnClickListener(v -> mEtSearchIdCard.setText("")); - mSwAccord.setOnCheckedChangeListener((buttonView, isChecked) -> isAccord = isChecked); - mTvRelation.setOnClickListener(v -> onShowRelation()); + initContentView(); + } + + /** + * 初始化控件 + */ + private void initContentView() { + mTvCardType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_CARD_TYPE, 2, 1));//证件类别 + mTvBirth.setOnClickListener(v -> onShowDate(mTvBirth));//出生日期 + mTvGender.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_GENDER, 2, 2));//性别 + mTvNation.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_NATION, 2, 3));//民族 + mTvDegree.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_EDU, 2, 4));//文化程度 + mTvRelation.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_RELATION, 2, 5));//户主关系 + mTvPolitical.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_POLITICS, 2, 6));//所属党派 + mTvReligion.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_RELIGION, 2, 7));//宗教信仰 + mTvMarriage.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_MARRIAGE, 2, 8));//婚姻状况 + mTvMarriageChangeDate.setOnClickListener(v -> onShowDate(mTvMarriageChangeDate));//婚变日期 + mTvMarriageDate.setOnClickListener(v -> onShowDate(mTvMarriageDate));//初婚日期 + mTvInsure.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_INSURE, 2, 9));//社会保险情况 + mTvHealth.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_HEALTH, 2, 10));//健康状况 + mTvRegisterAddress.setOnClickListener(v -> onShowAllArea());//户籍地址 + mTvFlowDate.setOnClickListener(v -> onShowDate(mTvFlowDate));//流动日期 + mTvFlowCause.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_FLOW_CAUSE, 2, 11));//流动原因 + mTvOldType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_OLD_TYPE, 2, 12));//老人类别 + mTvOldLiveCare.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_OLD_LIVE_CARE, 2, 13));//生活照料情况 + mTvOldHealth.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_HEALTH, 2, 14));//老人健康状况 + mTvOldLiveAbility.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_OLD_LIVE_ABILITY, 2, 15));//生活自理能力 mBtnConfirm.setOnClickListener(v -> doSubmit()); } + /** + * 显示字典选项 + */ + private void onShowDicPicker(String id, int type, int source) { + hideSoftKeyboard(); + if (type == 1) { + mDicPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { + DicBean dicBean = mDicBeanList.get(o1); + chooseDicBean(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); + } + } + + private void chooseDicBean(DicBean dicBean, int source) { + switch (source) { + case 1: + //证件类型 + mSelCardType = dicBean; + mTvCardType.setText(mSelCardType.getDictionaryName()); + break; + case 2: + //性别 + mSelGender = dicBean; + mTvGender.setText(mSelGender.getDictionaryName()); + break; + case 3: + //民族 + mSelNation = dicBean; + mTvNation.setText(mSelNation.getDictionaryName()); + case 4: + //文化程度 + mSelDegree = dicBean; + mTvDegree.setText(mSelDegree.getDictionaryName()); + break; + case 5: + //户主关系 + mSelHeadRelation = dicBean; + mTvRelation.setText(mSelHeadRelation.getDictionaryName()); + break; + case 6: + //所属党派 + mSelPolitical = dicBean; + mTvPolitical.setText(mSelPolitical.getDictionaryName()); + break; + case 7: + //宗教信仰 + mSelReligion = dicBean; + mTvReligion.setText(mSelReligion.getDictionaryName()); + break; + case 8: + //婚姻状况 + mSelMarriage = dicBean; + mTvMarriage.setText(mSelMarriage.getDictionaryName()); + break; + case 9: + //社会保险情况 + mSelInsure = dicBean; + mTvInsure.setText(mSelInsure.getDictionaryName()); + break; + case 10: + //健康状况 + mSelHealth = dicBean; + mTvHealth.setText(mSelHealth.getDictionaryName()); + break; + case 11: + //流动原因 + mSelFlow = dicBean; + mTvFlowCause.setText(mSelFlow.getDictionaryName()); + break; + case 12: + //老年类别 + mSelOldType = dicBean; + mTvOldType.setText(mSelOldType.getDictionaryName()); + break; + case 13: + //生活照料情况 + mSelOldLiveCare = dicBean; + mTvOldLiveCare.setText(mSelOldLiveCare.getDictionaryName()); + break; + case 14: + //老年健康状况 + mSelOldHealth = dicBean; + mTvOldHealth.setText(mSelOldHealth.getDictionaryName()); + break; + case 15: + //生活自理能力 + mSelOldLiveAbility = dicBean; + mTvOldLiveAbility.setText(mSelOldLiveAbility.getDictionaryName()); + break; + } + } + + /** + * TODO 户籍地址 + */ + private void onShowAllArea() { + + } + + /** + * 显示日期选择 + * + * @param tv + */ + private void onShowDate(TextView tv) { + hideSoftKeyboard(); + TimePickerView mTimePickerView = new TimePickerBuilder(mActivity, (date, v) -> tv.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 onShowOldLiveAbility() { +// hideSoftKeyboard(); +// if (mOldLiveAbilityList != null && mOldLiveAbilityList.size() > 0) { +// if (mOldLiveAbilityPicker == null) { +// mOldLiveAbilityPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelOldLiveAbility = mOldLiveAbilityList.get(o1); +// mTvOldLiveAbility.setText(mSelOldLiveAbility.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mOldLiveAbilityPicker.setPicker(mOldLiveAbilityList); +// } +// mOldLiveAbilityPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_OLD_LIVE_ABILITY, 14); +// } +// } +// +// /** +// * 生活照料情况 +// */ +// private void onShowOldLiveCare() { +// hideSoftKeyboard(); +// if (mOldLiveCareList != null && mOldLiveCareList.size() > 0) { +// if (mOldLiveCarePicker == null) { +// mOldLiveCarePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelOldLiveCare = mOldLiveCareList.get(o1); +// mTvOldLiveCare.setText(mSelOldLiveCare.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mOldLiveCarePicker.setPicker(mOldLiveCareList); +// } +// mOldLiveCarePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_OLD_LIVE_CARE, 13); +// } +// } +// +// /** +// * 老人类别 +// */ +// private void onShowOldType() { +// hideSoftKeyboard(); +// if (mOldTypeList != null && mOldTypeList.size() > 0) { +// if (mOldTypePicker == null) { +// mOldTypePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelOldType = mOldTypeList.get(o1); +// mTvOldType.setText(mSelOldType.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mOldTypePicker.setPicker(mOldTypeList); +// } +// mOldTypePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_OLD_TYPE, 12); +// } +// } +// +// /** +// * 流动原因 +// */ +// private void onShowFlowCause() { +// hideSoftKeyboard(); +// if (mFlowList != null && mFlowList.size() > 0) { +// if (mFlowPicker == null) { +// mFlowPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelFlow = mFlowList.get(o1); +// mTvFlowCause.setText(mSelFlow.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mFlowPicker.setPicker(mFlowList); +// } +// mFlowPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_FLOW_CAUSE, 11); +// } +// } +// +// +// +// +// /** +// * 健康状况 +// */ +// private void onShowHealth(int i) { +// mCurrentHealthType = i; +// hideSoftKeyboard(); +// if (mHealthList != null && mHealthList.size() > 0) { +// if (mHealthPicker == null) { +// mHealthPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// if (i == 1) { +// mSelHealth = mHealthList.get(o1); +// mTvHealth.setText(mSelHealth.getDictionaryName()); +// } else { +// mSelOldHealth = mHealthList.get(o1); +// mTvOldHealth.setText(mSelOldHealth.getDictionaryName()); +// } +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mHealthPicker.setPicker(mHealthList); +// } +// mHealthPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_HEALTH, 10); +// } +// } +// +// /** +// * 社会保险情况 +// */ +// private void onShowInSure() { +// hideSoftKeyboard(); +// if (mInsureList != null && mInsureList.size() > 0) { +// if (mInsurePicker == null) { +// mInsurePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelInsure = mInsureList.get(o1); +// mTvInsure.setText(mSelInsure.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mInsurePicker.setPicker(mInsureList); +// } +// mInsurePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_INSURE, 9); +// } +// } +// +// /** +// * 婚姻状况 +// */ +// private void onShowMarriage() { +// hideSoftKeyboard(); +// if (mMarriageList != null && mMarriageList.size() > 0) { +// if (mMarriagePicker == null) { +// mMarriagePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelMarriage = mMarriageList.get(o1); +// mTvMarriage.setText(mSelMarriage.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mMarriagePicker.setPicker(mMarriageList); +// } +// mMarriagePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_MARRIAGE, 8); +// } +// } +// +// /** +// * 宗教信仰 +// */ +// private void onShowReligion() { +// hideSoftKeyboard(); +// if (mReligionList != null && mReligionList.size() > 0) { +// if (mReligionPicker == null) { +// mReligionPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelReligion = mReligionList.get(o1); +// mTvReligion.setText(mSelReligion.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mReligionPicker.setPicker(mReligionList); +// } +// mReligionPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_RELIGION, 7); +// } +// } +// +// /** +// * 所属党派 +// */ +// private void onShowPolitical() { +// hideSoftKeyboard(); +// if (mPoliticalList != null && mPoliticalList.size() > 0) { +// if (mPoliticalPicker == null) { +// mPoliticalPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelPolitical = mPoliticalList.get(o1); +// mTvPolitical.setText(mSelPolitical.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mPoliticalPicker.setPicker(mPoliticalList); +// } +// mPoliticalPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_POLITICS, 6); +// } +// } +// +// /** +// * 户主关系 +// */ +// private void onShowRelation() { +// hideSoftKeyboard(); +// if (mHeadRelationList != null && mHeadRelationList.size() > 0) { +// if (mHeadRelationPicker == null) { +// mHeadRelationPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelHeadRelation = mHeadRelationList.get(o1); +// mTvRelation.setText(mSelHeadRelation.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mHeadRelationPicker.setPicker(mHeadRelationList); +// } +// mHeadRelationPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_RELATION, 5); +// } +// } +// +// /** +// * 文化程度 +// */ +// private void onShowDegree() { +// hideSoftKeyboard(); +// if (mDegreeList != null && mDegreeList.size() > 0) { +// if (mDegreePicker == null) { +// mDegreePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelDegree = mDegreeList.get(o1); +// mTvDegree.setText(mSelDegree.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mDegreePicker.setPicker(mDegreeList); +// } +// mDegreePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_EDU, 4); +// } +// } +// +// /** +// * 民族 +// */ +// private void onShowNation() { +// hideSoftKeyboard(); +// if (mNationList != null && mNationList.size() > 0) { +// if (mNationPicker == null) { +// mNationPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelNation = mNationList.get(o1); +// mTvNation.setText(mSelNation.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mNationPicker.setPicker(mNationList); +// } +// mNationPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_NATION, 3); +// } +// } +// +// /** +// * 性别 +// */ +// private void onShowGender() { +// hideSoftKeyboard(); +// if (mGenderList != null && mGenderList.size() > 0) { +// if (mGenderPicker == null) { +// mGenderPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelGender = mGenderList.get(o1); +// mTvGender.setText(mSelGender.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mGenderPicker.setPicker(mGenderList); +// } +// mGenderPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_GENDER, 2); +// } +// } +// + +// +// /** +// * 基础信息-证件类型 +// */ +// private void onShowCardType() { +// hideSoftKeyboard(); +// if (mCardTypeList != null && mCardTypeList.size() > 0) { +// if (mCardTypePicker == null) { +// mCardTypePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelCardType = mCardTypeList.get(o1); +// mTvCardType.setText(mSelCardType.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mCardTypePicker.setPicker(mCardTypeList); +// } +// mCardTypePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_CARD_TYPE, 1); +// } +// } + /** * 获取详情 * @@ -134,31 +856,31 @@ public class CensusRegisterAddActivity extends BaseActivity { */ private void getDetialById(String id) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getCensusRegisterDetail(id, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { + .create(LocationApiService.class) + .getCensusRegisterDetail(id, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { - } + } - @Override - public void onNext(@NonNull CensusRegisterDetailBean censusRegisterDetailBean) { - setDataToView(censusRegisterDetailBean, 0); - } + @Override + public void onNext(@NonNull CensusRegisterDetailBean censusRegisterDetailBean) { + setDataToView(censusRegisterDetailBean, 0); + } - @Override - public void onError(@NonNull Throwable e) { - refreshView(STATE_LOAD_ERROR); - } + @Override + public void onError(@NonNull Throwable e) { + refreshView(STATE_LOAD_ERROR); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } /** @@ -166,45 +888,21 @@ public class CensusRegisterAddActivity extends BaseActivity { */ private void setDataToView(CensusRegisterDetailBean bean, int type) { mId = bean.getCensusMsgId(); - isAccord = bean.getPeopleSameCensus().equals("一致");//人户一致标识 - mSelRelation = bean.getRelationshipWithHouseholder(); - mSwAccord.setChecked(isAccord); - mEtPhone.setText(bean.getContact()); - mEtHouseNumber.setText(bean.getCensusNumber()); - mEtHouseName.setText(bean.getNameOfHouseholder()); - mEtIdCard.setText(bean.getIdCardOfHouseholder()); - mTvRelation.setText(bean.getRelationshipWithHouseholder()); - if (type == 0) { - mEtSearchIdCard.setText(bean.getIdCardNumber()); - doSearchPerson(); - } - refreshView(STATE_LOAD_SUCCESS); +// isAccord = bean.getPeopleSameCensus().equals("一致");//人户一致标识 +// mSelRelation = bean.getRelationshipWithHouseholder(); +// mSwAccord.setChecked(isAccord); +// mEtPhone.setText(bean.getContact()); +// mEtHouseNumber.setText(bean.getCensusNumber()); +// mEtHouseName.setText(bean.getNameOfHouseholder()); +// mEtIdCard.setText(bean.getIdCardOfHouseholder()); +// mTvRelation.setText(bean.getRelationshipWithHouseholder()); +// if (type == 0) { +// mEtSearchIdCard.setText(bean.getIdCardNumber()); +// doSearchPerson(); +// } +// refreshView(STATE_LOAD_SUCCESS); } - /** - * 户主关系 - */ - private void onShowRelation() { - hideSoftKeyboard(); - if (mRelationList != null && mRelationList.size() > 0) { - if (mRelationPicker == null) { - mRelationPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { - DicBean bean = mRelationList.get(o1); - mTvRelation.setText(bean.getDictionaryName()); - mSelRelation = bean.getDictionaryName(); - }) - .setTitleText("请选择") - .setCancelColor(Color.parseColor("#1189FF")) - .setSubmitColor(Color.parseColor("#1189FF")) - .setTitleColor(Color.parseColor("#1189FF")) - .build(); - mRelationPicker.setPicker(mRelationList); - } - mRelationPicker.show(); - } else { - getDicListByType(PathConfig.DIC_RELATION, 3); - } - } /** * 提交 @@ -224,227 +922,21 @@ public class CensusRegisterAddActivity extends BaseActivity { dialog.show(); RequestBody body = buildParams(); RetrofitManager.getInstance() - .create(LocationApiService.class) - .doSaveCensusRegister(body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - - } - - @Override - public void onNext(@NonNull SuccessBean successBean) { - dialog.dismiss(); - ToastUtils.showShort("录入成功"); - finish(); - } - - @Override - public void onError(@NonNull Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } - - @Override - public void onComplete() { - - } - }); - } - - private void doEdit() { - ProgressDialog dialog = UIUtil.initDialog(mActivity, "修改中..."); - dialog.show(); - RequestBody body = buildParams(); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .doEditRegister(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 boolean checkParams() { - String houseNumber = mEtHouseNumber.getText().toString().trim(); - if (TextUtils.isEmpty(houseNumber)) { - ToastUtils.showShort("请输入户号"); - return false; - } - String idCard = mEtIdCard.getText().toString().trim(); - if (!TextUtils.isEmpty(idCard) && !RegexUtils.isIDNumber(idCard)) { - ToastUtils.showShort("请输入合法的户主身份证号码"); - return false; - } - if (TextUtils.isEmpty(mSelRelation)) { - ToastUtils.showShort("请选择与户主关系"); - return false; - } - String phone = mEtPhone.getText().toString().trim(); - if (!TextUtils.isEmpty(phone) && !RegexUtils.isPhone(phone)) { - ToastUtils.showShort("请输入合法的户主联系方式"); - return false; - } - return true; - } - - private RequestBody buildParams() { - - CensusmsgBean bean = new CensusmsgBean(); - bean.setBaseId(mBaseInfoBean.getBasePopulationInfoId()); - //人户一致 - if (isAccord) { - bean.setPeopleSameCensus("一致"); - } else { - bean.setPeopleSameCensus("不一致"); - } - //户号 - String houseNumber = mEtHouseNumber.getText().toString().trim(); - bean.setCensusNumber(houseNumber); - //户主身份证号码 - String idCard = mEtIdCard.getText().toString().trim(); - if (!TextUtils.isEmpty(idCard)) { - bean.setIdCardOfHouseholder(idCard); - } - //户主姓名 - String name = mEtHouseName.getText().toString().trim(); - if (!TextUtils.isEmpty(name)) { - bean.setNameOfHouseholder(name); - } - //与户主关系 - bean.setRelationshipWithHouseholder(mSelRelation); - //户主联系方式 - String phone = mEtPhone.getText().toString().trim(); - bean.setContact(phone); - Gson gson = new Gson(); - String obj = gson.toJson(bean); - RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); - return requestBody; - } - - /** - * 获取字典 - * - * @param i - */ - private void getDicListByType(String pId, int i) { - ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中..."); - dialog.show(); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .getDictListAllByPid(pId, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - - } - - @Override - public void onNext(@NonNull List typeListBeans) { - dialog.dismiss(); - if (typeListBeans != null && typeListBeans.size() > 0) { - switch (i) { - case 3: - mRelationList = typeListBeans; - onShowRelation(); - break; - } - } else { - ToastUtils.showShort("暂无数据"); - } - } - - @Override - public void onError(@NonNull Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } - - @Override - public void onComplete() { - - } - }); - - } - - private void doSearchPerson() { - String searchIdCard = mEtSearchIdCard.getText().toString().trim(); - if (TextUtils.isEmpty(searchIdCard) || !RegexUtils.isIDNumber(searchIdCard)) { - ToastUtils.showShort("请输入合法的身份证号码"); - return; - } else { - hideSoftKeyboard(); - ProgressDialog dialog = UIUtil.initDialog(mActivity, "查询中..."); - dialog.show(); - Observable detailBeanObservable = RetrofitManager.getInstance().create(LocationApiService.class).getCensusRegisterDetailByIdCard(searchIdCard, UserLgUtils.getToken()); - Observable infoBean = RetrofitManager.getInstance() .create(LocationApiService.class) - .doSearchBaseInfoByIdCard(searchIdCard, UserLgUtils.getToken()); - Observable.merge(detailBeanObservable, infoBean) + .doSaveCensusRegister(body, UserLgUtils.getToken()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { + .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { } @Override - public void onNext(@NonNull Object o) { - if (o instanceof SearchBaseInfoBean) { - SearchBaseInfoBean infoBean1 = (SearchBaseInfoBean) o; - if (!TextUtils.isEmpty(infoBean1.getIdCardNumber())) { - //设置基础信息 - setBaseInfo(infoBean1); - } else { - ToastUtils.showLong("未查询到改人员的基础信息,请完善基础信息"); - mTvBaseName.setText(""); - mTvBaseGender.setText(""); - mTvBasePhone.setText(""); - mTvBaseNative.setText(""); - mTvBaseCurLoc.setText(""); - mLlContent.setVisibility(View.GONE); - } - } else if (o instanceof CensusRegisterDetailBean) { - CensusRegisterDetailBean bean = (CensusRegisterDetailBean) o; - if (!TextUtils.isEmpty(bean.getCensusMsgId())) { - mTvBaseTitle.setText("户籍信息编辑"); - } else { - mTvBaseTitle.setText("户籍信息录入"); - } - setDataToView(bean, 1); - } + public void onNext(@NonNull SuccessBean successBean) { dialog.dismiss(); + ToastUtils.showShort("录入成功"); + finish(); } @Override @@ -458,40 +950,234 @@ public class CensusRegisterAddActivity extends BaseActivity { } }); - } } + private void doEdit() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "修改中..."); + dialog.show(); + RequestBody body = buildParams(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .doEditRegister(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 boolean checkParams() { + String name = mEtName.getText().toString().trim(); + if (TextUtils.isEmpty(name)) { + ToastUtils.showShort("请输入姓名"); + return false; + } + +// String houseNumber = mEtHouseNumber.getText().toString().trim(); +// if (TextUtils.isEmpty(houseNumber)) { +// ToastUtils.showShort("请输入户号"); +// return false; +// } +// String idCard = mEtIdCard.getText().toString().trim(); +// if (!TextUtils.isEmpty(idCard) && !RegexUtils.isIDNumber(idCard)) { +// ToastUtils.showShort("请输入合法的户主身份证号码"); +// return false; +// } +// if (TextUtils.isEmpty(mSelRelation)) { +// ToastUtils.showShort("请选择与户主关系"); +// return false; +// } +// String phone = mEtPhone.getText().toString().trim(); +// if (!TextUtils.isEmpty(phone) && !RegexUtils.isPhone(phone)) { +// ToastUtils.showShort("请输入合法的户主联系方式"); +// return false; +// } + return true; + } + + private RequestBody buildParams() { + + CensusmsgBean bean = new CensusmsgBean(); + + Gson gson = new Gson(); + String obj = gson.toJson(bean); + RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); + return requestBody; + } + + /** + * 获取字典 + * + * @param i + */ + private void getDicListByType(String pId, int i) { +// ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中..."); +// dialog.show(); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .getDictListAllByPid(pId, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(@NonNull Disposable d) { +// +// } +// +// @Override +// public void onNext(@NonNull List l) { +// dialog.dismiss(); +// if (l != null && l.size() > 0) { +// switch (i) { +// case 1://证件类型 +// mCardTypeList = l; +// onShowCardType(); +// break; +// case 2://性别 +// mGenderList = l; +// onShowGender(); +// break; +// case 3://民族 +// mNationList = l; +// onShowNation(); +// break; +// case 4://学历 +// mDegreeList = l; +// onShowDegree(); +// break; +// case 5://与户主关系 +// mReligionList = l; +// onShowRelation(); +// break; +// case 6://所属党派 +// mPoliticalList = l; +// onShowPolitical(); +// break; +// case 7://宗教信仰 +// mReligionList = l; +// onShowReligion(); +// break; +// case 8://婚姻状况 +// mMarriageList = l; +// onShowMarriage(); +// break; +// case 9://社保情况 +// mInsureList = l; +// onShowInSure(); +// break; +// case 10://健康状况 +// mHealthList = l; +// onShowHealth(mCurrentHealthType); +// break; +// case 11://流动原因 +// mFlowList = l; +// onShowFlowCause(); +// break; +// case 12://老人类别 +// mOldTypeList = l; +// onShowOldType(); +// break; +// case 13://生活照料情况 +// mOldLiveCareList = l; +// onShowOldLiveCare(); +// break; +// case 14://生活自理能力 +// mOldLiveAbilityList = l; +// onShowOldLiveAbility(); +// break; +// +// } +// } else { +// ToastUtils.showShort("暂无数据"); +// } +// } +// +// @Override +// public void onError(@NonNull Throwable e) { +// dialog.dismiss(); +// ExceptionHandler.handleException(e); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); + + } + + 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 setDefault() { - isAccord = false;//人户一致标识 - mRelationList = null; - mSelRelation = ""; - mBaseInfoBean = null; - mSwAccord.setChecked(isAccord); - - mEtPhone.setText(""); - mEtHouseNumber.setText(""); - mEtHouseName.setText(""); - mEtIdCard.setText(""); - mTvRelation.setText(""); - } - - /** - * 设置基础信息 - */ - private void setBaseInfo(SearchBaseInfoBean o) { - mBaseInfoBean = o; - mLlContent.setVisibility(View.VISIBLE); - mTvBaseName.setText(o.getFullName()); - mTvBaseGender.setText(o.getGenderDictionaryName()); - mTvBasePhone.setText(o.getTelephone()); - mTvBaseNative.setText(o.getNativePlaceAddr()); - mTvBaseCurLoc.setText(o.getAreaNames() + "/" + o.getCurrentResidenceAddr()); } + @Override protected void onDestroy() { super.onDestroy(); diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/outbound/CensusOutBoundAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/outbound/CensusOutBoundAddActivity.java index 8a4f69c..b54a1d0 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/outbound/CensusOutBoundAddActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/outbound/CensusOutBoundAddActivity.java @@ -19,7 +19,6 @@ import com.sucstepsoft.cm_utils.constant.PathConfig; import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; import com.sucstepsoft.cm_utils.core.widget.views.CenterChooseAreaDialogView; -import com.sucstepsoft.cm_utils.utils.IDCard; import com.sucstepsoft.cm_utils.utils.ToastUtils; import com.sucstepsoft.cm_utils.utils.UIUtil; import com.sucstepsoft.cm_utils.utils.UserLgUtils; @@ -242,7 +241,7 @@ public class CensusOutBoundAddActivity extends BaseActivity { } mFaithPicker.show(); } else { - getDicListByType(PathConfig.DIC_FAITH, 4); + getDicListByType(PathConfig.DIC_RELIGION, 4); } } 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 4ed79a4..c7a1ba5 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 @@ -1,15 +1,119 @@ package com.sucstepsoft.realtimelocation.activitys.common; -import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; -import com.sucstepsoft.realtimelocation.R; +import android.app.ProgressDialog; +import android.content.Intent; +import android.graphics.Color; +import android.support.v7.app.AlertDialog; +import android.text.TextUtils; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.ZoomControls; +import com.baidu.location.BDAbstractLocationListener; +import com.baidu.location.BDLocation; +import com.baidu.location.LocationClient; +import com.baidu.location.LocationClientOption; +import com.baidu.mapapi.map.BaiduMap; +import com.baidu.mapapi.map.MapStatus; +import com.baidu.mapapi.map.MapStatusUpdate; +import com.baidu.mapapi.map.MapStatusUpdateFactory; +import com.baidu.mapapi.map.MyLocationData; +import com.baidu.mapapi.map.OverlayOptions; +import com.baidu.mapapi.map.PolygonOptions; +import com.baidu.mapapi.map.Stroke; +import com.baidu.mapapi.map.TextureMapView; +import com.baidu.mapapi.model.LatLng; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.CircleCrop; +import com.bumptech.glide.request.RequestOptions; +import com.google.gson.Gson; +import com.sucstepsoft.cm_utils.constant.PathConfig; +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.TimeUtils; +import com.sucstepsoft.cm_utils.utils.ToastUtils; +import com.sucstepsoft.cm_utils.utils.UIUtil; +import com.sucstepsoft.cm_utils.utils.UserLgUtils; +import com.sucstepsoft.realtimelocation.R; +import com.sucstepsoft.realtimelocation.beans.AppTokenUser; +import com.sucstepsoft.realtimelocation.beans.CheckSignBean; +import com.sucstepsoft.realtimelocation.beans.CheckSignOffBean; +import com.sucstepsoft.realtimelocation.beans.PenNewLineBean; +import com.sucstepsoft.realtimelocation.beans.SignBean; +import com.sucstepsoft.realtimelocation.beans.SignDataBean; +import com.sucstepsoft.realtimelocation.beans.SignOffBean; +import com.sucstepsoft.realtimelocation.beans.SignTimeBean; +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 java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import butterknife.BindView; import butterknife.ButterKnife; +import io.reactivex.Observable; +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; +import okhttp3.RequestBody; /** * 签到 */ public class WorkSignActivity extends BaseActivity { + @BindView(R.id.iv_user_icon) + ImageView mIvUserIcon; + @BindView(R.id.tv_user_name) + TextView mTvUserName; + @BindView(R.id.tv_user_department) + TextView mTvUserDepartment; + @BindView(R.id.tv_cur_location) + TextView mTvCurLocation; + @BindView(R.id.tmv_map) + TextureMapView mTmvMap; + @BindView(R.id.btn_reset_loc) + Button mBtnResetLoc; + @BindView(R.id.tv_state) + TextView mTvState; + @BindView(R.id.ll_sign) + LinearLayout mLlSign; + @BindView(R.id.tv_in_time) + TextView mTvInTime; + @BindView(R.id.tv_cur_time) + 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) + ImageView mIvSignOutState; + private List> mPenLineList; + private BaiduMap mBaiduMap; + private BDLocation mCurrent; + private LatLng mDefaultLocation = new LatLng(PathConfig.LA, PathConfig.LO); + private LocationClient mLocationClient; + private ProgressDialog mProgressDialog; + private SignTimeBean mSignTimeBean; + private Gson mGson; + private int userType = 2;//1专管员 2是网格员 + private Disposable mTimeDisposable; + private ProgressDialog mCheckSignDialog; + private boolean isSign = false;//是否签到 + private boolean isSignOff = false;//是否签退 + private boolean mCanSign = false;//能否签到、签退 + @Override protected int setLayoutId() { return R.layout.activity_work_sign; @@ -19,5 +123,702 @@ public class WorkSignActivity extends BaseActivity { public void initData() { super.initData(); ButterKnife.bind(this); + refreshView(STATE_LOAD_LOADING); + initMap(); + getSignRule(123); + } + + private void initMap() { + mBaiduMap = mTmvMap.getMap(); + MapStatus ms = new MapStatus.Builder().zoom(16).target(mDefaultLocation).build(); + MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); + mBaiduMap.animateMapStatus(u); + mTvUserName.setText(UserLgUtils.getName()); + Glide.with(mActivity) + .load(BaseUrlApi.BASE_IMG_URL + UserLgUtils.getAvatar()) + .apply(RequestOptions.bitmapTransform(new CircleCrop()) + .error(R.drawable.ic_user_default) + .placeholder(R.drawable.ic_user_default)) + .into(mIvUserIcon); + + 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(); + MapStatusUpdate curUpdate = MapStatusUpdateFactory.newMapStatus(cur); + mBaiduMap.animateMapStatus(curUpdate); + } + }); + View child = mTmvMap.getChildAt(1); + if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { + child.setVisibility(View.GONE); + } + mTmvMap.showZoomControls(false); + getUserGrid(); + startLocation(); + getCurrentTime(); + checkSign(); + mLlSign.setOnClickListener(v -> doSign()); + refreshView(STATE_LOAD_SUCCESS); + } + + /** + * 签到或签退 + */ + private void doSign() { + if (mCanSign) { + if (isSign) { + //已经签到,显示签退 + if (isSignOff) { + ToastUtils.showShort("今日打卡已完成"); + } else { + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrentPointIsBeyond(mCurrent)) { + showSignOffDialog(); + } else { + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); + } + } else { + getUserGrid(); + } + } + } else { + //未签到 + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrentPointIsBeyond(mCurrent)) { + showSDialog(); + } else { + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); + } + } else { + getUserGrid(); + } + } + } else { + checkSign(); + } + } + + + /** + * 显示签到 + */ + private void showSDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setMessage("确认要签到吗?"); + builder.setTitle("提示") + .setMessage("确认要签到吗?") + .setPositiveButton("确定", (dialog, which) -> { + dialog.dismiss(); + doSignNet(); + }) + .setNegativeButton("取消", (dialog, which) -> dialog.dismiss()); + builder.create().show(); + } + + + /** + * 显示签退 + */ + private void showSignOffDialog() { + if (mSignTimeBean == null) { + getSignRule(2); + } else { + String hintMsg; + boolean legal; + //判断是那个时间 + if (!TextUtils.isEmpty(mSignTimeBean.getCustomSignInStr())) { + legal = TimeUtils.compareToCurrent(mSignTimeBean.getCustomSignOutStr()); + } else { + if (userType == 1) { + //专管员 + legal = TimeUtils.compareToCurrent(mSignTimeBean.getNSignOutStr()); + } else { + //网格员 + legal = TimeUtils.compareToCurrent(mSignTimeBean.getSignOutStr()); + } + } + + if (legal) { + hintMsg = "确定要签退吗?"; + } else { + hintMsg = "未到签退时间,提前签退属早退,您确定要早退吗?"; + } + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("提示") + .setMessage(hintMsg) + .setPositiveButton("确定", (dialog, which) -> { + dialog.dismiss(); + doSignOff(); + }) + .setNegativeButton("取消", (dialog, which) -> dialog.dismiss()); + builder.create().show(); + } + + } + + /** + * 进行签到 + */ + private void doSignNet() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "签到中..."); + dialog.show(); + SignBean bean = new SignBean(); + bean.setSigninLatitude(mCurrent.getLatitude() + ""); + bean.setSigninLongitude(mCurrent.getLongitude() + ""); + Gson gson = new Gson(); + String obj = gson.toJson(bean); + RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .doSign(body, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(SignDataBean successBean) { + if (successBean.isData()) { + 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); + } + + + isSign = true; + isSignOff = false; + dialog.dismiss(); + GlobalProvider.save(mActivity, "isUpload", "13"); + mTvState.setText("签退"); + mTvState.setTextColor(Color.WHITE); + ToastUtils.showLong("签到成功"); + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 签退 + */ + private void doSignOff() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "签退中..."); + dialog.show(); + SignOffBean bean = new SignOffBean(); + bean.setSignoutLatitude(mCurrent.getLatitude() + ""); + bean.setSignoutLongitude(mCurrent.getLongitude() + ""); + Gson gson = new Gson(); + String obj = gson.toJson(bean); + RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .doSignOff(body, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + } + + @Override + public void onNext(SuccessBean successBean) { + dialog.dismiss(); + isSignOff = true; + mTvState.setText("今日完成"); + mIvSignOutState.setBackground(getResources().getDrawable(R.drawable.ic_sign_normal)); + mTvState.setTextColor(Color.WHITE); + ToastUtils.showLong("签退成功"); + GlobalProvider.save(mActivity, "isUpload", "12"); + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 判断是否越界 + * + * @param bdLocation + */ + private boolean checkCurrentPointIsBeyond(BDLocation bdLocation) { +// if (mPenLineList != null && mPenLineList.size() > 0) { +// for (int i = 0; i < mPenLineList.size(); i++) { +// LatLng latLng = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); +// boolean inPolygon = PointUtils.isInPolygon(latLng, mPenLineList.get(i)); +// if (inPolygon) { +// return true; +// } +// } +// return false; +// } else { +// return false; +// } + return true; + } + + private void checkSign() { + mCheckSignDialog = UIUtil.initDialog(mActivity, "获取中..."); + mCheckSignDialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .checkSign(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(CheckSignBean checkSignBean) { + if (checkSignBean != null) { + mTvState.setBackground(null); + if (checkSignBean.getData().isSignIn()) { + if (checkSignBean.getData().isLate()) { + mIvSignInState.setBackground(getResources().getDrawable(R.drawable.ic_sign_late)); + } else { + mIvSignInState.setBackground(getResources().getDrawable(R.drawable.ic_sign_normal)); + } + isSign = true; + mTvState.setTextColor(Color.WHITE); + mTvState.setText("签退"); + checkSignOff(); + GlobalProvider.save(mActivity, "isUpload", "13"); + } else { + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + mIvSignInState.setBackground(null); + mCanSign = true; + isSign = false; + mTvState.setTextColor(Color.WHITE); + mTvState.setText("签到"); + GlobalProvider.save(mActivity, "isUpload", "12"); + } + } else { + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + ToastUtils.showShort("签到状态获取失败,点击重试"); + mTvState.setBackground(getResources().getDrawable(R.drawable.ic_reload_refresh)); + } + } + + @Override + public void onError(Throwable e) { + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + ToastUtils.showShort("签到状态获取失败,点击重试"); + mTvState.setBackground(getResources().getDrawable(R.drawable.ic_reload_refresh)); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 获取是否签退 + */ + private void checkSignOff() { + RetrofitManager.getInstance() + .create(LocationApiService.class) + .checkSignOff(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(CheckSignOffBean checkSignBean) { + if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData())) { + boolean b = Boolean.parseBoolean(checkSignBean.getData()); + mTvState.setBackground(null); + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + if (b) { + //已经签退 + mCanSign = false; + isSignOff = true; + mTvState.setTextColor(Color.WHITE); + mTvState.setText("今日完成"); + mIvSignOutState.setBackground(getResources().getDrawable(R.drawable.ic_sign_normal)); + GlobalProvider.save(mActivity, "isUpload", "12"); + } else { + mCanSign = true; + //没有签退 + isSignOff = false; + mTvState.setTextColor(Color.WHITE); + mTvState.setText("签退"); + mIvSignOutState.setBackground(null); + GlobalProvider.save(mActivity, "isUpload", "13"); + } + } else { + //加载失败了 + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + mCanSign = false; + mIvSignOutState.setBackground(null); + ToastUtils.showShort("签到状态获取失败,点击重试"); + mTvState.setBackground(getResources().getDrawable(R.drawable.ic_reload_refresh)); + + } + } + + @Override + public void onError(Throwable e) { + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + mIvSignOutState.setBackground(null); + mCanSign = false; + ToastUtils.showShort("签到状态获取失败,点击重试"); + mTvState.setBackground(getResources().getDrawable(R.drawable.ic_reload_refresh)); + GlobalProvider.save(mActivity, "isUpload", "13"); + } + + @Override + public void onComplete() { + } + }); + } + + /** + * 显示当前日期和时间 + */ + private void getCurrentTime() { + Observable.interval(1, TimeUnit.SECONDS) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + mTimeDisposable = d; + } + + @Override + public void onNext(Long aLong) { + String curTime = TimeUtils.getCurDate() + "\n" + TimeUtils.getCurTime(); + mTvCurTime.setText(curTime); + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 获取签到规则 + */ + private void getSignRule(int i) { + if (i == 2) { + mProgressDialog = UIUtil.initDialog(WorkSignActivity.this, "获取中..."); + mProgressDialog.show(); + } + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getpunchTime(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(SignTimeBean signTimeBean) { + if (mProgressDialog != null && mProgressDialog.isShowing() && i == 2) { + mProgressDialog.dismiss(); + if (signTimeBean == null) { + ToastUtils.showShort("获取签到规则失败"); + } else { + mSignTimeBean = signTimeBean; + ToastUtils.showShort("获取签到规则成功,请重新签到或签退"); + } + } + if (signTimeBean != null) { + mSignTimeBean = signTimeBean; + //保存签到时间 + mGson = new Gson(); + String loginInfo = UserLgUtils.getLoginInfo(); + if (!TextUtils.isEmpty(loginInfo)) { + AppTokenUser appTokenUser = mGson.fromJson(loginInfo, AppTokenUser.class); + if (appTokenUser.getRoles() != null && appTokenUser.getRoles().size() > 0) { + for (int i = 0; i < appTokenUser.getRoles().size(); i++) { + if (!TextUtils.isEmpty(appTokenUser.getRoles().get(i).getRoleName())) { + mTvUserDepartment.setText(appTokenUser.getRoles().get(i).getRoleName()); + break; + } + } + } + if (appTokenUser.getRoles() != null && appTokenUser.getRoles().size() > 0) { + for (int i = 0; i < appTokenUser.getRoles().size(); i++) { + if (PathConfig.USER_TYPE_N.equals(appTokenUser.getRoles().get(i).getRoleId())) { + GlobalProvider.save(mActivity, "userType", "N"); + mTvUserDepartment.setText(appTokenUser.getRoles().get(i).getRoleName()); + userType = 1; + break; + } + } + } else { + GlobalProvider.save(mActivity, "userType", "P"); + userType = 2; + } + } else { + GlobalProvider.save(mActivity, "userType", "P"); + userType = 2; + } + Intent intent = new Intent(); + intent.setAction(PathConfig.ACTION_PUNCH_TIME_MESSAGE); + intent.putExtra("timeBean", mSignTimeBean); + sendBroadcast(intent); + setSignRuleTimeText(); + } + + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + if (mProgressDialog != null && mProgressDialog.isShowing() && i == 2) { + mProgressDialog.dismiss(); + } + ToastUtils.showShort("获取签到规则失败,请稍后重试"); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 判断显示签到时间 + */ + private void setSignRuleTimeText() { + if (mSignTimeBean == null) return; + if (!TextUtils.isEmpty(mSignTimeBean.getCustomSignInStr())) { + mTvInTime.setText(mSignTimeBean.getCustomSignInStr() + " - " + mSignTimeBean.getCustomSignInEnd()); + mTvOutTime.setText(mSignTimeBean.getCustomSignOutStr() + " - " + mSignTimeBean.getCustomSignOutEnd()); + } else { + if (userType == 1) { + //专管员 + mTvInTime.setText(mSignTimeBean.getNSignInStr() + " - " + mSignTimeBean.getNSignInEnd()); + mTvOutTime.setText(mSignTimeBean.getNSignOutStr() + "-" + mSignTimeBean.getNSignOutEnd()); + } else { + //网格员 + mTvInTime.setText(mSignTimeBean.getSignInStr() + " - " + mSignTimeBean.getSignInEnd()); + mTvOutTime.setText(mSignTimeBean.getSignOutStr() + "-" + mSignTimeBean.getSignOutEnd()); + } + } + } + + /** + * 获取电子网格 + */ + private void getUserGrid() { + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getUserNewPenList(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List penLineBeans) { + if (penLineBeans != null && penLineBeans.size() > 0) { + buildPenList(penLineBeans); + } else { + ToastUtils.showShort("您未画所属网格,请联系管理员"); + } + } + + @Override + public void onError(Throwable e) { + ToastUtils.showShort("获取电子网格识别,请稍后重试"); + } + + @Override + public void onComplete() { + + } + }); + } + + private void buildPenList(List penLineBeans) { + mPenLineList = new ArrayList<>(); + for (int i = 0; i < penLineBeans.size(); i++) { + List areaPoints = penLineBeans.get(i).getPointArray(); + if (areaPoints != null && areaPoints.size() > 0) { + List tempList = new ArrayList<>(); + for (int j = 0; j < areaPoints.size(); j++) { + LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(j).getLat()), Double.parseDouble(areaPoints.get(j).getLng())); + tempList.add(latLng); + } + LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(0).getLat()), Double.parseDouble(areaPoints.get(0).getLng())); + tempList.add(latLng); + mPenLineList.add(tempList); + } + } + //绘制电子网格 + drawPenToMap(penLineBeans); + } + + + /** + * 画电子围栏 + */ + private void drawPenToMap(List penLineBeans) { + mBaiduMap.clear(); + for (int i = 0; i < penLineBeans.size(); i++) { + List areaPoints = penLineBeans.get(i).getPointArray(); + if (areaPoints != null && areaPoints.size() >= 4) { + List pts = new ArrayList<>(); + for (int j = 0; j < areaPoints.size(); j++) { + double la = Double.parseDouble(areaPoints.get(j).getLat()); + double lo = Double.parseDouble(areaPoints.get(j).getLng()); + pts.add(new LatLng(la, lo)); + } + double laend = Double.parseDouble(areaPoints.get(0).getLat()); + double loend = Double.parseDouble(areaPoints.get(0).getLng()); + pts.add(new LatLng(laend, loend)); + PenNewLineBean bean = penLineBeans.get(i); + int borderColor = TextUtils.isEmpty(bean.getFillColor()) ? Color.WHITE : Color.parseColor(bean.getFillColor()); + int colorWithAlpha = ConvertUtils.getColorWithAlpha(0.3f, borderColor); + OverlayOptions polygonOption = new PolygonOptions() + .points(pts) + .stroke(new Stroke(3, colorWithAlpha)) + .fillColor(colorWithAlpha); + mBaiduMap.addOverlay(polygonOption); + moveMapToCenter(pts.get(0)); + } + } + } + + /** + * 移动地图到指定中心点 + * + * @param latLng + */ + private void moveMapToCenter(LatLng latLng) { + MapStatus cur = new MapStatus.Builder().zoom(16).target(latLng).build(); + MapStatusUpdate curUpdate = MapStatusUpdateFactory.newMapStatus(cur); + mBaiduMap.animateMapStatus(curUpdate); + } + + /** + * 开启定位 + */ + private void startLocation() { + stopLocation(); + mLocationClient = new LocationClient(getApplicationContext()); + LocationClientOption locationOption = new LocationClientOption(); + SignLocationListener myLocationListener = new SignLocationListener(); + mLocationClient.registerLocationListener(myLocationListener); + locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); + locationOption.setCoorType("bd09ll"); + locationOption.setScanSpan(30 * 1000); + locationOption.setIsNeedAddress(true); + locationOption.setNeedDeviceDirect(false); + locationOption.setLocationNotify(false); + locationOption.setIgnoreKillProcess(true); + locationOption.setIsNeedLocationDescribe(true); + locationOption.setIsNeedLocationPoiList(true); + locationOption.SetIgnoreCacheException(false); + locationOption.setOpenGps(true); + locationOption.setIsNeedAltitude(false); + mLocationClient.setLocOption(locationOption); + //开始定位 + mLocationClient.start(); + } + + private void stopLocation() { + if (null != mLocationClient) { + mLocationClient.stop(); + } + } + + private class SignLocationListener extends BDAbstractLocationListener { + @Override + public void onReceiveLocation(BDLocation bdLocation) { + if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { + mCurrent = bdLocation; + if (TextUtils.isEmpty(mCurrent.getAddrStr())) { + mTvCurLocation.setText("当前地址:未知"); + } else { + mTvCurLocation.setText("当前地址:" + mCurrent.getAddrStr()); + } + mBaiduMap.setMyLocationEnabled(true); + MyLocationData locData = new MyLocationData.Builder() + .accuracy(bdLocation.getRadius()) + .latitude(bdLocation.getLatitude()) + .longitude(bdLocation.getLongitude()).build(); + mBaiduMap.setMyLocationData(locData); + } + + } + } + + + @Override + protected void onDestroy() { + if (mLocationClient != null) { + stopLocation(); + mLocationClient = null; + } + + if (mTimeDisposable != null) { + mTimeDisposable.dispose(); + } + super.onDestroy(); } } \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/FunctionNumAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/FunctionNumAdapter.java index 24796f5..db325bf 100755 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/FunctionNumAdapter.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/FunctionNumAdapter.java @@ -25,7 +25,7 @@ public class FunctionNumAdapter extends BaseRecyclerAdapter= 25) { checkPoints(); diff --git a/app/src/main/res/drawable-xhdpi/ic_address_list_icon.png b/app/src/main/res/drawable-xhdpi/ic_address_list_icon.png new file mode 100644 index 0000000..48396d5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_address_list_icon.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_case_recod_icon.png b/app/src/main/res/drawable-xhdpi/ic_case_recod_icon.png new file mode 100644 index 0000000..d11e696 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_case_recod_icon.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_hose_person.png b/app/src/main/res/drawable-xhdpi/ic_hose_person.png new file mode 100644 index 0000000..5c9b1be Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_hose_person.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_issue_disp.png b/app/src/main/res/drawable-xhdpi/ic_issue_disp.png new file mode 100644 index 0000000..ecd7fe4 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_issue_disp.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_issue_report.png b/app/src/main/res/drawable-xhdpi/ic_issue_report.png new file mode 100644 index 0000000..e997bb5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_issue_report.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_item_title_icon.png b/app/src/main/res/drawable-xhdpi/ic_item_title_icon.png new file mode 100644 index 0000000..7e6329e Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_item_title_icon.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_item_title_icon_rec.png b/app/src/main/res/drawable-xhdpi/ic_item_title_icon_rec.png new file mode 100644 index 0000000..f330132 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_item_title_icon_rec.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_main_title_bg.png b/app/src/main/res/drawable-xhdpi/ic_main_title_bg.png deleted file mode 100755 index 5a9a614..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_main_title_bg.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_main_title_shadow.png b/app/src/main/res/drawable-xhdpi/ic_main_title_shadow.png new file mode 100644 index 0000000..019421d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_main_title_shadow.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_maint_title_btn_left.png b/app/src/main/res/drawable-xhdpi/ic_maint_title_btn_left.png new file mode 100644 index 0000000..7b9db9d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_maint_title_btn_left.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_maint_title_btn_right.png b/app/src/main/res/drawable-xhdpi/ic_maint_title_btn_right.png new file mode 100644 index 0000000..1783006 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_maint_title_btn_right.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_reload_refresh.png b/app/src/main/res/drawable-xhdpi/ic_reload_refresh.png new file mode 100644 index 0000000..da869ca Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_reload_refresh.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_sign_late.png b/app/src/main/res/drawable-xhdpi/ic_sign_late.png new file mode 100644 index 0000000..7b8eb64 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_sign_late.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_sign_normal.png b/app/src/main/res/drawable-xhdpi/ic_sign_normal.png new file mode 100644 index 0000000..c7b9e59 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_sign_normal.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_start_hint.png b/app/src/main/res/drawable-xhdpi/ic_start_hint.png old mode 100755 new mode 100644 index 43a96e8..0b023e8 Binary files a/app/src/main/res/drawable-xhdpi/ic_start_hint.png and b/app/src/main/res/drawable-xhdpi/ic_start_hint.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_work_log.png b/app/src/main/res/drawable-xhdpi/ic_work_log.png new file mode 100644 index 0000000..7bb7ad1 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_work_log.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_work_path.png b/app/src/main/res/drawable-xhdpi/ic_work_path.png new file mode 100644 index 0000000..9505faf Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_work_path.png differ diff --git a/app/src/main/res/drawable/sel_cir_btn_blue_gray.xml b/app/src/main/res/drawable/sel_cir_btn_blue_gray.xml new file mode 100644 index 0000000..ce58130 --- /dev/null +++ b/app/src/main/res/drawable/sel_cir_btn_blue_gray.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shp_circle_main_theme.xml b/app/src/main/res/drawable/shp_circle_main_theme.xml new file mode 100644 index 0000000..8041890 --- /dev/null +++ b/app/src/main/res/drawable/shp_circle_main_theme.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_census_register_add.xml b/app/src/main/res/layout/activity_census_register_add.xml index 4ec595c..d5ab2bc 100644 --- a/app/src/main/res/layout/activity_census_register_add.xml +++ b/app/src/main/res/layout/activity_census_register_add.xml @@ -1,9 +1,9 @@ - - - - + android:background="@color/white" + android:orientation="vertical" + android:paddingLeft="20dp" + android:paddingRight="20dp"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + style="@style/item_white_bottom_border" + android:gravity="center_vertical"> - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -