Commit 25b43d73 by Wyh

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/PageViewModel.kt
#	component-print/src/main/java/com/joe/print/mvp/print/PrintListener.java
#	component-print/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
#	component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
#	component-print/src/main/java/com/joe/print/mvp/ui/view/PrinterLoadingDialog.java
parents 9d1b9379 32aeaa84
...@@ -181,50 +181,56 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -181,50 +181,56 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}) })
} }
private var autoPolling: Disposable? = null;
/** /**
* 開始自動確認訂單 * 開始自動確認訂單
*/ */
fun startAutoConfirmOrder() { fun startAutoConfirmOrder() {
launch({ autoPolling = RxJavaUtils.polling(10) {
//獲取即時單 launch({
repository.requestOrderList(restaurantId.toString(), fragmentStatus[1] + ",8", fragmentType[0], "1", orderNo, phone, 0).apply { //獲取即時單
if (isSuccess()) { repository.requestOrderList(restaurantId.toString(), fragmentStatus[1] + ",8", fragmentType[0], "1", orderNo, phone, 0).apply {
val data = getData() if (isSuccess()) {
if (data != null) { val data = getData()
val dataList = data.data if (data != null) {
//這裡判斷數量大於1,默認有一條配置數據,忽略掉 val dataList = data.data
if (dataList != null && dataList.size > 1) { //這裡判斷數量大於1,默認有一條配置數據,忽略掉
//確認訂單之前得先獲取訂單詳情 if (dataList != null && dataList.size > 1) {
val orderInfo = repository.getOrderInfo(dataList[0].Id.toString()) //確認訂單之前得先獲取訂單詳情
if (orderInfo.data != null && orderInfo.data!!.isNotEmpty()) { val orderInfo = repository.getOrderInfo(dataList[0].Id.toString())
orderInfo.data?.let { it -> if (orderInfo.data != null && orderInfo.data!!.isNotEmpty()) {
val orderDetail = it[0] orderInfo.data?.let { it ->
if (verificationAmount(orderDetail)) return@launch val orderDetail = it[0]
orderDetail.order_type = dataList[0].order_type if (verificationAmount(orderDetail)) return@launch
orderDetail.orderPayType = dataList[0].orderPayType orderDetail.order_type = dataList[0].order_type
if (orderDetail.order_type == 7) { orderDetail.orderPayType = dataList[0].orderPayType
//如果是自取單,將物流類型改為本店 if (orderDetail.order_type == 7) {
orderDetail.companyType = 0 //如果是自取單,將物流類型改為本店
} orderDetail.companyType = 0
//交通工具類型 }
var trafficType = "" //交通工具類型
if (orderDetail.companyType == 2) { var trafficType = ""
//lalamove if (orderDetail.companyType == 2) {
val transportationBean = getTransportationConfig(restaurantId) //lalamove
if (transportationBean.success && transportationBean.data != null && transportationBean.data.list != null) { val transportationBean = getTransportationConfig(restaurantId)
for (value in transportationBean.data.list) { if (transportationBean.success && transportationBean.data != null && transportationBean.data.list != null) {
if (value.status == 1) { for (value in transportationBean.data.list) {
//默認交通工具,判斷價格是不是在這個金額範圍內,如果在,則不提示,如果不在,提示用戶修改交通工具 if (value.status == 1) {
trafficType = value.type.toString() //默認交通工具,判斷價格是不是在這個金額範圍內,如果在,則不提示,如果不在,提示用戶修改交通工具
trafficType = value.type.toString()
}
} }
} }
} }
} confirmOrder(orderDetail, 2, trafficType, restaurantId, isPrintPrj = true, isPrintBill = true) {
confirmOrder(orderDetail, 2, trafficType, restaurantId, isPrintPrj = true, isPrintBill = true) { //確認之後,刷新列表
//確認之後,刷新列表 refreshState.postValue(0)
refreshState.postValue(0) }
} }
} }
} else {
} }
} else { } else {
...@@ -232,36 +238,40 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -232,36 +238,40 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
} else { } else {
} }
} else {
} }
} //獲取預約單
//獲取預約單 repository.requestOrderList(restaurantId.toString(), fragmentStatus[1], fragmentType[0], "1", orderNo, phone, 1).apply {
repository.requestOrderList(restaurantId.toString(), fragmentStatus[1], fragmentType[0], "1", orderNo, phone, 1).apply { if (isSuccess()) {
if (isSuccess()) { val data = getData()
val data = getData() if (data != null) {
if (data != null) { val dataList = data.data
val dataList = data.data //這裡判斷數量大於1,默認有一條配置數據,忽略掉
//這裡判斷數量大於1,默認有一條配置數據,忽略掉 if (dataList != null && dataList.size > 1) {
if (dataList != null && dataList.size > 1) { //確認訂單之前得先獲取訂單詳情
//確認訂單之前得先獲取訂單詳情 val orderInfo = repository.getOrderInfo(dataList[0].Id.toString())
val orderInfo = repository.getOrderInfo(dataList[0].Id.toString()) if (orderInfo.data != null && orderInfo.data!!.isNotEmpty()) {
if (orderInfo.data != null && orderInfo.data!!.isNotEmpty()) { val orderDetail = orderInfo.data!![0]
val orderDetail = orderInfo.data!![0] if (verificationAmount(orderDetail)) return@launch
if (verificationAmount(orderDetail)) return@launch updateOrderAndPrint(restaurantId, orderDetail, 8, false) {
updateOrderAndPrint(restaurantId, orderDetail, 8, false) { refreshState.postValue(0)
refreshState.postValue(0) }
} }
} }
} }
} }
} }
} }, {
}, { //報錯處理
//報錯處理 LoganManager.w_delivery(LoganManager.EVENT_QUERY, "自動接單" + it.message)
LoganManager.w_delivery(LoganManager.EVENT_QUERY, "自動接單" + it.message) })
}) }
} }
fun stopAutoConfirmOrder() {
autoPolling?.dispose()
}
private fun OrderList.loadInfo(isLoadMore: Boolean, position: Int) { private fun OrderList.loadInfo(isLoadMore: Boolean, position: Int) {
getData()?.statistics?.let { getData()?.statistics?.let {
bookingOrderNum.value = it.reservationNumber bookingOrderNum.value = it.reservationNumber
......
package com.joe.print.mvp.ui.activity; package com.joe.print.mvp.ui.activity;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.Build; import android.os.Build;
...@@ -19,24 +22,26 @@ import com.gingersoft.gsa.cloud.common.logan.LoganManager; ...@@ -19,24 +22,26 @@ import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterFlowListener; import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterFlowListener;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins; import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils; import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.common.utils.other.SPUtils; import com.gingersoft.gsa.cloud.common.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean; import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.utils.FoodModifierDaoUtils;
import com.gingersoft.gsa.cloud.print.PrintExecutor; import com.gingersoft.gsa.cloud.print.PrintExecutor;
import com.gingersoft.gsa.cloud.print.PrintSocketHolder; import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
import com.gingersoft.gsa.cloud.print.bean.PrintContent; import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.PrjBean; import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.gingersoft.gsa.cloud.print.bean.UpdateBean;
import com.jess.arms.base.BaseActivity; import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.joe.print.di.component.DaggerPrintComponent; import com.joe.print.di.component.DaggerPrintComponent;
import com.joe.print.mvp.contract.PrintContract; import com.joe.print.mvp.contract.PrintContract;
import com.joe.print.mvp.presenter.PrintPresenter; import com.joe.print.mvp.presenter.PrintPresenter;
import com.joe.print.mvp.print.EpsonPrint;
import com.joe.print.mvp.print.PrintInstruction; import com.joe.print.mvp.print.PrintInstruction;
import com.joe.print.mvp.print.PrintListener;
import com.joe.print.mvp.print.PrintPrjKitchen; import com.joe.print.mvp.print.PrintPrjKitchen;
import com.joe.print.mvp.print.PrinterRoot; import com.joe.print.mvp.print.PrinterRoot;
import com.joe.print.mvp.print.maker.OpenCashBoxMaker; import com.joe.print.mvp.print.maker.OpenCashBoxMaker;
...@@ -45,9 +50,16 @@ import com.joe.print.mvp.ui.view.PrinterLoadingDialog; ...@@ -45,9 +50,16 @@ import com.joe.print.mvp.ui.view.PrinterLoadingDialog;
import com.joe.print.mvp.ui.view.SelectPrintDevicePopup; import com.joe.print.mvp.ui.view.SelectPrintDevicePopup;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import java.net.ConnectException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
import static com.gingersoft.gsa.cloud.common.constans.PrintConstans.PRINT_BILL; import static com.gingersoft.gsa.cloud.common.constans.PrintConstans.PRINT_BILL;
import static com.gingersoft.gsa.cloud.common.constans.PrintConstans.PRINT_OTHER_CLOSING; import static com.gingersoft.gsa.cloud.common.constans.PrintConstans.PRINT_OTHER_CLOSING;
import static com.gingersoft.gsa.cloud.common.constans.PrintConstans.PRINT_OTHER_ORDER; import static com.gingersoft.gsa.cloud.common.constans.PrintConstans.PRINT_OTHER_ORDER;
...@@ -130,11 +142,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -130,11 +142,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public void connectionSuccess() { public void connectionSuccess() {
printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_PRINTING, PrinterLoadingDialog.STATUS_SUCCESS, null); LoganManager.w_code(TAG, "PrinterPlugins connectionSuccess ThreadName=" + Thread.currentThread().getName());
printerLoadingDialog.setStep(2, PrinterLoadingDialog.status_success, null);
} }
@Override @Override
public void connectionError(Exception e) { public void connectionError(Exception e) {
LoganManager.w_code(TAG, "PrinterPlugins connectionError ThreadName=" + Thread.currentThread().getName());
printerResult = false; printerResult = false;
printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_PRINTING, PrinterLoadingDialog.STATUS_ERROR, e.getMessage()); printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_PRINTING, PrinterLoadingDialog.STATUS_ERROR, e.getMessage());
} }
...@@ -145,16 +159,19 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -145,16 +159,19 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public void onPrinterDataBefore(int orderType, int printType, String printerData, String printerDeviceInfo) { public void onPrinterDataBefore(int orderType, int printType, String printerData, String printerDeviceInfo) {
printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_CONNECTING, PrinterLoadingDialog.STATUS_SUCCESS, null); LoganManager.w_code(TAG, "PrinterPlugins onPrinterDataBefore ThreadName=" + Thread.currentThread().getName());
printerLoadingDialog.setStep(1, PrinterLoadingDialog.status_success, null);
} }
@Override @Override
public void onPrinterBitmapBefore(int orderType, int printType, String directoryName, List<Bitmap> bitmaps) { public void onPrinterBitmapBefore(int orderType, int printType, String directoryName, List<Bitmap> bitmaps) {
printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_CONNECTING, PrinterLoadingDialog.STATUS_SUCCESS, null); LoganManager.w_code(TAG, "PrinterPlugins onPrinterBitmapBefore ThreadName=" + Thread.currentThread().getName());
printerLoadingDialog.setStep(1, PrinterLoadingDialog.status_success, null);
} }
@Override @Override
public void onPrintSuccess() { public void onPrintSuccess() {
LoganManager.w_code(TAG, "PrinterPlugins onPrintSuccess ThreadName=" + Thread.currentThread().getName());
printerResult = true; printerResult = true;
printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_RESULT, PrinterLoadingDialog.STATUS_SUCCESS, null); printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_RESULT, PrinterLoadingDialog.STATUS_SUCCESS, null);
printSuccess(); printSuccess();
...@@ -162,7 +179,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -162,7 +179,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public void onPrintError(Exception e, int errorCode) { public void onPrintError(Exception e, int errorCode) {
LogUtil.d("PrinterLoadingDialog", "onPrintError"); LoganManager.w_code(TAG, "PrinterPlugins onPrintError ThreadName=" + Thread.currentThread().getName());
printerResult = false; printerResult = false;
printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_PRINTING, PrinterLoadingDialog.STATUS_ERROR, e.getMessage()); printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_PRINTING, PrinterLoadingDialog.STATUS_ERROR, e.getMessage());
} }
...@@ -175,8 +192,14 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -175,8 +192,14 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
actionPrinter(); actionPrinter();
} }
@Override
protected void onResume() {
super.onResume();
actionPrinter();
}
private void actionPrinter() { private void actionPrinter() {
LogUtil.d("", "actionPrinter");
showPrintLoadingDialog(); showPrintLoadingDialog();
callId = CCUtil.getNavigateCallId(this); callId = CCUtil.getNavigateCallId(this);
...@@ -196,7 +219,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -196,7 +219,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
if (printerLoadingDialog != null) { if (printerLoadingDialog != null) {
printerLoadingDialog = printerLoadingDialog.build(); printerLoadingDialog = printerLoadingDialog.build();
} else { } else {
printerLoadingDialog = new PrinterLoadingDialog(mContext).build(); printerLoadingDialog = new PrinterLoadingDialog(this).build();
} }
printerLoadingDialog.setOnCancelListener(dialog -> { printerLoadingDialog.setOnCancelListener(dialog -> {
finish(); finish();
......
...@@ -2,25 +2,31 @@ package com.joe.print.mvp.ui.view; ...@@ -2,25 +2,31 @@ package com.joe.print.mvp.ui.view;
import android.animation.ValueAnimator; import android.animation.ValueAnimator;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Looper; import android.os.Looper;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.airbnb.lottie.LottieAnimationView; import com.airbnb.lottie.LottieAnimationView;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog;
import com.joe.print.R; import com.joe.print.R;
import com.qmuiteam.qmui.layout.QMUILinearLayout; import com.qmuiteam.qmui.layout.QMUILinearLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import butterknife.BindDrawable;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
* 版本:1.6.0 * 版本:1.6.0
...@@ -73,7 +79,6 @@ public class PrinterLoadingDialog extends BaseRetryDialog { ...@@ -73,7 +79,6 @@ public class PrinterLoadingDialog extends BaseRetryDialog {
@Override @Override
public void show() { public void show() {
super.show(); super.show();
LogUtil.d("PrinterLoadingDialog", "show");
} }
@Override @Override
...@@ -110,33 +115,22 @@ public class PrinterLoadingDialog extends BaseRetryDialog { ...@@ -110,33 +115,22 @@ public class PrinterLoadingDialog extends BaseRetryDialog {
return view; return view;
} }
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
Log.e("PrinterLoadingDialog", "onAttachedToWindow");
}
public void setStep(int step, int status, String errorMsg) { public void setStep(int step, int status, String errorMsg) {
LogUtil.d("PrinterLoadingDialog", "進入setStep:" + step + "--status:" + status + "線程:" + Thread.currentThread().getId() + "/" + Looper.getMainLooper().getThread().getId()); if (!TextUtils.isEmpty(errorMsg)) {
tvErrorMsg.post(() -> { tvErrorMsg.setText(errorMsg);
LogUtil.d("PrinterLoadingDialog-", "--start----setStep:" + step + "--status:" + status); tvErrorMsg.setVisibility(View.VISIBLE);
if (!TextUtils.isEmpty(errorMsg)) { } else {
tvErrorMsg.setText(errorMsg); tvErrorMsg.setVisibility(View.GONE);
tvErrorMsg.setVisibility(View.VISIBLE); }
} else { //根據狀態修改顯示顏色
tvErrorMsg.setVisibility(View.GONE); if (step == PROGRESS_PRINTING) {
} setCompoundDrawableByStatus(STATUS_SUCCESS, tvGeneratePrintData);
//根據狀態修改顯示顏色 setCompoundDrawableByStatus(status, tvConnecting);
if (step == PROGRESS_PRINTING) { } else {
setCompoundDrawableByStatus(STATUS_SUCCESS, tvGeneratePrintData); setCompoundDrawableByStatus(status, textViews[step - 1]);
setCompoundDrawableByStatus(status, tvConnecting); }
} else { //設置結果
setCompoundDrawableByStatus(status, textViews[step - 1]); setStatusResult(step, status);
}
//設置結果
setStatusResult(step, status);
});
} }
...@@ -162,7 +156,6 @@ public class PrinterLoadingDialog extends BaseRetryDialog { ...@@ -162,7 +156,6 @@ public class PrinterLoadingDialog extends BaseRetryDialog {
} }
break; break;
default: default:
LogUtil.d("PrinterLoadingDialog", "default----setStatusResult");
break; break;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment