陈力
2023-06-14 d5f837a50f9874e4d08d786bfaeaed23dc7fe745
存餐、取餐、管理员取出
6个文件已修改
168 ■■■■■ 已修改文件
app/src/main/java/com/lotaai/canguiayw/CunCanFragment.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/lotaai/canguiayw/SelectFragment.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/lotaai/canguiayw/TakeActivity.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/lotaai/canguiayw/common/HttpUrlDefine.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/lotaai/canguiayw/mqtt/MyMQTTService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/lotaai/canguiayw/sqllitedb/SqlliteDbManage.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/lotaai/canguiayw/CunCanFragment.java
@@ -6,6 +6,7 @@
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.text.InputType;
@@ -249,7 +250,10 @@
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                DynamicToast.makeError(context, "存餐同步失败!", 3).show();
               Message message = new Message();
               message.what = 0;
               message.obj = "存餐同步失败!";
               showHandler.sendMessage(message);
            }
            @Override
@@ -261,9 +265,25 @@
                } else {
                    String string = obj.getString("msg");
                    DynamicToast.makeError(context, "存餐同步失败:" + string, 3).show();
                    Message message = new Message();
                    message.what = 0;
                    message.obj = "存餐失败:" +string;
                    showHandler.sendMessage(message);
                }
            }
        });
    }
    private Handler showHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 0) {
                DynamicToast.makeError(context, msg.obj.toString(), 3).show();
            } else if (msg.what == 1) {
                DynamicToast.makeSuccess(context, msg.obj.toString(), 3).show();
            } else {
                DynamicToast.makeWarning(context, msg.obj.toString(), 3).show();
            }
        }
    };
}
app/src/main/java/com/lotaai/canguiayw/SelectFragment.java
@@ -19,6 +19,7 @@
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import com.alibaba.fastjson.JSONObject;
import com.bin.david.form.core.SmartTable;
import com.bin.david.form.core.TableConfig;
import com.bin.david.form.data.CellInfo;
@@ -30,8 +31,11 @@
import com.bin.david.form.data.format.selected.ISelectFormat;
import com.bin.david.form.data.style.FontStyle;
import com.bin.david.form.data.table.TableData;
import com.blankj.utilcode.util.DeviceUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ScreenUtils;
import com.lotaai.canguiayw.common.HttpLoggerInterceptor;
import com.lotaai.canguiayw.common.HttpUrlDefine;
import com.lotaai.canguiayw.common.SettingConfig;
import com.lotaai.canguiayw.device.DeviceMessage;
import com.lotaai.canguiayw.device.MessageType;
@@ -39,14 +43,25 @@
import com.lotaai.canguiayw.sqllitedb.Order;
import com.lotaai.canguiayw.sqllitedb.OrderDetail;
import com.lotaai.canguiayw.sqllitedb.SqlliteDbManage;
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.Date;
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 SelectFragment extends Fragment {
@@ -98,17 +113,21 @@
            @Override
            public void onClick(View view) {
                //将格子释放  //将订单的格子号改为空
                if (currentOrder!=null && !"".equals(currentOrder.getGridNo())) {
                if (currentOrder != null && !"".equals(currentOrder.getGridNo())) {
                    GridModel model = SqlliteDbManage.getInstance().selectGridByGridNoStr(currentOrder.getGridNo());
                    model.setState(0);
                    SqlliteDbManage.getInstance().addGrid(model);
                    currentOrder.setState(3);
                    SqlliteDbManage.getInstance().insertOrderInfo(currentOrder);
                   // mHandler.sendEmptyMessage(1);
//                    SqlliteDbManage.getInstance().insertOrderInfo(currentOrder);
                    SqlliteDbManage.getInstance().deltetOrders(currentOrder.getOrderNo());
                    // mHandler.sendEmptyMessage(1);
                    initTableView();
                    if (currentOrder.getGridNo() != null && !"".equals(currentOrder.getGridNo())) {
                        SqlliteDbManage.getInstance().updateGridByStr(currentOrder.getGridNo(), 0);
                        adminTakeOut(currentOrder.getOrderId());
                    }
                    LogUtils.i("订单:" + currentOrder.getOrderNo());
                }else {
                } else {
                    LogUtils.i("没有订单");
                }
                if (detailTable != null) {
@@ -120,12 +139,58 @@
        return root;
    }
    public void adminTakeOut(String orderId) {
        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("取出",DeviceUtils.getUniqueDeviceId(),orderId);
        RequestBody body = new FormBody.Builder()
                .add("equipmentUid", DeviceUtils.getUniqueDeviceId())
                .add("orderId", orderId).build();
        final Request request = new Request.Builder()
                .url(HttpUrlDefine.equipmentAndminTakeOut)
                .addHeader("language", "zh-CN")
                .post(body)
                .build();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Message msg = new Message();
                msg.what = 0;
                msg.obj = "取餐失败!";
                showHandler.sendMessage(msg);
            }
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String result = response.body().string();
                LogUtils.i("获取到的数据:" + result);
                JSONObject obj = JSONObject.parseObject(result);
                if ("0".equals(obj.getString("code"))) {
                } else {
                    String string = obj.getString("msg");
                    Message msg = new Message();
                    msg.what = 0;
                    msg.obj = "取餐同步失败:" + string;
                    showHandler.sendMessage(msg);
                }
            }
        });
    }
    public void initTableView() {
        List<Order> lists = SqlliteDbManage.getInstance().selectOrtdersInGui();
        TableData<Order> tableData = null;
        if (lists != null) {
            tableData = new TableData<Order>("", lists, gridNo, orderNo, putIntime, xuhao);
        }else {
        } else {
            tableData = new TableData<Order>("", new ArrayList<Order>(), gridNo, orderNo, putIntime, xuhao);
        }
        //设置数据
@@ -230,9 +295,8 @@
                String orderNo = mssage.getMsgString();
                //首先要判断订单里面是否已经有了
                boolean isFind = false;
                if (setTable.getTableData()!=null) {
                if (setTable.getTableData() != null) {
                    List<Order> oldOrders = setTable.getTableData().getT();
                    if (oldOrders != null && oldOrders.size() > 0) {
                        for (int p = 0; p < oldOrders.size(); p++) {
                            Order t = oldOrders.get(p);
@@ -255,4 +319,17 @@
            LogUtils.e(e);
        }
    }
    private Handler showHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 0) {
                DynamicToast.makeError(context, msg.obj.toString(), 3).show();
            } else if (msg.what == 1) {
                DynamicToast.makeSuccess(context, msg.obj.toString(), 3).show();
            } else {
                DynamicToast.makeWarning(context, msg.obj.toString(), 3).show();
            }
        }
    };
}
app/src/main/java/com/lotaai/canguiayw/TakeActivity.java
@@ -71,14 +71,16 @@
                    // 调用后台
                    String gridNo = editable.toString();
                    if (null == gridNo || "".equals(gridNo.trim())) {
                        Toast.makeText(context, "取餐码不能为空。", Toast.LENGTH_SHORT).show();
                        DynamicToast.makeError(context, "取餐码不能为空。", 3).show();
                        return;
                    } else {
                        if (gridNo.length() !=6) {
                            Toast.makeText(context, "取餐码输入错误,请重试。", Toast.LENGTH_SHORT).show();
                            editText.setText("");
                            DynamicToast.makeError(context, "取餐码输入错误,请重试。", 3).show();
                            return;
                        }
                        //调用判断是否可以取餐
                        editText.setText("");
                        takeCheckCode(gridNo);
                    }
                } else {
@@ -159,10 +161,16 @@
                    json.put(DeviceAction.jiareIsOpen.name(), "0");
                    json.put(DeviceAction.dengGuangIsOpen.name(), "0");
                    json.put("gridNo", g);
                    json.put("qucan","1");
                    DeviceMessage deviceMessage = new DeviceMessage();
                    deviceMessage.setMessageType(MessageType.MQTT.ordinal());
                    deviceMessage.setMsgString(json.toJSONString());
                    EventBus.getDefault().post(deviceMessage);
                    String string = obj.getString("msg");
                    Message msg = new Message();
                    msg.what = 1;
                    msg.obj = "取餐格口:" + g;
                    showHandler.sendMessage(msg);
                } else {
                    String string = obj.getString("msg");
                    Message msg = new Message();
app/src/main/java/com/lotaai/canguiayw/common/HttpUrlDefine.java
@@ -7,4 +7,5 @@
    public static String  equipmentLogin = rootHost + "/lotaai-api/api/eq/equipmentLogin";
    public static String  equipmentCunCan = rootHost + "/lotaai-api/api/eq/putInFood";
    public static String  equipmentTakeOut = rootHost + "/lotaai-api/api/eq/takeFood";
    public static String  equipmentAndminTakeOut = rootHost + "/lotaai-api/api/eq/takeOut";
}
app/src/main/java/com/lotaai/canguiayw/mqtt/MyMQTTService.java
@@ -273,6 +273,12 @@
                    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);
                    }
                }
            }
        }
