|
@@ -2,11 +2,13 @@ package com.sjkj.appthreefloor_tsgz.fragment;
|
|
|
|
|
|
import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
+import android.text.TextUtils;
|
|
|
import android.view.Gravity;
|
|
|
import android.view.LayoutInflater;
|
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
|
|
|
|
+import androidx.annotation.Nullable;
|
|
|
import androidx.lifecycle.ViewModelProvider;
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
@@ -17,12 +19,14 @@ import com.sjkj.appthreefloor_tsgz.R;
|
|
|
import com.sjkj.appthreefloor_tsgz.activity.DisposalResultsActivity;
|
|
|
import com.sjkj.appthreefloor_tsgz.adapter.EventDetailsAdapter;
|
|
|
import com.sjkj.appthreefloor_tsgz.app.App;
|
|
|
+import com.sjkj.appthreefloor_tsgz.bean.CameraTypeBean;
|
|
|
import com.sjkj.appthreefloor_tsgz.bean.EventDetailsBean;
|
|
|
import com.sjkj.appthreefloor_tsgz.bean.MessageEvent;
|
|
|
import com.sjkj.appthreefloor_tsgz.databinding.FragmentEventDetailsBinding;
|
|
|
import com.sjkj.appthreefloor_tsgz.fragment.viewModel.EventFargmentViewModel;
|
|
|
import com.sjkj.appthreefloor_tsgz.net.EventChooseStatusRequest;
|
|
|
import com.sjkj.appthreefloor_tsgz.net.EventDetailsRequest;
|
|
|
+import com.sjkj.appthreefloor_tsgz.net.GetDictTypeRequest;
|
|
|
import com.sjkj.base_lib.entity.Params;
|
|
|
import com.sjkj.base_lib.net.domain.interactor.ProcessErrorSubscriber;
|
|
|
import com.sjkj.base_lib.utils.LocationUtils;
|
|
@@ -30,12 +34,19 @@ import com.sjkj.base_lib.utils.ToastUtils;
|
|
|
import com.sjkj.base_lib.view.BaseFragment;
|
|
|
import com.sjkj.base_lib.weight.LoadingDialog;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
public class EventDetailsFragment extends BaseFragment {
|
|
|
private FragmentEventDetailsBinding binding;
|
|
|
private EventFargmentViewModel viewModel;
|
|
|
private EventDetailsAdapter adapter;
|
|
|
EventDetailsRequest eventDetailsRequest = new EventDetailsRequest(App.getInstance());
|
|
|
+ public GetDictTypeRequest getDictTypeRequest = new GetDictTypeRequest(App.getInstance());
|
|
|
EventChooseStatusRequest chooseStatusRequest = new EventChooseStatusRequest(App.getInstance());
|
|
|
+ private List<CameraTypeBean> eventStatusList = new ArrayList<>();
|
|
|
+ private List<EventDetailsBean.DeptXz> deptXzList = new ArrayList<>();
|
|
|
|
|
|
@Override
|
|
|
protected int initLayout() {
|
|
@@ -65,6 +76,14 @@ public class EventDetailsFragment extends BaseFragment {
|
|
|
|
|
|
@Override
|
|
|
public void initListener() {
|
|
|
+ binding.tvNoNeed.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ //无需处理
|
|
|
+ ChangeStatus("0", binding.tvNoNeed.getText().toString());
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
binding.tvCompleted.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
@@ -75,14 +94,14 @@ public class EventDetailsFragment extends BaseFragment {
|
|
|
binding.tvFinish.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View view) {
|
|
|
- // ChangeStatus("50", binding.tvFinish.getText().toString());
|
|
|
- startActivity(new Intent(getActivity(), DisposalResultsActivity.class));
|
|
|
+ // ChangeStatus("40", binding.tvFinish.getText().toString());
|
|
|
+ startActivityForResult(new Intent(getActivity(), DisposalResultsActivity.class).putExtra("id", viewModel.eventId.get()), 1000);
|
|
|
}
|
|
|
});
|
|
|
binding.tvRefuse.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View view) {
|
|
|
- ChangeStatus("40", binding.tvRefuse.getText().toString());
|
|
|
+ ChangeStatus("60", binding.tvRefuse.getText().toString());
|
|
|
}
|
|
|
});
|
|
|
binding.mapLocation.setOnClickListener(new View.OnClickListener() {
|
|
@@ -114,7 +133,7 @@ public class EventDetailsFragment extends BaseFragment {
|
|
|
showLoadingDialog();
|
|
|
Params params = new Params();
|
|
|
params.put("eventId", viewModel.eventId.get());
|
|
|
- params.put("id", getActivity().getIntent().getStringExtra("eventCode"));
|
|
|
+ //params.put("id", getActivity().getIntent().getStringExtra("eventCode"));
|
|
|
params.put("status", status);
|
|
|
chooseStatusRequest.setParams(params);
|
|
|
chooseStatusRequest.execute(new ProcessErrorSubscriber() {
|
|
@@ -146,6 +165,26 @@ public class EventDetailsFragment extends BaseFragment {
|
|
|
|
|
|
@Override
|
|
|
public void loadData() {
|
|
|
+
|
|
|
+ Params params1 = new Params();
|
|
|
+ params1.put("dictType", "event_status");
|
|
|
+ getDictTypeRequest.setParams(params1);
|
|
|
+ getDictTypeRequest.execute(new ProcessErrorSubscriber<List<CameraTypeBean>>() {
|
|
|
+ @Override
|
|
|
+ public void onError(Throwable e) {
|
|
|
+ super.onError(e);
|
|
|
+ if (!TextUtils.isEmpty(e.getMessage())) {
|
|
|
+ ToastUtils.show(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNext(List<CameraTypeBean> list) {
|
|
|
+ super.onNext(list);
|
|
|
+ eventStatusList.clear();
|
|
|
+ eventStatusList.addAll(list);
|
|
|
+ }
|
|
|
+ });
|
|
|
showLoadingDialog();
|
|
|
Params params = new Params();
|
|
|
params.put("id", viewModel.eventId.get());
|
|
@@ -163,8 +202,8 @@ public class EventDetailsFragment extends BaseFragment {
|
|
|
public void onNext(EventDetailsBean bean) {
|
|
|
super.onNext(bean);
|
|
|
hideLoadingDialog(LoadingDialog.LOADING_SUCCESS);
|
|
|
- if (bean != null && bean.getDepts().size() > 0) {
|
|
|
- viewModel.title.set(bean.getEventName());
|
|
|
+ if (bean != null) {
|
|
|
+ viewModel.title.set(bean.getCreateName());
|
|
|
viewModel.time.set(bean.getCreateTime());
|
|
|
viewModel.remark.set(bean.getRemark());
|
|
|
viewModel.longitude.set(Double.parseDouble(bean.getLongitude()));
|
|
@@ -175,26 +214,73 @@ public class EventDetailsFragment extends BaseFragment {
|
|
|
event.setLatitude(bean.getLatitude());
|
|
|
event.setLongitude(bean.getLongitude());
|
|
|
viewModel.setMessage(event);
|
|
|
- adapter.refreshList(bean.getDepts());
|
|
|
+ deptXzList.clear();
|
|
|
+ if (bean.getDepted() != null && eventStatusList.size() > 0) {
|
|
|
+ deptXzList.add(bean.getDepted().getDeptXz().get(0));
|
|
|
+ deptXzList.addAll(bean.getDepted().getDeptHg());
|
|
|
+ for (int i = 0; i < deptXzList.size(); i++) {
|
|
|
+ for (int j = 0; j < eventStatusList.size(); j++) {
|
|
|
+
|
|
|
+ if (deptXzList.get(i).getStatus().equals(eventStatusList.get(j).getDictValue())) {
|
|
|
+ deptXzList.get(i).setStatusValue(eventStatusList.get(j).getDictLabel());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ adapter.refreshList(deptXzList);
|
|
|
+
|
|
|
if (bean.getStatus().equals("20")) {
|
|
|
- //待签收
|
|
|
- binding.tvCompleted.setVisibility(View.VISIBLE);
|
|
|
- binding.tvRefuse.setVisibility(View.VISIBLE);
|
|
|
- binding.tvNoNeed.setVisibility(View.VISIBLE);
|
|
|
- binding.tvTime.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
|
|
|
+ //待签收 后台说1 2不可能同时存在
|
|
|
+ if (PermsContains(bean.getPerms(), 1)) {
|
|
|
+ binding.tvCompleted.setVisibility(View.VISIBLE);
|
|
|
+ binding.tvRefuse.setVisibility(View.VISIBLE);
|
|
|
+ binding.tvNoNeed.setVisibility(View.VISIBLE);
|
|
|
+ binding.tvTime.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
|
|
|
+ } else if (PermsContains(bean.getPerms(), 2)) {
|
|
|
+ binding.tvRefuse.setVisibility(View.VISIBLE);
|
|
|
+ binding.tvTime.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
|
|
|
+ } else {
|
|
|
+ binding.tvTime.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
} else if (bean.getStatus().equals("30")) {
|
|
|
//处理中
|
|
|
- binding.tvFinish.setVisibility(View.VISIBLE);
|
|
|
- binding.tvReport.setVisibility(View.VISIBLE);
|
|
|
- binding.tvTime.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
|
|
|
+ if (PermsContains(bean.getPerms(), 2)) {
|
|
|
+ binding.tvRefuse.setVisibility(View.VISIBLE);
|
|
|
+ binding.tvTime.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
|
|
|
+ } else if (PermsContains(bean.getPerms(), 1)) {
|
|
|
+ binding.tvFinish.setVisibility(View.VISIBLE);
|
|
|
+ binding.tvTime.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
|
|
|
+ } else {
|
|
|
+ binding.tvTime.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
|
|
|
+
|
|
|
+ }
|
|
|
+ //binding.tvReport.setVisibility(View.VISIBLE);
|
|
|
+
|
|
|
} else {
|
|
|
+
|
|
|
binding.tvCompleted.setVisibility(View.GONE);
|
|
|
binding.tvRefuse.setVisibility(View.GONE);
|
|
|
binding.tvFinish.setVisibility(View.GONE);
|
|
|
- binding.tvTime.setGravity(Gravity.LEFT|Gravity.CENTER_VERTICAL);
|
|
|
+ binding.tvTime.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ public boolean PermsContains(int[] array, int valueToFind) {
|
|
|
+ Arrays.sort(array); // 首先对数组进行排序
|
|
|
+ return Arrays.binarySearch(array, valueToFind) >= 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
|
+ super.onActivityResult(requestCode, resultCode, data);
|
|
|
+ if (requestCode == 1000 && resultCode == 1000) {
|
|
|
+ loadData();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|