From fafdeae594f79bad8133837e5cde239afca4da54 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 06 十二月 2024 16:13:02 +0800
Subject: [PATCH] 1.优化工单列表状态显示 2.接口添加token失效判断,失效后跳转到登录界面。

---
 app/src/main/java/com/dayu/pipirrapp/adapter/OrderAdapter.java           |   20 
 app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java            |    1 
 app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java     |  147 ++++++
 app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java         |   14 
 app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileResule.java       |   75 +++
 app/src/main/res/layout/activity_order_deal.xml                          |    6 
 app/src/main/java/com/dayu/pipirrapp/MyApplication.java                  |    4 
 app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java   |    4 
 app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java                |   70 +-
 app/src/main/java/com/dayu/pipirrapp/utils/DateUtils.java                |   13 
 app/src/main/res/layout/fragment_order.xml                               |    4 
 app/src/main/java/com/dayu/pipirrapp/bean/net/OrderListResult.java       |  146 ++++++
 app/src/main/res/drawable/order_state_wait_bg.xml                        |    8 
 app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java   |   73 +++
 app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java                 |  103 +++-
 app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileState.java        |   35 
 app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java           |   15 
 app/src/main/res/layout/item_order.xml                                   |    5 
 app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java           |    4 
 app/src/main/java/com/dayu/pipirrapp/utils/CommonKeyName.java            |    2 
 app/src/main/java/com/dayu/pipirrapp/bean/net/DealDetailResult.java      |  101 ++++
 app/src/main/res/layout/activity_order_detail.xml                        |   47 +
 app/src/main/java/com/dayu/pipirrapp/net/upload/ProgressListener.java    |    2 
 app/src/main/res/drawable/order_state_finish_bg.xml                      |    8 
 app/src/main/res/drawable/order_state_reject_bg.xml                      |    8 
 app/src/main/res/drawable/order_state_no_bg.xml                          |    8 
 app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingResult.java   |  105 ++++
 app/src/main/java/com/dayu/pipirrapp/net/upload/ProgressRequestBody.java |   52 +-
 app/src/main/java/com/dayu/pipirrapp/bean/net/OrderDetailResult.java     |  145 ++++++
 app/src/main/java/com/dayu/pipirrapp/utils/NetUtils.java                 |   51 +
 app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java          |   54 +-
 app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java           |    6 
 app/src/main/java/com/dayu/pipirrapp/net/ApiService.java                 |    4 
 app/src/main/res/layout/item_image.xml                                   |    6 
 34 files changed, 1,170 insertions(+), 176 deletions(-)

diff --git a/app/src/main/java/com/dayu/pipirrapp/MyApplication.java b/app/src/main/java/com/dayu/pipirrapp/MyApplication.java
index e2281fc..1bb8f2f 100644
--- a/app/src/main/java/com/dayu/pipirrapp/MyApplication.java
+++ b/app/src/main/java/com/dayu/pipirrapp/MyApplication.java
@@ -6,7 +6,7 @@
 import com.jeremyliao.liveeventbus.LiveEventBus;
 import com.tencent.bugly.crashreport.CrashReport;
 
-//import cn.jpush.android.api.JPushInterface;
+
 
 /**
  * author: zuo
@@ -19,7 +19,7 @@
     //鏁版嵁搴撶殑tag鍊�
     public String myTag = "-1";
     public String token;
-    public String userId;
+    public String userId;//2024120411461000002
 
 
     @Override
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
index e394ea6..d04a7d7 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
@@ -1,16 +1,14 @@
 package com.dayu.pipirrapp.activity;
 
-import android.net.ConnectivityManager;
-import android.net.Network;
 import android.os.Bundle;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.widget.Toast;
 
-import androidx.annotation.NonNull;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.core.content.ContextCompat;
 import androidx.fragment.app.Fragment;
+import androidx.lifecycle.Observer;
 
 import com.dayu.pipirrapp.MyApplication;
 import com.dayu.pipirrapp.R;
@@ -18,13 +16,15 @@
 import com.dayu.pipirrapp.bean.db.TagBean;
 import com.dayu.pipirrapp.dao.DaoSingleton;
 import com.dayu.pipirrapp.databinding.ActivityMainBinding;
-import com.dayu.pipirrapp.fragment.OrderFragment;
 import com.dayu.pipirrapp.fragment.MapFragment;
 import com.dayu.pipirrapp.fragment.MyFragment;
+import com.dayu.pipirrapp.fragment.OrderFragment;
 import com.dayu.pipirrapp.net.MqttManager;
 import com.dayu.pipirrapp.tool.InspectionUtils;
+import com.dayu.pipirrapp.utils.CommonKeyName;
 import com.dayu.pipirrapp.utils.MyLog;
 import com.dayu.pipirrapp.utils.NetUtils;
+import com.jeremyliao.liveeventbus.LiveEventBus;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -47,7 +47,7 @@
         super.onCreate(savedInstanceState);
         binding = ActivityMainBinding.inflate(LayoutInflater.from(this));
         setContentView(binding.getRoot());
-        registNetCallBack();
+
         setupFragments();
         initView();
         initTab();
@@ -60,6 +60,27 @@
         }
         mqttManager = new MqttManager(this);
         mqttManager.connect();
+        LiveEventBus.get(CommonKeyName.NetworkCallback).observeForever(new Observer<Object>() {
+            @Override
+            public void onChanged(Object o) {
+                switch ((int) o) {
+                    case NetUtils.Available:
+                        MyLog.i("MqttManager>>>Lost");
+                        InspectionUtils.aginPutInspectionData(MainActivity.this);
+                        break;
+                    case NetUtils.Lost:
+
+                        break;
+                }
+            }
+        });
+        registNetCallBack();
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+
     }
 
     private void setupFragments() {
@@ -163,31 +184,12 @@
 
     //    娉ㄥ唽缃戠粶鐩戞帶
     private void registNetCallBack() {
-        NetUtils.registerNetCallBack(this, networkCallback);
+        NetUtils.registerNetCallBack(this);
     }
 
     private void unregisterNetworkCallback() {
-        NetUtils.unregisterReceiver(this, networkCallback);
+        NetUtils.unregisterReceiver(this);
     }
-
-    //缃戠粶鐩戞帶
-    ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
-        @Override
-        public void onAvailable(@NonNull Network network) {
-            super.onAvailable(network);
-            // 杩欓噷鍙互鎵ц缃戠粶鍙敤鍚庣殑閫昏緫锛屾瘮濡傝繘琛屾暟鎹姹傜瓑
-            MyLog.d("onAvailable");
-            InspectionUtils.aginPutInspectionData(MainActivity.this);
-        }
-
-        @Override
-        public void onLost(@NonNull Network network) {
-            super.onLost(network);
-            // 杩欓噷鍙互鎵ц缃戠粶涓㈠け鍚庣殑閫昏緫锛屾瘮濡傚仠姝㈡暟鎹姹傜瓑
-            MyLog.d("onLost");
-        }
-    };
-
 
 
 
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
index cebbdd9..58a4ea8 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
@@ -1,24 +1,42 @@
 package com.dayu.pipirrapp.activity;
 
+import static com.dayu.pipirrapp.net.Constants.BASE_URL;
+
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
 import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.lifecycle.Observer;
 import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.recyclerview.widget.SimpleItemAnimator;
 
+import com.dayu.pipirrapp.MyApplication;
 import com.dayu.pipirrapp.adapter.AddPictureAdapter;
+import com.dayu.pipirrapp.bean.db.LatLonBean;
+import com.dayu.pipirrapp.bean.net.AddProcessingResult;
+import com.dayu.pipirrapp.bean.net.InsectionResult;
+import com.dayu.pipirrapp.bean.net.UplodFileState;
 import com.dayu.pipirrapp.databinding.ActivityOrderDealBinding;
+import com.dayu.pipirrapp.net.ApiManager;
+import com.dayu.pipirrapp.net.BaseResponse;
+import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
+import com.dayu.pipirrapp.net.upload.UploadFileListener;
+import com.dayu.pipirrapp.service.MyLocationService;
 import com.dayu.pipirrapp.tool.FullyGridLayoutManager;
 import com.dayu.pipirrapp.tool.GlideEngine;
+import com.dayu.pipirrapp.utils.CommonKeyName;
+import com.dayu.pipirrapp.utils.ToastUtil;
 import com.dayu.pipirrapp.view.TitleBar;
+import com.jeremyliao.liveeventbus.LiveEventBus;
 import com.luck.picture.lib.basic.PictureSelectionModel;
 import com.luck.picture.lib.basic.PictureSelector;
 import com.luck.picture.lib.config.PictureMimeType;
@@ -34,10 +52,13 @@
 import com.luck.picture.lib.utils.DensityUtil;
 import com.luck.picture.lib.utils.MediaUtils;
 import com.luck.picture.lib.utils.PictureFileUtils;
+import com.tencent.bugly.crashreport.CrashReport;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import top.zibin.luban.CompressionPredicate;
 import top.zibin.luban.Luban;
@@ -62,14 +83,29 @@
     private final List<LocalMedia> mData = new ArrayList<>();
     private ActivityResultLauncher<Intent> launcherResult;
     private ImageEngine imageEngine;
+    List<UplodFileState> uplodFileStates = new ArrayList<>();
+    String workOrderId;
+    LatLonBean latLonBean;
+
+    /**
+     * 瀹氫綅鐩戝惉
+     */
+    private Observer<Object> locationObserver = new Observer<Object>() {
+        @Override
+        public void onChanged(Object o) {
+            latLonBean = (LatLonBean) o;
+        }
+    };
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         binding = ActivityOrderDealBinding.inflate(LayoutInflater.from(this));
         setContentView(binding.getRoot());
