wuhb 2 years ago
parent
commit
a4f3675818

+ 47 - 14
app/src/main/java/com/qy/agv/activity/MainActivity.java

@@ -10,6 +10,7 @@ import android.content.DialogInterface;
 import android.content.IntentFilter;
 import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
+import android.os.Handler;
 import android.util.DisplayMetrics;
 import android.view.Gravity;
 import android.view.LayoutInflater;
@@ -95,6 +96,16 @@ public class MainActivity extends BaseActivity {
         initView();
         initData();
         Permission.checkPermission(this);
+        reloadData();
+    }
+
+    private void reloadData(){
+        new Handler().postDelayed(()->{
+            if(Constant.user != null) {
+                searchTask(1);
+            }
+            reloadData();
+        }, 10000);
     }
 
     private void initData(){
@@ -108,7 +119,7 @@ public class MainActivity extends BaseActivity {
         binding.swipeContainer.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
             @Override
             public void onRefresh() {
-                searchTask();
+                searchTask(0);
             }
         });
         binding.swipeContainer.autoRefresh();
@@ -182,7 +193,7 @@ public class MainActivity extends BaseActivity {
                             if (real_name_obj!=null) {
                                 submit.setText(real_name_obj.toString());
                             }
-                            searchTask();
+                            searchTask(0);
                         }
                     }
                 } catch (JSONException e) {
@@ -571,9 +582,11 @@ public class MainActivity extends BaseActivity {
         popupWindow1.showAtLocation(view, Gravity.CENTER, 0, 0);
     }
 
-    private void searchTask() {
+    private void searchTask(int from) {
         MyProgress myProgress = MyProgress.getInstance();
-        myProgress.show(context, "提示", "正在加载");
+        if(from == 0) {
+            myProgress.show(context, "提示", "正在加载");
+        }
         RequestParams params = httParams(Constant.TASK_LIST);
         params.addBodyParameter("requester", Constant.user.getUser_id().toString());
         params.addBodyParameter("current", "1");
@@ -596,15 +609,22 @@ public class MainActivity extends BaseActivity {
                             int pages = rs.getJSONObject("data").getInt("pages");
                             System.out.println(records.get("records"));
                             Type lt = new TypeToken<ArrayList<TaskModel>>() {}.getType();
-                            if(records.get("records")!=null) {
-                                mList.clear();
-                                List<TaskModel> taskModelList = new Gson().fromJson(records.get("records").toString(), lt);
-                                mList.addAll(taskModelList);
-                                binding.swipeContainer.setVisibility(View.VISIBLE);
-                                binding.tvEmpty.setVisibility(View.GONE);
-                                listViewAdapter.notifyDataSetChanged();
-                                binding.swipeContainer.setRefreshing(false);
-                                binding.swipeContainer.setLoading(false);
+                            Object recodes_obj = records.get("records");
+                            if(recodes_obj!=null) {
+                                if(from == 0) {
+                                    mList.clear();
+                                    List<TaskModel> taskModelList = new Gson().fromJson(recodes_obj.toString(), lt);
+                                    mList.addAll(taskModelList);
+                                    binding.swipeContainer.setVisibility(View.VISIBLE);
+                                    binding.tvEmpty.setVisibility(View.GONE);
+                                    listViewAdapter.notifyDataSetChanged();
+                                    binding.swipeContainer.setRefreshing(false);
+                                    binding.swipeContainer.setLoading(false);
+                                }
+                                if(from == 1){
+                                    List<TaskModel> taskModelList = new Gson().fromJson(recodes_obj.toString(), lt);
+                                    updateList(taskModelList);
+                                }
                             }
                         }
                     }
@@ -620,7 +640,8 @@ public class MainActivity extends BaseActivity {
             }
 
             @Override
-            public void onFinished() {myProgress.close();
+            public void onFinished() {
+                myProgress.close();
             }
 
             @Override
@@ -630,6 +651,18 @@ public class MainActivity extends BaseActivity {
         });
     }
 
+    public void updateList(List<TaskModel> n_list){
+        for (TaskModel taskModel:mList){
+            String id = taskModel.getId();
+            for (TaskModel nTaskModel:n_list){
+                if(id.equals(nTaskModel.getId())){
+                    taskModel.setRequestStatus(nTaskModel.getRequestStatus());
+                }
+            }
+        }
+        listViewAdapter.notifyDataSetChanged();
+    }
+
     private void logout(){
         AlertDialog alert = new AlertDialog.Builder(MainActivity.this)
                 .setTitle("提示")

+ 25 - 12
app/src/main/java/com/qy/agv/activity/adapter/MainListViewAdapter.java

@@ -6,7 +6,6 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
-import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.qy.agv.R;
@@ -60,17 +59,9 @@ public class MainListViewAdapter extends BaseAdapter {
         }
         mainHolder.startTime.setText(taskModel.getDistributionTime());
         mainHolder.taskName.setText(taskModel.getRequestType());
-        if("0".equals(taskModel.getRequestStatus())){
-            mainHolder.taskStatue.setTextColor(Color.BLUE);
-            mainHolder.taskStatue.setText("就绪");
-        }else if("4".equals(taskModel.getRequestStatus())
-                ||"5".equals(taskModel.getRequestStatus())){
-            mainHolder.taskStatue.setTextColor(Color.RED);
-            mainHolder.taskStatue.setText("失败");
-        } else{
-            mainHolder.taskStatue.setTextColor(Color.GREEN);
-            mainHolder.taskStatue.setText("完成");
-        }
+        StatusEnum status = StatusEnum.filter(taskModel.getRequestStatus());
+        mainHolder.taskStatue.setTextColor(status.color);
+        mainHolder.taskStatue.setText(status.text);
         mainHolder.desc.setText(taskModel.getRemark());
         return view;
     }
@@ -82,4 +73,26 @@ public class MainListViewAdapter extends BaseAdapter {
         public TextView taskStatue;
         public TextView desc;
     }
+
+    enum StatusEnum {
+        STATUS_0(Color.BLUE, "就绪"),
+        STATUS_1(Color.GREEN, "已调度"),
+        STATUS_2(Color.GREEN, "执行中"),
+        STATUS_3(Color.GREEN, "已完成"),
+        STATUS_4(Color.BLACK, "已取消"),
+        STATUS_5(Color.RED, "异常中"),
+        STATUS_6(Color.BLUE, "等待中");
+
+        private final Integer color;
+        private final String text;
+
+        StatusEnum(Integer color, String text) {
+            this.color = color;
+            this.text = text;
+        }
+        public static StatusEnum filter(int code){
+            return StatusEnum.valueOf("STATUS_"+code);
+        }
+    }
+
 }

+ 12 - 3
app/src/main/java/com/qy/agv/activity/model/TaskModel.java

@@ -1,10 +1,11 @@
 package com.qy.agv.activity.model;
 
 public class TaskModel {
+    private String id;
     private String distributionTime;
     private String requestType;
     private String requester;
-    private String requestStatus;
+    private Integer requestStatus;
     private String remark;
     private String taskInfo;
     private String robotId;
@@ -36,11 +37,11 @@ public class TaskModel {
         this.requester = requester;
     }
 
-    public String getRequestStatus() {
+    public Integer getRequestStatus() {
         return requestStatus;
     }
 
-    public void setRequestStatus(String requestStatus) {
+    public void setRequestStatus(Integer requestStatus) {
         this.requestStatus = requestStatus;
     }
 
@@ -83,4 +84,12 @@ public class TaskModel {
     public void setLocationTo(String locationTo) {
         this.locationTo = locationTo;
     }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
 }