From f4a6d4f0996238f9c85e4986deffe69a1c8256e6 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期三, 04 九月 2024 20:47:58 +0800
Subject: [PATCH] 员工流程

---
 app/src/main/java/com/lotaai/canguiayw/OpenDoorFragment.java |  204 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 158 insertions(+), 46 deletions(-)

diff --git a/app/src/main/java/com/lotaai/canguiayw/OpenDoorFragment.java b/app/src/main/java/com/lotaai/canguiayw/OpenDoorFragment.java
index 78a2393..6ec4fde 100644
--- a/app/src/main/java/com/lotaai/canguiayw/OpenDoorFragment.java
+++ b/app/src/main/java/com/lotaai/canguiayw/OpenDoorFragment.java
@@ -12,27 +12,46 @@
 import android.widget.AdapterView;
 import android.widget.Button;
 import android.widget.GridView;
+import android.widget.TextView;
 import android.widget.ThemedSpinnerAdapter;
 
 import androidx.fragment.app.Fragment;
 
+import com.blankj.utilcode.util.CacheDiskUtils;
+import com.blankj.utilcode.util.GsonUtils;
 import com.blankj.utilcode.util.LogUtils;
 import com.liys.lswitch.BaseSwitch;
 import com.liys.lswitch.LSwitch;
+import com.lotaai.canguiayw.common.HttpLoggerInterceptor;
+import com.lotaai.canguiayw.common.HttpUrlDefine;
 import com.lotaai.canguiayw.common.SettingConfig;
+import com.lotaai.canguiayw.data.BaseDto;
 import com.lotaai.canguiayw.device.CanGuiCommand;
 import com.lotaai.canguiayw.device.CanguiStatus;
 import com.lotaai.canguiayw.device.DeviceMessage;
 import com.lotaai.canguiayw.device.DeviceType;
 import com.lotaai.canguiayw.device.MessageType;
 import com.lotaai.canguiayw.view.GridTableAdapter;
+import com.lotaai.canguiayw.view.GridTableAdapterNew;
+import com.pranavpandey.android.dynamic.toasts.DynamicToast;
+
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.FormBody;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
 
 public class OpenDoorFragment extends Fragment {
 
@@ -52,8 +71,9 @@
     private Button fugui003;
     private Button fugui004;
     private Button fugui005;
-    private int cureentSelectGui =0;
-    private boolean isCanRun = true;
+    private TextView tv_close;
+    private int cureentSelectGui = 0;
+    private boolean isCanRun = false;
 
 
     @Override
@@ -68,16 +88,18 @@
         super.onDestroy();
     }
 
+
     @Subscribe(threadMode = ThreadMode.ASYNC)
-    public void recvCommand(DeviceMessage mssage){
+    public void recvCommand(DeviceMessage mssage) {
         try {
-            if (mssage.getMessageType() == MessageType.FANHUI.ordinal()){
+            if (mssage.getMessageType() == MessageType.FANHUI.ordinal()) {
                 isCanRun = false;
             }
-        }catch (Exception e){
+        } catch (Exception e) {
             LogUtils.e(e);
         }
     }
+
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -89,67 +111,67 @@
         initView();
         intitSwitch();
         initButton();
-        SettingConfig.getInstance().getExecutor().execute(syncRunnable);
+       // SettingConfig.getInstance().getExecutor().execute(syncRunnable);
         return root;
     }
 
     Runnable syncRunnable = new Runnable() {
         @Override
         public void run() {
-           while (isCanRun){
-               try {
-                   Thread.sleep(1000);
-                   showHandler.sendEmptyMessage(1);
-                   Log.i(TAG,"在运行");
-               } catch (InterruptedException e) {
-                   e.printStackTrace();
-               }catch (Exception e){
+            while (isCanRun) {
+                try {
+                    Thread.sleep(1000);
+                    showHandler.sendEmptyMessage(1);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                } catch (Exception e) {
 
-               }
-           }
+                }
+            }
         }
     };
 
-    private void initButton(){
+    private void initButton() {
         zhugui = root.findViewById(R.id.zhu001);
         fugui001 = root.findViewById(R.id.gui001);
         fugui002 = root.findViewById(R.id.gui002);
         fugui003 = root.findViewById(R.id.gui003);
         fugui004 = root.findViewById(R.id.gui004);
         fugui005 = root.findViewById(R.id.gui005);
-        for (int g =0; g <SettingConfig.getInstance().statusList.size();g++){
-            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 0){
-                if (zhugui.getVisibility()!=View.VISIBLE){
+        tv_close = root.findViewById(R.id.tv_close);
+        for (int g = 0; g < SettingConfig.getInstance().statusList.size(); g++) {
+            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 0) {
+                if (zhugui.getVisibility() != View.VISIBLE) {
                     zhugui.setVisibility(View.VISIBLE);
                 }
             }
 
-            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 1){
-                if (fugui001.getVisibility()!=View.VISIBLE){
+            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 1) {
+                if (fugui001.getVisibility() != View.VISIBLE) {
                     fugui001.setVisibility(View.VISIBLE);
                 }
             }
 
-            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 2){
-                if (fugui002.getVisibility()!=View.VISIBLE){
+            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 2) {
+                if (fugui002.getVisibility() != View.VISIBLE) {
                     fugui002.setVisibility(View.VISIBLE);
                 }
             }
 
-            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 3){
-                if (fugui003.getVisibility()!=View.VISIBLE){
+            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 3) {
+                if (fugui003.getVisibility() != View.VISIBLE) {
                     fugui003.setVisibility(View.VISIBLE);
                 }
             }
 
-            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 4){
-                if (fugui004.getVisibility()!=View.VISIBLE){
+            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 4) {
+                if (fugui004.getVisibility() != View.VISIBLE) {
                     fugui004.setVisibility(View.VISIBLE);
                 }
             }
 
-            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 5){
-                if (fugui005.getVisibility()!=View.VISIBLE){
+            if (SettingConfig.getInstance().statusList.get(g).getGuiHao() == 5) {
+                if (fugui005.getVisibility() != View.VISIBLE) {
                     fugui005.setVisibility(View.VISIBLE);
                 }
             }
@@ -161,6 +183,11 @@
                 cancelAllBtn();
                 zhugui.setBackgroundColor(getResources().getColor(R.color.cheng));
                 cureentSelectGui = 0;
+
+               /* CanguiStatus cangui =new CanguiStatus();
+                cangui.setGuiHao(8);
+                cangui.setGridNo(88);
+                ((CunOjbActivity) getActivity()).setData(cangui);*/
             }
         });
 
@@ -170,6 +197,7 @@
                 cancelAllBtn();
                 fugui001.setBackgroundColor(getResources().getColor(R.color.cheng));
                 cureentSelectGui = 1;
+                initView();
             }
         });
 