+        workOrderId = this.getIntent().getStringExtra("workOrderId");
         launcherResult = createActivityResultLauncher();
         initView();
+        startLocation();
     }
 
 
@@ -104,6 +140,28 @@
             public void openPicture() {
                 //娣诲姞鍥剧墖
                 mOpenPicture();
+            }
+        });
+        binding.dealButton.setOnClickListener(v -> {
+            boolean isAllPost = true;
+            for (UplodFileState imgData : uplodFileStates) {
+                if (imgData.getState() == 0) {
+                    isAllPost = false;
+                }
+            }
+
+            if (!TextUtils.isEmpty(binding.contentET.getText().toString())) {
+                if (isAllPost) {
+                    if (uplodFileStates.size() > 0) {
+                        postData();
+                    } else {
+                        ToastUtil.showToast(OrderDealActivity.this, "璇蜂笂浼犲浘鐗�");
+                    }
+                } else {
+                    ToastUtil.showToast(OrderDealActivity.this, "鍥剧墖姝e湪涓婁紶璇风◢鍚庢彁浜�");
+                }
+            } else {
+                ToastUtil.showToast(OrderDealActivity.this, "璇疯緭鍏ュ弽棣堝唴瀹�");
             }
         });
     }
@@ -166,6 +224,10 @@
      * @param result
      */
     private void analyticalSelectResults(ArrayList<LocalMedia> result) {
+        Set<String> existingPaths = new HashSet<>();
+        for (UplodFileState uplodData : uplodFileStates) {
+            existingPaths.add(uplodData.getFilePath());
+        }
         for (LocalMedia media : result) {
             if (media.getWidth() == 0 || media.getHeight() == 0) {
                 if (PictureMimeType.isHasImage(media.getMimeType())) {
@@ -194,6 +256,17 @@
             Log.i(TAG, "瑁佸壀瀹介珮: " + media.getCropImageWidth() + "x" + media.getCropImageHeight());
             Log.i(TAG, "鏂囦欢澶у皬: " + PictureFileUtils.formatAccurateUnitFileSize(media.getSize()));
             Log.i(TAG, "鏂囦欢鏃堕暱: " + media.getDuration());
+            String compressPath = media.getCompressPath();
+            //鍒ゆ柇鏄惁鏈夎繖涓矾寰勶紝娌℃湁鐨勮瘽涓婁紶璇ュ浘鐗�
+            if (!existingPaths.contains(compressPath)) {
+                UplodFileState uplodFileState = new UplodFileState();
+                uplodFileState.setFilePath(media.getRealPath());
+                uplodFileStates.add(uplodFileState);
+                // 鎵ц涓婁紶鍥剧墖鐨勬搷浣�
+                uplodeImg(uplodFileState);
+            }
+
+
         }
         runOnUiThread(new Runnable() {
             @Override
@@ -205,6 +278,7 @@
 
                 mAdapter.getData().addAll(result);
                 mAdapter.notifyItemRangeInserted(0, result.size());
+
             }
         });
     }
@@ -256,4 +330,77 @@
     }
 
 
+    //涓婁紶鍥剧墖
+    private void uplodeImg(UplodFileState uplodFileState) {
+        ApiManager.getInstance().uploadFile(this, uplodFileState, new UploadFileListener() {
+            @Override
+            public void onBack(UplodFileState state) {
+                for (UplodFileState uplodFile : uplodFileStates) {
+                    if (uplodFile.getFilePath().equals(state.getFilePath())) {
+                        int index = uplodFileStates.indexOf(uplodFile);
+                        if (index != -1) {
+                            uplodFileStates.set(index, uplodFile); // 鏇存柊瀵瑰簲鐨勯」
+                        }
+                    }
+
+                }
+            }
+        });
+    }
+
+    /**
+     * 涓婃姤澶勭悊缁撴灉
+     */
+    private void postData() {
+        AddProcessingResult result = new AddProcessingResult();
+        result.setImages(uplodFileStates);
+        result.setContent(binding.contentET.getText().toString());
+        result.setInspectorId(MyApplication.myApplication.userId);
+        result.setWorkOrderId(workOrderId);
+        result.setCompleteTime(com.dayu.pipirrapp.utils.DateUtils.getNowDateToMMStr());
+        if (latLonBean != null) {
+            result.setLat(String.valueOf(latLonBean.getLatitude()));
+            result.setLng(String.valueOf(latLonBean.getLongitude()));
+        }
+        ApiManager.getInstance().requestPostHideLoading(this, BASE_URL + "/app/workOrder/addProcessingResult", InsectionResult.class, result.toMap(result), new SubscriberListener<BaseResponse<List<InsectionResult>>>() {
+            @Override
+            public void onNext(BaseResponse<List<InsectionResult>> t) {
+                try {
+                    if (t.isSuccess()) {
+                        ToastUtil.showToastLong(OrderDealActivity.this, "涓婃姤鎴愬姛");
+                        OrderDealActivity.this.finish();
+                    } else {
+
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    CrashReport.postCatchedException(e);
+                }
+
+            }
+        });
+    }
+
+    /**
+     * 寮�濮嬪畾浣嶇浉鍏抽�昏緫
+     */
+    private void startLocation() {
+        Intent location = new Intent(this, MyLocationService.class);
+        location.putExtra("isSingle", true);
+        //寮�鍚畾浣�
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+            startForegroundService(location);
+        } else {
+            startService(location);
+        }
+        //鑾峰彇瀹氫綅鏈嶅姟浼犺繃鏉ョ殑鍧愭爣鐐�
+        LiveEventBus.get(CommonKeyName.locationData).observeForever(locationObserver);
+    }
+
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        LiveEventBus.get(CommonKeyName.locationData).removeObserver(locationObserver);
+    }
 }
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
index 9d7f7e9..2c6dad0 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
@@ -4,9 +4,12 @@
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
+import android.view.View;
 
 import androidx.annotation.Nullable;
 
+import com.dayu.pipirrapp.R;
+import com.dayu.pipirrapp.bean.net.DealDetailResult;
 import com.dayu.pipirrapp.bean.net.OrderDetailResult;
 import com.dayu.pipirrapp.databinding.ActivityOrderDetailBinding;
 import com.dayu.pipirrapp.net.ApiManager;
@@ -30,6 +33,7 @@
 public class OrderDetailActivity extends BaseActivity {
     ActivityOrderDetailBinding binding;
     String workOrderId;
+    String proResultId;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -43,12 +47,18 @@
 
     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);
 
     }
@@ -59,13 +69,70 @@
     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.setDealData(t.getContent());
                         } else {
                             ToastUtil.showToast(OrderDetailActivity.this, t.getMsg());
                         }
