package com.dayu.pipirrapp.activity;
|
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.text.TextUtils;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
|
import androidx.annotation.Nullable;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.SimpleItemAnimator;
|
|
import com.dayu.pipirrapp.R;
|
import com.dayu.pipirrapp.adapter.ImageAdapter;
|
import com.dayu.pipirrapp.bean.net.DealDetailResult;
|
import com.dayu.pipirrapp.bean.net.ImageResult;
|
import com.dayu.pipirrapp.bean.net.OrderDetailResult;
|
import com.dayu.pipirrapp.databinding.ActivityOrderDetailBinding;
|
import com.dayu.pipirrapp.net.ApiManager;
|
import com.dayu.pipirrapp.net.BaseResponse;
|
import com.dayu.pipirrapp.net.Constants;
|
import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
|
import com.dayu.pipirrapp.tool.FullyGridLayoutManager;
|
import com.dayu.pipirrapp.tool.GlideEngine;
|
import com.dayu.pipirrapp.utils.ToastUtil;
|
import com.dayu.pipirrapp.view.TitleBar;
|
import com.luck.picture.lib.basic.PictureSelector;
|
import com.luck.picture.lib.decoration.GridSpacingItemDecoration;
|
import com.luck.picture.lib.engine.ImageEngine;
|
import com.luck.picture.lib.utils.DensityUtil;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import cc.shinichi.library.ImagePreview;
|
import cc.shinichi.library.bean.ImageInfo;
|
|
/**
|
* OrderDetailActivity -
|
* 工单详情界面
|
*
|
* @author zuoxiao
|
* @version 1.0
|
* @since 2024-11-27
|
*/
|
public class OrderDetailActivity extends BaseActivity {
|
ActivityOrderDetailBinding binding;
|
String workOrderId;
|
String proResultId;
|
ImageAdapter mAdapter;
|
List<ImageResult> images = new ArrayList<>();
|
RecyclerView mRecyclerView;
|
final List<String> imageInfoList = new ArrayList<>();
|
|
@Override
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
binding = ActivityOrderDetailBinding.inflate(LayoutInflater.from(this));
|
setContentView(binding.getRoot());
|
|
new TitleBar(this).setTitleText("工单详情").setLeftIco().setLeftIcoListening(v -> OrderDetailActivity.this.finish());
|
initView();
|
}
|
|
void initView() {
|
workOrderId = this.getIntent().getStringExtra("workOrderId");
|
if (this.getIntent().hasExtra("proResultId")) {
|
proResultId = this.getIntent().getStringExtra("proResultId");
|
getHandleData(proResultId);
|
}
|
if (!TextUtils.isEmpty(workOrderId)) {
|
getMarkerData(workOrderId);
|
} else {
|
this.finish();
|
ToastUtil.showToastLong(this, "当前workOrderId为空");
|
}
|
|
|
binding.setItemclidk(OrderDetailActivity.this);
|
|
mRecyclerView = binding.recyclerView;
|
FullyGridLayoutManager manager = new FullyGridLayoutManager(this, 4, GridLayoutManager.VERTICAL, false);
|
mRecyclerView.setLayoutManager(manager);
|
RecyclerView.ItemAnimator itemAnimator = mRecyclerView.getItemAnimator();
|
if (itemAnimator != null) {
|
((SimpleItemAnimator) itemAnimator).setSupportsChangeAnimations(false);
|
}
|
// 添加间距装饰,确保图片有合适的间隔
|
mRecyclerView.addItemDecoration(new GridSpacingItemDecoration(4, DensityUtil.dip2px(this, 8), false));
|
mAdapter = new ImageAdapter(this, images, (v, position) -> {
|
ImagePreview.getInstance().setContext(OrderDetailActivity.this).setImageList(imageInfoList).start();
|
|
});
|
mRecyclerView.setAdapter(mAdapter);
|
}
|
|
/**
|
* 获取工单详情
|
*/
|
private void getMarkerData(String workOrderId) {
|
Map<String, Object> params = new HashMap<>();
|
params.put("workOrderId", workOrderId);
|
ApiManager.getInstance().requestGet(this, Constants.BASE_URL + "/app/workOrder/getOneWorkOrder", OrderDetailResult.class, params, new SubscriberListener<BaseResponse<OrderDetailResult>>() {
|
@Override
|
public void onNext(BaseResponse<OrderDetailResult> t) {
|
if (t.isSuccess()) {
|
if (t.isSuccess()) {
|
if (t.getContent() != null) {
|
OrderDetailResult orderDetailResult = t.getContent();
|
binding.setData(orderDetailResult);
|
if (!TextUtils.isEmpty(t.getContent().getProResultId()) && TextUtils.isEmpty(proResultId)) {
|
getHandleData(orderDetailResult.getProResultId());
|
}
|
switch (orderDetailResult.getProResultStateId()) {
|
case 0://未上报
|
binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.black));
|
binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_no_bg));
|
break;
|
case 1://已上报
|
binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white));
|
binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_wait_bg));
|
binding.dealButton.setVisibility(View.GONE);
|
break;
|
case 2://已完成
|
binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white));
|
binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_finish_bg));
|
binding.dealButton.setVisibility(View.GONE);
|
break;
|
case 3://被驳回
|
binding.stateText.setTextColor(OrderDetailActivity.this.getResources().getColor(R.color.white));
|
binding.stateText.setBackground(OrderDetailActivity.this.getResources().getDrawable(R.drawable.order_state_reject_bg));
|
break;
|
|
}
|
} else {
|
ToastUtil.showToast(OrderDetailActivity.this, t.getMsg());
|
}
|
}
|
} else {
|
ToastUtil.showToast(OrderDetailActivity.this, t.getMsg());
|
}
|
}
|
|
@Override
|
public void onCloose() {
|
super.onCloose();
|
}
|
|
});
|
}
|
|
|
/**
|
* 获取处理详情
|
*/
|
private void getHandleData(String proResultId) {
|
|
Map<String, Object> params = new HashMap<>();
|
params.put("proResultId", proResultId);
|
ApiManager.getInstance().requestGet(this, Constants.BASE_URL + "/app/workOrder/getProResult", DealDetailResult.class, params, new SubscriberListener<BaseResponse<DealDetailResult>>() {
|
@Override
|
public void onNext(BaseResponse<DealDetailResult> t) {
|
if (t.isSuccess()) {
|
if (t.isSuccess()) {
|
if (t.getContent() != null) {
|
binding.orderDealLL.setVisibility(View.VISIBLE);
|
binding.setDealData(t.getContent());
|
images.addAll(t.getContent().getImages());
|
for (ImageResult imageResult : images) {
|
imageInfoList.add(imageResult.getWebPath());
|
}
|
mAdapter.notifyDataSetChanged();
|
} else {
|
ToastUtil.showToast(OrderDetailActivity.this, t.getMsg());
|
}
|
}
|
} else {
|
ToastUtil.showToast(OrderDetailActivity.this, t.getMsg());
|
}
|
}
|
|
@Override
|
public void onCloose() {
|
super.onCloose();
|
}
|
|
});
|
}
|
|
|
public void startDealActivity() {
|
Intent intent = new Intent(this, OrderDealActivity.class);
|
intent.putExtra("workOrderId", workOrderId);
|
startActivityForResult(intent, 1);
|
}
|
|
}
|