管灌系统巡查员智能手机App
zuoxiao
2024-12-09 a2a1bd40089d81286f8257ca4c61ce49155b6af3
app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
@@ -4,20 +4,39 @@
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 -
@@ -30,6 +49,11 @@
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) {
@@ -43,14 +67,34 @@
    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);
    }
    /**
@@ -59,13 +103,76 @@
    private void getMarkerData(String workOrderId) {
        Map<String, Object> params = new HashMap<>();
        params.put("workOrderId", workOrderId);
        ApiManager.getInstance().requestGetHideLoading(this, Constants.BASE_URL + "/app/workOrder/getOneWorkOrder", OrderDetailResult.class, params, new SubscriberListener<BaseResponse<OrderDetailResult>>() {
        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) {
                            binding.setData(t.getContent());
                            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());
                        }
@@ -87,7 +194,7 @@
    public void startDealActivity() {
        Intent intent = new Intent(this, OrderDealActivity.class);
        intent.putExtra("workOrderId", workOrderId);
        startActivity(intent);
        startActivityForResult(intent, 1);
    }
}