app/src/main/java/com/lotaai/canguiayw/sqllitedb/SqlliteDbManage.java
@@ -37,6 +37,21 @@
        daoSession.insertOrReplace(model);
    }
    public void deleteFromOrderByGridNo(String gridNo){
        DaoSession daoSession = getDaoSession();
        QueryBuilder<Order> qb = daoSession.queryBuilder(Order.class);
        QueryBuilder<Order> queryBuilder
                = qb.where(OrderDao.Properties.GridNo.eq(gridNo)).orderAsc(OrderDao.Properties.TakeCode);
        List<Order> ordersList = queryBuilder.list();
        if (ordersList!=null && ordersList.size()>0){
            for (int i = 0; i < ordersList.size(); i++){
                Order order = ordersList.get(i);
                daoSession.delete(order);
            }
        }
    }
    /**
     * 添加订单明细信息信息
     *
@@ -225,6 +240,23 @@
        return gridModels;
    }
    public void updateGridByStr(String gridNo,int state){
        CrontrolGridModel model = new CrontrolGridModel();
        model.ChangeGrid(gridNo);
        DaoSession daoSession = getDaoSession();
        QueryBuilder<GridModel> qb = daoSession.queryBuilder(GridModel.class);
        QueryBuilder<GridModel> queryBuilder
                = qb.where(GridModelDao.Properties.GridNo.eq(model.getGridNo()),GridModelDao.Properties.GuiHao.eq(model.getGuiNo())).orderAsc(GridModelDao.Properties.GuiHao);
        List<GridModel> gridModels = queryBuilder.list();
        if (gridModels != null || gridModels.size() > 0) {
             for (int i = 0; i < gridModels.size();i++){
                 GridModel mm = gridModels.get(i);
                 mm.setState(state);
                 daoSession.update(mm);
             }
        }
    }
    public GridModel  selectFreeGrid(){
        DaoSession daoSession = getDaoSession();
        QueryBuilder<GridModel> qb = daoSession.queryBuilder(GridModel.class);