Commit 7678dfd3 by 宁斌

1、打印流程日志埋点

parent 35f60e81
...@@ -105,6 +105,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo ...@@ -105,6 +105,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.addParam(PrintConstans.PRINT_CONTENT, printContent) .addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO, TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData.ORDER_NO)
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
.callAsyncCallbackOnMainThread { _, result -> .callAsyncCallbackOnMainThread { _, result ->
......
...@@ -655,6 +655,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -655,6 +655,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_ORDER)
.addParam(PrintConstans.PRINT_CONTENT, printContent) .addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO, dataBean.ORDER_NO)
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
.callAsyncCallbackOnMainThread { _, result -> .callAsyncCallbackOnMainThread { _, result ->
...@@ -674,8 +675,9 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -674,8 +675,9 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_CLOSING) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_OTHER_CLOSING)
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_CONTENT, printContent) .addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO, dataBean.ORDER_NO)
.setActionName("printActivity")
.build() .build()
.callAsyncCallbackOnMainThread { _, result -> .callAsyncCallbackOnMainThread { _, result ->
TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData = null TakeawayOrder.getInstance().shoppingCart.deliveryAndPickupData = null
......
...@@ -246,17 +246,21 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements ...@@ -246,17 +246,21 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
} }
private void printPrj(List<PrjBean.DataBean.Bean> printDatas) { private void printPrj(List<PrjBean.DataBean.Bean> printDatas) {
String orderNo = "";
StringBuilder ids = new StringBuilder(); StringBuilder ids = new StringBuilder();
for (int i = 0; i < printDatas.size(); i++) { for (int i = 0; i < printDatas.size(); i++) {
printDatas.get(i).setTotalPrj(printDatas.size()); PrjBean.DataBean.Bean prjBean = printDatas.get(i);
printDatas.get(i).setCurrentIndex(i); orderNo = prjBean.getOrderNo();
ids.append(printDatas.get(i).getId()); prjBean.setTotalPrj(printDatas.size());
prjBean.setCurrentIndex(i);
ids.append(prjBean.getId());
} }
//添加重印的報警推送 //添加重印的報警推送
OkHttp3Utils.noticePersonnel(AppConstans.RP_REPRINT_CODE, "重印,訂單號:" + printDatas.get(0).getOrderNo()); OkHttp3Utils.noticePersonnel(AppConstans.RP_REPRINT_CODE, "重印,訂單號:" + printDatas.get(0).getOrderNo());
String finalIds = ids.toString(); String finalIds = ids.toString();
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
.addParam(PrintConstans.PRINT_ORDER_NO, orderNo)
.addParam("prjBeans", printDatas) .addParam("prjBeans", printDatas)
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
......
...@@ -591,7 +591,8 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -591,7 +591,8 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
showMessage("再按一次退出應用"); showMessage("再按一次退出應用");
mExitTime = System.currentTimeMillis(); mExitTime = System.currentTimeMillis();
} else { } else {
finish(); // finish();
ArmsUtils.exitApp();
// System.exit(0); // System.exit(0);
} }
} }
......
...@@ -377,6 +377,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter> ...@@ -377,6 +377,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
.addParam(PrintConstans.PRINT_CONTENT, printContent) .addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO, mMealPayResultParam.getMealOrderPayRequest().getOrderId())
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess()); Log.e("error", "是否成功打印:" + result.isSuccess());
......
...@@ -33,7 +33,9 @@ import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails; ...@@ -33,7 +33,9 @@ import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager; import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils; import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.common.core.table.TableBean; import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.printer.AidlUtil; import com.gingersoft.gsa.cloud.common.printer.AidlUtil;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.threadPool.ThreadPoolManager; import com.gingersoft.gsa.cloud.common.utils.threadPool.ThreadPoolManager;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
...@@ -94,6 +96,7 @@ import static com.joe.print.mvp.print.common.HtmlContract.LABLE_P; ...@@ -94,6 +96,7 @@ import static com.joe.print.mvp.print.common.HtmlContract.LABLE_P;
@Getter @Getter
public abstract class PrinterRoot<T extends PrintContent> implements PrintSocketHolder.OnStateChangedListener, PrintExecutor.OnPrintResultListener, ReceiveListener { public abstract class PrinterRoot<T extends PrintContent> implements PrintSocketHolder.OnStateChangedListener, PrintExecutor.OnPrintResultListener, ReceiveListener {
private final String TAG = getClass().getSimpleName();
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
protected final String MONETARY_UNIT = "$"; protected final String MONETARY_UNIT = "$";
...@@ -436,29 +439,41 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket ...@@ -436,29 +439,41 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
return ImageUtils.zoomDrawable(bitmap, printWidth); return ImageUtils.zoomDrawable(bitmap, printWidth);
} }
@Override @Override
public void onResult(int errorCode, PrinterDeviceBean printerDeviceBean) { public void onResult(int errorCode, PrinterDeviceBean printerDeviceBean) {
switch (errorCode) { switch (errorCode) {
case PrintSocketHolder.ERROR_0: case PrintSocketHolder.ERROR_0:
PrinterPlugins.getOnPrinterFlowHandler().onPrintSuccess(printerDeviceBean);
printSuccess(); printSuccess();
break; return;
case PrintSocketHolder.ERROR_1: case PrintSocketHolder.ERROR_1:
LoganManager.w_printer(TAG, "生成打印數據失敗");
printFailure("生成打印數據失敗"); printFailure("生成打印數據失敗");
break; break;
case PrintSocketHolder.ERROR_2: case PrintSocketHolder.ERROR_2:
LoganManager.w_printer(TAG, "連接打印機失敗");
printFailure("連接打印機失敗"); printFailure("連接打印機失敗");
break; break;
case PrintSocketHolder.ERROR_3: case PrintSocketHolder.ERROR_3:
LoganManager.w_printer(TAG, "連接打印機失敗(获取输出流失败)");
printFailure("連接打印機失敗"); printFailure("連接打印機失敗");
break; break;
case PrintSocketHolder.ERROR_4: case PrintSocketHolder.ERROR_4:
LoganManager.w_printer(TAG, "連接打印機失敗(写入页面数据失败)");
printFailure("連接打印機失敗"); printFailure("連接打印機失敗");
break; break;
case PrintSocketHolder.ERROR_5: case PrintSocketHolder.ERROR_5:
LoganManager.w_printer(TAG, "連接打印機失敗(必要参数不能为空)");
printFailure("連接打印機失敗"); printFailure("連接打印機失敗");
break; break;
case PrintSocketHolder.ERROR_6:
LoganManager.w_printer(TAG, "关闭Socket出错");
break;
case PrintSocketHolder.ERROR_100:
LoganManager.w_printer(TAG, "打印失败");
break;
} }
PrinterPlugins.getOnPrinterFlowHandler().onPrintError(errorCode, printerDeviceBean);
setPrintState(errorCode); setPrintState(errorCode);
} }
......
package com.joe.print.mvp.print.service; package com.joe.print.mvp.print.service;
import android.app.IntentService;
import android.app.Service; import android.app.Service;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
...@@ -23,8 +22,7 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager; ...@@ -23,8 +22,7 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.user.UserContext; import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.printer.AidlUtil; import com.gingersoft.gsa.cloud.common.printer.AidlUtil;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrintPaperPlugins; import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins;
import com.gingersoft.gsa.cloud.common.utils.FileUtils;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils; import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils; import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils; import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
...@@ -32,20 +30,17 @@ import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; ...@@ -32,20 +30,17 @@ import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.threadPool.ThreadPoolManager; import com.gingersoft.gsa.cloud.common.utils.threadPool.ThreadPoolManager;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.common.utils.view.BitmapUtil;
import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean; import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.utils.PrinterDeviceDaoUtils; import com.gingersoft.gsa.cloud.database.utils.PrinterDeviceDaoUtils;
import com.gingersoft.gsa.cloud.print.PrintExecutor; import com.gingersoft.gsa.cloud.print.PrintExecutor;
import com.gingersoft.gsa.cloud.print.PrintSocketHolder; import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
import com.gingersoft.gsa.cloud.print.PrinterWriter58mm; import com.gingersoft.gsa.cloud.print.PrinterWriter58mm;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.PrjBean; import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.gingersoft.gsa.cloud.print.bean.UpdateBean; import com.gingersoft.gsa.cloud.print.bean.UpdateBean;
import com.hyweb.n5.lib.constant.PrinterConstant; import com.hyweb.n5.lib.constant.PrinterConstant;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
import com.hyweb.n5.server.aidl.IOnPrintCallback; import com.hyweb.n5.server.aidl.IOnPrintCallback;
import com.jess.arms.utils.RxLifecycleUtils;
import com.joe.print.mvp.print.PrintPrjKitchen; import com.joe.print.mvp.print.PrintPrjKitchen;
import com.joe.print.mvp.print.PrinterRoot; import com.joe.print.mvp.print.PrinterRoot;
import com.joe.print.mvp.print.common.PrinterFinderCallback; import com.joe.print.mvp.print.common.PrinterFinderCallback;
...@@ -57,14 +52,11 @@ import com.joe.print.mvp.print.usb.UsbPrinter; ...@@ -57,14 +52,11 @@ import com.joe.print.mvp.print.usb.UsbPrinter;
import com.joe.print.mvp.print.usb.UsbPrinterFinder; import com.joe.print.mvp.print.usb.UsbPrinterFinder;
import com.joe.print.mvp.print.utils.MyPrintUtils; import com.joe.print.mvp.print.utils.MyPrintUtils;
import com.sunmi.peripheral.printer.InnerResultCallbcak; import com.sunmi.peripheral.printer.InnerResultCallbcak;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import com.xuexiang.rxutil2.rxjava.task.RxIOTask;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.PrintStream; import java.io.PrintStream;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -73,13 +65,13 @@ import java.util.HashMap; ...@@ -73,13 +65,13 @@ import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import jcifs.smb.SmbFile; import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileOutputStream; import jcifs.smb.SmbFileOutputStream;
...@@ -112,6 +104,7 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -112,6 +104,7 @@ public class PrjService extends Service implements ReceiveListener {
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
LoganManager.w_printer(TAG, "onCreate");
mContext = this; mContext = this;
initUsbPrint(); initUsbPrint();
} }
...@@ -119,8 +112,8 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -119,8 +112,8 @@ public class PrjService extends Service implements ReceiveListener {
@Override @Override
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
mContext = this; mContext = this;
LoganManager.w_printer(TAG, "onStartCommand");
ThreadPoolManager.getInstence().putExecutableTasks(() -> { ThreadPoolManager.getInstence().putExecutableTasks(() -> {
LoganManager.w_printer(TAG, "currentThreadName: " + Thread.currentThread().getName());
LoganManager.w_printer(TAG, "開始請求 PRJ 數據"); LoganManager.w_printer(TAG, "開始請求 PRJ 數據");
getPrintList(); getPrintList();
//開始請求 //開始請求
...@@ -129,6 +122,12 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -129,6 +122,12 @@ public class PrjService extends Service implements ReceiveListener {
return super.onStartCommand(intent, flags, startId); return super.onStartCommand(intent, flags, startId);
} }
@Override
public void onDestroy() {
super.onDestroy();
LoganManager.w_printer(TAG, "onDestroy");
}
private UsbPrinterFinder printerFinder; private UsbPrinterFinder printerFinder;
private List<UsbPrinter> mUsbPrinters; private List<UsbPrinter> mUsbPrinters;
...@@ -215,7 +214,6 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -215,7 +214,6 @@ public class PrjService extends Service implements ReceiveListener {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(Disposable d) {
LoganManager.w_printer(TAG, "RxCurrentThreadName: " + Thread.currentThread().getName());
LoganManager.w_printer(TAG, "getPrjInfo onSubscribe"); LoganManager.w_printer(TAG, "getPrjInfo onSubscribe");
} }
...@@ -534,7 +532,7 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -534,7 +532,7 @@ public class PrjService extends Service implements ReceiveListener {
if (beans.size() > 0) { if (beans.size() > 0) {
orderType = beans.get(0).getOrderType(); orderType = beans.get(0).getOrderType();
} }
PrintPaperPlugins.getOnPrinterFlowHandler().onPrinterDataBefore(orderType, GsonUtils.GsonString(beans), GsonUtils.GsonString(printerDeviceBean)); PrinterPlugins.getOnPrinterFlowHandler().onPrinterDataBefore(orderType, PrintConstans.PRINT_KITCHEN, GsonUtils.GsonString(beans), GsonUtils.GsonString(printerDeviceBean));
if (isPinPrinter(printerDeviceBean) && printerDeviceBean.getPrinterDeviceType() == PRINT_IP) { if (isPinPrinter(printerDeviceBean) && printerDeviceBean.getPrinterDeviceType() == PRINT_IP) {
//針式打印機並且打印機類型為IP打印,生成獨特的格式 //針式打印機並且打印機類型為IP打印,生成獨特的格式
...@@ -733,13 +731,9 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -733,13 +731,9 @@ public class PrjService extends Service implements ReceiveListener {
switch (errorCode) { switch (errorCode) {
case PrintSocketHolder.ERROR_0: case PrintSocketHolder.ERROR_0:
//更新狀態 //更新狀態
LoganManager.w_printer(TAG, "ipPrint errorCode ERROR_0 i: " + finalI);
updatePrjSuccess(ids); updatePrjSuccess(ids);
Log.e(TAG, "打印成功");
break; break;
case PrintSocketHolder.ERROR_2: case PrintSocketHolder.ERROR_2:
LoganManager.w_printer(TAG, "ipPrint errorCode ERROR_2 i: " + finalI);
Log.e(TAG, "创建Socket失败");
updatePrjFailure(ids); updatePrjFailure(ids);
break; break;
} }
...@@ -760,10 +754,10 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -760,10 +754,10 @@ public class PrjService extends Service implements ReceiveListener {
UsbPrint usbPrint = new UsbPrint(mContext, (code, printId) -> { UsbPrint usbPrint = new UsbPrint(mContext, (code, printId) -> {
//打印結果 //打印結果
if (code == SendResultCode.SEND_SUCCESS) { if (code == SendResultCode.SEND_SUCCESS) {
Log.e("ddd", "打印成功"); PrinterPlugins.getOnPrinterFlowHandler().onPrintSuccess(null);
updatePrjSuccess(key); updatePrjSuccess(key);
} else if (code == SendResultCode.SEND_FAILED) { } else if (code == SendResultCode.SEND_FAILED) {
Log.e("ddd", "打印失敗"); PrinterPlugins.getOnPrinterFlowHandler().onPrintError(code, null);
updatePrjFailure(key); updatePrjFailure(key);
} }
}); });
...@@ -945,9 +939,16 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -945,9 +939,16 @@ public class PrjService extends Service implements ReceiveListener {
orderType = prjBean.getOrderType(); orderType = prjBean.getOrderType();
} }
} }
PrintPaperPlugins.getOnPrinterFlowHandler().onPrinterBitmapBefore(orderType, prjName, bitmapMaps); List<Bitmap> bitmapList = new ArrayList<>();
for (int i = 0; i < bitmapMaps.size(); i++) {
Set<Map.Entry<String, Bitmap>> bitmapSet = bitmapMaps.get(i).entrySet();
Iterator<Map.Entry<String, Bitmap>> bitmapIterator = bitmapSet.iterator();
while (bitmapIterator.hasNext()) {
bitmapList.add(bitmapIterator.next().getValue());
}
}
PrinterPlugins.getOnPrinterFlowHandler().onPrinterBitmapBefore(orderType, PrintConstans.PRINT_KITCHEN, prjName, bitmapList);
} }
return bitmapMaps; return bitmapMaps;
} }
...@@ -1005,7 +1006,7 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -1005,7 +1006,7 @@ public class PrjService extends Service implements ReceiveListener {
@Override @Override
public void onNext(String s) { public void onNext(String s) {
Log.e(TAG, "修改打印狀態:" + s); LoganManager.w_printer(TAG, "---end---修改Prj打印狀態---end----: " + s);
} }
@Override @Override
......
...@@ -28,6 +28,8 @@ import com.billy.cc.core.component.CCUtil; ...@@ -28,6 +28,8 @@ import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication; import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans; import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.print.PrintExecutor; import com.gingersoft.gsa.cloud.print.PrintExecutor;
import com.gingersoft.gsa.cloud.print.PrintSocketHolder; import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
import com.gingersoft.gsa.cloud.print.bean.PrintContent; import com.gingersoft.gsa.cloud.print.bean.PrintContent;
...@@ -103,6 +105,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -103,6 +105,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private Dialog mLoadingDialog; private Dialog mLoadingDialog;
private TextView mTvLoadingTip; private TextView mTvLoadingTip;
/** /**
* 0:上菜紙 * 0:上菜紙
* 1:印單 * 1:印單
...@@ -113,6 +116,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -113,6 +116,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
* 6:其他指令 * 6:其他指令
*/ */
private int type; private int type;
private String mOrderNo;
//是否顯示打印等待彈窗 //是否顯示打印等待彈窗
private boolean isShowDialog; private boolean isShowDialog;
...@@ -140,18 +144,20 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -140,18 +144,20 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
//獲取打印類型,根據打印類型生成對應的bitmap //獲取打印類型,根據打印類型生成對應的bitmap
type = CCUtil.getNavigateParam(this, PrintConstans.PRINT_TYPE, PrintConstans.PRINT_TEST); type = CCUtil.getNavigateParam(this, PrintConstans.PRINT_TYPE, PrintConstans.PRINT_TEST);
PrintContent printContent = CCUtil.getNavigateParam(this, PrintConstans.PRINT_CONTENT, null); PrintContent printContent = CCUtil.getNavigateParam(this, PrintConstans.PRINT_CONTENT, null);
mOrderNo = CCUtil.getNavigateParam(this, PrintConstans.PRINT_ORDER_NO, "");
isShowDialog = CCUtil.getNavigateParam(this, PrintConstans.PRINT_LOADING, true); isShowDialog = CCUtil.getNavigateParam(this, PrintConstans.PRINT_LOADING, true);
printerInIt = PrinterRoot.getPrinterByType(type, printContent); printerInIt = PrinterRoot.getPrinterByType(type, printContent);
if (printerInIt != null) { if (printerInIt != null) {
printerInIt.setPrintListener(this); printerInIt.setPrintListener(this);
} }
initPrintConfig();
initPrintConfig(printContent);
} }
private int selectPrint = -1; private int selectPrint = -1;
private void initPrintConfig() { private void initPrintConfig(PrintContent printContent) {
PrintCurrencyBean printCurrencyBean; PrintCurrencyBean printCurrencyBean;
PrinterDeviceBean defaultPrint; PrinterDeviceBean defaultPrint;
//獲取通用打印配置,不同的打印 //獲取通用打印配置,不同的打印
...@@ -176,6 +182,9 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -176,6 +182,9 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
// 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印 // 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印
defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get("defaultPrint", "")); defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get("defaultPrint", ""));
} }
PrinterPlugins.getOnPrinterFlowHandler().onPrinterDataBefore(type, type, GsonUtils.GsonString(printContent), GsonUtils.GsonString(defaultPrint));
//廚房單 //廚房單
if (type == PrintConstans.PRINT_KITCHEN) { if (type == PrintConstans.PRINT_KITCHEN) {
List<PrjBean.DataBean.Bean> printDatas = CCUtil.getNavigateParam(this, "prjBeans", null); List<PrjBean.DataBean.Bean> printDatas = CCUtil.getNavigateParam(this, "prjBeans", null);
...@@ -285,6 +294,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -285,6 +294,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
//打印失敗 //打印失敗
printFailure("打印失敗,生成打印數據失敗"); printFailure("打印失敗,生成打印數據失敗");
} }
setPrinterBitmapToLocation(type, type, mOrderNo, listMap);
} }
//獲得對應的圖片 //獲得對應的圖片
if (defaultPrint.getPrinterDeviceType() == PrinterDeviceBean.PRINT_IP) { if (defaultPrint.getPrinterDeviceType() == PrinterDeviceBean.PRINT_IP) {
...@@ -303,7 +313,16 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -303,7 +313,16 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
else { else {
printFailure("未找到對應的打印類型"); printFailure("未找到對應的打印類型");
} }
}
}
/**
* 将所要打印的图片保存到本地
*/
private void setPrinterBitmapToLocation(int orderType, int printType, String orderNo, Map<String, List<Bitmap>> bitmapMaps) {
if (bitmapMaps.size() > 0 && bitmapMaps.get("") != null) {
String prjName = orderNo + "-" + System.currentTimeMillis();
PrinterPlugins.getOnPrinterFlowHandler().onPrinterBitmapBefore(orderType, printType, prjName, bitmapMaps.get(""));
} }
} }
...@@ -468,7 +487,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -468,7 +487,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
printFailure("打印機缺紙"); printFailure("打印機缺紙");
break; break;
} }
LoganManager.w_printer(TAG,"printStateChanged state--->" + tip); LoganManager.w_printer(TAG, "printStateChanged state--->" + tip);
setLoadingText(tip); setLoadingText(tip);
} }
...@@ -477,7 +496,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -477,7 +496,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
*/ */
@Override @Override
public void printSuccess() { public void printSuccess() {
LoganManager.w_printer(TAG,"printFailure 打印成功"); LoganManager.w_printer(TAG, "printFailure 打印成功");
// if (printCount <= 1) { // if (printCount <= 1) {
CC.sendCCResult(callId, CCResult.success()); CC.sendCCResult(callId, CCResult.success());
disLoadingDialog(); disLoadingDialog();
...@@ -490,7 +509,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -490,7 +509,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public void printFailure(String msg) { public void printFailure(String msg) {
LoganManager.w_printer(TAG,"printFailure 打印失敗--->" + msg);
if (!TextUtil.isEmptyOrNullOrUndefined(msg)) { if (!TextUtil.isEmptyOrNullOrUndefined(msg)) {
ToastUtils.show(GsaCloudApplication.getAppContext(), msg); ToastUtils.show(GsaCloudApplication.getAppContext(), msg);
CC.sendCCResult(callId, CCResult.error(msg)); CC.sendCCResult(callId, CCResult.error(msg));
......
...@@ -144,6 +144,7 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> { ...@@ -144,6 +144,7 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
.addParam(PrintConstans.PRINT_CONTENT, printContent) .addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,doshokuOrder.getOrderNo())
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess()); Log.e("error", "是否成功打印:" + result.isSuccess());
......
...@@ -140,6 +140,7 @@ public class PrintServingPaperAction extends TableAction { ...@@ -140,6 +140,7 @@ public class PrintServingPaperAction extends TableAction {
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
.addParam(PrintConstans.PRINT_CONTENT,printContent) .addParam(PrintConstans.PRINT_CONTENT,printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,tableBean.getOrderId())
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
//清空賬單數據 //清空賬單數據
......
...@@ -896,6 +896,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -896,6 +896,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
.addParam(PrintConstans.PRINT_CONTENT,printContent) .addParam(PrintConstans.PRINT_CONTENT,printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) { if (result.isSuccess()) {
......
...@@ -391,6 +391,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -391,6 +391,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
.addParam(PrintConstans.PRINT_CONTENT, printContent) .addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) { if (result.isSuccess()) {
...@@ -437,6 +438,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -437,6 +438,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單 .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單
.addParam(PrintConstans.PRINT_CONTENT, printContent) .addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
......
...@@ -233,7 +233,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -233,7 +233,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
} }
} }
public void getTables(boolean show, RefreshLayout refreshLayout) { public void getTables(boolean show, RefreshLayout refreshLayout) {
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId() != 0 ? RestaurantInfoManager.newInstance().getRestaurantId() : 26; int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId() != 0 ? RestaurantInfoManager.newInstance().getRestaurantId() : 26;
mModel.getTables(restaurantId) mModel.getTables(restaurantId)
......
...@@ -461,6 +461,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -461,6 +461,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_INSTRUCTION) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_INSTRUCTION)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.build() .build()
.callAsyncCallbackOnMainThread(new IComponentCallback() { .callAsyncCallbackOnMainThread(new IComponentCallback() {
@Override @Override
...@@ -489,6 +490,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -489,6 +490,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
.addParam(PrintConstans.PRINT_CONTENT, printContent) .addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_ORDER_NO,DoshokuOrder.getInstance().getOrderNo())
.build() .build()
.callAsyncCallbackOnMainThread(new IComponentCallback() { .callAsyncCallbackOnMainThread(new IComponentCallback() {
@Override @Override
......
...@@ -272,9 +272,9 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -272,9 +272,9 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
tv_order_num.setText(orderCode + orderDetailItem.getBillNo() + " " + mealCode + orderDetailItem.getTakeFoodCode()); tv_order_num.setText(orderCode + orderDetailItem.getBillNo() + " " + mealCode + orderDetailItem.getTakeFoodCode());
} else { } else {
String tableName = LanguageUtils.get_language_system(this, "table.number", "檯號") + ": "; String tableName = LanguageUtils.get_language_system(this, "table.number", "檯號") + ": ";
String orderNumber = LanguageUtils.get_language_system(this, "order.number", "單號") + ": "; String orderNumber = LanguageUtils.get_language_system(this, "order.number", "單號") + ": ";
tv_table_name.setText(tableName + orderDetailItem.getTableName()); tv_table_name.setText(tableName + orderDetailItem.getTableName());
tv_order_num.setText(orderNumber + orderDetailItem.getId()); tv_order_num.setText(orderNumber + orderDetailItem.getOrderNo());
} }
tv_people_num.setText(pax); tv_people_num.setText(pax);
tv_open_time.setText(openTable); tv_open_time.setText(openTable);
......
...@@ -152,9 +152,9 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> { ...@@ -152,9 +152,9 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
tv_order_num.setText(orderCode + orderBean.getBillNo() + " " + mealCode + orderBean.getTakeFoodCode()); tv_order_num.setText(orderCode + orderBean.getBillNo() + " " + mealCode + orderBean.getTakeFoodCode());
} else { } else {
String tableName = LanguageUtils.get_language_system(mContext, "table.number", "檯號") + ": "; String tableName = LanguageUtils.get_language_system(mContext, "table.number", "檯號") + ": ";
String orderNumber = LanguageUtils.get_language_system(mContext, "order.number", "單號") + ": "; String orderNumber = LanguageUtils.get_language_system(mContext, "order.number", "單號") + ": ";
tv_table_name.setText(tableName + orderBean.getTableName()); tv_table_name.setText(tableName + orderBean.getTableName());
tv_order_num.setText(orderNumber + orderBean.getId()); tv_order_num.setText(orderNumber + orderBean.getOrderNo());
} }
//先将check回调情况,防止setChecked时反复调用onCheckedChanged方法 //先将check回调情况,防止setChecked时反复调用onCheckedChanged方法
......
...@@ -47,8 +47,10 @@ import com.gingersoft.gsa.cloud.common.loadsir.pos.PosVoidStatusExceptionCallbac ...@@ -47,8 +47,10 @@ import com.gingersoft.gsa.cloud.common.loadsir.pos.PosVoidStatusExceptionCallbac
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.oaId.DeviceID; import com.gingersoft.gsa.cloud.common.oaId.DeviceID;
import com.gingersoft.gsa.cloud.common.printer.AidlUtil; import com.gingersoft.gsa.cloud.common.printer.AidlUtil;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrintPaperPlugins; import com.gingersoft.gsa.cloud.common.printer.PrinterFileUtils;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterFlowListener; import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterFlowListener;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.FileUtils; import com.gingersoft.gsa.cloud.common.utils.FileUtils;
import com.gingersoft.gsa.cloud.common.utils.crash.AppCrashHandler; import com.gingersoft.gsa.cloud.common.utils.crash.AppCrashHandler;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil; import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
...@@ -170,7 +172,7 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -170,7 +172,7 @@ public class GsaCloudApplication extends BaseApplication {
private void initQMUI() { private void initQMUI() {
//初始化側滑回退 //初始化側滑回退
QMUISwipeBackActivityManager.init(this); // QMUISwipeBackActivityManager.init(this);
//初始化主題管理器 //初始化主題管理器
// QDSkinManager.install(this); // QDSkinManager.install(this);
} }
...@@ -216,12 +218,12 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -216,12 +218,12 @@ public class GsaCloudApplication extends BaseApplication {
* 初始化Hyweb支付回調 * 初始化Hyweb支付回調
*/ */
private void initHywebCommandImpl() { private void initHywebCommandImpl() {
// if (AppDevices.isHywebPos()) { if (AppDevices.isHywebPos()) {
CC.obtainBuilder(ComponentName.COMPONENT_LOGIN) CC.obtainBuilder(ComponentName.COMPONENT_LOGIN)
.setActionName(ComponentAction.Login.INIT_HYWEB_COMMAND_IMPL) .setActionName(ComponentAction.Login.INIT_HYWEB_COMMAND_IMPL)
.build() .build()
.call(); .call();
// } }
} }
private void initRxjava() { private void initRxjava() {
...@@ -340,94 +342,50 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -340,94 +342,50 @@ public class GsaCloudApplication extends BaseApplication {
SPUtils.put(PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.IP_PRINT); SPUtils.put(PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.IP_PRINT);
} }
//打印流程 //打印流程
PrintPaperPlugins.setOnPrinterFlowHandler(new PrinterFlowListener() { PrinterPlugins.setOnPrinterFlowHandler(new PrinterFlowListener() {
private final String TAG = "PrinterPlugins";
@Override @Override
public void onPrinterDataBefore(int orderType, String printerData, String printerDeviceInfo) { public void onPrinterDataBefore(int orderType, int printType, String printerData, String printerDeviceInfo) {
LoganManager.w_code(TAG, "onPrinterDataBefore printerData=" + printerData + " printerDeviceInfo=" + printerDeviceInfo); LoganManager.w_printer(TAG, "打印前--> printerData=" + printerData + " printerDeviceInfo=" + printerDeviceInfo);
} }
@Override @Override
public void onPrinterBitmapBefore(int orderType, String directoryName, List<Map<String, Bitmap>> bitmaps) { public void onPrinterBitmapBefore(int orderType, int printType, String directoryName, List<Bitmap> bitmaps) {
LoganManager.w_code(TAG, "onPrinterBitmapBefore"); LoganManager.w_printer(TAG, "生成的打印圖片-->");
RxIOTask rxIOTask = new RxIOTask(0) { PrinterFileUtils.savePrinterBitmapByType(orderType, printType, directoryName, bitmaps);
@Override
public Object doInIOThread(Object o) {
File file = new File(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
if (file != null && file.exists()) {
long FILE_SIZE = FileUtils.getDirSize(file);
if (FILE_SIZE > FileUtils.PrinterImagePath.PRINTER_MAX_FILE_SIZE) {
//大於100M 就刪除
File prjPath = new File(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
if (prjPath.isDirectory()) {
File[] prjDirectorys = prjPath.listFiles();
for (int i = prjDirectorys.length - 1; i >= 0; i--) {
File prjDirectory = prjDirectorys[i];
boolean deleteResult = prjDirectory.delete();
if (deleteResult && FILE_SIZE <= FileUtils.PrinterImagePath.PRINTER_KEEP_FILE_SIZE) {
FILE_SIZE = FileUtils.getFileSize(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
LoganManager.w_code(TAG, "onPrinterBitmapBefore delete kitchen prj file after size :" + FILE_SIZE);
break;
}
}
}
}
}
for (Map<String, Bitmap> bitmapMap : bitmaps) {
Set<Map.Entry<String, Bitmap>> bitmapSet = bitmapMap.entrySet();
Iterator<Map.Entry<String, Bitmap>> bitmapIterator = bitmapSet.iterator();
while (bitmapIterator.hasNext()) {
Map.Entry<String, Bitmap> bitmapEntry = bitmapIterator.next();
String prjName = directoryName + "-" + System.currentTimeMillis();
BitmapUtil.saveBitmap(bitmapEntry.getValue(), FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH + directoryName + File.separator, prjName + ".jpeg", new BitmapUtil.OnSaveBitmapListener() {
@Override
public void onSuccess() {
LoganManager.w_code(TAG, "onPrinterBitmapBefore saveBitmap onSuccess");
}
@Override
public void onError(Exception e) {
LoganManager.w_code(TAG, "onPrinterBitmapBefore saveBitmap onError :" + e.getMessage());
}
});
}
}
return null;
}
};
RxJavaUtils.doInIOThread(rxIOTask);
} }
@Override @Override
public void onPrintSuccess(PrinterDeviceBean printerDeviceBean) { public void onPrintSuccess(PrinterDeviceBean printerDeviceBean) {
LoganManager.w_code(TAG, "onPrintSuccess"); LoganManager.w_printer(TAG, "打印成功");
} }
@Override @Override
public void onPrintError(int errorCode, PrinterDeviceBean printerDeviceBean) { public void onPrintError(int errorCode, PrinterDeviceBean printerDeviceBean) {
LoganManager.w_code(TAG, "onPrintError errorCode:" + errorCode); LoganManager.w_printer(TAG, "打印失敗:" + errorCode);
} }
@Override @Override
public void connectionBefore(int type, String IP, String port, String ioTimeout, long printTimeout) { public void connectionBefore(String deviceName, String ip, int port, long ioTimeout, long printTimeout) {
Object[] objs = {type, IP, port, ioTimeout, printTimeout}; Object[] objs = {deviceName, ip, port, ioTimeout, printTimeout};
LoganManager.w_code(TAG, String.format("connectionBefore type=%s ,IP=%s ,port=%s ,ioTimeout=%s ,printTimeout=%s", objs)); LoganManager.w_printer(TAG, String.format("連接打印機前--> deviceName=%s ,IP=%s ,port=%s ,ioTimeout=%s ,printTimeout=%s", objs));
} }
@Override @Override
public void connectionSuccess() { public void connectionSuccess() {
LoganManager.w_code(TAG, "connectionSuccess"); LoganManager.w_printer(TAG, "連接打印機成功");
} }
@Override @Override
public void connectionError(Exception e) { public void connectionError(Exception e) {
LoganManager.w_code(TAG, "connectionError e: " + e.getMessage()); LoganManager.w_printer(TAG, "連接打印機失敗" );
} }
@Override @Override
public void disconnect() { public void disconnect() {
LoganManager.w_code(TAG, "disconnect"); LoganManager.w_printer(TAG, "斷開打印機連接");
} }
}); });
} }
......
...@@ -12,12 +12,12 @@ public class LoganConfig { ...@@ -12,12 +12,12 @@ public class LoganConfig {
public static final String EncryptKey16 = "0123456789012345"; public static final String EncryptKey16 = "0123456789012345";
public static final String EncryptIV16 = "0123456789012345"; public static final String EncryptIV16 = "0123456789012345";
public static final String APP_ID = "gingersoft1008611"; public static final String APP_ID = "gingersoft1008611";
public static final String UPLOAD_LOG_URL = "http://192.168.1.113:8082/logan/upload.json"; public static final String UPLOAD_LOG_URL = "http://192.168.1.131:8080/logan-web/logan/upload.json";
/** /**
* 日誌保留天數 * 日誌保留天數
*/ */
public static final int DAY = 1; public static final int DAY = 2;
/** /**
* 代码日志 * 代码日志
...@@ -28,24 +28,28 @@ public class LoganConfig { ...@@ -28,24 +28,28 @@ public class LoganConfig {
*/ */
public static final byte NETWORK_LEVLE = 2; public static final byte NETWORK_LEVLE = 2;
/** /**
* 數據庫日誌
*/
public static final byte DATABASE_LEVLE = 3;
/**
* 用戶行為日誌(頁面跳轉,交互,觸摸反饋等) * 用戶行為日誌(頁面跳轉,交互,觸摸反饋等)
*/ */
public static final byte ACTION_LEVLE = 3; public static final byte ACTION_LEVLE = 4;
/** /**
* 崩潰日誌 * 崩潰日誌
*/ */
public static final byte CRASH_LEVLE = 4; public static final byte CRASH_LEVLE = 5;
/** /**
* H5日誌 * H5日誌
*/ */
public static final byte H5_LEVLE = 5; public static final byte H5_LEVLE = 6;
/** /**
* native日誌 * native日誌
*/ */
public static final byte native_LEVLE = 6; public static final byte native_LEVLE = 7;
/** /**
* 打印相關日誌 * 打印模塊相關日誌
*/ */
public static final byte PRINTER_LEVLE = 7; public static final byte PRINTER_LEVLE = 8;
} }
...@@ -22,6 +22,7 @@ public class PrintConstans { ...@@ -22,6 +22,7 @@ public class PrintConstans {
*/ */
public static final String PRINT_TYPE = "print_type";//打印類型 public static final String PRINT_TYPE = "print_type";//打印類型
public static final String PRINT_CONTENT = "print_content";//打印內容 public static final String PRINT_CONTENT = "print_content";//打印內容
public static final String PRINT_ORDER_NO = "print_order_no";//打印ID(唯一标识即可)
public static final String PRINT_LOADING = "is_show_loading";//是否顯示加載框 public static final String PRINT_LOADING = "is_show_loading";//是否顯示加載框
public final static int PRINT_TEST = -1;//測試頁 public final static int PRINT_TEST = -1;//測試頁
......
...@@ -46,6 +46,14 @@ public class LoganManager { ...@@ -46,6 +46,14 @@ public class LoganManager {
} }
} }
public static void w_database(String TAG,String log) {
Logan.w(log, LoganConfig.DATABASE_LEVLE);
// Logan.f();
if (BuildConfig.DEBUG) {
printLog(TAG, log);
}
}
public static void w_crash(String log) { public static void w_crash(String log) {
Logan.w(log, LoganConfig.CRASH_LEVLE); Logan.w(log, LoganConfig.CRASH_LEVLE);
//cash日誌比較重要立即寫入本地 //cash日誌比較重要立即寫入本地
......
package com.gingersoft.gsa.cloud.common.printer;
import android.graphics.Bitmap;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.FileUtils;
import com.gingersoft.gsa.cloud.common.utils.view.BitmapUtil;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import com.xuexiang.rxutil2.rxjava.task.RxIOTask;
import java.io.File;
import java.util.List;
/**
* @作者: bin
* @創建時間: 2021-01-29 16:04
* @更新時間: 2021-01-29 16:04
* @描述:
*/
public class PrinterFileUtils {
private static final String TAG = "PrinterFileUtils";
//圖片文件最大文件大小不能超過100M
public static final int PRINTER_MAX_FILE_SIZE = 100 * 1024 * 1024;
//最少保留多少打印圖片文件大小
public static final int PRINTER_KEEP_FILE_SIZE = 20 * 1024 * 1024;
//根目錄
public static String PrinterImagesRootPath = "PrinterImages";
/**
* 廚房單
* 堂食結賬單
* 堂食印單
* 堂食上菜紙
* QRCODE
* 外送印單
* 外送結賬單
* 清機單
*/
public static String KitchenImage = "KitchenImages";
public static String PrintOrderImage = "PrintOrderImages";
public static String BillImage = "BillImages";
public static String ServingPaperImage = "ServingPaperImages";
public static String QrcodeImage = "QrcodeImages";
public static String DeliveryPrintOrderImage = "DeliveryPrintOrderImages";
public static String DeliveryBillImage = "DeliveryBillImages";
public static String SettlementImage = "SettlementImages";
public final static String ROOT_PATH = FileUtils.ALBUM_PATH + PrinterImagesRootPath + File.separator;
public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage + File.separator;
public final static String PRINT_ORDER_IMAGE_PATH = ROOT_PATH + PrintOrderImage + File.separator;
public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage + File.separator;
public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage + File.separator;
public final static String DELIVERY_PRINT_ORDER_IMAGE_PATH = ROOT_PATH + DeliveryPrintOrderImage + File.separator;
public final static String DELIVERY_BILL_IMAGE_PATH = ROOT_PATH + DeliveryBillImage + File.separator;
public final static String QRCODE_IMAGE_PATH = ROOT_PATH + QrcodeImage + File.separator;
public final static String SETTLEMENT_IMAGE_PATH = ROOT_PATH + SettlementImage + File.separator;
public static void savePrinterBitmapByType(int orderType, int printType, String directoryName, List<Bitmap> bitmaps) {
RxIOTask rxIOTask = new RxIOTask(0) {
@Override
public Object doInIOThread(Object o) {
String savePath = getPathByPrintType(printType);
if (TextUtils.isEmpty(savePath)) {
return null;
}
LoganManager.w_printer(TAG, "save path :" + savePath);
File file = new File(ROOT_PATH);
if (file != null && file.exists()) {
long FILE_SIZE = FileUtils.getDirSize(file);
if (FILE_SIZE > PRINTER_MAX_FILE_SIZE) {
LoganManager.w_printer(TAG, "delete file before size : " + FILE_SIZE);
//大於100M 就刪除
File prjPath = new File(ROOT_PATH);
if (prjPath.isDirectory()) {
File[] prjDirectorys = prjPath.listFiles();
for (int i = prjDirectorys.length - 1; i >= 0; i--) {
File prjDirectory = prjDirectorys[i];
boolean deleteResult = prjDirectory.delete();
if (deleteResult && FILE_SIZE <= PRINTER_KEEP_FILE_SIZE) {
FILE_SIZE = FileUtils.getFileSize(ROOT_PATH);
LoganManager.w_printer(TAG, "delete file after size : " + FILE_SIZE);
break;
}
}
}
}
}
for (Bitmap bitmap : bitmaps) {
String fileName = directoryName + "-" + System.currentTimeMillis();
LoganManager.w_printer(TAG, "saveBitmap fileName : " + fileName);
BitmapUtil.saveBitmap(bitmap, savePath + directoryName + File.separator, fileName + ".jpeg", new BitmapUtil.OnSaveBitmapListener() {
@Override
public void onSuccess() {
LoganManager.w_printer(TAG, "saveBitmap onSuccess");
}
@Override
public void onError(Exception e) {
LoganManager.w_printer(TAG, "saveBitmap onError :" + e.getMessage());
}
});
}
return null;
}
};
RxJavaUtils.doInIOThread(rxIOTask);
}
private static String getPathByPrintType(int printType) {
switch (printType) {
case PrintConstans.PRINT_SERVE: //堂食上菜紙
return PrinterFileUtils.SERVING_PAPER_IMAGE_PATH;
case PrintConstans.PRINT_SLIP://堂食印單
return PrinterFileUtils.PRINT_ORDER_IMAGE_PATH;
case PrintConstans.PRINT_BILL://堂食結賬單
return PrinterFileUtils.BILL_IMAGE_PATH;
case PrintConstans.PRINT_SKYORDER_QRCODE://QRCODE
return PrinterFileUtils.QRCODE_IMAGE_PATH;
case PrintConstans.PRINT_KITCHEN://廚房單 PRJ
return PrinterFileUtils.KITCHEN_PRJ_IMAGE_PATH;
case PrintConstans.PRINT_OTHER_ORDER://外送印單
return PrinterFileUtils.DELIVERY_PRINT_ORDER_IMAGE_PATH;
case PrintConstans.PRINT_OTHER_CLOSING://外送結賬
return PrinterFileUtils.DELIVERY_BILL_IMAGE_PATH;
case PrintConstans.PRINT_CLEAN_MACHINE://清機報表
return PrinterFileUtils.SETTLEMENT_IMAGE_PATH;
}
return null;
}
}
...@@ -8,7 +8,7 @@ package com.gingersoft.gsa.cloud.common.printer.plugins; ...@@ -8,7 +8,7 @@ package com.gingersoft.gsa.cloud.common.printer.plugins;
*/ */
public interface ExternalPrinterConnection { public interface ExternalPrinterConnection {
void connectionBefore(int type, String IP, String port, String ioTimeout, long printTimeout); void connectionBefore(String deviceName, String IP, int port, long ioTimeout, long printTimeout);
void connectionSuccess(); void connectionSuccess();
......
package com.gingersoft.gsa.cloud.common.printer.plugins; package com.gingersoft.gsa.cloud.common.printer.plugins;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import java.util.List; import java.util.List;
...@@ -14,9 +15,9 @@ import java.util.Map; ...@@ -14,9 +15,9 @@ import java.util.Map;
*/ */
public interface PrinterFlowListener extends ExternalPrinterConnection { public interface PrinterFlowListener extends ExternalPrinterConnection {
void onPrinterDataBefore(int orderType,String printerData,String printerDeviceInfo); void onPrinterDataBefore(int orderType, int printType, String printerData, String printerDeviceInfo);
void onPrinterBitmapBefore(int orderType,String directoryName, List<Map<String, Bitmap>> bitmaps); void onPrinterBitmapBefore(int orderType, int printType, String directoryName, List<Bitmap> bitmaps);
void onPrintSuccess(PrinterDeviceBean printerDeviceBean); void onPrintSuccess(PrinterDeviceBean printerDeviceBean);
......
...@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.common.printer.plugins; ...@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.common.printer.plugins;
import io.reactivex.annotations.NonNull; import io.reactivex.annotations.NonNull;
import io.reactivex.annotations.Nullable; import io.reactivex.annotations.Nullable;
import io.reactivex.exceptions.UndeliverableException;
import io.reactivex.functions.Consumer; import io.reactivex.functions.Consumer;
/** /**
...@@ -11,7 +10,7 @@ import io.reactivex.functions.Consumer; ...@@ -11,7 +10,7 @@ import io.reactivex.functions.Consumer;
* @更新時間: 2021-01-25 9:46 * @更新時間: 2021-01-25 9:46
* @描述: * @描述:
*/ */
public class PrintPaperPlugins { public class PrinterPlugins {
@Nullable @Nullable
static volatile Consumer<? super Throwable> errorHandler; static volatile Consumer<? super Throwable> errorHandler;
...@@ -44,7 +43,7 @@ public class PrintPaperPlugins { ...@@ -44,7 +43,7 @@ public class PrintPaperPlugins {
} }
public static void setErrorHandler(Consumer<? super Throwable> errorHandler) { public static void setErrorHandler(Consumer<? super Throwable> errorHandler) {
PrintPaperPlugins.errorHandler = errorHandler; PrinterPlugins.errorHandler = errorHandler;
} }
public static PrinterFlowListener getOnPrinterFlowHandler() { public static PrinterFlowListener getOnPrinterFlowHandler() {
...@@ -55,6 +54,6 @@ public class PrintPaperPlugins { ...@@ -55,6 +54,6 @@ public class PrintPaperPlugins {
} }
public static void setOnPrinterFlowHandler(PrinterFlowListener onPrinterFlowHandler) { public static void setOnPrinterFlowHandler(PrinterFlowListener onPrinterFlowHandler) {
PrintPaperPlugins.onPrinterFlowHandler = onPrinterFlowHandler; PrinterPlugins.onPrinterFlowHandler = onPrinterFlowHandler;
} }
} }
...@@ -23,6 +23,7 @@ import com.gingersoft.gsa.cloud.common.constans.AppConstans ...@@ -23,6 +23,7 @@ import com.gingersoft.gsa.cloud.common.constans.AppConstans
import com.gingersoft.gsa.cloud.common.constans.HttpsConstans import com.gingersoft.gsa.cloud.common.constans.HttpsConstans
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
import com.gingersoft.gsa.cloud.common.core.user.UserContext import com.gingersoft.gsa.cloud.common.core.user.UserContext
import com.gingersoft.gsa.cloud.common.logan.LoganManager
import com.gingersoft.gsa.cloud.common.utils.SoundPoolUtils import com.gingersoft.gsa.cloud.common.utils.SoundPoolUtils
import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
...@@ -41,6 +42,7 @@ import java.util.concurrent.TimeUnit ...@@ -41,6 +42,7 @@ import java.util.concurrent.TimeUnit
class GetInfoUpdateService : Service() { class GetInfoUpdateService : Service() {
private val TAG = "heart" private val TAG = "heart"
/** /**
* 心跳检测时间 * 心跳检测时间
*/ */
...@@ -86,7 +88,6 @@ class GetInfoUpdateService : Service() { ...@@ -86,7 +88,6 @@ class GetInfoUpdateService : Service() {
} }
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
Log.d(TAG, "onStartCommand()")
// 在API11之后构建Notification的方式 // 在API11之后构建Notification的方式
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
createNotificationChannel() createNotificationChannel()
...@@ -102,7 +103,7 @@ class GetInfoUpdateService : Service() { ...@@ -102,7 +103,7 @@ class GetInfoUpdateService : Service() {
*/ */
@RequiresApi(Build.VERSION_CODES.O) @RequiresApi(Build.VERSION_CODES.O)
fun createNotificationChannel() { fun createNotificationChannel() {
if(!UserContext.newInstance().isLogin){ if (!UserContext.newInstance().isLogin) {
stopSelf() stopSelf()
return return
} }
...@@ -152,14 +153,14 @@ class GetInfoUpdateService : Service() { ...@@ -152,14 +153,14 @@ class GetInfoUpdateService : Service() {
inner class MyBind : Binder() { inner class MyBind : Binder() {
lateinit var block: (isShow: Boolean) -> Unit lateinit var block: (isShow: Boolean) -> Unit
var jumpActivity: Class<*>? = null var jumpActivity: Class<*>? = null
set(value) { set(value) {
field = value field = value
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
createNotificationChannel() createNotificationChannel()
} else { } else {
startNotification() startNotification()
}
} }
}
fun setOnPostCallBack(postCallBack: PostCallBack?) { fun setOnPostCallBack(postCallBack: PostCallBack?) {
this@GetInfoUpdateService.postCallBack = postCallBack this@GetInfoUpdateService.postCallBack = postCallBack
...@@ -358,10 +359,12 @@ class GetInfoUpdateService : Service() { ...@@ -358,10 +359,12 @@ class GetInfoUpdateService : Service() {
loginfo.append(":") loginfo.append(":")
loginfo.append(content) loginfo.append(content)
loginfo.append("\n") loginfo.append("\n")
LoganManager.w_network(TAG + " -> " + content);
} }
var mIntervalDisposable: Disposable? = null var mIntervalDisposable: Disposable? = null
var timerDisposable: Disposable? = null var timerDisposable: Disposable? = null
/** /**
* 执行定时任务 * 执行定时任务
*/ */
......
...@@ -66,23 +66,32 @@ public class FileUtils { ...@@ -66,23 +66,32 @@ public class FileUtils {
/** /**
* 打印前圖片存儲路徑 * 打印前圖片存儲路徑
*/ */
public final static class PrinterImagePath { // public final static class PrinterImagePath {
//Prj圖片文件最大文件大小不能超過100M // //Prj圖片文件最大文件大小不能超過100M
public static final int PRINTER_MAX_FILE_SIZE = 100 * 1024 * 1024; // public static final int PRINTER_MAX_FILE_SIZE = 100 * 1024 * 1024;
//Prj最少保留文件大小 // //Prj最少保留文件大小
public static final int PRINTER_KEEP_FILE_SIZE = 20 * 1024 * 1024; // public static final int PRINTER_KEEP_FILE_SIZE = 20 * 1024 * 1024;
//
public static String PrinterImagesRootPath = "PrinterImages"; // public static String PrinterImagesRootPath = "PrinterImages";
public static String KitchenImage = "KitchenPrj"; // public static String KitchenImage = "KitchenImages";
public static String OrderImage = "OrderImage"; // public static String PrintOrderImage = "PrintOrderImages";
public static String BillImage = "BillImage"; // public static String BillImage = "BillImages";
public static String ServingPaperImage = "ServingPaperImage"; // public static String ServingPaperImage = "ServingPaperImages";
public final static String ROOT_PATH = ALBUM_PATH + PrinterImagesRootPath + File.separator; // public static String DeliveryPrintOrderImage = "DeliveryPrintOrderImages";
public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage + File.separator; // public static String DeliveryBillImage = "DeliveryBillImages";
public final static String ORDER_IMAGE_PATH = ROOT_PATH + OrderImage + File.separator; // public static String QrcodeImage = "QrcodeImages";
public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage + File.separator; // public static String SettlementImage = "SettlementImages";
public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage + File.separator; //
} // public final static String ROOT_PATH = ALBUM_PATH + PrinterImagesRootPath + File.separator;
// public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage + File.separator;
// public final static String PRINT_ORDER_IMAGE_PATH = ROOT_PATH + PrintOrderImage + File.separator;
// public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage + File.separator;
// public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage + File.separator;
// public final static String DELIVERY_PRINT_ORDER_IMAGE_PATH = ROOT_PATH + DeliveryPrintOrderImage + File.separator;
// public final static String DELIVERY_BILL_IMAGE_PATH = ROOT_PATH + DeliveryBillImage + File.separator;
// public final static String QRCODE_IMAGE_PATH = ROOT_PATH + QrcodeImage + File.separator;
// public final static String SETTLEMENT_IMAGE_PATH = ROOT_PATH + SettlementImage + File.separator;
// }
public final static String FILE_EXTENSION_SEPARATOR = "."; public final static String FILE_EXTENSION_SEPARATOR = ".";
......
...@@ -69,27 +69,21 @@ public class PrintExecutor { ...@@ -69,27 +69,21 @@ public class PrintExecutor {
return prepare; return prepare;
} }
} }
LoganManager.w_printer(TAG,"PrintTask doRequest holder.sendData(data) ------------------------------->");
return holder.sendData(data); return holder.sendData(data);
} else { } else {
holder.onPrinterStateChanged(PrintSocketHolder.STATE_0); holder.onPrinterStateChanged(PrintSocketHolder.STATE_0);
List<byte[]> data = maker.getPrintData(); List<byte[]> data = maker.getPrintData();
prjIds = maker.getPrjIds(); prjIds = maker.getPrjIds();
if (holder.isSocketPrepared()) { if (holder.isSocketPrepared()) {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) --------------连接打印机完成----------------->");
if (sendData(data)) { if (sendData(data)) {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) -------------打印成功------------------>");
return PrintSocketHolder.ERROR_0; return PrintSocketHolder.ERROR_0;
} else { } else {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) -------------打印失败------------------>");
return PrintSocketHolder.ERROR_100; return PrintSocketHolder.ERROR_100;
} }
} else { } else {
if (prepareSocket() && sendData(data)) { if (prepareSocket() && sendData(data)) {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) -------------打印成功------------------>");
return PrintSocketHolder.ERROR_0; return PrintSocketHolder.ERROR_0;
} else { } else {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) -------------打印失败------------------>");
return PrintSocketHolder.ERROR_100; return PrintSocketHolder.ERROR_100;
} }
} }
...@@ -200,13 +194,11 @@ public class PrintExecutor { ...@@ -200,13 +194,11 @@ public class PrintExecutor {
@Override @Override
protected void onPreExecute() { protected void onPreExecute() {
super.onPreExecute(); super.onPreExecute();
LoganManager.w_printer(TAG,"PrintTask onPreExecute");
holder.setOnStateChangedListener(this); holder.setOnStateChangedListener(this);
} }
@Override @Override
protected Integer doInBackground(PrintDataMaker... makers) { protected Integer doInBackground(PrintDataMaker... makers) {
LoganManager.w_printer(TAG,"PrintTask doInBackground makers.length:" + makers.length);
if (makers == null || makers.length < 1) { if (makers == null || makers.length < 1) {
return PrintSocketHolder.ERROR_0; return PrintSocketHolder.ERROR_0;
} }
...@@ -216,7 +208,6 @@ public class PrintExecutor { ...@@ -216,7 +208,6 @@ public class PrintExecutor {
@Override @Override
protected void onProgressUpdate(Integer... values) { protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values); super.onProgressUpdate(values);
LoganManager.w_printer(TAG,"PrintTask onProgressUpdate values:" + values);
if (values == null || values.length < 1) { if (values == null || values.length < 1) {
return; return;
} }
...@@ -228,7 +219,6 @@ public class PrintExecutor { ...@@ -228,7 +219,6 @@ public class PrintExecutor {
@Override @Override
protected void onPostExecute(Integer integer) { protected void onPostExecute(Integer integer) {
super.onPostExecute(integer); super.onPostExecute(integer);
LoganManager.w_printer(TAG,"PrintTask onPostExecute values:" + integer);
if (integer != null) { if (integer != null) {
onResult(integer); onResult(integer);
} }
...@@ -241,21 +231,36 @@ public class PrintExecutor { ...@@ -241,21 +231,36 @@ public class PrintExecutor {
*/ */
private void onResult(int errorCode) { private void onResult(int errorCode) {
try { try {
LoganManager.w_printer(TAG,"PrintTask onResult errorCode:" + errorCode); if (mListener != null) {
if (mListener != null)
mListener.onResult(errorCode, holder.getPrinterDeviceBean()); mListener.onResult(errorCode, holder.getPrinterDeviceBean());
}
if (onPrjPrintResultListener != null) { if (onPrjPrintResultListener != null) {
onPrjPrintResultListener.onResult(errorCode, prjIds); onPrjPrintResultListener.onResult(errorCode, prjIds);
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
LoganManager.w_printer(TAG,"PrintTask onResult Exception:" + e.getMessage());
} }
} }
@Override @Override
public void onStateChanged(int state, PrinterDeviceBean printerDeviceBean) { public void onStateChanged(int state, PrinterDeviceBean printerDeviceBean) {
LoganManager.w_printer(TAG,"PrintTaskonStateChanged state: " + state); switch (state) {
case PrintSocketHolder.STATE_0:
LoganManager.w_printer(TAG, "打印機狀態 --> 生成页面数据" );
break;
case PrintSocketHolder.STATE_1:
LoganManager.w_printer(TAG, "打印機狀態 --> 创建Socket连接" );
break;
case PrintSocketHolder.STATE_2:
LoganManager.w_printer(TAG, "打印機狀態 --> 获取输出流" );
break;
case PrintSocketHolder.STATE_3:
LoganManager.w_printer(TAG, "打印機狀態 --> 写入页面数据" );
break;
case PrintSocketHolder.STATE_4:
LoganManager.w_printer(TAG, "打印機狀態 --> 关闭输出流" );
break;
}
publishProgress(state); publishProgress(state);
} }
} }
......
...@@ -22,6 +22,7 @@ import android.bluetooth.BluetoothSocket; ...@@ -22,6 +22,7 @@ import android.bluetooth.BluetoothSocket;
import com.elvishew.xlog.XLog; import com.elvishew.xlog.XLog;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans; import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import java.io.IOException; import java.io.IOException;
...@@ -53,8 +54,8 @@ public class PrintSocketHolder { ...@@ -53,8 +54,8 @@ public class PrintSocketHolder {
public static final int ERROR_4 = -4;// 写入测试页面数据失败 public static final int ERROR_4 = -4;// 写入测试页面数据失败
public static final int ERROR_5 = -5;// 必要参数不能为空 public static final int ERROR_5 = -5;// 必要参数不能为空
public static final int ERROR_6 = -6;// 关闭Socket出错 public static final int ERROR_6 = -6;// 关闭Socket出错
public static final int ERROR_100 = -100;// 失败 public static final int ERROR_100 = -100;// 失败
private static final UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");//蓝牙打印UUID private static final UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");//蓝牙打印UUID
// private String ip; // private String ip;
// private int port = 9100; // private int port = 9100;
...@@ -79,15 +80,16 @@ public class PrintSocketHolder { ...@@ -79,15 +80,16 @@ public class PrintSocketHolder {
return ERROR_5; return ERROR_5;
try { try {
if (mDevice != null) { if (mDevice != null) {
PrinterPlugins.getOnPrinterFlowHandler().connectionBefore("藍牙打印機", printerDeviceBean.getIp(), printerDeviceBean.getPort(), 0, 0);
bluetoothSocket = mDevice.createRfcommSocketToServiceRecord(uuid); bluetoothSocket = mDevice.createRfcommSocketToServiceRecord(uuid);
bluetoothSocket.connect(); bluetoothSocket.connect();
} else { } else {
PrinterPlugins.getOnPrinterFlowHandler().connectionBefore("網絡打印機", printerDeviceBean.getIp(), printerDeviceBean.getPort(), PrintConstans.SO_TIMEOUT, PrintConstans.PRINT_TIMEOUT);
socket = new Socket(); socket = new Socket();
InetSocketAddress socketAddress = new InetSocketAddress(printerDeviceBean.getIp(), printerDeviceBean.getPort()); InetSocketAddress socketAddress = new InetSocketAddress(printerDeviceBean.getIp(), printerDeviceBean.getPort());
//设置 超时时间 //设置超时时间
socket.setSoTimeout(PrintConstans.SO_TIMEOUT); socket.setSoTimeout(PrintConstans.SO_TIMEOUT);
socket.connect(socketAddress, PrintConstans.PRINT_TIMEOUT);//开始连接ip socket.connect(socketAddress, PrintConstans.PRINT_TIMEOUT);//开始连接ip
// Log.e("eee", "連接狀態:" + socket.isConnected());
} }
} catch (Exception e) { } catch (Exception e) {
closeSocket(); closeSocket();
...@@ -113,20 +115,21 @@ public class PrintSocketHolder { ...@@ -113,20 +115,21 @@ public class PrintSocketHolder {
} }
public boolean isSocketPrepared() { public boolean isSocketPrepared() {
return (bluetoothSocket != null || socket != null) && out != null; boolean isPrepared = (bluetoothSocket != null || socket != null) && out != null;
return isPrepared;
} }
public int sendData(List<byte[]> data) { public int sendData(List<byte[]> data) {
onPrinterStateChanged(STATE_3); onPrinterStateChanged(STATE_3);
LoganManager.w_printer(TAG,"PrintSocketHolder sendData ----------准备往打印机写入数据-------->"); if (data == null || data.size() <= 0) {
if (data == null || data.size() <= 0)
return ERROR_0; return ERROR_0;
}
for (byte[] item : data) { for (byte[] item : data) {
try { try {
out.write(item); out.write(item);
out.flush(); out.flush();
} catch (IOException e) { } catch (IOException e) {
LoganManager.w_printer(TAG,"PrintSocketHolder sendData !!!!!!!!打印异常!!!!!!!! IOException: " + e.getMessage()); LoganManager.w_printer(TAG, "-->打印异常: " + e.getMessage());
closeSocket(); closeSocket();
return ERROR_4; return ERROR_4;
} }
...@@ -162,13 +165,17 @@ public class PrintSocketHolder { ...@@ -162,13 +165,17 @@ public class PrintSocketHolder {
} }
public int prepareSocket() { public int prepareSocket() {
LoganManager.w_printer(TAG,"PrintTask doRequest sendData(data) --------------准备尝试连接打印机----------------->"); LoganManager.w_printer(TAG, "-->准备尝试连接打印机");
int create = createSocket(); int create = createSocket();
if (create != PrintSocketHolder.ERROR_0) { if (create != PrintSocketHolder.ERROR_0) {
return create; return create;
} }
int result = getOutputStream(); int result = getOutputStream();
LoganManager.w_printer(TAG,"PrintSocketHolder prepareSocket--------------连接打印机结果----------------->" + (result == ERROR_0 ? "成功" : "失败")); if (result == ERROR_0) {
PrinterPlugins.getOnPrinterFlowHandler().connectionSuccess();
} else {
PrinterPlugins.getOnPrinterFlowHandler().connectionError(new Exception("失敗"));
}
return result; return result;
} }
...@@ -176,7 +183,7 @@ public class PrintSocketHolder { ...@@ -176,7 +183,7 @@ public class PrintSocketHolder {
* 销毁 * 销毁
*/ */
public int closeSocket() { public int closeSocket() {
LoganManager.w_printer(TAG,"PrintSocketHolder closeSocket ----------关闭打印机连接-------->"); LoganManager.w_printer(TAG, "-->準備关闭打印机连接");
onPrinterStateChanged(STATE_4); onPrinterStateChanged(STATE_4);
boolean error = false; boolean error = false;
try { try {
...@@ -185,7 +192,7 @@ public class PrintSocketHolder { ...@@ -185,7 +192,7 @@ public class PrintSocketHolder {
out = null; out = null;
} }
} catch (IOException e) { } catch (IOException e) {
LoganManager.w_printer(TAG,"PrintSocketHolder closeSocket out----------关闭打印机连接异常-------->"); LoganManager.w_printer(TAG, "-->关闭打印机连接异常");
out = null; out = null;
error = true; error = true;
} }
...@@ -195,7 +202,7 @@ public class PrintSocketHolder { ...@@ -195,7 +202,7 @@ public class PrintSocketHolder {
socket = null; socket = null;
} }
} catch (IOException e) { } catch (IOException e) {
LoganManager.w_printer(TAG,"PrintSocketHolder closeSocket socket----------关闭打印机连接异常-------->"); LoganManager.w_printer(TAG, "-->关闭打印机连接异常");
socket = null; socket = null;
error = true; error = true;
} }
...@@ -205,10 +212,11 @@ public class PrintSocketHolder { ...@@ -205,10 +212,11 @@ public class PrintSocketHolder {
bluetoothSocket = null; bluetoothSocket = null;
} }
} catch (IOException e) { } catch (IOException e) {
LoganManager.w_printer(TAG,"PrintSocketHolder closeSocket bluetoothSocket----------关闭打印机连接异常-------->"); LoganManager.w_printer(TAG, "-->关闭打印机连接异常");
bluetoothSocket = null; bluetoothSocket = null;
error = true; error = true;
} }
PrinterPlugins.getOnPrinterFlowHandler().disconnect();
return error ? ERROR_6 : ERROR_0; return error ? ERROR_6 : ERROR_0;
} }
...@@ -241,7 +249,6 @@ public class PrintSocketHolder { ...@@ -241,7 +249,6 @@ public class PrintSocketHolder {
// return port; // return port;
// } // }
public PrinterDeviceBean getPrinterDeviceBean() { public PrinterDeviceBean getPrinterDeviceBean() {
return printerDeviceBean; return printerDeviceBean;
} }
......
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