Commit e9bb692c by Wyh

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

# Conflicts:
#	component-print/src/main/java/com/joe/print/mvp/print/service/PrjService.java
parents 7b3307da 2194c6e3
......@@ -106,6 +106,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO, TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData.ORDER_NO)
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread { _, result ->
......
......@@ -655,6 +655,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO, dataBean.ORDER_NO)
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread { _, result ->
......@@ -674,8 +675,9 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_CLOSING)
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO, dataBean.ORDER_NO)
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread { _, result ->
TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData = null
......
......@@ -246,17 +246,21 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
}
private void printPrj(List<PrjBean.DataBean.Bean> printDatas) {
String orderNo = "";
StringBuilder ids = new StringBuilder();
for (int i = 0; i < printDatas.size(); i++) {
printDatas.get(i).setTotalPrj(printDatas.size());
printDatas.get(i).setCurrentIndex(i);
ids.append(printDatas.get(i).getId());
PrjBean.DataBean.Bean prjBean = printDatas.get(i);
orderNo = prjBean.getOrderNo();
prjBean.setTotalPrj(printDatas.size());
prjBean.setCurrentIndex(i);
ids.append(prjBean.getId());
}
//添加重印的報警推送
OkHttp3Utils.noticePersonnel(AppConstans.RP_REPRINT_CODE, "重印,訂單號:" + printDatas.get(0).getOrderNo());
String finalIds = ids.toString();
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
.addParam(PrintConstans.PRINT_ORDER_NO, orderNo)
.addParam("prjBeans", printDatas)
.setActionName("printActivity")
.build()
......
......@@ -236,9 +236,9 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_password, "修改密碼"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "設置"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "查看日誌"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "上傳日誌"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "切換環境"));
}
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "上傳日誌"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_settlement_report, "清機"));
if (AppDevices.isHywebPos()) {
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_settlement_report, "N5清機"));
......@@ -592,6 +592,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
mExitTime = System.currentTimeMillis();
} else {
finish();
ArmsUtils.exitApp();
// System.exit(0);
}
}
......
......@@ -377,6 +377,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO, mMealPayResultParam.getMealOrderPayRequest().getOrderId())
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
......
......@@ -33,7 +33,9 @@ import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.printer.AidlUtil;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.threadPool.ThreadPoolManager;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
......@@ -98,6 +100,7 @@ import static com.joe.print.mvp.print.common.HtmlContract.LABLE_P;
@Getter
public abstract class PrinterRoot<T extends PrintContent> implements PrintSocketHolder.OnStateChangedListener, PrintExecutor.OnPrintResultListener, ReceiveListener {
private final String TAG = getClass().getSimpleName();
@Inject
AppManager mAppManager;
protected final String MONETARY_UNIT = "$";
......@@ -440,29 +443,41 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
return ImageUtils.zoomDrawable(bitmap, printWidth);
}
@Override
public void onResult(int errorCode, PrinterDeviceBean printerDeviceBean) {
switch (errorCode) {
case PrintSocketHolder.ERROR_0:
PrinterPlugins.getOnPrinterFlowHandler().onPrintSuccess(printerDeviceBean);
printSuccess();
break;
return;
case PrintSocketHolder.ERROR_1:
LoganManager.w_printer(TAG, "生成打印數據失敗");
printFailure("生成打印數據失敗");
break;
case PrintSocketHolder.ERROR_2:
LoganManager.w_printer(TAG, "連接打印機失敗");
printFailure("連接打印機失敗");
break;
case PrintSocketHolder.ERROR_3:
LoganManager.w_printer(TAG, "連接打印機失敗(获取输出流失败)");
printFailure("連接打印機失敗");
break;
case PrintSocketHolder.ERROR_4:
LoganManager.w_printer(TAG, "連接打印機失敗(写入页面数据失败)");
printFailure("連接打印機失敗");
break;
case PrintSocketHolder.ERROR_5:
LoganManager.w_printer(TAG, "連接打印機失敗(必要参数不能为空)");
printFailure("連接打印機失敗");
break;
case PrintSocketHolder.ERROR_6:
LoganManager.w_printer(TAG, "关闭Socket出错");
break;
case PrintSocketHolder.ERROR_100:
LoganManager.w_printer(TAG, "打印失败");
break;
}
PrinterPlugins.getOnPrinterFlowHandler().onPrintError(errorCode, printerDeviceBean);
setPrintState(errorCode);
}
......
......@@ -28,6 +28,8 @@ import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.print.PrintExecutor;
import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
......@@ -103,6 +105,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private Dialog mLoadingDialog;
private TextView mTvLoadingTip;
/**
* 0:上菜紙
* 1:印單
......@@ -113,6 +116,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
* 6:其他指令
*/
private int type;
private String mOrderNo;
//是否顯示打印等待彈窗
private boolean isShowDialog;
......@@ -140,18 +144,20 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
//獲取打印類型,根據打印類型生成對應的bitmap
type = CCUtil.getNavigateParam(this, PrintConstans.PRINT_TYPE, PrintConstans.PRINT_TEST);
PrintContent printContent = CCUtil.getNavigateParam(this, PrintConstans.PRINT_CONTENT, null);
mOrderNo = CCUtil.getNavigateParam(this, PrintConstans.PRINT_ORDER_NO, "");
isShowDialog = CCUtil.getNavigateParam(this, PrintConstans.PRINT_LOADING, true);
printerInIt = PrinterRoot.getPrinterByType(type, printContent);
if (printerInIt != null) {
printerInIt.setPrintListener(this);
}
initPrintConfig();
initPrintConfig(printContent);
}
private int selectPrint = -1;
private void initPrintConfig() {
private void initPrintConfig(PrintContent printContent) {
PrintCurrencyBean printCurrencyBean;
PrinterDeviceBean defaultPrint;
//獲取通用打印配置,不同的打印
......@@ -176,6 +182,9 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
// 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印
defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get("defaultPrint", ""));
}
PrinterPlugins.getOnPrinterFlowHandler().onPrinterDataBefore(type, type, GsonUtils.GsonString(printContent), GsonUtils.GsonString(defaultPrint));
//廚房單
if (type == PrintConstans.PRINT_KITCHEN) {
List<PrjBean.DataBean.Bean> printDatas = CCUtil.getNavigateParam(this, "prjBeans", null);
......@@ -285,6 +294,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
//打印失敗
printFailure("打印失敗,生成打印數據失敗");
}
setPrinterBitmapToLocation(type, type, mOrderNo, listMap);
}
//獲得對應的圖片
if (defaultPrint.getPrinterDeviceType() == PrinterDeviceBean.PRINT_IP) {
......@@ -303,7 +313,16 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
else {
printFailure("未找到對應的打印類型");
}
}
}
/**
* 将所要打印的图片保存到本地
*/
private void setPrinterBitmapToLocation(int orderType, int printType, String orderNo, Map<String, List<Bitmap>> bitmapMaps) {
if (bitmapMaps.size() > 0 && bitmapMaps.get("") != null) {
String prjName = orderNo + "-" + System.currentTimeMillis();
PrinterPlugins.getOnPrinterFlowHandler().onPrinterBitmapBefore(orderType, printType, prjName, bitmapMaps.get(""));
}
}
......@@ -468,7 +487,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
printFailure("打印機缺紙");
break;
}
LoganManager.w_printer(TAG,"printStateChanged state--->" + tip);
LoganManager.w_printer(TAG, "printStateChanged state--->" + tip);
setLoadingText(tip);
}
......@@ -477,7 +496,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
*/
@Override
public void printSuccess() {
LoganManager.w_printer(TAG,"printFailure 打印成功");
LoganManager.w_printer(TAG, "printFailure 打印成功");
// if (printCount <= 1) {
CC.sendCCResult(callId, CCResult.success());
disLoadingDialog();
......@@ -490,7 +509,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
public void printFailure(String msg) {
LoganManager.w_printer(TAG,"printFailure 打印失敗--->" + msg);
if (!TextUtil.isEmptyOrNullOrUndefined(msg)) {
ToastUtils.show(GsaCloudApplication.getAppContext(), msg);
CC.sendCCResult(callId, CCResult.error(msg));
......
......@@ -13,6 +13,8 @@
<application android:networkSecurityConfig="@xml/network_android">
<activity android:name=".mvp.ui.activity.CoordinatorlayoutActivity" />
<activity
android:name=".mvp.ui.activity.TableActivity"
android:launchMode="singleTop"
......
......@@ -10,6 +10,7 @@
android:supportsRtl="true"
android:networkSecurityConfig="@xml/network_android"
android:theme="@style/AppTheme">
<activity android:name=".mvp.ui.activity.CoordinatorlayoutActivity" />
<activity
android:name=".mvp.ui.activity.orderManager.OrderDetailActivity"
android:launchMode="singleTop"/>
......
......@@ -83,7 +83,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
@Override
public void onPosSuccess(VoidRespose response) {
LoganManager.w_code(TAG, "onPosSuccess: " + response.toString());
LoganManager.w_order(TAG, "onPosSuccess: " + response.toString());
if (cancelListener != null) {
cancelListener.refeshOrders();
}
......@@ -91,7 +91,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
@Override
public void onPosException(Exception e) {
LoganManager.w_code(TAG, "onPosException: " + e.getMessage());
LoganManager.w_order(TAG, "onPosException: " + e.getMessage());
PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
......@@ -109,17 +109,17 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
@Override
public void onPosInvalid(String e) {
LoganManager.w_code(TAG, "onPosInvalid: " + e);
LoganManager.w_order(TAG, "onPosInvalid: " + e);
}
@Override
public void onUpdateStatusSuccess(VoidRespose response) {
LoganManager.w_code(TAG, "onUpdateStatusSuccess: " + response.toString());
LoganManager.w_order(TAG, "onUpdateStatusSuccess: " + response.toString());
}
@Override
public void onUpdateStatusError(Throwable e) {
LoganManager.w_code(TAG, "onUpdateStatusError: " + e.getMessage());
LoganManager.w_order(TAG, "onUpdateStatusError: " + e.getMessage());
if (mActivity.findFragment(PosActionStatusExceptionFragment.class) == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
statusExceptionParam.setTxnId(datasBean.getPayTxnId());
......
......@@ -144,6 +144,7 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,doshokuOrder.getOrderNo())
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
......
......@@ -80,7 +80,7 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
@Override
public void onPosSuccess(RefundRespose response) {
LoganManager.w_code(TAG, "onPosSuccess: " + response.toString());
LoganManager.w_order(TAG, "onPosSuccess: " + response.toString());
if(refundListener != null){
refundListener.refeshOrders();
}
......@@ -88,7 +88,7 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
@Override
public void onPosException(Exception e) {
LoganManager.w_code(TAG, "onPosException: " + e.getMessage());
LoganManager.w_order(TAG, "onPosException: " + e.getMessage());
PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
......@@ -106,18 +106,18 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
@Override
public void onPosInvalid(String e) {
LoganManager.w_code(TAG, "onPosInvalid: " + e);
LoganManager.w_order(TAG, "onPosInvalid: " + e);
}
@Override
public void onUpdateStatusSuccess(RefundRespose response) {
LoganManager.w_code(TAG, "onUpdateStatusSuccess: " + response.toString());
LoganManager.w_order(TAG, "onUpdateStatusSuccess: " + response.toString());
}
@Override
public void onUpdateStatusError(Throwable e) {
LoganManager.w_code(TAG, "onUpdateStatusError: " + e.getMessage());
LoganManager.w_order(TAG, "onUpdateStatusError: " + e.getMessage());
PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
......
......@@ -68,7 +68,7 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
@Override
public void onPosSuccess(AdjustTipRespose response) {
LoganManager.w_code(TAG, "onPosSuccess: " + response.toString());
LoganManager.w_order(TAG, "onPosSuccess: " + response.toString());
if(tipsListener != null){
tipsListener.refeshOrders();
}
......@@ -76,7 +76,7 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
@Override
public void onPosException(Exception e) {
LoganManager.w_code(TAG, "onPosException: " + e.getMessage());
LoganManager.w_order(TAG, "onPosException: " + e.getMessage());
PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
......@@ -94,17 +94,17 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
@Override
public void onPosInvalid(String e) {
LoganManager.w_code(TAG, "onPosInvalid: " + e.toString());
LoganManager.w_order(TAG, "onPosInvalid: " + e.toString());
}
@Override
public void onUpdateStatusSuccess(AdjustTipRespose response) {
LoganManager.w_code(TAG, "onUpdateStatusSuccess: " + response.toString());
LoganManager.w_order(TAG, "onUpdateStatusSuccess: " + response.toString());
}
@Override
public void onUpdateStatusError(Throwable e) {
LoganManager.w_code(TAG, "onUpdateStatusError: " + e.getMessage());
LoganManager.w_order(TAG, "onUpdateStatusError: " + e.getMessage());
PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
......
......@@ -140,6 +140,7 @@ public class PrintServingPaperAction extends TableAction {
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
.addParam(PrintConstans.PRINT_CONTENT,printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,tableBean.getOrderId())
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
//清空賬單數據
......
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.action.table;
import android.app.Activity;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.patterns.Strategy;
import lombok.Data;
......
......@@ -87,7 +87,6 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
return MealConditionFilterUtils.foodConditionFilter(foods,foodSummary);
}
@Override
public List<Modifier> queryDB_ModifierList(long fid, int mode) {
ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication);
......
......@@ -896,6 +896,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
.addParam(PrintConstans.PRINT_CONTENT,printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) {
......
......@@ -391,6 +391,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) {
......@@ -437,6 +438,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.setActionName("printActivity")
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Activity;
import android.app.Application;
import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
......@@ -14,6 +15,7 @@ import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.core.table.TableExtBean;
import com.gingersoft.gsa.cloud.common.function.XFunctionManager;
import com.gingersoft.gsa.cloud.common.function.XFunctionViews;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.database.bean.Food;
......@@ -44,6 +46,7 @@ import com.gingersoft.gsa.cloud.table.mvp.action.table.ResetTableAction;
import com.gingersoft.gsa.cloud.table.mvp.action.table.SplitTableAction;
import com.gingersoft.gsa.cloud.table.mvp.action.table.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.CoordinatorlayoutActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BottomFunctionAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.SplitTableDialog;
......@@ -233,7 +236,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
}
}
public void getTables(boolean show, RefreshLayout refreshLayout) {
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId() != 0 ? RestaurantInfoManager.newInstance().getRestaurantId() : 26;
mModel.getTables(restaurantId)
......@@ -935,11 +937,13 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
@Override
public void resetTable(TableBean.DataBean tableBean) {
LoganManager.w_tableMode(TAG, mTableAction.getActionTitle() + " tableName=" + tableBean.getTableName());
initTable(tableBean.getId(), tableBean.getTableNumber(), true);
}
@Override
public void resetSkyTable(TableBean.DataBean tableBean) {
LoganManager.w_tableMode(TAG, mTableAction.getActionTitle() + " tableName=" + tableBean.getTableName());
if (tableBean.getScanId() == null) {
mRootView.showMessage(tableBean.getTableName() + "不是skyorder檯");
return;
......@@ -949,6 +953,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
@Override
public void moveTable(TableBean.DataBean tableBean) {
LoganManager.w_tableMode(TAG, mTableAction.getActionTitle() + " tableName=" + tableBean.getTableName());
// if (dataBean.getId() == tableBean.getId()) {
// CommonTipDialog.showSurpisedDialog(IActivity, "相同檯不能轉移", null, null, null, null, null);
// return;
......@@ -959,6 +964,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
@Override
public void splitTableAction(TableBean.DataBean tableBean) {
LoganManager.w_tableMode(TAG, mTableAction.getActionTitle() + " tableName=" + tableBean.getTableName());
splitTable(tableBean);
}
......@@ -1053,6 +1059,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
public void startTablePolling() {
if (mTablesPollingDisposable == null) {
LoganManager.w_tableMode(TAG, "start.....tables polling");
mTablesPollingDisposable = RxJavaUtils.polling(GoldConstants.refreshTime)
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new Consumer<Long>() {
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.gingersoft.gsa.cloud.table.R;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
/**
* @作者: bin
* @創建時間: 2021-02-02 11:42
* @更新時間: 2021-02-02 11:42
* @描述:
*/
public class CoordinatorlayoutActivity extends BaseActivity {
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.activitiy_coordinator;
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
}
@Override
public void initIntent() {
}
@Override
public void initTopBar() {
}
@Override
public void initLanguage() {
}
@Override
public void initLayoutParams() {
}
@Override
public void initLayoutVisible() {
}
}
......@@ -461,11 +461,12 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_INSTRUCTION)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.build()
.callAsyncCallbackOnMainThread(new IComponentCallback() {
@Override
public void onResult(CC cc, CCResult result) {
LoganManager.w_code(TAG, "printOpenInstructionAndBill " + "是否成功:" + result.isSuccess());
LoganManager.w_tableMode(TAG, "printOpenInstructionAndBill " + "是否成功:" + result.isSuccess());
mAppManager.killActivity("PrintActivity");
}
});
......@@ -489,11 +490,12 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.build()
.callAsyncCallbackOnMainThread(new IComponentCallback() {
@Override
public void onResult(CC cc, CCResult result) {
LoganManager.w_code(TAG, "printBill " + "是否成功打印:" + result.isSuccess());
LoganManager.w_tableMode(TAG, "printBill " + "是否成功打印:" + result.isSuccess());
printEndBack();
}
});
......
......@@ -11,6 +11,7 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
......@@ -20,9 +21,11 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.constans.GoldConstants;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.table.R;
......@@ -63,6 +66,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.LogManager;
import butterknife.BindView;
import butterknife.OnClick;
......@@ -212,18 +216,20 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public void onClick(View v) {
getTables(true, null);
LoganManager.w_tableMode(TAG, "手動刷新餐檯數據");
launchActivity(new Intent(mContext, CoordinatorlayoutActivity.class));
// getTables(true, null);
}
});
rightButton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LoganManager.w_tableMode(TAG, "跳轉數據下載頁");
CC.obtainBuilder(ComponentName.COMPONENT_DOWNLOAD)
.setActionName("showDownloadActivity")
.addParam("fromPage", 2)
.build()
.call();
// LoganManager.uploadLog(mContext, true);
}
});
mTopBar.setTitle("餐檯模式");
......@@ -315,9 +321,11 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
public void longClickSkyorder() {
boolean state = mPresenter.setSkyorderMode();
if (state) {
LoganManager.w_tableMode(TAG, "長按鎖定Skyorder模式");
mTopBar.setTitle("打印skyorder");
mPresenter.openSkyorderMode();
} else {
LoganManager.w_tableMode(TAG, "長按解鎖Skyorder模式");
canceTableAction();
}
setLockVisibility(state);
......@@ -326,6 +334,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@OnClick(R2.id.rl_skyorder)
public void clickSkyorder() {
LoganManager.w_tableMode(TAG, "點擊Skyorder按鈕");
TableAction tableAction = mPresenter.getTableActionByClass(PrintSkyorderAction.class);
if (tableAction != null) {
mPresenter.setTableAction(tableAction);
......@@ -340,6 +349,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public void setCurrentTableAction(TableAction action) {
LoganManager.w_tableMode(TAG, "點擊" + action.getActionTitle() + "操作");
btn_cancel_operat.setVisibility(View.VISIBLE);
ll_table_operat_content.setVisibility(View.VISIBLE);
// rv_bottom_function.setVisibility(View.INVISIBLE);
......@@ -359,6 +369,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public void canceTableAction() {
LoganManager.w_tableMode(TAG, "餐檯操作");
btn_cancel_operat.setVisibility(View.INVISIBLE);
ll_table_operat_content.setVisibility(View.INVISIBLE);
// rv_bottom_function.setVisibility(View.VISIBLE);
......@@ -439,7 +450,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
}
});
} else {
setCenterContentMarginBottom(QMUIDisplayHelper.dp2px(this,60));
setCenterContentMarginBottom(QMUIDisplayHelper.dp2px(this, 60));
}
}
......@@ -555,6 +566,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public void onTabSelected(int index) {
LoganManager.w_tableMode(TAG, "當前頁面【" + mTabTitles[index] + "】");
switch (index) {
case 0:
//setBottomFunctionVisibility(false);
......
......@@ -272,9 +272,9 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
tv_order_num.setText(orderCode + orderDetailItem.getBillNo() + " " + mealCode + orderDetailItem.getTakeFoodCode());
} else {
String tableName = LanguageUtils.get_language_system(this, "table.number", "檯號") + ": ";
String orderNumber = LanguageUtils.get_language_system(this, "order.number", "單號") + ": ";
String orderNumber = LanguageUtils.get_language_system(this, "order.number", "單號") + ": ";
tv_table_name.setText(tableName + orderDetailItem.getTableName());
tv_order_num.setText(orderNumber + orderDetailItem.getId());
tv_order_num.setText(orderNumber + orderDetailItem.getOrderNo());
}
tv_people_num.setText(pax);
tv_open_time.setText(openTable);
......
......@@ -152,9 +152,9 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
tv_order_num.setText(orderCode + orderBean.getBillNo() + " " + mealCode + orderBean.getTakeFoodCode());
} else {
String tableName = LanguageUtils.get_language_system(mContext, "table.number", "檯號") + ": ";
String orderNumber = LanguageUtils.get_language_system(mContext, "order.number", "單號") + ": ";
String orderNumber = LanguageUtils.get_language_system(mContext, "order.number", "單號") + ": ";
tv_table_name.setText(tableName + orderBean.getTableName());
tv_order_num.setText(orderNumber + orderBean.getId());
tv_order_num.setText(orderNumber + orderBean.getOrderNo());
}
//先将check回调情况,防止setChecked时反复调用onCheckedChanged方法
......
......@@ -10,9 +10,7 @@ import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.order.contract.OrderStatusContract;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
......@@ -21,7 +19,6 @@ import com.gingersoft.gsa.cloud.table.mvp.contract.AllOrderContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager.AllOrderPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.google.gson.JsonIOException;
import com.google.gson.JsonParseException;
import com.jess.arms.base.BaseFragment;
......@@ -32,16 +29,11 @@ import com.qmuiteam.qmui.widget.QMUIEmptyView;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
import org.json.JSONException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
import static com.jess.arms.utils.Preconditions.checkNotNull;
......
......@@ -7,9 +7,11 @@ import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.FoodReasonAdapter;
......@@ -18,6 +20,7 @@ import com.google.android.flexbox.FlexDirection;
import com.google.android.flexbox.FlexWrap;
import com.google.android.flexbox.FlexboxLayoutManager;
import com.google.android.flexbox.JustifyContent;
import com.google.android.material.slider.Slider;
import com.qmuiteam.qmui.layout.QMUILinearLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUIEmptyView;
......@@ -35,7 +38,7 @@ import java.util.List;
* 修订历史:2020-03-28
* 描述:
*/
public class CancelFoodDialog extends BaseRetryDialog implements QMUISlider.Callback {
public class CancelFoodDialog extends BaseRetryDialog implements Slider.OnSliderTouchListener {
private static final String TAG = "CancelFoodDialog";
......@@ -49,11 +52,11 @@ public class CancelFoodDialog extends BaseRetryDialog implements QMUISlider.Call
/***
* 可取消最大數
*/
private int maxCancelNumber = 10;
private int mMaxCancelNumber = 10;
/**
* 當前選擇的取消數
*/
private int cancelNumber = 1;
private int mCurrCancelNumber = 1;
/**
* 取消原因數據
*/
......@@ -64,7 +67,7 @@ public class CancelFoodDialog extends BaseRetryDialog implements QMUISlider.Call
private QMUITopBar mTopBar;
private QMUIRoundButton btn_all_number;
private QMUISlider slider_food_count;
private Slider slider_food_count;
private TextView tv_number_value, tv_max_number, tv_min_number;
private QMUIEmptyView mEmptyView;
......@@ -103,16 +106,16 @@ public class CancelFoodDialog extends BaseRetryDialog implements QMUISlider.Call
mItems.addAll(items);
}
public void setMaxCancelNumber(int maxCancelNumber) {
this.maxCancelNumber = maxCancelNumber;
public void setMaxCancelNumber(int mMaxCancelNumber) {
this.mMaxCancelNumber = mMaxCancelNumber;
}
public void setCancelNumber(int cancelNumber) {
this.cancelNumber = cancelNumber;
public void setCancelNumber(int mCurrCancelNumber) {
this.mCurrCancelNumber = mCurrCancelNumber;
}
public int getCancelNumber() {
return cancelNumber;
return mCurrCancelNumber;
}
public CancelFoodDialog build() {
......@@ -138,16 +141,14 @@ public class CancelFoodDialog extends BaseRetryDialog implements QMUISlider.Call
recycle_cancel_info = view.findViewById(R.id.recycle_cancel_info);
//設置最大最小取消數
tv_max_number.setText(String.valueOf(maxCancelNumber));
tv_min_number.setText(String.valueOf(cancelNumber));
//設置默認進度
slider_food_count.setCurrentProgress(getCurrentProgress(cancelNumber));
tv_max_number.setText(String.valueOf(mMaxCancelNumber));
tv_min_number.setText(String.valueOf(mCurrCancelNumber));
slider_food_count.setCallback(this);
slider_food_count.addOnSliderTouchListener(this);
btn_all_number.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
slider_food_count.setCurrentProgress(100);
slider_food_count.setValue(mMaxCancelNumber);
}
});
ll_container.setRadiusAndShadow(mRadius, QMUIDisplayHelper.dp2px(mContext, mShadowElevationDp), mShadowAlpha);
......@@ -158,9 +159,11 @@ public class CancelFoodDialog extends BaseRetryDialog implements QMUISlider.Call
}
public void initParmas() {
cancelNumber = 1;
tv_number_value.setText(String.valueOf(cancelNumber));
slider_food_count.setCurrentProgress(getCurrentProgress(cancelNumber));
mCurrCancelNumber = 1;
tv_number_value.setText(String.valueOf(mCurrCancelNumber));
slider_food_count.setValueFrom(mCurrCancelNumber);
slider_food_count.setValueTo(mMaxCancelNumber);
slider_food_count.setValue(mCurrCancelNumber);
}
private void initTopbar() {
......@@ -192,20 +195,6 @@ public class CancelFoodDialog extends BaseRetryDialog implements QMUISlider.Call
return flexboxLayoutManager;
}
private int getCurrentProgress(int num) {
if (maxCancelNumber == 0) {
maxCancelNumber = 10;
}
int progress = num * 100 / maxCancelNumber;
return progress;
}
private int getCancelNumberByProgress(int progress) {
//這裡默認進度從1開始
float number = (getCurrentProgress(1) + progress) * maxCancelNumber / 100;
return Math.round(number);
}
public void showEmptyView(boolean isSuccess, int size, Throwable t) {
showEmptyView(isSuccess, size, t, mEmptyView, recycle_cancel_info);
}
......@@ -228,49 +217,23 @@ public class CancelFoodDialog extends BaseRetryDialog implements QMUISlider.Call
return R.layout.table_dialog_cancel_food;
}
@Override
public void onProgressChange(QMUISlider slider, int progress, int tickCount, boolean fromUser) {
if (progress == 0) {
cancelNumber = 1;
tv_number_value.setText(String.valueOf(cancelNumber));
} else if (progress == 100) {
cancelNumber = maxCancelNumber;
tv_number_value.setText(String.valueOf(cancelNumber));
} else {
cancelNumber = getCancelNumberByProgress(progress);
if (cancelNumber == 0) {
cancelNumber = 1;
}
tv_number_value.setText(String.valueOf(cancelNumber));
}
}
@Override
public void onTouchDown(QMUISlider slider, int progress, int tickCount, boolean hitThumb) {
}
@Override
public void onTouchUp(QMUISlider slider, int progress, int tickCount) {
private OnClickListener onClickListener;
public void setOnClickListener(OnClickListener onClickListener) {
this.onClickListener = onClickListener;
}
@Override
public void onStartMoving(QMUISlider slider, int progress, int tickCount) {
public void onStartTrackingTouch(@NonNull Slider slider) {
mCurrCancelNumber = 1;
tv_number_value.setText(String.valueOf(slider.getValue()));
}
@Override
public void onStopMoving(QMUISlider slider, int progress, int tickCount) {
public void onStopTrackingTouch(@NonNull Slider slider) {
}
private OnClickListener onClickListener;
public void setOnClickListener(OnClickListener onClickListener) {
this.onClickListener = onClickListener;
}
public interface OnClickListener {
void onItemClick(FoodReason item, int position, int deleteNumber);
}
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#222222"
android:gravity="center"
android:text="该区域可折叠"
android:textColor="@android:color/white"
android:textSize="30sp"
app:layout_scrollFlags="scroll" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#DD012D"
android:gravity="center"
android:text="该区域为上滑至头部固定区域"
android:textColor="@android:color/white"
android:textSize="20sp" />
</com.google.android.material.appbar.AppBarLayout>
<!-- <com.google.android.material.bottomappbar.BottomAppBar-->
<!-- android:id="@+id/bar"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_gravity="bottom"-->
<!-- android:fitsSystemWindows="true"/>-->
<!-- <com.google.android.material.floatingactionbutton.FloatingActionButton-->
<!-- android:id="@+id/fab"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- app:layout_anchor="@+id/bar"-->
<!-- app:srcCompat="@drawable/ic_account"/>-->
<!-- <FrameLayout-->
<!-- android:id="@+id/bottom_drawer"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:elevation="16dp"-->
<!-- app:behavior_hideable="true"-->
<!-- app:layout_behavior="@string/bottom_sheet_behavior">-->
<!-- <com.google.android.material.navigation.NavigationView-->
<!-- android:id="@+id/navigation_view"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content" />-->
<!-- </FrameLayout>-->
</androidx.coordinatorlayout.widget.CoordinatorLayout>
......@@ -69,11 +69,20 @@
android:layout_margin="@dimen/dp_8"
android:orientation="vertical">
<com.qmuiteam.qmui.widget.QMUISlider
<!-- <com.google.android.material.slider.Slider-->
<!-- android:id="@+id/slider_food_count"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- app:qmui_slider_bar_progress_color="@color/theme_color" />-->
<com.google.android.material.slider.Slider
android:id="@+id/slider_food_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:qmui_slider_bar_progress_color="@color/theme_color" />
android:theme="@style/ThemeOverlay.PrimaryPalette.Red"
android:valueFrom="0"
android:valueTo="11"
android:stepSize="1" />
<TextView
android:id="@+id/tv_min_number"
......
......@@ -8,5 +8,8 @@
<item name="colorAccent">@color/table_colorAccent</item>
</style>
<style name="ThemeOverlay.PrimaryPalette.Red" parent="">
<item name="colorPrimary">#e53935</item>
<item name="colorPrimaryDark">#ab000d</item>
</style>
</resources>
......@@ -7,8 +7,8 @@ ext {
targetSdkVersion : 29,
//正式版: 1.0.3 3
//內部測試版:1.2.0 20
versionCode : 21,
versionName : "1.2.1"
versionCode : 22,
versionName : "1.2.2"
]
version = [
......@@ -40,6 +40,7 @@ ext {
"cardview-v7" : 'androidx.cardview:cardview:1.0.0',
"annotations" : 'androidx.annotation:annotation:1.0.0',
"recyclerview-v7" : 'androidx.recyclerview:recyclerview:1.0.0',
"coordinatorlayout" : 'androidx.coordinatorlayout:coordinatorlayout:1.1.0',
//network
"retrofit" : "com.squareup.retrofit2:retrofit:${version["retrofitSdkVersion"]}",
......
......@@ -128,6 +128,7 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.gcssloop.recyclerview:pagerlayoutmanager:2.3.8'
//陰影背景
api 'com.github.lihangleo2:ShadowLayout:2.1.6'
......
......@@ -47,8 +47,10 @@ import com.gingersoft.gsa.cloud.common.loadsir.pos.PosVoidStatusExceptionCallbac
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.oaId.DeviceID;
import com.gingersoft.gsa.cloud.common.printer.AidlUtil;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrintPaperPlugins;
import com.gingersoft.gsa.cloud.common.printer.PrinterFileUtils;
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.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.FileUtils;
import com.gingersoft.gsa.cloud.common.utils.crash.AppCrashHandler;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
......@@ -170,7 +172,7 @@ public class GsaCloudApplication extends BaseApplication {
private void initQMUI() {
//初始化側滑回退
QMUISwipeBackActivityManager.init(this);
// QMUISwipeBackActivityManager.init(this);
//初始化主題管理器
// QDSkinManager.install(this);
}
......@@ -216,12 +218,12 @@ public class GsaCloudApplication extends BaseApplication {
* 初始化Hyweb支付回調
*/
private void initHywebCommandImpl() {
// if (AppDevices.isHywebPos()) {
if (AppDevices.isHywebPos()) {
CC.obtainBuilder(ComponentName.COMPONENT_LOGIN)
.setActionName(ComponentAction.Login.INIT_HYWEB_COMMAND_IMPL)
.build()
.call();
// }
}
}
private void initRxjava() {
......@@ -340,94 +342,50 @@ public class GsaCloudApplication extends BaseApplication {
SPUtils.put(PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.IP_PRINT);
}
//打印流程
PrintPaperPlugins.setOnPrinterFlowHandler(new PrinterFlowListener() {
PrinterPlugins.setOnPrinterFlowHandler(new PrinterFlowListener() {
@Override
public void onPrinterDataBefore(int orderType, String printerData, String printerDeviceInfo) {
LoganManager.w_code(TAG, "onPrinterDataBefore printerData=" + printerData + " printerDeviceInfo=" + printerDeviceInfo);
}
@Override
public void onPrinterBitmapBefore(int orderType, String directoryName, List<Map<String, Bitmap>> bitmaps) {
LoganManager.w_code(TAG, "onPrinterBitmapBefore");
RxIOTask rxIOTask = new RxIOTask(0) {
@Override
public Object doInIOThread(Object o) {
File file = new File(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
if (file != null && file.exists()) {
long FILE_SIZE = FileUtils.getDirSize(file);
if (FILE_SIZE > FileUtils.PrinterImagePath.PRINTER_MAX_FILE_SIZE) {
//大於100M 就刪除
File prjPath = new File(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
if (prjPath.isDirectory()) {
File[] prjDirectorys = prjPath.listFiles();
for (int i = prjDirectorys.length - 1; i >= 0; i--) {
File prjDirectory = prjDirectorys[i];
boolean deleteResult = prjDirectory.delete();
if (deleteResult && FILE_SIZE <= FileUtils.PrinterImagePath.PRINTER_KEEP_FILE_SIZE) {
FILE_SIZE = FileUtils.getFileSize(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
LoganManager.w_code(TAG, "onPrinterBitmapBefore delete kitchen prj file after size :" + FILE_SIZE);
break;
}
}
}
}
}
for (Map<String, Bitmap> bitmapMap : bitmaps) {
Set<Map.Entry<String, Bitmap>> bitmapSet = bitmapMap.entrySet();
Iterator<Map.Entry<String, Bitmap>> bitmapIterator = bitmapSet.iterator();
while (bitmapIterator.hasNext()) {
Map.Entry<String, Bitmap> bitmapEntry = bitmapIterator.next();
String prjName = directoryName + "-" + System.currentTimeMillis();
BitmapUtil.saveBitmap(bitmapEntry.getValue(), FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH + directoryName + File.separator, prjName + ".jpeg", new BitmapUtil.OnSaveBitmapListener() {
private final String TAG = "PrinterPlugins";
@Override
public void onSuccess() {
LoganManager.w_code(TAG, "onPrinterBitmapBefore saveBitmap onSuccess");
public void onPrinterDataBefore(int orderType, int printType, String printerData, String printerDeviceInfo) {
LoganManager.w_printer(TAG, "打印前数据--> printerData=" + printerData + " printerDeviceInfo=" + printerDeviceInfo);
}
@Override
public void onError(Exception e) {
LoganManager.w_code(TAG, "onPrinterBitmapBefore saveBitmap onError :" + e.getMessage());
}
});
}
}
return null;
}
};
RxJavaUtils.doInIOThread(rxIOTask);
public void onPrinterBitmapBefore(int orderType, int printType, String directoryName, List<Bitmap> bitmaps) {
LoganManager.w_printer(TAG, "生成的打印圖片-->");
PrinterFileUtils.savePrinterBitmapByType(orderType, printType, directoryName, bitmaps);
}
@Override
public void onPrintSuccess(PrinterDeviceBean printerDeviceBean) {
LoganManager.w_code(TAG, "onPrintSuccess");
LoganManager.w_printer(TAG, "打印成功");
}
@Override
public void onPrintError(int errorCode, PrinterDeviceBean printerDeviceBean) {
LoganManager.w_code(TAG, "onPrintError errorCode:" + errorCode);
LoganManager.w_printer(TAG, "打印失敗:" + errorCode);
}
@Override
public void connectionBefore(int type, String IP, String port, String ioTimeout, long printTimeout) {
Object[] objs = {type, IP, port, ioTimeout, printTimeout};
LoganManager.w_code(TAG, String.format("connectionBefore type=%s ,IP=%s ,port=%s ,ioTimeout=%s ,printTimeout=%s", objs));
public void connectionBefore(String deviceName, String ip, int port, long ioTimeout, long printTimeout) {
Object[] objs = {deviceName, ip, port, ioTimeout, printTimeout};
LoganManager.w_printer(TAG, String.format("連接打印機前--> deviceName=%s ,IP=%s ,port=%s ,ioTimeout=%s ,printTimeout=%s", objs));
}
@Override
public void connectionSuccess() {
LoganManager.w_code(TAG, "connectionSuccess");
LoganManager.w_printer(TAG, "連接打印機成功");
}
@Override
public void connectionError(Exception e) {
LoganManager.w_code(TAG, "connectionError e: " + e.getMessage());
LoganManager.w_printer(TAG, "連接打印機失敗" );
}
@Override
public void disconnect() {
LoganManager.w_code(TAG, "disconnect");
LoganManager.w_printer(TAG, "斷開打印機連接");
}
});
}
......
package com.gingersoft.gsa.cloud.common.config;
import com.gingersoft.gsa.cloud.common.constans.HttpsConstans;
/**
* @author : bin
* @create date: 2020-11-05
......@@ -12,12 +14,12 @@ public class LoganConfig {
public static final String EncryptKey16 = "0123456789012345";
public static final String EncryptIV16 = "0123456789012345";
public static final String APP_ID = "gingersoft1008611";
public static final String UPLOAD_LOG_URL = "http://192.168.1.113:8082/logan/upload.json";
public static final String UPLOAD_LOG_URL = HttpsConstans.HTTP_ADDRESS_URL_HK+ "/logan-web/logan/upload.json";
/**
* 日誌保留天數
*/
public static final int DAY = 1;
public static final int DAY = 2;
/**
* 代码日志
......@@ -44,8 +46,4 @@ public class LoganConfig {
*/
public static final byte native_LEVLE = 6;
/**
* 打印相關日誌
*/
public static final byte PRINTER_LEVLE = 7;
}
......@@ -14,6 +14,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
public Response onHttpResultResponse(String httpResult, Interceptor.Chain chain, Response response) {
// 统一处理http响应。eg:状态码不是200时,根据状态码做相应的处理。
LoganManager.w_network("接收請求: " + httpResult);
return response;
}
......
......@@ -36,7 +36,7 @@ public class HttpsConstans {
//--------------------------------------------其他全局----------------------------------------------------------------------------
private static String HTTP_ADDRESS_URL_FORMAL = "https://m.ricepon.com:8444";//正式服務器
private static String HTTP_ADDRESS_URL_SZ = "http://gingersoft.tpddns.cn:58201";//深圳測試
private static String HTTP_ADDRESS_URL_HK = "http://a.ricepon.com:58201";//香港測試
public static String HTTP_ADDRESS_URL_HK = "http://a.ricepon.com:58201";//香港測試
private static String HTTP_ADDRESS_URL_PRE = "http://prf-m.ricepon.com";//預發佈
public static String CLOUD_GSA_API_PATH = "/ricepon-cloud-gsa/api/";//雲端GSA路徑
......
......@@ -22,6 +22,7 @@ public class PrintConstans {
*/
public static final String PRINT_TYPE = "print_type";//打印類型
public static final String PRINT_CONTENT = "print_content";//打印內容
public static final String PRINT_ORDER_NO = "print_order_no";//打印ID(唯一标识即可)
public static final String PRINT_LOADING = "is_show_loading";//是否顯示加載框
public final static int PRINT_TEST = -1;//測試頁
......
......@@ -31,10 +31,10 @@ public class RestaurantInfoManager {
if (restaurantInfo == null) {
restaurantInfo = new RestaurantInfo();
}
brandInfo.setBrandId((Integer) SPUtils.get(UserConstans.brandId, 1));
brandInfo.setBrandId((Integer) SPUtils.get(UserConstans.brandId, 0));
brandInfo.setBrandName((String) SPUtils.get(UserConstans.brandName, ""));
restaurantInfo.setGsPosShopId((String) SPUtils.get(UserConstans.gsPosShopId, "-1"));
restaurantInfo.setRestaurantId((Integer) SPUtils.get(UserConstans.restaurantId, 26));
restaurantInfo.setRestaurantId((Integer) SPUtils.get(UserConstans.restaurantId, 0));
restaurantInfo.setRestaurantName((String) SPUtils.get(UserConstans.restaurantName, ""));
}
......
......@@ -26,7 +26,6 @@ public class LoganManager {
private static final String TAG = LoganManager.class.getSimpleName();
public static void w_code(String TAG, String log) {
Logan.w(log, LoganConfig.CODE_LEVLE);
printLog(TAG, log);
......@@ -42,7 +41,7 @@ public class LoganManager {
//網絡日誌比較重要立即寫入本地
// Logan.f();
if (BuildConfig.DEBUG) {
printLog("Network", log);
printLog("network", log);
}
}
......@@ -53,12 +52,6 @@ public class LoganManager {
printLog("AppCrashHandler", log);
}
public static void w_printer(String TAG,String log) {
Logan.w(log, LoganConfig.PRINTER_LEVLE);
// Logan.f();
printLog(TAG, log);
}
public static void w_H5(String log) {
Logan.w(log, LoganConfig.H5_LEVLE);
}
......@@ -67,6 +60,41 @@ public class LoganManager {
Logan.w(log, LoganConfig.native_LEVLE);
}
/*******************************自定義業務日誌類型**************************************/
private static final String DATABASE_BUSINESS_TAG = "database-> ";
private static final String PRINTER_BUSINESS_TAG = "printer-> ";
private static final String TABLEMODE_BUSINESS_TAG = "tableMode-> ";
private static final String ORDER_BUSINESS_TAG = "order-> ";
private static final String PAY_BUSINESS_TAG = "pay-> ";
public static void w_database(String TAG, String log) {
Logan.w(DATABASE_BUSINESS_TAG + log, LoganConfig.CODE_LEVLE);
if (BuildConfig.DEBUG) {
printLog(TAG, log);
}
}
public static void w_printer(String TAG, String log) {
Logan.w(PRINTER_BUSINESS_TAG + log, LoganConfig.CODE_LEVLE);
printLog(TAG, log);
}
public static void w_tableMode(String TAG, String log) {
Logan.w(TABLEMODE_BUSINESS_TAG + log, LoganConfig.CODE_LEVLE);
printLog(TAG, log);
}
public static void w_order(String TAG, String log) {
Logan.w(ORDER_BUSINESS_TAG + log, LoganConfig.CODE_LEVLE);
printLog(TAG, log);
}
public static void w_pay(String TAG, String log) {
Logan.w(PAY_BUSINESS_TAG + log, LoganConfig.CODE_LEVLE);
printLog(TAG, log);
}
private static void printLog(String TAG, String log) {
if (BuildConfig.DEBUG) {
LogUtil.d(TAG, log);
......@@ -98,7 +126,7 @@ public class LoganManager {
}
}
});
LoganManager.w_code(TAG,"upload result, httpCode: " + statusCode + ", details: " + resultData);
LoganManager.w_code(TAG, "上傳日誌到服務器: " + statusCode + ", details: " + resultData);
}
});
}
......
package com.gingersoft.gsa.cloud.common.printer;
import android.graphics.Bitmap;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.FileUtils;
import com.gingersoft.gsa.cloud.common.utils.view.BitmapUtil;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import com.xuexiang.rxutil2.rxjava.task.RxIOTask;
import java.io.File;
import java.util.List;
/**
* @作者: bin
* @創建時間: 2021-01-29 16:04
* @更新時間: 2021-01-29 16:04
* @描述:
*/
public class PrinterFileUtils {
private static final String TAG = "PrinterFileUtils";
//圖片文件最大文件大小不能超過100M
public static final int PRINTER_MAX_FILE_SIZE = 100 * 1024 * 1024;
//最少保留多少打印圖片文件大小
public static final int PRINTER_KEEP_FILE_SIZE = 20 * 1024 * 1024;
//根目錄
public static final String PrinterImagesRootPath = "PrinterImages";
/**
* 廚房單
* 堂食結賬單
* 堂食印單
* 堂食上菜紙
* QRCODE
* 外送印單
* 外送結賬單
* 清機單
*/
public static final String KitchenImage = "廚房單";
public static final String PrintOrderImage = "堂食印單";
public static final String BillImage = "堂食結賬單";
public static final String ServingPaperImage = "上菜紙";
public static final String QrcodeImage = "Qrcode";
public static final String DeliveryPrintOrderImage = "外賣印單";
public static final String DeliveryBillImage = "外賣結賬單";
public static final String SettlementImage = "清機";
public final static String ROOT_PATH = FileUtils.ALBUM_PATH + PrinterImagesRootPath + File.separator;
public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage + File.separator;
public final static String PRINT_ORDER_IMAGE_PATH = ROOT_PATH + PrintOrderImage + File.separator;
public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage + File.separator;
public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage + File.separator;
public final static String DELIVERY_PRINT_ORDER_IMAGE_PATH = ROOT_PATH + DeliveryPrintOrderImage + File.separator;
public final static String DELIVERY_BILL_IMAGE_PATH = ROOT_PATH + DeliveryBillImage + File.separator;
public final static String QRCODE_IMAGE_PATH = ROOT_PATH + QrcodeImage + File.separator;
public final static String SETTLEMENT_IMAGE_PATH = ROOT_PATH + SettlementImage + File.separator;
public static void savePrinterBitmapByType(int orderType, int printType, String directoryName, List<Bitmap> bitmaps) {
RxIOTask rxIOTask = new RxIOTask(0) {
@Override
public Object doInIOThread(Object o) {
String savePath = getPathByPrintType(printType);
if (TextUtils.isEmpty(savePath)) {
return null;
}
LoganManager.w_printer(TAG, "保存打印圖片到本地 path = " + savePath);
File rootFileDir = new File(ROOT_PATH);
if (rootFileDir != null && rootFileDir.exists()) {
long FILE_SIZE = FileUtils.getDirSize(rootFileDir);
if (FILE_SIZE > PRINTER_MAX_FILE_SIZE) {
LoganManager.w_printer(TAG, "刪除本地打印圖片 before size = " + FILE_SIZE);
//大於100M 就刪除
File prjPath = new File(ROOT_PATH);
if (prjPath.isDirectory()) {
File[] prjDirectorys = prjPath.listFiles();
for (int i = prjDirectorys.length - 1; i >= 0; i--) {
File prjDirectory = prjDirectorys[i];
boolean deleteResult = prjDirectory.delete();
if (deleteResult && FILE_SIZE <= PRINTER_KEEP_FILE_SIZE) {
FILE_SIZE = FileUtils.getDirSize(rootFileDir);
LoganManager.w_printer(TAG, "刪除本地打印圖片 after size = " + FILE_SIZE);
break;
}
}
}
}
}
for (Bitmap bitmap : bitmaps) {
String fileName = directoryName + "-" + System.currentTimeMillis();
LoganManager.w_printer(TAG, "fileName : " + fileName);
BitmapUtil.saveBitmap(bitmap, savePath + directoryName + File.separator, fileName + ".jpeg", new BitmapUtil.OnSaveBitmapListener() {
@Override
public void onSuccess() {
LoganManager.w_printer(TAG, "保存打印圖片成功");
}
@Override
public void onError(Exception e) {
LoganManager.w_printer(TAG, "保存打印圖片失敗 onError :" + e.getMessage());
}
});
}
return null;
}
};
RxJavaUtils.doInIOThread(rxIOTask);
}
private static String getPathByPrintType(int printType) {
switch (printType) {
case PrintConstans.PRINT_SERVE: //堂食上菜紙
return PrinterFileUtils.SERVING_PAPER_IMAGE_PATH;
case PrintConstans.PRINT_SLIP://堂食印單
return PrinterFileUtils.PRINT_ORDER_IMAGE_PATH;
case PrintConstans.PRINT_BILL://堂食結賬單
return PrinterFileUtils.BILL_IMAGE_PATH;
case PrintConstans.PRINT_SKYORDER_QRCODE://QRCODE
return PrinterFileUtils.QRCODE_IMAGE_PATH;
case PrintConstans.PRINT_KITCHEN://廚房單 PRJ
return PrinterFileUtils.KITCHEN_PRJ_IMAGE_PATH;
case PrintConstans.PRINT_OTHER_ORDER://外送印單
return PrinterFileUtils.DELIVERY_PRINT_ORDER_IMAGE_PATH;
case PrintConstans.PRINT_OTHER_CLOSING://外送結賬
return PrinterFileUtils.DELIVERY_BILL_IMAGE_PATH;
case PrintConstans.PRINT_CLEAN_MACHINE://清機報表
return PrinterFileUtils.SETTLEMENT_IMAGE_PATH;
}
return null;
}
}
......@@ -8,7 +8,7 @@ package com.gingersoft.gsa.cloud.common.printer.plugins;
*/
public interface ExternalPrinterConnection {
void connectionBefore(int type, String IP, String port, String ioTimeout, long printTimeout);
void connectionBefore(String deviceName, String IP, int port, long ioTimeout, long printTimeout);
void connectionSuccess();
......
package com.gingersoft.gsa.cloud.common.printer.plugins;
import android.graphics.Bitmap;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import java.util.List;
......@@ -14,9 +15,9 @@ import java.util.Map;
*/
public interface PrinterFlowListener extends ExternalPrinterConnection {
void onPrinterDataBefore(int orderType,String printerData,String printerDeviceInfo);
void onPrinterDataBefore(int orderType, int printType, String printerData, String printerDeviceInfo);
void onPrinterBitmapBefore(int orderType,String directoryName, List<Map<String, Bitmap>> bitmaps);
void onPrinterBitmapBefore(int orderType, int printType, String directoryName, List<Bitmap> bitmaps);
void onPrintSuccess(PrinterDeviceBean printerDeviceBean);
......
......@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.common.printer.plugins;
import io.reactivex.annotations.NonNull;
import io.reactivex.annotations.Nullable;
import io.reactivex.exceptions.UndeliverableException;
import io.reactivex.functions.Consumer;
/**
......@@ -11,7 +10,7 @@ import io.reactivex.functions.Consumer;
* @更新時間: 2021-01-25 9:46
* @描述:
*/
public class PrintPaperPlugins {
public class PrinterPlugins {
@Nullable
static volatile Consumer<? super Throwable> errorHandler;
......@@ -44,7 +43,7 @@ public class PrintPaperPlugins {
}
public static void setErrorHandler(Consumer<? super Throwable> errorHandler) {
PrintPaperPlugins.errorHandler = errorHandler;
PrinterPlugins.errorHandler = errorHandler;
}
public static PrinterFlowListener getOnPrinterFlowHandler() {
......@@ -55,6 +54,6 @@ public class PrintPaperPlugins {
}
public static void setOnPrinterFlowHandler(PrinterFlowListener onPrinterFlowHandler) {
PrintPaperPlugins.onPrinterFlowHandler = onPrinterFlowHandler;
PrinterPlugins.onPrinterFlowHandler = onPrinterFlowHandler;
}
}
......@@ -23,6 +23,7 @@ import com.gingersoft.gsa.cloud.common.constans.AppConstans
import com.gingersoft.gsa.cloud.common.constans.HttpsConstans
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
import com.gingersoft.gsa.cloud.common.core.user.UserContext
import com.gingersoft.gsa.cloud.common.logan.LoganManager
import com.gingersoft.gsa.cloud.common.utils.SoundPoolUtils
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
......@@ -41,6 +42,7 @@ import java.util.concurrent.TimeUnit
class GetInfoUpdateService : Service() {
private val TAG = "heart"
/**
* 心跳检测时间
*/
......@@ -86,7 +88,6 @@ class GetInfoUpdateService : Service() {
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
Log.d(TAG, "onStartCommand()")
// 在API11之后构建Notification的方式
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
createNotificationChannel()
......@@ -102,7 +103,7 @@ class GetInfoUpdateService : Service() {
*/
@RequiresApi(Build.VERSION_CODES.O)
fun createNotificationChannel() {
if(!UserContext.newInstance().isLogin){
if (!UserContext.newInstance().isLogin) {
stopSelf()
return
}
......@@ -358,10 +359,12 @@ class GetInfoUpdateService : Service() {
loginfo.append(":")
loginfo.append(content)
loginfo.append("\n")
LoganManager.w_network(TAG + " -> " + content);
}
var mIntervalDisposable: Disposable? = null
var timerDisposable: Disposable? = null
/**
* 执行定时任务
*/
......
......@@ -66,23 +66,32 @@ public class FileUtils {
/**
* 打印前圖片存儲路徑
*/
public final static class PrinterImagePath {
//Prj圖片文件最大文件大小不能超過100M
public static final int PRINTER_MAX_FILE_SIZE = 100 * 1024 * 1024;
//Prj最少保留文件大小
public static final int PRINTER_KEEP_FILE_SIZE = 20 * 1024 * 1024;
public static String PrinterImagesRootPath = "PrinterImages";
public static String KitchenImage = "KitchenPrj";
public static String OrderImage = "OrderImage";
public static String BillImage = "BillImage";
public static String ServingPaperImage = "ServingPaperImage";
public final static String ROOT_PATH = ALBUM_PATH + PrinterImagesRootPath + File.separator;
public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage + File.separator;
public final static String ORDER_IMAGE_PATH = ROOT_PATH + OrderImage + File.separator;
public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage + File.separator;
public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage + File.separator;
}
// public final static class PrinterImagePath {
// //Prj圖片文件最大文件大小不能超過100M
// public static final int PRINTER_MAX_FILE_SIZE = 100 * 1024 * 1024;
// //Prj最少保留文件大小
// public static final int PRINTER_KEEP_FILE_SIZE = 20 * 1024 * 1024;
//
// public static String PrinterImagesRootPath = "PrinterImages";
// public static String KitchenImage = "KitchenImages";
// public static String PrintOrderImage = "PrintOrderImages";
// public static String BillImage = "BillImages";
// public static String ServingPaperImage = "ServingPaperImages";
// public static String DeliveryPrintOrderImage = "DeliveryPrintOrderImages";
// public static String DeliveryBillImage = "DeliveryBillImages";
// public static String QrcodeImage = "QrcodeImages";
// public static String SettlementImage = "SettlementImages";
//
// public final static String ROOT_PATH = ALBUM_PATH + PrinterImagesRootPath + File.separator;
// public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage + File.separator;
// public final static String PRINT_ORDER_IMAGE_PATH = ROOT_PATH + PrintOrderImage + File.separator;
// public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage + File.separator;
// public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage + File.separator;
// public final static String DELIVERY_PRINT_ORDER_IMAGE_PATH = ROOT_PATH + DeliveryPrintOrderImage + File.separator;
// public final static String DELIVERY_BILL_IMAGE_PATH = ROOT_PATH + DeliveryBillImage + File.separator;
// public final static String QRCODE_IMAGE_PATH = ROOT_PATH + QrcodeImage + File.separator;
// public final static String SETTLEMENT_IMAGE_PATH = ROOT_PATH + SettlementImage + File.separator;
// }
public final static String FILE_EXTENSION_SEPARATOR = ".";
......
......@@ -2,7 +2,9 @@
<resources>
<style name="AppTheme" parent="PublicTheme">
<!-- 頂部標題theme -->
<item name="QMUITopBarStyle">@style/QDTopBar</item>
<!-- TabItem theme -->
<item name="QMUITabSegmentStyle">@style/QMUITabSegmentStyle</item>
</style>
......
......@@ -19,7 +19,9 @@
<!-- <item name="QMUITabSegmentStyle">@style/QMUITabSegmentStyle</item>-->
<!-- </style>-->
<style name="PublicTheme" parent="QMUI.Compat.NoActionBar">
<!-- 必須配置app自己的theme -->
<item name="app_primary_color">?attr/qmui_config_color_blue</item>
<item name="app_content_bg_color">@color/qmui_config_color_white</item>
......@@ -360,6 +362,7 @@
<item name="android:layout_height">@dimen/button_height</item>
<item name="android:background">@drawable/shape_app_btn</item>
</style>
<style name="app_small_btn_style">
<item name="android:textSize">@dimen/dp_14</item>
<item name="android:textColor">@color/white</item>
......@@ -423,6 +426,7 @@
<item name="android:textColor">@color/color_3c</item>
<item name="android:background">@null</item>
</style>
<style name="AppEditTextStyle_333">
<item name="android:textColorHint">@color/hint_color</item>
<item name="android:textSize">@dimen/dp_16</item>
......@@ -430,6 +434,7 @@
<item name="android:textColor">@color/theme_333_color</item>
<item name="android:background">@null</item>
</style>
<style name="otherOrder_delivery_setting_layout_style">
<item name="android:paddingRight">@dimen/dp_20</item>
</style>
......
......@@ -170,7 +170,7 @@ public class ComboItemDaoUtils {
// }
if (fid > 0) {
sql = sql + " where r.FID='" + fid + "' order by c.SEQ_NO asc";
sql = sql + " where r.FID='" + fid + "' order by c.COM_ID,f.CREATE_TIME desc";
}
Cursor c = mManager.getDaoSession().getFoodDao().getDatabase().rawQuery(sql, null);
while (c.moveToNext()) {
......
......@@ -48,7 +48,7 @@ public class CommandImpl implements ICommand {
@Override
public void onRequest(Context context, String request) {
LoganManager.w_code(TAG, "onRequest : " + request);
LoganManager.w_pay(TAG, "onRequest : " + request);
try {
JSONObject msgObj = new JSONObject(request);
......@@ -83,7 +83,7 @@ public class CommandImpl implements ICommand {
@Override
public void onResponse(Context context, String response) {
LoganManager.w_code(TAG, "onResponse : " + response);
LoganManager.w_pay(TAG, "onResponse : " + response);
AppManager appManager = ArmsUtils.obtainAppComponentFromContext(context).appManager();
//kill掉hyweb支付頁
......@@ -142,7 +142,7 @@ public class CommandImpl implements ICommand {
*/
private void returnLastActivity(Context context, Activity currentActivity) {
if (currentActivity != null) {
LoganManager.w_code(TAG, "currentActivity : " + currentActivity.getClass().getName());
LoganManager.w_pay(TAG, "currentActivity : " + currentActivity.getClass().getName());
//返回上次操作的頁面
Intent intent = new Intent();
intent.setComponent(currentActivity.getComponentName());
......
......@@ -138,7 +138,7 @@ public class RefundActionImpl extends IPosAction<RefundRespose> {
@Override
public void onNext(String result) {
LoganManager.w_code(TAG, "RefundResponse onNext :" + result);
LoganManager.w_pay(TAG, "RefundResponse onNext :" + result);
if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
......@@ -158,7 +158,7 @@ public class RefundActionImpl extends IPosAction<RefundRespose> {
@Override
public void onError(Throwable e) {
LoganManager.w_code(TAG, "RefundResponse onError :" + e.getMessage());
LoganManager.w_pay(TAG, "RefundResponse onError :" + e.getMessage());
onUpdateStatusError(new Exception(e.getMessage()));
}
......@@ -197,7 +197,7 @@ public class RefundActionImpl extends IPosAction<RefundRespose> {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(posMatter));
String json = GsonUtils.GsonString(posMatter);
LoganManager.w_code(TAG, "RefundRequest JSON :" + json);
LoganManager.w_pay(TAG, "RefundRequest JSON :" + json);
return requestBody;
}
......
......@@ -129,7 +129,7 @@ public class RetrievalActionImpl extends IPosAction<RetrievalRespose> {
@Override
public void onNext(String result) {
LoganManager.w_code(TAG, "RetrievalResponse onNext :" + result);
LoganManager.w_pay(TAG, "RetrievalResponse onNext :" + result);
if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
......@@ -149,7 +149,7 @@ public class RetrievalActionImpl extends IPosAction<RetrievalRespose> {
@Override
public void onError(Throwable e) {
LoganManager.w_code(TAG, "RetrievalResponse onError :" + e.getMessage());
LoganManager.w_pay(TAG, "RetrievalResponse onError :" + e.getMessage());
}
@Override
......@@ -194,7 +194,7 @@ public class RetrievalActionImpl extends IPosAction<RetrievalRespose> {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mealOrderPayRequest));
String json = GsonUtils.GsonString(mealOrderPayRequest);
LoganManager.w_code(TAG, "SaleRequest JSON :" + json);
LoganManager.w_pay(TAG, "SaleRequest JSON :" + json);
return requestBody;
}
......@@ -208,7 +208,7 @@ public class RetrievalActionImpl extends IPosAction<RetrievalRespose> {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(posMatter));
String json = GsonUtils.GsonString(posMatter);
LoganManager.w_code(TAG, "RefundRequest JSON :" + json);
LoganManager.w_pay(TAG, "RefundRequest JSON :" + json);
return requestBody;
}
......@@ -226,7 +226,7 @@ public class RetrievalActionImpl extends IPosAction<RetrievalRespose> {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(posMatter));
String json = GsonUtils.GsonString(posMatter);
LoganManager.w_code(TAG, "VoidRequest JSON :" + json);
LoganManager.w_pay(TAG, "VoidRequest JSON :" + json);
return requestBody;
}
......@@ -241,7 +241,7 @@ public class RetrievalActionImpl extends IPosAction<RetrievalRespose> {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(posMatter));
String json = GsonUtils.GsonString(posMatter);
LoganManager.w_code(TAG, "TipRequest JSON :" + json);
LoganManager.w_pay(TAG, "TipRequest JSON :" + json);
return requestBody;
}
......
......@@ -179,7 +179,7 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
@Override
public void onNext(String result) {
LoganManager.w_code(TAG, "SaleResponse onNext :" + result);
LoganManager.w_pay(TAG, "SaleResponse onNext :" + result);
if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
......@@ -200,7 +200,7 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
@Override
public void onError(Throwable e) {
LoganManager.w_code(TAG, "SaleResponse onError :" + e.getMessage());
LoganManager.w_pay(TAG, "SaleResponse onError :" + e.getMessage());
}
@Override
......@@ -273,7 +273,7 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mMealOrderPayRequest));
String json = GsonUtils.GsonString(mMealOrderPayRequest);
LoganManager.w_code(TAG, "SaleRequest JSON :" + json);
LoganManager.w_pay(TAG, "SaleRequest JSON :" + json);
return requestBody;
}
......
......@@ -146,7 +146,7 @@ public class TipsActionImpl extends IPosAction<AdjustTipRespose> {
@Override
public void onNext(String result) {
LoganManager.w_code(TAG, "TipResponse onNext :" + result);
LoganManager.w_pay(TAG, "TipResponse onNext :" + result);
if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
......@@ -167,7 +167,7 @@ public class TipsActionImpl extends IPosAction<AdjustTipRespose> {
@Override
public void onError(Throwable e) {
LoganManager.w_code(TAG, "TipResponse onError :" + e.getMessage());
LoganManager.w_pay(TAG, "TipResponse onError :" + e.getMessage());
}
@Override
......@@ -206,7 +206,7 @@ public class TipsActionImpl extends IPosAction<AdjustTipRespose> {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(posMatter));
String json = GsonUtils.GsonString(posMatter);
LoganManager.w_code(TAG, "TipRequest JSON :" + json);
LoganManager.w_pay(TAG, "TipRequest JSON :" + json);
return requestBody;
}
......
......@@ -140,7 +140,7 @@ public class VoidActionImpl extends IPosAction<VoidRespose> {
@Override
public void onNext(String result) {
LoganManager.w_code(TAG, "VoidResponse onNext :" + result);
LoganManager.w_pay(TAG, "VoidResponse onNext :" + result);
if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
......@@ -160,7 +160,7 @@ public class VoidActionImpl extends IPosAction<VoidRespose> {
@Override
public void onError(Throwable e) {
LoganManager.w_code(TAG, "VoidResponse onError :" + e.getMessage());
LoganManager.w_pay(TAG, "VoidResponse onError :" + e.getMessage());
}
@Override
......@@ -198,7 +198,7 @@ public class VoidActionImpl extends IPosAction<VoidRespose> {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(posMatter));
String json = GsonUtils.GsonString(posMatter);
LoganManager.w_code(TAG, "VoidRequest JSON :" + json);
LoganManager.w_pay(TAG, "VoidRequest JSON :" + json);
return requestBody;
}
......
......@@ -69,27 +69,21 @@ public class PrintExecutor {
return prepare;
}
}
LoganManager.w_printer(TAG,"PrintTask doRequest holder.sendData(data) ------------------------------->");
return holder.sendData(data);
} else {
holder.onPrinterStateChanged(PrintSocketHolder.STATE_0);
List<byte[]> data = maker.getPrintData();
prjIds = maker.getPrjIds();
if (holder.isSocketPrepared()) {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) --------------连接打印机完成----------------->");
if (sendData(data)) {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) -------------打印成功------------------>");
return PrintSocketHolder.ERROR_0;
} else {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) -------------打印失败------------------>");
return PrintSocketHolder.ERROR_100;
}
} else {
if (prepareSocket() && sendData(data)) {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) -------------打印成功------------------>");
return PrintSocketHolder.ERROR_0;
} else {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) -------------打印失败------------------>");
return PrintSocketHolder.ERROR_100;
}
}
......@@ -200,13 +194,11 @@ public class PrintExecutor {
@Override
protected void onPreExecute() {
super.onPreExecute();
LoganManager.w_printer(TAG,"PrintTask onPreExecute");
holder.setOnStateChangedListener(this);
}
@Override
protected Integer doInBackground(PrintDataMaker... makers) {
LoganManager.w_printer(TAG,"PrintTask doInBackground makers.length:" + makers.length);
if (makers == null || makers.length < 1) {
return PrintSocketHolder.ERROR_0;
}
......@@ -216,7 +208,6 @@ public class PrintExecutor {
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
LoganManager.w_printer(TAG,"PrintTask onProgressUpdate values:" + values);
if (values == null || values.length < 1) {
return;
}
......@@ -228,7 +219,6 @@ public class PrintExecutor {
@Override
protected void onPostExecute(Integer integer) {
super.onPostExecute(integer);
LoganManager.w_printer(TAG,"PrintTask onPostExecute values:" + integer);
if (integer != null) {
onResult(integer);
}
......@@ -241,21 +231,36 @@ public class PrintExecutor {
*/
private void onResult(int errorCode) {
try {
LoganManager.w_printer(TAG,"PrintTask onResult errorCode:" + errorCode);
if (mListener != null)
if (mListener != null) {
mListener.onResult(errorCode, holder.getPrinterDeviceBean());
}
if (onPrjPrintResultListener != null) {
onPrjPrintResultListener.onResult(errorCode, prjIds);
}
} catch (Exception e) {
e.printStackTrace();
LoganManager.w_printer(TAG,"PrintTask onResult Exception:" + e.getMessage());
}
}
@Override
public void onStateChanged(int state, PrinterDeviceBean printerDeviceBean) {
LoganManager.w_printer(TAG,"PrintTaskonStateChanged state: " + state);
switch (state) {
case PrintSocketHolder.STATE_0:
LoganManager.w_printer(TAG, "打印機狀態 --> 生成页面数据" );
break;
case PrintSocketHolder.STATE_1:
LoganManager.w_printer(TAG, "打印機狀態 --> 创建Socket连接" );
break;
case PrintSocketHolder.STATE_2:
LoganManager.w_printer(TAG, "打印機狀態 --> 获取输出流" );
break;
case PrintSocketHolder.STATE_3:
LoganManager.w_printer(TAG, "打印機狀態 --> 写入页面数据" );
break;
case PrintSocketHolder.STATE_4:
LoganManager.w_printer(TAG, "打印機狀態 --> 关闭输出流" );
break;
}
publishProgress(state);
}
}
......
......@@ -22,6 +22,7 @@ import android.bluetooth.BluetoothSocket;
import com.elvishew.xlog.XLog;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import java.io.IOException;
......@@ -53,8 +54,8 @@ public class PrintSocketHolder {
public static final int ERROR_4 = -4;// 写入测试页面数据失败
public static final int ERROR_5 = -5;// 必要参数不能为空
public static final int ERROR_6 = -6;// 关闭Socket出错
public static final int ERROR_100 = -100;// 失败
private static final UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");//蓝牙打印UUID
// private String ip;
// private int port = 9100;
......@@ -79,15 +80,16 @@ public class PrintSocketHolder {
return ERROR_5;
try {
if (mDevice != null) {
PrinterPlugins.getOnPrinterFlowHandler().connectionBefore("藍牙打印機", printerDeviceBean.getIp(), printerDeviceBean.getPort(), 0, 0);
bluetoothSocket = mDevice.createRfcommSocketToServiceRecord(uuid);
bluetoothSocket.connect();
} else {
PrinterPlugins.getOnPrinterFlowHandler().connectionBefore("網絡打印機", printerDeviceBean.getIp(), printerDeviceBean.getPort(), PrintConstans.SO_TIMEOUT, PrintConstans.PRINT_TIMEOUT);
socket = new Socket();
InetSocketAddress socketAddress = new InetSocketAddress(printerDeviceBean.getIp(), printerDeviceBean.getPort());
//设置 超时时间
//设置超时时间
socket.setSoTimeout(PrintConstans.SO_TIMEOUT);
socket.connect(socketAddress, PrintConstans.PRINT_TIMEOUT);//开始连接ip
// Log.e("eee", "連接狀態:" + socket.isConnected());
}
} catch (Exception e) {
closeSocket();
......@@ -113,20 +115,21 @@ public class PrintSocketHolder {
}
public boolean isSocketPrepared() {
return (bluetoothSocket != null || socket != null) && out != null;
boolean isPrepared = (bluetoothSocket != null || socket != null) && out != null;
return isPrepared;
}
public int sendData(List<byte[]> data) {
onPrinterStateChanged(STATE_3);
LoganManager.w_printer(TAG,"PrintSocketHolder sendData ----------准备往打印机写入数据-------->");
if (data == null || data.size() <= 0)
if (data == null || data.size() <= 0) {
return ERROR_0;
}
for (byte[] item : data) {
try {
out.write(item);
out.flush();
} catch (IOException e) {
LoganManager.w_printer(TAG,"PrintSocketHolder sendData !!!!!!!!打印异常!!!!!!!! IOException: " + e.getMessage());
LoganManager.w_printer(TAG, "打印异常: " + e.getMessage());
closeSocket();
return ERROR_4;
}
......@@ -162,13 +165,17 @@ public class PrintSocketHolder {
}
public int prepareSocket() {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) --------------准备尝试连接打印机----------------->");
LoganManager.w_printer(TAG, "准备尝试连接打印机");
int create = createSocket();
if (create != PrintSocketHolder.ERROR_0) {
return create;
}
int result = getOutputStream();
LoganManager.w_printer(TAG,"PrintSocketHolder prepareSocket--------------连接打印机结果----------------->" + (result == ERROR_0 ? "成功" : "失败"));
if (result == ERROR_0) {
PrinterPlugins.getOnPrinterFlowHandler().connectionSuccess();
} else {
PrinterPlugins.getOnPrinterFlowHandler().connectionError(new Exception("失敗"));
}
return result;
}
......@@ -176,7 +183,7 @@ public class PrintSocketHolder {
* 销毁
*/
public int closeSocket() {
LoganManager.w_printer(TAG,"PrintSocketHolder closeSocket ----------关闭打印机连接-------->");
LoganManager.w_printer(TAG, "準備关闭打印机连接");
onPrinterStateChanged(STATE_4);
boolean error = false;
try {
......@@ -185,7 +192,7 @@ public class PrintSocketHolder {
out = null;
}
} catch (IOException e) {
LoganManager.w_printer(TAG,"PrintSocketHolder closeSocket out----------关闭打印机连接异常-------->");
LoganManager.w_printer(TAG, "关闭打印机连接异常");
out = null;
error = true;
}
......@@ -195,7 +202,7 @@ public class PrintSocketHolder {
socket = null;
}
} catch (IOException e) {
LoganManager.w_printer(TAG,"PrintSocketHolder closeSocket socket----------关闭打印机连接异常-------->");
LoganManager.w_printer(TAG, "关闭打印机连接异常");
socket = null;
error = true;
}
......@@ -205,10 +212,11 @@ public class PrintSocketHolder {
bluetoothSocket = null;
}
} catch (IOException e) {
LoganManager.w_printer(TAG,"PrintSocketHolder closeSocket bluetoothSocket----------关闭打印机连接异常-------->");
LoganManager.w_printer(TAG, "关闭打印机连接异常");
bluetoothSocket = null;
error = true;
}
PrinterPlugins.getOnPrinterFlowHandler().disconnect();
return error ? ERROR_6 : ERROR_0;
}
......@@ -241,7 +249,6 @@ public class PrintSocketHolder {
// return port;
// }
public PrinterDeviceBean getPrinterDeviceBean() {
return printerDeviceBean;
}
......
......@@ -81,11 +81,9 @@ public class PrintUtil {
private boolean sendData(List<byte[]> data) {
if (holder.sendData(data) == PrintSocketHolder.ERROR_0) {
LoganManager.w_printer(TAG,"PrintTask sendData(List<byte[]> data) -------------打印完成------------------>");
time = 0;
return true;
} else {
LoganManager.w_printer(TAG,"PrintTask sendData(List<byte[]> data) -------------递归打印------------------>");
return prepareSocket() && sendData(data);
}
}
......
......@@ -427,6 +427,8 @@
<item name="windowNoTitle">true</item>
</style>
<!-- <style name="QMUI.Compat.NoActionBar" parent="QMUI.NoActionBar" />-->
<style name="QMUI.Compat.NoActionBar" parent="QMUI.NoActionBar" />
<!-- ListView Start -->
......
......@@ -73,4 +73,5 @@ dependencies {
api rootProject.ext.dependencies["butterknife"]
kapt rootProject.ext.dependencies["butterknife-compiler"]
api rootProject.ext.dependencies["xpopup"]
api rootProject.ext.dependencies["coordinatorlayout"]
}
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