@@ -179,6 +207,8 @@
                 cancelAllBtn();
                 fugui002.setBackgroundColor(getResources().getColor(R.color.cheng));
                 cureentSelectGui = 2;
+
+                initView();
             }
         });
 
@@ -188,6 +218,8 @@
                 cancelAllBtn();
                 fugui003.setBackgroundColor(getResources().getColor(R.color.cheng));
                 cureentSelectGui = 3;
+
+                initView();
             }
         });
 
@@ -197,6 +229,8 @@
                 cancelAllBtn();
                 fugui004.setBackgroundColor(getResources().getColor(R.color.cheng));
                 cureentSelectGui = 4;
+
+                initView();
             }
         });
 
@@ -206,11 +240,20 @@
                 cancelAllBtn();
                 fugui005.setBackgroundColor(getResources().getColor(R.color.cheng));
                 cureentSelectGui = 5;
+
+                initView();
+            }
+        });
+
+        tv_close.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                requireActivity().finish();
             }
         });
     }
 
-    public void cancelAllBtn(){
+    public void cancelAllBtn() {
         zhugui.setBackgroundColor(Color.GRAY);
         fugui001.setBackgroundColor(Color.GRAY);
         fugui002.setBackgroundColor(Color.GRAY);
@@ -279,8 +322,8 @@
                 }
                 for (int p = 0; p < selectedList.size(); p++) {
                     CanguiStatus grid = selectedList.get(p);
-                    byte[] command = CanGuiCommand.getInstance().controlGridCommand(grid.getGuiHao() ,
-                            grid.getGridNo() , 0, 255, 0, caozuo, 0, 0);
+                    byte[] command = CanGuiCommand.getInstance().controlGridCommand(grid.getGuiHao(),
+                            grid.getGridNo(), 0, 255, 0, caozuo, 0, 0);
                     DeviceMessage message = new DeviceMessage();
                     message.setMessageType(MessageType.SENDMESSAGE.ordinal());
                     message.setDeviceType(DeviceType.CANGUI.ordinal());
@@ -295,9 +338,9 @@
             public void onClick(View view) {
                 for (int p = 0; p < selectedList.size(); p++) {
                     CanguiStatus grid = selectedList.get(p);
-                    LogUtils.i(TAG,grid.getGuiHao(),grid.getGridNo());
-                    byte[] command = CanGuiCommand.getInstance().controlGridCommand(grid.getGuiHao() ,
-                            grid.getGridNo() , 1, 255, 0, 0, 0, 0);
+                    LogUtils.i(TAG, grid.getGuiHao(), grid.getGridNo());
+                    byte[] command = CanGuiCommand.getInstance().controlGridCommand(grid.getGuiHao(),
+                            grid.getGridNo(), 1, 255, 0, 0, 0, 0);
                     DeviceMessage message = new DeviceMessage();
                     message.setMessageType(MessageType.SENDMESSAGE.ordinal());
                     message.setDeviceType(DeviceType.CANGUI.ordinal());
@@ -318,7 +361,7 @@
 
     public void initView() {
         gridStatusList.clear();
-        for (int i = 0; i< SettingConfig.getInstance().statusList.size();i++){
+        for (int i = 0; i < SettingConfig.getInstance().statusList.size(); i++) {
             CanguiStatus ss = SettingConfig.getInstance().statusList.get(i);
             if (ss.getGuiHao() == cureentSelectGui) {
                 CanguiStatus status = new CanguiStatus();
@@ -336,30 +379,99 @@
             }
         }
         Collections.sort(gridStatusList);
-        GridTableAdapter adapter = new GridTableAdapter(context, gridStatusList, R.layout.framgment_tablegrid_item);
+        if (gridStatusList.size() == 8){
+            CanguiStatus e = new CanguiStatus();
+            e.setGridNo(-1);
+            gridStatusList.add(4, e);
+        }
+        GridTableAdapterNew adapter = new GridTableAdapterNew(context, gridStatusList, R.layout.item_box_new);
         gridtable = root.findViewById(R.id.gridtable);
         gridtable.setAdapter(adapter);
         gridtable.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                 CanguiStatus cangui = gridStatusList.get(i);
-                View item = gridtable.getChildAt(i).findViewById(R.id.gridLineLayout);
-                if (checkIsSelectedAndOrRemove(cangui,true)) {
-                    item.setBackgroundColor(getResources().getColor(R.color.cheng));
-                } else {
-                    item.setBackgroundColor(Color.GRAY);
+                if (cangui.getGridNo()!=-1){
+                    //存餐
+                    takeCheckCode(((CunOjbActivity) getActivity()).pickupCode,0,cangui.getGridNo(),((CunOjbActivity) getActivity()).isHand);
                 }
+//                ((CunOjbActivity) getActivity()).setData(cangui);
+               /* View item = gridtable.getChildAt(i).findViewById(R.id.gridLineLayout);
+                if (checkIsSelectedAndOrRemove(cangui,true)) {
+                    item.setBackgroundColor(Color.GRAY);
+                } else {
+                    item.setBackgroundColor(getResources().getColor(R.color.cheng));
+                }*/
             }
         });
     }
 
+    public void takeCheckCode(String code, final int guino, final int gridno, int isHand) {
+        HttpLoggerInterceptor loggingInterceptor = new HttpLoggerInterceptor(true);
+        OkHttpClient client = new OkHttpClient.Builder()
+                .connectTimeout(20, TimeUnit.SECONDS)//响应时间,读取时间
+                .readTimeout(20, TimeUnit.SECONDS)
+                .callTimeout(20, TimeUnit.SECONDS)
+                .addInterceptor(loggingInterceptor)//添加日志拦截器
+                .build();
+
+        LogUtils.i(CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code), code);
+        RequestBody body = new FormBody.Builder()
+                .build();
+
+        final Request request = new Request.Builder()
+                .url(HttpUrlDefine.checkStatus + "?pickNum=" + code + "&boxNum=" + guino + "&cartNum=" + gridno+ "&isHand=" + isHand+ "&sn=" + CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code))
+                /*  .addHeader("language", "zh-CN")*/
+                .post(body)
+                .build();
+        client.newCall(request).enqueue(new Callback() {
+            @Override
+            public void onFailure(Call call, IOException e) {
+                requireActivity().runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        DynamicToast.makeError(context, "Request error!", 3).show();
+                    }
+                });
+
+            }
+
+            @Override
+            public void onResponse(Call call, Response response) throws IOException {
+                String result = response.body().string();
+                LogUtils.i("获取到的数据:" + result);
+                final BaseDto baseDto = GsonUtils.fromJson(result, BaseDto.class);
+                requireActivity().runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        if (baseDto.getCode() == 200) {
+                           byte[] command = CanGuiCommand.getInstance().controlGridCommand(guino,
+                                    gridno, 1, 255, 0, 0, 0, 0);
+                            DeviceMessage message = new DeviceMessage();
+                            message.setMessageType(MessageType.SENDMESSAGE.ordinal());
+                            message.setDeviceType(DeviceType.CANGUI.ordinal());
+                            message.setMessageByte(command);
+                            EventBus.getDefault().post(message);
+                            // new Handler(Looper.getMainLooper()).postDelayed(() -> finish(), 3000);
+                            ((CunOjbActivity)requireActivity()).showResult("Place meal into the box.");
+                        } else {
+                            DynamicToast.makeError(context, baseDto.getMsg(), 3).show();
+                        }
+                    }
+                });
+
+
+            }
+        });
+    }
+
+
     /**
-     *
      * @param status
-     * @param isControl  是否从控制删除和添加,选中变不选,不选变选
+     * @param isControl 是否从控制删除和添加,选中变不选,不选变选
      * @return
      */
-    private boolean checkIsSelectedAndOrRemove(CanguiStatus status,boolean isControl) {
+    private boolean checkIsSelectedAndOrRemove(CanguiStatus status, boolean isControl) {
         boolean isFind = false;
         for (int i = 0; i < selectedList.size(); i++) {
             if (selectedList.get(i).getGridNo() == status.getGridNo() && selectedList.get(i).getGuiHao() == status.getGuiHao()) {

--
Gitblit v1.7.1