@@ -87,7 +154,7 @@
     public void startDealActivity() {
         Intent intent = new Intent(this, OrderDealActivity.class);
         intent.putExtra("workOrderId", workOrderId);
-        startActivity(intent);
+        startActivityForResult(intent, 1);
     }
 
 }
diff --git a/app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java b/app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java
index d41fc68..fdb7df4 100644
--- a/app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java
+++ b/app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java
@@ -52,7 +52,20 @@
 
         public ImageViewHolder(View itemView) {
             super(itemView);
-//            imageView = itemView.findViewById(R.id.thumbnailImageView);
+            imageView = itemView.findViewById(R.id.thumbnailImageView);
         }
     }
+
+    public interface OnItemClickListener {
+        /**
+         * Item click event
+         *
+         * @param v
+         * @param position
+         */
+        void onItemClick(View v, int position);
+
+    }
+
+
 }
diff --git a/app/src/main/java/com/dayu/pipirrapp/adapter/OrderAdapter.java b/app/src/main/java/com/dayu/pipirrapp/adapter/OrderAdapter.java
index a7bdd38..f4dac01 100644
--- a/app/src/main/java/com/dayu/pipirrapp/adapter/OrderAdapter.java
+++ b/app/src/main/java/com/dayu/pipirrapp/adapter/OrderAdapter.java
@@ -56,6 +56,26 @@
             if (recordsList.size() > 0) {
                 OrderListResult.Data record = recordsList.get(position);
                 ((OrderAdapter.ViewHolder) holder).getBinding().setData(record);
+                switch (record.getProResultStateId()) {
+                    case 0://鏈笂鎶�
+                        ((ViewHolder) holder).mBinding.stateText.setTextColor(context.getResources().getColor(R.color.black));
+                        ((ViewHolder) holder).mBinding.stateText.setBackground(context.getResources().getDrawable(R.drawable.order_state_no_bg));
+                        break;
+                    case 1://宸蹭笂鎶�
+                        ((ViewHolder) holder).mBinding.stateText.setTextColor(context.getResources().getColor(R.color.white));
+                        ((ViewHolder) holder).mBinding.stateText.setBackground(context.getResources().getDrawable(R.drawable.order_state_wait_bg));
+                        break;
+                    case 2://宸插畬鎴�
+                        ((ViewHolder) holder).mBinding.stateText.setTextColor(context.getResources().getColor(R.color.white));
+                        ((ViewHolder) holder).mBinding.stateText.setBackground(context.getResources().getDrawable(R.drawable.order_state_finish_bg));
+                        break;
+                    case 3://琚┏鍥�
+                        ((ViewHolder) holder).mBinding.stateText.setTextColor(context.getResources().getColor(R.color.white));
+                        ((ViewHolder) holder).mBinding.stateText.setBackground(context.getResources().getDrawable(R.drawable.order_state_reject_bg));
+                        break;
+
+                }
+
             }
         }
     }
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingResult.java
new file mode 100644
index 0000000..72c365e
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/AddProcessingResult.java
@@ -0,0 +1,105 @@
+package com.dayu.pipirrapp.bean.net;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * AddProcessingResult -涓婃姤澶勭悊缁撴灉
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-12-05
+ */
+public class AddProcessingResult extends BaseRequest {
+    String workOrderId;//宸ュ崟ID
+    String inspectorId;//宸℃鍛業D
+    String content;//缁撴灉鍐呭
+    List<Image> images = new ArrayList<>();
+    String completeTime;//浠诲姟瀹屾垚鏃堕棿
+    String lng;
+    String lat;
+
+
+    public String getLng() {
+        return lng;
+    }
+
+    public void setLng(String lng) {
+        this.lng = lng;
+    }
+
+    public String getLat() {
+        return lat;
+    }
+
+    public void setLat(String lat) {
+        this.lat = lat;
+    }
+
+    public String getCompleteTime() {
+        return completeTime;
+    }
+
+    public void setCompleteTime(String completeTime) {
+        this.completeTime = completeTime;
+    }
+
+    public String getWorkOrderId() {
+        return workOrderId;
+    }
+
+    public void setWorkOrderId(String workOrderId) {
+        this.workOrderId = workOrderId;
+    }
+
+    public String getInspectorId() {
+        return inspectorId;
+    }
+
+    public void setInspectorId(String inspectorId) {
+        this.inspectorId = inspectorId;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public List<Image> getImages() {
+        return images;
+    }
+
+    public void setImages(List<UplodFileState> states) {
+        images.clear();
+        for (UplodFileState data : states) {
+            Image image = new Image();
+            image.setWebPath(data.getWebPath());
+            image.setId(data.getId());
+            images.add(image);
+        }
+    }
+
+    public class Image {
+        String id;
+        String webPath;
+
+        public String getId() {
+            return id;
+        }
+
+        public void setId(String id) {
+            this.id = id;
+        }
+
+        public String getWebPath() {
+            return webPath;
+        }
+
+        public void setWebPath(String webPath) {
+            this.webPath = webPath;
+        }
+    }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/DealDetailResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/DealDetailResult.java
new file mode 100644
index 0000000..e453602
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/DealDetailResult.java
@@ -0,0 +1,101 @@
+package com.dayu.pipirrapp.bean.net;
+
+/**
+ * DealDetailResult -澶勭悊缁撴灉璇︽儏鎺ュ彛
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-12-06
+ */
+public class DealDetailResult {
+    String proResultId;//澶勭悊缁撴灉ID
+    String workOrderId;//
+    String inspector;// 宸℃鍛�
+    String content;//缁撴灉鍐呭
+    double lng;// 缁忓害
+    double lat;// 绾害
+    String completeTime;// 浠诲姟瀹屾垚鏃堕棿  绮剧‘鍒板垎
+    String reportTime;//涓婃姤鏃堕棿
+    int state;//鐘舵�� 1-宸蹭笂鎶ワ紝2-宸查�氳繃锛�3-宸查┏鍥�
+    String stateName;// 鐘舵�佸悕绉�
+
+    public String getProResultId() {
+        return proResultId;
+    }
+
+    public void setProResultId(String proResultId) {
+        this.proResultId = proResultId;
+    }
+
+    public String getWorkOrderId() {
+        return workOrderId;
+    }
+
+    public void setWorkOrderId(String workOrderId) {
+        this.workOrderId = workOrderId;
+    }
+
+    public String getInspector() {
+        return inspector;
+    }
+
+    public void setInspector(String inspector) {
+        this.inspector = inspector;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public double getLng() {
+        return lng;
+    }
+
+    public void setLng(double lng) {
+        this.lng = lng;
+    }
+
+    public double getLat() {
+        return lat;
+    }
+
+    public void setLat(double lat) {
+        this.lat = lat;
+    }
+
+    public String getCompleteTime() {
+        return completeTime;
+    }
+
+    public void setCompleteTime(String completeTime) {
+        this.completeTime = completeTime;
+    }
+
+    public String getReportTime() {
+        return reportTime;
+    }
+
+    public void setReportTime(String reportTime) {
+        this.reportTime = reportTime;
+    }
+
+    public int getState() {
+        return state;
+    }
+
+    public void setState(int state) {
+        this.state = state;
+    }
+
+    public String getStateName() {
+        return stateName;
+    }
+
+    public void setStateName(String stateName) {
+        this.stateName = stateName;
+    }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderDetailResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderDetailResult.java
index 8dc1c15..458dbcb 100644
--- a/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderDetailResult.java
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderDetailResult.java
@@ -25,6 +25,151 @@
     public int rejectTimes;//椹冲洖娆℃暟
     public String state;//宸ュ崟鐘舵��
     public String processingState;//澶勭悊鐘舵��
+    public String proResultId;//澶勭悊缁撴灉id
+    public int proResultStateId;//1寰呭鏍� 2瀹℃牳閫氳繃 3椹冲洖
 
 
+    public int getProResultStateId() {
+        return proResultStateId;
+    }
+
+    public void setProResultStateId(int proResultStateId) {
+        this.proResultStateId = proResultStateId;
+    }
+
+    public String getWorkOrderId() {
+        return workOrderId;
+    }
+
+    public void setWorkOrderId(String workOrderId) {
+        this.workOrderId = workOrderId;
+    }
+
+    public String getDispatcherId() {
+        return dispatcherId;
+    }
+
+    public void setDispatcherId(String dispatcherId) {
+        this.dispatcherId = dispatcherId;
+    }
+
+    public String getDispatcher() {
+        return dispatcher;
+    }
+
+    public void setDispatcher(String dispatcher) {
+        this.dispatcher = dispatcher;
+    }
+
+    public String getInspectorId() {
+        return inspectorId;
+    }
+
+    public void setInspectorId(String inspectorId) {
+        this.inspectorId = inspectorId;
+    }
+
+    public String getInspector() {
+        return inspector;
+    }
+
+    public void setInspector(String inspector) {
+        this.inspector = inspector;
+    }
+
+    public String getTaskType() {
+        return taskType;
+    }
+
+    public void setTaskType(String taskType) {
+        this.taskType = taskType;
+    }
+
+    public String getTaskContent() {
+        return taskContent;
+    }
+
+    public void setTaskContent(String taskContent) {
+        this.taskContent = taskContent;
+    }
+
+    public String getCompleteCriteria() {
+        return completeCriteria;
+    }
+
+    public void setCompleteCriteria(String completeCriteria) {
+        this.completeCriteria = completeCriteria;
+    }
+
+    public String getDeadLine() {
+        return deadLine;
+    }
+
+    public void setDeadLine(String deadLine) {
+        this.deadLine = deadLine;
+    }
+
+    public String getClientReportId() {
+        return clientReportId;
+    }
+
+    public void setClientReportId(String clientReportId) {
+        this.clientReportId = clientReportId;
+    }
+
+    public String getInspectorReportId() {
+        return inspectorReportId;
+    }
+
+    public void setInspectorReportId(String inspectorReportId) {
+        this.inspectorReportId = inspectorReportId;
+    }
+
+    public String getCompleteTime() {
+        return completeTime;
+    }
+
+    public void setCompleteTime(String completeTime) {
+        this.completeTime = completeTime;
+    }
+
+    public String getDispatchTime() {
+        return dispatchTime;
+    }
+
+    public void setDispatchTime(String dispatchTime) {
+        this.dispatchTime = dispatchTime;
+    }
+
+    public int getRejectTimes() {
+        return rejectTimes;
+    }
+
+    public void setRejectTimes(int rejectTimes) {
+        this.rejectTimes = rejectTimes;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getProcessingState() {
+        return processingState;
+    }
+
+    public void setProcessingState(String processingState) {
+        this.processingState = processingState;
+    }
+
+    public String getProResultId() {
+        return proResultId;
+    }
+
+    public void setProResultId(String proResultId) {
+        this.proResultId = proResultId;
+    }
 }
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderListResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderListResult.java
index 8051f39..f722e0b 100644
--- a/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderListResult.java
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderListResult.java
@@ -76,6 +76,152 @@
         public int rejectTimes;//椹冲洖娆℃暟
         public String state;//宸ュ崟鐘舵��
         public String processingState;//澶勭悊鐘舵��
+        public String proResultId;//澶勭悊缁撴灉id
+        public int proResultStateId;//鐘舵�� 1-宸蹭笂鎶ワ紝2-宸查�氳繃锛�3-宸查┏鍥�
+
+        public String getWorkOrderId() {
+            return workOrderId;
+        }
+
+        public void setWorkOrderId(String workOrderId) {
+            this.workOrderId = workOrderId;
+        }
+
+        public String getDispatcherId() {
+            return dispatcherId;
+        }
+
+        public void setDispatcherId(String dispatcherId) {
+            this.dispatcherId = dispatcherId;
+        }
+
+        public String getDispatcher() {
+            return dispatcher;
+        }
+
+        public void setDispatcher(String dispatcher) {
+            this.dispatcher = dispatcher;
+        }
+
+        public String getInspectorId() {
+            return inspectorId;
+        }
+
+        public void setInspectorId(String inspectorId) {
+            this.inspectorId = inspectorId;
+        }
+
+        public String getInspector() {
+            return inspector;
+        }
+
+        public void setInspector(String inspector) {
+            this.inspector = inspector;
+        }
+
+        public String getTaskType() {
+            return taskType;
+        }
+
+        public void setTaskType(String taskType) {
+            this.taskType = taskType;
+        }
+
+        public String getTaskContent() {
+            return taskContent;
+        }
+
+        public void setTaskContent(String taskContent) {
+            this.taskContent = taskContent;
+        }
+
+        public String getCompleteCriteria() {
+            return completeCriteria;
+        }
+
+        public void setCompleteCriteria(String completeCriteria) {
+            this.completeCriteria = completeCriteria;
+        }
+
+        public String getDeadLine() {
+            return deadLine;
+        }
+
+        public void setDeadLine(String deadLine) {
+            this.deadLine = deadLine;
+        }
+
+        public String getClientReportId() {
+            return clientReportId;
+        }
+
+        public void setClientReportId(String clientReportId) {
+            this.clientReportId = clientReportId;
+        }
+
+        public String getInspectorReportId() {
+            return inspectorReportId;
+        }
+
+        public void setInspectorReportId(String inspectorReportId) {
+            this.inspectorReportId = inspectorReportId;
+        }
+
+        public String getCompleteTime() {
+            return completeTime;
+        }
+
+        public void setCompleteTime(String completeTime) {
+            this.completeTime = completeTime;
+        }
+
+        public String getDispatchTime() {
+            return dispatchTime;
+        }
+
+        public void setDispatchTime(String dispatchTime) {
+            this.dispatchTime = dispatchTime;
+        }
+
+        public int getRejectTimes() {
+            return rejectTimes;
+        }
+
+        public void setRejectTimes(int rejectTimes) {
+            this.rejectTimes = rejectTimes;
+        }
+
+        public String getState() {
+            return state;
+        }
+
+        public void setState(String state) {
+            this.state = state;
+        }
+
+        public String getProcessingState() {
+            return processingState;
+        }
+
+        public void setProcessingState(String processingState) {
+            this.processingState = processingState;
+        }
+
+        public String getProResultId() {
+            return proResultId;
+        }
+
+        public void setProResultId(String proResultId) {
+            this.proResultId = proResultId;
+        }
+
+        public int getProResultStateId() {
+            return proResultStateId;
+        }
+
+        public void setProResultStateId(int proResultStateId) {
+            this.proResultStateId = proResultStateId;
+        }
     }
 
 
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileResule.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileResule.java
new file mode 100644
index 0000000..49673ac
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileResule.java
@@ -0,0 +1,75 @@
+package com.dayu.pipirrapp.bean.net;
+
+/**
+ * UplodFileResule -鏂囦欢涓婁紶杩斿洖鍙傛暟
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-12-05
+ */
+public class UplodFileResule {
+    String downloadPath;//:http://127.0.0.1:8180/file/download/down?id=2024120515170600010,
+    String extName;//jpg,
+    String hash;//21457,
+    String id;//2024120515170600010,
+    String orgName;//IMG_20241205063339310,
+    String webPath;//http://127.0.0.1:54321/webfiles/webFile4/photo/20241205/2412051517050000.jpg,
+    String webPathZip;//http://127.0.0.1:54321/webfiles/webFile4/photo/20241205/2412051517050000_.jpg
+
+
+    public String getDownloadPath() {
+        return downloadPath;
+    }
+
+    public void setDownloadPath(String downloadPath) {
+        this.downloadPath = downloadPath;
+    }
+
+    public String getExtName() {
+        return extName;
+    }
+
+    public void setExtName(String extName) {
+        this.extName = extName;
+    }
+
+    public String getHash() {
+        return hash;
+    }
+
+    public void setHash(String hash) {
+        this.hash = hash;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getOrgName() {
+        return orgName;
+    }
+
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
+
+    public String getWebPath() {
+        return webPath;
+    }
+
+    public void setWebPath(String webPath) {
+        this.webPath = webPath;
+    }
+
+    public String getWebPathZip() {
+        return webPathZip;
+    }
+
+    public void setWebPathZip(String webPathZip) {
+        this.webPathZip = webPathZip;
+    }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileState.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileState.java
index 17ec2bf..eeaf40e 100644
--- a/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileState.java
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileState.java
@@ -1,7 +1,5 @@
 package com.dayu.pipirrapp.bean.net;
 
-import java.io.File;
-
 /**
  * Copyright (C), 2023,
  * Author: zuo
@@ -10,9 +8,10 @@
  */
 public class UplodFileState {
     int state = 0;//0姝e湪涓婁紶 1涓婁紶瀹屾垚 2涓婁紶澶辫触
-    File file;//涓婁紶鐨勬枃浠�
-    String url;//涓婁紶鏂囦欢鍚庤繑鍥炵殑url
+    String filePath;//涓婁紶鐨勬枃浠�
     int number;//澶辫触鍚庨噸璇曠殑娆℃暟
+    String id;//涓婁紶鍚庣殑id
+    String webPath;//涓婁紶鍚庣殑鍦板潃
 
     public int getNumber() {
         return number;
@@ -26,10 +25,6 @@
 
     }
 
-    public UplodFileState(File file) {
-        this.file = file;
-    }
-
     public int getState() {
         return state;
     }
@@ -38,19 +33,27 @@
         this.state = state;
     }
 
-    public File getFile() {
-        return file;
+    public String getFilePath() {
+        return filePath;
     }
 
-    public void setFile(File file) {
-        this.file = file;
+    public void setFilePath(String filePath) {
+        this.filePath = filePath;
     }
 
-    public String getUrl() {
-        return url;
+    public String getId() {
+        return id;
     }
 
-    public void setUrl(String url) {
-        this.url = url;
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getWebPath() {
+        return webPath;
+    }
+
+    public void setWebPath(String webPath) {
+        this.webPath = webPath;
     }
 }
diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
index c06bbe0..87a0040 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -450,12 +450,6 @@
         });
     }
 
-    /**
-     * 寮�濮嬪贰妫�
-     */
-    private void startInspection() {
-
-    }
 
 
     /**
diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java
index 4f5be47..387158e 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java
@@ -57,7 +57,6 @@
                         confirmDialog1.dismiss();
                         CleanDataUtils.cleanUserData(MyFragment.this.getContext());
                         Intent intent = new Intent(MyFragment.this.getContext(), LoginActivity.class);
-
                         MyFragment.this.getActivity().startActivity(intent);
                         MyFragment.this.getActivity().finish();
                     } catch (Exception e) {
diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java
index 2405d79..68aa844 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java
@@ -3,15 +3,16 @@
 import android.content.Intent;
 import android.graphics.Typeface;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
 import androidx.recyclerview.widget.LinearLayoutManager;
 
+import com.dayu.pipirrapp.MyApplication;
 import com.dayu.pipirrapp.R;
 import com.dayu.pipirrapp.activity.OrderDetailActivity;
 import com.dayu.pipirrapp.adapter.OrderAdapter;
@@ -27,8 +28,6 @@
 import com.scwang.smart.refresh.footer.ClassicsFooter;
 import com.scwang.smart.refresh.header.ClassicsHeader;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
-import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener;
-import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -169,7 +168,7 @@
         params.put("pageSize", pageSize);
         params.put("pageCurr", page);
         params.put("state", state);
-//        params.put("inspectorId", MyApplication.myApplication.userId);
+        params.put("inspectorId", MyApplication.myApplication.userId);
 
         ApiManager.getInstance().requestGetHideLoading(this.getContext(), Constants.BASE_URL + "/app/workOrder/getWorkOrders", OrderListResult.class, params, new SubscriberListener<BaseResponse<OrderListResult>>() {
             @Override
@@ -210,9 +209,12 @@
         });
     }
 
-    public void startDetail(String id) {
+    public void startDetail(String workOrderId, String proResultId) {
         Intent intent = new Intent(this.getContext(), OrderDetailActivity.class);
-        intent.putExtra("workOrderId", id);
+        intent.putExtra("workOrderId", workOrderId);
+        if (!TextUtils.isEmpty(proResultId)) {
+            intent.putExtra("proResultId", proResultId);
+        }
         startActivity(intent);
     }
 
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
index dc7a736..fad2f78 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
@@ -1,9 +1,13 @@
 package com.dayu.pipirrapp.net;
 
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
 import android.content.Context;
+import android.content.Intent;
 import android.util.Log;
 
 import com.dayu.pipirrapp.MyApplication;
+import com.dayu.pipirrapp.activity.LoginActivity;
 import com.dayu.pipirrapp.bean.net.CodeResult;
 import com.dayu.pipirrapp.bean.net.UplodFileState;
 import com.dayu.pipirrapp.bean.net.WeatherResponse;
@@ -11,11 +15,18 @@
 import com.dayu.pipirrapp.net.subscribers.CodeListener;
 import com.dayu.pipirrapp.net.subscribers.ProgressSubscriber;
 import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
+import com.dayu.pipirrapp.net.upload.ProgressListener;
+import com.dayu.pipirrapp.net.upload.ProgressRequestBody;
 import com.dayu.pipirrapp.net.upload.UploadFileListener;
+import com.dayu.pipirrapp.utils.CleanDataUtils;
 import com.dayu.pipirrapp.utils.MapJpgUtils;
 import com.dayu.pipirrapp.utils.MyJsonParser;
+import com.dayu.pipirrapp.utils.MyLog;
 import com.dayu.pipirrapp.utils.NetUtils;
+import com.google.gson.Gson;
+import com.google.gson.internal.LinkedTreeMap;
 
+import java.io.File;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -124,6 +135,12 @@
                     public BaseResponse<T> apply(Object o) {
                         if (o instanceof BaseResponse) {
                             BaseResponse tem = (BaseResponse) o;
+                            if (tem.getCode().equals("0000")) {
+                                //褰揷ode涓�0000鏄烦杞埌鐧诲綍鐣岄潰
+                                tem.setMsg("鐧诲綍澶辨晥璇烽噸鏂扮櫥褰�");
+                                redirectToLogin();
+                                return tem;
+                            }
                             BaseResponse<T> response = new BaseResponse<>();
                             response.setCode(tem.getCode());
                             response.setMsg(tem.getMsg());
@@ -261,34 +278,44 @@
      * 涓婁紶鏂囦欢
      *
      * @param context
-     * @param file
+     * @param uplodData
      * @param listener
      */
-    public void uploadFile(final Context context, final UplodFileState file, final UploadFileListener listener) {
+    public void uploadFile(final Context context, final UplodFileState uplodData, final UploadFileListener listener) {
 
-        // 鍒涘缓 RequestBody锛岀敤浜庡皝瑁呮瀯寤篟equestBody
-        RequestBody requestFile =
-                RequestBody.create(MediaType.parse("multipart/form-data"), file.getFile());
-        // MultipartBody.Part  鍜屽悗绔害瀹氬ソKey锛岃繖閲岀殑partName鏄敤image
-        MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getFile().getName(), requestFile);
-        // 娣诲姞鎻忚堪
-        String descriptionString = "hello, 杩欐槸鏂囦欢鎻忚堪";
-        RequestBody description = RequestBody.create(MediaType.parse("multipart/form-data"), descriptionString);
-        apiService.uploadFile(description, body).enqueue(new Callback<BaseResponse>() {
+        File file = new File(uplodData.getFilePath());
+        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
+        ProgressRequestBody progressRequestBody = new ProgressRequestBody(requestBody, new ProgressListener() {
+            @Override
+            public void onProgress(long bytesWritten, long contentLength, boolean done) {
+                // 鏇存柊杩涘害鏉℃垨杩涜鍏朵粬鎿嶄綔
+                int progress = (int) (100 * bytesWritten / contentLength);
+                // 渚嬪锛氭洿鏂� ProgressBar 鎴栨樉绀鸿繘搴�
+                runOnUiThread(() -> {
+                    // 杩涘害鏉℃洿鏂颁唬鐮�
+                    // progressBar.setProgress(progress);
+                    MyLog.d("progressRequestBody>>>" + "涓婁紶杩涘害: " + progress + "%");
+                });
+            }
+        });
+        MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), progressRequestBody);
+        RequestBody description = RequestBody.create(MediaType.parse("text/plain"), "file description");
+        apiService.uploadFile(body, description).enqueue(new Callback<BaseResponse>() {
             @Override
             public void onResponse(Call<BaseResponse> call, Response<BaseResponse> response) {
                 if (response.body() != null) {
                     if (response.body().isSuccess()) {
-                        file.setState(1);
-                        file.setUrl(response.body().getMsg());
-                        listener.onBack(file);
+                        uplodData.setState(1);
+                        uplodData.setId(((LinkedTreeMap) response.body().getContent()).get("id").toString());
+                        uplodData.setWebPath(((LinkedTreeMap) response.body().getContent()).get("webPath").toString());
+                        listener.onBack(uplodData);
                     } else {
-                        if (file.getNumber() <= uplodFilerepeatSize) {
-                            file.setNumber(file.getNumber() + 1);
-                            file.setState(2);
-                            uploadFile(context, file, listener);
+                        if (uplodData.getNumber() <= uplodFilerepeatSize) {
+                            uplodData.setNumber(uplodData.getNumber() + 1);
+                            uplodData.setState(2);
+                            uploadFile(context, uplodData, listener);
                         } else {
-                            listener.onBack(file);
+                            listener.onBack(uplodData);
                         }
                     }
                 }
@@ -296,16 +323,44 @@
 
             @Override
             public void onFailure(Call<BaseResponse> call, Throwable t) {
-                if (file.getNumber() <= uplodFilerepeatSize) {
-                    file.setNumber(file.getNumber() + 1);
-                    file.setState(2);
-                    uploadFile(context, file, listener);
+                if (uplodData.getNumber() <= uplodFilerepeatSize) {
+                    uplodData.setNumber(uplodData.getNumber() + 1);
+                    uplodData.setState(2);
+                    uploadFile(context, uplodData, listener);
                 } else {
-                    listener.onBack(file);
+                    listener.onBack(uplodData);
                 }
             }
         });
     }
 
+    /**
+     * 鍒ゆ柇褰撳墠code鏄惁鏄湭鐧诲綍鐘舵��
+     *
+     * @param responseBody the response body in JSON format
+     * @return true if login is required, false otherwise
+     */
+    private boolean isLoginRequired(String responseBody) {
+        try {
+            Gson gson = new Gson();
+            Map<String, Object> responseMap = gson.fromJson(responseBody, Map.class);
+            String code = (String) responseMap.get("code");
+            return "0000".equals(code);  // Check if the code is not 0000
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
 
+    /**
+     * 褰揷ode涓衡��0000鈥濇椂璺宠浆鍒扮櫥褰曠晫闈�
+     */
+    private void redirectToLogin() {
+
+        Context context = MyApplication.myApplication.getApplicationContext();
+        CleanDataUtils.cleanUserData(context);
+        Intent intent = new Intent(context, LoginActivity.class); // Assuming LoginActivity is your login screen
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); // Clear task stack
+        context.startActivity(intent);
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java b/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java
index ab0ee53..9f34339 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java
@@ -58,8 +58,8 @@
     Call<BaseResponse> uploadFiles(@PartMap Map<String, RequestBody> map);
 
     @Multipart
-    @POST(Constants.BASE_URL + "app/webFile/upPhoto")
-    Call<BaseResponse> uploadFile(@Part("description") RequestBody description, @Part MultipartBody.Part file);
+    @POST(Constants.BASE_URL + "/app/webFile/upPhoto")
+    Call<BaseResponse> uploadFile(@Part MultipartBody.Part file,@Part("description") RequestBody description);
 
     //鑾峰彇楠岃瘉鐮�
     @GET(Constants.BASE_URL+"/app/captcha/get")
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java b/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java
index 7a85cc5..dbea4cd 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java
@@ -2,9 +2,6 @@
 
 import android.content.Context;
 import android.net.ConnectivityManager;
-import android.net.Network;
-import android.net.NetworkCapabilities;
-import android.net.NetworkRequest;
 import android.util.Log;
 
 import com.dayu.pipirrapp.utils.CommonKeyName;
@@ -49,7 +46,27 @@
             connectOptions.setKeepAliveInterval(60); // 璁剧疆淇濇寔杩炴帴鐨勬椂闂�
             connectOptions.setAutomaticReconnect(true);  // 鍚敤鑷姩閲嶈繛
             connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
-            checkNetwork();
+//            LiveEventBus.get(CommonKeyName.NetworkCallback).observeForever(new Observer<Object>() {
+//                @Override
+//                public void onChanged(Object o) {
+//                    switch ((int) o) {
+//                        case NetUtils.Available:
+//                            MyLog.i("MqttManager>>>Available");
+//                            isHasNet = true;
+//                            reconnect();
+//                            break;
+//                        case NetUtils.Lost:
+//                            MyLog.i("MqttManager>>>Lost");
+//                            isHasNet = false;
+//                            try {
+//                                mqttClient.disconnect();
+//                            } catch (MqttException e) {
+//                                e.printStackTrace();
+//                            }
+//                            break;
+//                    }
+//                }
+//            });
         } catch (MqttException e) {
             e.printStackTrace();
         }
@@ -156,47 +173,18 @@
                 Log.d("MqttManager", "Reconnected to MQTT broker! isHasNet=true");
             } else {
                 Log.d("MqttManager", "isHasNet is false");
-                Thread.sleep(5000);
-                reconnect();
+//                Thread.sleep(5000);
+//                reconnect();
             }
 
         } catch (MqttException | InterruptedException e) {
-            try {
-                Thread.sleep(5000);
-            } catch (InterruptedException ex) {
-                e.printStackTrace();
-            }// 姣� 5 绉掗噸璇曚竴娆�
-            reconnect();
+//            try {
+//                Thread.sleep(5000);
+//            } catch (InterruptedException ex) {
+//                e.printStackTrace();
+//            }// 姣� 5 绉掗噸璇曚竴娆�
+//            reconnect();
 
         }
-    }
-
-    public void checkNetwork() {
-        NetworkRequest request = new NetworkRequest.Builder().addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)  // 蹇呴』鍏峰浜掕仈缃戣兘鍔�
-                .build();
-
-        connectivityManager.registerNetworkCallback(request, new ConnectivityManager.NetworkCallback() {
-            @Override
-            public void onAvailable(Network network) {
-                super.onAvailable(network);
-                // 缃戠粶鍙敤鏃剁殑澶勭悊閫昏緫
-                Log.d("MqttManager", "Network is available.");
-                isHasNet = true;
-                reconnect();
-            }
-
-            @Override
-            public void onLost(Network network) {
-                super.onLost(network);
-                // 缃戠粶涓㈠け鏃剁殑澶勭悊閫昏緫
-                Log.d("MqttManager", "Network is lost.");
-                isHasNet = false;
-                try {
-                    mqttClient.disconnect();
-                } catch (MqttException e) {
-                    e.printStackTrace();
-                }
-            }
-        });
     }
 }
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java b/app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java
index 32f133b..2fa9142 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/MyIntercepterApplication.java
@@ -39,6 +39,7 @@
                     e.printStackTrace();
                     return getNullResponse(request);
                 }
+
                 return response;
             } else {
                 return getNullResponse(request);
@@ -99,4 +100,7 @@
         builder.message(message);
         return builder.build();
     }
+
+
+
 }
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/upload/ProgressListener.java b/app/src/main/java/com/dayu/pipirrapp/net/upload/ProgressListener.java
index bce7d0a..6a34b04 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/upload/ProgressListener.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/upload/ProgressListener.java
@@ -1,5 +1,5 @@
 package com.dayu.pipirrapp.net.upload;
 
 public interface ProgressListener {
-    void onProgress(long bytesWritten, long totalBytes);
+    void onProgress(long bytesWritten, long totalBytes, boolean done);
 }
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/upload/ProgressRequestBody.java b/app/src/main/java/com/dayu/pipirrapp/net/upload/ProgressRequestBody.java
index 964c1c4..eacf50d 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/upload/ProgressRequestBody.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/upload/ProgressRequestBody.java
@@ -1,14 +1,14 @@
 package com.dayu.pipirrapp.net.upload;
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 
 import okhttp3.MediaType;
 import okhttp3.RequestBody;
+import okio.Buffer;
 import okio.BufferedSink;
-import okio.BufferedSource;
+import okio.ForwardingSink;
 import okio.Okio;
+import okio.Sink;
 
 /**
  * ProgressRequestBody -
@@ -18,36 +18,42 @@
  * @since 2024-11-28
  */
 public class ProgressRequestBody extends RequestBody {
-    private File file;
-    private ProgressListener listener;
-    private MediaType mediaType;
+    private final RequestBody requestBody;
+    private final ProgressListener progressListener;
 
-    public ProgressRequestBody(File file, ProgressListener listener, String mimeType) {
-        this.file = file;
-        this.listener = listener;
-        this.mediaType = MediaType.parse(mimeType);
+    public ProgressRequestBody(RequestBody requestBody, ProgressListener progressListener) {
+        this.requestBody = requestBody;
+        this.progressListener = progressListener;
     }
 
     @Override
     public MediaType contentType() {
-        return mediaType;
+        return requestBody.contentType();
+    }
+
+    @Override
+    public long contentLength() throws IOException {
+        return requestBody.contentLength();
     }
 
     @Override
     public void writeTo(BufferedSink sink) throws IOException {
-        try (FileInputStream fileInputStream = new FileInputStream(file);
-             BufferedSource source = (BufferedSource) Okio.source(fileInputStream)) {
-            long totalBytes = file.length();
-            long bytesWritten = 0;
-            long read;
-            byte[] buffer = new byte[2048];
-            while ((read = source.read(buffer)) != -1) {
-                sink.write(buffer, 0, (int) read);
-                bytesWritten += read;
-                if (listener != null) {
-                    listener.onProgress(bytesWritten, totalBytes);
+        Sink progressSink = new ForwardingSink(sink) {
+            long totalBytesWritten = 0;
+
+            @Override
+            public void write(Buffer source, long byteCount) throws IOException {
+                super.write(source, byteCount);
+                totalBytesWritten += byteCount;
+                if (progressListener != null) {
+                    progressListener.onProgress(totalBytesWritten, contentLength(),false);
                 }
             }
-        }
+        };
+        BufferedSink bufferedSink = Okio.buffer(progressSink);
+        requestBody.writeTo(bufferedSink);
+        bufferedSink.flush();
     }
+
+
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java b/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java
index 9e8ccd3..6679193 100644
--- a/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java
+++ b/app/src/main/java/com/dayu/pipirrapp/tool/InspectionUtils.java
@@ -146,7 +146,9 @@
                                             .subscribeOn(Schedulers.io())
                                             .observeOn(Schedulers.io())
                                             .subscribe(inspectionLocationBeans -> {
-                                                postInspectionData(context, inspectionBeans, inspectionLocationBeans);
+                                                if (inspectionLocationBeans != null && inspectionLocationBeans.size() > 0) {
+                                                    postInspectionData(context, inspectionBeans, inspectionLocationBeans);
+                                                }
                                             });
                                 });
                     }
diff --git a/app/src/main/java/com/dayu/pipirrapp/utils/CommonKeyName.java b/app/src/main/java/com/dayu/pipirrapp/utils/CommonKeyName.java
index 13cb846..b4a099b 100644
--- a/app/src/main/java/com/dayu/pipirrapp/utils/CommonKeyName.java
+++ b/app/src/main/java/com/dayu/pipirrapp/utils/CommonKeyName.java
@@ -21,4 +21,6 @@
 
     public final static String MQTTData = "MQTTData";
 
+    public final static String NetworkCallback = "NetworkCallback";
+
 }
diff --git a/app/src/main/java/com/dayu/pipirrapp/utils/DateUtils.java b/app/src/main/java/com/dayu/pipirrapp/utils/DateUtils.java
index d95c903..1d25d66 100644
--- a/app/src/main/java/com/dayu/pipirrapp/utils/DateUtils.java
+++ b/app/src/main/java/com/dayu/pipirrapp/utils/DateUtils.java
@@ -28,5 +28,18 @@
         return sdf.format(date);
     }
 
