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/mqtt/MyMQTTService.java |   82 +++++++++++++++++++++++++----------------
 1 files changed, 50 insertions(+), 32 deletions(-)

diff --git a/app/src/main/java/com/lotaai/canguiayw/mqtt/MyMQTTService.java b/app/src/main/java/com/lotaai/canguiayw/mqtt/MyMQTTService.java
index c14ed1e..a767404 100644
--- a/app/src/main/java/com/lotaai/canguiayw/mqtt/MyMQTTService.java
+++ b/app/src/main/java/com/lotaai/canguiayw/mqtt/MyMQTTService.java
@@ -55,15 +55,19 @@
     @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
         init();
+        if (!EventBus.getDefault().isRegistered(MyMQTTService.this)) {
+            EventBus.getDefault().register(MyMQTTService.this);
+        }
         return super.onStartCommand(intent, flags, startId);
     }
 
     @Subscribe(threadMode = ThreadMode.ASYNC)
-    public static void publish(DeviceMessage message) {
+    public  void publish(DeviceMessage message) {
         //需要在这个地方区分是哪种指令
         //才能确定发送到哪个topic
+        LogUtils.i("接收到通知",message.getMsgString());
         if (message.getMessageType() == MessageType.MQTT.ordinal()){
-            String topic = pubTopic;
+            String topic = subTopic_Control +  CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code);
             Integer qos = 2;
             Boolean retained = false;
             String msg = message.getMsgString();
@@ -79,7 +83,7 @@
         // 服务器地址(协议+地址+端口号)
         String uri = "tcp://" + SettingConfig.getInstance().MQTT_IP+":"+SettingConfig.getInstance().MQTT_PORT;;
         LogUtils.i(uri);
-        client = new MqttAndroidClient(this, uri, "tests233233232");
+        client = new MqttAndroidClient(this, uri, CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code)+"houping");
         // 设置MQTT监听并且接受消息
         client.setCallback(mqttCallback);
         conOpt = new MqttConnectOptions();
@@ -191,18 +195,23 @@
                 Order order = new Order();
                 JSONObject json = JSONObject.parseObject(messageStr);
                 String orderno = json.getString("orderno");
+                String orderType = json.getString("orderType");
+                if (!"2".equals(orderType)){
+                    return;
+                }
                 //判断这个订单是否已经存在
                 Order checkOrder = SqlliteDbManage.getInstance().selectOrtder(orderno);
                 if (checkOrder == null){
                     String seqnum = json.getString("seqnum");
-                    String orderType = json.getString("orderType");
                     String bookingType = json.getString("bookingType");
+                    String orderId = json.getString("orderId");
                     if (json.getString("startTime")!=null) {
                         String startTime = JsonUtils.getString(messageStr, "startTime", "");
                     }
                     String createdTime = json.getString("createdTime");
                     String tableNum = JsonUtils.getString(messageStr,"tableNum","");
                     order.setOrderNo(orderno);
+                    order.setOrderId(orderId);
                     order.setState(0);
                     order.setXuHao(seqnum);
                     order.setTakeCode("");
@@ -238,34 +247,44 @@
             //2、开门、开馆灯、开关消毒灯、开关加热
             if (topic.startsWith(subTopic_Control)){
                 JSONObject json = JSONObject.parseObject(messageStr);
-                String doorIsOpen = json.getString("doorIsOpen");
-                String xiaoDuIsOpen = json.getString("xiaoDuIsOpen");
-                String jiareIsOpen = json.getString("jiareIsOpen");
-                String dengGuangIsOpen = json.getString("dengGuangIsOpen");
-                String grid = json.getString("gridNo");
-                CrontrolGridModel crontrolGridModel = new CrontrolGridModel();
-                if (doorIsOpen!=null && doorIsOpen.equals("1")){
-                    crontrolGridModel.setOpenOrNoActon(1);
+                if (json.getString("action") !=null && json.getString("action").equals(DeviceAction.CONTROLDEVICE.name())){
+                    String doorIsOpen = json.getString(DeviceAction.doorIsOpen.name());
+                    String xiaoDuIsOpen = json.getString(DeviceAction.xiaoDuIsOpen.name());
+                    String jiareIsOpen = json.getString(DeviceAction.jiareIsOpen.name());
+                    String dengGuangIsOpen = json.getString(DeviceAction.dengGuangIsOpen.name());
+                    String grid = json.getString("gridNo");
+                    //将格子号转换成柜号和格子
+                    CrontrolGridModel crontrolGridModel = new CrontrolGridModel();
+                    crontrolGridModel.ChangeGrid(grid);
+                    if (doorIsOpen!=null && doorIsOpen.equals("1")){
+                        crontrolGridModel.setOpenOrNoActon(1);
+                    }
+                    if (xiaoDuIsOpen!=null) {
+                        crontrolGridModel.setXiaodu(Integer.parseInt(xiaoDuIsOpen));
+                    }
+                    if (jiareIsOpen!=null) {
+                        crontrolGridModel.setXiaodu(Integer.parseInt(jiareIsOpen));
+                    }
+                    if (dengGuangIsOpen!=null) {
+                        crontrolGridModel.setXiaodu(Integer.parseInt(dengGuangIsOpen));
+                    }
+                    LogUtils.i("控制",crontrolGridModel.getGuiNo(),crontrolGridModel.getGridNo(),crontrolGridModel.getOpenOrNoActon());
+                    byte[] command = CanGuiCommand.getInstance().controlGridCommand(crontrolGridModel.getGuiNo() ,
+                            crontrolGridModel.getGridNo() , crontrolGridModel.getOpenOrNoActon(),
+                            crontrolGridModel.getWendu(), crontrolGridModel.getXiaodu(), crontrolGridModel.getDengGuang(),
+                            crontrolGridModel.getJiaRe(), crontrolGridModel.getGuangDengji());
+                    DeviceMessage dvmessage = new DeviceMessage();
+                    dvmessage.setMessageType(MessageType.SENDMESSAGE.ordinal());
+                    dvmessage.setDeviceType(DeviceType.CANGUI.ordinal());
+                    dvmessage.setMessageByte(command);
+                    EventBus.getDefault().post(dvmessage);
+                    //判断是否是取餐的,如果是取餐的,需要将这个订单从本地删除掉
+                    String qucan = json.getString("qucan");
+                    if (qucan!=null && "1".equals(qucan)){
+                        SqlliteDbManage.getInstance().deleteFromOrderByGridNo(grid);
+                        SqlliteDbManage.getInstance().updateGridByStr(grid,0);
+                    }
                 }
-                if (xiaoDuIsOpen!=null) {
-                    crontrolGridModel.setXiaodu(Integer.parseInt(xiaoDuIsOpen));
-                }
-                if (jiareIsOpen!=null) {
-                    crontrolGridModel.setXiaodu(Integer.parseInt(jiareIsOpen));
-                }
-                if (dengGuangIsOpen!=null) {
-                    crontrolGridModel.setXiaodu(Integer.parseInt(dengGuangIsOpen));
-                }
-
-                byte[] command = CanGuiCommand.getInstance().controlGridCommand(crontrolGridModel.getGuiNo() ,
-                        crontrolGridModel.getGridNo() , crontrolGridModel.getOpenOrNoActon(),
-                        crontrolGridModel.getWendu(), crontrolGridModel.getXiaodu(), crontrolGridModel.getDengGuang(),
-                        crontrolGridModel.getJiaRe(), crontrolGridModel.getGuangDengji());
-                DeviceMessage dvmessage = new DeviceMessage();
-                dvmessage.setMessageType(MessageType.SENDMESSAGE.ordinal());
-                dvmessage.setDeviceType(DeviceType.CANGUI.ordinal());
-                dvmessage.setMessageByte(command);
-                EventBus.getDefault().post(message);
             }
         }
 
@@ -301,5 +320,4 @@
     public IBinder onBind(Intent intent) {
         return null;
     }
-
 }

--
Gitblit v1.7.1