Commit 70fa4320 by 王宇航

結賬單打印,印單打印,上菜紙打印

parent 9e3a4f2b
File added
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest package="com.jess.arms"> <manifest package="com.jess.arms">
</manifest> </manifest>
...@@ -88,9 +88,10 @@ public class DeviceUtils { ...@@ -88,9 +88,10 @@ public class DeviceUtils {
/** /**
* 跳转设置页面 * 跳转设置页面
*
* @param context * @param context
*/ */
public static void startSetting(Context context){ public static void startSetting(Context context) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { //4.4以下版本跳轉詳情頁面 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { //4.4以下版本跳轉詳情頁面
Intent localIntent = new Intent(); Intent localIntent = new Intent();
localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
...@@ -119,6 +120,7 @@ public class DeviceUtils { ...@@ -119,6 +120,7 @@ public class DeviceUtils {
} }
} }
} }
/** /**
* dp转px * dp转px
* *
...@@ -810,10 +812,15 @@ public class DeviceUtils { ...@@ -810,10 +812,15 @@ public class DeviceUtils {
public static boolean netIsConnected(Context context) { public static boolean netIsConnected(Context context) {
ConnectivityManager connectMgr = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); ConnectivityManager connectMgr = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
//手机网络连接状态 //手机网络连接状态
NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo mobNetInfo = null;
try {
mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
} catch (SecurityException e) {
e.printStackTrace();
}
//WIFI连接状态 //WIFI连接状态
NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) { if (mobNetInfo != null && !mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
//当前无可用的网络 //当前无可用的网络
return false; return false;
} }
......
...@@ -35,20 +35,19 @@ android { ...@@ -35,20 +35,19 @@ android {
} }
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0'
androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"] annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
implementation 'am.util:printer:2.1.0' implementation 'am.util:printer:2.1.0'
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"] implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
implementation rootProject.ext.dependencies["yzjRecyclerView"] implementation rootProject.ext.dependencies["yzjRecyclerView"]
// implementation rootProject.ext.dependencies["fastjson"] // implementation rootProject.ext.dependencies["fastjson"]
debugImplementation rootProject.ext.dependencies["canary-debug"] debugImplementation rootProject.ext.dependencies["canary-debug"]
releaseImplementation rootProject.ext.dependencies["canary-release"] releaseImplementation rootProject.ext.dependencies["canary-release"]
testImplementation rootProject.ext.dependencies["canary-release"] testImplementation rootProject.ext.dependencies["canary-release"]
testImplementation rootProject.ext.dependencies["junit"] testImplementation rootProject.ext.dependencies["junit"]
implementation 'com.sunmi:printerlibrary:1.0.7'
implementation files('libs/nexgon5lib.jar')
} }
...@@ -3,6 +3,7 @@ package com.joe.print; ...@@ -3,6 +3,7 @@ package com.joe.print;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.util.Log;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult; import com.billy.cc.core.component.CCResult;
......
...@@ -95,7 +95,7 @@ public class PrintListPresenter extends BasePresenter<PrintListContract.Model, P ...@@ -95,7 +95,7 @@ public class PrintListPresenter extends BasePresenter<PrintListContract.Model, P
*/ */
public void deletePrinter(String ids){ public void deletePrinter(String ids){
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("ids", ids) .add("id", ids)
.build(); .build();
mModel.deletePrinter(requestBody) mModel.deletePrinter(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
......
...@@ -100,7 +100,7 @@ public class PrinterAddPresenter extends BasePresenter<PrinterAddContract.Model, ...@@ -100,7 +100,7 @@ public class PrinterAddPresenter extends BasePresenter<PrinterAddContract.Model,
* @param type 打印機類型 1 :55mm, 2:88mm * @param type 打印機類型 1 :55mm, 2:88mm
*/ */
public void updatePrinterInfo(int id, int restaurantId, String ip, String port, int type) { public void updatePrinterInfo(int id, int restaurantId, String ip, String port, int type) {
PrinterDeviceBean printerDeviceBean = new PrinterDeviceBean(id, restaurantId, ip, Integer.parseInt(port), type); PrinterDeviceBean printerDeviceBean = new PrinterDeviceBean(id, null, ip, Integer.parseInt(port), type);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(printerDeviceBean)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(printerDeviceBean));
mModel.updatePrinter(requestBody) mModel.updatePrinter(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -113,7 +113,8 @@ public class PrinterAddPresenter extends BasePresenter<PrinterAddContract.Model, ...@@ -113,7 +113,8 @@ public class PrinterAddPresenter extends BasePresenter<PrinterAddContract.Model,
@Override @Override
public void onNext(BaseResult baseResult) { public void onNext(BaseResult baseResult) {
if (baseResult.isSuccess()) { if (baseResult.isSuccess()) {
mRootView.showMessage("保存成功");
mRootView.killMyself();
} }
} }
}); });
......
package com.joe.print.mvp.print;
import android.content.Context;
import android.os.RemoteException;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.hyweb.n5.lib.util.PrinterUtil;
import com.jess.arms.utils.ArmsUtils;
import com.sunmi.peripheral.printer.SunmiPrinterService;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2019/6/27
* 修订历史:2019/6/27
* 描述:
*/
public class PrintStatus {
public static boolean initV2PrintStatus(Context context, SunmiPrinterService service) {
int printerState = 0;
try {
printerState = service.updatePrinterState();
} catch (RemoteException e) {
e.printStackTrace();
}
switch (printerState) {
case 1://打印机?作正常
return true;
case 2://打印机准备中
ArmsUtils.makeText(context, LanguageUtils.get_language_system(context, "print.prepare", "打印機準備中"));
break;
case 3://通讯异常
ArmsUtils.makeText(context, LanguageUtils.get_language_system(context, "printer.abnormal.communication", "打印機通訊異常"));
break;
case 4://缺纸
ArmsUtils.makeText(context, LanguageUtils.get_language_system(context, "print.out.of.paper", "打印機缺紙"));
break;
case 5://过热
ArmsUtils.makeText(context, LanguageUtils.get_language_system(context, "print.overheat", "打印機過熱"));
break;
case 6://开盖
ArmsUtils.makeText(context, LanguageUtils.get_language_system(context, "print.open.cover", "打印機開蓋"));
break;
case 7://切?异常
ArmsUtils.makeText(context, LanguageUtils.get_language_system(context, "print.cutter.abnormality", "打印機切刀異常"));
break;
case 8://切?恢复
ArmsUtils.makeText(context, LanguageUtils.get_language_system(context, "print.cutter.recovery", "打印機切刀恢復"));
break;
case 9://未检测到?标
ArmsUtils.makeText(context, LanguageUtils.get_language_system(context, "print.not.black.mark", "打印機未檢測到黑標"));
break;
case 505://未检测到打印机
ArmsUtils.makeText(context, LanguageUtils.get_language_system(context, "print.not.detected", "未檢測到打印機"));
break;
case 507://打印机固件升级失败
ArmsUtils.makeText(context, LanguageUtils.get_language_system(context, "print.fixed.upgrade.failed", "打印機固定升級失敗"));
break;
}
return false;
}
public static boolean initN5PrintStatus(Context context) {
try {
int status = PrinterUtil.getStatus();
switch (status) {
case 0: //可以打印
// N5PrintCallback printCallBack = new N5PrintCallback(context);
// PrinterUtil.registerCallback(printCallBack);
return true;
case -1009: //打印未完成
String notCompleted = LanguageUtils.get_language_system(context, "print.not.completed", "打印未完成");
ArmsUtils.makeText(context, notCompleted);
break;
case -1005: //打印机缺纸
String noPaper = LanguageUtils.get_language_system(context, "printer.no.paper", "打印机缺纸");
ArmsUtils.makeText(context, noPaper);
break;
case -1008: //打印机过热
String printerOverheated = LanguageUtils.get_language_system(context, "printer.overheated", "打印机过热");
ArmsUtils.makeText(context, printerOverheated);
break;
case -1001: // 打印失败
String printFailed = LanguageUtils.get_language_system(context, "print.failed", "打印失敗");
ArmsUtils.makeText(context, printFailed);
break;
case -1: //其他错误
ArmsUtils.makeText(context, "other error");
break;
}
} catch (RemoteException e) {
e.printStackTrace();
}
return false;
}
}
...@@ -6,6 +6,7 @@ import android.view.View; ...@@ -6,6 +6,7 @@ import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableContract; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableContract;
...@@ -14,9 +15,8 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; ...@@ -14,9 +15,8 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils; import com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils;
import com.joe.print.R; import com.joe.print.R;
import com.joe.print.mvp.ui.adapter.BillAdapter; import com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter;
import com.joe.print.mvp.ui.adapter.FoodAdapter; import com.gingersoft.gsa.cloud.base.adapter.print.FoodAdapter;
import com.joe.print.mvp.model.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils; import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
......
package com.joe.print.mvp.print;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.RemoteException;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.sunmi.peripheral.printer.InnerPrinterCallback;
import com.sunmi.peripheral.printer.InnerPrinterException;
import com.sunmi.peripheral.printer.InnerPrinterManager;
import com.sunmi.peripheral.printer.InnerResultCallbcak;
import com.sunmi.peripheral.printer.SunmiPrinterService;
/**
* Created by Wyh on 2020/2/10.
*/
public class SunMiPrint {
public static boolean bindService(Context context, InnerPrinterCallback callback) {
try {
return InnerPrinterManager.getInstance().bindService(context, callback);
} catch (InnerPrinterException e) {
e.printStackTrace();
ToastUtils.show(context, "連接失敗,錯誤信息:" + e.getMessage());
return false;
}
}
public static boolean printBitmap(Context context, Bitmap bitmap) {
return bindService(context, new InnerPrinterCallback() {
@Override
protected void onConnected(SunmiPrinterService service) {
//驗證打印機狀態
if (PrintStatus.initV2PrintStatus(context, service)) {
try {
//打印機狀態正常,開始打印圖片
service.printBitmap(bitmap, new InnerResultCallbcak() {
@Override
public void onRunResult(boolean isSuccess) {
//返回接⼝执⾏的情况(并⾮真实打印):成功或失败
if (isSuccess) {
ToastUtils.show(context, "打印成功");
} else {
ToastUtils.show(context, "打印失敗");
}
}
@Override
public void onReturnString(String result) {
//部分接⼝会异步返回查询数据
ToastUtils.show(context, "onReturnString:" + result);
}
@Override
public void onRaiseException(int code, String msg) {
//接⼝执⾏失败时,返回的异常状态
ToastUtils.show(context, "打印異常狀態碼:" + code + "---MSG:" + msg);
}
@Override
public void onPrintResult(int code, String msg) {
//事务模式下真实的打印结果返回
ToastUtils.show(context, "打印結果:" + code + "---MSG:" + msg);
}
});
} catch (RemoteException e) {
e.printStackTrace();
//如部分接⼝只能⽤于指定机型所以会跑出调⽤接⼝异常,如钱箱接⼝只能⽤于台式机
ToastUtils.show(context, "打印失敗" + "msg:" + e.getMessage());
}
}
}
@Override
protected void onDisconnected() {
ToastUtils.show(context, "斷開連接");
}
});
}
}
package com.joe.print.mvp.ui.activity; package com.joe.print.mvp.ui.activity;
import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.IBinder;
import android.os.Looper;
import android.os.RemoteException;
import android.util.Log; import android.util.Log;
import android.view.View;
import android.widget.SimpleAdapter;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.PrinterManger.PrinterManager;
import com.gingersoft.gsa.cloud.base.utils.PrintUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils;
import com.gingersoft.gsa.cloud.base.widget.DialogUtils; import com.gingersoft.gsa.cloud.base.widget.DialogUtils;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.hyweb.n5.lib.constant.PrinterConstant;
import com.hyweb.n5.lib.exception.NoInitPrinterException;
import com.hyweb.n5.lib.util.PrinterUtil;
import com.hyweb.n5.server.aidl.IOnPrintCallback;
import com.jess.arms.base.BaseActivity; import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.joe.print.R; import com.joe.print.R;
import com.joe.print.di.component.DaggerPrintComponent; import com.joe.print.di.component.DaggerPrintComponent;
import com.joe.print.mvp.contract.PrintContract; import com.joe.print.mvp.contract.PrintContract;
import com.gingersoft.gsa.cloud.base.common.bean.PrinterManger.PrinterManager;
import com.joe.print.mvp.presenter.PrintPresenter; import com.joe.print.mvp.presenter.PrintPresenter;
import com.joe.print.mvp.print.SunMiPrint;
import com.joe.print.mvp.ui.adapter.PrinterListAdapter; import com.joe.print.mvp.ui.adapter.PrinterListAdapter;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
import com.yanzhenjie.recyclerview.OnItemClickListener;
import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration; import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
...@@ -61,6 +72,18 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -61,6 +72,18 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private int dialogCount = 0; private int dialogCount = 0;
private DialogUtils selectDialog; private DialogUtils selectDialog;
/**
* 商米:V2、V2_PRO N5:N5
*/
private String mV2 = "V2,V2_PRO";
private String mN5 = "N5";
/**
* 0:上菜紙
* 1:印單
* 2:結賬單
*/
private int type = -1;
private Bitmap bitmap;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerPrintComponent //如找不到该类,请编译一下项目 DaggerPrintComponent //如找不到该类,请编译一下项目
...@@ -78,13 +101,30 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -78,13 +101,30 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
type = CCUtil.getNavigateParam(this, "type", 1001);
if(type == 0){
//上菜紙
List<Food> foods = CCUtil.getNavigateParam(this, "NewFoods", new ArrayList<>());
bitmap = PrintUtils.getPrintBitmap(mContext, foods);
} else if(type == 1){
//印單
bitmap = PrintUtils.getPrintBitmap(mContext);
} else if(type == 2){
//結賬單
bitmap = PrintUtils.getPrintBillBitmap(mContext);
} else {
ToastUtils.show(mContext, "打印失敗");
finish();
return;
}
selectDialog = new DialogUtils(mContext, R.layout.print_dialog_select_device) { selectDialog = new DialogUtils(mContext, R.layout.print_dialog_select_device) {
@Override @Override
public void initLayout(ViewHepler hepler, Dialog dialog) { public void initLayout(ViewHepler hepler, Dialog dialog) {
dialogCount++; dialogCount++;
hepler.setViewClick(R.id.local_print, v -> { hepler.setViewClick(R.id.local_print, v -> {
//本機打印 locationPrint();
ToastUtils.show(mContext, "功能開發中");
}); });
hepler.setViewClick(R.id.internet_print, v -> { hepler.setViewClick(R.id.internet_print, v -> {
//IP打印 //IP打印
...@@ -101,6 +141,64 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -101,6 +141,64 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}.createDialogView().show().setOnDismissListener(this); }.createDialogView().show().setOnDismissListener(this);
} }
/**
* 本地打印
*/
private void locationPrint() {
//本機打印
if (bitmap == null) {
ToastUtils.show(mContext, "未獲取到打印內容");
return;
}
String model = Build.MODEL;
if (mV2.contains(model)) {
//商米打印
boolean isSuccess = SunMiPrint.printBitmap(mContext, bitmap);
if (isSuccess) {
ToastUtils.show(mContext, "商米打印機連接成功");
} else {
ToastUtils.show(mContext, "商米打印機連接失敗");
}
} else if (mN5.contains(model)) {
//N5打印
try {
PrinterUtil.initPrinter(mContext);
PrinterUtil.appendImage(bitmap, PrinterConstant.ALIGN_CENTER);
PrinterUtil.startPrint(true, new IOnPrintCallback() {
@Override
public void onPrintResult(int i) {
Looper.prepare();
if (i == 0) {
//打印成功
ToastUtils.show(mContext, "N5打印結果:成功");
} else {
//打印失敗
ToastUtils.show(mContext, "N5打印結果:失敗");
}
}
@Override
public IBinder asBinder() {
return null;
}
});
} catch (RemoteException | NoInitPrinterException e) {
e.printStackTrace();
}
} else {
ToastUtils.show(mContext, "暫不支持本機型打印");
}
}
//初始化打印內容
public Bitmap initPrintBitmap(int width) {
Bitmap bitmap = getIntent().getParcelableExtra("bitmap");
if (bitmap == null) {
return null;
}
return ImageUtils.zoomDrawable(bitmap, width, bitmap.getHeight());
}
@Override @Override
public void initIntent() { public void initIntent() {
...@@ -162,7 +260,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -162,7 +260,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
dialogCount++; dialogCount++;
RecyclerView mRvPrintList = hepler.getView(R.id.rv_print_list); RecyclerView mRvPrintList = hepler.getView(R.id.rv_print_list);
List<PrinterDeviceBean> deviceBeans = PrinterManager.getPrinterManager().getDeviceBeans(); List<PrinterDeviceBean> deviceBeans = PrinterManager.getPrinterManager().getDeviceBeans();
PrinterListAdapter printListAdapter = new PrinterListAdapter(deviceBeans); PrinterListAdapter printListAdapter = new PrinterListAdapter(deviceBeans, mContext);
mRvPrintList.setLayoutManager(new LinearLayoutManager(mContext)); mRvPrintList.setLayoutManager(new LinearLayoutManager(mContext));
//分割线 //分割线
mRvPrintList.addItemDecoration(new DefaultItemDecoration(ContextCompat.getColor(mContext, R.color.line_color))); mRvPrintList.addItemDecoration(new DefaultItemDecoration(ContextCompat.getColor(mContext, R.color.line_color)));
......
...@@ -45,7 +45,7 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem ...@@ -45,7 +45,7 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
@BindView(R2.id.add_printer_topbar) @BindView(R2.id.add_printer_topbar)
QMUITopBar topBar; QMUITopBar topBar;
@BindView(R2.id.add_printer_ed_port) @BindView(R2.id.add_printer_ed_port)
MyEditText etPort; EditText etPort;
@BindView(R2.id.print_test) @BindView(R2.id.print_test)
TextView printTest; TextView printTest;
@BindView(R2.id.printer_type) @BindView(R2.id.printer_type)
...@@ -71,7 +71,7 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem ...@@ -71,7 +71,7 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
etPort.getEditText().setInputType(EditorInfo.TYPE_CLASS_NUMBER); // etPort.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
String[] ips = new String[4]; String[] ips = new String[4];
//如果不為空,則是編輯打印機,初始化信息 //如果不為空,則是編輯打印機,初始化信息
if (printerDeviceBean != null) { if (printerDeviceBean != null) {
...@@ -101,12 +101,13 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem ...@@ -101,12 +101,13 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
@Override @Override
public void initTopBar() { public void initTopBar() {
String title = "添加打印機"; String title = "新增打印機";
if (isEditPrinter) { if (isEditPrinter) {
title = "編輯打印機"; title = "編輯打印機";
} }
topBar.setTitle(title); topBar.setTitle(title);
topBar.addLeftImageButton(R.drawable.icon_back, R.id.iv_left_back).setOnClickListener(v -> finish()); topBar.setBackgroundColor(getResources().getColor(R.color.theme_color));
topBar.addLeftImageButton(R.drawable.icon_white_back, R.id.iv_left_back).setOnClickListener(v -> finish());
topBar.addRightTextButton("保存", R.id.printer_add).setOnClickListener(this); topBar.addRightTextButton("保存", R.id.printer_add).setOnClickListener(this);
} }
......
...@@ -131,9 +131,10 @@ public class PrinterListActivity extends BaseActivity<PrintListPresenter> implem ...@@ -131,9 +131,10 @@ public class PrinterListActivity extends BaseActivity<PrintListPresenter> implem
@Override @Override
public void initTopBar() { public void initTopBar() {
topBar.setTitle("打印機列表"); topBar.setTitle("打印設置");
topBar.addLeftImageButton(R.drawable.icon_back, R.id.iv_left_back).setOnClickListener(v -> finish()); topBar.setBackgroundColor(getResources().getColor(R.color.theme_color));
topBar.addRightTextButton("新增", R.id.printer_add).setOnClickListener(v -> startActivity(new Intent(mContext, PrinterAddActivity.class))); topBar.addLeftImageButton(R.drawable.icon_white_back, R.id.iv_left_back).setOnClickListener(v -> finish());
topBar.addRightImageButton(R.drawable.ic_add, R.id.printer_add).setOnClickListener(v -> startActivity(new Intent(mContext, PrinterAddActivity.class)));
} }
@Override @Override
...@@ -183,7 +184,7 @@ public class PrinterListActivity extends BaseActivity<PrintListPresenter> implem ...@@ -183,7 +184,7 @@ public class PrinterListActivity extends BaseActivity<PrintListPresenter> implem
public void loadPrinterList(List<PrinterDeviceBean> deviceBeans) { public void loadPrinterList(List<PrinterDeviceBean> deviceBeans) {
PrinterManager.getPrinterManager().setDeviceBeans(deviceBeans); PrinterManager.getPrinterManager().setDeviceBeans(deviceBeans);
if (printListAdapter == null) { if (printListAdapter == null) {
printListAdapter = new PrinterListAdapter(deviceBeans); printListAdapter = new PrinterListAdapter(deviceBeans, mContext);
mRvPrintList.setLayoutManager(new LinearLayoutManager(this)); mRvPrintList.setLayoutManager(new LinearLayoutManager(this));
//分割线 //分割线
mRvPrintList.addItemDecoration(new DefaultItemDecoration(ContextCompat.getColor(this, R.color.line_color))); mRvPrintList.addItemDecoration(new DefaultItemDecoration(ContextCompat.getColor(this, R.color.line_color)));
......
package com.joe.print.mvp.ui.adapter; package com.joe.print.mvp.ui.adapter;
import android.content.Context;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
...@@ -13,14 +15,19 @@ import androidx.annotation.Nullable; ...@@ -13,14 +15,19 @@ import androidx.annotation.Nullable;
* Created by Wyh on 2020/1/16. * Created by Wyh on 2020/1/16.
*/ */
public class PrinterListAdapter extends BaseQuickAdapter<PrinterDeviceBean, BaseViewHolder> { public class PrinterListAdapter extends BaseQuickAdapter<PrinterDeviceBean, BaseViewHolder> {
private Context mContext;
public PrinterListAdapter(@Nullable List<PrinterDeviceBean> data) { public PrinterListAdapter(@Nullable List<PrinterDeviceBean> data, Context mContext) {
super(R.layout.printer_item, data); super(R.layout.printer_item, data);
this.mContext = mContext;
} }
@Override @Override
protected void convert(BaseViewHolder helper, PrinterDeviceBean item) { protected void convert(BaseViewHolder helper, PrinterDeviceBean item) {
helper.setText(R.id.tv_printer_name, item.getIp() + ""); helper.setText(R.id.tv_printer_name, item.getIp() + "");
helper.setText(R.id.tv_printer_ip, String.format(mContext.getString(R.string.print_ip), item.getIp()));
helper.setText(R.id.tv_printer_port, String.format(mContext.getString(R.string.print_port), item.getPort() + ""));
// helper.
} }
public void notifyData(List<PrinterDeviceBean> data) { public void notifyData(List<PrinterDeviceBean> data) {
......
...@@ -8,7 +8,9 @@ ...@@ -8,7 +8,9 @@
<com.qmuiteam.qmui.widget.QMUITopBar <com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/add_printer_topbar" android:id="@+id/add_printer_topbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/head_height" /> android:layout_height="@dimen/head_height"
app:qmui_topbar_text_btn_color_state_list="@color/theme_white_color"
app:qmui_topbar_title_color="@color/theme_white_color" />
<LinearLayout <LinearLayout
style="@style/print_add_printer_input_style" style="@style/print_add_printer_input_style"
...@@ -35,13 +37,13 @@ ...@@ -35,13 +37,13 @@
android:id="@+id/ip_edit_1" android:id="@+id/ip_edit_1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="bottom" android:gravity="bottom|center_horizontal"
android:hint="0" android:hint="0"
android:text="192"
android:inputType="number" android:inputType="number"
android:maxLength="3" android:maxLength="3"
android:minWidth="@dimen/dp_30" android:minWidth="@dimen/dp_30"
android:singleLine="true" android:singleLine="true"
android:text="192"
android:textColor="@color/normal_color" android:textColor="@color/normal_color"
android:textCursorDrawable="@null" android:textCursorDrawable="@null"
android:textSize="15sp"> android:textSize="15sp">
...@@ -63,13 +65,13 @@ ...@@ -63,13 +65,13 @@
android:id="@+id/ip_edit_2" android:id="@+id/ip_edit_2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="bottom" android:gravity="bottom|center_horizontal"
android:hint="0" android:hint="0"
android:text="168"
android:inputType="number" android:inputType="number"
android:maxLength="3" android:maxLength="3"
android:minWidth="@dimen/dp_30" android:minWidth="@dimen/dp_30"
android:singleLine="true" android:singleLine="true"
android:text="168"
android:textColor="@color/normal_color" android:textColor="@color/normal_color"
android:textCursorDrawable="@null" android:textCursorDrawable="@null"
android:textSize="15sp" /> android:textSize="15sp" />
...@@ -88,13 +90,13 @@ ...@@ -88,13 +90,13 @@
android:id="@+id/ip_edit_3" android:id="@+id/ip_edit_3"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="bottom" android:gravity="bottom|center_horizontal"
android:hint="0" android:hint="0"
android:text="125"
android:inputType="number" android:inputType="number"
android:maxLength="3" android:maxLength="3"
android:minWidth="@dimen/dp_30" android:minWidth="@dimen/dp_30"
android:singleLine="true" android:singleLine="true"
android:text="125"
android:textColor="@color/normal_color" android:textColor="@color/normal_color"
android:textCursorDrawable="@null" android:textCursorDrawable="@null"
android:textSize="15sp" /> android:textSize="15sp" />
...@@ -113,13 +115,13 @@ ...@@ -113,13 +115,13 @@
android:id="@+id/ip_edit_4" android:id="@+id/ip_edit_4"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="bottom" android:gravity="bottom|center_horizontal"
android:hint="0" android:hint="0"
android:text="075"
android:inputType="number" android:inputType="number"
android:maxLength="3" android:maxLength="3"
android:minWidth="@dimen/dp_30" android:minWidth="@dimen/dp_30"
android:singleLine="true" android:singleLine="true"
android:text="075"
android:textColor="@color/normal_color" android:textColor="@color/normal_color"
android:textCursorDrawable="@null" android:textCursorDrawable="@null"
android:textSize="15sp" /> android:textSize="15sp" />
...@@ -143,18 +145,19 @@ ...@@ -143,18 +145,19 @@
android:textSize="@dimen/sp_14" android:textSize="@dimen/sp_14"
android:textStyle="bold" /> android:textStyle="bold" />
<com.gingersoft.gsa.cloud.ui.view.MyEditText <EditText
android:id="@+id/add_printer_ed_port" android:id="@+id/add_printer_ed_port"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_weight="0.7" android:layout_weight="0.7"
android:gravity="center_vertical" android:background="@null"
app:ed_MaxLength="6" android:hint="請輸入端口號"
app:ed_text="8856" android:inputType="number"
app:ed_hint="請輸入端口號" android:maxLength="4"
app:ed_hintColor="@color/hint_color" android:textColor="@color/normal_color"
app:ed_textColor="@color/normal_color" android:textColorHint="@color/hint_color"
app:ed_textSize="@dimen/sp_14" /> android:textSize="@dimen/dp_14" />
</LinearLayout> </LinearLayout>
<include layout="@layout/include_dividing_line" /> <include layout="@layout/include_dividing_line" />
...@@ -208,12 +211,12 @@ ...@@ -208,12 +211,12 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/printer_add_input_paddingLeft" android:layout_marginLeft="@dimen/printer_add_input_paddingLeft"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginRight="@dimen/printer_add_input_paddingLeft" android:layout_marginRight="@dimen/printer_add_input_paddingLeft"
android:background="@drawable/shape_app_btn"
android:gravity="center" android:gravity="center"
android:layout_marginTop="@dimen/dp_30"
android:paddingTop="@dimen/dp_10" android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10" android:paddingBottom="@dimen/dp_10"
android:background="@drawable/shape_app_btn"
android:text="打印測試" android:text="打印測試"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_16" /> android:textSize="@dimen/sp_16" />
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
...@@ -9,12 +9,16 @@ ...@@ -9,12 +9,16 @@
android:id="@+id/printer_home_bar" android:id="@+id/printer_home_bar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/head_height" android:layout_height="@dimen/head_height"
android:fitsSystemWindows="true" /> android:fitsSystemWindows="true"
app:qmui_topbar_text_btn_color_state_list="@color/theme_white_color"
app:qmui_topbar_title_color="@color/theme_white_color" />
<com.yanzhenjie.recyclerview.SwipeRecyclerView <com.yanzhenjie.recyclerview.SwipeRecyclerView
android:id="@+id/rc_print_list" android:id="@+id/rc_print_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical"
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10">
<CheckBox
android:id="@+id/cb_printer_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/tv_printer_name" android:id="@+id/tv_printer_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/dp_10"
android:gravity="center" android:gravity="center"
android:padding="@dimen/dp_10"
android:textColor="@color/normal_color" android:textColor="@color/normal_color"
android:textSize="@dimen/dp_16" /> android:textSize="@dimen/dp_16"
app:layout_constraintLeft_toRightOf="@id/cb_printer_item"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_printer_ip"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:singleLine="true"
android:text="IP:"
android:textColor="@color/normal_color"
android:textSize="@dimen/dp_14"
app:layout_constraintHorizontal_weight="0.5"
app:layout_constraintLeft_toLeftOf="@id/tv_printer_name"
app:layout_constraintRight_toLeftOf="@id/tv_printer_port"
app:layout_constraintTop_toBottomOf="@id/tv_printer_name" />
</LinearLayout> <TextView
\ No newline at end of file android:id="@+id/tv_printer_port"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="端口號:"
android:textColor="@color/normal_color"
android:textSize="@dimen/dp_14"
app:layout_constraintHorizontal_weight="0.5"
app:layout_constraintLeft_toRightOf="@id/tv_printer_ip"
app:layout_constraintRight_toRightOf="@id/tv_printer_edit"
app:layout_constraintTop_toTopOf="@id/tv_printer_ip" />
<TextView
android:id="@+id/tv_printer_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="編輯"
android:textColor="@color/theme_color"
android:textSize="@dimen/dp_14"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<resources> <resources>
<string name="app_name">print-Module</string> <string name="app_name">print-Module</string>
<string name="print_ip">IP:%1$s</string>
<string name="print_port">端口號:%1$s</string>
</resources> </resources>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Print_text_style">
<item name="android:textColor">#333</item>
<item name="android:textSize">16sp</item>
</style>
<style name="print_TranslucentTheme" parent="AppTheme"> <style name="print_TranslucentTheme" parent="AppTheme">
<item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item> <item name="android:colorBackgroundCacheHint">@null</item>
...@@ -16,6 +13,7 @@ ...@@ -16,6 +13,7 @@
<style name="print_add_printer_input_style"> <style name="print_add_printer_input_style">
<item name="android:gravity">center_vertical</item> <item name="android:gravity">center_vertical</item>
<item name="android:paddingLeft">@dimen/printer_add_input_paddingLeft</item> <item name="android:paddingLeft">@dimen/printer_add_input_paddingLeft</item>
<item name="android:paddingRight">@dimen/printer_add_input_paddingLeft</item>
<item name="android:paddingTop">@dimen/printer_add_input_paddingTop</item> <item name="android:paddingTop">@dimen/printer_add_input_paddingTop</item>
<item name="android:paddingBottom">@dimen/printer_add_input_paddingBottom</item> <item name="android:paddingBottom">@dimen/printer_add_input_paddingBottom</item>
</style> </style>
......
...@@ -34,8 +34,7 @@ dependencies { ...@@ -34,8 +34,7 @@ dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/javabase64-1.2.jar') implementation files('libs/javabase64-1.2.jar')
implementation files('libs/sun.misc.BASE64Decoder.jar') implementation files('libs/sun.misc.BASE64Decoder.jar')
// implementation 'androidx.appcompat:appcompat:1.1.0'
// implementation 'androidx.appcompat:appcompat:1.1.0'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
...@@ -43,4 +42,6 @@ dependencies { ...@@ -43,4 +42,6 @@ dependencies {
//日誌管理 //日誌管理
implementation 'com.elvishew:xlog:1.6.1' implementation 'com.elvishew:xlog:1.6.1'
implementation rootProject.ext.dependencies["zxing"] implementation rootProject.ext.dependencies["zxing"]
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
implementation files('libs/ecracalib.jar')
} }
package com.joe.print.mvp.ui.adapter; package com.gingersoft.gsa.cloud.base.adapter.print;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.joe.print.R; import com.gingersoft.gsa.cloud.base.R;
import com.joe.print.mvp.model.bean.BillingBean; import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import java.util.List; import java.util.List;
......
package com.gingersoft.gsa.cloud.base.adapter.print;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.common.bean.BillMethodBean;
import com.gingersoft.gsa.cloud.database.bean.Food;
import java.util.List;
import androidx.annotation.Nullable;
/**
* Created by Wyh on 2020/1/9.
* 結賬方式
*/
public class BillTypeAdapter extends BaseQuickAdapter<BillMethodBean, BaseViewHolder> {
public BillTypeAdapter(@Nullable List<BillMethodBean> data) {
super(R.layout.base_print_item_bill_type, data);
}
@Override
protected void convert(BaseViewHolder helper, BillMethodBean item) {
helper.setText(R.id.tv_total_amount_text, item.getName());
helper.setText(R.id.tv_total_amount, item.getMoney() + "");
}
}
package com.joe.print.mvp.ui.adapter; package com.gingersoft.gsa.cloud.base.adapter.print;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.joe.print.R;
import java.util.List; import java.util.List;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
......
package com.gingersoft.gsa.cloud.table.mvp.model.bean; package com.gingersoft.gsa.cloud.base.common.bean;
/** /**
* Created by Wyh on 2020/1/17. * Created by Wyh on 2020/1/17.
* 結賬方式 * 結賬方式,打印和餐檯模塊用到
*/ */
public class BillMethodBean { public class BillMethodBean {
private int id; private int id;
......
package com.joe.print.mvp.model.bean; package com.gingersoft.gsa.cloud.base.common.bean;
/** /**
* Created by Wyh on 2020/1/9. * Created by Wyh on 2020/1/9.
......
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.base.common.bean.mealManage; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.base.common.bean.mealManage;
import android.app.Activity; import android.app.Activity;
import com.gingersoft.gsa.cloud.base.common.bean.BillMethodBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
...@@ -48,6 +49,8 @@ public class MyOrderManage { ...@@ -48,6 +49,8 @@ public class MyOrderManage {
private OrderBean orderBean; private OrderBean orderBean;
//食品列表 //食品列表
private List<Food> orderFoodList = new ArrayList<>(); private List<Food> orderFoodList = new ArrayList<>();
//結賬方式
private List<BillMethodBean> billMoney = new ArrayList<>();
// private List<DatasBean> comboOrders = new ArrayList<>(); // private List<DatasBean> comboOrders = new ArrayList<>();
// private List<MixOldOrder> MixOldOrders = new ArrayList<>(); // private List<MixOldOrder> MixOldOrders = new ArrayList<>();
// private List<MixComboGroupDiscount.DatasBean> mixComboGroup_Discounts; // private List<MixComboGroupDiscount.DatasBean> mixComboGroup_Discounts;
...@@ -1177,4 +1180,11 @@ public class MyOrderManage { ...@@ -1177,4 +1180,11 @@ public class MyOrderManage {
this.allowAddAutoDiscount = allowAddAutoDiscount; this.allowAddAutoDiscount = allowAddAutoDiscount;
} }
public List<BillMethodBean> getBillMoney() {
return billMoney;
}
public void setBillMoney(List<BillMethodBean> billMoney) {
this.billMoney = billMoney;
}
} }
...@@ -66,16 +66,19 @@ public class JsonUtils { ...@@ -66,16 +66,19 @@ public class JsonUtils {
return null; return null;
} }
return JSON.parseArray(json, classOfT); return JSON.parseArray(json, classOfT);
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return null; return null;
} }
public static String toJson(Object o){ public static String toJson(Object o) {
try {
return JSON.toJSONString(o); return JSON.toJSONString(o);
} catch (Exception e) {
e.printStackTrace();
}
return null;
} }
} }
package com.gingersoft.gsa.cloud.base.utils;
import android.content.Context;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2018/8/2
* 修订历史:2018/8/2
* 描述:
*/
public class LanguageUtils {
public static String get_language_system(Context context, String Source_name, String defaultStr) {
String language = defaultStr;
// Db_Language db_Language = new Db_Language(context);
//
// Language.DatasBean lan = db_Language.query_language("SourceName='" + Source_name + "'");
// db_Language.closeDb();
//
// if (lan == null ) {
// return language;
// }
//
// switch (GSAApplication.androidSetting.getNowLanguageIndex()) {
// case 1:
// language = lan.getDesc1();
// break;
// case 2:
// language = lan.getDesc2();
// if (language == null || language.length() == 0) {
// language = lan.getDesc1();
// }
// break;
// case 3:
// language = lan.getDesc3();
// if (language == null || language.length() == 0) {
// language = lan.getDesc1();
// }
// break;
// }
return language;
}
}
package com.gingersoft.gsa.cloud.base.utils;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter;
import com.gingersoft.gsa.cloud.base.adapter.print.BillTypeAdapter;
import com.gingersoft.gsa.cloud.base.adapter.print.FoodAdapter;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableContract;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils;
import com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils;
import com.gingersoft.gsa.cloud.database.bean.Food;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
* Created by Wyh on 2020/2/10.
* 打印工具類
*/
public class PrintUtils {
public static Bitmap getPrintBitmap(Context context) {
return getPrintBitmap(context, MyOrderManage.getInstance().getOrderFoodList());
}
/**
* 獲取"印單"圖片
*
* @param context
* @return
*/
public static Bitmap getPrintBitmap(Context context, List<Food> foodList) {
View view = LinearLayout.inflate(context, R.layout.print_layout_print, null);
TextView brandName = view.findViewById(R.id.tv_brand_name);
TextView restaurantName = view.findViewById(R.id.tv_restaurant_name);
TextView tableNum = view.findViewById(R.id.tv_dining_table_number);
TextView people = view.findViewById(R.id.tv_people);
TextView orderNum = view.findViewById(R.id.tv_order_num);
TextView orderData = view.findViewById(R.id.tv_date);
RecyclerView rvFood = view.findViewById(R.id.rv_food);
RecyclerView rvBillAmount = view.findViewById(R.id.rv_bill_amount);
TextView mTvTotalAmount = view.findViewById(R.id.tv_total_amount);
TextView checkOutTime = view.findViewById(R.id.tv_checkout_time);
TextView line_food_info = view.findViewById(R.id.line_food_info);
// List<Food> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableContract.getDefault().getTableBean();
tableNum.setText(tableBean.getTableName());
people.setText(tableBean.getPeopleNumber() + "");
orderData.setText(tableBean.getCreateTime());
checkOutTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT));
FoodAdapter foodAdapter = new FoodAdapter(foodList);
rvFood.setLayoutManager(new LinearLayoutManager(context));
rvFood.setAdapter(foodAdapter);
List<BillingBean> billingBeans = new ArrayList<>();
// billingBeans.add(new BillingBean("合計", 58.88));
// billingBeans.add(new BillingBean("10%服務費", 5.08));
// billingBeans.add(new BillingBean("賬單小數", -0.06));
if (billingBeans.size() <= 0) {
line_food_info.setVisibility(View.GONE);
} else {
BillAdapter billAdapter = new BillAdapter(billingBeans);
rvBillAmount.setLayoutManager(new LinearLayoutManager(context));
rvBillAmount.setAdapter(billAdapter);
}
if (OpenTableContract.getDefault().
getTableBean() != null) {
tableNum.setText(OpenTableContract.getDefault().getTableBean().getTableName());
people.setText(OpenTableContract.getDefault().getTableBean().getPeopleNumber() + "");
}
if (MyOrderManage.getInstance().
getOrderId() != -1) {
orderNum.setText(MyOrderManage.getInstance().getOrderId() + "");
}
BigDecimal totalAmount = new BigDecimal(0);
for (
Food food : MyOrderManage.getInstance().
getOrderFoodList()) {
totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(food.getPrice(), food.getNumber()));
}
//總金額
mTvTotalAmount.setText(totalAmount + "");
//加载条形码
// ImageView ivBarCode = view.findViewById(R.id.iv_bar_code);
// ivBarCode.setImageBitmap(BitmapUtil.generateBitmap("12312112131", 2, 450, 150));
LayoutToBitmapUtils.layoutView(context, view);//先测量view
//580為程序支持的打印紙最大寬度
return ImageUtils.zoomDrawable(LayoutToBitmapUtils.loadBitmapFromView(view), 580);//将view轉bitmap
}
/**
* 獲取"結賬單"圖片
*
* @param context
* @return
*/
public static Bitmap getPrintBillBitmap(Context context) {
View view = LinearLayout.inflate(context, R.layout.print_layout_print_bill, null);
TextView brandName = view.findViewById(R.id.tv_brand_name);
TextView restaurantName = view.findViewById(R.id.tv_restaurant_name);
TextView topOrderNum = view.findViewById(R.id.tv_print_bill_order_num);//頂部的訂單號
TextView tableNum = view.findViewById(R.id.tv_dining_table_number);
TextView people = view.findViewById(R.id.tv_people);
TextView orderNum = view.findViewById(R.id.tv_order_num);
TextView orderData = view.findViewById(R.id.tv_date);
RecyclerView rvFood = view.findViewById(R.id.rv_food);
RecyclerView rvBillAmount = view.findViewById(R.id.rv_bill_amount);
TextView mTvTotalAmount = view.findViewById(R.id.tv_total_amount);
TextView checkOutTime = view.findViewById(R.id.tv_checkout_time);
TextView line_food_info = view.findViewById(R.id.line_food_info);
RecyclerView rvPayType = view.findViewById(R.id.rv_print_pay_type);//顯示支付方式
List<Food> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableContract.getDefault().getTableBean();
tableNum.setText(tableBean.getTableName());
people.setText(tableBean.getPeopleNumber() + "");
orderData.setText(tableBean.getCreateTime());
checkOutTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT));
FoodAdapter foodAdapter = new FoodAdapter(foodList);
rvFood.setLayoutManager(new LinearLayoutManager(context));
rvFood.setAdapter(foodAdapter);
List<BillingBean> billingBeans = new ArrayList<>();
// billingBeans.add(new BillingBean("合計", 58.88));
// billingBeans.add(new BillingBean("10%服務費", 5.08));
// billingBeans.add(new BillingBean("賬單小數", -0.06));
if (billingBeans.size() <= 0) {
line_food_info.setVisibility(View.GONE);
} else {
BillAdapter billAdapter = new BillAdapter(billingBeans);
rvBillAmount.setLayoutManager(new LinearLayoutManager(context));
rvBillAmount.setAdapter(billAdapter);
}
if (OpenTableContract.getDefault().getTableBean() != null) {
tableNum.setText(OpenTableContract.getDefault().getTableBean().getTableName());
people.setText(OpenTableContract.getDefault().getTableBean().getPeopleNumber() + "");
}
if (MyOrderManage.getInstance().getOrderId() != -1) {
orderNum.setText(MyOrderManage.getInstance().getOrderId() + "");
}
BigDecimal totalAmount = new BigDecimal(0);
for (Food food : MyOrderManage.getInstance().getOrderFoodList()) {
totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(food.getPrice(), food.getNumber()));
}
//總金額
mTvTotalAmount.setText(totalAmount + "");
rvPayType.setLayoutManager(new LinearLayoutManager(context));
rvPayType.setAdapter(new BillTypeAdapter(MyOrderManage.getInstance().getBillMoney()));
//加载条形码
// ImageView ivBarCode = view.findViewById(R.id.iv_bar_code);
// ivBarCode.setImageBitmap(BitmapUtil.generateBitmap("12312112131", 2, 450, 150));
LayoutToBitmapUtils.layoutView(context, view);//先测量view
//580為程序支持的打印紙最大寬度
return ImageUtils.zoomDrawable(LayoutToBitmapUtils.loadBitmapFromView(view), 580);//将view轉bitmap
}
}
...@@ -5,8 +5,8 @@ package com.gingersoft.gsa.cloud.base.utils.constans; ...@@ -5,8 +5,8 @@ package com.gingersoft.gsa.cloud.base.utils.constans;
*/ */
public class HttpsConstans { public class HttpsConstans {
// public static String ROOT_SERVER_ADDRESS_FORMAL = "http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/";// 正式服務器 public static String ROOT_SERVER_ADDRESS_FORMAL = "http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/";// 正式服務器
public static String ROOT_SERVER_ADDRESS_FORMAL = "http://192.168.1.74:8201/ricepon-cloud-gsa/api/";// 正式服務器 // public static String ROOT_SERVER_ADDRESS_FORMAL = "http://192.168.1.74:8201/ricepon-cloud-gsa/api/";// 正式服務器
public static String ROOT_SERVER_ADDRESS_FORMAL2 = "http://gingersoft.tpddns.cn:53000/mock/49/ricepon-cloud-gsa/api/";//測試服務器 public static String ROOT_SERVER_ADDRESS_FORMAL2 = "http://gingersoft.tpddns.cn:53000/mock/49/ricepon-cloud-gsa/api/";//測試服務器
......
...@@ -160,6 +160,16 @@ public class ImageUtils { ...@@ -160,6 +160,16 @@ public class ImageUtils {
return Bitmap.createBitmap(oldbmp, 0, 0, width, height, return Bitmap.createBitmap(oldbmp, 0, 0, width, height,
matrix, true); matrix, true);
} }
public static Bitmap zoomDrawable(Bitmap oldbmp, int w) {
int width = oldbmp.getWidth();
int height = oldbmp.getHeight();
Matrix matrix = new Matrix();
float scaleWidth = ((float) w / width);
matrix.postScale(scaleWidth, scaleWidth);
return Bitmap.createBitmap(oldbmp, 0, 0, width, height,
matrix, true);
}
/** /**
* 缩放图片 * 缩放图片
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_total_amount_text"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5"
android:text="微信:" />
<TextView
android:id="@+id/tv_amount"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5"
android:text="$" />
<TextView
android:id="@+id/tv_total_amount"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5"
android:text="0" />
</LinearLayout>
\ No newline at end of file
...@@ -11,9 +11,7 @@ ...@@ -11,9 +11,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.7" android:layout_weight="0.7"
android:gravity="right" android:gravity="right"
android:text="合计" style="@style/Print_text_style"/>
android:textColor="#333"
android:textSize="16sp" />
<TextView <TextView
android:id="@+id/tv_total" android:id="@+id/tv_total"
...@@ -21,7 +19,5 @@ ...@@ -21,7 +19,5 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.3" android:layout_weight="0.3"
android:gravity="right" android:gravity="right"
android:text="$13.54" style="@style/Print_text_style" />
android:textColor="#333"
android:textSize="16sp" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -7,30 +7,27 @@ ...@@ -7,30 +7,27 @@
<TextView <TextView
android:id="@+id/tv_food_name" android:id="@+id/tv_food_name"
style="@style/Print_text_style"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="包子撒會計分錄" android:layout_weight="0.5" />
android:textColor="#333"
android:textSize="16sp" />
<TextView <TextView
android:id="@+id/tv_food_quantity" android:id="@+id/tv_food_quantity"
style="@style/Print_text_style"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.2" android:layout_weight="0.2"
android:gravity="right"
android:text="000013" android:gravity="right" />
android:textColor="#333"
android:textSize="16sp" />
<TextView <TextView
android:id="@+id/tv_food_price" android:id="@+id/tv_food_price"
style="@style/Print_text_style"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.3" android:layout_weight="0.3"
android:gravity="right"
android:text="$000013" android:gravity="right" />
android:textColor="#333"
android:textSize="16sp" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -38,12 +38,11 @@ ...@@ -38,12 +38,11 @@
<TextView <TextView
android:id="@+id/line_restaurant_name" android:id="@+id/line_restaurant_name"
style="@style/Print_text_style"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:maxLines="1" android:maxLines="1"
android:text="——————————————————————————————————————————————————" android:text="——————————————————————————————————————————————————"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_restaurant_name" /> app:layout_constraintTop_toBottomOf="@id/tv_restaurant_name" />
...@@ -51,23 +50,23 @@ ...@@ -51,23 +50,23 @@
<TextView <TextView
android:id="@+id/tv_dining_table_text" android:id="@+id/tv_dining_table_text"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:text="餐檯:" android:text="餐檯:"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/line_restaurant_name" /> app:layout_constraintTop_toBottomOf="@id/line_restaurant_name" />
<TextView <TextView
android:id="@+id/tv_dining_table_number" android:id="@+id/tv_dining_table_number"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="@id/tv_dining_table_text" app:layout_constraintBottom_toBottomOf="@id/tv_dining_table_text"
app:layout_constraintLeft_toRightOf="@id/tv_dining_table_text" app:layout_constraintLeft_toRightOf="@id/tv_dining_table_text"
app:layout_constraintTop_toTopOf="@id/tv_dining_table_text" /> app:layout_constraintTop_toTopOf="@id/tv_dining_table_text" />
...@@ -75,13 +74,13 @@ ...@@ -75,13 +74,13 @@
<TextView <TextView
android:id="@+id/tv_people_text" android:id="@+id/tv_people_text"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:gravity="right" android:gravity="right"
android:text="人數:" android:text="人數:"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="@id/tv_dining_table_text" app:layout_constraintBottom_toBottomOf="@id/tv_dining_table_text"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
...@@ -89,63 +88,63 @@ ...@@ -89,63 +88,63 @@
<TextView <TextView
android:id="@+id/tv_people" android:id="@+id/tv_people"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="@id/tv_people_text" app:layout_constraintBottom_toBottomOf="@id/tv_people_text"
app:layout_constraintLeft_toRightOf="@id/tv_people_text" app:layout_constraintLeft_toRightOf="@id/tv_people_text"
app:layout_constraintTop_toTopOf="@id/tv_people_text" /> app:layout_constraintTop_toTopOf="@id/tv_people_text" />
<TextView <TextView
android:id="@+id/tv_order_number_text" android:id="@+id/tv_order_number_text"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="單號:" android:text="單號:"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_dining_table_text" /> app:layout_constraintTop_toBottomOf="@id/tv_dining_table_text" />
<TextView <TextView
android:id="@+id/tv_order_num" android:id="@+id/tv_order_num"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="@id/tv_order_number_text" app:layout_constraintBottom_toBottomOf="@id/tv_order_number_text"
app:layout_constraintLeft_toRightOf="@id/tv_order_number_text" app:layout_constraintLeft_toRightOf="@id/tv_order_number_text"
app:layout_constraintTop_toTopOf="@id/tv_order_number_text" /> app:layout_constraintTop_toTopOf="@id/tv_order_number_text" />
<TextView <TextView
android:id="@+id/tv_data_text" android:id="@+id/tv_data_text"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="日期:" android:text="日期:"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_order_number_text" /> app:layout_constraintTop_toBottomOf="@id/tv_order_number_text" />
<TextView <TextView
android:id="@+id/tv_date" android:id="@+id/tv_date"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintLeft_toRightOf="@id/tv_data_text" app:layout_constraintLeft_toRightOf="@id/tv_data_text"
app:layout_constraintTop_toBottomOf="@id/tv_order_number_text" /> app:layout_constraintTop_toBottomOf="@id/tv_order_number_text" />
<TextView <TextView
android:id="@+id/line_order_info" android:id="@+id/line_order_info"
style="@style/Print_text_style"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:maxLines="1" android:maxLines="1"
android:text="——————————————————————————————————————————————————" android:text="——————————————————————————————————————————————————"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintTop_toBottomOf="@id/tv_date" /> app:layout_constraintTop_toBottomOf="@id/tv_date" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
...@@ -156,12 +155,12 @@ ...@@ -156,12 +155,12 @@
<TextView <TextView
android:id="@+id/line_food_info" android:id="@+id/line_food_info"
style="@style/Print_text_style"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:maxLines="1" android:maxLines="1"
android:text="——————————————————————————————————————————————————" android:text="——————————————————————————————————————————————————"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintHorizontal_weight="0.6" app:layout_constraintHorizontal_weight="0.6"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/rv_food" app:layout_constraintTop_toBottomOf="@id/rv_food"
...@@ -178,62 +177,62 @@ ...@@ -178,62 +177,62 @@
<TextView <TextView
android:id="@+id/line_price_info" android:id="@+id/line_price_info"
style="@style/Print_text_style"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:maxLines="1" android:maxLines="1"
android:text="——————————————————————————————————————————————————" android:text="——————————————————————————————————————————————————"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/rv_bill_amount" app:layout_constraintTop_toBottomOf="@id/rv_bill_amount"
app:layout_constraintWidth_percent="0.6" /> app:layout_constraintWidth_percent="0.6" />
<TextView <TextView
android:id="@+id/tv_total_amount_text" android:id="@+id/tv_total_amount_text"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:text="總金額:" android:text="總金額:"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="@id/tv_amount" app:layout_constraintBottom_toBottomOf="@id/tv_amount"
app:layout_constraintRight_toLeftOf="@id/tv_amount" app:layout_constraintRight_toLeftOf="@id/tv_amount"
app:layout_constraintTop_toTopOf="@id/tv_amount" /> app:layout_constraintTop_toTopOf="@id/tv_amount" />
<TextView <TextView
android:id="@+id/tv_amount" android:id="@+id/tv_amount"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:text="$" android:text="$"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintRight_toLeftOf="@id/tv_total_amount" app:layout_constraintRight_toLeftOf="@id/tv_total_amount"
app:layout_constraintTop_toBottomOf="@id/line_price_info" /> app:layout_constraintTop_toBottomOf="@id/line_price_info" />
<TextView <TextView
android:id="@+id/tv_total_amount" android:id="@+id/tv_total_amount"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:text="0" android:text="0"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="@id/tv_amount" app:layout_constraintBottom_toBottomOf="@id/tv_amount"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_amount" /> app:layout_constraintTop_toTopOf="@id/tv_amount" />
<TextView <TextView
android:id="@+id/line_amount_info" android:id="@+id/line_amount_info"
style="@style/Print_text_style"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:maxLines="1" android:maxLines="1"
android:text="——————————————————————————————————————————————————" android:text="——————————————————————————————————————————————————"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintTop_toBottomOf="@id/tv_amount" /> app:layout_constraintTop_toBottomOf="@id/tv_amount" />
<!-- <ImageView--> <!-- <ImageView-->
...@@ -246,26 +245,26 @@ ...@@ -246,26 +245,26 @@
<TextView <TextView
android:id="@+id/tv_thank_you_text" android:id="@+id/tv_thank_you_text"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:gravity="center" android:gravity="center"
android:text="Thank you!" android:text="Thank you!"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/line_amount_info" /> app:layout_constraintTop_toBottomOf="@id/line_amount_info" />
<TextView <TextView
android:id="@+id/tv_checkout_time" android:id="@+id/tv_checkout_time"
style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:text="2020-01-09 上午 11:16:15" android:text="2020-01-09 上午 11:16:15"
android:textColor="#333"
android:textSize="16sp"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_thank_you_text" /> app:layout_constraintTop_toBottomOf="@id/tv_thank_you_text" />
......
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:scrollbars="none">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_brand_name"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="gs1"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/tv_restaurant_name"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_restaurant_name"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="5dp"
android:gravity="center"
android:text="yan"
app:layout_constraintLeft_toRightOf="@id/tv_brand_name"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_brand_name" />
<TextView
android:id="@+id/tv_print_bill_order_num"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_restaurant_name" />
<TextView
android:id="@+id/line_restaurant_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:maxLines="1"
style="@style/Print_text_style"
android:text="——————————————————————————————————————————————————"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_print_bill_order_num" />
<TextView
android:id="@+id/tv_dining_table_text"
android:layout_width="wrap_content"
style="@style/Print_text_style"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="餐檯:"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/line_restaurant_name" />
<TextView
android:id="@+id/tv_dining_table_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5"
style="@style/Print_text_style"
app:layout_constraintBottom_toBottomOf="@id/tv_dining_table_text"
app:layout_constraintLeft_toRightOf="@id/tv_dining_table_text"
app:layout_constraintTop_toTopOf="@id/tv_dining_table_text" />
<TextView
android:id="@+id/tv_people_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="right"
android:text="人數:"
style="@style/Print_text_style"
app:layout_constraintBottom_toBottomOf="@id/tv_dining_table_text"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_dining_table_text" />
<TextView
android:id="@+id/tv_people"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5"
style="@style/Print_text_style"
app:layout_constraintBottom_toBottomOf="@id/tv_people_text"
app:layout_constraintLeft_toRightOf="@id/tv_people_text"
app:layout_constraintTop_toTopOf="@id/tv_people_text" />
<TextView
android:id="@+id/tv_order_number_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="單號:"
style="@style/Print_text_style"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_dining_table_text" />
<TextView
android:id="@+id/tv_order_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Print_text_style"
app:layout_constraintBottom_toBottomOf="@id/tv_order_number_text"
app:layout_constraintLeft_toRightOf="@id/tv_order_number_text"
app:layout_constraintTop_toTopOf="@id/tv_order_number_text" />
<TextView
android:id="@+id/tv_data_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下單時間:"
style="@style/Print_text_style"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_order_number_text" />
<TextView
android:id="@+id/tv_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Print_text_style"
app:layout_constraintLeft_toRightOf="@id/tv_data_text"
app:layout_constraintTop_toBottomOf="@id/tv_order_number_text" />
<TextView
android:id="@+id/line_order_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
style="@style/Print_text_style"
android:text="——————————————————————————————————————————————————"
app:layout_constraintTop_toBottomOf="@id/tv_date" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_food"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/line_order_info" />
<TextView
android:id="@+id/line_food_info"
style="@style/Print_text_style"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="——————————————————————————————————————————————————"
app:layout_constraintHorizontal_weight="0.6"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/rv_food"
app:layout_constraintWidth_percent="0.6" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_bill_amount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/line_food_info" />
<TextView
android:id="@+id/line_price_info"
style="@style/Print_text_style"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="——————————————————————————————————————————————————"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/rv_bill_amount"
app:layout_constraintWidth_percent="0.6" />
<TextView
android:id="@+id/tv_total_amount_text"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5"
android:text="總金額:"
app:layout_constraintBottom_toBottomOf="@id/tv_amount"
app:layout_constraintRight_toLeftOf="@id/tv_amount"
app:layout_constraintTop_toTopOf="@id/tv_amount" />
<TextView
android:id="@+id/tv_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5"
android:text="$"
style="@style/Print_text_style"
app:layout_constraintRight_toLeftOf="@id/tv_total_amount"
app:layout_constraintTop_toBottomOf="@id/line_price_info" />
<TextView
android:id="@+id/tv_total_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5"
android:text="0"
style="@style/Print_text_style"
app:layout_constraintBottom_toBottomOf="@id/tv_amount"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_amount" />
<TextView
android:id="@+id/line_amount_info"
style="@style/Print_text_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="——————————————————————————————————————————————————"
app:layout_constraintTop_toBottomOf="@id/tv_amount" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_print_pay_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/line_amount_info" />
<!-- <ImageView-->
<!-- android:id="@+id/iv_qr_code"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- app:layout_constraintRight_toLeftOf="parent"-->
<!-- app:layout_constraintRight_toRightOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/line_amount_info" />-->
<TextView
android:id="@+id/line_pay_type"
style="@style/Print_text_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="——————————————————————————————————————————————————"
app:layout_constraintTop_toBottomOf="@id/rv_print_pay_type" />
<TextView
android:id="@+id/tv_thank_you_text"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_5"
android:gravity="center"
android:text="Thank you!"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/line_pay_type" />
<TextView
android:id="@+id/tv_checkout_time"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="2020-01-09 上午 11:16:15"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_thank_you_text" />
<ImageView
android:id="@+id/iv_bar_code"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_50"
app:layout_constraintTop_toBottomOf="@id/tv_checkout_time" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="dp_10">10dp</dimen>
<dimen name="dp_5">5dp</dimen>
<dimen name="dp_50">50dp</dimen>
</resources>
\ No newline at end of file
...@@ -11,4 +11,8 @@ ...@@ -11,4 +11,8 @@
<item name="android:windowBackground">@color/transparent</item><!--背景透明--> <item name="android:windowBackground">@color/transparent</item><!--背景透明-->
<item name="android:backgroundDimEnabled">true</item><!--背景遮罩效果--> <item name="android:backgroundDimEnabled">true</item><!--背景遮罩效果-->
</style> </style>
<style name="Print_text_style">
<item name="android:textColor">#333</item>
<item name="android:textSize">30sp</item>
</style>
</resources> </resources>
...@@ -21,7 +21,7 @@ public class PrinterDeviceBean implements Serializable { ...@@ -21,7 +21,7 @@ public class PrinterDeviceBean implements Serializable {
@Id(autoincrement = true) @Id(autoincrement = true)
private Long dbid; private Long dbid;
private int restaurantId; private Integer restaurantId;
private String ip; private String ip;
private int port; private int port;
private int type; private int type;
...@@ -30,26 +30,34 @@ public class PrinterDeviceBean implements Serializable { ...@@ -30,26 +30,34 @@ public class PrinterDeviceBean implements Serializable {
public PrinterDeviceBean() { public PrinterDeviceBean() {
} }
@Generated(hash = 922136225) public PrinterDeviceBean(int id, Integer restaurantId, String ip, int port, int type) {
public PrinterDeviceBean(int id, Long dbid, int restaurantId, String ip, int port,
int type) {
this.id = id; this.id = id;
this.dbid = dbid;
this.restaurantId = restaurantId; this.restaurantId = restaurantId;
this.ip = ip; this.ip = ip;
this.port = port; this.port = port;
this.type = type; this.type = type;
} }
public PrinterDeviceBean(int id, int restaurantId, String ip, int port, int type) { public PrinterDeviceBean(int id, String ip, int port, int type) {
this.id = id; this.id = id;
this.ip = ip;
this.port = port;
this.type = type;
}
public PrinterDeviceBean(Integer restaurantId, String ip, int port, int type) {
this.restaurantId = restaurantId; this.restaurantId = restaurantId;
this.ip = ip; this.ip = ip;
this.port = port; this.port = port;
this.type = type; this.type = type;
} }
public PrinterDeviceBean(int restaurantId, String ip, int port, int type) { @Generated(hash = 2111154422)
public PrinterDeviceBean(int id, Long dbid, Integer restaurantId, String ip, int port,
int type) {
this.id = id;
this.dbid = dbid;
this.restaurantId = restaurantId; this.restaurantId = restaurantId;
this.ip = ip; this.ip = ip;
this.port = port; this.port = port;
...@@ -72,12 +80,8 @@ public class PrinterDeviceBean implements Serializable { ...@@ -72,12 +80,8 @@ public class PrinterDeviceBean implements Serializable {
this.dbid = dbid; this.dbid = dbid;
} }
public int getRestaurantId() { public Integer getRestaurantId() {
return this.restaurantId; return restaurantId;
}
public void setRestaurantId(int restaurantId) {
this.restaurantId = restaurantId;
} }
public String getIp() { public String getIp() {
...@@ -103,4 +107,8 @@ public class PrinterDeviceBean implements Serializable { ...@@ -103,4 +107,8 @@ public class PrinterDeviceBean implements Serializable {
public void setType(int type) { public void setType(int type) {
this.type = type; this.type = type;
} }
public void setRestaurantId(Integer restaurantId) {
this.restaurantId = restaurantId;
}
} }
...@@ -26,7 +26,7 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> { ...@@ -26,7 +26,7 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> {
public static class Properties { public static class Properties {
public final static Property Id = new Property(0, int.class, "id", false, "ID"); public final static Property Id = new Property(0, int.class, "id", false, "ID");
public final static Property Dbid = new Property(1, Long.class, "dbid", true, "_id"); public final static Property Dbid = new Property(1, Long.class, "dbid", true, "_id");
public final static Property RestaurantId = new Property(2, int.class, "restaurantId", false, "RESTAURANT_ID"); public final static Property RestaurantId = new Property(2, Integer.class, "restaurantId", false, "RESTAURANT_ID");
public final static Property Ip = new Property(3, String.class, "ip", false, "IP"); public final static Property Ip = new Property(3, String.class, "ip", false, "IP");
public final static Property Port = new Property(4, int.class, "port", false, "PORT"); public final static Property Port = new Property(4, int.class, "port", false, "PORT");
public final static Property Type = new Property(5, int.class, "type", false, "TYPE"); public final static Property Type = new Property(5, int.class, "type", false, "TYPE");
...@@ -47,7 +47,7 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> { ...@@ -47,7 +47,7 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> {
db.execSQL("CREATE TABLE " + constraint + "\"PRINTER_DEVICE_BEAN\" (" + // db.execSQL("CREATE TABLE " + constraint + "\"PRINTER_DEVICE_BEAN\" (" + //
"\"ID\" INTEGER NOT NULL ," + // 0: id "\"ID\" INTEGER NOT NULL ," + // 0: id
"\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 1: dbid "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 1: dbid
"\"RESTAURANT_ID\" INTEGER NOT NULL ," + // 2: restaurantId "\"RESTAURANT_ID\" INTEGER," + // 2: restaurantId
"\"IP\" TEXT," + // 3: ip "\"IP\" TEXT," + // 3: ip
"\"PORT\" INTEGER NOT NULL ," + // 4: port "\"PORT\" INTEGER NOT NULL ," + // 4: port
"\"TYPE\" INTEGER NOT NULL );"); // 5: type "\"TYPE\" INTEGER NOT NULL );"); // 5: type
...@@ -68,7 +68,11 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> { ...@@ -68,7 +68,11 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> {
if (dbid != null) { if (dbid != null) {
stmt.bindLong(2, dbid); stmt.bindLong(2, dbid);
} }
stmt.bindLong(3, entity.getRestaurantId());
Integer restaurantId = entity.getRestaurantId();
if (restaurantId != null) {
stmt.bindLong(3, restaurantId);
}
String ip = entity.getIp(); String ip = entity.getIp();
if (ip != null) { if (ip != null) {
...@@ -87,7 +91,11 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> { ...@@ -87,7 +91,11 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> {
if (dbid != null) { if (dbid != null) {
stmt.bindLong(2, dbid); stmt.bindLong(2, dbid);
} }
stmt.bindLong(3, entity.getRestaurantId());
Integer restaurantId = entity.getRestaurantId();
if (restaurantId != null) {
stmt.bindLong(3, restaurantId);
}
String ip = entity.getIp(); String ip = entity.getIp();
if (ip != null) { if (ip != null) {
...@@ -107,7 +115,7 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> { ...@@ -107,7 +115,7 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> {
PrinterDeviceBean entity = new PrinterDeviceBean( // PrinterDeviceBean entity = new PrinterDeviceBean( //
cursor.getInt(offset + 0), // id cursor.getInt(offset + 0), // id
cursor.isNull(offset + 1) ? null : cursor.getLong(offset + 1), // dbid cursor.isNull(offset + 1) ? null : cursor.getLong(offset + 1), // dbid
cursor.getInt(offset + 2), // restaurantId cursor.isNull(offset + 2) ? null : cursor.getInt(offset + 2), // restaurantId
cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // ip cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // ip
cursor.getInt(offset + 4), // port cursor.getInt(offset + 4), // port
cursor.getInt(offset + 5) // type cursor.getInt(offset + 5) // type
...@@ -119,7 +127,7 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> { ...@@ -119,7 +127,7 @@ public class PrinterDeviceBeanDao extends AbstractDao<PrinterDeviceBean, Long> {
public void readEntity(Cursor cursor, PrinterDeviceBean entity, int offset) { public void readEntity(Cursor cursor, PrinterDeviceBean entity, int offset) {
entity.setId(cursor.getInt(offset + 0)); entity.setId(cursor.getInt(offset + 0));
entity.setDbid(cursor.isNull(offset + 1) ? null : cursor.getLong(offset + 1)); entity.setDbid(cursor.isNull(offset + 1) ? null : cursor.getLong(offset + 1));
entity.setRestaurantId(cursor.getInt(offset + 2)); entity.setRestaurantId(cursor.isNull(offset + 2) ? null : cursor.getInt(offset + 2));
entity.setIp(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3)); entity.setIp(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
entity.setPort(cursor.getInt(offset + 4)); entity.setPort(cursor.getInt(offset + 4));
entity.setType(cursor.getInt(offset + 5)); entity.setType(cursor.getInt(offset + 5));
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<!--App主色调--> <!--App主色调-->
<!-- <color name="theme_color">#BF1C42</color>--> <!-- <color name="theme_color">#BF1C42</color>-->
<color name="theme_color">#398BED</color> <color name="theme_color">#0099CC</color>
<color name="normal_color">#333333</color> <color name="normal_color">#333333</color>
<color name="theme_white_color">#FFFFFFFF</color> <color name="theme_white_color">#FFFFFFFF</color>
......
...@@ -2,13 +2,16 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,13 +2,16 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableContract; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableContract;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.PrintUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
...@@ -173,7 +176,8 @@ public class MealStandPresenter extends BasePresenter<MealStandContract.Model, M ...@@ -173,7 +176,8 @@ public class MealStandPresenter extends BasePresenter<MealStandContract.Model, M
public void onNext(@NonNull BaseResult info) { public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) { if (info != null && info.isSuccess()) {
mRootView.showMessage("送單成功"); mRootView.showMessage("送單成功");
IActivity.returnTableActivity(true); printSendOrder(MyOrderManage.getInstance().getOrderFoodList());
// IActivity.returnTableActivity(true);
} else { } else {
mRootView.showMessage("送單失敗"); mRootView.showMessage("送單失敗");
} }
...@@ -243,7 +247,7 @@ public class MealStandPresenter extends BasePresenter<MealStandContract.Model, M ...@@ -243,7 +247,7 @@ public class MealStandPresenter extends BasePresenter<MealStandContract.Model, M
if (info != null && info.isSuccess()) { if (info != null && info.isSuccess()) {
mRootView.showMessage("送單成功"); mRootView.showMessage("送單成功");
// mRootView.launchActivity(new Intent(IActivity, MealStandActivity.class)); // mRootView.launchActivity(new Intent(IActivity, MealStandActivity.class));
mRootView.killMyself(); printSendOrder(newFoods);
} else { } else {
mRootView.showMessage("送單失敗"); mRootView.showMessage("送單失敗");
} }
...@@ -251,6 +255,23 @@ public class MealStandPresenter extends BasePresenter<MealStandContract.Model, M ...@@ -251,6 +255,23 @@ public class MealStandPresenter extends BasePresenter<MealStandContract.Model, M
}); });
} }
/**
* 打印上菜紙
*/
private void printSendOrder(List<Food> newFoods) {
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam("NewFoods", newFoods)
.addParam("type", 0)
.build()
.callAsync((cc, result) -> {
if (result.isSuccess()) {
//打印成功
mRootView.killMyself();
}
});
}
public void deleteFood(long id) { public void deleteFood(long id) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
......
...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.base.common.bean.PrinterManger.PrinterManager; ...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.base.common.bean.PrinterManger.PrinterManager;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableContract; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableContract;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.PrintUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
...@@ -119,7 +120,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -119,7 +120,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
sendOrder(); sendOrder();
break; break;
case 1: case 1:
printOrder(OpenTableContract.getDefault().getTableBean().getId()); // printOrder(OpenTableContract.getDefault().getTableBean().getId());
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam("type", 1)//印單
.build()
.callAsync((cc, result) -> {
if (result.isSuccess()) {
//打印成功
mRootView.printSuccess();
}
});
//打印
break; break;
case 2: case 2:
//結賬 //結賬
...@@ -219,6 +231,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -219,6 +231,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (info != null && info.isSuccess()) { if (info != null && info.isSuccess()) {
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.setActionName("printActivity") .setActionName("printActivity")
.addParam("type", 1)//印單
.build() .build()
.callAsync((cc, result) -> { .callAsync((cc, result) -> {
if (result.isSuccess()) { if (result.isSuccess()) {
......
...@@ -3,13 +3,15 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.activity; ...@@ -3,13 +3,15 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableContract; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableContract;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil; import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.PrintUtils;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils; import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.base.utils.view.ViewUtils; import com.gingersoft.gsa.cloud.base.utils.view.ViewUtils;
...@@ -17,7 +19,7 @@ import com.gingersoft.gsa.cloud.table.R; ...@@ -17,7 +19,7 @@ import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderPayComponent; import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderPayComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderPayContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderPayContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BillMethodBean; import com.gingersoft.gsa.cloud.base.common.bean.BillMethodBean;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderPayPresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderPayPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillMethodAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillMethodAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillMoneyAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillMoneyAdapter;
...@@ -92,7 +94,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -92,7 +94,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
//尚欠金額 //尚欠金額
private double ownMoney; private double ownMoney;
private List<BillMethodBean> billMoney; private List<BillMethodBean> billMoney = new ArrayList<>();
private BillMoneyAdapter billMoneyAdapter; private BillMoneyAdapter billMoneyAdapter;
@Override @Override
...@@ -152,7 +154,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -152,7 +154,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
public void initBillMethod() { public void initBillMethod() {
rvPay.setLayoutManager(new GridLayoutManager(mContext, 4)); rvPay.setLayoutManager(new GridLayoutManager(mContext, 4));
//每一種結賬方式的金額 //每一種結賬方式的金額
billMoney = new ArrayList<>();
//結賬方式 //結賬方式
List<BillMethodBean> data = new ArrayList<>(); List<BillMethodBean> data = new ArrayList<>();
data.add(new BillMethodBean(1, "現金")); data.add(new BillMethodBean(1, "現金"));
...@@ -287,11 +288,24 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -287,11 +288,24 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
@Override @Override
public void paySuccess() { public void paySuccess() {
//修改結賬方式數據
MyOrderManage.getInstance().setBillMoney(billMoney);
if (OpenTableContract.getDefault() != null) { if (OpenTableContract.getDefault() != null) {
//通知更新餐台状态 //通知更新餐台状态
EventBus.getDefault().post(OpenTableContract.getDefault().getTableBean().getId(), "initTable_status_event"); EventBus.getDefault().post(OpenTableContract.getDefault().getTableBean().getId(), "initTable_status_event");
} }
showMessage("支付成功"); showMessage("支付成功");
//打印結賬單
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam("type", 2)
.build()
.callAsync((cc, result) -> {
if (result.isSuccess()) {
//打印成功
}
});
setResult(Activity.RESULT_OK, null); setResult(Activity.RESULT_OK, null);
killMyself(); killMyself();
} }
......
...@@ -3,7 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.adapter; ...@@ -3,7 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BillMethodBean; import com.gingersoft.gsa.cloud.base.common.bean.BillMethodBean;
import java.util.List; import java.util.List;
......
...@@ -5,7 +5,7 @@ import android.view.View; ...@@ -5,7 +5,7 @@ import android.view.View;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BillMethodBean; import com.gingersoft.gsa.cloud.base.common.bean.BillMethodBean;
import java.util.List; import java.util.List;
......
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