Commit d77dea18 by 王宇航

廚房單打印切紙

parent a1cd212f
...@@ -2,15 +2,15 @@ apply plugin: 'groovy' ...@@ -2,15 +2,15 @@ apply plugin: 'groovy'
dependencies { dependencies {
compile gradleApi() implementation gradleApi()
compile localGroovy() implementation localGroovy()
} }
repositories { repositories {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
compile 'com.android.tools.build:gradle:3.5.3' implementation 'com.android.tools.build:gradle:3.5.3'
} }
ext { ext {
......
...@@ -90,7 +90,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -90,7 +90,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
* 3:廚房單 * 3:廚房單
*/ */
private int type = -1; private int type = -1;
private Bitmap bitmap;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
...@@ -110,66 +109,42 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -110,66 +109,42 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
type = CCUtil.getNavigateParam(this, "type", 1001); type = CCUtil.getNavigateParam(this, "type", 1001);
if (type == 0) {
//上菜紙 List<Bitmap> bitmaps = PrintUtils.getPrintBitmap(mContext, type);
bitmap = PrintUtils.getPrintBitmap(mContext, MyOrderManage.getInstance().getNewFoodList()); if (bitmaps.size() <= 0) {
} else if (type == 1) {
//印單
bitmap = PrintUtils.getPrintBitmap(mContext);
} else if (type == 2) {
//結賬單
bitmap = PrintUtils.getPrintBillBitmap(mContext);
} else if (type == 3) {
//廚房單,需要切紙
List<OrderDetail> orderDetails = MyOrderManage.getInstance().getNewFoodList();
if (orderDetails != null) {
Map<String, List<OrderDetail>> map = new HashMap<>();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
map = orderDetails.stream().collect(Collectors.groupingBy(OrderDetail::getPrintseting));
} else {
for (int i = 0; i < orderDetails.size(); i++) {
}
}
bitmap = PrintUtils.getKitChenPrintBitmap(mContext, MyOrderManage.getInstance().getNewFoodList());
} else {
ToastUtils.show(mContext, "食品列表為空,打印失敗");
finish();
}
} else {
ToastUtils.show(mContext, "打印失敗"); ToastUtils.show(mContext, "打印失敗");
finish(); finish();
return; return;
} }
for (int i = 0; i < bitmaps.size(); i++) {
locationPrint(bitmaps.get(i));
selectDialog = new DialogUtils(mContext, R.layout.print_dialog_select_device) { }
// selectDialog = new DialogUtils(mContext, R.layout.print_dialog_select_device) {
@Override // @Override
public void initLayout(ViewHepler hepler, Dialog dialog) { // public void initLayout(ViewHepler hepler, Dialog dialog) {
dialogCount++; // dialogCount++;
hepler.setViewClick(R.id.local_print, v -> { // hepler.setViewClick(R.id.local_print, v -> {
locationPrint(); // locationPrint(bitmap);
}); // });
hepler.setViewClick(R.id.internet_print, v -> { // hepler.setViewClick(R.id.internet_print, v -> {
//IP打印 // //IP打印
if (PrinterManager.getPrinterManager().getDeviceBeans() != null // if (PrinterManager.getPrinterManager().getDeviceBeans() != null
&& PrinterManager.getPrinterManager().getDeviceBeans().size() > 0) { // && PrinterManager.getPrinterManager().getDeviceBeans().size() > 0) {
//如果本地保存有打印設備 // //如果本地保存有打印設備
showPrinterList(); // showPrinterList();
} else { // } else {
//網絡獲取打印設備 // //網絡獲取打印設備
mPresenter.getPrinterList(GsaCloudApplication.getRestaurantId(mContext)); // mPresenter.getPrinterList(GsaCloudApplication.getRestaurantId(mContext));
} // }
}); // });
} // }
}.createDialogView().show().setOnDismissListener(this); // }.createDialogView().show().setOnDismissListener(this);
} }
/** /**
* 本地打印 * 本地打印
*/ */
private void locationPrint() { private void locationPrint(Bitmap bitmap) {
//本機打印 //本機打印
if (bitmap == null) { if (bitmap == null) {
ToastUtils.show(mContext, "未獲取到打印內容"); ToastUtils.show(mContext, "未獲取到打印內容");
......
...@@ -6,6 +6,7 @@ import android.view.View; ...@@ -6,6 +6,7 @@ import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter; import com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter;
import com.gingersoft.gsa.cloud.base.adapter.print.BillTypeAdapter; import com.gingersoft.gsa.cloud.base.adapter.print.BillTypeAdapter;
...@@ -18,6 +19,7 @@ import com.gingersoft.gsa.cloud.base.common.bean.TableBean; ...@@ -18,6 +19,7 @@ import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils; 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.LayoutToBitmapUtils;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
...@@ -26,7 +28,10 @@ import java.math.BigDecimal; ...@@ -26,7 +28,10 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
...@@ -37,6 +42,59 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -37,6 +42,59 @@ import androidx.recyclerview.widget.RecyclerView;
*/ */
public class PrintUtils { public class PrintUtils {
public static List<Bitmap> getPrintBitmap(Context mContext, int type) {
List<Bitmap> bitmaps = new ArrayList<>();
if (type == 0) {
//上菜紙
bitmaps.add(PrintUtils.getPrintBitmap(mContext, MyOrderManage.getInstance().getNewFoodList()));
} else if (type == 1) {
//印單
bitmaps.add(PrintUtils.getPrintBitmap(mContext));
} else if (type == 2) {
//結賬單
bitmaps.add(PrintUtils.getPrintBillBitmap(mContext));
} else if (type == 3) {
//廚房單,需要切紙
List<OrderDetail> orderDetails = MyOrderManage.getInstance().getNewFoodList();
if (orderDetails != null) {
//將所有送單的食品通過打印位置分組,不同的打印位置在不同的打印紙上。
Map<String, List<OrderDetail>> map = new HashMap<>();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
map = orderDetails.stream().collect(Collectors.groupingBy(OrderDetail::getPrintseting));
} else {
for (OrderDetail orderDetail : orderDetails) {
if (map.containsKey(orderDetail.getPrintseting())) {
map.get(orderDetail.getPrintseting()).add(orderDetail);
} else {
List<OrderDetail> orderDetailList = new ArrayList<>();
orderDetailList.add(orderDetail);
map.put(orderDetail.getPrintseting(), orderDetailList);
}
}
}
//通過打印位置生成多張用於打印的bitmap
for (Map.Entry<String, List<OrderDetail>> entry : map.entrySet()) {
String key = entry.getKey();
if (key.contains("*")) {
//如果帶*號,這個集合就需要切紙,每個食品都需要單獨在一張廚房單上
for (OrderDetail orderDetail : entry.getValue()) {
List<OrderDetail> orders = new ArrayList<>();//這裡new集合是應為下面的方法需要的參數是list集合
orders.add(orderDetail);
bitmaps.add(PrintUtils.getKitChenPrintBitmap(mContext, orders));
}
} else {
//不帶*號,所有同樣廚房位置的食品都在一張紙上
bitmaps.add(PrintUtils.getKitChenPrintBitmap(mContext, entry.getValue()));
}
}
}
}
return bitmaps;
}
public static Bitmap getPrintBitmap(Context context) { public static Bitmap getPrintBitmap(Context context) {
return getPrintBitmap(context, MyOrderManage.getInstance().getOrderFoodList()); return getPrintBitmap(context, MyOrderManage.getInstance().getOrderFoodList());
} }
......
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