Commit d77dea18 by 王宇航

廚房單打印切紙

parent a1cd212f
......@@ -2,15 +2,15 @@ apply plugin: 'groovy'
dependencies {
compile gradleApi()
compile localGroovy()
implementation gradleApi()
implementation localGroovy()
}
repositories {
mavenCentral()
}
dependencies {
compile 'com.android.tools.build:gradle:3.5.3'
implementation 'com.android.tools.build:gradle:3.5.3'
}
ext {
......
......@@ -90,7 +90,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
* 3:廚房單
*/
private int type = -1;
private Bitmap bitmap;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
......@@ -110,66 +109,42 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
public void initData(@Nullable Bundle savedInstanceState) {
type = CCUtil.getNavigateParam(this, "type", 1001);
if (type == 0) {
//上菜紙
bitmap = PrintUtils.getPrintBitmap(mContext, MyOrderManage.getInstance().getNewFoodList());
} 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 {
List<Bitmap> bitmaps = PrintUtils.getPrintBitmap(mContext, type);
if (bitmaps.size() <= 0) {
ToastUtils.show(mContext, "打印失敗");
finish();
return;
}
selectDialog = new DialogUtils(mContext, R.layout.print_dialog_select_device) {
@Override
public void initLayout(ViewHepler hepler, Dialog dialog) {
dialogCount++;
hepler.setViewClick(R.id.local_print, v -> {
locationPrint();
});
hepler.setViewClick(R.id.internet_print, v -> {
//IP打印
if (PrinterManager.getPrinterManager().getDeviceBeans() != null
&& PrinterManager.getPrinterManager().getDeviceBeans().size() > 0) {
//如果本地保存有打印設備
showPrinterList();
} else {
//網絡獲取打印設備
mPresenter.getPrinterList(GsaCloudApplication.getRestaurantId(mContext));
}
});
}
}.createDialogView().show().setOnDismissListener(this);
for (int i = 0; i < bitmaps.size(); i++) {
locationPrint(bitmaps.get(i));
}
// selectDialog = new DialogUtils(mContext, R.layout.print_dialog_select_device) {
// @Override
// public void initLayout(ViewHepler hepler, Dialog dialog) {
// dialogCount++;
// hepler.setViewClick(R.id.local_print, v -> {
// locationPrint(bitmap);
// });
// hepler.setViewClick(R.id.internet_print, v -> {
// //IP打印
// if (PrinterManager.getPrinterManager().getDeviceBeans() != null
// && PrinterManager.getPrinterManager().getDeviceBeans().size() > 0) {
// //如果本地保存有打印設備
// showPrinterList();
// } else {
// //網絡獲取打印設備
// mPresenter.getPrinterList(GsaCloudApplication.getRestaurantId(mContext));
// }
// });
// }
// }.createDialogView().show().setOnDismissListener(this);
}
/**
* 本地打印
*/
private void locationPrint() {
private void locationPrint(Bitmap bitmap) {
//本機打印
if (bitmap == null) {
ToastUtils.show(mContext, "未獲取到打印內容");
......
......@@ -6,6 +6,7 @@ import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter;
import com.gingersoft.gsa.cloud.base.adapter.print.BillTypeAdapter;
......@@ -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.OpenTableManage;
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.LayoutToBitmapUtils;
import com.gingersoft.gsa.cloud.database.bean.Food;
......@@ -26,7 +28,10 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
......@@ -37,6 +42,59 @@ import androidx.recyclerview.widget.RecyclerView;
*/
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) {
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