+    /**
+     * 杩斿洖缁熶竴鏍煎紡鐨勫綋鍓嶆椂闂存埅姝㈠埌鍒嗛挓
+     *
+     * @return yyyy-MM-dd HH:mm:ss
+     */
+    public static String getNowDateToMMStr() {
+        // 褰撳墠鏃堕棿
+        Date date = new Date();
+        // 鍒涘缓 SimpleDateFormat 瀵硅薄锛岃缃棩鏈熸牸寮�
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
+        // 鏍煎紡鍖栧綋鍓嶆椂闂翠负瀛楃涓�
+        return sdf.format(date);
+    }
 
 }
diff --git a/app/src/main/java/com/dayu/pipirrapp/utils/NetUtils.java b/app/src/main/java/com/dayu/pipirrapp/utils/NetUtils.java
index 9ae2797..ed4ba2b 100644
--- a/app/src/main/java/com/dayu/pipirrapp/utils/NetUtils.java
+++ b/app/src/main/java/com/dayu/pipirrapp/utils/NetUtils.java
@@ -2,10 +2,15 @@
 
 import android.content.Context;
 import android.net.ConnectivityManager;
+import android.net.Network;
 import android.net.NetworkCapabilities;
 import android.net.NetworkInfo;
 import android.net.NetworkRequest;
 import android.os.Build;
