Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
supplier
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王宇航
supplier
Commits
d77dea18
Commit
d77dea18
authored
Feb 22, 2020
by
王宇航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
廚房單打印切紙
parent
a1cd212f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
88 additions
and
55 deletions
+88
-55
cc-register/build.gradle
+3
-3
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
+27
-52
public-base/src/main/java/com/gingersoft/gsa/cloud/base/utils/PrintUtils.java
+58
-0
No files found.
cc-register/build.gradle
View file @
d77dea18
...
...
@@ -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
{
...
...
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
View file @
d77dea18
...
...
@@ -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
,
"未獲取到打印內容"
);
...
...
public-base/src/main/java/com/gingersoft/gsa/cloud/base/utils/PrintUtils.java
View file @
d77dea18
...
...
@@ -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
());
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment