diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d99ecf5..68f46c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -88,6 +88,8 @@
+
+
+
+
+
+
nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private String id;
+ private String changeState;
+ private String operationKey;
+
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[1];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_adjust;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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();
+ }
+ }).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;
+ }
+ 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,
+ data.getProcessPersonid());
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAdjustFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d99ecf5..68f46c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -88,6 +88,8 @@
+
+
nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private String id;
+ private String changeState;
+ private String operationKey;
+
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[1];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_adjust;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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();
+ }
+ }).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;
+ }
+ 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,
+ data.getProcessPersonid());
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAdjustFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
new file mode 100644
index 0000000..de47420
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -0,0 +1,437 @@
+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.DeptCaseAuthorizeFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+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 DeptAuthorizeDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, ICaseNextNodeView, IHandleProcessView, ICaseDetailHandleView {
+
+ private Context context = DeptAuthorizeDetailActivity.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.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.personLine)
+ View personLine;
+ @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 CaseNextNodePresenterImpl nextNodePresenter;
+ private List nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private String id;
+ private String changeState;
+ private String operationKey;
+ private String taskUserId;
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[2];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_authorize;
+ }
+
+ @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);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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:
+ 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 (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替
+ if (TextUtils.isEmpty(taskUserId)) {
+ taskUserId = data.getProcessPersonid();
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey,
+ taskUserId);
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAuthorizeFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+
+ @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 obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d99ecf5..68f46c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -88,6 +88,8 @@
+
+
nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private String id;
+ private String changeState;
+ private String operationKey;
+
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[1];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_adjust;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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();
+ }
+ }).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;
+ }
+ 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,
+ data.getProcessPersonid());
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAdjustFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
new file mode 100644
index 0000000..de47420
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -0,0 +1,437 @@
+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.DeptCaseAuthorizeFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+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 DeptAuthorizeDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, ICaseNextNodeView, IHandleProcessView, ICaseDetailHandleView {
+
+ private Context context = DeptAuthorizeDetailActivity.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.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.personLine)
+ View personLine;
+ @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 CaseNextNodePresenterImpl nextNodePresenter;
+ private List nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private String id;
+ private String changeState;
+ private String operationKey;
+ private String taskUserId;
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[2];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_authorize;
+ }
+
+ @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);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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:
+ 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 (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替
+ if (TextUtils.isEmpty(taskUserId)) {
+ taskUserId = data.getProcessPersonid();
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey,
+ taskUserId);
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAuthorizeFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+
+ @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 obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index e698b07..3de76c2 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -59,10 +59,10 @@
List fragmentList = new ArrayList<>();
fragmentList.add(new DeptCaseProcessFragment());//待处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
- fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
+ fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
- fragmentList.add(new DeptCaseHandledFragment());
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
viewPager.setAdapter(adapter);
//绑定TabLayout
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d99ecf5..68f46c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -88,6 +88,8 @@
+
+
nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private String id;
+ private String changeState;
+ private String operationKey;
+
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[1];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_adjust;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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();
+ }
+ }).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;
+ }
+ 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,
+ data.getProcessPersonid());
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAdjustFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
new file mode 100644
index 0000000..de47420
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -0,0 +1,437 @@
+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.DeptCaseAuthorizeFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+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 DeptAuthorizeDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, ICaseNextNodeView, IHandleProcessView, ICaseDetailHandleView {
+
+ private Context context = DeptAuthorizeDetailActivity.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.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.personLine)
+ View personLine;
+ @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 CaseNextNodePresenterImpl nextNodePresenter;
+ private List nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private String id;
+ private String changeState;
+ private String operationKey;
+ private String taskUserId;
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[2];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_authorize;
+ }
+
+ @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);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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:
+ 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 (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替
+ if (TextUtils.isEmpty(taskUserId)) {
+ taskUserId = data.getProcessPersonid();
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey,
+ taskUserId);
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAuthorizeFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+
+ @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 obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index e698b07..3de76c2 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -59,10 +59,10 @@
List fragmentList = new ArrayList<>();
fragmentList.add(new DeptCaseProcessFragment());//待处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
- fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
+ fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
- fragmentList.add(new DeptCaseHandledFragment());
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
viewPager.setAdapter(adapter);
//绑定TabLayout
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
index 1517541..c751109 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return "待处理";
+ return Constant.DEPT_PAGE_TITLES[0];
}
@Override
@@ -123,7 +123,6 @@
caseDetailPresenter.onReadyRetrofitRequest(id);
nextNodePresenter = new CaseNextNodePresenterImpl(this);
-
handleProcessPresenter = new ProcessPersonPresenterImpl(this);
caseHandlePresenter = new CaseHandlePresenterImpl(this);
}
@@ -399,7 +398,7 @@
changeState = String.valueOf(dataBean.getNextState());
optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
}
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
} else {
ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d99ecf5..68f46c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -88,6 +88,8 @@
+
+
nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private String id;
+ private String changeState;
+ private String operationKey;
+
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[1];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_adjust;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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();
+ }
+ }).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;
+ }
+ 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,
+ data.getProcessPersonid());
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAdjustFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
new file mode 100644
index 0000000..de47420
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -0,0 +1,437 @@
+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.DeptCaseAuthorizeFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+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 DeptAuthorizeDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, ICaseNextNodeView, IHandleProcessView, ICaseDetailHandleView {
+
+ private Context context = DeptAuthorizeDetailActivity.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.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.personLine)
+ View personLine;
+ @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 CaseNextNodePresenterImpl nextNodePresenter;
+ private List nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private String id;
+ private String changeState;
+ private String operationKey;
+ private String taskUserId;
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[2];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_authorize;
+ }
+
+ @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);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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:
+ 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 (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替
+ if (TextUtils.isEmpty(taskUserId)) {
+ taskUserId = data.getProcessPersonid();
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey,
+ taskUserId);
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAuthorizeFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+
+ @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 obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index e698b07..3de76c2 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -59,10 +59,10 @@
List fragmentList = new ArrayList<>();
fragmentList.add(new DeptCaseProcessFragment());//待处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
- fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
+ fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
- fragmentList.add(new DeptCaseHandledFragment());
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
viewPager.setAdapter(adapter);
//绑定TabLayout
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
index 1517541..c751109 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return "待处理";
+ return Constant.DEPT_PAGE_TITLES[0];
}
@Override
@@ -123,7 +123,6 @@
caseDetailPresenter.onReadyRetrofitRequest(id);
nextNodePresenter = new CaseNextNodePresenterImpl(this);
-
handleProcessPresenter = new ProcessPersonPresenterImpl(this);
caseHandlePresenter = new CaseHandlePresenterImpl(this);
}
@@ -399,7 +398,7 @@
changeState = String.valueOf(dataBean.getNextState());
optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
}
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
} else {
ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
index d752957..71363f1 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui.fragment.dept;
import android.content.Context;
+import android.content.Intent;
import android.os.Handler;
import android.os.Message;
@@ -15,6 +16,7 @@
import com.casic.dcms.bean.AuthorizeOrAdjustBean;
import com.casic.dcms.mvp.presenter.DeptAdjustPresenterImpl;
import com.casic.dcms.mvp.view.IDeptAuthorizeOrAdjustView;
+import com.casic.dcms.ui.DeptAdjustDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -123,7 +125,9 @@
fragment.adapter.setOnItemClickListener(new DeptAuthorizeOrAdjustAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
-
+ Intent intent = new Intent(fragment.context, DeptAdjustDetailActivity.class);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
}
});
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d99ecf5..68f46c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -88,6 +88,8 @@
+
+
nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private String id;
+ private String changeState;
+ private String operationKey;
+
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[1];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_adjust;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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();
+ }
+ }).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;
+ }
+ 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,
+ data.getProcessPersonid());
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAdjustFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
new file mode 100644
index 0000000..de47420
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -0,0 +1,437 @@
+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.DeptCaseAuthorizeFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+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 DeptAuthorizeDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, ICaseNextNodeView, IHandleProcessView, ICaseDetailHandleView {
+
+ private Context context = DeptAuthorizeDetailActivity.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.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.personLine)
+ View personLine;
+ @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 CaseNextNodePresenterImpl nextNodePresenter;
+ private List nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private String id;
+ private String changeState;
+ private String operationKey;
+ private String taskUserId;
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[2];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_authorize;
+ }
+
+ @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);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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:
+ 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 (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替
+ if (TextUtils.isEmpty(taskUserId)) {
+ taskUserId = data.getProcessPersonid();
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey,
+ taskUserId);
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAuthorizeFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+
+ @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 obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index e698b07..3de76c2 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -59,10 +59,10 @@
List fragmentList = new ArrayList<>();
fragmentList.add(new DeptCaseProcessFragment());//待处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
- fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
+ fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
- fragmentList.add(new DeptCaseHandledFragment());
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
viewPager.setAdapter(adapter);
//绑定TabLayout
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
index 1517541..c751109 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return "待处理";
+ return Constant.DEPT_PAGE_TITLES[0];
}
@Override
@@ -123,7 +123,6 @@
caseDetailPresenter.onReadyRetrofitRequest(id);
nextNodePresenter = new CaseNextNodePresenterImpl(this);
-
handleProcessPresenter = new ProcessPersonPresenterImpl(this);
caseHandlePresenter = new CaseHandlePresenterImpl(this);
}
@@ -399,7 +398,7 @@
changeState = String.valueOf(dataBean.getNextState());
optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
}
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
} else {
ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
index d752957..71363f1 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui.fragment.dept;
import android.content.Context;
+import android.content.Intent;
import android.os.Handler;
import android.os.Message;
@@ -15,6 +16,7 @@
import com.casic.dcms.bean.AuthorizeOrAdjustBean;
import com.casic.dcms.mvp.presenter.DeptAdjustPresenterImpl;
import com.casic.dcms.mvp.view.IDeptAuthorizeOrAdjustView;
+import com.casic.dcms.ui.DeptAdjustDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -123,7 +125,9 @@
fragment.adapter.setOnItemClickListener(new DeptAuthorizeOrAdjustAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
-
+ Intent intent = new Intent(fragment.context, DeptAdjustDetailActivity.class);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
index e9476ba..6f79a15 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui.fragment.dept;
import android.content.Context;
+import android.content.Intent;
import android.os.Handler;
import android.os.Message;
@@ -15,6 +16,7 @@
import com.casic.dcms.bean.AuthorizeOrAdjustBean;
import com.casic.dcms.mvp.presenter.DeptAuthorizePresenterImpl;
import com.casic.dcms.mvp.view.IDeptAuthorizeOrAdjustView;
+import com.casic.dcms.ui.DeptAuthorizeDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -123,7 +125,9 @@
fragment.adapter.setOnItemClickListener(new DeptAuthorizeOrAdjustAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
-
+ Intent intent = new Intent(fragment.context, DeptAuthorizeDetailActivity.class);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
}
});
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d99ecf5..68f46c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -88,6 +88,8 @@
+
+
nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private String id;
+ private String changeState;
+ private String operationKey;
+
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[1];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_adjust;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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();
+ }
+ }).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;
+ }
+ 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,
+ data.getProcessPersonid());
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAdjustFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
new file mode 100644
index 0000000..de47420
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -0,0 +1,437 @@
+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.DeptCaseAuthorizeFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+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 DeptAuthorizeDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, ICaseNextNodeView, IHandleProcessView, ICaseDetailHandleView {
+
+ private Context context = DeptAuthorizeDetailActivity.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.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.personLine)
+ View personLine;
+ @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 CaseNextNodePresenterImpl nextNodePresenter;
+ private List nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private String id;
+ private String changeState;
+ private String operationKey;
+ private String taskUserId;
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[2];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_authorize;
+ }
+
+ @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);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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:
+ 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 (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替
+ if (TextUtils.isEmpty(taskUserId)) {
+ taskUserId = data.getProcessPersonid();
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey,
+ taskUserId);
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAuthorizeFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+
+ @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 obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index e698b07..3de76c2 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -59,10 +59,10 @@
List fragmentList = new ArrayList<>();
fragmentList.add(new DeptCaseProcessFragment());//待处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
- fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
+ fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
- fragmentList.add(new DeptCaseHandledFragment());
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
viewPager.setAdapter(adapter);
//绑定TabLayout
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
index 1517541..c751109 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return "待处理";
+ return Constant.DEPT_PAGE_TITLES[0];
}
@Override
@@ -123,7 +123,6 @@
caseDetailPresenter.onReadyRetrofitRequest(id);
nextNodePresenter = new CaseNextNodePresenterImpl(this);
-
handleProcessPresenter = new ProcessPersonPresenterImpl(this);
caseHandlePresenter = new CaseHandlePresenterImpl(this);
}
@@ -399,7 +398,7 @@
changeState = String.valueOf(dataBean.getNextState());
optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
}
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
} else {
ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
index d752957..71363f1 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui.fragment.dept;
import android.content.Context;
+import android.content.Intent;
import android.os.Handler;
import android.os.Message;
@@ -15,6 +16,7 @@
import com.casic.dcms.bean.AuthorizeOrAdjustBean;
import com.casic.dcms.mvp.presenter.DeptAdjustPresenterImpl;
import com.casic.dcms.mvp.view.IDeptAuthorizeOrAdjustView;
+import com.casic.dcms.ui.DeptAdjustDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -123,7 +125,9 @@
fragment.adapter.setOnItemClickListener(new DeptAuthorizeOrAdjustAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
-
+ Intent intent = new Intent(fragment.context, DeptAdjustDetailActivity.class);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
index e9476ba..6f79a15 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui.fragment.dept;
import android.content.Context;
+import android.content.Intent;
import android.os.Handler;
import android.os.Message;
@@ -15,6 +16,7 @@
import com.casic.dcms.bean.AuthorizeOrAdjustBean;
import com.casic.dcms.mvp.presenter.DeptAuthorizePresenterImpl;
import com.casic.dcms.mvp.view.IDeptAuthorizeOrAdjustView;
+import com.casic.dcms.ui.DeptAuthorizeDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -123,7 +125,9 @@
fragment.adapter.setOnItemClickListener(new DeptAuthorizeOrAdjustAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
-
+ Intent intent = new Intent(fragment.context, DeptAuthorizeDetailActivity.class);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
}
});
}
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 a6cbc2f..d9c1d60 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 List ANALYSIS_ICONS = Arrays.asList(
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d99ecf5..68f46c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -88,6 +88,8 @@
+
+
nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private String id;
+ private String changeState;
+ private String operationKey;
+
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[1];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_adjust;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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();
+ }
+ }).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;
+ }
+ 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,
+ data.getProcessPersonid());
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAdjustFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
new file mode 100644
index 0000000..de47420
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -0,0 +1,437 @@
+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.DeptCaseAuthorizeFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+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 DeptAuthorizeDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, ICaseNextNodeView, IHandleProcessView, ICaseDetailHandleView {
+
+ private Context context = DeptAuthorizeDetailActivity.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.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.personLine)
+ View personLine;
+ @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 CaseNextNodePresenterImpl nextNodePresenter;
+ private List nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private String id;
+ private String changeState;
+ private String operationKey;
+ private String taskUserId;
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[2];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_authorize;
+ }
+
+ @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);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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:
+ 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 (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替
+ if (TextUtils.isEmpty(taskUserId)) {
+ taskUserId = data.getProcessPersonid();
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey,
+ taskUserId);
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAuthorizeFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+
+ @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 obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index e698b07..3de76c2 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -59,10 +59,10 @@
List fragmentList = new ArrayList<>();
fragmentList.add(new DeptCaseProcessFragment());//待处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
- fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
+ fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
- fragmentList.add(new DeptCaseHandledFragment());
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
viewPager.setAdapter(adapter);
//绑定TabLayout
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
index 1517541..c751109 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return "待处理";
+ return Constant.DEPT_PAGE_TITLES[0];
}
@Override
@@ -123,7 +123,6 @@
caseDetailPresenter.onReadyRetrofitRequest(id);
nextNodePresenter = new CaseNextNodePresenterImpl(this);
-
handleProcessPresenter = new ProcessPersonPresenterImpl(this);
caseHandlePresenter = new CaseHandlePresenterImpl(this);
}
@@ -399,7 +398,7 @@
changeState = String.valueOf(dataBean.getNextState());
optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
}
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
} else {
ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
index d752957..71363f1 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui.fragment.dept;
import android.content.Context;
+import android.content.Intent;
import android.os.Handler;
import android.os.Message;
@@ -15,6 +16,7 @@
import com.casic.dcms.bean.AuthorizeOrAdjustBean;
import com.casic.dcms.mvp.presenter.DeptAdjustPresenterImpl;
import com.casic.dcms.mvp.view.IDeptAuthorizeOrAdjustView;
+import com.casic.dcms.ui.DeptAdjustDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -123,7 +125,9 @@
fragment.adapter.setOnItemClickListener(new DeptAuthorizeOrAdjustAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
-
+ Intent intent = new Intent(fragment.context, DeptAdjustDetailActivity.class);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
index e9476ba..6f79a15 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui.fragment.dept;
import android.content.Context;
+import android.content.Intent;
import android.os.Handler;
import android.os.Message;
@@ -15,6 +16,7 @@
import com.casic.dcms.bean.AuthorizeOrAdjustBean;
import com.casic.dcms.mvp.presenter.DeptAuthorizePresenterImpl;
import com.casic.dcms.mvp.view.IDeptAuthorizeOrAdjustView;
+import com.casic.dcms.ui.DeptAuthorizeDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -123,7 +125,9 @@
fragment.adapter.setOnItemClickListener(new DeptAuthorizeOrAdjustAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
-
+ Intent intent = new Intent(fragment.context, DeptAuthorizeDetailActivity.class);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
}
});
}
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 a6cbc2f..d9c1d60 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 List ANALYSIS_ICONS = Arrays.asList(
diff --git a/app/src/main/res/layout/activity_dept_adjust.xml b/app/src/main/res/layout/activity_dept_adjust.xml
new file mode 100644
index 0000000..a654f56
--- /dev/null
+++ b/app/src/main/res/layout/activity_dept_adjust.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d99ecf5..68f46c9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -88,6 +88,8 @@
+
+
nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private String id;
+ private String changeState;
+ private String operationKey;
+
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[1];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_adjust;
+ }
+
+ @Override
+ public void initData() {
+ id = getIntent().getStringExtra("id");
+ caseDetailPresenter = new CaseDetailPresenterImpl(this);
+ caseDetailPresenter.onReadyRetrofitRequest(id);
+
+ nextNodePresenter = new CaseNextNodePresenterImpl(this);
+ caseHandlePresenter = new CaseHandlePresenterImpl(this);
+ }
+
+ @Override
+ public void initEvent() {
+ submitButton.setChangeAlphaWhenPress(true);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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();
+ }
+ }).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;
+ }
+ 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,
+ data.getProcessPersonid());
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAdjustFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+ @Override
+ public void obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
new file mode 100644
index 0000000..de47420
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/DeptAuthorizeDetailActivity.java
@@ -0,0 +1,437 @@
+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.DeptCaseAuthorizeFragment;
+import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment;
+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 DeptAuthorizeDetailActivity extends BaseCaseActivity implements View.OnClickListener,
+ ICaseDetailView, ICaseNextNodeView, IHandleProcessView, ICaseDetailHandleView {
+
+ private Context context = DeptAuthorizeDetailActivity.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.caseHandlePersonView)
+ TextView caseHandlePersonView;
+ @BindView(R.id.personLine)
+ View personLine;
+ @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 CaseNextNodePresenterImpl nextNodePresenter;
+ private List nodeDataBeans;
+ private CaseHandlePresenterImpl caseHandlePresenter;
+ private ProcessPersonPresenterImpl handleProcessPresenter;
+ private List personBeans;
+ private String id;
+ private String changeState;
+ private String operationKey;
+ private String taskUserId;
+
+ @Override
+ protected String setTitleName() {
+ return Constant.DEPT_PAGE_TITLES[2];
+ }
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_dept_authorize;
+ }
+
+ @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);
+ }
+
+ @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, 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:
+ 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 (TextUtils.isEmpty(optionInput)) {
+ ToastHelper.showToast("处理意见必须填写", ToastHelper.WARING);
+ return;
+ }
+ //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替
+ if (TextUtils.isEmpty(taskUserId)) {
+ taskUserId = data.getProcessPersonid();
+ }
+ caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id,
+ String.valueOf(data.getCaseState()), changeState, optionInput, operationKey,
+ taskUserId);
+ break;
+ }
+ }
+
+ @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 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
+ 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);
+ DeptCaseAuthorizeFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE);
+ finish();
+ } else {
+ ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR);
+ }
+ }
+
+
+ @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 obtainDataFail() {
+ ToastHelper.showToast("操作失败", ToastHelper.ERROR);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (caseDetailPresenter != null) {
+ caseDetailPresenter.disposeRetrofitRequest();
+ }
+ if (nextNodePresenter != null) {
+ nextNodePresenter.disposeRetrofitRequest();
+ }
+ if (caseHandlePresenter != null) {
+ caseHandlePresenter.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/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
index e698b07..3de76c2 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java
@@ -59,10 +59,10 @@
List fragmentList = new ArrayList<>();
fragmentList.add(new DeptCaseProcessFragment());//待处理
fragmentList.add(new DeptCaseAdjustFragment());//部门调整
- fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseAuthorizeFragment());//部门授权
+ fragmentList.add(new DeptCaseHandledFragment());//已处理
+ fragmentList.add(new DeptCasePostponeFragment());//二级缓办
fragmentList.add(new DeptCaseDelayedFragment());//二级延期
- fragmentList.add(new DeptCaseHandledFragment());
SubViewPagerAdapter adapter = new SubViewPagerAdapter(getSupportFragmentManager(), Constant.DEPT_PAGE_TITLES, fragmentList);
viewPager.setAdapter(adapter);
//绑定TabLayout
diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
index 1517541..c751109 100644
--- a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java
@@ -108,7 +108,7 @@
@Override
protected String setTitleName() {
- return "待处理";
+ return Constant.DEPT_PAGE_TITLES[0];
}
@Override
@@ -123,7 +123,6 @@
caseDetailPresenter.onReadyRetrofitRequest(id);
nextNodePresenter = new CaseNextNodePresenterImpl(this);
-
handleProcessPresenter = new ProcessPersonPresenterImpl(this);
caseHandlePresenter = new CaseHandlePresenterImpl(this);
}
@@ -399,7 +398,7 @@
changeState = String.valueOf(dataBean.getNextState());
optTypeView.setText(dataBean.getNextOperation());//默认选择第一个
}
- caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
+ optTypeView.setTextColor(ContextCompat.getColor(this, R.color.textColor));
} else {
ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR);
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
index d752957..71363f1 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAdjustFragment.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui.fragment.dept;
import android.content.Context;
+import android.content.Intent;
import android.os.Handler;
import android.os.Message;
@@ -15,6 +16,7 @@
import com.casic.dcms.bean.AuthorizeOrAdjustBean;
import com.casic.dcms.mvp.presenter.DeptAdjustPresenterImpl;
import com.casic.dcms.mvp.view.IDeptAuthorizeOrAdjustView;
+import com.casic.dcms.ui.DeptAdjustDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -123,7 +125,9 @@
fragment.adapter.setOnItemClickListener(new DeptAuthorizeOrAdjustAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
-
+ Intent intent = new Intent(fragment.context, DeptAdjustDetailActivity.class);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
index e9476ba..6f79a15 100644
--- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
+++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseAuthorizeFragment.java
@@ -1,6 +1,7 @@
package com.casic.dcms.ui.fragment.dept;
import android.content.Context;
+import android.content.Intent;
import android.os.Handler;
import android.os.Message;
@@ -15,6 +16,7 @@
import com.casic.dcms.bean.AuthorizeOrAdjustBean;
import com.casic.dcms.mvp.presenter.DeptAuthorizePresenterImpl;
import com.casic.dcms.mvp.view.IDeptAuthorizeOrAdjustView;
+import com.casic.dcms.ui.DeptAuthorizeDetailActivity;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.ToastHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
@@ -123,7 +125,9 @@
fragment.adapter.setOnItemClickListener(new DeptAuthorizeOrAdjustAdapter.OnItemClickListener() {
@Override
public void onClick(int position) {
-
+ Intent intent = new Intent(fragment.context, DeptAuthorizeDetailActivity.class);
+ intent.putExtra("id", fragment.dataBeans.get(position).getId());
+ fragment.startActivity(intent);
}
});
}
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 a6cbc2f..d9c1d60 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 List ANALYSIS_ICONS = Arrays.asList(
diff --git a/app/src/main/res/layout/activity_dept_adjust.xml b/app/src/main/res/layout/activity_dept_adjust.xml
new file mode 100644
index 0000000..a654f56
--- /dev/null
+++ b/app/src/main/res/layout/activity_dept_adjust.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_dept_authorize.xml b/app/src/main/res/layout/activity_dept_authorize.xml
new file mode 100644
index 0000000..b097a6e
--- /dev/null
+++ b/app/src/main/res/layout/activity_dept_authorize.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file