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() {
})
}
private var autoPolling: Disposable? = null;
/**
* 開始自動確認訂單
*/
fun startAutoConfirmOrder() {
launch({
//獲取即時單
repository.requestOrderList(restaurantId.toString(), fragmentStatus[1] + ",8", fragmentType[0], "1", orderNo, phone, 0).apply {
if (isSuccess()) {
val data = getData()
if (data != null) {
val dataList = data.data
//這裡判斷數量大於1,默認有一條配置數據,忽略掉
if (dataList != null && dataList.size > 1) {
//確認訂單之前得先獲取訂單詳情
val orderInfo = repository.getOrderInfo(dataList[0].Id.toString())
if (orderInfo.data != null && orderInfo.data!!.isNotEmpty()) {
orderInfo.data?.let { it ->
val orderDetail = it[0]
if (verificationAmount(orderDetail)) return@launch
orderDetail.order_type = dataList[0].order_type
orderDetail.orderPayType = dataList[0].orderPayType
if (orderDetail.order_type == 7) {
//如果是自取單,將物流類型改為本店
orderDetail.companyType = 0
}
//交通工具類型
var trafficType = ""
if (orderDetail.companyType == 2) {
//lalamove
val transportationBean = getTransportationConfig(restaurantId)
if (transportationBean.success && transportationBean.data != null && transportationBean.data.list != null) {
for (value in transportationBean.data.list) {
if (value.status == 1) {
//默認交通工具,判斷價格是不是在這個金額範圍內,如果在,則不提示,如果不在,提示用戶修改交通工具
trafficType = value.type.toString()
autoPolling = RxJavaUtils.polling(10) {
launch({
//獲取即時單
repository.requestOrderList(restaurantId.toString(), fragmentStatus[1] + ",8", fragmentType[0], "1", orderNo, phone, 0).apply {
if (isSuccess()) {
val data = getData()
if (data != null) {
val dataList = data.data
//這裡判斷數量大於1,默認有一條配置數據,忽略掉
if (dataList != null && dataList.size > 1) {
//確認訂單之前得先獲取訂單詳情
val orderInfo = repository.getOrderInfo(dataList[0].Id.toString())
if (orderInfo.data != null && orderInfo.data!!.isNotEmpty()) {
orderInfo.data?.let { it ->
val orderDetail = it[0]
if (verificationAmount(orderDetail)) return@launch
orderDetail.order_type = dataList[0].order_type
orderDetail.orderPayType = dataList[0].orderPayType
if (orderDetail.order_type == 7) {
//如果是自取單,將物流類型改為本店
orderDetail.companyType = 0
}
//交通工具類型
var trafficType = ""
if (orderDetail.companyType == 2) {
//lalamove
val transportationBean = getTransportationConfig(restaurantId)
if (transportationBean.success && transportationBean.data != null && transportationBean.data.list != null) {
for (value in transportationBean.data.list) {
if (value.status == 1) {
//默認交通工具,判斷價格是不是在這個金額範圍內,如果在,則不提示,如果不在,提示用戶修改交通工具
trafficType = value.type.toString()
}
}
}
}
}
confirmOrder(orderDetail, 2, trafficType, restaurantId, isPrintPrj = true, isPrintBill = true) {
//確認之後,刷新列表
refreshState.postValue(0)
confirmOrder(orderDetail, 2, trafficType, restaurantId, isPrintPrj = true, isPrintBill = true) {
//確認之後,刷新列表
refreshState.postValue(0)
}
}
}
} else {
}
} else {
......@@ -232,36 +238,40 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
} else {
}
} else {
}
}
//獲取預約單
repository.requestOrderList(restaurantId.toString(), fragmentStatus[1], fragmentType[0], "1", orderNo, phone, 1).apply {
if (isSuccess()) {
val data = getData()
if (data != null) {
val dataList = data.data
//這裡判斷數量大於1,默認有一條配置數據,忽略掉
if (dataList != null && dataList.size > 1) {
//確認訂單之前得先獲取訂單詳情
val orderInfo = repository.getOrderInfo(dataList[0].Id.toString())
if (orderInfo.data != null && orderInfo.data!!.isNotEmpty()) {
val orderDetail = orderInfo.data!![0]
if (verificationAmount(orderDetail)) return@launch
updateOrderAndPrint(restaurantId, orderDetail, 8, false) {
refreshState.postValue(0)
//獲取預約單
repository.requestOrderList(restaurantId.toString(), fragmentStatus[1], fragmentType[0], "1", orderNo, phone, 1).apply {
if (isSuccess()) {
val data = getData()
if (data != null) {
val dataList = data.data
//這裡判斷數量大於1,默認有一條配置數據,忽略掉
if (dataList != null && dataList.size > 1) {
//確認訂單之前得先獲取訂單詳情
val orderInfo = repository.getOrderInfo(dataList[0].Id.toString())
if (orderInfo.data != null && orderInfo.data!!.isNotEmpty()) {
val orderDetail = orderInfo.data!![0]
if (verificationAmount(orderDetail)) return@launch
updateOrderAndPrint(restaurantId, orderDetail, 8, false) {
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) {
getData()?.statistics?.let {
bookingOrderNum.value = it.reservationNumber
......
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.graphics.Bitmap;
import android.os.Build;
......@@ -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.PrinterPlugins;
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.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean;
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.PrintSocketHolder;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
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.di.component.AppComponent;
import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.ArmsUtils;
import com.joe.print.di.component.DaggerPrintComponent;
import com.joe.print.mvp.contract.PrintContract;
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.PrintListener;
import com.joe.print.mvp.print.PrintPrjKitchen;
import com.joe.print.mvp.print.PrinterRoot;
import com.joe.print.mvp.print.maker.OpenCashBoxMaker;
......@@ -45,9 +50,16 @@ import com.joe.print.mvp.ui.view.PrinterLoadingDialog;
import com.joe.print.mvp.ui.view.SelectPrintDevicePopup;
import com.lxj.xpopup.XPopup;
import java.net.ConnectException;
import java.util.List;
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_OTHER_CLOSING;
import static com.gingersoft.gsa.cloud.common.constans.PrintConstans.PRINT_OTHER_ORDER;
......@@ -130,11 +142,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
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
public void connectionError(Exception e) {
LoganManager.w_code(TAG, "PrinterPlugins connectionError ThreadName=" + Thread.currentThread().getName());
printerResult = false;
printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_PRINTING, PrinterLoadingDialog.STATUS_ERROR, e.getMessage());
}
......@@ -145,16 +159,19 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
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
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
public void onPrintSuccess() {
LoganManager.w_code(TAG, "PrinterPlugins onPrintSuccess ThreadName=" + Thread.currentThread().getName());
printerResult = true;
printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_RESULT, PrinterLoadingDialog.STATUS_SUCCESS, null);
printSuccess();
......@@ -162,7 +179,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
public void onPrintError(Exception e, int errorCode) {
LogUtil.d("PrinterLoadingDialog", "onPrintError");
LoganManager.w_code(TAG, "PrinterPlugins onPrintError ThreadName=" + Thread.currentThread().getName());
printerResult = false;
printerLoadingDialog.setStep(PrinterLoadingDialog.PROGRESS_PRINTING, PrinterLoadingDialog.STATUS_ERROR, e.getMessage());
}
......@@ -175,8 +192,14 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
actionPrinter();
}
@Override
protected void onResume() {
super.onResume();
actionPrinter();
}
private void actionPrinter() {
LogUtil.d("", "actionPrinter");
showPrintLoadingDialog();
callId = CCUtil.getNavigateCallId(this);
......@@ -196,7 +219,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
if (printerLoadingDialog != null) {
printerLoadingDialog = printerLoadingDialog.build();
} else {
printerLoadingDialog = new PrinterLoadingDialog(mContext).build();
printerLoadingDialog = new PrinterLoadingDialog(this).build();
}
printerLoadingDialog.setOnCancelListener(dialog -> {
finish();
......
......@@ -2,25 +2,31 @@ package com.joe.print.mvp.ui.view;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
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.joe.print.R;
import com.qmuiteam.qmui.layout.QMUILinearLayout;
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
* 版本:1.6.0
......@@ -73,7 +79,6 @@ public class PrinterLoadingDialog extends BaseRetryDialog {
@Override
public void show() {
super.show();
LogUtil.d("PrinterLoadingDialog", "show");
}
@Override
......@@ -110,33 +115,22 @@ public class PrinterLoadingDialog extends BaseRetryDialog {
return view;
}
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
Log.e("PrinterLoadingDialog", "onAttachedToWindow");
}
public void setStep(int step, int status, String errorMsg) {
LogUtil.d("PrinterLoadingDialog", "進入setStep:" + step + "--status:" + status + "線程:" + Thread.currentThread().getId() + "/" + Looper.getMainLooper().getThread().getId());
tvErrorMsg.post(() -> {
LogUtil.d("PrinterLoadingDialog-", "--start----setStep:" + step + "--status:" + status);
if (!TextUtils.isEmpty(errorMsg)) {
tvErrorMsg.setText(errorMsg);
tvErrorMsg.setVisibility(View.VISIBLE);
} else {
tvErrorMsg.setVisibility(View.GONE);
}
//根據狀態修改顯示顏色
if (step == PROGRESS_PRINTING) {
setCompoundDrawableByStatus(STATUS_SUCCESS, tvGeneratePrintData);
setCompoundDrawableByStatus(status, tvConnecting);
} else {
setCompoundDrawableByStatus(status, textViews[step - 1]);
}
//設置結果
setStatusResult(step, status);
});
if (!TextUtils.isEmpty(errorMsg)) {
tvErrorMsg.setText(errorMsg);
tvErrorMsg.setVisibility(View.VISIBLE);
} else {
tvErrorMsg.setVisibility(View.GONE);
}
//根據狀態修改顯示顏色
if (step == PROGRESS_PRINTING) {
setCompoundDrawableByStatus(STATUS_SUCCESS, tvGeneratePrintData);
setCompoundDrawableByStatus(status, tvConnecting);
} else {
setCompoundDrawableByStatus(status, textViews[step - 1]);
}
//設置結果
setStatusResult(step, status);
}
......@@ -162,7 +156,6 @@ public class PrinterLoadingDialog extends BaseRetryDialog {
}
break;
default:
LogUtil.d("PrinterLoadingDialog", "default----setStatusResult");
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