obtainPackageWorkListPage(@Header("token") String token,
+ @Query("isShop") String isShop,
+ @Query("limit") int limit,
+ @Query("offset") int offset);
/**
* 三包已办
@@ -558,6 +558,16 @@
@Field("applySource") String applySource);
/**
+ * 二级派遣员待办案卷
+ *
+ * http://111.198.10.15:11409/case/workListPage/?offset=1&limit=15
+ */
+ @GET("/case/workListPage")
+ Observable obtainWorkListPage(@Header("token") String token,
+ @Query("limit") int limit,
+ @Query("offset") int offset);
+
+ /**
* 二级派遣员待处理案卷
*
* http://111.198.10.15:11409/case/toProcessListPage/?offset=1&limit=15
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f845c47..33ad3a1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -87,9 +87,9 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java
new file mode 100644
index 0000000..a5f4a1e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class DeptTodoModelImpl implements IDeptCaseModel {
+
+ private OnGetCaseListListener listener;
+
+ public DeptTodoModelImpl(OnGetCaseListListener caseListListener) {
+ this.listener = caseListListener;
+ }
+
+ public interface OnGetCaseListListener {
+ void onSuccess(PackageOrDeptBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(int offset) {
+ Observable observable = RetrofitServiceManager.getWorkListResult(offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PackageOrDeptBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
index 4cafc10..e8c76b9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
@@ -25,7 +25,7 @@
@Override
public Subscription sendRetrofitRequest(String isShop, int offset) {
- Observable observable = RetrofitServiceManager.getWorkListResult(isShop, offset);
+ Observable observable = RetrofitServiceManager.getPackageWorkListResult(isShop, offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java
new file mode 100644
index 0000000..eca4ff8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java
@@ -0,0 +1,38 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTodoModelImpl;
+import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
+
+public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener {
+
+ private IDeptTodoOrHandledView view;
+ private DeptTodoModelImpl actionModel;
+
+ public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) {
+ this.view = deptCaseView;
+ actionModel = new DeptTodoModelImpl(this);
+ }
+
+ //二级待办待处理
+ @Override
+ public void onReadyRetrofitRequest(int offset) {
+ addSubscription(actionModel.sendRetrofitRequest(offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(PackageOrDeptBean resultBean) {
+ view.obtainResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
index 5e6fd9c..b11a51a 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
@@ -96,7 +96,7 @@
@Override
protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[1];
+ return Constant.DEPT_PAGE_TITLES[3];
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
index de47420..030843e 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[2];
+ return Constant.DEPT_PAGE_TITLES[4];
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index 3de76c2..d47aa72 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment;
import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment;
import com.casic.dcms.utils.Constant;
import com.google.android.material.tabs.TabLayout;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;
@@ -57,10 +58,11 @@
@Override
public void initData() {
List fragmentList = new ArrayList<>();
+ fragmentList.add(new DeptCaseTodoFragment());//待办任务
fragmentList.add(new DeptCaseProcessFragment());//待处理
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
- fragmentList.add(new DeptCaseHandledFragment());//已处理
fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
deleted file mode 100644
index c751109..0000000
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ /dev/null
@@ -1,440 +0,0 @@
-package com.casic.dcms.ui;
-
-import android.content.Context;
-import android.content.Intent;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.EditText;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import androidx.core.content.ContextCompat;
-import androidx.recyclerview.widget.GridLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.casic.dcms.R;
-import com.casic.dcms.adapter.ImageRecycleViewAdapter;
-import com.casic.dcms.base.BaseCaseActivity;
-import com.casic.dcms.bean.ActionResultBean;
-import com.casic.dcms.bean.CaseDetailBean;
-import com.casic.dcms.bean.CaseNextNodeBean;
-import com.casic.dcms.bean.ProcessPersonBean;
-import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl;
-import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl;
-import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl;
-import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl;
-import com.casic.dcms.mvp.view.ICaseDetailHandleView;
-import com.casic.dcms.mvp.view.ICaseDetailView;
-import com.casic.dcms.mvp.view.ICaseNextNodeView;
-import com.casic.dcms.mvp.view.IHandleProcessView;
-import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
-import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
-import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.ItemDecorationSpace;
-import com.casic.dcms.utils.JzExoMedia;
-import com.casic.dcms.utils.OtherUtils;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.ToastHelper;
-import com.casic.dcms.widgets.AudioPlayerView;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import butterknife.BindView;
-import butterknife.OnClick;
-import cn.jzvd.Jzvd;
-import cn.jzvd.JzvdStd;
-
-public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener,
- ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView {
-
- private Context context = DeptProcessDetailActivity.this;
- @BindView(R.id.caseNumberView)
- TextView caseNumberView;
- @BindView(R.id.caseResourceView)
- TextView caseResourceView;
- @BindView(R.id.caseCreatorView)
- TextView caseCreatorView;
- @BindView(R.id.caseTypeView)
- TextView caseTypeView;
- @BindView(R.id.caseLargeTypeView)
- TextView caseLargeTypeView;
- @BindView(R.id.caseSmallTypeView)
- TextView caseSmallTypeView;
- @BindView(R.id.caseCommunityView)
- TextView caseCommunityView;
- @BindView(R.id.casePlaceView)
- TextView casePlaceView;
- @BindView(R.id.caseSituationView)
- TextView caseSituationView;
- @BindView(R.id.casePicRecyclerView)
- RecyclerView casePicRecyclerView;
- @BindView(R.id.audioPlayerView)
- AudioPlayerView audioPlayerView;
- @BindView(R.id.videoPlayerView)
- JzvdStd videoPlayerView;
- @BindView(R.id.caseHandleRecyclerView)
- RecyclerView caseHandleRecyclerView;
- @BindView(R.id.optTypeView)
- TextView optTypeView;
- @BindView(R.id.casePersonLayout)
- RelativeLayout casePersonLayout;
- @BindView(R.id.personLine)
- View personLine;
- @BindView(R.id.caseHandlePersonView)
- TextView caseHandlePersonView;
- @BindView(R.id.optionEditView)
- EditText optionEditView;
- @BindView(R.id.commonTipsView)
- TextView commonTipsView;
- @BindView(R.id.submitButton)
- QMUIRoundButton submitButton;
-
- private CaseDetailPresenterImpl caseDetailPresenter;
- private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private ProcessPersonPresenterImpl handleProcessPresenter;
- private List personBeans;
- private CaseHandlePresenterImpl caseHandlePresenter;
- private CaseNextNodePresenterImpl nextNodePresenter;
- private String id;
- private String changeState;
- private String taskUserId;
- private String operationKey;
- private List nodeDataBeans;
-
- @Override
- protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[0];
- }
-
- @Override
- public int initLayoutView() {
- return R.layout.activity_dept_process;
- }
-
- @Override
- public void initData() {
- id = getIntent().getStringExtra("id");
- caseDetailPresenter = new CaseDetailPresenterImpl(this);
- caseDetailPresenter.onReadyRetrofitRequest(id);
-
- nextNodePresenter = new CaseNextNodePresenterImpl(this);
- handleProcessPresenter = new ProcessPersonPresenterImpl(this);
- caseHandlePresenter = new CaseHandlePresenterImpl(this);
- }
-
- @Override
- public void initEvent() {
- submitButton.setChangeAlphaWhenPress(true);
- }
-
- @Override
- public void obtainCaseDetailData(CaseDetailBean resultBean) {
- if (resultBean.isSuccess()) {
- this.data = resultBean.getData().get(0);
- caseNumberView.setText(data.getCaseid());
- caseResourceView.setText(data.getSourceName());
- caseCreatorView.setText(data.getCreateUserName());
- caseTypeView.setText(data.getEorcName());
- caseLargeTypeView.setText(data.getCasetypeName());
- caseSmallTypeView.setText(data.getCasetypeDetailName());
- caseCommunityView.setText(data.getCommunityName());
- casePlaceView.setText(StringHelper.filterString(data.getFieldintro()));
- caseSituationView.setText(StringHelper.filterString(data.getDescription()));
-
- String images = data.getFileIdVerify();
- if (!TextUtils.isEmpty(images)) {
- ArrayList urls = new ArrayList<>();
- String[] split = images.split(",");
- for (String s : split) {
- if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
- imageAdapter.setMediaList(urls);
- casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
- casePicRecyclerView.addItemDecoration(new ItemDecorationSpace());
- casePicRecyclerView.setAdapter(imageAdapter);
- //九宫格点击事件
- imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- OtherUtils.showBigImage(context, position, urls);
- }
- });
- imageAdapter.setDeleteView(false);
- }
-
- String audioFile = data.getAudioIdVerify();
- if (!TextUtils.isEmpty(audioFile)) {
- audioPlayerView.setVisibility(View.VISIBLE);
- audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
- }
-
- String videoFile = data.getVideoIdVerify();
- if (!TextUtils.isEmpty(videoFile)) {
- videoPlayerView.setVisibility(View.VISIBLE);
- String videoUrl = StringHelper.appendCompleteURL(videoFile);
- videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class);
- //设置第一帧为封面
- Glide.with(this)
- .setDefaultRequestOptions(new RequestOptions().frame(4000000))
- .load(videoUrl)
- .into(videoPlayerView.posterImageView);
- }
-
- //处理图片
- String handleImages = data.getFileIdProcess();
- if (!TextUtils.isEmpty(handleImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = handleImages.split(",");
- for (String s : split) {
- if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
- imageAdapter.setMediaList(urls);
- caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
- caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace());
- caseHandleRecyclerView.setAdapter(imageAdapter);
- //九宫格点击事件
- imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- OtherUtils.showBigImage(context, position, urls);
- }
- });
- imageAdapter.setDeleteView(false);
- }
-
- //获取处置类型
- nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState()));
- }
- }
-
- @Override
- public void showProgress() {
- OtherUtils.showLoadingDialog(this, "处理中,请稍后");
- }
-
- @Override
- public void hideProgress() {
- OtherUtils.dismissLoadingDialog();
- }
-
- @Override
- public void obtainCaseHandleResult(ActionResultBean resultBean) {
- if (resultBean.isSuccess()) {
- ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
- DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE);
- DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
- finish();
- } else {
- ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
- }
- }
-
- @Override
- public void obtainDataFail() {
- ToastHelper.showToast("操作失败", ToastHelper.ERROR);
- }
-
- @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton})
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.locationMapView:
- Intent intent = new Intent(this, DisplayMapActivity.class);
- intent.putExtra("caseType", data.getEorcName());
- String dataLng = data.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = data.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- startActivity(intent);
- break;
- case R.id.caseOptTypeLayout:
- if (nodeDataBeans != null) {
- if (nodeDataBeans.size() >= 1) {
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
- sheetBuilder.setTitle("操作类型");
- for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) {
- sheetBuilder.addItem(dataBean.getNextOperation());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- optTypeView.setText(tag);
- optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position);
- changeState = String.valueOf(nodeBean.getNextState());
- operationKey = nodeBean.getOperationKey();
-
- if (tag.equals("处置人员")) {
- casePersonLayout.setVisibility(View.VISIBLE);
- personLine.setVisibility(View.VISIBLE);
-
- //获取下级处置人员名单
- handleProcessPresenter.onReadyRetrofitRequest();
- } else {
- casePersonLayout.setVisibility(View.GONE);
- personLine.setVisibility(View.GONE);
- }
- }
- }).build().show();
- }
- }
- break;
- case R.id.casePersonLayout:
- if (personBeans != null) {
- if (personBeans.size() >= 1) {
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
- sheetBuilder.setTitle("处置人员");
- for (ProcessPersonBean.DataBean dataBean : personBeans) {
- sheetBuilder.addItem(dataBean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- caseHandlePersonView.setText(tag);
- caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- taskUserId = personBeans.get(position).getId();
- }
- }).build().show();
- }
- }
- break;
- case R.id.commonTipsLayout:
- new QMUIBottomSheet.BottomListSheetBuilder(this)
- .setTitle("常见用语")
- .addItem("请及时处理")
- .addItem("调查后及时回复")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- commonTipsView.setText(tag);
- commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- optionEditView.setText(tag);
- commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
- }
- }).build().show();
- break;
- case R.id.submitButton:
- submitCase();
- break;
- }
- }
-
- private void submitCase() {
- String optType = optTypeView.getText().toString();
- if (optType.equals("")) {
- ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING);
- return;
- }
- if (optType.equals("处置人员")) {
- //选择处理人员时,必选一个处置人员
- String handlePerson = caseHandlePersonView.getText().toString();
- if (handlePerson.equals("")) {
- ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING);
- return;
- }
- }
- String optionInput = StringHelper.filterString(optionEditView.getText().toString());
- if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) {
- if (TextUtils.isEmpty(optionInput)) {
- ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING);
- return;
- }
- }
- caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
- String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId);
- }
-
- @Override
- public void obtainResultData(ProcessPersonBean resultBean) {
- if (resultBean.isSuccess()) {
- this.personBeans = resultBean.getData();
- if (personBeans.size() == 0) {
- caseHandlePersonView.setText("无处置人员");
- } else {
- ProcessPersonBean.DataBean dataBean = personBeans.get(0);
- taskUserId = dataBean.getId();
- caseHandlePersonView.setText(dataBean.getName());//默认选择第一个
- }
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
- }
- }
-
- @Override
- public void obtainNextNodeData(CaseNextNodeBean resultBean) {
- if (resultBean.isSuccess()) {
- this.nodeDataBeans = resultBean.getData();
- if (nodeDataBeans.size() == 0) {
- optTypeView.setText("无下级流转节点");
- } else {
- CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0);
-
- operationKey = dataBean.getOperationKey();
- changeState = String.valueOf(dataBean.getNextState());
- optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
- }
- optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
- } else {
- ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
- }
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (caseDetailPresenter != null) {
- caseDetailPresenter.disposeRetrofitRequest();
- }
- if (handleProcessPresenter != null) {
- handleProcessPresenter.disposeRetrofitRequest();
- }
- if (caseHandlePresenter != null) {
- caseHandlePresenter.disposeRetrofitRequest();
- }
- if (nextNodePresenter != null) {
- nextNodePresenter.disposeRetrofitRequest();
- }
- if (audioPlayerView != null) {
- audioPlayerView.release();
- }
- }
-
- @Override
- public void onBackPressed() {
- if (Jzvd.backPress()) {
- return;
- }
- super.onBackPressed();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- Jzvd.releaseAllVideos();
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java
new file mode 100644
index 0000000..e4df2b6
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java
@@ -0,0 +1,438 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.ImageRecycleViewAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.bean.CaseDetailBean;
+import com.casic.dcms.bean.CaseNextNodeBean;
+import com.casic.dcms.bean.ProcessPersonBean;
+import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl;
+import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl;
+import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl;
+import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl;
+import com.casic.dcms.mvp.view.ICaseDetailHandleView;
+import com.casic.dcms.mvp.view.ICaseDetailView;
+import com.casic.dcms.mvp.view.ICaseNextNodeView;
+import com.casic.dcms.mvp.view.IHandleProcessView;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.ItemDecorationSpace;
+import com.casic.dcms.utils.JzExoMedia;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.widgets.AudioPlayerView;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+import cn.jzvd.Jzvd;
+import cn.jzvd.JzvdStd;
+
+public class DeptTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView {
+
+ private Context context = this;
+ @BindView(R.id.caseNumberView)
+ TextView caseNumberView;
+ @BindView(R.id.caseResourceView)
+ TextView caseResourceView;
+ @BindView(R.id.caseCreatorView)
+ TextView caseCreatorView;
+ @BindView(R.id.caseTypeView)
+ TextView caseTypeView;
+ @BindView(R.id.caseLargeTypeView)
+ TextView caseLargeTypeView;
+ @BindView(R.id.caseSmallTypeView)
+ TextView caseSmallTypeView;
+ @BindView(R.id.caseCommunityView)
+ TextView caseCommunityView;
+ @BindView(R.id.casePlaceView)
+ TextView casePlaceView;
+ @BindView(R.id.caseSituationView)
+ TextView caseSituationView;
+ @BindView(R.id.casePicRecyclerView)
+ RecyclerView casePicRecyclerView;
+ @BindView(R.id.audioPlayerView)
+ AudioPlayerView audioPlayerView;
+ @BindView(R.id.videoPlayerView)
+ JzvdStd videoPlayerView;
+ @BindView(R.id.caseHandleRecyclerView)
+ RecyclerView caseHandleRecyclerView;
+ @BindView(R.id.optTypeView)
+ TextView optTypeView;
+ @BindView(R.id.casePersonLayout)
+ RelativeLayout casePersonLayout;
+ @BindView(R.id.personLine)
+ View personLine;
+ @BindView(R.id.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.optionEditView)
+ EditText optionEditView;
+ @BindView(R.id.commonTipsView)
+ TextView commonTipsView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+
+ private CaseDetailPresenterImpl caseDetailPresenter;
+ private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private CaseNextNodePresenterImpl nextNodePresenter;
+ private String id;
+ private String title;
+ private String changeState;
+ private String taskUserId;
+ private String operationKey;
+ private List nodeDataBeans;
+
+ @Override
+ protected String setTitleName() {
+ return title;
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_todo;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ title = getIntent().getStringExtra("title");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ handleProcessPresenter = new ProcessPersonPresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @Override
+ public void obtainCaseDetailData(CaseDetailBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.data = resultBean.getData().get(0);
+ caseNumberView.setText(data.getCaseid());
+ caseResourceView.setText(data.getSourceName());
+ caseCreatorView.setText(data.getCreateUserName());
+ caseTypeView.setText(data.getEorcName());
+ caseLargeTypeView.setText(data.getCasetypeName());
+ caseSmallTypeView.setText(data.getCasetypeDetailName());
+ caseCommunityView.setText(data.getCommunityName());
+ casePlaceView.setText(StringHelper.filterString(data.getFieldintro()));
+ caseSituationView.setText(StringHelper.filterString(data.getDescription()));
+
+ String images = data.getFileIdVerify();
+ if (!TextUtils.isEmpty(images)) {
+ ArrayList urls = new ArrayList<>();
+ String[] split = images.split(",");
+ for (String s : split) {
+ if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
+ urls.add(StringHelper.appendCompleteURL(s));
+ }
+ }
+ ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
+ imageAdapter.setMediaList(urls);
+ casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
+ casePicRecyclerView.addItemDecoration(new ItemDecorationSpace());
+ casePicRecyclerView.setAdapter(imageAdapter);
+ //九宫格点击事件
+ imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ OtherUtils.showBigImage(context, position, urls);
+ }
+ });
+ imageAdapter.setDeleteView(false);
+ }
+
+ String audioFile = data.getAudioIdVerify();
+ if (!TextUtils.isEmpty(audioFile)) {
+ audioPlayerView.setVisibility(View.VISIBLE);
+ audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
+ }
+
+ String videoFile = data.getVideoIdVerify();
+ if (!TextUtils.isEmpty(videoFile)) {
+ videoPlayerView.setVisibility(View.VISIBLE);
+ String videoUrl = StringHelper.appendCompleteURL(videoFile);
+ videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class);
+ //设置第一帧为封面
+ Glide.with(this)
+ .setDefaultRequestOptions(new RequestOptions().frame(4000000))
+ .load(videoUrl)
+ .into(videoPlayerView.posterImageView);
+ }
+
+ //处理图片
+ String handleImages = data.getFileIdProcess();
+ if (!TextUtils.isEmpty(handleImages)) {
+ ArrayList urls = new ArrayList<>();
+ String[] split = handleImages.split(",");
+ for (String s : split) {
+ if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
+ urls.add(StringHelper.appendCompleteURL(s));
+ }
+ }
+ ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
+ imageAdapter.setMediaList(urls);
+ caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
+ caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace());
+ caseHandleRecyclerView.setAdapter(imageAdapter);
+ //九宫格点击事件
+ imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ OtherUtils.showBigImage(context, position, urls);
+ }
+ });
+ imageAdapter.setDeleteView(false);
+ }
+
+ //获取处置类型
+ nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState()));
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "处理中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainCaseHandleResult(ActionResultBean resultBean) {
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
+ DeptCaseTodoFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.locationMapView:
+ Intent intent = new Intent(this, DisplayMapActivity.class);
+ intent.putExtra("caseType", data.getEorcName());
+ String dataLng = data.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = data.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ break;
+ case R.id.caseOptTypeLayout:
+ if (nodeDataBeans != null) {
+ if (nodeDataBeans.size() >= 1) {
+ QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
+ sheetBuilder.setTitle("操作类型");
+ for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) {
+ sheetBuilder.addItem(dataBean.getNextOperation());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ optTypeView.setText(tag);
+ optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position);
+ changeState = String.valueOf(nodeBean.getNextState());
+ operationKey = nodeBean.getOperationKey();
+
+ if (tag.equals("返回处理") || tag.equals("处置人员")) {
+ casePersonLayout.setVisibility(View.VISIBLE);
+ personLine.setVisibility(View.VISIBLE);
+
+ //获取下级处置人员名单
+ handleProcessPresenter.onReadyRetrofitRequest();
+ } else {
+ casePersonLayout.setVisibility(View.GONE);
+ personLine.setVisibility(View.GONE);
+ }
+ }
+ }).build().show();
+ }
+ }
+ break;
+ case R.id.casePersonLayout:
+ if (personBeans != null) {
+ if (personBeans.size() >= 1) {
+ QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
+ sheetBuilder.setTitle("处置人员");
+ for (ProcessPersonBean.DataBean dataBean : personBeans) {
+ sheetBuilder.addItem(dataBean.getName());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ caseHandlePersonView.setText(tag);
+ caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ taskUserId = personBeans.get(position).getId();
+ }
+ }).build().show();
+ }
+ }
+ break;
+ case R.id.commonTipsLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("常见用语")
+ .addItem("请及时处理")
+ .addItem("调查后及时回复")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ commonTipsView.setText(tag);
+ commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ optionEditView.setText(tag);
+ commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ String optType = optTypeView.getText().toString();
+ if (optType.equals("")) {
+ ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING);
+ return;
+ }
+ if (optType.equals("处置人员") || optType.equals("返回处理")) {
+ //选择处理人员时,必选一个处置人员
+ String handlePerson = caseHandlePersonView.getText().toString();
+ if (handlePerson.equals("")) {
+ ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING);
+ return;
+ }
+ }
+ String optionInput = StringHelper.filterString(optionEditView.getText().toString());
+ if (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId);
+ break;
+ }
+ }
+
+ @Override
+ public void obtainResultData(ProcessPersonBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.personBeans = resultBean.getData();
+ if (personBeans.size() == 0) {
+ caseHandlePersonView.setText("无处置人员");
+ } else {
+ ProcessPersonBean.DataBean dataBean = personBeans.get(0);
+ taskUserId = dataBean.getId();
+ caseHandlePersonView.setText(dataBean.getName());//默认选择第一个
+ }
+ caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ }
+ }
+
+ @Override
+ public void obtainNextNodeData(CaseNextNodeBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.nodeDataBeans = resultBean.getData();
+ if (nodeDataBeans.size() == 0) {
+ optTypeView.setText("无下级流转节点");
+ } else {
+ CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0);
+
+ operationKey = dataBean.getOperationKey();
+ changeState = String.valueOf(dataBean.getNextState());
+ optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
+ }
+ optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ } else {
+ ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (handleProcessPresenter != null) {
+ handleProcessPresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (audioPlayerView != null) {
+ audioPlayerView.release();
+ }
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (Jzvd.backPress()) {
+ return;
+ }
+ super.onBackPressed();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ Jzvd.releaseAllVideos();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
index 12f5b4d..7727898 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
@@ -16,7 +16,7 @@
import com.casic.dcms.bean.PackageOrDeptBean;
import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl;
import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
-import com.casic.dcms.ui.DeptProcessDetailActivity;
+import com.casic.dcms.ui.DeptTodoDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -125,7 +125,8 @@
fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
- Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class);
+ Intent intent = new Intent(fragment.context, DeptTodoDetailActivity.class);
+ intent.putExtra("title", Constant.DEPT_PAGE_TITLES[1]);
intent.putExtra("id", fragment.dataBeans.get(position).getId());
fragment.startActivity(intent);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java
new file mode 100644
index 0000000..7bc167b
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java
@@ -0,0 +1,170 @@
+package com.casic.dcms.ui.fragment.dept;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.DeptTodoOrHandledAdapter;
+import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl;
+import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
+import com.casic.dcms.ui.DeptTodoDetailActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.ToastHelper;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView {
+
+ private Context context;
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.refreshLayout)
+ SmartRefreshLayout refreshLayout;
+ @BindView(R.id.caseRecyclerView)
+ RecyclerView caseRecyclerView;
+
+ private DeptTodoPresenterImpl deptTodoPresenter;
+ private int pageIndex = 1;
+ private List dataBeans = new ArrayList<>();
+ private boolean isRefresh, isLoadMore = false;
+ private static WeakReferenceHandler weakReferenceHandler;
+ private DeptTodoOrHandledAdapter adapter;
+
+ @Override
+ protected int initLayoutView() {
+ return R.layout.fragment_dept_case;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+
+ @Override
+ protected void initData() {
+ deptTodoPresenter = new DeptTodoPresenterImpl(this);
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ }
+
+ @Override
+ protected void initEvent() {
+ refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+ }
+ });
+ refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+ }
+ });
+ }
+
+ public static void sendEmptyMessage(int what) {
+ if (weakReferenceHandler == null) {
+ return;
+ }
+ weakReferenceHandler.sendEmptyMessage(what);
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(DeptCaseTodoFragment fragment) {
+ reference = new WeakReference<>(fragment);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ DeptCaseTodoFragment fragment = reference.get();
+ if (msg.what == Constant.DEPT_DONE) {
+ fragment.isRefresh = true;
+ //刷新之后页码重置
+ fragment.pageIndex = 1;
+ fragment.deptTodoPresenter.onReadyRetrofitRequest(fragment.pageIndex);
+ } else if (msg.what == 20210630) {
+ if (fragment.isRefresh || fragment.isLoadMore) {
+ fragment.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (fragment.dataBeans.size() == 0) {
+ fragment.emptyView.show("您暂时没有待办案卷", null);
+ } else {
+ fragment.emptyView.hide();
+ fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans);
+ fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context));
+ fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL));
+ fragment.caseRecyclerView.setAdapter(fragment.adapter);
+ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(fragment.context, DeptTodoDetailActivity.class);
+ intent.putExtra("title", Constant.DEPT_PAGE_TITLES[0]);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void obtainResult(PackageOrDeptBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO);
+ }
+ dataBeans.addAll(dataRows);
+ refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210630);
+ }
+ }
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ if (deptTodoPresenter != null) {
+ deptTodoPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index e8cd7d5..d207d3d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -15,7 +15,7 @@
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE};
public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"};
- public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"};
+ public static final String[] DEPT_PAGE_TITLES = {"待办任务", "待处理", "已办案卷", "部门调整批示", "部门授权审核", "二级缓办待处理", "二级延期待处理"};
public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"};
public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"};
public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"};
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 6c69999..63abb77 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -2,6 +2,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
+import android.os.Environment;
import android.util.Log;
import com.casic.dcms.utils.callback.IDownloadListener;
@@ -30,7 +31,6 @@
private static File audioDir;
private static File imageDir;
private static File waterImageDir;
- private static File downloadDir;
private static File videoDir;
private static int index = 1;
@@ -64,13 +64,6 @@
Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
}
}
- downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkDownDir = downloadDir.mkdir();
- if (mkDownDir) {
- Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
- }
- }
videoDir = new File(parentDir, "CompressVideoFile");
if (!videoDir.exists()) {
boolean mkVideoDir = videoDir.mkdir();
@@ -163,20 +156,11 @@
//储存下载文件的目录
private static String getDownloadFilePath() {
- if (downloadDir == null) {
- File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Casic");
- if (!parentDir.exists()) {
- boolean mkdir = parentDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "getDownloadFilePath: 创建Casic文件夹");
- }
- }
- downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkDownDir = downloadDir.mkdir();
- if (mkDownDir) {
- Log.d(TAG, "getDownloadFilePath: 创建DownloadFile文件夹");
- }
+ File downloadDir = new File(context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "");
+ if (!downloadDir.exists()) {
+ boolean mkdir = downloadDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getDownloadFilePath: 创建文件夹");
}
}
return downloadDir.toString();
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index f70d101..db004ff 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -511,10 +511,10 @@
* http://111.198.10.15:11409/case/workListPage?isShop=1
*/
@GET("/case/workListPage")
- Observable obtainWorkListPage(@Header("token") String token,
- @Query("isShop") String isShop,
- @Query("limit") int limit,
- @Query("offset") int offset);
+ Observable obtainPackageWorkListPage(@Header("token") String token,
+ @Query("isShop") String isShop,
+ @Query("limit") int limit,
+ @Query("offset") int offset);
/**
* 三包已办
@@ -558,6 +558,16 @@
@Field("applySource") String applySource);
/**
+ * 二级派遣员待办案卷
+ *
+ * http://111.198.10.15:11409/case/workListPage/?offset=1&limit=15
+ */
+ @GET("/case/workListPage")
+ Observable obtainWorkListPage(@Header("token") String token,
+ @Query("limit") int limit,
+ @Query("offset") int offset);
+
+ /**
* 二级派遣员待处理案卷
*
* http://111.198.10.15:11409/case/toProcessListPage/?offset=1&limit=15
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index 32a93a1..2e2cde7 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -549,10 +549,10 @@
/**
* 三包待办
*/
- public static Observable getWorkListResult(String isShop, int offset) {
+ public static Observable getPackageWorkListResult(String isShop, int offset) {
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- return service.obtainWorkListPage(AuthenticationHelper.getToken(), isShop,
+ return service.obtainPackageWorkListPage(AuthenticationHelper.getToken(), isShop,
Constant.PAGE_LIMIT, offset);
}
@@ -591,6 +591,15 @@
}
/**
+ * 二级派遣员待办案卷
+ */
+ public static Observable getWorkListResult(int offset) {
+ Retrofit retrofit = createRetrofit();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.obtainWorkListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset);
+ }
+
+ /**
* 二级派遣员待处理案卷
*/
public static Observable getProcessListResult(int offset) {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f845c47..33ad3a1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -87,9 +87,9 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java
new file mode 100644
index 0000000..a5f4a1e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class DeptTodoModelImpl implements IDeptCaseModel {
+
+ private OnGetCaseListListener listener;
+
+ public DeptTodoModelImpl(OnGetCaseListListener caseListListener) {
+ this.listener = caseListListener;
+ }
+
+ public interface OnGetCaseListListener {
+ void onSuccess(PackageOrDeptBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(int offset) {
+ Observable observable = RetrofitServiceManager.getWorkListResult(offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PackageOrDeptBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
index 4cafc10..e8c76b9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
@@ -25,7 +25,7 @@
@Override
public Subscription sendRetrofitRequest(String isShop, int offset) {
- Observable observable = RetrofitServiceManager.getWorkListResult(isShop, offset);
+ Observable observable = RetrofitServiceManager.getPackageWorkListResult(isShop, offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java
new file mode 100644
index 0000000..eca4ff8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java
@@ -0,0 +1,38 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTodoModelImpl;
+import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
+
+public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener {
+
+ private IDeptTodoOrHandledView view;
+ private DeptTodoModelImpl actionModel;
+
+ public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) {
+ this.view = deptCaseView;
+ actionModel = new DeptTodoModelImpl(this);
+ }
+
+ //二级待办待处理
+ @Override
+ public void onReadyRetrofitRequest(int offset) {
+ addSubscription(actionModel.sendRetrofitRequest(offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(PackageOrDeptBean resultBean) {
+ view.obtainResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
index 5e6fd9c..b11a51a 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
@@ -96,7 +96,7 @@
@Override
protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[1];
+ return Constant.DEPT_PAGE_TITLES[3];
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
index de47420..030843e 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[2];
+ return Constant.DEPT_PAGE_TITLES[4];
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index 3de76c2..d47aa72 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment;
import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment;
import com.casic.dcms.utils.Constant;
import com.google.android.material.tabs.TabLayout;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;
@@ -57,10 +58,11 @@
@Override
public void initData() {
List fragmentList = new ArrayList<>();
+ fragmentList.add(new DeptCaseTodoFragment());//待办任务
fragmentList.add(new DeptCaseProcessFragment());//待处理
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
- fragmentList.add(new DeptCaseHandledFragment());//已处理
fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
deleted file mode 100644
index c751109..0000000
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ /dev/null
@@ -1,440 +0,0 @@
-package com.casic.dcms.ui;
-
-import android.content.Context;
-import android.content.Intent;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.EditText;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import androidx.core.content.ContextCompat;
-import androidx.recyclerview.widget.GridLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.casic.dcms.R;
-import com.casic.dcms.adapter.ImageRecycleViewAdapter;
-import com.casic.dcms.base.BaseCaseActivity;
-import com.casic.dcms.bean.ActionResultBean;
-import com.casic.dcms.bean.CaseDetailBean;
-import com.casic.dcms.bean.CaseNextNodeBean;
-import com.casic.dcms.bean.ProcessPersonBean;
-import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl;
-import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl;
-import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl;
-import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl;
-import com.casic.dcms.mvp.view.ICaseDetailHandleView;
-import com.casic.dcms.mvp.view.ICaseDetailView;
-import com.casic.dcms.mvp.view.ICaseNextNodeView;
-import com.casic.dcms.mvp.view.IHandleProcessView;
-import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
-import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
-import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.ItemDecorationSpace;
-import com.casic.dcms.utils.JzExoMedia;
-import com.casic.dcms.utils.OtherUtils;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.ToastHelper;
-import com.casic.dcms.widgets.AudioPlayerView;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import butterknife.BindView;
-import butterknife.OnClick;
-import cn.jzvd.Jzvd;
-import cn.jzvd.JzvdStd;
-
-public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener,
- ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView {
-
- private Context context = DeptProcessDetailActivity.this;
- @BindView(R.id.caseNumberView)
- TextView caseNumberView;
- @BindView(R.id.caseResourceView)
- TextView caseResourceView;
- @BindView(R.id.caseCreatorView)
- TextView caseCreatorView;
- @BindView(R.id.caseTypeView)
- TextView caseTypeView;
- @BindView(R.id.caseLargeTypeView)
- TextView caseLargeTypeView;
- @BindView(R.id.caseSmallTypeView)
- TextView caseSmallTypeView;
- @BindView(R.id.caseCommunityView)
- TextView caseCommunityView;
- @BindView(R.id.casePlaceView)
- TextView casePlaceView;
- @BindView(R.id.caseSituationView)
- TextView caseSituationView;
- @BindView(R.id.casePicRecyclerView)
- RecyclerView casePicRecyclerView;
- @BindView(R.id.audioPlayerView)
- AudioPlayerView audioPlayerView;
- @BindView(R.id.videoPlayerView)
- JzvdStd videoPlayerView;
- @BindView(R.id.caseHandleRecyclerView)
- RecyclerView caseHandleRecyclerView;
- @BindView(R.id.optTypeView)
- TextView optTypeView;
- @BindView(R.id.casePersonLayout)
- RelativeLayout casePersonLayout;
- @BindView(R.id.personLine)
- View personLine;
- @BindView(R.id.caseHandlePersonView)
- TextView caseHandlePersonView;
- @BindView(R.id.optionEditView)
- EditText optionEditView;
- @BindView(R.id.commonTipsView)
- TextView commonTipsView;
- @BindView(R.id.submitButton)
- QMUIRoundButton submitButton;
-
- private CaseDetailPresenterImpl caseDetailPresenter;
- private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private ProcessPersonPresenterImpl handleProcessPresenter;
- private List personBeans;
- private CaseHandlePresenterImpl caseHandlePresenter;
- private CaseNextNodePresenterImpl nextNodePresenter;
- private String id;
- private String changeState;
- private String taskUserId;
- private String operationKey;
- private List nodeDataBeans;
-
- @Override
- protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[0];
- }
-
- @Override
- public int initLayoutView() {
- return R.layout.activity_dept_process;
- }
-
- @Override
- public void initData() {
- id = getIntent().getStringExtra("id");
- caseDetailPresenter = new CaseDetailPresenterImpl(this);
- caseDetailPresenter.onReadyRetrofitRequest(id);
-
- nextNodePresenter = new CaseNextNodePresenterImpl(this);
- handleProcessPresenter = new ProcessPersonPresenterImpl(this);
- caseHandlePresenter = new CaseHandlePresenterImpl(this);
- }
-
- @Override
- public void initEvent() {
- submitButton.setChangeAlphaWhenPress(true);
- }
-
- @Override
- public void obtainCaseDetailData(CaseDetailBean resultBean) {
- if (resultBean.isSuccess()) {
- this.data = resultBean.getData().get(0);
- caseNumberView.setText(data.getCaseid());
- caseResourceView.setText(data.getSourceName());
- caseCreatorView.setText(data.getCreateUserName());
- caseTypeView.setText(data.getEorcName());
- caseLargeTypeView.setText(data.getCasetypeName());
- caseSmallTypeView.setText(data.getCasetypeDetailName());
- caseCommunityView.setText(data.getCommunityName());
- casePlaceView.setText(StringHelper.filterString(data.getFieldintro()));
- caseSituationView.setText(StringHelper.filterString(data.getDescription()));
-
- String images = data.getFileIdVerify();
- if (!TextUtils.isEmpty(images)) {
- ArrayList urls = new ArrayList<>();
- String[] split = images.split(",");
- for (String s : split) {
- if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
- imageAdapter.setMediaList(urls);
- casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
- casePicRecyclerView.addItemDecoration(new ItemDecorationSpace());
- casePicRecyclerView.setAdapter(imageAdapter);
- //九宫格点击事件
- imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- OtherUtils.showBigImage(context, position, urls);
- }
- });
- imageAdapter.setDeleteView(false);
- }
-
- String audioFile = data.getAudioIdVerify();
- if (!TextUtils.isEmpty(audioFile)) {
- audioPlayerView.setVisibility(View.VISIBLE);
- audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
- }
-
- String videoFile = data.getVideoIdVerify();
- if (!TextUtils.isEmpty(videoFile)) {
- videoPlayerView.setVisibility(View.VISIBLE);
- String videoUrl = StringHelper.appendCompleteURL(videoFile);
- videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class);
- //设置第一帧为封面
- Glide.with(this)
- .setDefaultRequestOptions(new RequestOptions().frame(4000000))
- .load(videoUrl)
- .into(videoPlayerView.posterImageView);
- }
-
- //处理图片
- String handleImages = data.getFileIdProcess();
- if (!TextUtils.isEmpty(handleImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = handleImages.split(",");
- for (String s : split) {
- if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
- imageAdapter.setMediaList(urls);
- caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
- caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace());
- caseHandleRecyclerView.setAdapter(imageAdapter);
- //九宫格点击事件
- imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- OtherUtils.showBigImage(context, position, urls);
- }
- });
- imageAdapter.setDeleteView(false);
- }
-
- //获取处置类型
- nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState()));
- }
- }
-
- @Override
- public void showProgress() {
- OtherUtils.showLoadingDialog(this, "处理中,请稍后");
- }
-
- @Override
- public void hideProgress() {
- OtherUtils.dismissLoadingDialog();
- }
-
- @Override
- public void obtainCaseHandleResult(ActionResultBean resultBean) {
- if (resultBean.isSuccess()) {
- ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
- DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE);
- DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
- finish();
- } else {
- ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
- }
- }
-
- @Override
- public void obtainDataFail() {
- ToastHelper.showToast("操作失败", ToastHelper.ERROR);
- }
-
- @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton})
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.locationMapView:
- Intent intent = new Intent(this, DisplayMapActivity.class);
- intent.putExtra("caseType", data.getEorcName());
- String dataLng = data.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = data.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- startActivity(intent);
- break;
- case R.id.caseOptTypeLayout:
- if (nodeDataBeans != null) {
- if (nodeDataBeans.size() >= 1) {
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
- sheetBuilder.setTitle("操作类型");
- for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) {
- sheetBuilder.addItem(dataBean.getNextOperation());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- optTypeView.setText(tag);
- optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position);
- changeState = String.valueOf(nodeBean.getNextState());
- operationKey = nodeBean.getOperationKey();
-
- if (tag.equals("处置人员")) {
- casePersonLayout.setVisibility(View.VISIBLE);
- personLine.setVisibility(View.VISIBLE);
-
- //获取下级处置人员名单
- handleProcessPresenter.onReadyRetrofitRequest();
- } else {
- casePersonLayout.setVisibility(View.GONE);
- personLine.setVisibility(View.GONE);
- }
- }
- }).build().show();
- }
- }
- break;
- case R.id.casePersonLayout:
- if (personBeans != null) {
- if (personBeans.size() >= 1) {
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
- sheetBuilder.setTitle("处置人员");
- for (ProcessPersonBean.DataBean dataBean : personBeans) {
- sheetBuilder.addItem(dataBean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- caseHandlePersonView.setText(tag);
- caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- taskUserId = personBeans.get(position).getId();
- }
- }).build().show();
- }
- }
- break;
- case R.id.commonTipsLayout:
- new QMUIBottomSheet.BottomListSheetBuilder(this)
- .setTitle("常见用语")
- .addItem("请及时处理")
- .addItem("调查后及时回复")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- commonTipsView.setText(tag);
- commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- optionEditView.setText(tag);
- commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
- }
- }).build().show();
- break;
- case R.id.submitButton:
- submitCase();
- break;
- }
- }
-
- private void submitCase() {
- String optType = optTypeView.getText().toString();
- if (optType.equals("")) {
- ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING);
- return;
- }
- if (optType.equals("处置人员")) {
- //选择处理人员时,必选一个处置人员
- String handlePerson = caseHandlePersonView.getText().toString();
- if (handlePerson.equals("")) {
- ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING);
- return;
- }
- }
- String optionInput = StringHelper.filterString(optionEditView.getText().toString());
- if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) {
- if (TextUtils.isEmpty(optionInput)) {
- ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING);
- return;
- }
- }
- caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
- String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId);
- }
-
- @Override
- public void obtainResultData(ProcessPersonBean resultBean) {
- if (resultBean.isSuccess()) {
- this.personBeans = resultBean.getData();
- if (personBeans.size() == 0) {
- caseHandlePersonView.setText("无处置人员");
- } else {
- ProcessPersonBean.DataBean dataBean = personBeans.get(0);
- taskUserId = dataBean.getId();
- caseHandlePersonView.setText(dataBean.getName());//默认选择第一个
- }
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
- }
- }
-
- @Override
- public void obtainNextNodeData(CaseNextNodeBean resultBean) {
- if (resultBean.isSuccess()) {
- this.nodeDataBeans = resultBean.getData();
- if (nodeDataBeans.size() == 0) {
- optTypeView.setText("无下级流转节点");
- } else {
- CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0);
-
- operationKey = dataBean.getOperationKey();
- changeState = String.valueOf(dataBean.getNextState());
- optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
- }
- optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
- } else {
- ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
- }
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (caseDetailPresenter != null) {
- caseDetailPresenter.disposeRetrofitRequest();
- }
- if (handleProcessPresenter != null) {
- handleProcessPresenter.disposeRetrofitRequest();
- }
- if (caseHandlePresenter != null) {
- caseHandlePresenter.disposeRetrofitRequest();
- }
- if (nextNodePresenter != null) {
- nextNodePresenter.disposeRetrofitRequest();
- }
- if (audioPlayerView != null) {
- audioPlayerView.release();
- }
- }
-
- @Override
- public void onBackPressed() {
- if (Jzvd.backPress()) {
- return;
- }
- super.onBackPressed();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- Jzvd.releaseAllVideos();
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java
new file mode 100644
index 0000000..e4df2b6
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java
@@ -0,0 +1,438 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.ImageRecycleViewAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.bean.CaseDetailBean;
+import com.casic.dcms.bean.CaseNextNodeBean;
+import com.casic.dcms.bean.ProcessPersonBean;
+import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl;
+import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl;
+import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl;
+import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl;
+import com.casic.dcms.mvp.view.ICaseDetailHandleView;
+import com.casic.dcms.mvp.view.ICaseDetailView;
+import com.casic.dcms.mvp.view.ICaseNextNodeView;
+import com.casic.dcms.mvp.view.IHandleProcessView;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.ItemDecorationSpace;
+import com.casic.dcms.utils.JzExoMedia;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.widgets.AudioPlayerView;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+import cn.jzvd.Jzvd;
+import cn.jzvd.JzvdStd;
+
+public class DeptTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView {
+
+ private Context context = this;
+ @BindView(R.id.caseNumberView)
+ TextView caseNumberView;
+ @BindView(R.id.caseResourceView)
+ TextView caseResourceView;
+ @BindView(R.id.caseCreatorView)
+ TextView caseCreatorView;
+ @BindView(R.id.caseTypeView)
+ TextView caseTypeView;
+ @BindView(R.id.caseLargeTypeView)
+ TextView caseLargeTypeView;
+ @BindView(R.id.caseSmallTypeView)
+ TextView caseSmallTypeView;
+ @BindView(R.id.caseCommunityView)
+ TextView caseCommunityView;
+ @BindView(R.id.casePlaceView)
+ TextView casePlaceView;
+ @BindView(R.id.caseSituationView)
+ TextView caseSituationView;
+ @BindView(R.id.casePicRecyclerView)
+ RecyclerView casePicRecyclerView;
+ @BindView(R.id.audioPlayerView)
+ AudioPlayerView audioPlayerView;
+ @BindView(R.id.videoPlayerView)
+ JzvdStd videoPlayerView;
+ @BindView(R.id.caseHandleRecyclerView)
+ RecyclerView caseHandleRecyclerView;
+ @BindView(R.id.optTypeView)
+ TextView optTypeView;
+ @BindView(R.id.casePersonLayout)
+ RelativeLayout casePersonLayout;
+ @BindView(R.id.personLine)
+ View personLine;
+ @BindView(R.id.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.optionEditView)
+ EditText optionEditView;
+ @BindView(R.id.commonTipsView)
+ TextView commonTipsView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+
+ private CaseDetailPresenterImpl caseDetailPresenter;
+ private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private CaseNextNodePresenterImpl nextNodePresenter;
+ private String id;
+ private String title;
+ private String changeState;
+ private String taskUserId;
+ private String operationKey;
+ private List nodeDataBeans;
+
+ @Override
+ protected String setTitleName() {
+ return title;
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_todo;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ title = getIntent().getStringExtra("title");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ handleProcessPresenter = new ProcessPersonPresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @Override
+ public void obtainCaseDetailData(CaseDetailBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.data = resultBean.getData().get(0);
+ caseNumberView.setText(data.getCaseid());
+ caseResourceView.setText(data.getSourceName());
+ caseCreatorView.setText(data.getCreateUserName());
+ caseTypeView.setText(data.getEorcName());
+ caseLargeTypeView.setText(data.getCasetypeName());
+ caseSmallTypeView.setText(data.getCasetypeDetailName());
+ caseCommunityView.setText(data.getCommunityName());
+ casePlaceView.setText(StringHelper.filterString(data.getFieldintro()));
+ caseSituationView.setText(StringHelper.filterString(data.getDescription()));
+
+ String images = data.getFileIdVerify();
+ if (!TextUtils.isEmpty(images)) {
+ ArrayList urls = new ArrayList<>();
+ String[] split = images.split(",");
+ for (String s : split) {
+ if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
+ urls.add(StringHelper.appendCompleteURL(s));
+ }
+ }
+ ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
+ imageAdapter.setMediaList(urls);
+ casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
+ casePicRecyclerView.addItemDecoration(new ItemDecorationSpace());
+ casePicRecyclerView.setAdapter(imageAdapter);
+ //九宫格点击事件
+ imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ OtherUtils.showBigImage(context, position, urls);
+ }
+ });
+ imageAdapter.setDeleteView(false);
+ }
+
+ String audioFile = data.getAudioIdVerify();
+ if (!TextUtils.isEmpty(audioFile)) {
+ audioPlayerView.setVisibility(View.VISIBLE);
+ audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
+ }
+
+ String videoFile = data.getVideoIdVerify();
+ if (!TextUtils.isEmpty(videoFile)) {
+ videoPlayerView.setVisibility(View.VISIBLE);
+ String videoUrl = StringHelper.appendCompleteURL(videoFile);
+ videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class);
+ //设置第一帧为封面
+ Glide.with(this)
+ .setDefaultRequestOptions(new RequestOptions().frame(4000000))
+ .load(videoUrl)
+ .into(videoPlayerView.posterImageView);
+ }
+
+ //处理图片
+ String handleImages = data.getFileIdProcess();
+ if (!TextUtils.isEmpty(handleImages)) {
+ ArrayList urls = new ArrayList<>();
+ String[] split = handleImages.split(",");
+ for (String s : split) {
+ if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
+ urls.add(StringHelper.appendCompleteURL(s));
+ }
+ }
+ ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
+ imageAdapter.setMediaList(urls);
+ caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
+ caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace());
+ caseHandleRecyclerView.setAdapter(imageAdapter);
+ //九宫格点击事件
+ imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ OtherUtils.showBigImage(context, position, urls);
+ }
+ });
+ imageAdapter.setDeleteView(false);
+ }
+
+ //获取处置类型
+ nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState()));
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "处理中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainCaseHandleResult(ActionResultBean resultBean) {
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
+ DeptCaseTodoFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.locationMapView:
+ Intent intent = new Intent(this, DisplayMapActivity.class);
+ intent.putExtra("caseType", data.getEorcName());
+ String dataLng = data.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = data.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ break;
+ case R.id.caseOptTypeLayout:
+ if (nodeDataBeans != null) {
+ if (nodeDataBeans.size() >= 1) {
+ QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
+ sheetBuilder.setTitle("操作类型");
+ for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) {
+ sheetBuilder.addItem(dataBean.getNextOperation());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ optTypeView.setText(tag);
+ optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position);
+ changeState = String.valueOf(nodeBean.getNextState());
+ operationKey = nodeBean.getOperationKey();
+
+ if (tag.equals("返回处理") || tag.equals("处置人员")) {
+ casePersonLayout.setVisibility(View.VISIBLE);
+ personLine.setVisibility(View.VISIBLE);
+
+ //获取下级处置人员名单
+ handleProcessPresenter.onReadyRetrofitRequest();
+ } else {
+ casePersonLayout.setVisibility(View.GONE);
+ personLine.setVisibility(View.GONE);
+ }
+ }
+ }).build().show();
+ }
+ }
+ break;
+ case R.id.casePersonLayout:
+ if (personBeans != null) {
+ if (personBeans.size() >= 1) {
+ QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
+ sheetBuilder.setTitle("处置人员");
+ for (ProcessPersonBean.DataBean dataBean : personBeans) {
+ sheetBuilder.addItem(dataBean.getName());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ caseHandlePersonView.setText(tag);
+ caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ taskUserId = personBeans.get(position).getId();
+ }
+ }).build().show();
+ }
+ }
+ break;
+ case R.id.commonTipsLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("常见用语")
+ .addItem("请及时处理")
+ .addItem("调查后及时回复")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ commonTipsView.setText(tag);
+ commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ optionEditView.setText(tag);
+ commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ String optType = optTypeView.getText().toString();
+ if (optType.equals("")) {
+ ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING);
+ return;
+ }
+ if (optType.equals("处置人员") || optType.equals("返回处理")) {
+ //选择处理人员时,必选一个处置人员
+ String handlePerson = caseHandlePersonView.getText().toString();
+ if (handlePerson.equals("")) {
+ ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING);
+ return;
+ }
+ }
+ String optionInput = StringHelper.filterString(optionEditView.getText().toString());
+ if (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId);
+ break;
+ }
+ }
+
+ @Override
+ public void obtainResultData(ProcessPersonBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.personBeans = resultBean.getData();
+ if (personBeans.size() == 0) {
+ caseHandlePersonView.setText("无处置人员");
+ } else {
+ ProcessPersonBean.DataBean dataBean = personBeans.get(0);
+ taskUserId = dataBean.getId();
+ caseHandlePersonView.setText(dataBean.getName());//默认选择第一个
+ }
+ caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ }
+ }
+
+ @Override
+ public void obtainNextNodeData(CaseNextNodeBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.nodeDataBeans = resultBean.getData();
+ if (nodeDataBeans.size() == 0) {
+ optTypeView.setText("无下级流转节点");
+ } else {
+ CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0);
+
+ operationKey = dataBean.getOperationKey();
+ changeState = String.valueOf(dataBean.getNextState());
+ optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
+ }
+ optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ } else {
+ ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (handleProcessPresenter != null) {
+ handleProcessPresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (audioPlayerView != null) {
+ audioPlayerView.release();
+ }
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (Jzvd.backPress()) {
+ return;
+ }
+ super.onBackPressed();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ Jzvd.releaseAllVideos();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
index 12f5b4d..7727898 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
@@ -16,7 +16,7 @@
import com.casic.dcms.bean.PackageOrDeptBean;
import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl;
import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
-import com.casic.dcms.ui.DeptProcessDetailActivity;
+import com.casic.dcms.ui.DeptTodoDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -125,7 +125,8 @@
fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
- Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class);
+ Intent intent = new Intent(fragment.context, DeptTodoDetailActivity.class);
+ intent.putExtra("title", Constant.DEPT_PAGE_TITLES[1]);
intent.putExtra("id", fragment.dataBeans.get(position).getId());
fragment.startActivity(intent);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java
new file mode 100644
index 0000000..7bc167b
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java
@@ -0,0 +1,170 @@
+package com.casic.dcms.ui.fragment.dept;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.DeptTodoOrHandledAdapter;
+import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl;
+import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
+import com.casic.dcms.ui.DeptTodoDetailActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.ToastHelper;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView {
+
+ private Context context;
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.refreshLayout)
+ SmartRefreshLayout refreshLayout;
+ @BindView(R.id.caseRecyclerView)
+ RecyclerView caseRecyclerView;
+
+ private DeptTodoPresenterImpl deptTodoPresenter;
+ private int pageIndex = 1;
+ private List dataBeans = new ArrayList<>();
+ private boolean isRefresh, isLoadMore = false;
+ private static WeakReferenceHandler weakReferenceHandler;
+ private DeptTodoOrHandledAdapter adapter;
+
+ @Override
+ protected int initLayoutView() {
+ return R.layout.fragment_dept_case;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+
+ @Override
+ protected void initData() {
+ deptTodoPresenter = new DeptTodoPresenterImpl(this);
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ }
+
+ @Override
+ protected void initEvent() {
+ refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+ }
+ });
+ refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+ }
+ });
+ }
+
+ public static void sendEmptyMessage(int what) {
+ if (weakReferenceHandler == null) {
+ return;
+ }
+ weakReferenceHandler.sendEmptyMessage(what);
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(DeptCaseTodoFragment fragment) {
+ reference = new WeakReference<>(fragment);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ DeptCaseTodoFragment fragment = reference.get();
+ if (msg.what == Constant.DEPT_DONE) {
+ fragment.isRefresh = true;
+ //刷新之后页码重置
+ fragment.pageIndex = 1;
+ fragment.deptTodoPresenter.onReadyRetrofitRequest(fragment.pageIndex);
+ } else if (msg.what == 20210630) {
+ if (fragment.isRefresh || fragment.isLoadMore) {
+ fragment.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (fragment.dataBeans.size() == 0) {
+ fragment.emptyView.show("您暂时没有待办案卷", null);
+ } else {
+ fragment.emptyView.hide();
+ fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans);
+ fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context));
+ fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL));
+ fragment.caseRecyclerView.setAdapter(fragment.adapter);
+ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(fragment.context, DeptTodoDetailActivity.class);
+ intent.putExtra("title", Constant.DEPT_PAGE_TITLES[0]);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void obtainResult(PackageOrDeptBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO);
+ }
+ dataBeans.addAll(dataRows);
+ refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210630);
+ }
+ }
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ if (deptTodoPresenter != null) {
+ deptTodoPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index e8cd7d5..d207d3d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -15,7 +15,7 @@
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE};
public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"};
- public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"};
+ public static final String[] DEPT_PAGE_TITLES = {"待办任务", "待处理", "已办案卷", "部门调整批示", "部门授权审核", "二级缓办待处理", "二级延期待处理"};
public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"};
public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"};
public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"};
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 6c69999..63abb77 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -2,6 +2,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
+import android.os.Environment;
import android.util.Log;
import com.casic.dcms.utils.callback.IDownloadListener;
@@ -30,7 +31,6 @@
private static File audioDir;
private static File imageDir;
private static File waterImageDir;
- private static File downloadDir;
private static File videoDir;
private static int index = 1;
@@ -64,13 +64,6 @@
Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
}
}
- downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkDownDir = downloadDir.mkdir();
- if (mkDownDir) {
- Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
- }
- }
videoDir = new File(parentDir, "CompressVideoFile");
if (!videoDir.exists()) {
boolean mkVideoDir = videoDir.mkdir();
@@ -163,20 +156,11 @@
//储存下载文件的目录
private static String getDownloadFilePath() {
- if (downloadDir == null) {
- File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Casic");
- if (!parentDir.exists()) {
- boolean mkdir = parentDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "getDownloadFilePath: 创建Casic文件夹");
- }
- }
- downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkDownDir = downloadDir.mkdir();
- if (mkDownDir) {
- Log.d(TAG, "getDownloadFilePath: 创建DownloadFile文件夹");
- }
+ File downloadDir = new File(context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "");
+ if (!downloadDir.exists()) {
+ boolean mkdir = downloadDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getDownloadFilePath: 创建文件夹");
}
}
return downloadDir.toString();
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index f70d101..db004ff 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -511,10 +511,10 @@
* http://111.198.10.15:11409/case/workListPage?isShop=1
*/
@GET("/case/workListPage")
- Observable obtainWorkListPage(@Header("token") String token,
- @Query("isShop") String isShop,
- @Query("limit") int limit,
- @Query("offset") int offset);
+ Observable obtainPackageWorkListPage(@Header("token") String token,
+ @Query("isShop") String isShop,
+ @Query("limit") int limit,
+ @Query("offset") int offset);
/**
* 三包已办
@@ -558,6 +558,16 @@
@Field("applySource") String applySource);
/**
+ * 二级派遣员待办案卷
+ *
+ * http://111.198.10.15:11409/case/workListPage/?offset=1&limit=15
+ */
+ @GET("/case/workListPage")
+ Observable obtainWorkListPage(@Header("token") String token,
+ @Query("limit") int limit,
+ @Query("offset") int offset);
+
+ /**
* 二级派遣员待处理案卷
*
* http://111.198.10.15:11409/case/toProcessListPage/?offset=1&limit=15
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index 32a93a1..2e2cde7 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -549,10 +549,10 @@
/**
* 三包待办
*/
- public static Observable getWorkListResult(String isShop, int offset) {
+ public static Observable getPackageWorkListResult(String isShop, int offset) {
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- return service.obtainWorkListPage(AuthenticationHelper.getToken(), isShop,
+ return service.obtainPackageWorkListPage(AuthenticationHelper.getToken(), isShop,
Constant.PAGE_LIMIT, offset);
}
@@ -591,6 +591,15 @@
}
/**
+ * 二级派遣员待办案卷
+ */
+ public static Observable getWorkListResult(int offset) {
+ Retrofit retrofit = createRetrofit();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.obtainWorkListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset);
+ }
+
+ /**
* 二级派遣员待处理案卷
*/
public static Observable getProcessListResult(int offset) {
diff --git a/app/src/main/res/layout/activity_dept_process.xml b/app/src/main/res/layout/activity_dept_process.xml
deleted file mode 100644
index b097a6e..0000000
--- a/app/src/main/res/layout/activity_dept_process.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f845c47..33ad3a1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -87,9 +87,9 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java
new file mode 100644
index 0000000..a5f4a1e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class DeptTodoModelImpl implements IDeptCaseModel {
+
+ private OnGetCaseListListener listener;
+
+ public DeptTodoModelImpl(OnGetCaseListListener caseListListener) {
+ this.listener = caseListListener;
+ }
+
+ public interface OnGetCaseListListener {
+ void onSuccess(PackageOrDeptBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(int offset) {
+ Observable observable = RetrofitServiceManager.getWorkListResult(offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PackageOrDeptBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
index 4cafc10..e8c76b9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
@@ -25,7 +25,7 @@
@Override
public Subscription sendRetrofitRequest(String isShop, int offset) {
- Observable observable = RetrofitServiceManager.getWorkListResult(isShop, offset);
+ Observable observable = RetrofitServiceManager.getPackageWorkListResult(isShop, offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java
new file mode 100644
index 0000000..eca4ff8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java
@@ -0,0 +1,38 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTodoModelImpl;
+import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
+
+public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener {
+
+ private IDeptTodoOrHandledView view;
+ private DeptTodoModelImpl actionModel;
+
+ public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) {
+ this.view = deptCaseView;
+ actionModel = new DeptTodoModelImpl(this);
+ }
+
+ //二级待办待处理
+ @Override
+ public void onReadyRetrofitRequest(int offset) {
+ addSubscription(actionModel.sendRetrofitRequest(offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(PackageOrDeptBean resultBean) {
+ view.obtainResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
index 5e6fd9c..b11a51a 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
@@ -96,7 +96,7 @@
@Override
protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[1];
+ return Constant.DEPT_PAGE_TITLES[3];
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
index de47420..030843e 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[2];
+ return Constant.DEPT_PAGE_TITLES[4];
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index 3de76c2..d47aa72 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment;
import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment;
import com.casic.dcms.utils.Constant;
import com.google.android.material.tabs.TabLayout;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;
@@ -57,10 +58,11 @@
@Override
public void initData() {
List fragmentList = new ArrayList<>();
+ fragmentList.add(new DeptCaseTodoFragment());//待办任务
fragmentList.add(new DeptCaseProcessFragment());//待处理
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
- fragmentList.add(new DeptCaseHandledFragment());//已处理
fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
deleted file mode 100644
index c751109..0000000
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ /dev/null
@@ -1,440 +0,0 @@
-package com.casic.dcms.ui;
-
-import android.content.Context;
-import android.content.Intent;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.EditText;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import androidx.core.content.ContextCompat;
-import androidx.recyclerview.widget.GridLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.casic.dcms.R;
-import com.casic.dcms.adapter.ImageRecycleViewAdapter;
-import com.casic.dcms.base.BaseCaseActivity;
-import com.casic.dcms.bean.ActionResultBean;
-import com.casic.dcms.bean.CaseDetailBean;
-import com.casic.dcms.bean.CaseNextNodeBean;
-import com.casic.dcms.bean.ProcessPersonBean;
-import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl;
-import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl;
-import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl;
-import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl;
-import com.casic.dcms.mvp.view.ICaseDetailHandleView;
-import com.casic.dcms.mvp.view.ICaseDetailView;
-import com.casic.dcms.mvp.view.ICaseNextNodeView;
-import com.casic.dcms.mvp.view.IHandleProcessView;
-import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
-import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
-import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.ItemDecorationSpace;
-import com.casic.dcms.utils.JzExoMedia;
-import com.casic.dcms.utils.OtherUtils;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.ToastHelper;
-import com.casic.dcms.widgets.AudioPlayerView;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import butterknife.BindView;
-import butterknife.OnClick;
-import cn.jzvd.Jzvd;
-import cn.jzvd.JzvdStd;
-
-public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener,
- ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView {
-
- private Context context = DeptProcessDetailActivity.this;
- @BindView(R.id.caseNumberView)
- TextView caseNumberView;
- @BindView(R.id.caseResourceView)
- TextView caseResourceView;
- @BindView(R.id.caseCreatorView)
- TextView caseCreatorView;
- @BindView(R.id.caseTypeView)
- TextView caseTypeView;
- @BindView(R.id.caseLargeTypeView)
- TextView caseLargeTypeView;
- @BindView(R.id.caseSmallTypeView)
- TextView caseSmallTypeView;
- @BindView(R.id.caseCommunityView)
- TextView caseCommunityView;
- @BindView(R.id.casePlaceView)
- TextView casePlaceView;
- @BindView(R.id.caseSituationView)
- TextView caseSituationView;
- @BindView(R.id.casePicRecyclerView)
- RecyclerView casePicRecyclerView;
- @BindView(R.id.audioPlayerView)
- AudioPlayerView audioPlayerView;
- @BindView(R.id.videoPlayerView)
- JzvdStd videoPlayerView;
- @BindView(R.id.caseHandleRecyclerView)
- RecyclerView caseHandleRecyclerView;
- @BindView(R.id.optTypeView)
- TextView optTypeView;
- @BindView(R.id.casePersonLayout)
- RelativeLayout casePersonLayout;
- @BindView(R.id.personLine)
- View personLine;
- @BindView(R.id.caseHandlePersonView)
- TextView caseHandlePersonView;
- @BindView(R.id.optionEditView)
- EditText optionEditView;
- @BindView(R.id.commonTipsView)
- TextView commonTipsView;
- @BindView(R.id.submitButton)
- QMUIRoundButton submitButton;
-
- private CaseDetailPresenterImpl caseDetailPresenter;
- private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private ProcessPersonPresenterImpl handleProcessPresenter;
- private List personBeans;
- private CaseHandlePresenterImpl caseHandlePresenter;
- private CaseNextNodePresenterImpl nextNodePresenter;
- private String id;
- private String changeState;
- private String taskUserId;
- private String operationKey;
- private List nodeDataBeans;
-
- @Override
- protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[0];
- }
-
- @Override
- public int initLayoutView() {
- return R.layout.activity_dept_process;
- }
-
- @Override
- public void initData() {
- id = getIntent().getStringExtra("id");
- caseDetailPresenter = new CaseDetailPresenterImpl(this);
- caseDetailPresenter.onReadyRetrofitRequest(id);
-
- nextNodePresenter = new CaseNextNodePresenterImpl(this);
- handleProcessPresenter = new ProcessPersonPresenterImpl(this);
- caseHandlePresenter = new CaseHandlePresenterImpl(this);
- }
-
- @Override
- public void initEvent() {
- submitButton.setChangeAlphaWhenPress(true);
- }
-
- @Override
- public void obtainCaseDetailData(CaseDetailBean resultBean) {
- if (resultBean.isSuccess()) {
- this.data = resultBean.getData().get(0);
- caseNumberView.setText(data.getCaseid());
- caseResourceView.setText(data.getSourceName());
- caseCreatorView.setText(data.getCreateUserName());
- caseTypeView.setText(data.getEorcName());
- caseLargeTypeView.setText(data.getCasetypeName());
- caseSmallTypeView.setText(data.getCasetypeDetailName());
- caseCommunityView.setText(data.getCommunityName());
- casePlaceView.setText(StringHelper.filterString(data.getFieldintro()));
- caseSituationView.setText(StringHelper.filterString(data.getDescription()));
-
- String images = data.getFileIdVerify();
- if (!TextUtils.isEmpty(images)) {
- ArrayList urls = new ArrayList<>();
- String[] split = images.split(",");
- for (String s : split) {
- if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
- imageAdapter.setMediaList(urls);
- casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
- casePicRecyclerView.addItemDecoration(new ItemDecorationSpace());
- casePicRecyclerView.setAdapter(imageAdapter);
- //九宫格点击事件
- imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- OtherUtils.showBigImage(context, position, urls);
- }
- });
- imageAdapter.setDeleteView(false);
- }
-
- String audioFile = data.getAudioIdVerify();
- if (!TextUtils.isEmpty(audioFile)) {
- audioPlayerView.setVisibility(View.VISIBLE);
- audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
- }
-
- String videoFile = data.getVideoIdVerify();
- if (!TextUtils.isEmpty(videoFile)) {
- videoPlayerView.setVisibility(View.VISIBLE);
- String videoUrl = StringHelper.appendCompleteURL(videoFile);
- videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class);
- //设置第一帧为封面
- Glide.with(this)
- .setDefaultRequestOptions(new RequestOptions().frame(4000000))
- .load(videoUrl)
- .into(videoPlayerView.posterImageView);
- }
-
- //处理图片
- String handleImages = data.getFileIdProcess();
- if (!TextUtils.isEmpty(handleImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = handleImages.split(",");
- for (String s : split) {
- if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
- imageAdapter.setMediaList(urls);
- caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
- caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace());
- caseHandleRecyclerView.setAdapter(imageAdapter);
- //九宫格点击事件
- imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- OtherUtils.showBigImage(context, position, urls);
- }
- });
- imageAdapter.setDeleteView(false);
- }
-
- //获取处置类型
- nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState()));
- }
- }
-
- @Override
- public void showProgress() {
- OtherUtils.showLoadingDialog(this, "处理中,请稍后");
- }
-
- @Override
- public void hideProgress() {
- OtherUtils.dismissLoadingDialog();
- }
-
- @Override
- public void obtainCaseHandleResult(ActionResultBean resultBean) {
- if (resultBean.isSuccess()) {
- ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
- DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE);
- DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
- finish();
- } else {
- ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
- }
- }
-
- @Override
- public void obtainDataFail() {
- ToastHelper.showToast("操作失败", ToastHelper.ERROR);
- }
-
- @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton})
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.locationMapView:
- Intent intent = new Intent(this, DisplayMapActivity.class);
- intent.putExtra("caseType", data.getEorcName());
- String dataLng = data.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = data.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- startActivity(intent);
- break;
- case R.id.caseOptTypeLayout:
- if (nodeDataBeans != null) {
- if (nodeDataBeans.size() >= 1) {
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
- sheetBuilder.setTitle("操作类型");
- for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) {
- sheetBuilder.addItem(dataBean.getNextOperation());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- optTypeView.setText(tag);
- optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position);
- changeState = String.valueOf(nodeBean.getNextState());
- operationKey = nodeBean.getOperationKey();
-
- if (tag.equals("处置人员")) {
- casePersonLayout.setVisibility(View.VISIBLE);
- personLine.setVisibility(View.VISIBLE);
-
- //获取下级处置人员名单
- handleProcessPresenter.onReadyRetrofitRequest();
- } else {
- casePersonLayout.setVisibility(View.GONE);
- personLine.setVisibility(View.GONE);
- }
- }
- }).build().show();
- }
- }
- break;
- case R.id.casePersonLayout:
- if (personBeans != null) {
- if (personBeans.size() >= 1) {
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
- sheetBuilder.setTitle("处置人员");
- for (ProcessPersonBean.DataBean dataBean : personBeans) {
- sheetBuilder.addItem(dataBean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- caseHandlePersonView.setText(tag);
- caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- taskUserId = personBeans.get(position).getId();
- }
- }).build().show();
- }
- }
- break;
- case R.id.commonTipsLayout:
- new QMUIBottomSheet.BottomListSheetBuilder(this)
- .setTitle("常见用语")
- .addItem("请及时处理")
- .addItem("调查后及时回复")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- commonTipsView.setText(tag);
- commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- optionEditView.setText(tag);
- commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
- }
- }).build().show();
- break;
- case R.id.submitButton:
- submitCase();
- break;
- }
- }
-
- private void submitCase() {
- String optType = optTypeView.getText().toString();
- if (optType.equals("")) {
- ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING);
- return;
- }
- if (optType.equals("处置人员")) {
- //选择处理人员时,必选一个处置人员
- String handlePerson = caseHandlePersonView.getText().toString();
- if (handlePerson.equals("")) {
- ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING);
- return;
- }
- }
- String optionInput = StringHelper.filterString(optionEditView.getText().toString());
- if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) {
- if (TextUtils.isEmpty(optionInput)) {
- ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING);
- return;
- }
- }
- caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
- String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId);
- }
-
- @Override
- public void obtainResultData(ProcessPersonBean resultBean) {
- if (resultBean.isSuccess()) {
- this.personBeans = resultBean.getData();
- if (personBeans.size() == 0) {
- caseHandlePersonView.setText("无处置人员");
- } else {
- ProcessPersonBean.DataBean dataBean = personBeans.get(0);
- taskUserId = dataBean.getId();
- caseHandlePersonView.setText(dataBean.getName());//默认选择第一个
- }
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
- }
- }
-
- @Override
- public void obtainNextNodeData(CaseNextNodeBean resultBean) {
- if (resultBean.isSuccess()) {
- this.nodeDataBeans = resultBean.getData();
- if (nodeDataBeans.size() == 0) {
- optTypeView.setText("无下级流转节点");
- } else {
- CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0);
-
- operationKey = dataBean.getOperationKey();
- changeState = String.valueOf(dataBean.getNextState());
- optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
- }
- optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
- } else {
- ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
- }
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (caseDetailPresenter != null) {
- caseDetailPresenter.disposeRetrofitRequest();
- }
- if (handleProcessPresenter != null) {
- handleProcessPresenter.disposeRetrofitRequest();
- }
- if (caseHandlePresenter != null) {
- caseHandlePresenter.disposeRetrofitRequest();
- }
- if (nextNodePresenter != null) {
- nextNodePresenter.disposeRetrofitRequest();
- }
- if (audioPlayerView != null) {
- audioPlayerView.release();
- }
- }
-
- @Override
- public void onBackPressed() {
- if (Jzvd.backPress()) {
- return;
- }
- super.onBackPressed();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- Jzvd.releaseAllVideos();
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java
new file mode 100644
index 0000000..e4df2b6
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java
@@ -0,0 +1,438 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.ImageRecycleViewAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.bean.CaseDetailBean;
+import com.casic.dcms.bean.CaseNextNodeBean;
+import com.casic.dcms.bean.ProcessPersonBean;
+import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl;
+import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl;
+import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl;
+import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl;
+import com.casic.dcms.mvp.view.ICaseDetailHandleView;
+import com.casic.dcms.mvp.view.ICaseDetailView;
+import com.casic.dcms.mvp.view.ICaseNextNodeView;
+import com.casic.dcms.mvp.view.IHandleProcessView;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.ItemDecorationSpace;
+import com.casic.dcms.utils.JzExoMedia;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.widgets.AudioPlayerView;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+import cn.jzvd.Jzvd;
+import cn.jzvd.JzvdStd;
+
+public class DeptTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView {
+
+ private Context context = this;
+ @BindView(R.id.caseNumberView)
+ TextView caseNumberView;
+ @BindView(R.id.caseResourceView)
+ TextView caseResourceView;
+ @BindView(R.id.caseCreatorView)
+ TextView caseCreatorView;
+ @BindView(R.id.caseTypeView)
+ TextView caseTypeView;
+ @BindView(R.id.caseLargeTypeView)
+ TextView caseLargeTypeView;
+ @BindView(R.id.caseSmallTypeView)
+ TextView caseSmallTypeView;
+ @BindView(R.id.caseCommunityView)
+ TextView caseCommunityView;
+ @BindView(R.id.casePlaceView)
+ TextView casePlaceView;
+ @BindView(R.id.caseSituationView)
+ TextView caseSituationView;
+ @BindView(R.id.casePicRecyclerView)
+ RecyclerView casePicRecyclerView;
+ @BindView(R.id.audioPlayerView)
+ AudioPlayerView audioPlayerView;
+ @BindView(R.id.videoPlayerView)
+ JzvdStd videoPlayerView;
+ @BindView(R.id.caseHandleRecyclerView)
+ RecyclerView caseHandleRecyclerView;
+ @BindView(R.id.optTypeView)
+ TextView optTypeView;
+ @BindView(R.id.casePersonLayout)
+ RelativeLayout casePersonLayout;
+ @BindView(R.id.personLine)
+ View personLine;
+ @BindView(R.id.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.optionEditView)
+ EditText optionEditView;
+ @BindView(R.id.commonTipsView)
+ TextView commonTipsView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+
+ private CaseDetailPresenterImpl caseDetailPresenter;
+ private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private CaseNextNodePresenterImpl nextNodePresenter;
+ private String id;
+ private String title;
+ private String changeState;
+ private String taskUserId;
+ private String operationKey;
+ private List nodeDataBeans;
+
+ @Override
+ protected String setTitleName() {
+ return title;
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_todo;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ title = getIntent().getStringExtra("title");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ handleProcessPresenter = new ProcessPersonPresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @Override
+ public void obtainCaseDetailData(CaseDetailBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.data = resultBean.getData().get(0);
+ caseNumberView.setText(data.getCaseid());
+ caseResourceView.setText(data.getSourceName());
+ caseCreatorView.setText(data.getCreateUserName());
+ caseTypeView.setText(data.getEorcName());
+ caseLargeTypeView.setText(data.getCasetypeName());
+ caseSmallTypeView.setText(data.getCasetypeDetailName());
+ caseCommunityView.setText(data.getCommunityName());
+ casePlaceView.setText(StringHelper.filterString(data.getFieldintro()));
+ caseSituationView.setText(StringHelper.filterString(data.getDescription()));
+
+ String images = data.getFileIdVerify();
+ if (!TextUtils.isEmpty(images)) {
+ ArrayList urls = new ArrayList<>();
+ String[] split = images.split(",");
+ for (String s : split) {
+ if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
+ urls.add(StringHelper.appendCompleteURL(s));
+ }
+ }
+ ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
+ imageAdapter.setMediaList(urls);
+ casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
+ casePicRecyclerView.addItemDecoration(new ItemDecorationSpace());
+ casePicRecyclerView.setAdapter(imageAdapter);
+ //九宫格点击事件
+ imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ OtherUtils.showBigImage(context, position, urls);
+ }
+ });
+ imageAdapter.setDeleteView(false);
+ }
+
+ String audioFile = data.getAudioIdVerify();
+ if (!TextUtils.isEmpty(audioFile)) {
+ audioPlayerView.setVisibility(View.VISIBLE);
+ audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
+ }
+
+ String videoFile = data.getVideoIdVerify();
+ if (!TextUtils.isEmpty(videoFile)) {
+ videoPlayerView.setVisibility(View.VISIBLE);
+ String videoUrl = StringHelper.appendCompleteURL(videoFile);
+ videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class);
+ //设置第一帧为封面
+ Glide.with(this)
+ .setDefaultRequestOptions(new RequestOptions().frame(4000000))
+ .load(videoUrl)
+ .into(videoPlayerView.posterImageView);
+ }
+
+ //处理图片
+ String handleImages = data.getFileIdProcess();
+ if (!TextUtils.isEmpty(handleImages)) {
+ ArrayList urls = new ArrayList<>();
+ String[] split = handleImages.split(",");
+ for (String s : split) {
+ if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
+ urls.add(StringHelper.appendCompleteURL(s));
+ }
+ }
+ ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
+ imageAdapter.setMediaList(urls);
+ caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
+ caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace());
+ caseHandleRecyclerView.setAdapter(imageAdapter);
+ //九宫格点击事件
+ imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ OtherUtils.showBigImage(context, position, urls);
+ }
+ });
+ imageAdapter.setDeleteView(false);
+ }
+
+ //获取处置类型
+ nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState()));
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "处理中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainCaseHandleResult(ActionResultBean resultBean) {
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
+ DeptCaseTodoFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.locationMapView:
+ Intent intent = new Intent(this, DisplayMapActivity.class);
+ intent.putExtra("caseType", data.getEorcName());
+ String dataLng = data.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = data.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ break;
+ case R.id.caseOptTypeLayout:
+ if (nodeDataBeans != null) {
+ if (nodeDataBeans.size() >= 1) {
+ QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
+ sheetBuilder.setTitle("操作类型");
+ for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) {
+ sheetBuilder.addItem(dataBean.getNextOperation());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ optTypeView.setText(tag);
+ optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position);
+ changeState = String.valueOf(nodeBean.getNextState());
+ operationKey = nodeBean.getOperationKey();
+
+ if (tag.equals("返回处理") || tag.equals("处置人员")) {
+ casePersonLayout.setVisibility(View.VISIBLE);
+ personLine.setVisibility(View.VISIBLE);
+
+ //获取下级处置人员名单
+ handleProcessPresenter.onReadyRetrofitRequest();
+ } else {
+ casePersonLayout.setVisibility(View.GONE);
+ personLine.setVisibility(View.GONE);
+ }
+ }
+ }).build().show();
+ }
+ }
+ break;
+ case R.id.casePersonLayout:
+ if (personBeans != null) {
+ if (personBeans.size() >= 1) {
+ QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
+ sheetBuilder.setTitle("处置人员");
+ for (ProcessPersonBean.DataBean dataBean : personBeans) {
+ sheetBuilder.addItem(dataBean.getName());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ caseHandlePersonView.setText(tag);
+ caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ taskUserId = personBeans.get(position).getId();
+ }
+ }).build().show();
+ }
+ }
+ break;
+ case R.id.commonTipsLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("常见用语")
+ .addItem("请及时处理")
+ .addItem("调查后及时回复")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ commonTipsView.setText(tag);
+ commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ optionEditView.setText(tag);
+ commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ String optType = optTypeView.getText().toString();
+ if (optType.equals("")) {
+ ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING);
+ return;
+ }
+ if (optType.equals("处置人员") || optType.equals("返回处理")) {
+ //选择处理人员时,必选一个处置人员
+ String handlePerson = caseHandlePersonView.getText().toString();
+ if (handlePerson.equals("")) {
+ ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING);
+ return;
+ }
+ }
+ String optionInput = StringHelper.filterString(optionEditView.getText().toString());
+ if (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId);
+ break;
+ }
+ }
+
+ @Override
+ public void obtainResultData(ProcessPersonBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.personBeans = resultBean.getData();
+ if (personBeans.size() == 0) {
+ caseHandlePersonView.setText("无处置人员");
+ } else {
+ ProcessPersonBean.DataBean dataBean = personBeans.get(0);
+ taskUserId = dataBean.getId();
+ caseHandlePersonView.setText(dataBean.getName());//默认选择第一个
+ }
+ caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ }
+ }
+
+ @Override
+ public void obtainNextNodeData(CaseNextNodeBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.nodeDataBeans = resultBean.getData();
+ if (nodeDataBeans.size() == 0) {
+ optTypeView.setText("无下级流转节点");
+ } else {
+ CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0);
+
+ operationKey = dataBean.getOperationKey();
+ changeState = String.valueOf(dataBean.getNextState());
+ optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
+ }
+ optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ } else {
+ ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (handleProcessPresenter != null) {
+ handleProcessPresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (audioPlayerView != null) {
+ audioPlayerView.release();
+ }
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (Jzvd.backPress()) {
+ return;
+ }
+ super.onBackPressed();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ Jzvd.releaseAllVideos();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
index 12f5b4d..7727898 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
@@ -16,7 +16,7 @@
import com.casic.dcms.bean.PackageOrDeptBean;
import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl;
import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
-import com.casic.dcms.ui.DeptProcessDetailActivity;
+import com.casic.dcms.ui.DeptTodoDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -125,7 +125,8 @@
fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
- Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class);
+ Intent intent = new Intent(fragment.context, DeptTodoDetailActivity.class);
+ intent.putExtra("title", Constant.DEPT_PAGE_TITLES[1]);
intent.putExtra("id", fragment.dataBeans.get(position).getId());
fragment.startActivity(intent);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java
new file mode 100644
index 0000000..7bc167b
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java
@@ -0,0 +1,170 @@
+package com.casic.dcms.ui.fragment.dept;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.DeptTodoOrHandledAdapter;
+import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl;
+import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
+import com.casic.dcms.ui.DeptTodoDetailActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.ToastHelper;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView {
+
+ private Context context;
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.refreshLayout)
+ SmartRefreshLayout refreshLayout;
+ @BindView(R.id.caseRecyclerView)
+ RecyclerView caseRecyclerView;
+
+ private DeptTodoPresenterImpl deptTodoPresenter;
+ private int pageIndex = 1;
+ private List dataBeans = new ArrayList<>();
+ private boolean isRefresh, isLoadMore = false;
+ private static WeakReferenceHandler weakReferenceHandler;
+ private DeptTodoOrHandledAdapter adapter;
+
+ @Override
+ protected int initLayoutView() {
+ return R.layout.fragment_dept_case;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+
+ @Override
+ protected void initData() {
+ deptTodoPresenter = new DeptTodoPresenterImpl(this);
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ }
+
+ @Override
+ protected void initEvent() {
+ refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+ }
+ });
+ refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+ }
+ });
+ }
+
+ public static void sendEmptyMessage(int what) {
+ if (weakReferenceHandler == null) {
+ return;
+ }
+ weakReferenceHandler.sendEmptyMessage(what);
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(DeptCaseTodoFragment fragment) {
+ reference = new WeakReference<>(fragment);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ DeptCaseTodoFragment fragment = reference.get();
+ if (msg.what == Constant.DEPT_DONE) {
+ fragment.isRefresh = true;
+ //刷新之后页码重置
+ fragment.pageIndex = 1;
+ fragment.deptTodoPresenter.onReadyRetrofitRequest(fragment.pageIndex);
+ } else if (msg.what == 20210630) {
+ if (fragment.isRefresh || fragment.isLoadMore) {
+ fragment.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (fragment.dataBeans.size() == 0) {
+ fragment.emptyView.show("您暂时没有待办案卷", null);
+ } else {
+ fragment.emptyView.hide();
+ fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans);
+ fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context));
+ fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL));
+ fragment.caseRecyclerView.setAdapter(fragment.adapter);
+ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(fragment.context, DeptTodoDetailActivity.class);
+ intent.putExtra("title", Constant.DEPT_PAGE_TITLES[0]);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void obtainResult(PackageOrDeptBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO);
+ }
+ dataBeans.addAll(dataRows);
+ refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210630);
+ }
+ }
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ if (deptTodoPresenter != null) {
+ deptTodoPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index e8cd7d5..d207d3d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -15,7 +15,7 @@
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE};
public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"};
- public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"};
+ public static final String[] DEPT_PAGE_TITLES = {"待办任务", "待处理", "已办案卷", "部门调整批示", "部门授权审核", "二级缓办待处理", "二级延期待处理"};
public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"};
public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"};
public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"};
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 6c69999..63abb77 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -2,6 +2,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
+import android.os.Environment;
import android.util.Log;
import com.casic.dcms.utils.callback.IDownloadListener;
@@ -30,7 +31,6 @@
private static File audioDir;
private static File imageDir;
private static File waterImageDir;
- private static File downloadDir;
private static File videoDir;
private static int index = 1;
@@ -64,13 +64,6 @@
Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
}
}
- downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkDownDir = downloadDir.mkdir();
- if (mkDownDir) {
- Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
- }
- }
videoDir = new File(parentDir, "CompressVideoFile");
if (!videoDir.exists()) {
boolean mkVideoDir = videoDir.mkdir();
@@ -163,20 +156,11 @@
//储存下载文件的目录
private static String getDownloadFilePath() {
- if (downloadDir == null) {
- File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Casic");
- if (!parentDir.exists()) {
- boolean mkdir = parentDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "getDownloadFilePath: 创建Casic文件夹");
- }
- }
- downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkDownDir = downloadDir.mkdir();
- if (mkDownDir) {
- Log.d(TAG, "getDownloadFilePath: 创建DownloadFile文件夹");
- }
+ File downloadDir = new File(context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "");
+ if (!downloadDir.exists()) {
+ boolean mkdir = downloadDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getDownloadFilePath: 创建文件夹");
}
}
return downloadDir.toString();
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index f70d101..db004ff 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -511,10 +511,10 @@
* http://111.198.10.15:11409/case/workListPage?isShop=1
*/
@GET("/case/workListPage")
- Observable obtainWorkListPage(@Header("token") String token,
- @Query("isShop") String isShop,
- @Query("limit") int limit,
- @Query("offset") int offset);
+ Observable obtainPackageWorkListPage(@Header("token") String token,
+ @Query("isShop") String isShop,
+ @Query("limit") int limit,
+ @Query("offset") int offset);
/**
* 三包已办
@@ -558,6 +558,16 @@
@Field("applySource") String applySource);
/**
+ * 二级派遣员待办案卷
+ *
+ * http://111.198.10.15:11409/case/workListPage/?offset=1&limit=15
+ */
+ @GET("/case/workListPage")
+ Observable obtainWorkListPage(@Header("token") String token,
+ @Query("limit") int limit,
+ @Query("offset") int offset);
+
+ /**
* 二级派遣员待处理案卷
*
* http://111.198.10.15:11409/case/toProcessListPage/?offset=1&limit=15
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index 32a93a1..2e2cde7 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -549,10 +549,10 @@
/**
* 三包待办
*/
- public static Observable getWorkListResult(String isShop, int offset) {
+ public static Observable getPackageWorkListResult(String isShop, int offset) {
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- return service.obtainWorkListPage(AuthenticationHelper.getToken(), isShop,
+ return service.obtainPackageWorkListPage(AuthenticationHelper.getToken(), isShop,
Constant.PAGE_LIMIT, offset);
}
@@ -591,6 +591,15 @@
}
/**
+ * 二级派遣员待办案卷
+ */
+ public static Observable getWorkListResult(int offset) {
+ Retrofit retrofit = createRetrofit();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.obtainWorkListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset);
+ }
+
+ /**
* 二级派遣员待处理案卷
*/
public static Observable getProcessListResult(int offset) {
diff --git a/app/src/main/res/layout/activity_dept_process.xml b/app/src/main/res/layout/activity_dept_process.xml
deleted file mode 100644
index b097a6e..0000000
--- a/app/src/main/res/layout/activity_dept_process.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml
new file mode 100644
index 0000000..b097a6e
--- /dev/null
+++ b/app/src/main/res/layout/activity_dept_todo.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f845c47..33ad3a1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -87,9 +87,9 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java
new file mode 100644
index 0000000..a5f4a1e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class DeptTodoModelImpl implements IDeptCaseModel {
+
+ private OnGetCaseListListener listener;
+
+ public DeptTodoModelImpl(OnGetCaseListListener caseListListener) {
+ this.listener = caseListListener;
+ }
+
+ public interface OnGetCaseListListener {
+ void onSuccess(PackageOrDeptBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(int offset) {
+ Observable observable = RetrofitServiceManager.getWorkListResult(offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PackageOrDeptBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
index 4cafc10..e8c76b9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
@@ -25,7 +25,7 @@
@Override
public Subscription sendRetrofitRequest(String isShop, int offset) {
- Observable observable = RetrofitServiceManager.getWorkListResult(isShop, offset);
+ Observable observable = RetrofitServiceManager.getPackageWorkListResult(isShop, offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java
new file mode 100644
index 0000000..eca4ff8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java
@@ -0,0 +1,38 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTodoModelImpl;
+import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
+
+public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener {
+
+ private IDeptTodoOrHandledView view;
+ private DeptTodoModelImpl actionModel;
+
+ public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) {
+ this.view = deptCaseView;
+ actionModel = new DeptTodoModelImpl(this);
+ }
+
+ //二级待办待处理
+ @Override
+ public void onReadyRetrofitRequest(int offset) {
+ addSubscription(actionModel.sendRetrofitRequest(offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(PackageOrDeptBean resultBean) {
+ view.obtainResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
index 5e6fd9c..b11a51a 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
@@ -96,7 +96,7 @@
@Override
protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[1];
+ return Constant.DEPT_PAGE_TITLES[3];
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
index de47420..030843e 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[2];
+ return Constant.DEPT_PAGE_TITLES[4];
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index 3de76c2..d47aa72 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment;
import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment;
import com.casic.dcms.utils.Constant;
import com.google.android.material.tabs.TabLayout;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;
@@ -57,10 +58,11 @@
@Override
public void initData() {
List fragmentList = new ArrayList<>();
+ fragmentList.add(new DeptCaseTodoFragment());//待办任务
fragmentList.add(new DeptCaseProcessFragment());//待处理
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
- fragmentList.add(new DeptCaseHandledFragment());//已处理
fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
deleted file mode 100644
index c751109..0000000
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ /dev/null
@@ -1,440 +0,0 @@
-package com.casic.dcms.ui;
-
-import android.content.Context;
-import android.content.Intent;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.EditText;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import androidx.core.content.ContextCompat;
-import androidx.recyclerview.widget.GridLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.casic.dcms.R;
-import com.casic.dcms.adapter.ImageRecycleViewAdapter;
-import com.casic.dcms.base.BaseCaseActivity;
-import com.casic.dcms.bean.ActionResultBean;
-import com.casic.dcms.bean.CaseDetailBean;
-import com.casic.dcms.bean.CaseNextNodeBean;
-import com.casic.dcms.bean.ProcessPersonBean;
-import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl;
-import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl;
-import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl;
-import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl;
-import com.casic.dcms.mvp.view.ICaseDetailHandleView;
-import com.casic.dcms.mvp.view.ICaseDetailView;
-import com.casic.dcms.mvp.view.ICaseNextNodeView;
-import com.casic.dcms.mvp.view.IHandleProcessView;
-import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
-import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
-import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.ItemDecorationSpace;
-import com.casic.dcms.utils.JzExoMedia;
-import com.casic.dcms.utils.OtherUtils;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.ToastHelper;
-import com.casic.dcms.widgets.AudioPlayerView;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import butterknife.BindView;
-import butterknife.OnClick;
-import cn.jzvd.Jzvd;
-import cn.jzvd.JzvdStd;
-
-public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener,
- ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView {
-
- private Context context = DeptProcessDetailActivity.this;
- @BindView(R.id.caseNumberView)
- TextView caseNumberView;
- @BindView(R.id.caseResourceView)
- TextView caseResourceView;
- @BindView(R.id.caseCreatorView)
- TextView caseCreatorView;
- @BindView(R.id.caseTypeView)
- TextView caseTypeView;
- @BindView(R.id.caseLargeTypeView)
- TextView caseLargeTypeView;
- @BindView(R.id.caseSmallTypeView)
- TextView caseSmallTypeView;
- @BindView(R.id.caseCommunityView)
- TextView caseCommunityView;
- @BindView(R.id.casePlaceView)
- TextView casePlaceView;
- @BindView(R.id.caseSituationView)
- TextView caseSituationView;
- @BindView(R.id.casePicRecyclerView)
- RecyclerView casePicRecyclerView;
- @BindView(R.id.audioPlayerView)
- AudioPlayerView audioPlayerView;
- @BindView(R.id.videoPlayerView)
- JzvdStd videoPlayerView;
- @BindView(R.id.caseHandleRecyclerView)
- RecyclerView caseHandleRecyclerView;
- @BindView(R.id.optTypeView)
- TextView optTypeView;
- @BindView(R.id.casePersonLayout)
- RelativeLayout casePersonLayout;
- @BindView(R.id.personLine)
- View personLine;
- @BindView(R.id.caseHandlePersonView)
- TextView caseHandlePersonView;
- @BindView(R.id.optionEditView)
- EditText optionEditView;
- @BindView(R.id.commonTipsView)
- TextView commonTipsView;
- @BindView(R.id.submitButton)
- QMUIRoundButton submitButton;
-
- private CaseDetailPresenterImpl caseDetailPresenter;
- private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private ProcessPersonPresenterImpl handleProcessPresenter;
- private List personBeans;
- private CaseHandlePresenterImpl caseHandlePresenter;
- private CaseNextNodePresenterImpl nextNodePresenter;
- private String id;
- private String changeState;
- private String taskUserId;
- private String operationKey;
- private List nodeDataBeans;
-
- @Override
- protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[0];
- }
-
- @Override
- public int initLayoutView() {
- return R.layout.activity_dept_process;
- }
-
- @Override
- public void initData() {
- id = getIntent().getStringExtra("id");
- caseDetailPresenter = new CaseDetailPresenterImpl(this);
- caseDetailPresenter.onReadyRetrofitRequest(id);
-
- nextNodePresenter = new CaseNextNodePresenterImpl(this);
- handleProcessPresenter = new ProcessPersonPresenterImpl(this);
- caseHandlePresenter = new CaseHandlePresenterImpl(this);
- }
-
- @Override
- public void initEvent() {
- submitButton.setChangeAlphaWhenPress(true);
- }
-
- @Override
- public void obtainCaseDetailData(CaseDetailBean resultBean) {
- if (resultBean.isSuccess()) {
- this.data = resultBean.getData().get(0);
- caseNumberView.setText(data.getCaseid());
- caseResourceView.setText(data.getSourceName());
- caseCreatorView.setText(data.getCreateUserName());
- caseTypeView.setText(data.getEorcName());
- caseLargeTypeView.setText(data.getCasetypeName());
- caseSmallTypeView.setText(data.getCasetypeDetailName());
- caseCommunityView.setText(data.getCommunityName());
- casePlaceView.setText(StringHelper.filterString(data.getFieldintro()));
- caseSituationView.setText(StringHelper.filterString(data.getDescription()));
-
- String images = data.getFileIdVerify();
- if (!TextUtils.isEmpty(images)) {
- ArrayList urls = new ArrayList<>();
- String[] split = images.split(",");
- for (String s : split) {
- if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
- imageAdapter.setMediaList(urls);
- casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
- casePicRecyclerView.addItemDecoration(new ItemDecorationSpace());
- casePicRecyclerView.setAdapter(imageAdapter);
- //九宫格点击事件
- imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- OtherUtils.showBigImage(context, position, urls);
- }
- });
- imageAdapter.setDeleteView(false);
- }
-
- String audioFile = data.getAudioIdVerify();
- if (!TextUtils.isEmpty(audioFile)) {
- audioPlayerView.setVisibility(View.VISIBLE);
- audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
- }
-
- String videoFile = data.getVideoIdVerify();
- if (!TextUtils.isEmpty(videoFile)) {
- videoPlayerView.setVisibility(View.VISIBLE);
- String videoUrl = StringHelper.appendCompleteURL(videoFile);
- videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class);
- //设置第一帧为封面
- Glide.with(this)
- .setDefaultRequestOptions(new RequestOptions().frame(4000000))
- .load(videoUrl)
- .into(videoPlayerView.posterImageView);
- }
-
- //处理图片
- String handleImages = data.getFileIdProcess();
- if (!TextUtils.isEmpty(handleImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = handleImages.split(",");
- for (String s : split) {
- if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
- imageAdapter.setMediaList(urls);
- caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
- caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace());
- caseHandleRecyclerView.setAdapter(imageAdapter);
- //九宫格点击事件
- imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- OtherUtils.showBigImage(context, position, urls);
- }
- });
- imageAdapter.setDeleteView(false);
- }
-
- //获取处置类型
- nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState()));
- }
- }
-
- @Override
- public void showProgress() {
- OtherUtils.showLoadingDialog(this, "处理中,请稍后");
- }
-
- @Override
- public void hideProgress() {
- OtherUtils.dismissLoadingDialog();
- }
-
- @Override
- public void obtainCaseHandleResult(ActionResultBean resultBean) {
- if (resultBean.isSuccess()) {
- ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
- DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE);
- DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
- finish();
- } else {
- ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
- }
- }
-
- @Override
- public void obtainDataFail() {
- ToastHelper.showToast("操作失败", ToastHelper.ERROR);
- }
-
- @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton})
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.locationMapView:
- Intent intent = new Intent(this, DisplayMapActivity.class);
- intent.putExtra("caseType", data.getEorcName());
- String dataLng = data.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = data.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- startActivity(intent);
- break;
- case R.id.caseOptTypeLayout:
- if (nodeDataBeans != null) {
- if (nodeDataBeans.size() >= 1) {
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
- sheetBuilder.setTitle("操作类型");
- for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) {
- sheetBuilder.addItem(dataBean.getNextOperation());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- optTypeView.setText(tag);
- optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position);
- changeState = String.valueOf(nodeBean.getNextState());
- operationKey = nodeBean.getOperationKey();
-
- if (tag.equals("处置人员")) {
- casePersonLayout.setVisibility(View.VISIBLE);
- personLine.setVisibility(View.VISIBLE);
-
- //获取下级处置人员名单
- handleProcessPresenter.onReadyRetrofitRequest();
- } else {
- casePersonLayout.setVisibility(View.GONE);
- personLine.setVisibility(View.GONE);
- }
- }
- }).build().show();
- }
- }
- break;
- case R.id.casePersonLayout:
- if (personBeans != null) {
- if (personBeans.size() >= 1) {
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
- sheetBuilder.setTitle("处置人员");
- for (ProcessPersonBean.DataBean dataBean : personBeans) {
- sheetBuilder.addItem(dataBean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- caseHandlePersonView.setText(tag);
- caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- taskUserId = personBeans.get(position).getId();
- }
- }).build().show();
- }
- }
- break;
- case R.id.commonTipsLayout:
- new QMUIBottomSheet.BottomListSheetBuilder(this)
- .setTitle("常见用语")
- .addItem("请及时处理")
- .addItem("调查后及时回复")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- commonTipsView.setText(tag);
- commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- optionEditView.setText(tag);
- commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
- }
- }).build().show();
- break;
- case R.id.submitButton:
- submitCase();
- break;
- }
- }
-
- private void submitCase() {
- String optType = optTypeView.getText().toString();
- if (optType.equals("")) {
- ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING);
- return;
- }
- if (optType.equals("处置人员")) {
- //选择处理人员时,必选一个处置人员
- String handlePerson = caseHandlePersonView.getText().toString();
- if (handlePerson.equals("")) {
- ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING);
- return;
- }
- }
- String optionInput = StringHelper.filterString(optionEditView.getText().toString());
- if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) {
- if (TextUtils.isEmpty(optionInput)) {
- ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING);
- return;
- }
- }
- caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
- String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId);
- }
-
- @Override
- public void obtainResultData(ProcessPersonBean resultBean) {
- if (resultBean.isSuccess()) {
- this.personBeans = resultBean.getData();
- if (personBeans.size() == 0) {
- caseHandlePersonView.setText("无处置人员");
- } else {
- ProcessPersonBean.DataBean dataBean = personBeans.get(0);
- taskUserId = dataBean.getId();
- caseHandlePersonView.setText(dataBean.getName());//默认选择第一个
- }
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
- }
- }
-
- @Override
- public void obtainNextNodeData(CaseNextNodeBean resultBean) {
- if (resultBean.isSuccess()) {
- this.nodeDataBeans = resultBean.getData();
- if (nodeDataBeans.size() == 0) {
- optTypeView.setText("无下级流转节点");
- } else {
- CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0);
-
- operationKey = dataBean.getOperationKey();
- changeState = String.valueOf(dataBean.getNextState());
- optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
- }
- optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
- } else {
- ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
- }
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (caseDetailPresenter != null) {
- caseDetailPresenter.disposeRetrofitRequest();
- }
- if (handleProcessPresenter != null) {
- handleProcessPresenter.disposeRetrofitRequest();
- }
- if (caseHandlePresenter != null) {
- caseHandlePresenter.disposeRetrofitRequest();
- }
- if (nextNodePresenter != null) {
- nextNodePresenter.disposeRetrofitRequest();
- }
- if (audioPlayerView != null) {
- audioPlayerView.release();
- }
- }
-
- @Override
- public void onBackPressed() {
- if (Jzvd.backPress()) {
- return;
- }
- super.onBackPressed();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- Jzvd.releaseAllVideos();
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java
new file mode 100644
index 0000000..e4df2b6
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java
@@ -0,0 +1,438 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.ImageRecycleViewAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.bean.CaseDetailBean;
+import com.casic.dcms.bean.CaseNextNodeBean;
+import com.casic.dcms.bean.ProcessPersonBean;
+import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl;
+import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl;
+import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl;
+import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl;
+import com.casic.dcms.mvp.view.ICaseDetailHandleView;
+import com.casic.dcms.mvp.view.ICaseDetailView;
+import com.casic.dcms.mvp.view.ICaseNextNodeView;
+import com.casic.dcms.mvp.view.IHandleProcessView;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.ItemDecorationSpace;
+import com.casic.dcms.utils.JzExoMedia;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.widgets.AudioPlayerView;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+import cn.jzvd.Jzvd;
+import cn.jzvd.JzvdStd;
+
+public class DeptTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView {
+
+ private Context context = this;
+ @BindView(R.id.caseNumberView)
+ TextView caseNumberView;
+ @BindView(R.id.caseResourceView)
+ TextView caseResourceView;
+ @BindView(R.id.caseCreatorView)
+ TextView caseCreatorView;
+ @BindView(R.id.caseTypeView)
+ TextView caseTypeView;
+ @BindView(R.id.caseLargeTypeView)
+ TextView caseLargeTypeView;
+ @BindView(R.id.caseSmallTypeView)
+ TextView caseSmallTypeView;
+ @BindView(R.id.caseCommunityView)
+ TextView caseCommunityView;
+ @BindView(R.id.casePlaceView)
+ TextView casePlaceView;
+ @BindView(R.id.caseSituationView)
+ TextView caseSituationView;
+ @BindView(R.id.casePicRecyclerView)
+ RecyclerView casePicRecyclerView;
+ @BindView(R.id.audioPlayerView)
+ AudioPlayerView audioPlayerView;
+ @BindView(R.id.videoPlayerView)
+ JzvdStd videoPlayerView;
+ @BindView(R.id.caseHandleRecyclerView)
+ RecyclerView caseHandleRecyclerView;
+ @BindView(R.id.optTypeView)
+ TextView optTypeView;
+ @BindView(R.id.casePersonLayout)
+ RelativeLayout casePersonLayout;
+ @BindView(R.id.personLine)
+ View personLine;
+ @BindView(R.id.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.optionEditView)
+ EditText optionEditView;
+ @BindView(R.id.commonTipsView)
+ TextView commonTipsView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+
+ private CaseDetailPresenterImpl caseDetailPresenter;
+ private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private CaseNextNodePresenterImpl nextNodePresenter;
+ private String id;
+ private String title;
+ private String changeState;
+ private String taskUserId;
+ private String operationKey;
+ private List nodeDataBeans;
+
+ @Override
+ protected String setTitleName() {
+ return title;
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_todo;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ title = getIntent().getStringExtra("title");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ handleProcessPresenter = new ProcessPersonPresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @Override
+ public void obtainCaseDetailData(CaseDetailBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.data = resultBean.getData().get(0);
+ caseNumberView.setText(data.getCaseid());
+ caseResourceView.setText(data.getSourceName());
+ caseCreatorView.setText(data.getCreateUserName());
+ caseTypeView.setText(data.getEorcName());
+ caseLargeTypeView.setText(data.getCasetypeName());
+ caseSmallTypeView.setText(data.getCasetypeDetailName());
+ caseCommunityView.setText(data.getCommunityName());
+ casePlaceView.setText(StringHelper.filterString(data.getFieldintro()));
+ caseSituationView.setText(StringHelper.filterString(data.getDescription()));
+
+ String images = data.getFileIdVerify();
+ if (!TextUtils.isEmpty(images)) {
+ ArrayList urls = new ArrayList<>();
+ String[] split = images.split(",");
+ for (String s : split) {
+ if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
+ urls.add(StringHelper.appendCompleteURL(s));
+ }
+ }
+ ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
+ imageAdapter.setMediaList(urls);
+ casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
+ casePicRecyclerView.addItemDecoration(new ItemDecorationSpace());
+ casePicRecyclerView.setAdapter(imageAdapter);
+ //九宫格点击事件
+ imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ OtherUtils.showBigImage(context, position, urls);
+ }
+ });
+ imageAdapter.setDeleteView(false);
+ }
+
+ String audioFile = data.getAudioIdVerify();
+ if (!TextUtils.isEmpty(audioFile)) {
+ audioPlayerView.setVisibility(View.VISIBLE);
+ audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
+ }
+
+ String videoFile = data.getVideoIdVerify();
+ if (!TextUtils.isEmpty(videoFile)) {
+ videoPlayerView.setVisibility(View.VISIBLE);
+ String videoUrl = StringHelper.appendCompleteURL(videoFile);
+ videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class);
+ //设置第一帧为封面
+ Glide.with(this)
+ .setDefaultRequestOptions(new RequestOptions().frame(4000000))
+ .load(videoUrl)
+ .into(videoPlayerView.posterImageView);
+ }
+
+ //处理图片
+ String handleImages = data.getFileIdProcess();
+ if (!TextUtils.isEmpty(handleImages)) {
+ ArrayList urls = new ArrayList<>();
+ String[] split = handleImages.split(",");
+ for (String s : split) {
+ if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
+ urls.add(StringHelper.appendCompleteURL(s));
+ }
+ }
+ ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
+ imageAdapter.setMediaList(urls);
+ caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
+ caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace());
+ caseHandleRecyclerView.setAdapter(imageAdapter);
+ //九宫格点击事件
+ imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ OtherUtils.showBigImage(context, position, urls);
+ }
+ });
+ imageAdapter.setDeleteView(false);
+ }
+
+ //获取处置类型
+ nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState()));
+ }
+ }
+
+ @Override
+ public void showProgress() {
+ OtherUtils.showLoadingDialog(this, "处理中,请稍后");
+ }
+
+ @Override
+ public void hideProgress() {
+ OtherUtils.dismissLoadingDialog();
+ }
+
+ @Override
+ public void obtainCaseHandleResult(ActionResultBean resultBean) {
+ if (resultBean.isSuccess()) {
+ ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
+ DeptCaseTodoFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.locationMapView:
+ Intent intent = new Intent(this, DisplayMapActivity.class);
+ intent.putExtra("caseType", data.getEorcName());
+ String dataLng = data.getLng();
+ if (TextUtils.isEmpty(dataLng)) {
+ ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lng", Double.parseDouble(dataLng));
+ String dataLat = data.getLat();
+ if (TextUtils.isEmpty(dataLat)) {
+ ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR);
+ return;
+ }
+ intent.putExtra("lat", Double.parseDouble(dataLat));
+ startActivity(intent);
+ break;
+ case R.id.caseOptTypeLayout:
+ if (nodeDataBeans != null) {
+ if (nodeDataBeans.size() >= 1) {
+ QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
+ sheetBuilder.setTitle("操作类型");
+ for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) {
+ sheetBuilder.addItem(dataBean.getNextOperation());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ optTypeView.setText(tag);
+ optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position);
+ changeState = String.valueOf(nodeBean.getNextState());
+ operationKey = nodeBean.getOperationKey();
+
+ if (tag.equals("返回处理") || tag.equals("处置人员")) {
+ casePersonLayout.setVisibility(View.VISIBLE);
+ personLine.setVisibility(View.VISIBLE);
+
+ //获取下级处置人员名单
+ handleProcessPresenter.onReadyRetrofitRequest();
+ } else {
+ casePersonLayout.setVisibility(View.GONE);
+ personLine.setVisibility(View.GONE);
+ }
+ }
+ }).build().show();
+ }
+ }
+ break;
+ case R.id.casePersonLayout:
+ if (personBeans != null) {
+ if (personBeans.size() >= 1) {
+ QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
+ sheetBuilder.setTitle("处置人员");
+ for (ProcessPersonBean.DataBean dataBean : personBeans) {
+ sheetBuilder.addItem(dataBean.getName());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ caseHandlePersonView.setText(tag);
+ caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ taskUserId = personBeans.get(position).getId();
+ }
+ }).build().show();
+ }
+ }
+ break;
+ case R.id.commonTipsLayout:
+ new QMUIBottomSheet.BottomListSheetBuilder(this)
+ .setTitle("常见用语")
+ .addItem("请及时处理")
+ .addItem("调查后及时回复")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ commonTipsView.setText(tag);
+ commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+
+ optionEditView.setText(tag);
+ commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
+ }
+ }).build().show();
+ break;
+ case R.id.submitButton:
+ String optType = optTypeView.getText().toString();
+ if (optType.equals("")) {
+ ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING);
+ return;
+ }
+ if (optType.equals("处置人员") || optType.equals("返回处理")) {
+ //选择处理人员时,必选一个处置人员
+ String handlePerson = caseHandlePersonView.getText().toString();
+ if (handlePerson.equals("")) {
+ ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING);
+ return;
+ }
+ }
+ String optionInput = StringHelper.filterString(optionEditView.getText().toString());
+ if (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId);
+ break;
+ }
+ }
+
+ @Override
+ public void obtainResultData(ProcessPersonBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.personBeans = resultBean.getData();
+ if (personBeans.size() == 0) {
+ caseHandlePersonView.setText("无处置人员");
+ } else {
+ ProcessPersonBean.DataBean dataBean = personBeans.get(0);
+ taskUserId = dataBean.getId();
+ caseHandlePersonView.setText(dataBean.getName());//默认选择第一个
+ }
+ caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ }
+ }
+
+ @Override
+ public void obtainNextNodeData(CaseNextNodeBean resultBean) {
+ if (resultBean.isSuccess()) {
+ this.nodeDataBeans = resultBean.getData();
+ if (nodeDataBeans.size() == 0) {
+ optTypeView.setText("无下级流转节点");
+ } else {
+ CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0);
+
+ operationKey = dataBean.getOperationKey();
+ changeState = String.valueOf(dataBean.getNextState());
+ optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
+ }
+ optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ } else {
+ ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (handleProcessPresenter != null) {
+ handleProcessPresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (audioPlayerView != null) {
+ audioPlayerView.release();
+ }
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (Jzvd.backPress()) {
+ return;
+ }
+ super.onBackPressed();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ Jzvd.releaseAllVideos();
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
index 12f5b4d..7727898 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java
@@ -16,7 +16,7 @@
import com.casic.dcms.bean.PackageOrDeptBean;
import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl;
import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
-import com.casic.dcms.ui.DeptProcessDetailActivity;
+import com.casic.dcms.ui.DeptTodoDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -125,7 +125,8 @@
fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
- Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class);
+ Intent intent = new Intent(fragment.context, DeptTodoDetailActivity.class);
+ intent.putExtra("title", Constant.DEPT_PAGE_TITLES[1]);
intent.putExtra("id", fragment.dataBeans.get(position).getId());
fragment.startActivity(intent);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java
new file mode 100644
index 0000000..7bc167b
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java
@@ -0,0 +1,170 @@
+package com.casic.dcms.ui.fragment.dept;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.DeptTodoOrHandledAdapter;
+import com.casic.dcms.base.BaseFragment;
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl;
+import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
+import com.casic.dcms.ui.DeptTodoDetailActivity;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.ToastHelper;
+import com.qmuiteam.qmui.widget.QMUIEmptyView;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView {
+
+ private Context context;
+ @BindView(R.id.emptyView)
+ QMUIEmptyView emptyView;
+ @BindView(R.id.refreshLayout)
+ SmartRefreshLayout refreshLayout;
+ @BindView(R.id.caseRecyclerView)
+ RecyclerView caseRecyclerView;
+
+ private DeptTodoPresenterImpl deptTodoPresenter;
+ private int pageIndex = 1;
+ private List dataBeans = new ArrayList<>();
+ private boolean isRefresh, isLoadMore = false;
+ private static WeakReferenceHandler weakReferenceHandler;
+ private DeptTodoOrHandledAdapter adapter;
+
+ @Override
+ protected int initLayoutView() {
+ return R.layout.fragment_dept_case;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ context = getContext();
+ }
+
+ @Override
+ protected void initData() {
+ deptTodoPresenter = new DeptTodoPresenterImpl(this);
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+
+ weakReferenceHandler = new WeakReferenceHandler(this);
+ }
+
+ @Override
+ protected void initEvent() {
+ refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+ }
+ });
+ refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ deptTodoPresenter.onReadyRetrofitRequest(pageIndex);
+ }
+ });
+ }
+
+ public static void sendEmptyMessage(int what) {
+ if (weakReferenceHandler == null) {
+ return;
+ }
+ weakReferenceHandler.sendEmptyMessage(what);
+ }
+
+ private static class WeakReferenceHandler extends Handler {
+ private WeakReference reference;
+
+ private WeakReferenceHandler(DeptCaseTodoFragment fragment) {
+ reference = new WeakReference<>(fragment);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ DeptCaseTodoFragment fragment = reference.get();
+ if (msg.what == Constant.DEPT_DONE) {
+ fragment.isRefresh = true;
+ //刷新之后页码重置
+ fragment.pageIndex = 1;
+ fragment.deptTodoPresenter.onReadyRetrofitRequest(fragment.pageIndex);
+ } else if (msg.what == 20210630) {
+ if (fragment.isRefresh || fragment.isLoadMore) {
+ fragment.adapter.notifyDataSetChanged();
+ } else {
+ //首次加载数据
+ if (fragment.dataBeans.size() == 0) {
+ fragment.emptyView.show("您暂时没有待办案卷", null);
+ } else {
+ fragment.emptyView.hide();
+ fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans);
+ fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context));
+ fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL));
+ fragment.caseRecyclerView.setAdapter(fragment.adapter);
+ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() {
+ @Override
+ public void onClick(int position) {
+ Intent intent = new Intent(fragment.context, DeptTodoDetailActivity.class);
+ intent.putExtra("title", Constant.DEPT_PAGE_TITLES[0]);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void obtainResult(PackageOrDeptBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ if (isRefresh) {
+ dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
+ dataBeans = dataRows;
+ refreshLayout.finishRefresh();
+ isRefresh = false;
+ } else if (isLoadMore) {
+ if (dataRows.size() == 0) {
+ ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO);
+ }
+ dataBeans.addAll(dataRows);
+ refreshLayout.finishLoadMore();
+ isLoadMore = false;
+ } else {
+ dataBeans = dataRows;
+ }
+ weakReferenceHandler.sendEmptyMessage(20210630);
+ }
+ }
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ if (deptTodoPresenter != null) {
+ deptTodoPresenter.disposeRetrofitRequest();
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java
index e8cd7d5..d207d3d 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -15,7 +15,7 @@
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE};
public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"};
- public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"};
+ public static final String[] DEPT_PAGE_TITLES = {"待办任务", "待处理", "已办案卷", "部门调整批示", "部门授权审核", "二级缓办待处理", "二级延期待处理"};
public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"};
public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"};
public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"};
diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
index 6c69999..63abb77 100644
--- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java
+++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java
@@ -2,6 +2,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
+import android.os.Environment;
import android.util.Log;
import com.casic.dcms.utils.callback.IDownloadListener;
@@ -30,7 +31,6 @@
private static File audioDir;
private static File imageDir;
private static File waterImageDir;
- private static File downloadDir;
private static File videoDir;
private static int index = 1;
@@ -64,13 +64,6 @@
Log.d(TAG, "initFileConfig: 创建WaterImageFile文件夹");
}
}
- downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkDownDir = downloadDir.mkdir();
- if (mkDownDir) {
- Log.d(TAG, "initFileConfig: 创建DownloadFile文件夹");
- }
- }
videoDir = new File(parentDir, "CompressVideoFile");
if (!videoDir.exists()) {
boolean mkVideoDir = videoDir.mkdir();
@@ -163,20 +156,11 @@
//储存下载文件的目录
private static String getDownloadFilePath() {
- if (downloadDir == null) {
- File parentDir = new File(context.getFilesDir().getAbsolutePath(), "Casic");
- if (!parentDir.exists()) {
- boolean mkdir = parentDir.mkdir();
- if (mkdir) {
- Log.d(TAG, "getDownloadFilePath: 创建Casic文件夹");
- }
- }
- downloadDir = new File(parentDir, "DownloadFile");
- if (!downloadDir.exists()) {
- boolean mkDownDir = downloadDir.mkdir();
- if (mkDownDir) {
- Log.d(TAG, "getDownloadFilePath: 创建DownloadFile文件夹");
- }
+ File downloadDir = new File(context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "");
+ if (!downloadDir.exists()) {
+ boolean mkdir = downloadDir.mkdir();
+ if (mkdir) {
+ Log.d(TAG, "getDownloadFilePath: 创建文件夹");
}
}
return downloadDir.toString();
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index f70d101..db004ff 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -511,10 +511,10 @@
* http://111.198.10.15:11409/case/workListPage?isShop=1
*/
@GET("/case/workListPage")
- Observable obtainWorkListPage(@Header("token") String token,
- @Query("isShop") String isShop,
- @Query("limit") int limit,
- @Query("offset") int offset);
+ Observable obtainPackageWorkListPage(@Header("token") String token,
+ @Query("isShop") String isShop,
+ @Query("limit") int limit,
+ @Query("offset") int offset);
/**
* 三包已办
@@ -558,6 +558,16 @@
@Field("applySource") String applySource);
/**
+ * 二级派遣员待办案卷
+ *
+ * http://111.198.10.15:11409/case/workListPage/?offset=1&limit=15
+ */
+ @GET("/case/workListPage")
+ Observable obtainWorkListPage(@Header("token") String token,
+ @Query("limit") int limit,
+ @Query("offset") int offset);
+
+ /**
* 二级派遣员待处理案卷
*
* http://111.198.10.15:11409/case/toProcessListPage/?offset=1&limit=15
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index 32a93a1..2e2cde7 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -549,10 +549,10 @@
/**
* 三包待办
*/
- public static Observable getWorkListResult(String isShop, int offset) {
+ public static Observable getPackageWorkListResult(String isShop, int offset) {
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- return service.obtainWorkListPage(AuthenticationHelper.getToken(), isShop,
+ return service.obtainPackageWorkListPage(AuthenticationHelper.getToken(), isShop,
Constant.PAGE_LIMIT, offset);
}
@@ -591,6 +591,15 @@
}
/**
+ * 二级派遣员待办案卷
+ */
+ public static Observable getWorkListResult(int offset) {
+ Retrofit retrofit = createRetrofit();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.obtainWorkListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset);
+ }
+
+ /**
* 二级派遣员待处理案卷
*/
public static Observable getProcessListResult(int offset) {
diff --git a/app/src/main/res/layout/activity_dept_process.xml b/app/src/main/res/layout/activity_dept_process.xml
deleted file mode 100644
index b097a6e..0000000
--- a/app/src/main/res/layout/activity_dept_process.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_dept_todo.xml b/app/src/main/res/layout/activity_dept_todo.xml
new file mode 100644
index 0000000..b097a6e
--- /dev/null
+++ b/app/src/main/res/layout/activity_dept_todo.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_package_recycleview.xml b/app/src/main/res/layout/item_package_recycleview.xml
index 2d6976a..08ed15d 100644
--- a/app/src/main/res/layout/item_package_recycleview.xml
+++ b/app/src/main/res/layout/item_package_recycleview.xml
@@ -21,7 +21,7 @@
android:layout_width="80dp"
android:layout_height="80dp"
android:gravity="center"
- android:scaleType="centerInside" />
+ android:scaleType="centerCrop" />
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java
new file mode 100644
index 0000000..a5f4a1e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
+
+import rx.Observable;
+import rx.Observer;
+import rx.Subscription;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+public class DeptTodoModelImpl implements IDeptCaseModel {
+
+ private OnGetCaseListListener listener;
+
+ public DeptTodoModelImpl(OnGetCaseListListener caseListListener) {
+ this.listener = caseListListener;
+ }
+
+ public interface OnGetCaseListListener {
+ void onSuccess(PackageOrDeptBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(int offset) {
+ Observable observable = RetrofitServiceManager.getWorkListResult(offset);
+ return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
+ @Override
+ public void onCompleted() {
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ if (e.getCause() != null) {
+ listener.onFailure(e);
+ }
+ }
+
+ @Override
+ public void onNext(PackageOrDeptBean resultBean) {
+ if (resultBean != null) {
+ listener.onSuccess(resultBean);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
index 4cafc10..e8c76b9 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/PackageTodoModelImpl.java
@@ -25,7 +25,7 @@
@Override
public Subscription sendRetrofitRequest(String isShop, int offset) {
- Observable observable = RetrofitServiceManager.getWorkListResult(isShop, offset);
+ Observable observable = RetrofitServiceManager.getPackageWorkListResult(isShop, offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java
new file mode 100644
index 0000000..eca4ff8
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java
@@ -0,0 +1,38 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.PackageOrDeptBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.DeptTodoModelImpl;
+import com.casic.dcms.mvp.view.IDeptTodoOrHandledView;
+
+public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener {
+
+ private IDeptTodoOrHandledView view;
+ private DeptTodoModelImpl actionModel;
+
+ public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) {
+ this.view = deptCaseView;
+ actionModel = new DeptTodoModelImpl(this);
+ }
+
+ //二级待办待处理
+ @Override
+ public void onReadyRetrofitRequest(int offset) {
+ addSubscription(actionModel.sendRetrofitRequest(offset));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(PackageOrDeptBean resultBean) {
+ view.obtainResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
index 5e6fd9c..b11a51a 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAdjustDetailActivity.java
@@ -96,7 +96,7 @@
@Override
protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[1];
+ return Constant.DEPT_PAGE_TITLES[3];
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
index de47420..030843e 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[2];
+ return Constant.DEPT_PAGE_TITLES[4];
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index 3de76c2..d47aa72 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment;
import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment;
import com.casic.dcms.utils.Constant;
import com.google.android.material.tabs.TabLayout;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;
@@ -57,10 +58,11 @@
@Override
public void initData() {
List fragmentList = new ArrayList<>();
+ fragmentList.add(new DeptCaseTodoFragment());//待办任务
fragmentList.add(new DeptCaseProcessFragment());//待处理
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
- fragmentList.add(new DeptCaseHandledFragment());//已处理
fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
deleted file mode 100644
index c751109..0000000
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ /dev/null
@@ -1,440 +0,0 @@
-package com.casic.dcms.ui;
-
-import android.content.Context;
-import android.content.Intent;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.EditText;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import androidx.core.content.ContextCompat;
-import androidx.recyclerview.widget.GridLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.casic.dcms.R;
-import com.casic.dcms.adapter.ImageRecycleViewAdapter;
-import com.casic.dcms.base.BaseCaseActivity;
-import com.casic.dcms.bean.ActionResultBean;
-import com.casic.dcms.bean.CaseDetailBean;
-import com.casic.dcms.bean.CaseNextNodeBean;
-import com.casic.dcms.bean.ProcessPersonBean;
-import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl;
-import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl;
-import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl;
-import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl;
-import com.casic.dcms.mvp.view.ICaseDetailHandleView;
-import com.casic.dcms.mvp.view.ICaseDetailView;
-import com.casic.dcms.mvp.view.ICaseNextNodeView;
-import com.casic.dcms.mvp.view.IHandleProcessView;
-import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
-import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
-import com.casic.dcms.utils.Constant;
-import com.casic.dcms.utils.ItemDecorationSpace;
-import com.casic.dcms.utils.JzExoMedia;
-import com.casic.dcms.utils.OtherUtils;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.ToastHelper;
-import com.casic.dcms.widgets.AudioPlayerView;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import butterknife.BindView;
-import butterknife.OnClick;
-import cn.jzvd.Jzvd;
-import cn.jzvd.JzvdStd;
-
-public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener,
- ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView {
-
- private Context context = DeptProcessDetailActivity.this;
- @BindView(R.id.caseNumberView)
- TextView caseNumberView;
- @BindView(R.id.caseResourceView)
- TextView caseResourceView;
- @BindView(R.id.caseCreatorView)
- TextView caseCreatorView;
- @BindView(R.id.caseTypeView)
- TextView caseTypeView;
- @BindView(R.id.caseLargeTypeView)
- TextView caseLargeTypeView;
- @BindView(R.id.caseSmallTypeView)
- TextView caseSmallTypeView;
- @BindView(R.id.caseCommunityView)
- TextView caseCommunityView;
- @BindView(R.id.casePlaceView)
- TextView casePlaceView;
- @BindView(R.id.caseSituationView)
- TextView caseSituationView;
- @BindView(R.id.casePicRecyclerView)
- RecyclerView casePicRecyclerView;
- @BindView(R.id.audioPlayerView)
- AudioPlayerView audioPlayerView;
- @BindView(R.id.videoPlayerView)
- JzvdStd videoPlayerView;
- @BindView(R.id.caseHandleRecyclerView)
- RecyclerView caseHandleRecyclerView;
- @BindView(R.id.optTypeView)
- TextView optTypeView;
- @BindView(R.id.casePersonLayout)
- RelativeLayout casePersonLayout;
- @BindView(R.id.personLine)
- View personLine;
- @BindView(R.id.caseHandlePersonView)
- TextView caseHandlePersonView;
- @BindView(R.id.optionEditView)
- EditText optionEditView;
- @BindView(R.id.commonTipsView)
- TextView commonTipsView;
- @BindView(R.id.submitButton)
- QMUIRoundButton submitButton;
-
- private CaseDetailPresenterImpl caseDetailPresenter;
- private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
- private ProcessPersonPresenterImpl handleProcessPresenter;
- private List personBeans;
- private CaseHandlePresenterImpl caseHandlePresenter;
- private CaseNextNodePresenterImpl nextNodePresenter;
- private String id;
- private String changeState;
- private String taskUserId;
- private String operationKey;
- private List nodeDataBeans;
-
- @Override
- protected String setTitleName() {
- return Constant.DEPT_PAGE_TITLES[0];
- }
-
- @Override
- public int initLayoutView() {
- return R.layout.activity_dept_process;
- }
-
- @Override
- public void initData() {
- id = getIntent().getStringExtra("id");
- caseDetailPresenter = new CaseDetailPresenterImpl(this);
- caseDetailPresenter.onReadyRetrofitRequest(id);
-
- nextNodePresenter = new CaseNextNodePresenterImpl(this);
- handleProcessPresenter = new ProcessPersonPresenterImpl(this);
- caseHandlePresenter = new CaseHandlePresenterImpl(this);
- }
-
- @Override
- public void initEvent() {
- submitButton.setChangeAlphaWhenPress(true);
- }
-
- @Override
- public void obtainCaseDetailData(CaseDetailBean resultBean) {
- if (resultBean.isSuccess()) {
- this.data = resultBean.getData().get(0);
- caseNumberView.setText(data.getCaseid());
- caseResourceView.setText(data.getSourceName());
- caseCreatorView.setText(data.getCreateUserName());
- caseTypeView.setText(data.getEorcName());
- caseLargeTypeView.setText(data.getCasetypeName());
- caseSmallTypeView.setText(data.getCasetypeDetailName());
- caseCommunityView.setText(data.getCommunityName());
- casePlaceView.setText(StringHelper.filterString(data.getFieldintro()));
- caseSituationView.setText(StringHelper.filterString(data.getDescription()));
-
- String images = data.getFileIdVerify();
- if (!TextUtils.isEmpty(images)) {
- ArrayList urls = new ArrayList<>();
- String[] split = images.split(",");
- for (String s : split) {
- if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
- imageAdapter.setMediaList(urls);
- casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
- casePicRecyclerView.addItemDecoration(new ItemDecorationSpace());
- casePicRecyclerView.setAdapter(imageAdapter);
- //九宫格点击事件
- imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- OtherUtils.showBigImage(context, position, urls);
- }
- });
- imageAdapter.setDeleteView(false);
- }
-
- String audioFile = data.getAudioIdVerify();
- if (!TextUtils.isEmpty(audioFile)) {
- audioPlayerView.setVisibility(View.VISIBLE);
- audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile));
- }
-
- String videoFile = data.getVideoIdVerify();
- if (!TextUtils.isEmpty(videoFile)) {
- videoPlayerView.setVisibility(View.VISIBLE);
- String videoUrl = StringHelper.appendCompleteURL(videoFile);
- videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class);
- //设置第一帧为封面
- Glide.with(this)
- .setDefaultRequestOptions(new RequestOptions().frame(4000000))
- .load(videoUrl)
- .into(videoPlayerView.posterImageView);
- }
-
- //处理图片
- String handleImages = data.getFileIdProcess();
- if (!TextUtils.isEmpty(handleImages)) {
- ArrayList urls = new ArrayList<>();
- String[] split = handleImages.split(",");
- for (String s : split) {
- if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) {
- urls.add(StringHelper.appendCompleteURL(s));
- }
- }
- ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this);
- imageAdapter.setMediaList(urls);
- caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));
- caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace());
- caseHandleRecyclerView.setAdapter(imageAdapter);
- //九宫格点击事件
- imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() {
- @Override
- public void onClick(int position) {
- OtherUtils.showBigImage(context, position, urls);
- }
- });
- imageAdapter.setDeleteView(false);
- }
-
- //获取处置类型
- nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState()));
- }
- }
-
- @Override
- public void showProgress() {
- OtherUtils.showLoadingDialog(this, "处理中,请稍后");
- }
-
- @Override
- public void hideProgress() {
- OtherUtils.dismissLoadingDialog();
- }
-
- @Override
- public void obtainCaseHandleResult(ActionResultBean resultBean) {
- if (resultBean.isSuccess()) {
- ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS);
- DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE);
- DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
- finish();
- } else {
- ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
- }
- }
-
- @Override
- public void obtainDataFail() {
- ToastHelper.showToast("操作失败", ToastHelper.ERROR);
- }
-
- @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton})
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.locationMapView:
- Intent intent = new Intent(this, DisplayMapActivity.class);
- intent.putExtra("caseType", data.getEorcName());
- String dataLng = data.getLng();
- if (TextUtils.isEmpty(dataLng)) {
- ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lng", Double.parseDouble(dataLng));
- String dataLat = data.getLat();
- if (TextUtils.isEmpty(dataLat)) {
- ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR);
- return;
- }
- intent.putExtra("lat", Double.parseDouble(dataLat));
- startActivity(intent);
- break;
- case R.id.caseOptTypeLayout:
- if (nodeDataBeans != null) {
- if (nodeDataBeans.size() >= 1) {
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
- sheetBuilder.setTitle("操作类型");
- for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) {
- sheetBuilder.addItem(dataBean.getNextOperation());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- optTypeView.setText(tag);
- optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position);
- changeState = String.valueOf(nodeBean.getNextState());
- operationKey = nodeBean.getOperationKey();
-
- if (tag.equals("处置人员")) {
- casePersonLayout.setVisibility(View.VISIBLE);
- personLine.setVisibility(View.VISIBLE);
-
- //获取下级处置人员名单
- handleProcessPresenter.onReadyRetrofitRequest();
- } else {
- casePersonLayout.setVisibility(View.GONE);
- personLine.setVisibility(View.GONE);
- }
- }
- }).build().show();
- }
- }
- break;
- case R.id.casePersonLayout:
- if (personBeans != null) {
- if (personBeans.size() >= 1) {
- QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this);
- sheetBuilder.setTitle("处置人员");
- for (ProcessPersonBean.DataBean dataBean : personBeans) {
- sheetBuilder.addItem(dataBean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- caseHandlePersonView.setText(tag);
- caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- taskUserId = personBeans.get(position).getId();
- }
- }).build().show();
- }
- }
- break;
- case R.id.commonTipsLayout:
- new QMUIBottomSheet.BottomListSheetBuilder(this)
- .setTitle("常见用语")
- .addItem("请及时处理")
- .addItem("调查后及时回复")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- commonTipsView.setText(tag);
- commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
-
- optionEditView.setText(tag);
- commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor));
- }
- }).build().show();
- break;
- case R.id.submitButton:
- submitCase();
- break;
- }
- }
-
- private void submitCase() {
- String optType = optTypeView.getText().toString();
- if (optType.equals("")) {
- ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING);
- return;
- }
- if (optType.equals("处置人员")) {
- //选择处理人员时,必选一个处置人员
- String handlePerson = caseHandlePersonView.getText().toString();
- if (handlePerson.equals("")) {
- ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING);
- return;
- }
- }
- String optionInput = StringHelper.filterString(optionEditView.getText().toString());
- if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) {
- if (TextUtils.isEmpty(optionInput)) {
- ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING);
- return;
- }
- }
- caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
- String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId);
- }
-
- @Override
- public void obtainResultData(ProcessPersonBean resultBean) {
- if (resultBean.isSuccess()) {
- this.personBeans = resultBean.getData();
- if (personBeans.size() == 0) {
- caseHandlePersonView.setText("无处置人员");
- } else {
- ProcessPersonBean.DataBean dataBean = personBeans.get(0);
- taskUserId = dataBean.getId();
- caseHandlePersonView.setText(dataBean.getName());//默认选择第一个
- }
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
- }
- }
-
- @Override
- public void obtainNextNodeData(CaseNextNodeBean resultBean) {
- if (resultBean.isSuccess()) {
- this.nodeDataBeans = resultBean.getData();
- if (nodeDataBeans.size() == 0) {
- optTypeView.setText("无下级流转节点");
- } else {
- CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0);
-
- operationKey = dataBean.getOperationKey();
- changeState = String.valueOf(dataBean.getNextState());
- optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
- }
- optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
- } else {
- ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
- }
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (caseDetailPresenter != null) {
- caseDetailPresenter.disposeRetrofitRequest();
- }
- if (handleProcessPresenter != null) {
- handleProcessPresenter.disposeRetrofitRequest();
- }
- if (caseHandlePresenter != null) {
- caseHandlePresenter.disposeRetrofitRequest();
- }
- if (nextNodePresenter != null) {
- nextNodePresenter.disposeRetrofitRequest();
- }
- if (audioPlayerView != null) {
- audioPlayerView.release();
- }
- }
-
- @Override
- public void onBackPressed() {
- if (Jzvd.backPress()) {
- return;
- }
- super.onBackPressed();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- Jzvd.releaseAllVideos();
- }
-}
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java
new file mode 100644
index 0000000..e4df2b6
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptTodoDetailActivity.java
@@ -0,0 +1,438 @@
+package com.casic.dcms.ui;
+
+import android.content.Context;
+import android.content.Intent;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.RequestOptions;
+import com.casic.dcms.R;
+import com.casic.dcms.adapter.ImageRecycleViewAdapter;
+import com.casic.dcms.base.BaseCaseActivity;
+import com.casic.dcms.bean.ActionResultBean;
+import com.casic.dcms.bean.CaseDetailBean;
+import com.casic.dcms.bean.CaseNextNodeBean;
+import com.casic.dcms.bean.ProcessPersonBean;
+import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl;
+import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl;
+import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl;
+import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl;
+import com.casic.dcms.mvp.view.ICaseDetailHandleView;
+import com.casic.dcms.mvp.view.ICaseDetailView;
+import com.casic.dcms.mvp.view.ICaseNextNodeView;
+import com.casic.dcms.mvp.view.IHandleProcessView;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.ItemDecorationSpace;
+import com.casic.dcms.utils.JzExoMedia;
+import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.ToastHelper;
+import com.casic.dcms.widgets.AudioPlayerView;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+import cn.jzvd.Jzvd;
+import cn.jzvd.JzvdStd;
+
+public class DeptTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView {
+
+ private Context context = this;
+ @BindView(R.id.caseNumberView)
+ TextView caseNumberView;
+ @BindView(R.id.caseResourceView)
+ TextView caseResourceView;
+ @BindView(R.id.caseCreatorView)
+ TextView caseCreatorView;
+ @BindView(R.id.caseTypeView)
+ TextView caseTypeView;
+ @BindView(R.id.caseLargeTypeView)
+ TextView caseLargeTypeView;
+ @BindView(R.id.caseSmallTypeView)
+ TextView caseSmallTypeView;
+ @BindView(R.id.caseCommunityView)
+ TextView caseCommunityView;
+ @BindView(R.id.casePlaceView)
+ TextView casePlaceView;
+ @BindView(R.id.caseSituationView)
+ TextView caseSituationView;
+ @BindView(R.id.casePicRecyclerView)
+ RecyclerView casePicRecyclerView;
+ @BindView(R.id.audioPlayerView)
+ AudioPlayerView audioPlayerView;
+ @BindView(R.id.videoPlayerView)
+ JzvdStd videoPlayerView;
+ @BindView(R.id.caseHandleRecyclerView)
+ RecyclerView caseHandleRecyclerView;
+ @BindView(R.id.optTypeView)
+ TextView optTypeView;
+ @BindView(R.id.casePersonLayout)
+ RelativeLayout casePersonLayout;
+ @BindView(R.id.personLine)
+ View personLine;
+ @BindView(R.id.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.optionEditView)
+ EditText optionEditView;
+ @BindView(R.id.commonTipsView)
+ TextView commonTipsView;
+ @BindView(R.id.submitButton)
+ QMUIRoundButton submitButton;
+
+ private CaseDetailPresenterImpl caseDetailPresenter;
+ private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean();
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private CaseNextNodePresenterImpl nextNodePresenter;
+ private String id;
+ private String title;
+ private String changeState;
+ private String taskUserId;
+ private String operationKey;
+ private List