+
+import androidx.annotation.NonNull;
+
+import com.jeremyliao.liveeventbus.LiveEventBus;
 
 /**
  * NetUtils - 缃戠粶鐩稿叧鍏叡鏂规硶
@@ -16,6 +21,10 @@
  */
 public class NetUtils {
     public static final String TAG = "NetUtils";
+    //鏈夌綉
+    public static final int Available = 1;
+    //鏃犵綉
+    public static final int Lost = 2;
 
     /**
      * 鍒ゆ柇褰撳墠鏄惁鏈夌綉缁�
@@ -49,26 +58,52 @@
     }
 
 
-    public static void registerNetCallBack(Context context, ConnectivityManager.NetworkCallback networkCallback) {
+    public static void registerNetCallBack(Context context) {
+        MyLog.d("registerNetCallBack");
         // 娉ㄥ唽缃戠粶鐘舵�佺洃鍚�
         ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 
         // 鏋勫缓涓�涓� NetworkRequest锛屾寚瀹氭劅鍏磋叮鐨勭綉缁滅被鍨�
         NetworkRequest networkRequest = new NetworkRequest.Builder()
+                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
+                .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) // 鐩戝惉 Wi-Fi 缃戠粶
+                .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)//// 鐩戝惉绉诲姩鏁版嵁缃戠粶
                 .build();
         // 娉ㄥ唽缃戠粶鐩戝惉
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
-            cm.registerNetworkCallback(networkRequest, networkCallback);
-        } else {
-            // 瀵逛簬杈冭�佺増鏈紝鍙互浣跨敤鏃х殑鏂规硶娉ㄥ唽缃戠粶鐘舵�佺洃鍚�
-            // ConnectivityManager.setNetworkCallback() 鏃犳硶鍦� API 绾у埆 24 浠ヤ笅浣跨敤
-        }
+
+        cm.registerNetworkCallback(networkRequest, networkCallback);
+
     }
 
     // 娉ㄩ攢骞挎挱鎺ユ敹鍣�
-    public static void unregisterReceiver(Context context,ConnectivityManager.NetworkCallback networkCallback) {
+    public static void unregisterReceiver(Context context) {
+        MyLog.d("unregisterReceiver");
         ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
         cm.unregisterNetworkCallback(networkCallback);
     }
 
+    //缃戠粶鐩戞帶
+    static ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
+        @Override
+        public void onAvailable(@NonNull Network network) {
+            super.onAvailable(network);
+            // 杩欓噷鍙互鎵ц缃戠粶鍙敤鍚庣殑閫昏緫锛屾瘮濡傝繘琛屾暟鎹姹傜瓑
+            MyLog.d("networkCallback銆媜nAvailable");
+            LiveEventBus.get(CommonKeyName.NetworkCallback).post(Available);
+        }
+
+        @Override
+        public void onLost(@NonNull Network network) {
+            super.onLost(network);
+            // 杩欓噷鍙互鎵ц缃戠粶涓㈠け鍚庣殑閫昏緫锛屾瘮濡傚仠姝㈡暟鎹姹傜瓑
+            MyLog.d("networkCallback銆媜nLost");
+            LiveEventBus.get(CommonKeyName.NetworkCallback).post(Lost);
+        }
+
+        @Override
+        public void onCapabilitiesChanged(@NonNull Network network, @NonNull NetworkCapabilities networkCapabilities) {
+            super.onCapabilitiesChanged(network, networkCapabilities);
+            MyLog.d("networkCallback銆媜nCapabilitiesChanged");
+        }
+    };
 }
diff --git a/app/src/main/res/drawable/order_state_finish_bg.xml b/app/src/main/res/drawable/order_state_finish_bg.xml
new file mode 100644
index 0000000..e2093b1
--- /dev/null
+++ b/app/src/main/res/drawable/order_state_finish_bg.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#1890FF" />
+    <corners android:radius="5dp" />
+    <stroke
+        android:width="1dp"
+        android:color="#1572C6" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/order_state_no_bg.xml b/app/src/main/res/drawable/order_state_no_bg.xml
new file mode 100644
index 0000000..2dbd1e6
--- /dev/null
+++ b/app/src/main/res/drawable/order_state_no_bg.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#F6F7FB" />
+    <corners android:radius="5dp" />
+    <stroke
+        android:width="1dp"
+        android:color="#ededed" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/order_state_reject_bg.xml b/app/src/main/res/drawable/order_state_reject_bg.xml
new file mode 100644
index 0000000..c722939
--- /dev/null
+++ b/app/src/main/res/drawable/order_state_reject_bg.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#F44336" />
+    <corners android:radius="5dp" />
+    <stroke
+        android:width="1dp"
+        android:color="#C23626" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/order_state_wait_bg.xml b/app/src/main/res/drawable/order_state_wait_bg.xml
new file mode 100644
index 0000000..571b153
--- /dev/null
+++ b/app/src/main/res/drawable/order_state_wait_bg.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#8BC34A" />
+    <corners android:radius="5dp" />
+    <stroke
+        android:width="1dp"
+        android:color="#4CAF50" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_order_deal.xml b/app/src/main/res/layout/activity_order_deal.xml
index 1465137..f10ecde 100644
--- a/app/src/main/res/layout/activity_order_deal.xml
+++ b/app/src/main/res/layout/activity_order_deal.xml
@@ -42,11 +42,15 @@
 
 
             <EditText
+                android:id="@+id/contentET"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
+                android:text=""
+                android:gravity="start"
                 android:background="@drawable/edittext_backgroud"
-                android:minHeight="100dp" />
+                android:minHeight="100dp"
+                android:maxHeight="200dp"/>
 
             <TextView
                 android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/activity_order_detail.xml b/app/src/main/res/layout/activity_order_detail.xml
index 613ac31..e42682f 100644
--- a/app/src/main/res/layout/activity_order_detail.xml
+++ b/app/src/main/res/layout/activity_order_detail.xml
@@ -11,6 +11,10 @@
         <variable
             name="data"
             type="com.dayu.pipirrapp.bean.net.OrderDetailResult" />
+
+        <variable
+            name="dealData"
+            type="com.dayu.pipirrapp.bean.net.DealDetailResult" />
     </data>
 
     <RelativeLayout
@@ -27,7 +31,10 @@
             android:id="@+id/ScrollView"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:layout_below="@+id/title">
+            android:layout_above="@+id/deal_button"
+            android:layout_below="@+id/title"
+            android:layout_marginTop="5dp"
+            android:layout_marginBottom="5dp">
 
 
             <LinearLayout
@@ -47,8 +54,8 @@
                         android:id="@+id/ic_project"
                         android:layout_width="20dp"
                         android:layout_height="20dp"
-                        android:layout_marginRight="15dp"
                         android:layout_centerVertical="true"
+                        android:layout_marginRight="15dp"
                         android:src="@mipmap/icon_project" />
 
                     <TextView
@@ -79,7 +86,7 @@
                         android:paddingTop="5dp"
                         android:paddingRight="10dp"
                         android:paddingBottom="5dp"
-                        android:text="@{data.state}"
+                        android:text="@{data.processingState}"
                         android:textSize="@dimen/manage_item_text_state_size" />
 
 
@@ -278,7 +285,7 @@
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:orientation="vertical"
-                    android:visibility="gone">
+                    android:visibility="visible">
 
                     <TextView
                         android:layout_width="match_parent"
@@ -302,14 +309,40 @@
 
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:text="鍙嶉锛�"
+                            android:text="鍙嶉璇︽儏锛�"
                             android:textColor="@color/manage_item_text"
                             android:textSize="@dimen/order_detail_text_size" />
 
                         <TextView
                             android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:text="@{data.completeCriteria}"
+                            android:text="@{dealData.content}"
+                            android:textColor="@color/manage_item_text"
+                            android:textSize="@dimen/order_detail_text_size" />
+
+
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="10dp"
+                        android:gravity="center_vertical"
+                        android:orientation="horizontal">
+
+
+                        <TextView
+
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="鍙嶉鏃堕棿锛�"
+                            android:textColor="@color/manage_item_text"
+                            android:textSize="@dimen/order_detail_text_size" />
+
+                        <TextView
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="@{dealData.reportTime}"
                             android:textColor="@color/manage_item_text"
                             android:textSize="@dimen/order_detail_text_size" />
 
@@ -352,8 +385,8 @@
             android:layout_alignParentBottom="true"
             android:background="@color/title_color"
             android:gravity="center"
-            android:text="澶勭悊宸ュ崟"
             android:onClick="@{()->itemclidk.startDealActivity()}"
+            android:text="澶勭悊宸ュ崟"
             android:textColor="@color/white"
             android:textSize="@dimen/order_detail_button_size" />
 
diff --git a/app/src/main/res/layout/fragment_order.xml b/app/src/main/res/layout/fragment_order.xml
index c89655f..ede1ea9 100644
--- a/app/src/main/res/layout/fragment_order.xml
+++ b/app/src/main/res/layout/fragment_order.xml
@@ -156,7 +156,7 @@
                 android:layout_weight="1"
                 android:background="@drawable/ic_choose_bg_whit"
                 android:gravity="center"
-                android:text="鏈В鍐�"
+                android:text="鏈畬鎴�"
                 android:textColor="@color/title_color"
                 android:textSize="@dimen/top_state_text_size"
                 android:textStyle="bold" />
@@ -168,7 +168,7 @@
                 android:layout_margin="5dp"
                 android:layout_weight="1"
                 android:gravity="center"
-                android:text="宸茶В鍐�"
+                android:text="宸插畬鎴�"
                 android:textColor="@color/black"
                 android:textSize="@dimen/top_state_text_size" />
 
diff --git a/app/src/main/res/layout/item_image.xml b/app/src/main/res/layout/item_image.xml
index 2e11ae1..67a51d5 100644
--- a/app/src/main/res/layout/item_image.xml
+++ b/app/src/main/res/layout/item_image.xml
@@ -7,8 +7,8 @@
 
     <ImageView
         android:id="@+id/thumbnailImageView"
-        android:layout_width="100dp"
-        android:layout_height="100dp"
-        android:scaleType="centerCrop"/>
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scaleType="centerCrop" />
 
 </androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_order.xml b/app/src/main/res/layout/item_order.xml
index 43adade..6a76e2e 100644
--- a/app/src/main/res/layout/item_order.xml
+++ b/app/src/main/res/layout/item_order.xml
@@ -16,7 +16,7 @@
         android:layout_height="wrap_content"
         android:layout_marginBottom="10dp"
         android:background="@drawable/ic_choose_gray_edge"
-        android:onClick="@{()->itemclidk.startDetail(data.workOrderId)}"
+        android:onClick="@{()->itemclidk.startDetail(data.workOrderId,data.proResultId)}"
         android:orientation="vertical"
         android:padding="10dp">
 
@@ -58,11 +58,12 @@
                 android:layout_centerVertical="true"
                 android:background="@drawable/ic_edt_gray_bg"
                 android:gravity="center"
+                android:textColor="@color/black"
                 android:paddingLeft="10dp"
                 android:paddingTop="5dp"
                 android:paddingRight="10dp"
                 android:paddingBottom="5dp"
-                android:text="@{data.state}"
+                android:text="@{data.processingState}"
                 android:textSize="@dimen/manage_item_text_state_size" />
 
 

--
Gitblit v1.8.0