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
9d9f4fd6
Commit
9d9f4fd6
authored
Jul 25, 2020
by
Wyh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
7.25 修改打印邏輯,USB打印調通,打印機加上預設值
Signed-off-by: Wyh <1239658231>
parent
01a85f27
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
746 additions
and
242 deletions
+746
-242
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/OrderBean.java
+63
-1
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/OrderDetail.java
+54
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/database/bean/Food.java
+0
-1
base-module/src/main/java/com/gingersoft/gsa/cloud/database/greendao/DaoMaster.java
+3
-3
base-module/src/main/java/com/gingersoft/gsa/cloud/database/greendao/DaoSession.java
+14
-14
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/model/viewModel/PageViewModel.kt
+3
-1
print-module/src/main/java/com/joe/print/mvp/presenter/PrinterAddPresenter.java
+2
-2
print-module/src/main/java/com/joe/print/mvp/print/PrintSlip.java
+3
-4
print-module/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
+97
-59
print-module/src/main/java/com/joe/print/mvp/print/service/PrjService.java
+13
-2
print-module/src/main/java/com/joe/print/mvp/print/usb/EscCommand.java
+21
-0
print-module/src/main/java/com/joe/print/mvp/print/usb/UsbPrint.java
+25
-16
print-module/src/main/java/com/joe/print/mvp/print/usb/UsbPrinterFinder.java
+0
-2
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
+41
-29
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintTestActivity.java
+39
-0
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrinterAddActivity.java
+183
-53
print-module/src/main/java/com/joe/print/mvp/ui/adapter/DialogPrinterListAdapter.java
+7
-1
print-module/src/main/java/com/joe/print/mvp/ui/adapter/PrinterListAdapter.java
+5
-0
print-module/src/main/java/com/joe/print/mvp/ui/fragment/LocalPrintFragment.java
+12
-26
print-module/src/main/res/layout/fragment_local_print.xml
+0
-22
print-module/src/main/res/layout/printer_activity_add.xml
+158
-2
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
+3
-4
No files found.
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/OrderBean.java
View file @
9d9f4fd6
...
...
@@ -187,6 +187,10 @@ public class OrderBean {
*/
private
String
printSetIng
;
/**
* 廚房單打印主項
*/
private
long
ktPrintMainItem
;
/**
* 是否参与折扣#0:不參與;1:參與;
*/
private
long
ablediscount
;
...
...
@@ -194,7 +198,22 @@ public class OrderBean {
private
Long
discountId
;
/**折扣實體*/
private
RestaurantDiscountVO
restaurantDiscountVO
;
/**
* 0=系統顏色, 1=黑色, 2=紅色
*/
private
long
printFont
;
/**
* 當金額=0時, 是否打印在帳單上
*/
private
long
printToBill
;
/**
* 0食品清单打印 账单打印//1食品清单不打印 账单不打印//2食品清单打印 账单不打印//3食品清单不打印 账单打印
*/
private
long
printTo
;
/**
* 是否打印价格
*/
private
long
ktShowPrice
;
/**
* 自定義字段
*/
...
...
@@ -204,6 +223,9 @@ public class OrderBean {
private
long
topId
;
private
long
memberId
;
public
OrderDetailsBean
()
{
}
...
...
@@ -323,6 +345,14 @@ public class OrderBean {
this
.
printSetIng
=
printSetIng
;
}
public
long
getKtPrintMainItem
()
{
return
ktPrintMainItem
;
}
public
void
setKtPrintMainItem
(
long
ktPrintMainItem
)
{
this
.
ktPrintMainItem
=
ktPrintMainItem
;
}
public
long
getAblediscount
()
{
return
ablediscount
;
}
...
...
@@ -347,6 +377,38 @@ public class OrderBean {
this
.
topId
=
topId
;
}
public
long
getPrintFont
()
{
return
printFont
;
}
public
void
setPrintFont
(
long
printFont
)
{
this
.
printFont
=
printFont
;
}
public
long
getPrintToBill
()
{
return
printToBill
;
}
public
void
setPrintToBill
(
long
printToBill
)
{
this
.
printToBill
=
printToBill
;
}
public
long
getPrintTo
()
{
return
printTo
;
}
public
void
setPrintTo
(
long
printTo
)
{
this
.
printTo
=
printTo
;
}
public
long
getKtShowPrice
()
{
return
ktShowPrice
;
}
public
void
setKtShowPrice
(
long
ktShowPrice
)
{
this
.
ktShowPrice
=
ktShowPrice
;
}
public
RestaurantDiscountVO
getRestaurantDiscountVO
()
{
return
restaurantDiscountVO
;
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/OrderDetail.java
View file @
9d9f4fd6
...
...
@@ -206,6 +206,23 @@ public class OrderDetail implements Serializable {
* 廚房單打印主項
*/
private
long
ktPrintMainItem
;
/**
* 0=系統顏色, 1=黑色, 2=紅色
*/
private
long
printFont
;
/**
* 當金額=0時, 是否打印在帳單上
*/
private
long
printToBill
;
/**
* 0食品清单打印 账单打印//1食品清单不打印 账单不打印//2食品清单打印 账单不打印//3食品清单不打印 账单打印
*/
private
long
printTo
;
/**
* 是否打印价格
*/
private
long
ktShowPrice
;
public
OrderDetail
()
{
}
...
...
@@ -625,6 +642,38 @@ public class OrderDetail implements Serializable {
this
.
currentMaxNumber
=
currentMaxNumber
;
}
public
long
getPrintFont
()
{
return
printFont
;
}
public
void
setPrintFont
(
long
printFont
)
{
this
.
printFont
=
printFont
;
}
public
long
getPrintToBill
()
{
return
printToBill
;
}
public
void
setPrintToBill
(
long
printToBill
)
{
this
.
printToBill
=
printToBill
;
}
public
long
getPrintTo
()
{
return
printTo
;
}
public
void
setPrintTo
(
long
printTo
)
{
this
.
printTo
=
printTo
;
}
public
long
getKtShowPrice
()
{
return
ktShowPrice
;
}
public
void
setKtShowPrice
(
long
ktShowPrice
)
{
this
.
ktShowPrice
=
ktShowPrice
;
}
/**
* 已送單食品轉換
*
...
...
@@ -653,6 +702,11 @@ public class OrderDetail implements Serializable {
orderDetail
.
setVisible
(
orderDetailsBean
.
getStatus
()
==
0
);
orderDetail
.
setPrintseting
(
orderDetailsBean
.
getPrintSetIng
());
// orderDetail.setAutomod(foods.getAutomod());
orderDetail
.
setKtPrintMainItem
(
orderDetailsBean
.
getKtPrintMainItem
());
orderDetail
.
setPrintFont
(
orderDetailsBean
.
getPrintFont
());
orderDetail
.
setPrintToBill
(
orderDetailsBean
.
getPrintToBill
());
orderDetail
.
setPrintTo
(
orderDetail
.
getPrintTo
());
orderDetail
.
setKtShowPrice
(
orderDetail
.
getKtShowPrice
());
orderDetail
.
setIsfood
(
orderDetailsBean
.
getType
()
==
FOOD_TYPE
);
orderDetail
.
setNew
(
false
);
orderDetail
.
setType
(
orderDetailsBean
.
getType
());
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/database/bean/Food.java
View file @
9d9f4fd6
...
...
@@ -305,7 +305,6 @@ public class Food {
@Property
(
nameInDb
=
"FID"
)
@Id
(
autoincrement
=
true
)
private
Long
id
;
/**
* 上級ID (如0=最高級)
*/
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/database/greendao/DaoMaster.java
View file @
9d9f4fd6
...
...
@@ -28,10 +28,10 @@ public class DaoMaster extends AbstractDaoMaster {
FoodComboDao
.
createTable
(
db
,
ifNotExists
);
FoodModifierDao
.
createTable
(
db
,
ifNotExists
);
FunctionDao
.
createTable
(
db
,
ifNotExists
);
LanguageDao
.
createTable
(
db
,
ifNotExists
);
ModifierDao
.
createTable
(
db
,
ifNotExists
);
PrinterDeviceBeanDao
.
createTable
(
db
,
ifNotExists
);
PrintModelBeanDao
.
createTable
(
db
,
ifNotExists
);
LanguageDao
.
createTable
(
db
,
ifNotExists
);
PrintCurrencyBeanDao
.
createTable
(
db
,
ifNotExists
);
}
...
...
@@ -44,10 +44,10 @@ public class DaoMaster extends AbstractDaoMaster {
FoodComboDao
.
dropTable
(
db
,
ifExists
);
FoodModifierDao
.
dropTable
(
db
,
ifExists
);
FunctionDao
.
dropTable
(
db
,
ifExists
);
LanguageDao
.
dropTable
(
db
,
ifExists
);
ModifierDao
.
dropTable
(
db
,
ifExists
);
PrinterDeviceBeanDao
.
dropTable
(
db
,
ifExists
);
PrintModelBeanDao
.
dropTable
(
db
,
ifExists
);
LanguageDao
.
dropTable
(
db
,
ifExists
);
PrintCurrencyBeanDao
.
dropTable
(
db
,
ifExists
);
}
...
...
@@ -74,10 +74,10 @@ public class DaoMaster extends AbstractDaoMaster {
registerDaoClass
(
FoodComboDao
.
class
);
registerDaoClass
(
FoodModifierDao
.
class
);
registerDaoClass
(
FunctionDao
.
class
);
registerDaoClass
(
LanguageDao
.
class
);
registerDaoClass
(
ModifierDao
.
class
);
registerDaoClass
(
PrinterDeviceBeanDao
.
class
);
registerDaoClass
(
PrintModelBeanDao
.
class
);
registerDaoClass
(
LanguageDao
.
class
);
registerDaoClass
(
PrintCurrencyBeanDao
.
class
);
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/database/greendao/DaoSession.java
View file @
9d9f4fd6
...
...
@@ -15,10 +15,10 @@ import com.gingersoft.gsa.cloud.database.bean.Food;
import
com.gingersoft.gsa.cloud.database.bean.FoodCombo
;
import
com.gingersoft.gsa.cloud.database.bean.FoodModifier
;
import
com.gingersoft.gsa.cloud.database.bean.Function
;
import
com.gingersoft.gsa.cloud.database.bean.Language
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.database.bean.PrintModelBean
;
import
com.gingersoft.gsa.cloud.database.bean.Language
;
import
com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean
;
import
com.gingersoft.gsa.cloud.database.greendao.ComboItemDao
;
...
...
@@ -28,10 +28,10 @@ import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import
com.gingersoft.gsa.cloud.database.greendao.FoodComboDao
;
import
com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao
;
import
com.gingersoft.gsa.cloud.database.greendao.FunctionDao
;
import
com.gingersoft.gsa.cloud.database.greendao.LanguageDao
;
import
com.gingersoft.gsa.cloud.database.greendao.ModifierDao
;
import
com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao
;
import
com.gingersoft.gsa.cloud.database.greendao.PrintModelBeanDao
;
import
com.gingersoft.gsa.cloud.database.greendao.LanguageDao
;
import
com.gingersoft.gsa.cloud.database.greendao.PrintCurrencyBeanDao
;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
...
...
@@ -50,10 +50,10 @@ public class DaoSession extends AbstractDaoSession {
private
final
DaoConfig
foodComboDaoConfig
;
private
final
DaoConfig
foodModifierDaoConfig
;
private
final
DaoConfig
functionDaoConfig
;
private
final
DaoConfig
languageDaoConfig
;
private
final
DaoConfig
modifierDaoConfig
;
private
final
DaoConfig
printerDeviceBeanDaoConfig
;
private
final
DaoConfig
printModelBeanDaoConfig
;
private
final
DaoConfig
languageDaoConfig
;
private
final
DaoConfig
printCurrencyBeanDaoConfig
;
private
final
ComboItemDao
comboItemDao
;
...
...
@@ -63,10 +63,10 @@ public class DaoSession extends AbstractDaoSession {
private
final
FoodComboDao
foodComboDao
;
private
final
FoodModifierDao
foodModifierDao
;
private
final
FunctionDao
functionDao
;
private
final
LanguageDao
languageDao
;
private
final
ModifierDao
modifierDao
;
private
final
PrinterDeviceBeanDao
printerDeviceBeanDao
;
private
final
PrintModelBeanDao
printModelBeanDao
;
private
final
LanguageDao
languageDao
;
private
final
PrintCurrencyBeanDao
printCurrencyBeanDao
;
public
DaoSession
(
Database
db
,
IdentityScopeType
type
,
Map
<
Class
<?
extends
AbstractDao
<?,
?>>,
DaoConfig
>
...
...
@@ -94,9 +94,6 @@ public class DaoSession extends AbstractDaoSession {
functionDaoConfig
=
daoConfigMap
.
get
(
FunctionDao
.
class
).
clone
();
functionDaoConfig
.
initIdentityScope
(
type
);
languageDaoConfig
=
daoConfigMap
.
get
(
LanguageDao
.
class
).
clone
();
languageDaoConfig
.
initIdentityScope
(
type
);
modifierDaoConfig
=
daoConfigMap
.
get
(
ModifierDao
.
class
).
clone
();
modifierDaoConfig
.
initIdentityScope
(
type
);
...
...
@@ -106,6 +103,9 @@ public class DaoSession extends AbstractDaoSession {
printModelBeanDaoConfig
=
daoConfigMap
.
get
(
PrintModelBeanDao
.
class
).
clone
();
printModelBeanDaoConfig
.
initIdentityScope
(
type
);
languageDaoConfig
=
daoConfigMap
.
get
(
LanguageDao
.
class
).
clone
();
languageDaoConfig
.
initIdentityScope
(
type
);
printCurrencyBeanDaoConfig
=
daoConfigMap
.
get
(
PrintCurrencyBeanDao
.
class
).
clone
();
printCurrencyBeanDaoConfig
.
initIdentityScope
(
type
);
...
...
@@ -116,10 +116,10 @@ public class DaoSession extends AbstractDaoSession {
foodComboDao
=
new
FoodComboDao
(
foodComboDaoConfig
,
this
);
foodModifierDao
=
new
FoodModifierDao
(
foodModifierDaoConfig
,
this
);
functionDao
=
new
FunctionDao
(
functionDaoConfig
,
this
);
languageDao
=
new
LanguageDao
(
languageDaoConfig
,
this
);
modifierDao
=
new
ModifierDao
(
modifierDaoConfig
,
this
);
printerDeviceBeanDao
=
new
PrinterDeviceBeanDao
(
printerDeviceBeanDaoConfig
,
this
);
printModelBeanDao
=
new
PrintModelBeanDao
(
printModelBeanDaoConfig
,
this
);
languageDao
=
new
LanguageDao
(
languageDaoConfig
,
this
);
printCurrencyBeanDao
=
new
PrintCurrencyBeanDao
(
printCurrencyBeanDaoConfig
,
this
);
registerDao
(
ComboItem
.
class
,
comboItemDao
);
...
...
@@ -129,10 +129,10 @@ public class DaoSession extends AbstractDaoSession {
registerDao
(
FoodCombo
.
class
,
foodComboDao
);
registerDao
(
FoodModifier
.
class
,
foodModifierDao
);
registerDao
(
Function
.
class
,
functionDao
);
registerDao
(
Language
.
class
,
languageDao
);
registerDao
(
Modifier
.
class
,
modifierDao
);
registerDao
(
PrinterDeviceBean
.
class
,
printerDeviceBeanDao
);
registerDao
(
PrintModelBean
.
class
,
printModelBeanDao
);
registerDao
(
Language
.
class
,
languageDao
);
registerDao
(
PrintCurrencyBean
.
class
,
printCurrencyBeanDao
);
}
...
...
@@ -144,10 +144,10 @@ public class DaoSession extends AbstractDaoSession {
foodComboDaoConfig
.
clearIdentityScope
();
foodModifierDaoConfig
.
clearIdentityScope
();
functionDaoConfig
.
clearIdentityScope
();
languageDaoConfig
.
clearIdentityScope
();
modifierDaoConfig
.
clearIdentityScope
();
printerDeviceBeanDaoConfig
.
clearIdentityScope
();
printModelBeanDaoConfig
.
clearIdentityScope
();
languageDaoConfig
.
clearIdentityScope
();
printCurrencyBeanDaoConfig
.
clearIdentityScope
();
}
...
...
@@ -179,10 +179,6 @@ public class DaoSession extends AbstractDaoSession {
return
functionDao
;
}
public
LanguageDao
getLanguageDao
()
{
return
languageDao
;
}
public
ModifierDao
getModifierDao
()
{
return
modifierDao
;
}
...
...
@@ -195,6 +191,10 @@ public class DaoSession extends AbstractDaoSession {
return
printModelBeanDao
;
}
public
LanguageDao
getLanguageDao
()
{
return
languageDao
;
}
public
PrintCurrencyBeanDao
getPrintCurrencyBeanDao
()
{
return
printCurrencyBeanDao
;
}
...
...
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/model/viewModel/PageViewModel.kt
View file @
9d9f4fd6
...
...
@@ -335,6 +335,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
},
{
listener
.
invoke
(
OrderDelivery
,
false
)
it
.
printStackTrace
()
Log
.
e
(
"eee"
,
"gsUpdateOrderStatus報錯:"
+
it
.
message
)
// integralBean.postValue(null)
})
}
...
...
@@ -473,7 +474,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
//調用第三方物流接口
repository
.
thirdDelivery
(
dataBean
.
ID
.
toString
(),
third
).
apply
{
if
(
success
)
{
listener
.
invoke
(
OrderDelivery
,
true
)
//
listener.invoke(OrderDelivery, true)
updateOrderAndPrint
(
restaurantId
,
dataBean
,
status
,
listener
)
}
else
{
listener
.
invoke
(
OrderDelivery
,
false
)
...
...
@@ -529,6 +530,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}
},
{
it
.
printStackTrace
()
Log
.
e
(
"eee"
,
"confirmBtn報錯:"
+
it
.
message
)
})
}
else
{
ToastUtils
.
show
(
context
,
"請至少選擇一個送貨員"
)
...
...
print-module/src/main/java/com/joe/print/mvp/presenter/PrinterAddPresenter.java
View file @
9d9f4fd6
...
...
@@ -149,14 +149,14 @@ public class PrinterAddPresenter extends BasePresenter<PrinterAddContract.Model,
.
add
(
"modifierIsBold"
,
printerDeviceBean
.
getModifierIsBold
()
+
""
)
.
add
(
"modifierFont"
,
printerDeviceBean
.
getModifierFont
()
+
""
)
.
add
(
"modifierIsItalic"
,
printerDeviceBean
.
getModifierIsItalic
()
+
""
)
.
add
(
"numberIsFlip"
,
printerDeviceBean
.
getNumberIsFlip
()
+
""
);
.
add
(
"numberIsFlip"
,
printerDeviceBean
.
getNumberIsFlip
()
+
""
)
.
add
(
"printerDeviceType"
,
printerDeviceBean
.
getPrinterDeviceType
()
+
""
);
if
(
printerDeviceBean
.
getFlyPrinterDeviceId
()
!=
null
)
{
builder
.
add
(
"flyPrinterDeviceId"
,
printerDeviceBean
.
getFlyPrinterDeviceId
()
+
""
);
}
if
(
printerDeviceBean
.
getFlyPrinterDeviceId2
()
!=
null
)
{
builder
.
add
(
"flyPrinterDeviceId2"
,
printerDeviceBean
.
getFlyPrinterDeviceId2
()
+
""
);
}
return
builder
.
build
();
}
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrintSlip.java
View file @
9d9f4fd6
...
...
@@ -18,15 +18,11 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
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.MoneyUtil
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.constans.AppConstans
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.joe.print.R
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -81,6 +77,9 @@ public class PrintSlip extends PrinterRoot {
TextView
line_food_info
=
view
.
findViewById
(
R
.
id
.
line_food_info
);
TableBean
.
DataBean
tableBean
=
OpenTableManage
.
getDefault
().
getTableBean
();
brandName
.
setText
(
GsaCloudApplication
.
getBrandName
(
context
));
restaurantName
.
setText
(
GsaCloudApplication
.
getRestaurantName
(
context
));
tableNum
.
setText
(
tableBean
.
getTableName
());
people
.
setText
(
OpenTableManage
.
getDefault
().
getPeopleNumber
()
+
""
);
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
View file @
9d9f4fd6
...
...
@@ -2,7 +2,9 @@ package com.joe.print.mvp.print;
import
android.app.Dialog
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.graphics.Bitmap
;
import
android.hardware.usb.UsbManager
;
import
android.os.Build
;
import
android.os.IBinder
;
import
android.os.RemoteException
;
...
...
@@ -26,7 +28,6 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import
com.gingersoft.gsa.cloud.base.common.bean.BillingBean
;
import
com.gingersoft.gsa.cloud.base.common.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.common.bean.PayMethod
;
import
com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage
;
import
com.gingersoft.gsa.cloud.base.utils.AidlUtil
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
;
...
...
@@ -37,7 +38,7 @@ import com.gingersoft.gsa.cloud.constans.PrintConstans;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.print.PrintExecutor
;
import
com.gingersoft.gsa.cloud.print.PrintSocketHolder
;
import
com.gingersoft.gsa.cloud.print.PrinterWriter
;
import
com.gingersoft.gsa.cloud.print.PrinterWriter
58mm
;
import
com.hyweb.n5.lib.constant.PrinterConstant
;
import
com.hyweb.n5.lib.util.PrinterUtil
;
import
com.hyweb.n5.server.aidl.IOnPrintCallback
;
...
...
@@ -54,6 +55,7 @@ import com.joe.print.mvp.ui.adapter.DialogPrinterListAdapter;
import
com.sunmi.peripheral.printer.InnerResultCallbcak
;
import
com.yanzhenjie.recyclerview.widget.DefaultItemDecoration
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
...
...
@@ -84,6 +86,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
private
int
printCount
=
1
;
public
static
PrinterRoot
getPrinterByType
(
int
type
)
{
//初始化USB打印
if
(
type
==
PRINT_TEST
)
{
return
new
PrintTest
();
}
else
if
(
type
==
PRINT_SERVE
)
{
...
...
@@ -106,6 +109,13 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
return
null
;
}
public
PrinterRoot
initUsbPrint
()
{
// usbPrint = UsbPrint.getInstance(mContext, sendCallback);
// printerFinder = new UsbPrinterFinder(mContext, printerFinderCallback);
// printerFinder.startFinder();
return
this
;
}
public
PrinterRoot
setmContext
(
Context
mContext
)
{
this
.
mContext
=
mContext
;
return
this
;
...
...
@@ -508,7 +518,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
ipDevicePrint
(
printerDeviceBean
,
bitmaps
,
this
,
this
);
}
p
rotected
Bitmap
zoomBitmap
(
PrinterDeviceBean
printerDeviceBean
,
Bitmap
bitmap
)
{
p
ublic
Bitmap
zoomBitmap
(
PrinterDeviceBean
printerDeviceBean
,
Bitmap
bitmap
)
{
int
printWidth
;
if
(
printerDeviceBean
!=
null
&&
printerDeviceBean
.
getPaperSpecification
()
!=
null
)
{
printWidth
=
Double
.
valueOf
(
printerDeviceBean
.
getPaperSpecification
()).
intValue
();
...
...
@@ -528,40 +538,41 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
public
void
ipDevicePrint
(
PrinterDeviceBean
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
,
PrintSocketHolder
.
OnStateChangedListener
stateChangedListener
,
PrintExecutor
.
OnPrintResultListener
resultListener
)
{
if
(
printerDeviceBean
==
null
)
return
;
int
printWidth
;
//打印出來的內容寬度
if
(
printerDeviceBean
.
getPaperSpecification
()
!=
null
)
{
printWidth
=
Double
.
valueOf
(
printerDeviceBean
.
getPaperSpecification
()).
intValue
();
}
else
{
//如果打印機沒設置寬度
printWidth
=
480
;
printerDeviceBean
.
setPaperSpecification
(
printWidth
+
""
);
}
// if (printerDeviceBean == null)
// return;
// int printWidth;//打印出來的內容寬度
// if (printerDeviceBean.getPaperSpecification() != null) {
// printWidth = Double.valueOf(printerDeviceBean.getPaperSpecification()).intValue();
// } else {
// //如果打印機沒設置寬度
// printWidth = 480;
// printerDeviceBean.setPaperSpecification(printWidth + "");
// }
//獲取打印機機型,如果是EPSON的打印機,調用EPSON的打印方法
if
((
printerDeviceBean
.
getPrinterName
()
!=
null
&&
printerDeviceBean
.
getPrinterName
().
toLowerCase
().
contains
(
"EPSON"
.
toLowerCase
()))
&&
(
printerDeviceBean
.
getModel
()
!=
null
&&
printerDeviceBean
.
getModel
().
toLowerCase
().
contains
(
"TM-U220B"
.
toLowerCase
())))
{
List
<
Bitmap
>
zoomBitmap
=
null
;
if
(
bitmaps
!=
null
)
{
zoomBitmap
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
bitmaps
.
size
();
i
++)
{
if
(
bitmaps
.
get
(
i
)
!=
null
)
{
Bitmap
newBitmap
=
ImageUtils
.
zoomDrawable
(
bitmaps
.
get
(
i
),
printWidth
,
2
d
);
zoomBitmap
.
add
(
newBitmap
);
}
}
}
if
(
zoomBitmap
==
null
)
{
printListener
.
printFile
();
return
;
}
List
<
Bitmap
>
finalZoomBitmap
=
zoomBitmap
;
//
List<Bitmap> zoomBitmap = null;
//
if (bitmaps != null) {
//
zoomBitmap = new ArrayList<>();
//
for (int i = 0; i < bitmaps.size(); i++) {
//
if (bitmaps.get(i) != null) {
//
Bitmap newBitmap = ImageUtils.zoomDrawable(bitmaps.get(i), printWidth, 2d);
//
zoomBitmap.add(newBitmap);
//
}
//
}
//
}
//
if (zoomBitmap == null) {
//
printListener.printFile();
//
return;
//
}
//
List<Bitmap> finalZoomBitmap = zoomBitmap;
mPrinter
=
EpsonPrint
.
getInstance
();
mPrinter
.
initializeObject
(
GsaCloudApplication
.
getAppContext
(),
this
);
new
Thread
(()
->
{
int
state
=
0
;
//0打印失敗,1打印成功,2沒紙
for
(
int
j
=
0
;
j
<
finalZoomBitmap
.
size
();
j
++)
{
state
=
mPrinter
.
putPrintData
(
printerDeviceBean
.
getIp
(),
finalZoomBitmap
.
get
(
j
));
for
(
int
j
=
0
;
j
<
bitmaps
.
size
();
j
++)
{
state
=
mPrinter
.
putPrintData
(
printerDeviceBean
.
getIp
(),
bitmaps
.
get
(
j
));
}
if
(
printListener
!=
null
)
{
if
(
state
==
2
)
{
...
...
@@ -572,64 +583,80 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
}
}).
start
();
}
else
{
List
<
Bitmap
>
zoomBitmap
=
null
;
if
(
bitmaps
!=
null
)
{
zoomBitmap
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
bitmaps
.
size
();
i
++)
{
Bitmap
newBitmap
=
ImageUtils
.
zoomDrawable
(
bitmaps
.
get
(
i
),
printWidth
);
Log
.
e
(
"eee"
,
"寬度:"
+
newBitmap
.
getWidth
()
+
"高度:"
+
newBitmap
.
getHeight
());
zoomBitmap
.
add
(
newBitmap
);
}
}
if
(
zoomBitmap
==
null
)
{
printListener
.
printFile
();
return
;
}
//
List<Bitmap> zoomBitmap = null;
//
if (bitmaps != null) {
//
zoomBitmap = new ArrayList<>();
//
for (int i = 0; i < bitmaps.size(); i++) {
//
Bitmap newBitmap = ImageUtils.zoomDrawable(bitmaps.get(i), printWidth);
//
Log.e("eee", "寬度:" + newBitmap.getWidth() + "高度:" + newBitmap.getHeight());
//
zoomBitmap.add(newBitmap);
//
}
//
}
//
if (zoomBitmap == null) {
//
printListener.printFile();
//
return;
//
}
PrintExecutor
executor
=
new
PrintExecutor
(
printerDeviceBean
);
executor
.
setOnStateChangedListener
(
stateChangedListener
);
executor
.
setOnPrintResultListener
(
resultListener
);
for
(
int
j
=
0
;
j
<
printCount
;
j
++)
{
IpPrintMaker
maker
=
new
IpPrintMaker
(
mContext
,
printWidth
,
zoomBitmap
);
IpPrintMaker
maker
=
new
IpPrintMaker
(
mContext
,
480
,
bitmaps
);
executor
.
doPrinterRequestAsync
(
maker
);
}
}
}
public
void
usbPrint
(
Context
context
,
List
<
Bitmap
>
bitmaps
)
{
UsbPrint
usbPrint
=
UsbPrint
.
getInstance
(
context
,
(
code
,
printId
)
->
{
UsbPrint
usbPrint
=
new
UsbPrint
(
mContext
,
(
code
,
printId
)
->
{
Log
.
e
(
"ddd"
,
printId
+
"打印結果:"
+
code
);
//打印結果
if
(
code
==
SendResultCode
.
SEND_SUCCESS
)
{
Log
.
e
(
"eee"
,
"打印成功"
);
Log
.
e
(
"ddd"
,
"打印成功"
+
(
printListener
==
null
));
if
(
printListener
!=
null
)
{
Log
.
e
(
"ddd"
,
"打印成功"
);
printListener
.
printSuccess
();
}
}
else
if
(
code
==
SendResultCode
.
SEND_FAILED
)
{
Log
.
e
(
"eee"
,
"打印失敗"
);
Log
.
e
(
"ddd"
,
"打印失敗"
+
(
printListener
==
null
));
if
(
printListener
!=
null
)
{
printListener
.
printFile
();
}
}
});
//查找打印機
UsbPrinterFinder
printerFinder
=
new
UsbPrinterFinder
(
context
,
new
PrinterFinderCallback
<
UsbPrinter
>()
{
UsbPrinterFinder
printerFinder
=
new
UsbPrinterFinder
(
mContext
,
new
PrinterFinderCallback
<
UsbPrinter
>()
{
@Override
public
void
onStart
()
{
ToastUtils
.
show
(
context
,
"開始尋找打印機"
);
}
@Override
public
void
onFound
(
UsbPrinter
usbPrinter
)
{
}
@Override
public
void
onFinished
(
List
<
UsbPrinter
>
usbPrinters
)
{
if
(
usbPrinters
!=
null
&&
usbPrinters
.
size
()
>
0
)
{
Log
.
e
(
"ddd"
,
"找到"
+
usbPrinters
.
size
()
+
"台打印機"
);
for
(
Bitmap
bitmap
:
bitmaps
)
{
EscCommand
esc
=
new
EscCommand
();
byte
[]
bytes
=
PrinterWriter
.
decodeBitmapToDataList
(
bitmap
,
255
);
if
(
bytes
!=
null
)
{
esc
.
addArrayToCommand
(
bytes
);
ArrayList
<
byte
[]>
bytes
=
new
ArrayList
<>();
try
{
bytes
.
addAll
(
new
PrinterWriter58mm
().
getImageByte
(
bitmap
));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
esc
.
addCutPaper
();
esc
.
addCleanCache
();
usbPrint
.
sendPrintCommand
(
usbPrinters
.
get
(
0
),
esc
.
getByteArrayCommand
());
bytes
.
add
(
esc
.
getPrintAndFeedLines
((
byte
)
8
));
bytes
.
add
(
esc
.
getCutPaper
());
bytes
.
add
(
esc
.
getCleanCache
());
if
(
usbPrinters
.
size
()
>
0
)
usbPrint
.
sendPrintCommand
(
usbPrinters
.
get
(
0
),
bytes
);
}
}
else
{
boolean
hasPermission
=
new
Intent
().
getBooleanExtra
(
UsbManager
.
EXTRA_PERMISSION_GRANTED
,
false
);
Log
.
e
(
"ddd"
,
"未找到USB打印機"
+
hasPermission
);
ToastUtils
.
show
(
context
,
"未找到USB打印機"
);
printListener
.
printFile
();
}
}
});
...
...
@@ -657,7 +684,10 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
switch
(
errorCode
)
{
case
PrintSocketHolder
.
ERROR_0
:
Log
.
e
(
"eee"
,
"打印成功"
);
cutPrintSize
();
// cutPrintSize();
if
(
printListener
!=
null
)
{
printListener
.
printSuccess
();
}
break
;
case
PrintSocketHolder
.
ERROR_1
:
Log
.
e
(
"eee"
,
"生成測試頁面數據失敗"
);
...
...
@@ -667,7 +697,10 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
case
PrintSocketHolder
.
ERROR_3
:
Log
.
e
(
"eee"
,
"獲取輸出流失敗"
);
printerFileDevices
.
add
(
printerDeviceBean
);
cutPrintSize
();
// cutPrintSize();
if
(
printListener
!=
null
)
{
printListener
.
printFile
();
}
break
;
case
PrintSocketHolder
.
ERROR_4
:
Log
.
e
(
"eee"
,
"寫入測試頁面數據失敗"
);
...
...
@@ -787,6 +820,11 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
}
}
public
void
onDestroy
()
{
// if (printerFinder != null) {
// printerFinder.unregisterReceiver();
// }
}
@Override
public
void
onPtrReceive
(
Printer
printer
,
int
i
,
PrinterStatusInfo
printerStatusInfo
,
String
s
)
{
...
...
@@ -865,7 +903,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
return
rvPayType
;
}
public
View
getAmountText
(
Context
mContext
,
String
text
)
{
public
View
getAmountText
(
Context
mContext
,
String
text
)
{
return
getTextView
(
mContext
,
text
,
Gravity
.
RIGHT
,
mContext
.
getResources
().
getDimensionPixelSize
(
R
.
dimen
.
dp_24
),
ContextCompat
.
getColor
(
mContext
,
R
.
color
.
black
));
}
...
...
print-module/src/main/java/com/joe/print/mvp/print/service/PrjService.java
View file @
9d9f4fd6
...
...
@@ -21,11 +21,10 @@ import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import
com.gingersoft.gsa.cloud.database.utils.PrinterDeviceDaoUtils
;
import
com.gingersoft.gsa.cloud.print.PrintExecutor
;
import
com.gingersoft.gsa.cloud.print.PrintSocketHolder
;
import
com.joe.print.mvp.model.bean.PrintInfoBean
;
import
com.joe.print.mvp.model.bean.PrjBean
;
import
com.joe.print.mvp.print.EpsonPrint
;
import
com.joe.print.mvp.print.PrintPrjKitchen
;
import
com.joe.print.mvp.print.PrinterRoot
;
import
com.joe.print.mvp.print.usb.UsbPrinterFinder
;
import
com.joe.print.mvp.print.utils.MyPrintUtils
;
import
org.json.JSONArray
;
...
...
@@ -62,6 +61,12 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
private
List
<
PrintCurrencyBean
>
printCurrencyBeans
;
//通用打印配置
@Override
public
void
onCreate
()
{
super
.
onCreate
();
initUsbPrint
();
}
@Override
public
int
onStartCommand
(
Intent
intent
,
int
flags
,
int
startId
)
{
Log
.
e
(
"eee"
,
"開啟打印服務"
);
getPrintList
();
...
...
@@ -70,6 +75,12 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
return
super
.
onStartCommand
(
intent
,
flags
,
startId
);
}
public
void
initUsbPrint
()
{
//開啟監聽USB連接
UsbPrinterFinder
printerFinder
=
new
UsbPrinterFinder
(
this
,
null
);
printerFinder
.
startFinder
();
}
private
void
getPrintList
()
{
if
(
printerDeviceBeans
==
null
||
printerDeviceBeans
.
size
()
==
0
)
{
PrinterDeviceDaoUtils
printerDeviceDaoUtils
=
new
PrinterDeviceDaoUtils
(
this
);
...
...
print-module/src/main/java/com/joe/print/mvp/print/usb/EscCommand.java
View file @
9d9f4fd6
...
...
@@ -54,6 +54,16 @@ public class EscCommand {
}
/**
* 添加空行
*
* @param n 行数
*/
public
byte
[]
getPrintAndFeedLines
(
byte
n
)
{
return
new
byte
[]{
27
,
100
,
n
};
}
/**
* 切纸命令
*/
public
void
addCutPaper
()
{
...
...
@@ -61,11 +71,22 @@ public class EscCommand {
this
.
addArrayToCommand
(
bytes
);
}
/**
* 切纸命令
*/
public
byte
[]
getCutPaper
()
{
return
new
byte
[]{(
byte
)
29
,
(
byte
)
86
,
(
byte
)
0
};
}
public
void
addCleanCache
()
{
byte
[]
bytes
=
{(
byte
)
27
,
(
byte
)
74
,
(
byte
)
0
};
this
.
addArrayToCommand
(
bytes
);
}
public
byte
[]
getCleanCache
()
{
return
new
byte
[]{(
byte
)
27
,
(
byte
)
74
,
(
byte
)
0
};
}
//0 居左 1居中 2居右
public
void
addSelectJustification
(
int
just
)
{
byte
[]
command
=
new
byte
[]{
27
,
97
,
(
byte
)
just
};
...
...
print-module/src/main/java/com/joe/print/mvp/print/usb/UsbPrint.java
View file @
9d9f4fd6
...
...
@@ -5,40 +5,42 @@ import android.hardware.usb.UsbDeviceConnection;
import
android.hardware.usb.UsbManager
;
import
android.os.Handler
;
import
android.os.Message
;
import
android.util.Log
;
import
com.joe.print.mvp.print.common.SendCallback
;
import
com.joe.print.mvp.print.common.SendResultCode
;
import
java.lang.ref.WeakReference
;
import
java.util.ArrayList
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
public
class
UsbPrint
{
private
static
UsbPrint
INSTANCE
;
// private
UsbPrint INSTANCE;
private
final
UsbManager
usbManager
;
private
SendCallback
sendCallback
;
private
final
ExecutorService
threadPool
;
private
MyHandler
myHandler
;
p
rivate
UsbPrint
(
Context
context
,
SendCallback
sendCallback
)
{
p
ublic
UsbPrint
(
Context
context
,
SendCallback
sendCallback
)
{
this
.
usbManager
=
(
UsbManager
)
context
.
getSystemService
(
Context
.
USB_SERVICE
);
this
.
sendCallback
=
sendCallback
;
this
.
threadPool
=
Executors
.
newFixedThreadPool
(
3
);
this
.
myHandler
=
new
MyHandler
(
this
);
}
public
static
UsbPrint
getInstance
(
Context
context
,
SendCallback
sendCallback
)
{
if
(
INSTANCE
==
null
)
{
synchronized
(
UsbPrint
.
class
)
{
if
(
INSTANCE
==
null
)
{
INSTANCE
=
new
UsbPrint
(
context
,
sendCallback
);
}
}
}
return
INSTANCE
;
}
//
public static UsbPrint getInstance(Context context, SendCallback sendCallback) {
//
if (INSTANCE == null) {
//
synchronized (UsbPrint.class) {
//
if (INSTANCE == null) {
//
INSTANCE = new UsbPrint(context, sendCallback);
//
}
//
}
//
}
//
return INSTANCE;
//
}
public
void
sendPrintCommand
(
UsbPrinter
printer
,
byte
[]
bytes
)
{
public
void
sendPrintCommand
(
UsbPrinter
printer
,
ArrayList
<
byte
[]>
bytes
)
{
if
(
printer
==
null
||
printer
.
getUsbDevice
()
==
null
)
{
return
;
}
...
...
@@ -49,9 +51,9 @@ public class UsbPrint {
private
class
SendCommandThread
extends
Thread
{
private
UsbManager
usbManager
;
private
UsbPrinter
usbPrinter
;
private
byte
[]
bytes
;
private
ArrayList
<
byte
[]>
bytes
;
public
SendCommandThread
(
UsbManager
usbManager
,
UsbPrinter
usbPrinter
,
byte
[]
bytes
)
{
public
SendCommandThread
(
UsbManager
usbManager
,
UsbPrinter
usbPrinter
,
ArrayList
<
byte
[]>
bytes
)
{
this
.
usbManager
=
usbManager
;
this
.
usbPrinter
=
usbPrinter
;
this
.
bytes
=
bytes
;
...
...
@@ -62,11 +64,18 @@ public class UsbPrint {
super
.
run
();
UsbDeviceConnection
connection
=
usbManager
.
openDevice
(
usbPrinter
.
getUsbDevice
());
if
(
connection
!=
null
&&
connection
.
claimInterface
(
usbPrinter
.
getUsbInterface
(),
true
))
{
int
result
=
connection
.
bulkTransfer
(
usbPrinter
.
getUsbOut
(),
bytes
,
bytes
.
length
,
500
);
int
result
=
0
;
for
(
int
i
=
0
;
i
<
bytes
.
size
();
i
++)
{
result
=
connection
.
bulkTransfer
(
usbPrinter
.
getUsbOut
(),
bytes
.
get
(
i
),
bytes
.
get
(
i
).
length
,
5000
);
}
connection
.
close
();
int
sendResultCode
=
result
>
0
?
SendResultCode
.
SEND_SUCCESS
:
SendResultCode
.
SEND_FAILED
;
Log
.
e
(
"ddd"
,
"發送結果"
+
sendResultCode
);
sendMessage
(
sendResultCode
,
usbPrinter
.
getPrinterName
());
}
else
{
Log
.
e
(
"ddd"
,
"連接失敗"
);
}
}
}
...
...
print-module/src/main/java/com/joe/print/mvp/print/usb/UsbPrinterFinder.java
View file @
9d9f4fd6
...
...
@@ -88,7 +88,6 @@ public class UsbPrinterFinder {
if
(!
isUsbPrinter
(
usbDevice
))
{
continue
;
}
if
(
usbManager
.
hasPermission
(
usbDevice
))
{
UsbPrinter
usbPrinter
=
getUsbPrinter
(
usbDevice
);
if
(
usbPrinter
!=
null
)
{
...
...
@@ -98,7 +97,6 @@ public class UsbPrinterFinder {
}
Log
.
d
(
TAG
,
"hasPermission add "
+
usbPrinter
.
getPrinterName
());
}
}
else
{
usbManager
.
requestPermission
(
usbDevice
,
usbPermissionIntent
);
Log
.
d
(
TAG
,
"requestPermission "
+
usbDevice
.
getDeviceName
());
...
...
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
View file @
9d9f4fd6
...
...
@@ -25,14 +25,12 @@ import androidx.recyclerview.widget.RecyclerView;
import
com.billy.cc.core.component.CC
;
import
com.billy.cc.core.component.CCResult
;
import
com.billy.cc.core.component.CCUtil
;
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
;
import
com.gingersoft.gsa.cloud.base.widget.DialogUtils
;
import
com.gingersoft.gsa.cloud.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.database.utils.PrinterDeviceDaoUtils
;
import
com.gingersoft.gsa.cloud.print.PrintExecutor
;
import
com.gingersoft.gsa.cloud.print.PrintSocketHolder
;
import
com.jess.arms.base.BaseActivity
;
...
...
@@ -43,18 +41,9 @@ import com.joe.print.di.component.DaggerPrintComponent;
import
com.joe.print.mvp.contract.PrintContract
;
import
com.joe.print.mvp.presenter.PrintPresenter
;
import
com.joe.print.mvp.print.OpenCashBoxMaker
;
import
com.joe.print.mvp.print.PrintBill
;
import
com.joe.print.mvp.print.PrintCleanMachine
;
import
com.joe.print.mvp.print.PrintInstruction
;
import
com.joe.print.mvp.print.PrintListener
;
import
com.joe.print.mvp.print.PrintOtherOrder
;
import
com.joe.print.mvp.print.PrintOtherOrderClosing
;
import
com.joe.print.mvp.print.PrintPrjKitchen
;
import
com.joe.print.mvp.print.PrintServe
;
import
com.joe.print.mvp.print.PrintSlip
;
import
com.joe.print.mvp.print.PrintTest
;
import
com.joe.print.mvp.print.PrinterRoot
;
import
com.joe.print.mvp.print.utils.MyPrintUtils
;
import
com.joe.print.mvp.ui.adapter.DialogPrinterListAdapter
;
import
com.yanzhenjie.recyclerview.widget.DefaultItemDecoration
;
...
...
@@ -84,7 +73,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
* ----網絡打印
* ----獲取網絡打印機列表
*/
public
class
PrintActivity
extends
BaseActivity
<
PrintPresenter
>
implements
PrintContract
.
View
,
DialogInterface
.
OnDismissListener
,
PrintListener
{
public
class
PrintActivity
extends
BaseActivity
<
PrintPresenter
>
implements
PrintContract
.
View
,
DialogInterface
.
OnDismissListener
,
PrintListener
,
PrintSocketHolder
.
OnStateChangedListener
,
PrintExecutor
.
OnPrintResultListener
{
public
final
static
int
ADD_PRINT_CODE
=
1001
;
//添加打印機回調
public
final
static
int
DIMISS_LOADING
=
1002
;
//關閉加載窗
...
...
@@ -99,7 +88,15 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private
Dialog
mLoadingDialog
;
private
TextView
mTvLoadingTip
;
/**
* 0:上菜紙
* 1:印單
* 2:結賬單
* 3:廚房單
* 4:打印view
* 5:打印外賣接單
* 6:其他指令
*/
private
int
type
;
private
boolean
isShowDialog
;
...
...
@@ -125,21 +122,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
callId
=
CCUtil
.
getNavigateCallId
(
this
);
//獲取打印類型,根據打印類型生成對應的bitmap
/**
* 0:上菜紙
* 1:印單
* 2:結賬單
* 3:廚房單
* 4:打印view
* 5:打印外賣接單
* 6:其他指令
*/
type
=
CCUtil
.
getNavigateParam
(
this
,
PRINT_TYPE
,
-
1
);
isShowDialog
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_LOADING
,
true
);
printerInIt
=
PrinterRoot
.
getPrinterByType
(
type
);
if
(
printerInIt
!=
null
)
{
printerInIt
.
setmContext
(
mContext
).
setPrintListener
(
this
);
printerInIt
.
setmContext
(
mContext
).
setPrintListener
(
this
)
.
initUsbPrint
()
;
}
// PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(this);
...
...
@@ -227,23 +216,32 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
initDialog
();
}
//獲取對應的打印類
printerInIt
=
mPresenter
.
getPrinterByType
(
type
);
if
(
printerInIt
instanceof
PrintInstruction
)
{
//開錢箱
PrintExecutor
executor
=
new
PrintExecutor
(
defaultPrint
);
executor
.
doPrinterRequestAsync
(
new
OpenCashBoxMaker
());
}
else
{
//先在這裡壓縮,之後在每個類自己生成的時候壓縮
List
<
Bitmap
>
bitmaps
=
printerInIt
.
getPrintBitmap
(
mContext
,
defaultPrint
).
get
(
""
);
if
(
bitmaps
!=
null
&&
bitmaps
.
size
()
>
0
)
{
List
<
Bitmap
>
zoomBitmaps
=
new
ArrayList
<>();
if
(
bitmaps
==
null
||
bitmaps
.
size
()
<=
0
)
{
printFile
();
return
;
}
for
(
Bitmap
bitmap
:
bitmaps
)
{
Bitmap
zoomBitmap
=
printerInIt
.
zoomBitmap
(
defaultPrint
,
bitmap
);
zoomBitmaps
.
add
(
zoomBitmap
);
}
if
(
zoomBitmaps
.
size
()
>
0
)
{
if
(
defaultPrint
.
getPrinterDeviceType
()
==
1
)
{
//IP打印
printerInIt
.
ipDevicePrint
(
defaultPrint
,
b
itmaps
);
printerInIt
.
ipDevicePrint
(
defaultPrint
,
zoomB
itmaps
);
}
else
if
(
defaultPrint
.
getPrinterDeviceType
()
==
2
)
{
//本地N5或Sunmi打印
printerInIt
.
locationPrint
(
b
itmaps
,
this
);
printerInIt
.
locationPrint
(
zoomB
itmaps
,
this
);
}
else
if
(
defaultPrint
.
getPrinterDeviceType
()
==
3
)
{
//USB打印打印
printerInIt
.
usbPrint
(
mContext
,
b
itmaps
);
printerInIt
.
usbPrint
(
mContext
,
zoomB
itmaps
);
}
else
{
ToastUtils
.
show
(
mContext
,
"未找到對應的打印類型"
);
finish
();
...
...
@@ -252,7 +250,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
//打印失敗
Log
.
e
(
"eee"
,
"打印失敗,沒有生成對應的圖片"
);
finish
();
}
}
}
...
...
@@ -496,6 +493,9 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
protected
void
onDestroy
()
{
super
.
onDestroy
();
disLoadingDialog
();
if
(
printerInIt
!=
null
)
{
printerInIt
.
onDestroy
();
}
}
private
void
disLoadingDialog
()
{
...
...
@@ -505,4 +505,16 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
});
}
@Override
public
void
onStateChanged
(
int
state
,
PrinterDeviceBean
printerDeviceBean
)
{
//ip打印狀態修改回調
}
@Override
public
void
onResult
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
)
{
//ip打印結果回調
}
}
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintTestActivity.java
View file @
9d9f4fd6
...
...
@@ -147,6 +147,45 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_print_test
);
// PrinterDeviceBean printerDeviceBean = new PrinterDeviceBean("192.168.1.218", 9100, "400");
//
// OrderDetails orderDetails = JsonUtils.parseObject(json, OrderDetails.class);
// usbPrint = UsbPrint.getInstance(this, sendCallback);
UsbPrinterFinder
printerFinder
=
new
UsbPrinterFinder
(
this
,
printerFinderCallback
);
printerFinder
.
startFinder
();
PrintTest
printTest
=
new
PrintTest
();
// printTest.getPrintBitmap(this);
// PrinterWriter printer = null;
Bitmap
bitmap
=
ImageUtils
.
zoomDrawable
(
printTest
.
getTestPrintBitmap
(
this
),
306
);
// try {
// printer = new PrinterWriterExecutor(255, 400);
// } catch (IOException e) {
// e.printStackTrace();
// }
// ArrayList<byte[]> image1 = printer.getImageByte(printTest.getPrintBitmap(this).get("").get(0));//將bitmap縮放到打印機紙張大小再添加到集合中。
findViewById
(
R
.
id
.
btn_test
).
setOnClickListener
(
view
->
{
//打印測試
// PrintExecutor executor = new PrintExecutor(printerDeviceBean);
// executor.setOnStateChangedListener(this);
// executor.setOnPrintResultListener(this);
// TestPrintMaker maker = null;
EscCommand
esc
=
new
EscCommand
();
byte
[]
bytes
=
PrinterWriter
.
decodeBitmapToDataList
(
bitmap
,
255
);
if
(
bytes
!=
null
)
{
esc
.
addArrayToCommand
(
bytes
);
}
esc
.
addPrintAndFeedLines
((
byte
)
8
);
esc
.
addCutPaper
();
esc
.
addCleanCache
();
// byte[] bytes = decodeBitmapToDataList(bitmap, 32);
// if (usbPrinters != null && usbPrinters.size() > 0) {
// usbPrint.sendPrintCommand(usbPrinters.get(0), esc.getByteArrayCommand());
// }
});
}
/**
...
...
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrinterAddActivity.java
View file @
9d9f4fd6
...
...
@@ -11,6 +11,7 @@ import android.view.View;
import
android.view.WindowManager
;
import
android.view.inputmethod.InputMethodManager
;
import
android.widget.EditText
;
import
android.widget.LinearLayout
;
import
android.widget.Switch
;
import
android.widget.TextView
;
...
...
@@ -43,6 +44,7 @@ import com.qmuiteam.qmui.widget.QMUITopBar;
import
org.w3c.dom.Text
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
butterknife.BindView
;
...
...
@@ -60,6 +62,8 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
// EditText ipEdit1, ipEdit2, ipEdit3, ipEdit4;
@BindView
(
R2
.
id
.
add_printer_ed_name
)
EditText
mEdPrintName
;
@BindView
(
R2
.
id
.
tv_print_type
)
TextView
tvPrintType
;
@BindViews
({
R2
.
id
.
ip_edit_1
,
R2
.
id
.
ip_edit_2
,
R2
.
id
.
ip_edit_3
,
R2
.
id
.
ip_edit_4
})
EditText
[]
ipEdits
=
new
EditText
[
4
];
@BindView
(
R2
.
id
.
add_printer_topbar
)
...
...
@@ -78,17 +82,34 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
TextView
mTvFoodNameSize
;
//食品字體大小
@BindView
(
R2
.
id
.
tv_details_font_size
)
TextView
mTvdetailsFontSize
;
//細項字體大小
@BindView
(
R2
.
id
.
switch_print_device_food_font_thickness
)
Switch
mSwitchFontThickness
;
//食品是否加粗
@BindView
(
R2
.
id
.
switch_food_items_thickness
)
Switch
mSwitchFoodItemsThickness
;
//細項是否加粗
@BindView
(
R2
.
id
.
switch_food_italic
)
Switch
mSwitchFoodItalic
;
//食品是否斜體
@BindView
(
R2
.
id
.
switch_food_items_italic
)
Switch
mSwitchFoodItemsItalic
;
//細項是否斜體
@BindView
(
R2
.
id
.
switch_color_flip
)
Switch
mSwitchColorFlip
;
//是否翻轉
// @BindView(R2.id.switch_print_device_food_font_thickness)
// Switch mSwitchFontThickness;//食品是否加粗
@BindView
(
R2
.
id
.
tv_print_device_food_bold
)
TextView
tvFoodIsBold
;
//食品是否加粗
@BindView
(
R2
.
id
.
tv_print_device_modifier_bold
)
TextView
tvModifierIsBold
;
//細項是否加粗
// @BindView(R2.id.switch_food_items_thickness)
// Switch mSwitchFoodItemsThickness;//細項是否加粗
// @BindView(R2.id.switch_food_italic)
// Switch mSwitchFoodItalic;//食品是否斜體
@BindView
(
R2
.
id
.
tv_print_food_italic
)
TextView
tvFoodItalic
;
//食品斜體
// @BindView(R2.id.switch_food_items_italic)
// Switch mSwitchFoodItemsItalic;//細項是否斜體
@BindView
(
R2
.
id
.
tv_print_modifier_italic
)
TextView
tvModifierItalic
;
//細項斜體
// @BindView(R2.id.switch_color_flip)
// Switch mSwitchColorFlip;//是否翻轉
@BindView
(
R2
.
id
.
tv_print_flip
)
TextView
tvFlip
;
@BindView
(
R2
.
id
.
layout_ip
)
LinearLayout
layoutIp
;
@BindView
(
R2
.
id
.
layout_port
)
LinearLayout
layoutPort
;
@BindView
(
R2
.
id
.
print_port_line
)
View
printPortLine
;
@BindView
(
R2
.
id
.
print_ip_line
)
View
printIpLine
;
private
List
<
PrinterDeviceBean
>
devicess
;
private
PrinterDeviceBean
printerDeviceBean
;
private
boolean
isEditPrinter
=
false
;
//是否是編輯打印機
...
...
@@ -99,6 +120,19 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
private
List
<
String
>
printModelLabels
;
private
int
modelPosition
=
-
1
;
private
int
foodFondSize
=
0
;
//食品字體大小 0為預設
private
int
modifierFontSize
=
0
;
//細項字體大小 0為預設
private
int
printType
=
1
;
//打印類型:1:網絡打印,2:本機打印 3:USB打印 4:藍牙打印
private
int
foodIsBoldPosition
=
0
;
//食品是否加粗
private
int
modifierIsBoldPosition
=
0
;
//細項是否加粗
private
int
foodIsItalic
=
0
;
//食品是否斜體
private
int
modifierIsItalic
=
0
;
//細項是否斜體
private
int
flipPosition
=
0
;
//數量大於1是否翻轉
public
static
List
<
String
>
printTypes
=
Arrays
.
asList
(
"網路打印"
,
"本機打印"
,
"USB打印"
);
private
List
<
String
>
fontSize
=
Arrays
.
asList
(
"預設"
,
"0"
,
"1"
);
private
List
<
String
>
booleanSelect
=
Arrays
.
asList
(
"預設"
,
"是"
,
"否"
);
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
...
...
@@ -123,6 +157,18 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
mEdPrintName
.
setText
(
String
.
valueOf
(
printerDeviceBean
.
getName
()));
ips
=
printerDeviceBean
.
getIp
().
split
(
"[.]"
);
etPort
.
setText
(
printerDeviceBean
.
getPort
()
+
""
);
printType
=
printerDeviceBean
.
getPrinterDeviceType
();
hideIpPrint
();
if
(
printerDeviceBean
.
getFoodFont
().
equals
(
"請選擇"
)
||
printerDeviceBean
.
getFoodFont
().
equals
(
""
))
{
foodFondSize
=
0
;
}
else
{
foodFondSize
=
Integer
.
parseInt
(
printerDeviceBean
.
getFoodFont
());
}
if
(
printerDeviceBean
.
getModifierFont
().
equals
(
"請選擇"
)
||
printerDeviceBean
.
getModifierFont
().
equals
(
""
))
{
modifierFontSize
=
0
;
}
else
{
modifierFontSize
=
Integer
.
parseInt
(
printerDeviceBean
.
getModifierFont
());
}
if
(
printerDeviceBean
.
getPrinterName
()
!=
null
)
{
mTvModel
.
setTextColor
(
getResources
().
getColor
(
R
.
color
.
color_3c
));
...
...
@@ -154,21 +200,40 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
}
}
}
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
printerDeviceBean
.
getFoodFont
()))
{
mTvFoodNameSize
.
setText
(
printerDeviceBean
.
getFoodFont
());
}
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
printerDeviceBean
.
getModifierFont
()))
{
mTvdetailsFontSize
.
setText
(
printerDeviceBean
.
getModifierFont
());
}
mSwitchFontThickness
.
setChecked
(
printerDeviceBean
.
getFoodIsBold
()
==
1
);
mSwitchFoodItemsThickness
.
setChecked
(
printerDeviceBean
.
getModifierIsBold
()
==
1
);
mSwitchFoodItalic
.
setChecked
(
printerDeviceBean
.
getFoodIsItalic
()
==
1
);
mSwitchFoodItemsItalic
.
setChecked
(
printerDeviceBean
.
getModifierIsItalic
()
==
1
);
mSwitchColorFlip
.
setChecked
(
printerDeviceBean
.
getNumberIsFlip
()
==
1
);
// mSwitchFontThickness.setChecked(printerDeviceBean.getFoodIsBold() == 1);
// mSwitchFoodItemsThickness.setChecked(printerDeviceBean.getModifierIsBold() == 1);
// mSwitchFoodItalic.setChecked(printerDeviceBean.getFoodIsItalic() == 1);
// mSwitchFoodItemsItalic.setChecked(printerDeviceBean.getModifierIsItalic() == 1);
// mSwitchColorFlip.setChecked(printerDeviceBean.getNumberIsFlip() == 1);
foodIsBoldPosition
=
printerDeviceBean
.
getFoodIsBold
();
modifierIsBoldPosition
=
printerDeviceBean
.
getModifierIsBold
();
foodIsItalic
=
printerDeviceBean
.
getFoodIsItalic
();
modifierIsItalic
=
printerDeviceBean
.
getModifierIsItalic
();
flipPosition
=
printerDeviceBean
.
getNumberIsFlip
();
}
else
{
mTvFoodNameSize
.
setText
(
"1"
);
mTvdetailsFontSize
.
setText
(
"1"
);
}
//打印類型,USB,網路
if
(
printType
-
1
>=
0
&&
printType
-
1
<
printTypes
.
size
())
{
tvPrintType
.
setText
(
printTypes
.
get
(
printType
-
1
));
}
//食品和細項字體大小
if
(
foodFondSize
>
fontSize
.
size
())
{
foodFondSize
=
0
;
}
mTvFoodNameSize
.
setText
(
fontSize
.
get
(
foodFondSize
));
if
(
modifierFontSize
>
fontSize
.
size
())
{
modifierFontSize
=
0
;
}
mTvdetailsFontSize
.
setText
(
fontSize
.
get
(
modifierFontSize
));
tvFoodIsBold
.
setText
(
booleanSelect
.
get
(
foodIsBoldPosition
));
tvModifierIsBold
.
setText
(
booleanSelect
.
get
(
modifierIsBoldPosition
));
tvFoodItalic
.
setText
(
booleanSelect
.
get
(
foodIsItalic
));
tvModifierItalic
.
setText
(
booleanSelect
.
get
(
modifierIsItalic
));
tvFlip
.
setText
(
booleanSelect
.
get
(
flipPosition
));
//添加監聽
for
(
int
i
=
0
;
i
<
ipEdits
.
length
;
i
++)
{
MyTextWatcher
myTextWatchers
=
new
MyTextWatcher
(
ipEdits
[
i
]);
...
...
@@ -260,19 +325,38 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
finish
();
}
private
void
showSelectFoodFontSize
(
TextView
textView
)
{
List
<
String
>
types
=
new
ArrayList
<>();
types
.
add
(
"1"
);
types
.
add
(
"2"
);
types
.
add
(
"3"
);
types
.
add
(
"4"
);
types
.
add
(
"5"
);
DialogUtils
.
showSelectPopop
(
this
,
types
,
"餐檯模式"
,
0
,
i
->
textView
.
setText
(
types
.
get
(
i
)));
DialogUtils
.
showSelectPopop
(
this
,
fontSize
,
"字體大小"
,
0
,
i
->
{
textView
.
setText
(
fontSize
.
get
(
i
));
if
(
textView
.
getId
()
==
R
.
id
.
tv_food_font_size
)
{
//食品字體大小
foodFondSize
=
i
;
}
else
if
(
textView
.
getId
()
==
R
.
id
.
tv_details_font_size
)
{
modifierFontSize
=
i
;
}
});
}
private
void
showSelectPrintType
()
{
// types.add("藍牙打印");
DialogUtils
.
showSelectPopop
(
this
,
printTypes
,
"打印機類型"
,
printType
-
1
,
i
->
{
printType
=
i
+
1
;
hideIpPrint
();
tvPrintType
.
setText
(
printTypes
.
get
(
i
));
});
}
private
void
hideIpPrint
()
{
//只要不是網絡打印,就不需要輸入打印機IP和端口號
int
isVisible
=
printType
!=
1
?
View
.
GONE
:
View
.
VISIBLE
;
layoutIp
.
setVisibility
(
isVisible
);
layoutPort
.
setVisibility
(
isVisible
);
printPortLine
.
setVisibility
(
isVisible
);
printIpLine
.
setVisibility
(
isVisible
);
}
@OnClick
({
R2
.
id
.
printer_add
,
R2
.
id
.
layout_select_fail_one
,
R2
.
id
.
layout_select_fail_two
,
R2
.
id
.
layout_print_device
,
R2
.
id
.
layout_print_device_food_font_size
,
R2
.
id
.
layout_print_device_food_item_font_size
})
@OnClick
({
R2
.
id
.
layout_flip
,
R2
.
id
.
layout_modifier_italic
,
R2
.
id
.
layout_food_italic
,
R2
.
id
.
layout_print_modifier_isbold
,
R2
.
id
.
layout_print_food_isbold
,
R2
.
id
.
layout_print_type
,
R2
.
id
.
printer_add
,
R2
.
id
.
layout_select_fail_one
,
R2
.
id
.
layout_select_fail_two
,
R2
.
id
.
layout_print_device
,
R2
.
id
.
layout_print_device_food_font_size
,
R2
.
id
.
layout_print_device_food_item_font_size
})
@Override
public
void
onClick
(
View
v
)
{
int
id
=
v
.
getId
();
...
...
@@ -291,10 +375,53 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
}
else
if
(
id
==
R
.
id
.
layout_print_device_food_item_font_size
)
{
//選擇食品細項字體大小
showSelectFoodFontSize
(
mTvdetailsFontSize
);
}
}
else
if
(
id
==
R
.
id
.
layout_print_type
)
{
//選擇打印機類型
showSelectPrintType
();
}
else
if
(
id
==
R
.
id
.
layout_print_food_isbold
)
{
//食品是否加粗
showSelectFoodIsBold
(
"是否加粗"
,
tvFoodIsBold
);
}
else
if
(
id
==
R
.
id
.
layout_print_modifier_isbold
)
{
showSelectFoodIsBold
(
"是否加粗"
,
tvModifierIsBold
);
}
else
if
(
id
==
R
.
id
.
layout_food_italic
)
{
showSelectFoodIsBold
(
"是否斜體"
,
tvFoodItalic
);
}
else
if
(
id
==
R
.
id
.
layout_modifier_italic
)
{
showSelectFoodIsBold
(
"是否斜體"
,
tvModifierItalic
);
}
else
if
(
id
==
R
.
id
.
layout_flip
)
{
showSelectFoodIsBold
(
"是否翻轉"
,
tvFlip
);
}
}
private
void
showSelectFoodIsBold
(
String
title
,
TextView
textView
)
{
int
defaultSelect
=
0
;
int
viewId
=
textView
.
getId
();
if
(
viewId
==
R
.
id
.
tv_print_device_food_bold
)
{
defaultSelect
=
foodIsBoldPosition
;
}
else
if
(
viewId
==
R
.
id
.
tv_print_device_modifier_bold
)
{
defaultSelect
=
modifierIsBoldPosition
;
}
else
if
(
viewId
==
R
.
id
.
tv_print_food_italic
)
{
defaultSelect
=
foodIsItalic
;
}
else
if
(
viewId
==
R
.
id
.
tv_print_modifier_italic
)
{
defaultSelect
=
modifierIsItalic
;
}
else
if
(
viewId
==
R
.
id
.
tv_print_flip
)
{
defaultSelect
=
flipPosition
;
}
DialogUtils
.
showSelectPopop
(
this
,
booleanSelect
,
title
,
defaultSelect
,
i
->
{
if
(
viewId
==
R
.
id
.
tv_print_device_food_bold
)
{
foodIsBoldPosition
=
i
;
}
else
if
(
viewId
==
R
.
id
.
tv_print_device_modifier_bold
)
{
modifierIsBoldPosition
=
i
;
}
else
if
(
viewId
==
R
.
id
.
tv_print_food_italic
)
{
foodIsItalic
=
i
;
}
else
if
(
viewId
==
R
.
id
.
tv_print_modifier_italic
)
{
modifierIsItalic
=
i
;
}
else
if
(
viewId
==
R
.
id
.
tv_print_flip
)
{
flipPosition
=
i
;
}
textView
.
setText
(
booleanSelect
.
get
(
i
));
});
}
/**
* 選擇打印機機型
*/
...
...
@@ -384,9 +511,12 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
ToastUtils
.
show
(
mContext
,
"打印機名稱禁止輸入%字符"
);
return
;
}
if
(
printerDeviceBean
==
null
)
{
printerDeviceBean
=
new
PrinterDeviceBean
();
}
//保存打印機信息
StringBuilder
ipAddress
=
new
StringBuilder
();
if
(
printType
==
1
)
{
for
(
EditText
editText
:
ipEdits
)
{
if
(
editText
.
getText
()
==
null
||
editText
.
getText
().
toString
().
equals
(
""
))
{
showMessage
(
"請輸入完整的IP地址"
);
...
...
@@ -395,20 +525,22 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
ipAddress
.
append
(
editText
.
getText
());
ipAddress
.
append
(
"."
);
}
hideKeyBoard
();
String
port
=
etPort
.
getText
().
toString
();
if
(
printerDeviceBean
==
null
)
{
printerDeviceBean
=
new
PrinterDeviceBean
();
}
printerDeviceBean
.
setName
(
mEdPrintName
.
getText
().
toString
().
trim
());
printerDeviceBean
.
setRestaurantId
(
GsaCloudApplication
.
getRestaurantId
(
mContext
));
printerDeviceBean
.
setIp
(
ipAddress
.
substring
(
0
,
ipAddress
.
lastIndexOf
(
"."
)));
String
port
=
etPort
.
getText
().
toString
();
if
(
TextUtil
.
isEmptyOrNullOrUndefined
(
port
))
{
printerDeviceBean
.
setPort
(
9100
);
}
else
{
printerDeviceBean
.
setPort
(
Integer
.
parseInt
(
port
));
}
}
else
{
printerDeviceBean
.
setIp
(
""
);
printerDeviceBean
.
setPort
(
0
);
}
hideKeyBoard
();
printerDeviceBean
.
setName
(
mEdPrintName
.
getText
().
toString
().
trim
());
printerDeviceBean
.
setRestaurantId
(
GsaCloudApplication
.
getRestaurantId
(
mContext
));
//飛單打印機
if
(
oneFailPosition
!=
-
1
)
{
printerDeviceBean
.
setFlyPrinterDeviceId
(
devicess
.
get
(
oneFailPosition
).
getId
());
...
...
@@ -430,18 +562,16 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
ToastUtils
.
show
(
mContext
,
"請選擇打印機機型"
);
return
;
}
printerDeviceBean
.
setFoodFont
(
""
+
foodFondSize
);
printerDeviceBean
.
setModifierFont
(
""
+
modifierFontSize
);
if
(
editTextIsNull
(
mTvFoodNameSize
))
{
printerDeviceBean
.
setFoodFont
(
mTvFoodNameSize
.
getText
().
toString
());
}
if
(
editTextIsNull
(
mTvdetailsFontSize
))
{
printerDeviceBean
.
setModifierFont
(
mTvdetailsFontSize
.
getText
().
toString
());
}
printerDeviceBean
.
setFoodIsBold
(
mSwitchFontThickness
.
isChecked
()
?
1
:
2
);
printerDeviceBean
.
setModifierIsBold
(
mSwitchFoodItemsThickness
.
isChecked
()
?
1
:
2
);
printerDeviceBean
.
setFoodIsItalic
(
mSwitchFoodItalic
.
isChecked
()
?
1
:
2
);
printerDeviceBean
.
setModifierIsItalic
(
mSwitchFoodItemsItalic
.
isChecked
()
?
1
:
2
);
printerDeviceBean
.
setNumberIsFlip
(
mSwitchColorFlip
.
isChecked
()
?
1
:
2
);
printerDeviceBean
.
setFoodIsBold
(
foodIsBoldPosition
);
printerDeviceBean
.
setModifierIsBold
(
modifierIsBoldPosition
);
printerDeviceBean
.
setFoodIsItalic
(
foodIsItalic
);
printerDeviceBean
.
setModifierIsItalic
(
modifierIsItalic
);
printerDeviceBean
.
setNumberIsFlip
(
flipPosition
);
printerDeviceBean
.
setPrinterDeviceType
(
printType
);
//添加打印機
if
(
v
.
getId
()
==
R
.
id
.
printer_add
)
{
if
(
isEditPrinter
)
{
...
...
print-module/src/main/java/com/joe/print/mvp/ui/adapter/DialogPrinterListAdapter.java
View file @
9d9f4fd6
...
...
@@ -8,6 +8,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.joe.print.R
;
import
com.joe.print.mvp.ui.activity.PrinterAddActivity
;
import
java.util.List
;
...
...
@@ -25,7 +26,12 @@ public class DialogPrinterListAdapter extends BaseQuickAdapter<PrinterDeviceBean
@Override
protected
void
convert
(
BaseViewHolder
helper
,
PrinterDeviceBean
item
)
{
helper
.
setText
(
R
.
id
.
tv_printer_name
,
item
.
getName
()
+
""
);
if
(
item
.
getPrinterDeviceType
()
==
1
)
{
helper
.
setText
(
R
.
id
.
tv_printer_ip
,
String
.
format
(
mContext
.
getString
(
R
.
string
.
print_ip
),
item
.
getIp
()));
helper
.
setText
(
R
.
id
.
tv_printer_port
,
String
.
format
(
mContext
.
getString
(
R
.
string
.
print_port
),
item
.
getPort
()
+
""
));
}
else
{
helper
.
setText
(
R
.
id
.
tv_printer_ip
,
PrinterAddActivity
.
printTypes
.
get
(
item
.
getPrinterDeviceType
()
-
1
));
}
// helper.setText(R.id.tv_printer_port, String.format(mContext.getString(R.string.print_port), item.getPort() + ""));
}
}
print-module/src/main/java/com/joe/print/mvp/ui/adapter/PrinterListAdapter.java
View file @
9d9f4fd6
...
...
@@ -10,6 +10,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.joe.print.R
;
import
com.joe.print.mvp.ui.activity.PrinterAddActivity
;
import
java.util.List
;
...
...
@@ -29,7 +30,11 @@ public class PrinterListAdapter extends BaseQuickAdapter<PrinterDeviceBean, Base
@Override
protected
void
convert
(
BaseViewHolder
helper
,
PrinterDeviceBean
item
)
{
helper
.
setText
(
R
.
id
.
tv_printer_name
,
item
.
getName
()
+
""
);
if
(
item
.
getIp
()
==
null
||
item
.
getIp
().
length
()
==
0
)
{
helper
.
setText
(
R
.
id
.
tv_printer_ip
,
""
+
PrinterAddActivity
.
printTypes
.
get
(
item
.
getPrinterDeviceType
()-
1
));
}
else
{
helper
.
setText
(
R
.
id
.
tv_printer_ip
,
String
.
format
(
mContext
.
getString
(
R
.
string
.
print_ip
),
item
.
getIp
()));
}
if
(
item
.
getPort
()
==
null
)
{
helper
.
setText
(
R
.
id
.
tv_printer_port
,
String
.
format
(
mContext
.
getString
(
R
.
string
.
print_port
),
""
));
}
else
{
...
...
print-module/src/main/java/com/joe/print/mvp/ui/fragment/LocalPrintFragment.java
View file @
9d9f4fd6
...
...
@@ -41,10 +41,6 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
* 本機打印配置頁
*/
public
class
LocalPrintFragment
extends
BaseFragment
<
LocalPrintPresenter
>
implements
LocalPrintContract
.
View
{
@BindView
(
R2
.
id
.
iv_location_print_btn
)
Switch
ivSetLocationPrintBtn
;
@BindView
(
R2
.
id
.
layout_location_print
)
LinearLayout
mLayoutLocationPrint
;
@BindView
(
R2
.
id
.
layout_currency_content
)
LinearLayout
currencyContent
;
...
...
@@ -72,32 +68,22 @@ public class LocalPrintFragment extends BaseFragment<LocalPrintPresenter> implem
public
void
onResume
()
{
super
.
onResume
();
mPresenter
.
getPrinterCurrencyList
(
GsaCloudApplication
.
getRestaurantId
(
getActivity
()));
initBtn
();
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
mLayoutLocationPrint
.
setVisibility
(
PrintUtils
.
isPrintDevice
()
?
View
.
VISIBLE
:
View
.
GONE
);
ivSetLocationPrintBtn
.
setOnCheckedChangeListener
((
buttonView
,
isChecked
)
->
{
if
(
isChecked
)
{
//修改默認打印方式為本地
SPUtils
.
put
(
mContext
,
PrintConstans
.
DEFAULT_PRINT_METHOD
,
PrintConstans
.
LOCAL_PRINT
);
ivSetLocationPrintBtn
.
setChecked
(
true
);
}
else
{
//如果默認打印方式為IP,修改為IP打印
SPUtils
.
put
(
mContext
,
PrintConstans
.
DEFAULT_PRINT_METHOD
,
PrintConstans
.
IP_PRINT
);
ivSetLocationPrintBtn
.
setChecked
(
false
);
}
});
}
private
void
initBtn
()
{
if
(
SPUtils
.
get
(
mContext
,
PrintConstans
.
DEFAULT_PRINT_METHOD
,
""
).
equals
(
PrintConstans
.
LOCAL_PRINT
))
{
//如果默認打印方式為本地
ivSetLocationPrintBtn
.
setChecked
(
true
);
}
else
{
ivSetLocationPrintBtn
.
setChecked
(
false
);
}
// mLayoutLocationPrint.setVisibility(PrintUtils.isPrintDevice() ? View.VISIBLE : View.GONE);
// ivSetLocationPrintBtn.setOnCheckedChangeListener((buttonView, isChecked) -> {
// if (isChecked) {
// //修改默認打印方式為本地
// SPUtils.put(mContext, PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.LOCAL_PRINT);
// ivSetLocationPrintBtn.setChecked(true);
// } else {
// //如果默認打印方式為IP,修改為IP打印
// SPUtils.put(mContext, PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.IP_PRINT);
// ivSetLocationPrintBtn.setChecked(false);
// }
// });
}
/**
...
...
print-module/src/main/res/layout/fragment_local_print.xml
View file @
9d9f4fd6
...
...
@@ -4,28 +4,6 @@
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<LinearLayout
android:id=
"@+id/layout_location_print"
style=
"@style/print_add_printer_input_style"
android:layout_width=
"match_parent"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<TextView
style=
"@style/print_add_title_textStyle"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"默認本機打印"
/>
<Switch
android:id=
"@+id/iv_location_print_btn"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:thumb=
"@drawable/shape_thumb_on"
android:track=
"@drawable/selector_switch_track"
/>
</LinearLayout>
<include
layout=
"@layout/include_horizontal_color_ccc_dividing_line"
/>
<LinearLayout
...
...
print-module/src/main/res/layout/printer_activity_add.xml
View file @
9d9f4fd6
...
...
@@ -57,9 +57,48 @@
</EditText>
</LinearLayout>
<RelativeLayout
android:id=
"@+id/layout_print_type"
style=
"@style/print_add_printer_input_style"
android:layout_width=
"match_parent"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_print_type_text"
style=
"@style/print_add_title_textStyle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerVertical=
"true"
android:text=
"打印機類型"
/>
<ImageView
android:id=
"@+id/iv_print_type_arrow"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:src=
"@drawable/ic_black_next_arrow"
/>
<TextView
android:id=
"@+id/tv_print_type"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerVertical=
"true"
android:layout_marginLeft=
"@dimen/dp_7"
android:layout_marginRight=
"@dimen/dp_7"
android:layout_toLeftOf=
"@id/iv_print_type_arrow"
android:layout_toRightOf=
"@id/tv_print_type_text"
android:gravity=
"right"
android:text=
"請選擇"
android:textColor=
"@color/normal_color"
android:textSize=
"@dimen/dp_16"
/>
</RelativeLayout>
<include
layout=
"@layout/include_horizontal_color_ccc_dividing_line"
/>
<LinearLayout
android:id=
"@+id/layout_ip"
style=
"@style/print_add_printer_input_style"
android:layout_width=
"match_parent"
android:orientation=
"horizontal"
>
...
...
@@ -179,9 +218,12 @@
</LinearLayout>
</LinearLayout>
<include
layout=
"@layout/include_horizontal_color_ccc_dividing_line"
/>
<include
android:id=
"@+id/print_ip_line"
layout=
"@layout/include_horizontal_color_ccc_dividing_line"
/>
<LinearLayout
android:id=
"@+id/layout_port"
style=
"@style/print_add_printer_input_style"
android:layout_width=
"match_parent"
android:orientation=
"horizontal"
>
...
...
@@ -208,7 +250,9 @@
android:textSize=
"@dimen/dp_14"
/>
</LinearLayout>
<include
layout=
"@layout/include_horizontal_color_ccc_dividing_line"
/>
<include
android:id=
"@+id/print_port_line"
layout=
"@layout/include_horizontal_color_ccc_dividing_line"
/>
<RelativeLayout
android:id=
"@+id/layout_print_device"
...
...
@@ -450,6 +494,7 @@
<!-- 食品是否加粗-->
<LinearLayout
android:id=
"@+id/layout_print_food_isbold"
style=
"@style/print_add_printer_input_style"
android:layout_width=
"match_parent"
android:gravity=
"center_vertical"
...
...
@@ -468,14 +513,38 @@
android:layout_height=
"wrap_content"
android:thumb=
"@drawable/shape_thumb_on"
android:track=
"@drawable/selector_switch_track"
android:visibility=
"gone"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/tv_print_device_food_bold"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_7"
android:layout_marginRight=
"@dimen/dp_7"
android:gravity=
"right"
android:text=
"請選擇"
android:textColor=
"@color/normal_color"
android:textSize=
"@dimen/dp_16"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:src=
"@drawable/ic_black_next_arrow"
/>
</LinearLayout>
<include
layout=
"@layout/include_horizontal_color_ccc_dividing_line"
/>
<!-- 細項是否加粗-->
<LinearLayout
android:id=
"@+id/layout_print_modifier_isbold"
style=
"@style/print_add_printer_input_style"
android:layout_width=
"match_parent"
android:gravity=
"center_vertical"
...
...
@@ -494,14 +563,36 @@
android:layout_height=
"wrap_content"
android:thumb=
"@drawable/shape_thumb_on"
android:track=
"@drawable/selector_switch_track"
android:visibility=
"gone"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/tv_print_device_modifier_bold"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_7"
android:layout_marginRight=
"@dimen/dp_7"
android:gravity=
"right"
android:text=
"請選擇"
android:textColor=
"@color/normal_color"
android:textSize=
"@dimen/dp_16"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:src=
"@drawable/ic_black_next_arrow"
/>
</LinearLayout>
<include
layout=
"@layout/include_horizontal_color_ccc_dividing_line"
/>
<!-- 食品斜體-->
<LinearLayout
android:id=
"@+id/layout_food_italic"
style=
"@style/print_add_printer_input_style"
android:layout_width=
"match_parent"
android:gravity=
"center_vertical"
...
...
@@ -521,12 +612,34 @@
android:thumb=
"@drawable/shape_thumb_on"
android:track=
"@drawable/selector_switch_track"
app:layout_constraintRight_toRightOf=
"parent"
android:visibility=
"gone"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/tv_print_food_italic"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_7"
android:layout_marginRight=
"@dimen/dp_7"
android:gravity=
"right"
android:text=
"請選擇"
android:textColor=
"@color/normal_color"
android:textSize=
"@dimen/dp_16"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:src=
"@drawable/ic_black_next_arrow"
/>
</LinearLayout>
<include
layout=
"@layout/include_horizontal_color_ccc_dividing_line"
/>
<!-- 細項斜體-->
<LinearLayout
android:id=
"@+id/layout_modifier_italic"
style=
"@style/print_add_printer_input_style"
android:layout_width=
"match_parent"
android:gravity=
"center_vertical"
...
...
@@ -546,13 +659,35 @@
android:thumb=
"@drawable/shape_thumb_on"
android:track=
"@drawable/selector_switch_track"
app:layout_constraintRight_toRightOf=
"parent"
android:visibility=
"gone"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/tv_print_modifier_italic"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_7"
android:layout_marginRight=
"@dimen/dp_7"
android:gravity=
"right"
android:text=
"請選擇"
android:textColor=
"@color/normal_color"
android:textSize=
"@dimen/dp_16"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:src=
"@drawable/ic_black_next_arrow"
/>
</LinearLayout>
<include
layout=
"@layout/include_horizontal_color_ccc_dividing_line"
/>
<!-- 數量大於1顏色是否翻轉-->
<LinearLayout
android:id=
"@+id/layout_flip"
style=
"@style/print_add_printer_input_style"
android:layout_width=
"match_parent"
android:gravity=
"center_vertical"
...
...
@@ -571,8 +706,29 @@
android:layout_height=
"wrap_content"
android:thumb=
"@drawable/shape_thumb_on"
android:track=
"@drawable/selector_switch_track"
android:visibility=
"gone"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/tv_print_flip"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_7"
android:layout_marginRight=
"@dimen/dp_7"
android:gravity=
"right"
android:text=
"請選擇"
android:textColor=
"@color/normal_color"
android:textSize=
"@dimen/dp_16"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:layout_centerVertical=
"true"
android:src=
"@drawable/ic_black_next_arrow"
/>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
View file @
9d9f4fd6
...
...
@@ -41,7 +41,6 @@ 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.LanguageUtils
;
import
com.gingersoft.gsa.cloud.base.utils.VibratorUtils
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Md5
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils
;
...
...
@@ -564,9 +563,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
Map
<
String
,
String
>
parameterMap
=
new
HashMap
<>();
parameterMap
.
put
(
"type"
,
"2"
);
parameterMap
.
put
(
"parm"
,
phone
);
Md5
md5
=
new
Md5
();
String
sign
=
md5
.
getMD5ofStr
(
parameterMap
);
mPresenter
.
queryMember
(
2
,
sign
,
GsaCloudApplication
.
getGsPosShopId
(
mContext
));
//
Md5 md5 = new Md5();
//
String sign = md5.getMD5ofStr(parameterMap);
//
mPresenter.queryMember(2,sign,GsaCloudApplication.getGsPosShopId(mContext));
}
@Override
...
...
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