Commit cd3c227f by Wyh

9.16 1、改為凍鏈接單 2、打印prj加上頁數 3、預約單數量和配置

Signed-off-by: Wyh <1239658231>
parent 2ceb6509
<manifest package="com.gingersoft.gsa.cloud.base"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.VIBRATE" />
<application
android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
......
......@@ -34,10 +34,10 @@ public class RestaurantExpandInfoUtils {
MoneyUtil.ItemDecimals = expandInfo.getValueInt();
}
if (expandInfo.getSettingName().equals(ExpandConstant.MergeSendFood)) {
GsaCloudApplication.androidSetting.setMergeSendFood(expandInfo.getValueInt() == 1?true:false);
GsaCloudApplication.androidSetting.setMergeSendFood(expandInfo.getValueInt() == 1);
}
if (expandInfo.getSettingName().equals(ExpandConstant.AutoPrinterParper)) {
GsaCloudApplication.androidSetting.setAutoPrinterParper(expandInfo.getValueInt() == 1 ? true:false);
if (expandInfo.getSettingName().equals(ExpandConstant.AutoPrinterPaper)) {
GsaCloudApplication.androidSetting.setAutoPrinterParper(expandInfo.getValueInt() == 1);
}
}
}
......
......@@ -9,11 +9,18 @@ public class ExpandConstant {
public final static String OrderReceivingTimeout = "OrderReceivingTimeout";//外送接單超時時間
public final static String PrintMemberInfo = "PrintMemberInfo";//是否打印會員信息
public final static String PrintPage = "PrintPage";//是否打印頁數
public final static String PrintMergerFood = "PrintMergerFood";//是否合併食品
public final static String PrintStatisticsAmount = "PrintStatisticsAmount";//統計打印數
public final static String PrintFirstOrder = "PrintFirstOrder";//是否打印頭單
public final static String Rounding = "Rounding";
public final static String RoundingDecimal = "RoundingDecimal";
public final static String ItemDecimals = "ItemDecimals";
public final static String MergeSendFood = "MergeSendFood";
public final static String AutoPrinterParper = "AutoPrinterParper";
public final static String AutoPrinterPaper = "AutoPrinterParper";
......
......@@ -20,7 +20,6 @@ package com.gingersoft.gsa.cloud.print;
* ESC-POS Commands
* Created by Alex on 2017/11/1.
*/
@SuppressWarnings({"WeakerAccess", "unused"})
public class PrintCommands {
private static final byte DLE = 16;
......
......@@ -16,10 +16,8 @@
package com.gingersoft.gsa.cloud.print;
import android.annotation.SuppressLint;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.util.Log;
import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
......@@ -70,7 +68,6 @@ public class PrintSocketHolder {
setIp(printerDeviceBean);
}
@SuppressLint("MissingPermission")
public int createSocket() {
onPrinterStateChanged(STATE_1);
if (mDevice == null && (printerDeviceBean == null || printerDeviceBean.getIp() == null))
......
package com.gingersoft.gsa.cloud.print.newprint;
import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
public class ConnectPrintUtil {
/**
* volatile关键字: 保持内存的可见性--所有线程都能获取的共享内存的最新状态
* volatile的作用:每次读取前必须先从主存刷新最新的值,每次写入后必须立即同步回主存当中
*/
private static volatile ConnectPrintUtil connectPrintUtil;
private ConnectPrintUtil() {
}
public static ConnectPrintUtil getInstance() {
if (connectPrintUtil == null) {
synchronized (ConnectPrintUtil.class) {
if (connectPrintUtil == null) {
connectPrintUtil = new ConnectPrintUtil();
}
}
}
return connectPrintUtil;
}
private Map<String, Socket> socketMap = new HashMap<>();
private PrintStatesChangeListener mPrintStatesChangeListener;
private PrintMessageBean printMessageBean;
public ConnectPrintUtil setPrintStatesChangeListener(PrintStatesChangeListener printStatesChangeListener) {
mPrintStatesChangeListener = printStatesChangeListener;
return connectPrintUtil;
}
public ConnectPrintUtil connect(String ip) {
return connect(ip, 9100);
}
public ConnectPrintUtil connect(String ip, int port) {
setState(PrintSocketHolder.STATE_1, "");
Socket socket = socketMap.get(ip);
if (socket != null && socket.isConnected()) {
setState(PrintSocketHolder.STATE_1, "");
} else {
socket = new Socket();//ip, port
InetSocketAddress socketAddress = new InetSocketAddress(ip, port);
//设置 超时时间
try {
socket.setSoTimeout(PrintConstans.SO_TIMEOUT);
socket.connect(socketAddress, PrintConstans.PRINT_TIMEOUT);//开始连接ip
socketMap.put(ip, socket);
} catch (IOException e) {
socketMap.remove(ip);
setState(PrintSocketHolder.ERROR_1, "連接失敗" + e.getMessage());
e.printStackTrace();
}
}
return connectPrintUtil;
}
private void setState(int code, String msg) {
if (mPrintStatesChangeListener != null) {
if (printMessageBean == null) {
printMessageBean = new PrintMessageBean(code, msg);
}
mPrintStatesChangeListener.onStateChange(printMessageBean);
}
}
}
package com.gingersoft.gsa.cloud.print.newprint;
import lombok.Data;
@Data
public class PrintMessageBean {
public PrintMessageBean(int code, String msg) {
this.code = code;
this.msg = msg;
}
private int code;
private String msg;
}
package com.gingersoft.gsa.cloud.print.newprint;
public interface PrintStatesChangeListener {
void onStateChange(PrintMessageBean printMessageBean);
}
package com.gingersoft.gsa.cloud.print.newprint;
import android.bluetooth.BluetoothDevice;
import android.os.AsyncTask;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.PrintDataMaker;
import com.gingersoft.gsa.cloud.print.PrintExecutor;
import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
import java.util.List;
public class PrintUtil {
private PrintSocketHolder holder;
private int mReconnectTimes = 0;
private int time = 0;
private String prjIds;
private PrintSocketHolder.OnStateChangedListener listener;
private PrintExecutor.OnPrintResultListener mListener;
private PrintExecutor.OnPrjPrintResultListener onPrjPrintResultListener;
public PrintUtil() {
// holder = new PrintSocketHolder(printerDeviceBean);
}
/**
* 执行打印请求
*
* @return 错误代码
*/
private int doRequest(PrintDataMaker maker) {
if (mReconnectTimes == 0) {
holder.onPrinterStateChanged(PrintSocketHolder.STATE_0);
List<byte[]> data = maker.getPrintData();
prjIds = maker.getPrjIds();
if (!holder.isSocketPrepared()) {
int prepare = holder.prepareSocket();
if (prepare != PrintSocketHolder.ERROR_0)
return prepare;
}
return holder.sendData(data);
} else {
holder.onPrinterStateChanged(PrintSocketHolder.STATE_0);
List<byte[]> data = maker.getPrintData();
prjIds = maker.getPrjIds();
if (holder.isSocketPrepared()) {
if (sendData(data))
return PrintSocketHolder.ERROR_0;
else
return PrintSocketHolder.ERROR_100;
} else {
if (prepareSocket() && sendData(data)) {
return PrintSocketHolder.ERROR_0;
} else {
return PrintSocketHolder.ERROR_100;
}
}
}
}
/**
* 执行打印请求
*
* @return 错误代码
*/
public int doPrinterRequest(PrintDataMaker maker) {
holder.setOnStateChangedListener(listener);
return doRequest(maker);
}
private boolean prepareSocket() {
time++;
return time < mReconnectTimes &&
(holder.prepareSocket() == PrintSocketHolder.ERROR_0 || prepareSocket());
}
private boolean sendData(List<byte[]> data) {
if (holder.sendData(data) == PrintSocketHolder.ERROR_0) {
time = 0;
return true;
} else {
return prepareSocket() && sendData(data);
}
}
/**
* 异步执行打印请求
*/
public void doPrinterRequestAsync(PrintDataMaker maker) {
// new PrintExecutor.PrintTask().execute(maker);
}
/**
* 销毁
*/
public int closeSocket() {
return holder.closeSocket();
}
/**
* 设置IP及端口
*/
public void setIp(PrinterDeviceBean printerDeviceBean) {
holder.setIp(printerDeviceBean);
}
/**
* 设置蓝牙
*
* @param device 设备
*/
public void setDevice(BluetoothDevice device) {
holder.setDevice(device);
}
/**
* 设置状态监听
*
* @param listener 监听
*/
public void setOnStateChangedListener(PrintSocketHolder.OnStateChangedListener listener) {
this.listener = listener;
}
/**
* 设置重连次数
*
* @param times 次数
*/
public void setReconnectTimes(int times) {
mReconnectTimes = times;
}
/**
* 设置结果回调
*
* @param listener 回调
*/
public void setOnPrintResultListener(PrintExecutor.OnPrintResultListener listener) {
this.mListener = listener;
}
public interface OnPrintResultListener {
void onResult(int errorCode, PrinterDeviceBean printerDeviceBean);
}
/**
* PRJ打印結果回調
*/
public interface OnPrjPrintResultListener {
void onResult(int errorCode, String ids);
}
public void setOnPrjPrintResultListener(PrintExecutor.OnPrjPrintResultListener onPrjPrintResultListener) {
this.onPrjPrintResultListener = onPrjPrintResultListener;
}
private class PrintTask extends AsyncTask<PrintDataMaker, Integer, Integer> implements
PrintSocketHolder.OnStateChangedListener {
@Override
protected void onPreExecute() {
super.onPreExecute();
holder.setOnStateChangedListener(this);
}
@Override
protected Integer doInBackground(PrintDataMaker... makers) {
if (makers == null || makers.length < 1)
return PrintSocketHolder.ERROR_0;
return doRequest(makers[0]);
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
if (values == null || values.length < 1)
return;
if (listener != null)
listener.onStateChanged(values[0], holder.getPrinterDeviceBean());
}
@Override
protected void onPostExecute(Integer integer) {
super.onPostExecute(integer);
if (integer != null) {
onResult(integer);
}
}
/**
* 打印结果
*
* @param errorCode 错误代码
*/
private void onResult(int errorCode) {
try {
if (mListener != null)
mListener.onResult(errorCode, holder.getPrinterDeviceBean());
if (onPrjPrintResultListener != null) {
onPrjPrintResultListener.onResult(errorCode, prjIds);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onStateChanged(int state, PrinterDeviceBean printerDeviceBean) {
publishProgress(state);
}
}
}
......@@ -111,6 +111,10 @@ class GetInfoUpdateService : Service() {
*/
@RequiresApi(Build.VERSION_CODES.O)
fun createNotificationChannel() {
if(!GsaCloudApplication.isLogin){
stopSelf()
return
}
//设定的通知渠道名称
val channelName = "New Order Notification"
//设置通知的重要程度
......@@ -121,6 +125,7 @@ class GetInfoUpdateService : Service() {
//向系统注册通知渠道,注册后不能改变重要性以及其他通知行为
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.createNotificationChannel(channel)
notificationManager.cancelAll()
startNotification()
}
......
......@@ -341,7 +341,7 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre
@Override
public void initTopBar() {
topBar.setTitle("鏈接單");
topBar.setTitle("鏈接單");
topBar.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener(v -> killMyself());
topBar.addRightImageButton(R.drawable.icon_topbar_overflow, R.id.topbar_right_change_button).setOnClickListener(v -> {
if (pop == null) {
......
......@@ -14,6 +14,7 @@ class OrderList {
var count: Int = 0
var page: PageBean? = null
var data: List<DataBean>? = null
val statistics: StatisticsBean? = null
class PageBean {
/**
......@@ -99,6 +100,8 @@ class OrderList {
var typeDayOrderNum: Int = 0
}
}
class StatisticsBean(val reservationConfigTime: Int, val reservationNumber: Int, val immediateNumber: Int)
}
......
......@@ -76,7 +76,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
var appointmentType = MutableLiveData(0) //0為即時單,1為預約單
var instantOrderNum = MutableLiveData(0) //即時單單數
var bookingOrderNum = MutableLiveData(0) //預約單單數
var bookingConfigTime = MutableLiveData<Int>()//預約單配置時間
var addServiceChargeBean = MutableLiveData<AddServiceChargeBean>()
/**
......@@ -169,6 +169,11 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}
private fun OrderList.loadInfo(isLoadMore: Boolean, position: Int) {
getData()?.statistics?.let {
bookingOrderNum.value = it.reservationNumber
instantOrderNum.value = it.immediateNumber
}
if (getData() != null && getData()?.data != null) {
val myData: ArrayList<OrderList.DataBeanX.DataBean> = getData()?.data as ArrayList<OrderList.DataBeanX.DataBean>
if (myData.isNotEmpty()) {
......
......@@ -146,6 +146,10 @@ class DeliveryOrderMainActivity : BaseActivity() {
tv_booking_order_num.visibility = View.VISIBLE
tv_booking_order_num.text = it.toString()
})
bookingConfigTime.observe(this@DeliveryOrderMainActivity, Observer {
tv_booking_order.text = "預約單($it)"
})
}
}
......
......@@ -103,6 +103,8 @@ class OtherOrdersAdapter(var context: Context, var outTime: Int) : Adapter<Other
data.STATUS == 8 -> {
state = "待製作"
bg.setColor(getColor(R.color.order_state4_color))
holder.flBorder.visibility = View.VISIBLE//顯示邊框
alphaAnimator(holder.flBorder)
}
data.STATUS == 3 -> {
state = if (data.order_type == 7) {
......@@ -162,6 +164,7 @@ class OtherOrdersAdapter(var context: Context, var outTime: Int) : Adapter<Other
}
private fun alphaAnimator(view: View) {
view.clearAnimation()
val animatorSet = AnimatorSet()
val ofFloat = ofFloat(view, "alpha", 0f, 1f)
ofFloat.duration = 200
......
......@@ -11,7 +11,6 @@ import com.gingersoft.gsa.cloud.base.utils.other.TextUtil
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import com.gingersoft.gsa.delivery_pick_mode.R
import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel
import com.gingersoft.gsa.delivery_pick_mode.ui.activity.DeliveryOrderMainActivity
import com.gingersoft.gsa.delivery_pick_mode.ui.activity.OrderDetailsActivity
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.OtherOrdersAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.base.BaseFragment
......@@ -55,15 +54,6 @@ class PlaceholderFragment : BaseFragment(R.layout.fragment_other_order) {
refresh_layout.finishRefresh()
refresh_layout.finishLoadMore()
if(activity is DeliveryOrderMainActivity && (activity as DeliveryOrderMainActivity).selectPosition == position){
if (position <= 1 && pageViewModel.appointmentType.value == 1) {
//預約單
pageViewModel.bookingOrderNum.value = it.size
} else {
pageViewModel.instantOrderNum.value = it.size
}
}
it?.let {
layout_nodata.setState(it.size <= 0)
adapter.setData(it)
......
<resources>
<string name="app_name">訂單管理</string>
<string name="app_name">外送/自取</string>
</resources>
package com.gingersoft.gsa.cloud.download.mvp.model.downmanager;
import android.content.Context;
import com.gingersoft.gsa.cloud.base.threadPool.ThreadPoolManager;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.download.mvp.presenter.DownloadPresenter;
import com.jess.arms.utils.ArmsUtils;
import java.net.URLEncoder;
import java.util.List;
import io.reactivex.Observer;
......
......@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
......@@ -11,7 +10,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
......@@ -62,7 +60,7 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im
TextView tvNowServer;
private int[] rbIds = new int[]{R.id.rb_server_hk, R.id.rb_server_formal, R.id.rb_youchang, R.id.rb_shiwei, R.id.rb_shishu};
private int selectIndex;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerSwitchServerComponent //如找不到该类,请编译一下项目
......@@ -84,14 +82,14 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im
tvNowServer.setText("當前服務器:" + nowServer);
((RadioButton) radioGroup.getChildAt(HttpsConstans.isFormal)).setChecked(true);
radioGroup.setOnCheckedChangeListener((group, checkedId) -> {
SPUtils.put(mContext, "isFormal", group.indexOfChild(findViewById(checkedId)));
ToastUtils.show(mContext, "已切換環境,下次重啟生效");
});
radioGroup.setOnCheckedChangeListener((group, checkedId) -> selectIndex = group.indexOfChild(findViewById(checkedId)));
switchServer.setOnClickListener(v -> {
GsaCloudApplication.isLogin = false;
GsaCloudApplication.clearMemberInfo();
System.exit(0);
SPUtils.put(mContext, "isFormal", selectIndex);
GsaCloudApplication.logOut();
ToastUtils.show(mContext, "已切換環境,重啟生效" + selectIndex);
GsaCloudApplication.initDomainUrl();
finish();
startActivity(new Intent(mContext, LoginActivity.class));
});
}
......
......@@ -164,8 +164,8 @@ public class RestaurantQrCodeActivity extends BaseActivity<QrCodePresenter> impl
}
if (dataBean.getFreezingService() == 1) {
tabs.add("鏈");
views.add(getQrCodeView("鏈", dataBean.getFreezingServiceUrl()));
tabs.add("鏈");
views.add(getQrCodeView("鏈", dataBean.getFreezingServiceUrl()));
}
initTab();
}
......
......@@ -34,10 +34,8 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.threadPool.ThreadPoolManager;
import com.gingersoft.gsa.cloud.base.utils.AidlUtil;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.view.BitmapUtil;
import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils;
import com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils;
import com.gingersoft.gsa.cloud.base.utils.view.QRCodeUtil;
......@@ -619,6 +617,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
TextView tvNowPoint = view.findViewById(R.id.tv_print_model_nowPoints);//現在的積分
TextView tvAddPoints = view.findViewById(R.id.tv_print_model_addPoints);//本次添加積分
TextView tvOldPoints = view.findViewById(R.id.tv_print_model_oldPoints);//之前的積分
if (data.getAddPoints() != 0 || data.getOldPoints() != 0 || data.getAddPoints() != 0) {
tvAddPoints.setText("本次積分:" + data.getAddPoints());
tvNowPoint.setText("結餘積分:" + data.getNowPoints());
......@@ -630,6 +629,8 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
if (data.getPHONE() != null && data.getPHONE().length() > 0) {
tvMemberPhone.setText("會員電話:" + getReplaceAfter(data.getPHONE()));
}
} else {
view.setVisibility(View.GONE);
}
return view;
}
......
......@@ -319,6 +319,7 @@ public class PrjService extends Service implements ReceiveListener {
printDatas.clear();
listMap.clear();
currentIndex = 1;
totalPrj = 0;
PrjBean prjBean = JsonUtils.parseObject(json, PrjBean.class);
if (prjBean == null || prjBean.getData() == null) {
return;
......
......@@ -134,6 +134,14 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
printerInIt.setPrintListener(this);
}
initPrintConfig();
// new Thread(new Runnable() {
// @Override
// public void run() {
// Handler handler = new Handler(Looper.getMainLooper());
// handler.sendMessage()
// }
// });
}
private int selectPrint = -1;
......
package com.joe.print.mvp.ui.activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
......@@ -15,120 +14,18 @@ import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.PrintExecutor;
import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
import com.joe.print.R;
import com.joe.print.mvp.model.bean.PrintInfoBean;
import com.joe.print.mvp.print.PrintTest;
import com.joe.print.mvp.print.common.PrinterFinderCallback;
import com.joe.print.mvp.print.common.SendCallback;
import com.joe.print.mvp.print.common.SendResultCode;
import com.joe.print.mvp.print.usb.UsbPrint;
import com.joe.print.mvp.print.usb.UsbPrinter;
import com.joe.print.mvp.print.usb.UsbPrinterFinder;
import java.util.ArrayList;
import java.util.List;
public class PrintTestActivity extends AppCompatActivity implements PrintSocketHolder.OnStateChangedListener, PrintExecutor.OnPrintResultListener, ReceiveListener {
private int lineLength = 24;//一行42個
private int LEFT_TEXT_LENGTH = 8;
private String json = "{\n" +
" \"success\":true,\n" +
" \"sysTime\":1595414257771,\n" +
" \"data\":[\n" +
" {\n" +
" \"MEMBER_NAME\":\"\",\n" +
" \"delivery_man_phone_num\":\"\",\n" +
" \"payTime\":\"2020-07-21 12:04:26.0\",\n" +
" \"discount_amount\":0,\n" +
" \"PHONE\":\"13825748837\",\n" +
" \"memberTypeId\":32,\n" +
" \"orderPayType\":1,\n" +
" \"orderStatus\":2,\n" +
" \"ORDER_NO\":\"26200123048322822\",\n" +
" \"remark\":\"\",\n" +
" \"pid\":0,\n" +
" \"addressDetail\":\"香港長沙灣長沙灣道长沙湾政府合署你\",\n" +
" \"payType\":5,\n" +
" \"DELIVERY_CHARGE\":10,\n" +
" \"SEND_TIME\":\"盡快送達 預計 13:04-13:29\",\n" +
" \"sendMobile\":\"\",\n" +
" \"ID\":11116180,\n" +
" \"CREATE_TIME\":\"2020-07-21 12:04:26.0\",\n" +
" \"takeFoodCode\":\"0633\",\n" +
" \"billNo\":\"\",\n" +
" \"RECEIVER\":\"xu 先生\",\n" +
" \"Order_ID\":11116180,\n" +
" \"NUMBER\":1,\n" +
" \"PRICE\":29.29,\n" +
" \"delivery_man_name\":\"\",\n" +
" \"Lunchbox\":3,\n" +
" \"PRODUCT_NAME\":[\n" +
" {\n" +
" \"odsId\":\"48864514\",\n" +
" \"PRICE\":\"29.3\",\n" +
" \"num\":\"1\",\n" +
" \"pid\":\"0\",\n" +
" \"PRODUCT_NAME\":\"精選牛肉asdfh sdfjabs sdf sdfsafasf\",\n" +
" \"child\":[\n" +
" {\n" +
" \"odsId\":\"48864515\",\n" +
" \"PRICE\":\"0.0\",\n" +
" \"num\":\"1\",\n" +
" \"pid\":\"48864514\",\n" +
" \"PRODUCT_NAME\":\"甜品asdf sdafadf sadfaf\",\n" +
" \"child\":[\n" +
" {\n" +
" \"odsId\":\"48864516\",\n" +
" \"PRICE\":\"10.0\",\n" +
" \"num\":\"1\",\n" +
" \"pid\":\"48864515\",\n" +
" \"PRODUCT_NAME\":\"默認細項1asfdsdfa\"\n" +
" },\n" +
" {\n" +
" \"odsId\":\"48864517\",\n" +
" \"PRICE\":\"10.0\",\n" +
" \"num\":\"1\",\n" +
" \"pid\":\"48864515\",\n" +
" \"PRODUCT_NAME\":\"默認細項2asfasf asdfa\"\n" +
" },\n" +
" {\n" +
" \"odsId\":\"48864518\",\n" +
" \"PRICE\":\"1.0\",\n" +
" \"num\":\"1\",\n" +
" \"pid\":\"48864515\",\n" +
" \"PRODUCT_NAME\":\"細項默認1\"\n" +
" },\n" +
" {\n" +
" \"odsId\":\"48864519\",\n" +
" \"PRICE\":\"1.0\",\n" +
" \"num\":\"1\",\n" +
" \"pid\":\"48864515\",\n" +
" \"PRODUCT_NAME\":\"細項默認3\"\n" +
" }\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"odsId\":\"48864520\",\n" +
" \"PRICE\":\"0.0\",\n" +
" \"num\":\"1\",\n" +
" \"pid\":\"48864514\",\n" +
" \"PRODUCT_NAME\":\"雞飯(四客)\"\n" +
" }\n" +
" ]\n" +
" }\n" +
" ],\n" +
" \"odsId\":48864514,\n" +
" \"order_from\":7,\n" +
" \"sender\":\"\",\n" +
" \"PAY_AMOUNT\":64.3,\n" +
" \"levelName1\":\"GS基本用戶\",\n" +
" \"TOTAL_AMOUNT\":\"64.3\",\n" +
" \"status\":2\n" +
" }\n" +
" ]\n" +
"}";
private UsbPrint usbPrint;
private List<UsbPrinter> usbPrinters;
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -138,31 +35,9 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
UsbPrinterFinder printerFinder = new UsbPrinterFinder(this, printerFinderCallback);
printerFinder.startFinder();
List<PrintInfoBean> printInfoBeans = new ArrayList<>();
printInfoBeans.add(new PrintInfoBean(new String[]{"EnglishEnglishEnglish"}, new Double[]{2d},new String[]{"en"}));
printInfoBeans.add(new PrintInfoBean(new String[]{"日語伐採に加えて"}, new Double[]{2d}, new String[]{"ja"}));
printInfoBeans.add(new PrintInfoBean(new String[]{"简体字简体字简体字"}, new Double[]{2d}, new String[]{"cn"}));
printInfoBeans.add(new PrintInfoBean(new String[]{"繁体字繁体字繁体字"}, new Double[]{2d}, new String[]{"tw"}));
printInfoBeans.add(new PrintInfoBean(new String[]{"한국어.한국어.한국어."}, new Double[]{2d}, new String[]{"ko"}));
printInfoBeans.add(new PrintInfoBean(new String[]{"ภาษาไทยภาษาไทย"}, new Double[]{2d}, new String[]{"th"}));
printInfoBeans.add(new PrintInfoBean(new String[]{"ViệtNameViệtName"}, new Double[]{2d}, new String[]{"vi"}));
printInfoBeans.add(new PrintInfoBean(new String[]{"\n\n\nEnglishに加えて简体字繁体字한국어ภาษาไทยViệtName"}, new Double[]{2d}, new String[]{"multi"}));
PrinterDeviceBean printerDeviceBean = new PrinterDeviceBean();
printerDeviceBean.setIp("192.168.1.203");
printerDeviceBean.setPort(9100);
Bitmap bitmap = new PrintTest().getTestPrintBitmap(this, printerDeviceBean);
findViewById(R.id.btn_test).setOnClickListener(view -> {
//打印測試
// PrintExecutor executor = new PrintExecutor(printerDeviceBean);
// executor.setOnStateChangedListener(stateChangedListener);
// executor.setOnPrintResultListener(resultListener);
// TestPrintMaker maker = new TestPrintMaker(printInfoBeans);
// executor.doPrinterRequestAsync(maker);
// EpsonPrint mPrinter = new EpsonPrint();
// mPrinter.initializeObject(GsaCloudApplication.getAppContext(), this);
// mPrinter.putPrintString(ed_ip.getText().toString(), 42, printInfoBeans, this);
});
}
......@@ -199,7 +74,6 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
@Override
public void onFinished(List<UsbPrinter> printers) {
ToastUtils.show(PrintTestActivity.this, "printCount = " + printers.size());
usbPrinters = printers;
Log.d(TAG, "printCount = " + printers.size());
// listAdapter.replaceDatas(usbPrinters);
}
......
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