From ba96f2a660b7fe146e45e4a76ebc908776791b50 Mon Sep 17 00:00:00 2001 From: 陈力 <chenli@lotaai.com> Date: 星期三, 14 六月 2023 14:40:04 +0800 Subject: [PATCH] 取餐 --- app/src/main/java/com/lotaai/canguiayw/TakeActivity.java | 96 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 88 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java b/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java index 78158e8..a0c56b2 100644 --- a/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java +++ b/app/src/main/java/com/lotaai/canguiayw/TakeActivity.java @@ -4,6 +4,8 @@ import android.content.Intent; import android.os.Build; import android.os.Bundle; +import android.os.Handler; +import android.os.Message; import android.text.Editable; import android.text.InputType; import android.view.View; @@ -12,14 +14,35 @@ import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; +import com.alibaba.fastjson.JSONObject; import com.blankj.utilcode.util.CacheDiskUtils; +import com.blankj.utilcode.util.DeviceUtils; import com.blankj.utilcode.util.LogUtils; +import com.lotaai.canguiayw.common.HttpLoggerInterceptor; +import com.lotaai.canguiayw.common.HttpUrlDefine; +import com.lotaai.canguiayw.common.SettingConfig; +import com.lotaai.canguiayw.device.CanGuiCommand; import com.lotaai.canguiayw.device.DeviceMessage; +import com.lotaai.canguiayw.device.DeviceType; import com.lotaai.canguiayw.device.MessageType; +import com.lotaai.canguiayw.mqtt.DeviceAction; import com.lotaai.canguiayw.sqllitedb.Order; import com.lotaai.canguiayw.sqllitedb.SqlliteDbManage; +import com.pranavpandey.android.dynamic.toasts.DynamicToast; import org.greenrobot.eventbus.EventBus; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import java.util.logging.Logger; + +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; public class TakeActivity extends AppCompatActivity { private Context context; @@ -32,6 +55,7 @@ context = TakeActivity.this; editText = (EditText)findViewById(R.id.edt_borrow_case_number); editText.setInputType(InputType.TYPE_NULL); // 屏蔽软键盘 + DynamicToast.Config.getInstance().setTextSize(30).apply(); // 软键盘设置统一按钮监听方法,数字键直接将text内容填充到edittext中,删除和确认才设置事件 View.OnClickListener clickListener = new View.OnClickListener() { @Override @@ -55,7 +79,7 @@ return; } //调用判断是否可以取餐 - takeCheckCode(""); + takeCheckCode(gridNo); } } else { Button button = (Button) v; @@ -96,15 +120,71 @@ finish(); } - public void takeCheckCode(String code){ - Order order = SqlliteDbManage.getInstance().selectOrtderByTakeCode(code); - if (order == null || order.getGridNo() == ""){ - //代表取餐码错误 + public void takeCheckCode(String code) { + 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(); - }else { - //开门取餐,并弹出取餐号 + LogUtils.i(CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code),code); + RequestBody body = new FormBody.Builder() + .add("equipmentCode", CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code)) + .add("takeCode", code).build(); + final Request request = new Request.Builder() + .url(HttpUrlDefine.equipmentTakeOut) + .addHeader("language", "zh-CN") + .post(body) + .build(); + client.newCall(request).enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + DynamicToast.makeError(context, "取餐失败!", 3).show(); + } - } + @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"))) { + String g = obj.getString("data"); + //发送mqtt 进行开门 + JSONObject json = new JSONObject(); + json.put("action", DeviceAction.CONTROLDEVICE.name()); + json.put(DeviceAction.doorIsOpen.name(), "1"); + json.put(DeviceAction.xiaoDuIsOpen.name(), "0"); + json.put(DeviceAction.jiareIsOpen.name(), "0"); + json.put(DeviceAction.dengGuangIsOpen.name(), "0"); + json.put("gridNo", g); + DeviceMessage deviceMessage = new DeviceMessage(); + deviceMessage.setMessageType(MessageType.MQTT.ordinal()); + deviceMessage.setMsgString(json.toJSONString()); + EventBus.getDefault().post(deviceMessage); + } else { + String string = obj.getString("msg"); + Message msg = new Message(); + msg.what = 0; + msg.obj = "取餐失败:" + string; + showHandler.sendMessage(msg); + } + } + }); } + 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(); + } + } + }; + } -- Gitblit v1.7.1