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
f410baeb
Commit
f410baeb
authored
Feb 20, 2021
by
Wyh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、打印模塊優化 2、餐檯模式印單不打印食品問題 3、打印上菜紙閃退問題處理 4、餐檯模式結賬不打印食品問題
parent
bc663d6d
Show whitespace changes
Inline
Side-by-side
Showing
53 changed files
with
1247 additions
and
929 deletions
+1247
-929
component-coldchain/src/main/java/com/gingersoft/coldchain_module/mvp/presenter/OrderDetailsPresenter.java
+2
-2
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/PageViewModel.kt
+2
-1
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/ui/activity/PrjQueryActivity.java
+1
-1
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/activity/OrderDetailsActivity.kt
+6
-0
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/fragment/HistoryFragment.kt
+0
-3
component-delivery-pick/src/main/res/layout/activity_order_details.xml
+1
-1
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
+1
-1
component-main/src/main/res/layout/main_home_management_funcation_item.xml
+0
-1
component-pay/src/main/java/com/gingersoft/gsa/cloud/pay/mvp/ui/activity/PayResultActivity.java
+1
-1
component-print/src/main/java/com/joe/print/mvp/print/EpsonPrint.java
+6
-7
component-print/src/main/java/com/joe/print/mvp/print/IpPrintMaker.java
+18
-2
component-print/src/main/java/com/joe/print/mvp/print/OpenCashBoxMaker.java
+18
-0
component-print/src/main/java/com/joe/print/mvp/print/PrintBill.java
+5
-2
component-print/src/main/java/com/joe/print/mvp/print/PrintServe.java
+9
-1
component-print/src/main/java/com/joe/print/mvp/print/PrintSlip.java
+12
-1
component-print/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
+35
-41
component-print/src/main/java/com/joe/print/mvp/print/TestPrintMaker.java
+16
-11
component-print/src/main/java/com/joe/print/mvp/print/maker/PrjPrintMaker.java
+16
-1
component-print/src/main/java/com/joe/print/mvp/print/service/PrjService.java
+55
-62
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
+128
-223
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintTestActivity.java
+2
-2
component-print/src/main/java/com/joe/print/mvp/ui/adapter/PrintProgressAdapter.java
+16
-17
component-print/src/main/java/com/joe/print/mvp/ui/view/PrintProgressPopup.java
+26
-0
component-print/src/main/java/com/joe/print/mvp/ui/view/SelectPrintDevicePopup.java
+75
-0
component-print/src/main/res/layout/print_bitmap.xml
+11
-10
component-print/src/main/res/layout/print_dialog_internet_list.xml
+16
-7
component-print/src/main/res/layout/print_progress_item.xml
+5
-4
component-print/src/main/res/layout/printer_dialog_item.xml
+4
-1
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/NewSupplierPresenter.java
+2
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/WarehousingInventoryPresenter.java
+4
-6
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/activity/SupplyChainMainActivity.java
+24
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/SendSupplierMsgAdapter.java
+4
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/food/FoodIngredientsFragment.java
+5
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/order/PurchaseListFragment.java
+11
-2
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/warehouse/WarehousingInventoryFragment.java
+3
-3
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/utils/DoubleClickUtils.java
+22
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/utils/HideUtil.java
+218
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/table/PrintServingPaperAction.java
+3
-3
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
+13
-2
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
+11
-2
config.gradle
+2
-2
library-common/src/main/java/com/gingersoft/gsa/cloud/app/GsaCloudApplication.java
+2
-2
library-common/src/main/java/com/gingersoft/gsa/cloud/common/constans/PrintConstans.java
+0
-1
library-common/src/main/java/com/gingersoft/gsa/cloud/common/logan/LoganManager.java
+5
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/plugins/PrinterFlowListener.java
+2
-2
library-print/src/main/java/com/gingersoft/gsa/cloud/print/PrintDataMaker.java
+4
-0
library-print/src/main/java/com/gingersoft/gsa/cloud/print/PrintExecutor.java
+109
-153
library-print/src/main/java/com/gingersoft/gsa/cloud/print/PrintSocketHolder.java
+43
-126
library-print/src/main/java/com/gingersoft/gsa/cloud/print/bean/adapter/AdaptationContent.java
+2
-0
library-print/src/main/java/com/gingersoft/gsa/cloud/print/bean/adapter/PrintContentAdapter.java
+50
-3
library-print/src/main/java/com/gingersoft/gsa/cloud/print/newprint/ConnectPrintUtil.java
+1
-1
library-print/src/main/java/com/gingersoft/gsa/cloud/print/newprint/PrintUtil.java
+218
-218
library-ui/src/main/res/layout/print_item_food.xml
+2
-0
No files found.
component-coldchain/src/main/java/com/gingersoft/coldchain_module/mvp/presenter/OrderDetailsPresenter.java
View file @
f410baeb
...
@@ -212,8 +212,6 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
...
@@ -212,8 +212,6 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
mRootView
.
showMessage
(
OrderDetails
.
getVerifiAmountTip
());
mRootView
.
showMessage
(
OrderDetails
.
getVerifiAmountTip
());
return
;
return
;
}
}
//添加PRJ
addPrj
(
dataBean
);
RequestBody
requestBody
=
new
FormBody
.
Builder
()
RequestBody
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"memberId"
,
UserContext
.
newInstance
().
getMemberId
()
+
""
)
.
add
(
"memberId"
,
UserContext
.
newInstance
().
getMemberId
()
+
""
)
.
add
(
"orderId"
,
dataBean
.
getID
()
+
""
)
.
add
(
"orderId"
,
dataBean
.
getID
()
+
""
)
...
@@ -232,6 +230,8 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
...
@@ -232,6 +230,8 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
@Override
@Override
public
void
onNext
(
@NonNull
UpdateOrderStatusBean
info
)
{
public
void
onNext
(
@NonNull
UpdateOrderStatusBean
info
)
{
if
(
info
!=
null
)
{
if
(
info
!=
null
)
{
//添加PRJ
addPrj
(
dataBean
);
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
info
.
getErrorMsg
()))
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
info
.
getErrorMsg
()))
{
mRootView
.
showMessage
(
info
.
getErrorMsg
());
mRootView
.
showMessage
(
info
.
getErrorMsg
());
}
}
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/PageViewModel.kt
View file @
f410baeb
...
@@ -21,6 +21,7 @@ import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.Companion.veri
...
@@ -21,6 +21,7 @@ import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.Companion.veri
import
com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.Companion.verificationAmount
import
com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.Companion.verificationAmount
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
import
com.gingersoft.gsa.cloud.common.core.user.UserContext
import
com.gingersoft.gsa.cloud.common.core.user.UserContext
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
import
com.gingersoft.gsa.cloud.common.service.GetInfoUpdateService
import
com.gingersoft.gsa.cloud.common.service.GetInfoUpdateService
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
import
com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils
import
com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils
...
@@ -261,6 +262,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -261,6 +262,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}
}
},
{
},
{
//報錯處理
//報錯處理
LoganManager
.
w_delivery
(
LoganManager
.
EVENT_QUERY
,
"自動接單"
+
it
.
message
)
})
})
}
}
}
}
...
@@ -697,7 +699,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
...
@@ -697,7 +699,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
// })
// })
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_INSTRUCTION
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_INSTRUCTION
)
.
addParam
(
PrintConstans
.
PRINT_LOADING
,
false
)
.
setActionName
(
"printActivity"
)
.
setActionName
(
"printActivity"
)
.
build
()
.
build
()
.
callAsyncCallbackOnMainThread
{
_
,
_
->
.
callAsyncCallbackOnMainThread
{
_
,
_
->
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/ui/activity/PrjQueryActivity.java
View file @
f410baeb
...
@@ -211,7 +211,7 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
...
@@ -211,7 +211,7 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
private
void
organizeData
(
int
position
,
List
<
PrjBean
.
DataBean
.
Bean
>
prjData
)
{
private
void
organizeData
(
int
position
,
List
<
PrjBean
.
DataBean
.
Bean
>
prjData
)
{
if
(
prjData
.
get
(
position
).
getParentId
()
==
0
)
{
if
(
prjData
.
get
(
position
).
getParentId
()
==
0
)
{
//是主食品,判斷有沒有子食品,如果沒有子食品,直接打印主食品
//是主食品,判斷有沒有子食品,如果沒有子食品,直接打印主食品
if
(
position
+
1
>
prjData
.
size
())
{
if
(
position
+
1
>
=
prjData
.
size
())
{
//沒有子食品
//沒有子食品
//直接打印
//直接打印
List
<
PrjBean
.
DataBean
.
Bean
>
printDatas
=
new
ArrayList
<>();
List
<
PrjBean
.
DataBean
.
Bean
>
printDatas
=
new
ArrayList
<>();
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/activity/OrderDetailsActivity.kt
View file @
f410baeb
...
@@ -24,6 +24,7 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
...
@@ -24,6 +24,7 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
import
com.gingersoft.gsa.cloud.common.core.user.UserContext
import
com.gingersoft.gsa.cloud.common.core.user.UserContext
import
com.gingersoft.gsa.cloud.common.function.FunctionManager
import
com.gingersoft.gsa.cloud.common.function.FunctionManager
import
com.gingersoft.gsa.cloud.common.ui.utils.BtnBuilder
import
com.gingersoft.gsa.cloud.common.ui.utils.BtnBuilder
import
com.gingersoft.gsa.cloud.common.utils.ClipboardUtils
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
import
com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
import
com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
...
@@ -110,6 +111,11 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
...
@@ -110,6 +111,11 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
getOrderDetails
(
orderId
,
binding
)
getOrderDetails
(
orderId
,
binding
)
}
}
initTopBar
(
qm_order_details_bar
)
initTopBar
(
qm_order_details_bar
)
//訂單編號點擊事件
findViewById
<
TextView
>(
R
.
id
.
tv_order_no
).
setOnClickListener
{
ClipboardUtils
.
copyText
(
tv_order_no
.
text
)
showMessage
(
"複製成功"
)
}
}
}
private
fun
initTopBar
(
topbar
:
QMUITopBar
)
{
private
fun
initTopBar
(
topbar
:
QMUITopBar
)
{
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/fragment/HistoryFragment.kt
View file @
f410baeb
...
@@ -48,9 +48,6 @@ class HistoryFragment : BaseFragment(R.layout.fragment_other_order) {
...
@@ -48,9 +48,6 @@ class HistoryFragment : BaseFragment(R.layout.fragment_other_order) {
//顯示彈窗
//顯示彈窗
context
?.
let
{
context
->
context
?.
let
{
context
->
var
reasonDesc
=
it
.
reasonDesc
var
reasonDesc
=
it
.
reasonDesc
if
(
reasonDesc
==
null
)
{
reasonDesc
=
""
}
OtherOrderUtils
.
showOrderDetailsDialog
(
context
,
it2
,
it
.
orderStatus
,
it
.
orderType
,
it
.
orderPayType
,
it
.
payType
,
it
.
status
,
reasonDesc
,
true
)
{
_
,
_
,
_
->
OtherOrderUtils
.
showOrderDetailsDialog
(
context
,
it2
,
it
.
orderStatus
,
it
.
orderType
,
it
.
orderPayType
,
it
.
payType
,
it
.
status
,
reasonDesc
,
true
)
{
_
,
_
,
_
->
//重印
//重印
showLoading
()
showLoading
()
...
...
component-delivery-pick/src/main/res/layout/activity_order_details.xml
View file @
f410baeb
...
@@ -113,7 +113,7 @@
...
@@ -113,7 +113,7 @@
<include
layout=
"@layout/include_horizontal_color_eee_dividing_line"
/>
<include
layout=
"@layout/include_horizontal_color_eee_dividing_line"
/>
<!-- 訂單編號-->
<!-- 訂單編號-->
<TextView
<
com.qmuiteam.qmui.alpha.QMUIAlpha
TextView
android:id=
"@+id/tv_order_no"
android:id=
"@+id/tv_order_no"
style=
"@style/otherOrder_details_twelve_text_Style"
style=
"@style/otherOrder_details_twelve_text_Style"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
...
...
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
View file @
f410baeb
...
@@ -401,7 +401,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
...
@@ -401,7 +401,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
LoganManager
.
w_home
(
TAG
,
LoganManager
.
EVENT_CLICK
+
name
);
LoganManager
.
w_home
(
TAG
,
LoganManager
.
EVENT_CLICK
+
name
);
switch
(
name
)
{
switch
(
name
.
trim
()
)
{
case
"餐檯模式"
:
case
"餐檯模式"
:
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_TABLE
)
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_TABLE
)
.
setActionName
(
"showTableActivity"
)
.
setActionName
(
"showTableActivity"
)
...
...
component-main/src/main/res/layout/main_home_management_funcation_item.xml
View file @
f410baeb
...
@@ -18,7 +18,6 @@
...
@@ -18,7 +18,6 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:maxLength=
"4"
android:layout_marginTop=
"@dimen/dp_8"
android:layout_marginTop=
"@dimen/dp_8"
android:text=
"餐檯模式"
android:text=
"餐檯模式"
android:singleLine=
"true"
android:singleLine=
"true"
...
...
component-pay/src/main/java/com/gingersoft/gsa/cloud/pay/mvp/ui/activity/PayResultActivity.java
View file @
f410baeb
...
@@ -377,7 +377,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
...
@@ -377,7 +377,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
.
setActionName
(
"printActivity"
)
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_BILL
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_BILL
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
mMealPayResultParam
.
getMealOrderPayRequest
().
getOrderId
(
))
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
String
.
valueOf
(
mMealPayResultParam
.
getMealOrderPayRequest
().
getOrderId
()
))
.
build
()
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
Log
.
e
(
"error"
,
"是否成功打印:"
+
result
.
isSuccess
());
Log
.
e
(
"error"
,
"是否成功打印:"
+
result
.
isSuccess
());
...
...
component-print/src/main/java/com/joe/print/mvp/print/EpsonPrint.java
View file @
f410baeb
...
@@ -46,8 +46,8 @@ public class EpsonPrint implements ReceiveListener {
...
@@ -46,8 +46,8 @@ public class EpsonPrint implements ReceiveListener {
try
{
try
{
this
.
resultListener
=
resultListener
;
this
.
resultListener
=
resultListener
;
this
.
receiveListener
=
receiveListener
;
this
.
receiveListener
=
receiveListener
;
//第一個參數是機型,第二個參數是語言,
//第一個參數是機型,第二個參數是語言,
因為是打印圖片,語言沒有影響
mPrinter
=
new
Printer
(
Printer
.
TM_U220
,
Printer
.
MODEL_
KORE
AN
,
context
);
mPrinter
=
new
Printer
(
Printer
.
TM_U220
,
Printer
.
MODEL_
TAIW
AN
,
context
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
return
false
;
return
false
;
...
@@ -166,12 +166,12 @@ public class EpsonPrint implements ReceiveListener {
...
@@ -166,12 +166,12 @@ public class EpsonPrint implements ReceiveListener {
public
void
putPrintString
(
String
ip
,
int
paperWidth
,
List
<
PrintInfoBean
>
printInfoBeans
,
PrintExecutor
.
OnPrintResultListener
printResultListener
)
{
public
void
putPrintString
(
String
ip
,
int
paperWidth
,
List
<
PrintInfoBean
>
printInfoBeans
,
PrintExecutor
.
OnPrintResultListener
printResultListener
)
{
if
(
mPrinter
==
null
)
{
if
(
mPrinter
==
null
)
{
printResultListener
.
onResult
(
0
,
null
);
printResultListener
.
onResult
(
0
);
return
;
return
;
}
}
connectByIp
(
ip
,
mPrinter
.
getStatus
());
connectByIp
(
ip
,
mPrinter
.
getStatus
());
if
(
mPrinter
==
null
)
{
if
(
mPrinter
==
null
)
{
printResultListener
.
onResult
(
0
,
null
);
printResultListener
.
onResult
(
0
);
return
;
return
;
}
}
mPrinter
.
clearCommandBuffer
();
mPrinter
.
clearCommandBuffer
();
...
@@ -196,7 +196,7 @@ public class EpsonPrint implements ReceiveListener {
...
@@ -196,7 +196,7 @@ public class EpsonPrint implements ReceiveListener {
mPrinter
.
sendData
(
Printer
.
PARAM_DEFAULT
);
mPrinter
.
sendData
(
Printer
.
PARAM_DEFAULT
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
printResultListener
.
onResult
(
0
,
null
);
printResultListener
.
onResult
(
0
);
mPrinter
.
clearCommandBuffer
();
mPrinter
.
clearCommandBuffer
();
}
}
}
}
...
@@ -290,7 +290,6 @@ public class EpsonPrint implements ReceiveListener {
...
@@ -290,7 +290,6 @@ public class EpsonPrint implements ReceiveListener {
mPrinter
.
sendData
(
Printer
.
PARAM_DEFAULT
);
mPrinter
.
sendData
(
Printer
.
PARAM_DEFAULT
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
updatePrintState
(
PrintSocketHolder
.
ERROR_4
);
updatePrintState
(
PrintSocketHolder
.
ERROR_4
);
mPrinter
.
clearCommandBuffer
();
mPrinter
.
clearCommandBuffer
();
disconnectPrinter
();
disconnectPrinter
();
isPrint
=
false
;
isPrint
=
false
;
...
@@ -358,7 +357,7 @@ public class EpsonPrint implements ReceiveListener {
...
@@ -358,7 +357,7 @@ public class EpsonPrint implements ReceiveListener {
private
void
updatePrintState
(
int
code
){
private
void
updatePrintState
(
int
code
){
if
(
resultListener
!=
null
){
if
(
resultListener
!=
null
){
resultListener
.
onResult
(
code
,
null
);
resultListener
.
onResult
(
code
);
}
}
}
}
...
...
component-print/src/main/java/com/joe/print/mvp/print/IpPrintMaker.java
View file @
f410baeb
...
@@ -17,10 +17,14 @@ public class IpPrintMaker implements PrintDataMaker {
...
@@ -17,10 +17,14 @@ public class IpPrintMaker implements PrintDataMaker {
private
int
width
;
// 打印的圖片寬度,紙張寬度
private
int
width
;
// 打印的圖片寬度,紙張寬度
private
List
<
Bitmap
>
bitmaps
;
private
List
<
Bitmap
>
bitmaps
;
private
String
ip
;
private
int
port
;
public
IpPrintMaker
(
int
width
,
List
<
Bitmap
>
bitmaps
)
{
public
IpPrintMaker
(
int
width
,
List
<
Bitmap
>
bitmaps
,
String
ip
,
int
port
)
{
this
.
width
=
width
;
this
.
width
=
width
;
this
.
bitmaps
=
bitmaps
;
this
.
bitmaps
=
bitmaps
;
this
.
ip
=
ip
;
this
.
port
=
port
;
}
}
@Override
@Override
...
@@ -39,11 +43,12 @@ public class IpPrintMaker implements PrintDataMaker {
...
@@ -39,11 +43,12 @@ public class IpPrintMaker implements PrintDataMaker {
data
.
add
(
printer
.
getDataAndReset
());
data
.
add
(
printer
.
getDataAndReset
());
}
}
data
.
add
(
printer
.
getDataAndClose
());
data
.
add
(
printer
.
getDataAndClose
());
for
(
int
i
=
0
;
i
<
bitmaps
.
size
();
i
++){
for
(
int
i
=
0
;
i
<
bitmaps
.
size
();
i
++)
{
bitmaps
.
get
(
i
).
recycle
();
bitmaps
.
get
(
i
).
recycle
();
}
}
return
data
;
return
data
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
new
ArrayList
<>();
return
new
ArrayList
<>();
}
}
}
}
...
@@ -52,4 +57,15 @@ public class IpPrintMaker implements PrintDataMaker {
...
@@ -52,4 +57,15 @@ public class IpPrintMaker implements PrintDataMaker {
public
String
getPrjIds
()
{
public
String
getPrjIds
()
{
return
null
;
return
null
;
}
}
@Override
public
String
getIp
()
{
return
ip
;
}
@Override
public
int
getPort
()
{
return
port
;
}
}
}
component-print/src/main/java/com/joe/print/mvp/print/OpenCashBoxMaker.java
View file @
f410baeb
...
@@ -13,6 +13,14 @@ import java.util.List;
...
@@ -13,6 +13,14 @@ import java.util.List;
*/
*/
public
class
OpenCashBoxMaker
implements
PrintDataMaker
{
public
class
OpenCashBoxMaker
implements
PrintDataMaker
{
private
String
ip
;
private
int
port
;
public
OpenCashBoxMaker
(
String
ip
,
int
port
)
{
this
.
ip
=
ip
;
this
.
port
=
port
;
}
@Override
@Override
public
List
<
byte
[]>
getPrintData
()
{
public
List
<
byte
[]>
getPrintData
()
{
ArrayList
<
byte
[]>
data
=
new
ArrayList
<>();
ArrayList
<
byte
[]>
data
=
new
ArrayList
<>();
...
@@ -31,4 +39,14 @@ public class OpenCashBoxMaker implements PrintDataMaker {
...
@@ -31,4 +39,14 @@ public class OpenCashBoxMaker implements PrintDataMaker {
public
String
getPrjIds
()
{
public
String
getPrjIds
()
{
return
null
;
return
null
;
}
}
@Override
public
String
getIp
()
{
return
ip
;
}
@Override
public
int
getPort
()
{
return
port
;
}
}
}
component-print/src/main/java/com/joe/print/mvp/print/PrintBill.java
View file @
f410baeb
...
@@ -4,6 +4,7 @@ import android.content.Context;
...
@@ -4,6 +4,7 @@ import android.content.Context;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
com.gingersoft.gsa.cloud.common.constans.AppConstans
;
import
com.gingersoft.gsa.cloud.common.constans.AppConstans
;
import
com.gingersoft.gsa.cloud.common.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.common.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails
;
import
com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails
;
...
@@ -12,6 +13,7 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInf
...
@@ -12,6 +13,7 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInf
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.order.cart.ShoppingCart
;
import
com.gingersoft.gsa.cloud.order.cart.ShoppingCart
;
...
@@ -51,7 +53,8 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
...
@@ -51,7 +53,8 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
public
Map
<
String
,
List
<
Bitmap
>>
getPrintBitmap
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
public
Map
<
String
,
List
<
Bitmap
>>
getPrintBitmap
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
Map
<
String
,
List
<
Bitmap
>>
bitmapMaps
=
new
HashMap
<>();
Map
<
String
,
List
<
Bitmap
>>
bitmapMaps
=
new
HashMap
<>();
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
bitmaps
.
add
(
getBitmap
(
mContext
,
deviceBean
));
Bitmap
bitmap
=
getBitmap
(
mContext
,
deviceBean
);
bitmaps
.
add
(
bitmap
);
bitmapMaps
.
put
(
""
,
bitmaps
);
bitmapMaps
.
put
(
""
,
bitmaps
);
return
bitmapMaps
;
return
bitmapMaps
;
}
}
...
@@ -235,7 +238,7 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
...
@@ -235,7 +238,7 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
layout
.
addView
(
getTableMealMemberIntegerView
(
mContext
,
getOrderMemberInfo
(),
mPrintBillContent
.
getIntegralQrCode
()));
layout
.
addView
(
getTableMealMemberIntegerView
(
mContext
,
getOrderMemberInfo
(),
mPrintBillContent
.
getIntegralQrCode
()));
return
zoomBitmap
(
deviceBean
,
viewToBitmap
(
mContext
,
layout
)
);
return
viewToZoomBitmap
(
mContext
,
layout
,
deviceBean
);
}
}
...
...
component-print/src/main/java/com/joe/print/mvp/print/PrintServe.java
View file @
f410baeb
...
@@ -6,8 +6,10 @@ import android.view.Gravity;
...
@@ -6,8 +6,10 @@ import android.view.Gravity;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
...
@@ -31,6 +33,7 @@ import static com.joe.print.mvp.print.common.HtmlContract.LABLE_DIV;
...
@@ -31,6 +33,7 @@ import static com.joe.print.mvp.print.common.HtmlContract.LABLE_DIV;
public
class
PrintServe
extends
PrinterRoot
<
PrintServingPaperContent
>
{
public
class
PrintServe
extends
PrinterRoot
<
PrintServingPaperContent
>
{
private
PrintServingPaperContent
mPrintServingPaperContent
;
private
PrintServingPaperContent
mPrintServingPaperContent
;
private
final
String
TAG
=
getClass
().
getSimpleName
();
@Override
@Override
protected
void
setPrintContent
(
PrintServingPaperContent
printContent
)
{
protected
void
setPrintContent
(
PrintServingPaperContent
printContent
)
{
...
@@ -41,7 +44,11 @@ public class PrintServe extends PrinterRoot<PrintServingPaperContent> {
...
@@ -41,7 +44,11 @@ public class PrintServe extends PrinterRoot<PrintServingPaperContent> {
public
Map
<
String
,
List
<
Bitmap
>>
getPrintBitmap
(
Context
mContext
,
PrinterDeviceBean
printerDeviceBean
)
{
public
Map
<
String
,
List
<
Bitmap
>>
getPrintBitmap
(
Context
mContext
,
PrinterDeviceBean
printerDeviceBean
)
{
Map
<
String
,
List
<
Bitmap
>>
bitmapMaps
=
new
HashMap
<>();
Map
<
String
,
List
<
Bitmap
>>
bitmapMaps
=
new
HashMap
<>();
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
bitmaps
.
add
(
getBitmap
(
mContext
,
printerDeviceBean
));
Bitmap
bitmap
=
getBitmap
(
mContext
,
printerDeviceBean
);
if
(
bitmap
==
null
)
{
return
null
;
}
bitmaps
.
add
(
bitmap
);
bitmapMaps
.
put
(
""
,
bitmaps
);
bitmapMaps
.
put
(
""
,
bitmaps
);
return
bitmapMaps
;
return
bitmapMaps
;
}
}
...
@@ -135,6 +142,7 @@ public class PrintServe extends PrinterRoot<PrintServingPaperContent> {
...
@@ -135,6 +142,7 @@ public class PrintServe extends PrinterRoot<PrintServingPaperContent> {
List
<
PrintFoodItem
>
foodItemList
=
mPrintServingPaperContent
.
getFoodItemList
();
List
<
PrintFoodItem
>
foodItemList
=
mPrintServingPaperContent
.
getFoodItemList
();
if
(
foodItemList
==
null
||
foodItemList
.
size
()
<=
0
)
{
if
(
foodItemList
==
null
||
foodItemList
.
size
()
<=
0
)
{
LoganManager
.
w_printer
(
TAG
,
"生成打印數據失敗,上菜紙沒有食品"
);
return
null
;
return
null
;
}
}
...
...
component-print/src/main/java/com/joe/print/mvp/print/PrintSlip.java
View file @
f410baeb
...
@@ -4,12 +4,15 @@ import android.content.Context;
...
@@ -4,12 +4,15 @@ import android.content.Context;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.view.Gravity
;
import
android.view.Gravity
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
com.gingersoft.gsa.cloud.common.constans.AppConstans
;
import
com.gingersoft.gsa.cloud.common.constans.AppConstans
;
import
com.gingersoft.gsa.cloud.common.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.common.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.order.cart.ShoppingCart
;
import
com.gingersoft.gsa.cloud.order.cart.ShoppingCart
;
...
@@ -22,6 +25,7 @@ import com.joe.print.R;
...
@@ -22,6 +25,7 @@ import com.joe.print.R;
import
com.joe.print.mvp.model.bean.BillingBean
;
import
com.joe.print.mvp.model.bean.BillingBean
;
import
com.joe.print.mvp.model.bean.HtmlLable
;
import
com.joe.print.mvp.model.bean.HtmlLable
;
import
com.joe.print.mvp.print.common.HtmlContract
;
import
com.joe.print.mvp.print.common.HtmlContract
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
...
@@ -37,6 +41,7 @@ import static com.joe.print.mvp.print.common.HtmlContract.LABLE_P;
...
@@ -37,6 +41,7 @@ import static com.joe.print.mvp.print.common.HtmlContract.LABLE_P;
public
class
PrintSlip
extends
PrinterRoot
<
PrintSlipContent
>
{
public
class
PrintSlip
extends
PrinterRoot
<
PrintSlipContent
>
{
private
PrintSlipContent
mPrintSlipContent
;
private
PrintSlipContent
mPrintSlipContent
;
private
final
String
TAG
=
getClass
().
getSimpleName
();
@Override
@Override
protected
void
setPrintContent
(
PrintSlipContent
printContent
)
{
protected
void
setPrintContent
(
PrintSlipContent
printContent
)
{
...
@@ -47,8 +52,13 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
...
@@ -47,8 +52,13 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
public
Map
<
String
,
List
<
Bitmap
>>
getPrintBitmap
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
public
Map
<
String
,
List
<
Bitmap
>>
getPrintBitmap
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
Map
<
String
,
List
<
Bitmap
>>
bitmapMaps
=
new
HashMap
<>();
Map
<
String
,
List
<
Bitmap
>>
bitmapMaps
=
new
HashMap
<>();
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
Bitmap
bitmap
=
getBitmap
(
mContext
,
deviceBean
);
if
(
bitmap
!=
null
)
{
bitmaps
.
add
(
getBitmap
(
mContext
,
deviceBean
));
bitmaps
.
add
(
getBitmap
(
mContext
,
deviceBean
));
bitmapMaps
.
put
(
""
,
bitmaps
);
bitmapMaps
.
put
(
""
,
bitmaps
);
}
else
{
return
null
;
}
//這裡可能還需要加上廚房單的內容,有未送單的食品時。
//這裡可能還需要加上廚房單的內容,有未送單的食品時。
// PrintKitchen kitchen = new PrintKitchen();
// PrintKitchen kitchen = new PrintKitchen();
// Map<String, List<Bitmap>> bitmapMaps = new HashMap<>(kitchen.getPrintBitmap(mContext, deviceBean));
// Map<String, List<Bitmap>> bitmapMaps = new HashMap<>(kitchen.getPrintBitmap(mContext, deviceBean));
...
@@ -69,7 +79,7 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
...
@@ -69,7 +79,7 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
List
<
PrintFoodItem
>
foodList
=
mPrintSlipContent
.
getFoodItemList
();
List
<
PrintFoodItem
>
foodList
=
mPrintSlipContent
.
getFoodItemList
();
if
(
foodList
.
size
()
==
0
)
{
if
(
foodList
.
size
()
==
0
)
{
return
new
String
[]{
"<html><body></body></html>"
};
return
new
String
[]{
"<html><body></body></html>"
};
}
}
...
@@ -175,6 +185,7 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
...
@@ -175,6 +185,7 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
List
<
PrintFoodItem
>
foodList
=
mPrintSlipContent
.
getFoodItemList
();
List
<
PrintFoodItem
>
foodList
=
mPrintSlipContent
.
getFoodItemList
();
if
(
foodList
==
null
||
foodList
.
size
()
<=
0
)
{
if
(
foodList
==
null
||
foodList
.
size
()
<=
0
)
{
LoganManager
.
w_printer
(
TAG
,
"生成打印數據失敗,印單沒有食品"
);
return
null
;
return
null
;
}
}
...
...
component-print/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
View file @
f410baeb
...
@@ -275,7 +275,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
...
@@ -275,7 +275,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
if
(
isSuccess
)
{
if
(
isSuccess
)
{
listener
.
printSuccess
();
listener
.
printSuccess
();
}
else
{
}
else
{
listener
.
printFailure
(
"打印失敗"
);
listener
.
printFailure
(
"
sunmi
打印失敗"
);
}
}
}
}
...
@@ -323,24 +323,19 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
...
@@ -323,24 +323,19 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
}
}
}
}
public
void
ipDevicePrint
(
PrinterDeviceBean
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
)
{
ipDevicePrint
(
printerDeviceBean
,
bitmaps
,
this
,
this
);
}
private
EpsonPrint
mPrinter
;
private
PrintExecutor
executor
;
private
PrintExecutor
executor
;
/**
/**
* ip設備打印
* ip設備打印
*/
*/
private
void
ipDevicePrint
(
PrinterDeviceBean
public
void
ipDevicePrint
(
PrinterDeviceBean
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
,
PrintSocketHolder
.
OnStateChangedListener
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
)
{
stateChangedListener
,
PrintExecutor
.
OnPrintResultListener
resultListener
)
{
//獲取打印機機型,如果是EPSON的打印機,調用EPSON的打印方法
//獲取打印機機型,如果是EPSON的打印機,調用EPSON的打印方法
if
((
printerDeviceBean
.
getPrinterName
()
!=
null
&&
printerDeviceBean
.
getPrinterName
().
toLowerCase
().
contains
(
"EPSON"
.
toLowerCase
()))
if
((
printerDeviceBean
.
getPrinterName
()
!=
null
&&
printerDeviceBean
.
getPrinterName
().
toLowerCase
().
contains
(
"EPSON"
.
toLowerCase
())))
{
&&
(
printerDeviceBean
.
getModel
()
!=
null
&&
printerDeviceBean
.
getModel
().
toLowerCase
().
contains
(
"TM-U220B"
.
toLowerCase
())))
{
if
(
printerDeviceBean
.
getModel
()
!=
null
)
{
if
(
printerDeviceBean
.
getModel
().
toLowerCase
().
contains
(
"TM-U220B"
.
toLowerCase
()))
{
ThreadPoolManager
.
getInstence
().
putExecutableTasks
(()
->
{
ThreadPoolManager
.
getInstence
().
putExecutableTasks
(()
->
{
mPrinter
=
EpsonPrint
.
getInstance
();
EpsonPrint
mPrinter
=
EpsonPrint
.
getInstance
();
mPrinter
.
setPrint
(
false
);
mPrinter
.
setPrint
(
false
);
mPrinter
.
initializeObject
(
GsaCloudApplication
.
getAppContext
(),
PrinterRoot
.
this
,
PrinterRoot
.
this
);
mPrinter
.
initializeObject
(
GsaCloudApplication
.
getAppContext
(),
PrinterRoot
.
this
,
PrinterRoot
.
this
);
for
(
int
j
=
0
;
j
<
bitmaps
.
size
();
j
++)
{
for
(
int
j
=
0
;
j
<
bitmaps
.
size
();
j
++)
{
...
@@ -348,18 +343,22 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
...
@@ -348,18 +343,22 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
}
}
}
}
);
);
}
else
{
return
;
}
}
}
ipPrint
(
printerDeviceBean
,
bitmaps
,
this
,
this
);
}
private
void
ipPrint
(
PrinterDeviceBean
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
,
PrintSocketHolder
.
OnStateChangedListener
stateChangedListener
,
PrintExecutor
.
OnPrintResultListener
resultListener
)
{
if
(
executor
==
null
)
{
if
(
executor
==
null
)
{
executor
=
new
PrintExecutor
(
printerDeviceBean
);
executor
=
new
PrintExecutor
()
executor
.
setOnStateChangedListener
(
stateChangedListener
);
.
setOnStateChangedListener
(
stateChangedListener
)
executor
.
setOnPrintResultListener
(
resultListener
);
.
setOnPrintResultListener
(
resultListener
);
}
else
{
executor
.
setPrinterDeviceBean
(
printerDeviceBean
);
}
}
IpPrintMaker
maker
=
new
IpPrintMaker
(
480
,
bitmaps
);
IpPrintMaker
maker
=
new
IpPrintMaker
(
480
,
bitmaps
,
printerDeviceBean
.
getIp
(),
printerDeviceBean
.
getPort
()
);
executor
.
doPrinterRequestAsync
(
maker
);
executor
.
doPrinterRequestAsync
(
maker
);
}
}
}
public
void
usbPrint
(
Context
context
,
List
<
Bitmap
>
bitmaps
)
{
public
void
usbPrint
(
Context
context
,
List
<
Bitmap
>
bitmaps
)
{
UsbPrint
usbPrint
=
new
UsbPrint
(
context
,
(
code
,
printId
)
->
{
UsbPrint
usbPrint
=
new
UsbPrint
(
context
,
(
code
,
printId
)
->
{
...
@@ -408,31 +407,23 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
...
@@ -408,31 +407,23 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
printerFinder
.
startFinder
();
printerFinder
.
startFinder
();
}
}
public
void
transmitPrjToPc
(
PrinterDeviceBean
defaultPrint
)
{
}
/**
/**
* view轉bitmap
* view轉為縮放後的bitmap
*
* @param context
* @param view
* @return
*/
*/
final
Bitmap
viewToBitmap
(
Context
context
,
View
view
)
{
LayoutToBitmapUtils
.
layoutView
(
context
,
view
);
//先测量view
//轉為bitmap
return
LayoutToBitmapUtils
.
loadBitmapFromView
(
view
);
}
final
Bitmap
viewToZoomBitmap
(
Context
context
,
View
view
,
PrinterDeviceBean
printerDeviceBean
)
{
final
Bitmap
viewToZoomBitmap
(
Context
context
,
View
view
,
PrinterDeviceBean
printerDeviceBean
)
{
LayoutToBitmapUtils
.
layoutView
(
context
,
view
);
//先测量view
LayoutToBitmapUtils
.
layoutView
(
context
,
view
);
//先测量view
//轉為bitmap
//轉為bitmap
return
zoomBitmap
(
printerDeviceBean
,
LayoutToBitmapUtils
.
loadBitmapFromView
(
view
));
return
zoomBitmap
(
printerDeviceBean
,
LayoutToBitmapUtils
.
loadBitmapFromView
(
view
));
}
}
public
Bitmap
zoomBitmap
(
PrinterDeviceBean
printerDeviceBean
,
Bitmap
bitmap
)
{
/**
* 縮放bitmap
*
* @param printerDeviceBean
* @param bitmap
* @return
*/
private
Bitmap
zoomBitmap
(
PrinterDeviceBean
printerDeviceBean
,
Bitmap
bitmap
)
{
int
printWidth
;
int
printWidth
;
if
(
printerDeviceBean
!=
null
&&
printerDeviceBean
.
getPaperSpecification
()
!=
null
)
{
if
(
printerDeviceBean
!=
null
&&
printerDeviceBean
.
getPaperSpecification
()
!=
null
)
{
printWidth
=
Double
.
valueOf
(
printerDeviceBean
.
getPaperSpecification
()).
intValue
();
printWidth
=
Double
.
valueOf
(
printerDeviceBean
.
getPaperSpecification
()).
intValue
();
...
@@ -444,10 +435,10 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
...
@@ -444,10 +435,10 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
}
}
@Override
@Override
public
void
onResult
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
)
{
public
void
onResult
(
int
errorCode
)
{
switch
(
errorCode
)
{
switch
(
errorCode
)
{
case
PrintSocketHolder
.
ERROR_0
:
case
PrintSocketHolder
.
ERROR_0
:
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
(
printerDeviceBean
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
();
printSuccess
();
printSuccess
();
return
;
return
;
case
PrintSocketHolder
.
ERROR_1
:
case
PrintSocketHolder
.
ERROR_1
:
...
@@ -477,7 +468,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
...
@@ -477,7 +468,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
LoganManager
.
w_printer
(
TAG
,
"打印失败"
);
LoganManager
.
w_printer
(
TAG
,
"打印失败"
);
break
;
break
;
}
}
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
errorCode
,
printerDeviceBean
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
errorCode
);
setPrintState
(
errorCode
);
setPrintState
(
errorCode
);
}
}
...
@@ -494,7 +485,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
...
@@ -494,7 +485,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
}
}
@Override
@Override
public
void
onStateChanged
(
int
state
,
PrinterDeviceBean
printerDeviceBean
)
{
public
void
onStateChanged
(
int
state
)
{
setPrintState
(
state
);
setPrintState
(
state
);
}
}
...
@@ -832,6 +823,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
...
@@ -832,6 +823,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
/**
/**
* 獲取食品列表
* 獲取食品列表
* 結賬單、印單。外送都用這個
* 結賬單、印單。外送都用這個
*
* @param mContext
* @param mContext
* @param foodList 食品信息
* @param foodList 食品信息
* @param deviceBean 打印設備
* @param deviceBean 打印設備
...
@@ -854,6 +846,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
...
@@ -854,6 +846,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
/**
/**
* 結賬單和印單
* 結賬單和印單
*
* @param mContext
* @param mContext
* @param billingBeans
* @param billingBeans
* @return
* @return
...
@@ -865,6 +858,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
...
@@ -865,6 +858,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
/**
/**
* 結賬單,支付方式
* 結賬單,支付方式
*
* @param mContext
* @param mContext
* @param payBillMoneys 支付方式數據
* @param payBillMoneys 支付方式數據
* @return
* @return
...
...
component-print/src/main/java/com/joe/print/mvp/print/TestPrintMaker.java
View file @
f410baeb
...
@@ -22,19 +22,14 @@ public class TestPrintMaker implements PrintDataMaker {
...
@@ -22,19 +22,14 @@ public class TestPrintMaker implements PrintDataMaker {
private
List
<
PrintInfoBean
>
printInfoBeans
;
private
List
<
PrintInfoBean
>
printInfoBeans
;
private
Bitmap
bitmap
;
private
Bitmap
bitmap
;
public
TestPrintMaker
(
PrinterWriter
printer
,
List
<
PrintInfoBean
>
printInfoBeans
)
{
private
String
ip
;
private
int
port
;
public
TestPrintMaker
(
PrinterWriter
printer
,
List
<
PrintInfoBean
>
printInfoBeans
,
String
ip
,
int
port
)
{
this
.
printer
=
printer
;
this
.
printer
=
printer
;
this
.
printInfoBeans
=
printInfoBeans
;
this
.
printInfoBeans
=
printInfoBeans
;
}
this
.
ip
=
ip
;
public
TestPrintMaker
(
List
<
PrintInfoBean
>
printInfoBeans
)
{
this
.
port
=
port
;
this
.
printInfoBeans
=
printInfoBeans
;
}
public
TestPrintMaker
(
PrinterWriter
printer
)
{
this
.
printer
=
printer
;
}
public
TestPrintMaker
(
Bitmap
bitmap
)
{
this
.
bitmap
=
bitmap
;
}
}
@Override
@Override
...
@@ -71,6 +66,16 @@ public class TestPrintMaker implements PrintDataMaker {
...
@@ -71,6 +66,16 @@ public class TestPrintMaker implements PrintDataMaker {
return
null
;
return
null
;
}
}
@Override
public
String
getIp
()
{
return
ip
;
}
@Override
public
int
getPort
()
{
return
port
;
}
private
void
print
(
PrintInfoBean
printInfoBean
,
int
i
)
throws
IOException
{
private
void
print
(
PrintInfoBean
printInfoBean
,
int
i
)
throws
IOException
{
// if (i == 0) {
// if (i == 0) {
// location = 0;
// location = 0;
...
...
component-print/src/main/java/com/joe/print/mvp/print/maker/PrjPrintMaker.java
View file @
f410baeb
...
@@ -17,11 +17,16 @@ import java.util.Map;
...
@@ -17,11 +17,16 @@ import java.util.Map;
public
class
PrjPrintMaker
implements
PrintDataMaker
{
public
class
PrjPrintMaker
implements
PrintDataMaker
{
private
Map
<
String
,
Bitmap
>
bitmapMap
;
private
Map
<
String
,
Bitmap
>
bitmapMap
;
private
String
ip
;
private
int
port
;
public
PrjPrintMaker
(
Map
<
String
,
Bitmap
>
bitmapMap
)
{
public
PrjPrintMaker
(
Map
<
String
,
Bitmap
>
bitmapMap
,
String
ip
,
int
port
)
{
this
.
bitmapMap
=
bitmapMap
;
this
.
bitmapMap
=
bitmapMap
;
this
.
ip
=
ip
;
this
.
port
=
port
;
}
}
@Override
@Override
public
List
<
byte
[]>
getPrintData
()
{
public
List
<
byte
[]>
getPrintData
()
{
ArrayList
<
byte
[]>
data
=
new
ArrayList
<>();
ArrayList
<
byte
[]>
data
=
new
ArrayList
<>();
...
@@ -48,4 +53,14 @@ public class PrjPrintMaker implements PrintDataMaker {
...
@@ -48,4 +53,14 @@ public class PrjPrintMaker implements PrintDataMaker {
}
}
return
""
;
return
""
;
}
}
@Override
public
String
getIp
()
{
return
ip
;
}
@Override
public
int
getPort
()
{
return
port
;
}
}
}
component-print/src/main/java/com/joe/print/mvp/print/service/PrjService.java
View file @
f410baeb
...
@@ -16,6 +16,7 @@ import com.epson.epos2.Epos2Exception;
...
@@ -16,6 +16,7 @@ import com.epson.epos2.Epos2Exception;
import
com.epson.epos2.printer.Printer
;
import
com.epson.epos2.printer.Printer
;
import
com.epson.epos2.printer.PrinterStatusInfo
;
import
com.epson.epos2.printer.PrinterStatusInfo
;
import
com.epson.epos2.printer.ReceiveListener
;
import
com.epson.epos2.printer.ReceiveListener
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.common.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
...
@@ -41,7 +42,10 @@ import com.gingersoft.gsa.cloud.print.bean.UpdateBean;
...
@@ -41,7 +42,10 @@ import com.gingersoft.gsa.cloud.print.bean.UpdateBean;
import
com.hyweb.n5.lib.constant.PrinterConstant
;
import
com.hyweb.n5.lib.constant.PrinterConstant
;
import
com.hyweb.n5.lib.util.PrinterUtil
;
import
com.hyweb.n5.lib.util.PrinterUtil
;
import
com.hyweb.n5.server.aidl.IOnPrintCallback
;
import
com.hyweb.n5.server.aidl.IOnPrintCallback
;
import
com.joe.print.mvp.print.EpsonPrint
;
import
com.joe.print.mvp.print.IpPrintMaker
;
import
com.joe.print.mvp.print.PrintPrjKitchen
;
import
com.joe.print.mvp.print.PrintPrjKitchen
;
import
com.joe.print.mvp.print.PrinterRoot
;
import
com.joe.print.mvp.print.common.PrinterFinderCallback
;
import
com.joe.print.mvp.print.common.PrinterFinderCallback
;
import
com.joe.print.mvp.print.common.SendResultCode
;
import
com.joe.print.mvp.print.common.SendResultCode
;
import
com.joe.print.mvp.print.maker.PrjPrintMaker
;
import
com.joe.print.mvp.print.maker.PrjPrintMaker
;
...
@@ -114,6 +118,11 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -114,6 +118,11 @@ public class PrjService extends Service implements ReceiveListener {
@Override
@Override
public
void
onDestroy
()
{
public
void
onDestroy
()
{
super
.
onDestroy
();
super
.
onDestroy
();
printerFinder
.
unregisterReceiver
();
PrintSocketHolder
.
getInstance
().
closeSocket
();
//關閉針式連接
EpsonPrint
.
getInstance
().
disconnectPrinter
();
EpsonPrint
.
getInstance
().
finalizeObject
();
LoganManager
.
w_printer
(
TAG
,
"onDestroy"
);
LoganManager
.
w_printer
(
TAG
,
"onDestroy"
);
}
}
...
@@ -160,6 +169,10 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -160,6 +169,10 @@ public class PrjService extends Service implements ReceiveListener {
pollDisposable
=
RxJavaUtils
.
polling
(
10
,
30
,
TimeUnit
.
SECONDS
)
pollDisposable
=
RxJavaUtils
.
polling
(
10
,
30
,
TimeUnit
.
SECONDS
)
.
subscribe
(
aLong
->
{
.
subscribe
(
aLong
->
{
LoganManager
.
w_printer
(
TAG
,
"獲取Prj數據-->"
);
LoganManager
.
w_printer
(
TAG
,
"獲取Prj數據-->"
);
//輪詢時,關閉打印機連接,避免一直佔用打印機socket連接
EpsonPrint
.
getInstance
().
disconnectPrinter
();
EpsonPrint
.
getInstance
().
finalizeObject
();
//獲取prj數據
getPrjInfo
();
getPrjInfo
();
});
});
}
}
...
@@ -215,8 +228,9 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -215,8 +228,9 @@ public class PrjService extends Service implements ReceiveListener {
private
int
totalPrj
;
private
int
totalPrj
;
private
int
currentIndex
;
private
int
currentIndex
;
private
String
prjJson
=
""
;
private
void
newPrint
(
String
json
)
{
private
void
newPrint
(
String
json
)
{
// json = prjJson;
Map
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
listMap
=
new
HashMap
<>();
Map
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
listMap
=
new
HashMap
<>();
currentIndex
=
0
;
currentIndex
=
0
;
totalPrj
=
0
;
totalPrj
=
0
;
...
@@ -503,77 +517,49 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -503,77 +517,49 @@ public class PrjService extends Service implements ReceiveListener {
hookPrinterBitmap
(
bitmapMaps
,
beans
);
hookPrinterBitmap
(
bitmapMaps
,
beans
);
EpsIds
=
getPrintIds
(
bitmapMaps
);
EpsIds
=
getPrintIds
(
bitmapMaps
);
//第一個參數是機型,第二個參數是語言,
Printer
mPrinter
=
null
;
try
{
mPrinter
=
new
Printer
(
Printer
.
TM_U220
,
Printer
.
MODEL_KOREAN
,
this
);
mPrinter
.
setReceiveEventListener
(
this
);
}
catch
(
Epos2Exception
e
)
{
e
.
printStackTrace
();
updatePrjFailure
(
getPrintIds
(
bitmapMaps
));
}
if
(
mPrinter
!=
null
)
{
try
{
mPrinter
.
clearCommandBuffer
();
for
(
int
i
=
0
;
i
<
bitmapMaps
.
size
();
i
++)
{
for
(
Map
.
Entry
<
String
,
Bitmap
>
mapEntry
:
bitmapMaps
.
get
(
i
).
entrySet
())
{
mPrinter
.
addImage
(
mapEntry
.
getValue
(),
0
,
0
,
mapEntry
.
getValue
().
getWidth
(),
mapEntry
.
getValue
().
getHeight
(),
Printer
.
COLOR_1
,
Printer
.
MODE_MONO_HIGH_DENSITY
,
//高密度
Printer
.
HALFTONE_DITHER
,
//半色調抖動
Printer
.
PARAM_DEFAULT
,
Printer
.
COMPRESS_NONE
);
//壓縮
mPrinter
.
addCut
(
Printer
.
CUT_FEED
);
}
}
}
catch
(
Epos2Exception
e
)
{
e
.
printStackTrace
();
updatePrjFailure
(
getPrintIds
(
bitmapMaps
));
mPrinter
.
clearCommandBuffer
();
}
try
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionBefore
(
"針式打印機"
,
printerDeviceBean
.
getIp
(),
printerDeviceBean
.
getPort
(),
0
,
0
);
mPrinter
.
connect
(
"TCP:"
+
printerDeviceBean
.
getIp
(),
Printer
.
PARAM_DEFAULT
);
mPrinter
.
sendData
(
Printer
.
PARAM_DEFAULT
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
updatePrjFailure
(
getPrintIds
(
bitmapMaps
));
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionError
(
e
);
while
(
true
)
{
try
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
disconnect
();
mPrinter
.
disconnect
();
break
;
}
catch
(
final
Exception
ex
)
{
if
(
ex
instanceof
Epos2Exception
)
{
//Note: If printer is processing such as printing and so on, the disconnect API returns ERR_PROCESSING.
if
(((
Epos2Exception
)
ex
).
getErrorStatus
()
==
Epos2Exception
.
ERR_PROCESSING
)
{
}
else
{
EpsonPrint
mPrinter
=
EpsonPrint
.
getInstance
();
mPrinter
.
setPrint
(
false
);
boolean
initResult
=
EpsonPrint
.
getInstance
().
initializeObject
(
this
,
this
,
new
PrintExecutor
.
OnPrintResultListener
()
{
@Override
public
void
onResult
(
int
errorCode
)
{
switch
(
errorCode
)
{
case
PrintSocketHolder
.
ERROR_1
:
LoganManager
.
w_printer
(
TAG
,
"針式創建打印數據失敗"
);
break
;
break
;
}
case
PrintSocketHolder
.
ERROR_2
:
}
else
{
LoganManager
.
w_printer
(
TAG
,
"針式沒紙或未連接"
);
break
;
case
PrintSocketHolder
.
ERROR_4
:
LoganManager
.
w_printer
(
TAG
,
"針式發送打印數據失敗"
);
break
;
default
:
break
;
break
;
}
}
updatePrjFailure
(
EpsIds
);
}
}
});
if
(!
initResult
)
{
updatePrjFailure
(
EpsIds
);
return
;
}
}
mPrinter
.
clearCommandBuffer
();
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionBefore
(
"針式打印機"
,
printerDeviceBean
.
getIp
(),
printerDeviceBean
.
getPort
(),
0
,
0
);
mPrinter
.
setReceiveEventListener
(
null
);
for
(
int
i
=
0
;
i
<
bitmapMaps
.
size
();
i
++)
{
for
(
Map
.
Entry
<
String
,
Bitmap
>
mapEntry
:
bitmapMaps
.
get
(
i
).
entrySet
())
{
mPrinter
.
putPrintData
(
printerDeviceBean
.
getIp
(),
mapEntry
.
getValue
());
}
}
}
else
{
updatePrjFailure
(
EpsIds
);
}
}
}
}
PrintExecutor
executor
;
/**
/**
* ip設備打印
* ip設備打印
*/
*/
public
void
ipPrint
(
PrinterDeviceBean
printerDeviceBean
,
List
<
Map
<
String
,
Bitmap
>>
bitmapMaps
)
{
public
void
ipPrint
(
PrinterDeviceBean
printerDeviceBean
,
List
<
Map
<
String
,
Bitmap
>>
bitmapMaps
)
{
for
(
int
i
=
0
;
i
<
bitmapMaps
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
bitmapMaps
.
size
();
i
++)
{
PrintExecutor
executor
=
new
PrintExecutor
(
printerDeviceBean
);
if
(
executor
==
null
)
{
executor
.
setOnPrjPrintResultListener
((
errorCode
,
ids
)
->
{
executor
=
new
PrintExecutor
()
.
setOnPrjPrintResultListener
((
errorCode
,
ids
)
->
{
switch
(
errorCode
)
{
switch
(
errorCode
)
{
case
PrintSocketHolder
.
ERROR_0
:
case
PrintSocketHolder
.
ERROR_0
:
//更新狀態
//更新狀態
...
@@ -584,7 +570,8 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -584,7 +570,8 @@ public class PrjService extends Service implements ReceiveListener {
break
;
break
;
}
}
});
});
PrjPrintMaker
maker
=
new
PrjPrintMaker
(
bitmapMaps
.
get
(
i
));
}
PrjPrintMaker
maker
=
new
PrjPrintMaker
(
bitmapMaps
.
get
(
i
),
printerDeviceBean
.
getIp
(),
printerDeviceBean
.
getPort
());
executor
.
doPrinterRequestAsync
(
maker
);
executor
.
doPrinterRequestAsync
(
maker
);
}
}
}
}
...
@@ -599,10 +586,10 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -599,10 +586,10 @@ public class PrjService extends Service implements ReceiveListener {
UsbPrint
usbPrint
=
new
UsbPrint
(
mContext
,
(
code
,
printId
)
->
{
UsbPrint
usbPrint
=
new
UsbPrint
(
mContext
,
(
code
,
printId
)
->
{
//打印結果
//打印結果
if
(
code
==
SendResultCode
.
SEND_SUCCESS
)
{
if
(
code
==
SendResultCode
.
SEND_SUCCESS
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
(
null
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
();
updatePrjSuccess
(
key
);
updatePrjSuccess
(
key
);
}
else
if
(
code
==
SendResultCode
.
SEND_FAILED
)
{
}
else
if
(
code
==
SendResultCode
.
SEND_FAILED
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
code
,
null
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
code
);
updatePrjFailure
(
key
);
updatePrjFailure
(
key
);
}
}
});
});
...
@@ -647,6 +634,12 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -647,6 +634,12 @@ public class PrjService extends Service implements ReceiveListener {
}
}
}
}
/**
* 獲取本次打印的prj id
*
* @param bitmapMaps
* @return
*/
private
String
getPrintIds
(
List
<
Map
<
String
,
Bitmap
>>
bitmapMaps
)
{
private
String
getPrintIds
(
List
<
Map
<
String
,
Bitmap
>>
bitmapMaps
)
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
StringBuilder
stringBuilder
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
bitmapMaps
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
bitmapMaps
.
size
();
i
++)
{
...
@@ -880,11 +873,11 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -880,11 +873,11 @@ public class PrjService extends Service implements ReceiveListener {
public
void
onPtrReceive
(
Printer
printer
,
int
i
,
PrinterStatusInfo
printerStatusInfo
,
String
s
)
{
public
void
onPtrReceive
(
Printer
printer
,
int
i
,
PrinterStatusInfo
printerStatusInfo
,
String
s
)
{
//針式打印回調
//針式打印回調
if
(
i
==
0
)
{
if
(
i
==
0
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
(
null
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
();
//打印成功
//打印成功
updatePrjSuccess
(
EpsIds
);
updatePrjSuccess
(
EpsIds
);
}
else
{
}
else
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
i
,
null
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
i
);
//打印失敗
//打印失敗
updatePrjFailure
(
EpsIds
);
updatePrjFailure
(
EpsIds
);
}
}
...
...
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
View file @
f410baeb
...
@@ -14,6 +14,7 @@ import android.view.View;
...
@@ -14,6 +14,7 @@ import android.view.View;
import
android.view.Window
;
import
android.view.Window
;
import
android.view.WindowManager
;
import
android.view.WindowManager
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
android.widget.PopupWindow
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
...
@@ -25,11 +26,14 @@ import androidx.recyclerview.widget.RecyclerView;
...
@@ -25,11 +26,14 @@ import androidx.recyclerview.widget.RecyclerView;
import
com.billy.cc.core.component.CC
;
import
com.billy.cc.core.component.CC
;
import
com.billy.cc.core.component.CCResult
;
import
com.billy.cc.core.component.CCResult
;
import
com.billy.cc.core.component.CCUtil
;
import
com.billy.cc.core.component.CCUtil
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.listener.OnItemClickListener
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins
;
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.print.NewPrintExecutor
;
import
com.gingersoft.gsa.cloud.print.PrintExecutor
;
import
com.gingersoft.gsa.cloud.print.PrintExecutor
;
import
com.gingersoft.gsa.cloud.print.PrintSocketHolder
;
import
com.gingersoft.gsa.cloud.print.PrintSocketHolder
;
import
com.gingersoft.gsa.cloud.print.bean.PrintContent
;
import
com.gingersoft.gsa.cloud.print.bean.PrintContent
;
...
@@ -47,6 +51,7 @@ import com.joe.print.R;
...
@@ -47,6 +51,7 @@ import com.joe.print.R;
import
com.joe.print.di.component.DaggerPrintComponent
;
import
com.joe.print.di.component.DaggerPrintComponent
;
import
com.joe.print.mvp.contract.PrintContract
;
import
com.joe.print.mvp.contract.PrintContract
;
import
com.joe.print.mvp.presenter.PrintPresenter
;
import
com.joe.print.mvp.presenter.PrintPresenter
;
import
com.joe.print.mvp.print.EpsonPrint
;
import
com.joe.print.mvp.print.OpenCashBoxMaker
;
import
com.joe.print.mvp.print.OpenCashBoxMaker
;
import
com.joe.print.mvp.print.PrintInstruction
;
import
com.joe.print.mvp.print.PrintInstruction
;
import
com.joe.print.mvp.print.PrintListener
;
import
com.joe.print.mvp.print.PrintListener
;
...
@@ -55,8 +60,17 @@ import com.joe.print.mvp.print.PrinterRoot;
...
@@ -55,8 +60,17 @@ import com.joe.print.mvp.print.PrinterRoot;
import
com.joe.print.mvp.print.utils.MyPrintUtils
;
import
com.joe.print.mvp.print.utils.MyPrintUtils
;
import
com.joe.print.mvp.ui.adapter.DialogPrinterListAdapter
;
import
com.joe.print.mvp.ui.adapter.DialogPrinterListAdapter
;
import
com.joe.print.mvp.ui.adapter.PrintProgressAdapter
;
import
com.joe.print.mvp.ui.adapter.PrintProgressAdapter
;
import
com.joe.print.mvp.ui.view.SelectPrintDevicePopup
;
import
com.lxj.xpopup.XPopup
;
import
com.lxj.xpopup.core.CenterPopupView
;
import
com.lxj.xpopup.enums.PopupAnimation
;
import
com.lxj.xpopup.impl.LoadingPopupView
;
import
com.xuexiang.rxutil2.rxjava.RxJavaUtils
;
import
com.xuexiang.rxutil2.rxjava.task.RxAsyncTask
;
import
com.xuexiang.rxutil2.rxjava.task.RxUITask
;
import
com.yanzhenjie.recyclerview.widget.DefaultItemDecoration
;
import
com.yanzhenjie.recyclerview.widget.DefaultItemDecoration
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
...
@@ -93,7 +107,6 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
...
@@ -93,7 +107,6 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
public
class
PrintActivity
extends
BaseActivity
<
PrintPresenter
>
implements
PrintContract
.
View
,
DialogInterface
.
OnDismissListener
,
PrintListener
,
PrintSocketHolder
.
OnStateChangedListener
,
PrintExecutor
.
OnPrintResultListener
{
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
ADD_PRINT_CODE
=
1001
;
//添加打印機回調
public
final
static
int
DIMISS_LOADING
=
1002
;
//關閉加載窗
public
final
static
int
FINISH
=
1003
;
//關閉頁面
public
final
static
int
FINISH
=
1003
;
//關閉頁面
public
final
static
int
ADD_PRINT_DEVICE
=
1004
;
//添加打印機
public
final
static
int
ADD_PRINT_DEVICE
=
1004
;
//添加打印機
public
final
static
int
LACK_OF_PAPER
=
1005
;
//缺紙
public
final
static
int
LACK_OF_PAPER
=
1005
;
//缺紙
...
@@ -103,9 +116,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -103,9 +116,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private
String
callId
;
private
String
callId
;
private
PrinterRoot
printerInIt
;
private
PrinterRoot
printerInIt
;
private
Dialog
mLoadingDialog
;
private
TextView
mTvLoadingTip
;
/**
/**
* 0:上菜紙
* 0:上菜紙
* 1:印單
* 1:印單
...
@@ -117,8 +127,10 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -117,8 +127,10 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
*/
*/
private
int
type
;
private
int
type
;
private
String
mOrderNo
;
private
String
mOrderNo
;
//是否顯示打印等待彈窗
/**
private
boolean
isShowDialog
;
* 打印進度
*/
private
LoadingPopupView
loadingPopup
;
@Override
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
...
@@ -134,59 +146,97 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -134,59 +146,97 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
getWindow
().
addFlags
(
WindowManager
.
LayoutParams
.
FLAG_NOT_TOUCHABLE
getWindow
().
addFlags
(
WindowManager
.
LayoutParams
.
FLAG_NOT_TOUCHABLE
|
WindowManager
.
LayoutParams
.
FLAG_WATCH_OUTSIDE_TOUCH
);
|
WindowManager
.
LayoutParams
.
FLAG_WATCH_OUTSIDE_TOUCH
);
return
0
;
//R.layout.print_bitmap
如果你不需要框架帮你设置 setContentView(id) 需要 自行设置,请返回 0
return
0
;
//R.layout.print_bitmap;
如果你不需要框架帮你设置 setContentView(id) 需要 自行设置,请返回 0
}
}
@Override
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
loadingPopup
=
new
XPopup
.
Builder
(
mContext
)
.
popupAnimation
(
PopupAnimation
.
ScaleAlphaFromCenter
)
.
asLoading
(
"加载中..."
);
loadingPopup
.
show
();
callId
=
CCUtil
.
getNavigateCallId
(
this
);
callId
=
CCUtil
.
getNavigateCallId
(
this
);
//獲取打印類型,根據打印類型生成對應的bitmap
//獲取打印類型,根據打印類型生成對應的bitmap
type
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_TEST
);
type
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_TEST
);
//獲取打印內容
PrintContent
printContent
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_CONTENT
,
null
);
PrintContent
printContent
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_CONTENT
,
null
);
//訂單編號
mOrderNo
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_ORDER_NO
,
""
);
mOrderNo
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_ORDER_NO
,
""
);
isShowDialog
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_LOADING
,
true
);
//根據打印類型獲取對應的執行類
printerInIt
=
PrinterRoot
.
getPrinterByType
(
type
,
printContent
);
printerInIt
=
PrinterRoot
.
getPrinterByType
(
type
,
printContent
);
if
(
printerInIt
!=
null
)
{
if
(
printerInIt
!=
null
)
{
printerInIt
.
setPrintListener
(
this
);
printerInIt
.
setPrintListener
(
this
);
}
}
//初始化打印配置
initPrintConfig
(
printContent
);
initPrintConfig
(
printContent
);
}
}
private
int
selectPrint
=
-
1
;
/**
* 如果沒有默認打印機,彈窗彈出讓用戶選擇打印機
*/
private
PrinterDeviceBean
defaultPrint
;
private
void
initPrintConfig
(
PrintContent
printContent
)
{
private
void
initPrintConfig
(
PrintContent
printContent
)
{
PrintCurrencyBean
printCurrencyBean
;
//獲取通用打印配置
PrinterDeviceBean
defaultPrint
;
PrintCurrencyBean
printCurrencyBean
=
getCurrencyConfig
();
//獲取通用打印配置,不同的打印
if
(
type
==
PRINT_OTHER_ORDER
||
type
==
PRINT_OTHER_CLOSING
)
{
//外賣的通用打印配置
printCurrencyBean
=
mPresenter
.
getPrintCurrencyBeanByType
(
this
,
PRINT_BILL
);
}
// else if (type == 0 || type == 1 || type == 2) {
// //堂食的通用打印配置
// printCurrencyBean = mPresenter.getPrintCurrencyBeanByType(this, 1);
// }
else
{
printCurrencyBean
=
mPresenter
.
getPrintCurrencyBeanByType
(
this
,
PRINT_SLIP
);
}
//獲取打印機列表
//獲取打印機列表
printerDeviceBeans
=
mPresenter
.
getAllPrintList
(
this
);
printerDeviceBeans
=
mPresenter
.
getAllPrintList
(
this
);
if
(
type
==
PrintConstans
.
PRINT_TEST
)
{
if
(
type
==
PrintConstans
.
PRINT_TEST
)
{
//如果是打印測試
//如果是打印測試
,就取由頁面傳遞過來的打印機信息
defaultPrint
=
CCUtil
.
getNavigateParam
(
this
,
"deviceBean"
,
null
);
defaultPrint
=
CCUtil
.
getNavigateParam
(
this
,
"deviceBean"
,
null
);
}
else
{
}
else
{
// 獲取默認打印機,如果用戶沒有配置默認打印機,就取最近使用的一個.
// 獲取默認打印機,如果用戶沒有配置默認打印機,就取最近使用的一個.
// 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印
// 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印
defaultPrint
=
mPresenter
.
getDefaultPrintInList
(
printerDeviceBeans
,
(
String
)
SPUtils
.
get
(
"defaultPrint"
,
""
));
defaultPrint
=
mPresenter
.
getDefaultPrintInList
(
printerDeviceBeans
,
(
String
)
SPUtils
.
get
(
"defaultPrint"
,
""
));
}
}
//生成餐檯打印的一些信息
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrinterDataBefore
(
type
,
type
,
GsonUtils
.
GsonString
(
printContent
),
GsonUtils
.
GsonString
(
defaultPrint
));
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrinterDataBefore
(
type
,
type
,
GsonUtils
.
GsonString
(
printContent
),
GsonUtils
.
GsonString
(
defaultPrint
));
//廚房單
//
如果是打印
廚房單
if
(
type
==
PrintConstans
.
PRINT_KITCHEN
)
{
if
(
type
==
PrintConstans
.
PRINT_KITCHEN
)
{
//設置廚房單的信息,並且獲取到這個廚房單的打印位置
defaultPrint
=
setKitChenPrj
(
defaultPrint
);
}
//如果沒有打印機
if
(
defaultPrint
==
null
)
{
//沒有默認打印機,查看當前餐廳有沒有打印機
//如果當前餐廳有打印機,彈出彈窗讓用戶選擇一個打印機打印
if
(
printerDeviceBeans
!=
null
&&
printerDeviceBeans
.
size
()
>
0
)
{
SelectPrintDevicePopup
selectPrintDevicePopup
=
new
SelectPrintDevicePopup
(
mContext
,
printerDeviceBeans
);
selectPrintDevicePopup
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
//用戶選擇的ip打印機打印
//將打印機和通用配置合併
selectPrintDevicePopup
.
dismiss
();
this
.
defaultPrint
=
MyPrintUtils
.
configPrinterProperties
(
printCurrencyBean
,
printerDeviceBeans
.
get
(
position
));
printByDevice
(
this
.
defaultPrint
);
SPUtils
.
put
(
"defaultPrint"
,
printerDeviceBeans
.
get
(
position
).
getName
());
}).
setOnDismissListener
(()
->
{
//如果彈窗已經關閉,打印機還是為空,說明用戶沒有選擇打印機
if
(
this
.
defaultPrint
==
null
)
{
printFailure
(
"沒有找到打印機,無法打印"
);
finish
();
}
});
new
XPopup
.
Builder
(
mContext
).
asCustom
(
selectPrintDevicePopup
).
show
();
}
else
{
//沒有打印機
ToastUtils
.
show
(
mContext
,
"沒有打印機,請先添加打印機"
);
}
}
else
{
//將打印機和通用配置合併
defaultPrint
=
MyPrintUtils
.
configPrinterProperties
(
printCurrencyBean
,
defaultPrint
);
printByDevice
(
defaultPrint
);
}
}
/**
* 設置廚房單打印數據
*
* @param defaultPrint 默認打印機
* @return 如果prj有指定打印機,並且找到了,就返回
*/
private
PrinterDeviceBean
setKitChenPrj
(
PrinterDeviceBean
defaultPrint
)
{
List
<
PrjBean
.
DataBean
.
Bean
>
printDatas
=
CCUtil
.
getNavigateParam
(
this
,
"prjBeans"
,
null
);
List
<
PrjBean
.
DataBean
.
Bean
>
printDatas
=
CCUtil
.
getNavigateParam
(
this
,
"prjBeans"
,
null
);
Map
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
prjMap
=
PrintPrjKitchen
.
getPrjMap
();
Map
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
prjMap
=
PrintPrjKitchen
.
getPrjMap
();
String
printLocation
=
null
;
String
printLocation
=
null
;
...
@@ -194,11 +244,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -194,11 +244,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
if
(
printLocation
==
null
)
{
if
(
printLocation
==
null
)
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
prjBean
.
getPrintPosition
()))
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
prjBean
.
getPrintPosition
()))
{
printLocation
=
prjBean
.
getPrintPosition
();
printLocation
=
prjBean
.
getPrintPosition
();
defaultPrint
=
mPresenter
.
getPrinterDeviceBeanByName
(
printerDeviceBeans
,
printLocation
);
return
mPresenter
.
getPrinterDeviceBeanByName
(
printerDeviceBeans
,
printLocation
);
if
(
defaultPrint
==
null
)
{
printFailure
(
"未找到對應的打印機"
);
return
;
}
}
else
{
}
else
{
if
(
defaultPrint
==
null
)
{
if
(
defaultPrint
==
null
)
{
printLocation
=
""
;
printLocation
=
""
;
...
@@ -211,92 +257,71 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -211,92 +257,71 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
prjBean
.
setCurrentIndex
(
1
);
prjBean
.
setCurrentIndex
(
1
);
}
}
prjMap
.
put
(
""
,
printDatas
);
prjMap
.
put
(
""
,
printDatas
);
return
null
;
}
}
if
(
defaultPrint
==
null
)
{
/**
//沒有默認打印機,查看當前餐廳有沒有打印機
* 獲取通用打印配置
//如果當前餐廳有打印機,彈出彈窗讓用戶選擇一個打印機打印
*/
if
(
printerDeviceBeans
!=
null
&&
printerDeviceBeans
.
size
()
>
0
)
{
private
PrintCurrencyBean
getCurrencyConfig
()
{
PrintCurrencyBean
finalPrintCurrencyBean
=
printCurrencyBean
;
PrintCurrencyBean
printCurrencyBean
;
new
DialogUtils
(
mContext
,
R
.
layout
.
print_dialog_internet_list
)
{
if
(
type
==
PRINT_OTHER_ORDER
||
type
==
PRINT_OTHER_CLOSING
)
{
@Override
//外賣的通用打印配置
public
void
initLayout
(
ViewHepler
hepler
,
Dialog
dialog
)
{
printCurrencyBean
=
mPresenter
.
getPrintCurrencyBeanByType
(
this
,
PRINT_BILL
);
RecyclerView
mRvPrintList
=
hepler
.
getView
(
R
.
id
.
rv_print_list
);
DialogPrinterListAdapter
printListAdapter
=
new
DialogPrinterListAdapter
(
printerDeviceBeans
,
mContext
);
mRvPrintList
.
setLayoutManager
(
new
LinearLayoutManager
(
mContext
));
//分割线
mRvPrintList
.
addItemDecoration
(
new
DefaultItemDecoration
(
ContextCompat
.
getColor
(
mContext
,
R
.
color
.
line_color
)));
mRvPrintList
.
setAdapter
(
printListAdapter
);
printListAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
//用戶選擇的ip打印機打印
PrinterDeviceBean
defaultPrint
=
MyPrintUtils
.
configPrinterProperties
(
finalPrintCurrencyBean
,
printerDeviceBeans
.
get
(
position
));
printByDevice
(
defaultPrint
);
selectPrint
=
position
;
SPUtils
.
put
(
"defaultPrint"
,
printerDeviceBeans
.
get
(
position
).
getName
());
dialog
.
dismiss
();
});
}
}
.
setHeight
(
ArmsUtils
.
getScreenHeidth
(
mContext
)
/
2
)
.
setWidth
((
int
)
(
ArmsUtils
.
getScreenWidth
(
mContext
)
*
0.8
))
.
setOnDismissListener
(
dialog
->
{
if
(
selectPrint
==
-
1
)
{
printFailure
(
"未選擇打印機"
);
}
})
.
show
();
}
else
{
//沒有打印機
ToastUtils
.
show
(
mContext
,
"沒有打印機,請先添加打印機"
);
}
}
}
else
{
// else if (type == 0 || type == 1 || type == 2) {
defaultPrint
=
MyPrintUtils
.
configPrinterProperties
(
printCurrencyBean
,
defaultPrint
);
// //堂食的通用打印配置
printByDevice
(
defaultPrint
);
// printCurrencyBean = mPresenter.getPrintCurrencyBeanByType(this, 1);
// }
else
{
printCurrencyBean
=
mPresenter
.
getPrintCurrencyBeanByType
(
this
,
PRINT_SLIP
);
}
}
return
printCurrencyBean
;
}
}
/**
//打印邏輯,獲取對應的打印配置--打印機或是通用配置
* 打印邏輯,獲取對應的打印配置--打印機或是通用配置
//根據配置生成配置好的圖片----生成圖片邏輯:把打印的單分為幾個模塊,再由不同的單拼接出對應的單,(如果是針式,生成對應的文字)
* 根據配置生成配置好的圖片----生成圖片邏輯:把打印的單分為幾個模塊,再由不同的單拼接出對應的單,(如果是針式,生成對應的文字)
//再獲取打印方式(IP、本機、USB、藍牙或其他的),調用打印
* 再獲取打印方式(IP、本機、USB、藍牙或其他的),調用打印
*
* @param defaultPrint 打印機
*/
private
void
printByDevice
(
PrinterDeviceBean
defaultPrint
)
{
private
void
printByDevice
(
PrinterDeviceBean
defaultPrint
)
{
//獲取對應的打印類
//獲取對應的打印類
if
(
printerInIt
instanceof
PrintInstruction
)
{
if
(
printerInIt
instanceof
PrintInstruction
)
{
//開錢箱
//開錢箱
PrintExecutor
executor
=
new
PrintExecutor
(
defaultPrint
);
PrintExecutor
executor
=
new
PrintExecutor
();
executor
.
doPrinterRequestAsync
(
new
OpenCashBoxMaker
());
executor
.
doPrinterRequestAsync
(
new
OpenCashBoxMaker
(
defaultPrint
.
getIp
(),
defaultPrint
.
getPort
()
));
CC
.
sendCCResult
(
callId
,
CCResult
.
success
());
CC
.
sendCCResult
(
callId
,
CCResult
.
success
());
}
else
{
}
else
{
if
(
isShowDialog
)
{
initDialog
();
}
Map
<
String
,
List
<
Bitmap
>>
listMap
;
Map
<
String
,
List
<
Bitmap
>>
listMap
;
List
<
Bitmap
>
zoomBitmaps
=
null
;
List
<
Bitmap
>
zoomBitmaps
=
null
;
String
[]
BBPosPrintDatas
=
null
;
String
[]
BBPosPrintDatas
=
null
;
if
(
defaultPrint
.
getPrinterDeviceType
()
==
PrinterDeviceBean
.
PRINT_LOCAL
&&
PrintConstans
.
PRINT_MODEL_WISEPOS
.
contains
(
Build
.
MODEL
))
{
if
(
defaultPrint
.
getPrinterDeviceType
()
==
PrinterDeviceBean
.
PRINT_LOCAL
&&
PrintConstans
.
PRINT_MODEL_WISEPOS
.
contains
(
Build
.
MODEL
))
{
//本機打印並且是BBPOS
//本機打印並且是BBPOS
//獲取打印數據
BBPosPrintDatas
=
printerInIt
.
getPrintDatas
(
mContext
,
defaultPrint
);
BBPosPrintDatas
=
printerInIt
.
getPrintDatas
(
mContext
,
defaultPrint
);
if
(
BBPosPrintDatas
==
null
)
{
if
(
BBPosPrintDatas
==
null
)
{
printFailure
(
"暫不支持打印此單"
);
printFailure
(
"暫不支持打印此單"
);
return
;
return
;
}
}
}
else
{
}
else
{
//獲取打印圖片
listMap
=
printerInIt
.
getPrintBitmapByCount
(
mContext
,
defaultPrint
);
listMap
=
printerInIt
.
getPrintBitmapByCount
(
mContext
,
defaultPrint
);
if
(
listMap
!=
null
)
{
if
(
listMap
!=
null
)
{
zoomBitmaps
=
listMap
.
get
(
""
);
zoomBitmaps
=
listMap
.
get
(
""
);
}
else
{
}
else
{
printFailure
(
"
暫不支持打印此單
"
);
printFailure
(
"
打印失敗,生成打印數據失敗
"
);
return
;
return
;
}
}
if
(
zoomBitmaps
!=
null
&&
zoomBitmaps
.
size
()
>
0
)
{
if
(
zoomBitmaps
==
null
)
{
}
else
{
//打印失敗
//打印失敗
printFailure
(
"打印失敗,生成打印數據失敗"
);
printFailure
(
"打印失敗,生成打印數據失敗"
);
}
}
else
{
//保存打印圖片到本地
setPrinterBitmapToLocation
(
type
,
type
,
mOrderNo
,
listMap
);
setPrinterBitmapToLocation
(
type
,
type
,
mOrderNo
,
listMap
);
}
}
//獲得對應的圖片
}
if
(
defaultPrint
.
getPrinterDeviceType
()
==
PrinterDeviceBean
.
PRINT_IP
)
{
if
(
defaultPrint
.
getPrinterDeviceType
()
==
PrinterDeviceBean
.
PRINT_IP
)
{
//IP打印
//IP打印
printerInIt
.
ipDevicePrint
(
defaultPrint
,
zoomBitmaps
);
printerInIt
.
ipDevicePrint
(
defaultPrint
,
zoomBitmaps
);
...
@@ -306,11 +331,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -306,11 +331,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
else
if
(
defaultPrint
.
getPrinterDeviceType
()
==
PrinterDeviceBean
.
PRINT_USB
)
{
}
else
if
(
defaultPrint
.
getPrinterDeviceType
()
==
PrinterDeviceBean
.
PRINT_USB
)
{
//USB打印打印
//USB打印打印
printerInIt
.
usbPrint
(
mContext
,
zoomBitmaps
);
printerInIt
.
usbPrint
(
mContext
,
zoomBitmaps
);
}
}
else
{
// else if (defaultPrint.getPrinterDeviceType() == 4) {
// printerInIt.transmitPrjToPc(defaultPrint);
// }
else
{
printFailure
(
"未找到對應的打印類型"
);
printFailure
(
"未找到對應的打印類型"
);
}
}
}
}
...
@@ -326,105 +347,8 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -326,105 +347,8 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
}
}
}
private
Map
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
setPrjIndex
(
Map
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
listMap
,
int
totalPrj
)
{
private
void
addPrintProgress
(
String
printState
)
{
int
currentIndex
=
0
;
loadingPopup
.
setTitle
(
printState
);
for
(
Map
.
Entry
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
prjMap
:
listMap
.
entrySet
())
{
for
(
PrjBean
.
DataBean
.
Bean
bean
:
prjMap
.
getValue
())
{
bean
.
setTotalPrj
(
totalPrj
);
if
(
bean
.
getStatus
()
==
2
)
{
currentIndex
++;
}
else
{
if
(
currentIndex
==
0
)
{
currentIndex
=
1
;
}
}
bean
.
setCurrentIndex
(
currentIndex
);
}
currentIndex
++;
}
return
listMap
;
}
private
Map
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
printDataToMap
(
List
<
PrjBean
.
DataBean
.
Bean
>
printData
)
{
Map
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
map
=
new
HashMap
<>();
PrinterDeviceBean
defaultPainter
=
null
;
//獲得默認的打印機
for
(
PrinterDeviceBean
printerDeviceBean
:
printerDeviceBeans
)
{
if
(
printerDeviceBean
.
getType
()
==
2
)
{
defaultPainter
=
printerDeviceBean
;
break
;
}
}
//將prj集合通過打印位置轉成map
for
(
PrjBean
.
DataBean
.
Bean
bean
:
printData
)
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
bean
.
getPrintPosition
()))
{
List
<
PrjBean
.
DataBean
.
Bean
>
mapByKey
=
map
.
get
(
bean
.
getPrintPosition
());
if
(
mapByKey
!=
null
)
{
mapByKey
.
add
(
bean
);
}
else
{
map
.
put
(
bean
.
getPrintPosition
(),
Collections
.
singletonList
(
bean
));
}
}
else
if
(
defaultPainter
!=
null
)
{
//沒有打印位置的,由默認的位置去打印
bean
.
setPrintPosition
(
defaultPainter
.
getName
());
List
<
PrjBean
.
DataBean
.
Bean
>
mapByKey
=
map
.
get
(
bean
.
getPrintPosition
());
if
(
mapByKey
!=
null
)
{
mapByKey
.
add
(
bean
);
}
else
{
map
.
put
(
bean
.
getPrintPosition
(),
Collections
.
singletonList
(
bean
));
}
}
else
{
ToastUtils
.
show
(
this
,
"未配置打印機"
);
}
}
return
map
;
}
private
PrintProgressAdapter
adapter
;
private
void
setPrintProgress
(
int
state
)
{
if
(
adapter
!=
null
)
{
adapter
.
setProgress
(
state
);
}
}
private
void
initDialog
()
{
try
{
// new DialogUtils(this, R.layout.print_layout_print_progress) {
// @Override
// public void initLayout(ViewHepler hepler, Dialog dialog) {
// List<String> stauts = Arrays.asList("生成數據中", "連接打印機", "開始寫入數據", "打印成功");
// adapter = new PrintProgressAdapter(stauts);
// hepler.setAdapter(R.id.rv_print_progress, new LinearLayoutManager(mContext), adapter);
// }
// }.setWidth((int) (DeviceUtils.getScreenWidth(mContext) * 0.8))
// .show();
View
view
=
LayoutInflater
.
from
(
mContext
).
inflate
(
R
.
layout
.
ui_dialog_loading
,
null
);
mTvLoadingTip
=
view
.
findViewById
(
R
.
id
.
tv_loading_dialog_text
);
mLoadingDialog
=
new
Dialog
(
this
,
R
.
style
.
ui_loading_dialog
);
mLoadingDialog
.
setCancelable
(
true
);
mLoadingDialog
.
setCanceledOnTouchOutside
(
false
);
Window
window
=
mLoadingDialog
.
getWindow
();
window
.
setBackgroundDrawable
(
new
ColorDrawable
(
Color
.
TRANSPARENT
));
mLoadingDialog
.
setContentView
(
view
,
new
LinearLayout
.
LayoutParams
(
LinearLayout
.
LayoutParams
.
MATCH_PARENT
,
LinearLayout
.
LayoutParams
.
MATCH_PARENT
));
if
(!
this
.
isFinishing
())
{
mLoadingDialog
.
show
();
setLoadingText
(
"加載中..."
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
private
void
setLoadingText
(
String
tip
)
{
Observable
.
just
(
1
)
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
integer
->
{
if
(
mLoadingDialog
!=
null
&&
mLoadingDialog
.
isShowing
())
{
mTvLoadingTip
.
setText
(
tip
);
}
});
}
}
@Override
@Override
...
@@ -440,7 +364,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -440,7 +364,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
switch
(
state
)
{
switch
(
state
)
{
case
PrintSocketHolder
.
ERROR_0
:
case
PrintSocketHolder
.
ERROR_0
:
tip
=
"打印成功"
;
tip
=
"打印成功"
;
setPrintProgress
(
3
);
break
;
break
;
case
PrintSocketHolder
.
ERROR_1
:
case
PrintSocketHolder
.
ERROR_1
:
tip
=
"生成打印數據失敗"
;
tip
=
"生成打印數據失敗"
;
...
@@ -456,26 +379,20 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -456,26 +379,20 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
tip
=
"必要的參數不能為空"
;
tip
=
"必要的參數不能為空"
;
break
;
break
;
case
PrintSocketHolder
.
STATE_0
:
case
PrintSocketHolder
.
STATE_0
:
setPrintProgress
(
0
);
break
;
break
;
case
PrintSocketHolder
.
STATE_1
:
case
PrintSocketHolder
.
STATE_1
:
tip
=
"開始創建連接"
;
tip
=
"開始創建連接"
;
break
;
break
;
case
PrintSocketHolder
.
STATE_2
:
case
PrintSocketHolder
.
STATE_2
:
tip
=
"創建連接成功,開始發送數據"
;
tip
=
"創建連接成功,開始發送數據"
;
setPrintProgress
(
1
);
break
;
break
;
case
PrintSocketHolder
.
STATE_3
:
case
PrintSocketHolder
.
STATE_3
:
tip
=
"開始寫入數據"
;
tip
=
"開始寫入數據"
;
setPrintProgress
(
2
);
break
;
break
;
case
PrintSocketHolder
.
STATE_4
:
case
PrintSocketHolder
.
STATE_4
:
tip
=
"關閉中"
;
tip
=
"關閉中"
;
finish
();
finish
();
break
;
break
;
case
DIMISS_LOADING:
disLoadingDialog
();
break
;
case
FINISH:
case
FINISH:
finish
();
finish
();
break
;
break
;
...
@@ -485,10 +402,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -485,10 +402,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
case
LACK_OF_PAPER:
case
LACK_OF_PAPER:
//缺紙
//缺紙
printFailure
(
"打印機缺紙"
);
printFailure
(
"打印機缺紙"
);
tip
=
"打印機缺紙"
;
break
;
default
:
break
;
break
;
}
}
LoganManager
.
w_printer
(
TAG
,
"printStateChanged state--->"
+
tip
);
LoganManager
.
w_printer
(
TAG
,
"printStateChanged state--->"
+
tip
);
setLoadingText
(
tip
);
addPrintProgress
(
tip
);
}
}
/**
/**
...
@@ -497,14 +417,8 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -497,14 +417,8 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
@Override
public
void
printSuccess
()
{
public
void
printSuccess
()
{
LoganManager
.
w_printer
(
TAG
,
"printFailure 打印成功"
);
LoganManager
.
w_printer
(
TAG
,
"printFailure 打印成功"
);
// if (printCount <= 1) {
CC
.
sendCCResult
(
callId
,
CCResult
.
success
());
CC
.
sendCCResult
(
callId
,
CCResult
.
success
());
disLoadingDialog
();
finish
();
finish
();
// finish();
// } else {
// printCount--;
// }
}
}
@Override
@Override
...
@@ -515,11 +429,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -515,11 +429,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
else
{
}
else
{
CC
.
sendCCResult
(
callId
,
CCResult
.
error
(
"print error"
));
CC
.
sendCCResult
(
callId
,
CCResult
.
error
(
"print error"
));
}
}
// if (printCount <= 1) {
finish
();
finish
();
// } else {
// printCount--;
// }
}
}
@Override
@Override
...
@@ -612,28 +522,23 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -612,28 +522,23 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
@Override
protected
void
onDestroy
()
{
protected
void
onDestroy
()
{
super
.
onDestroy
();
super
.
onDestroy
();
disLoadingDialog
();
loadingPopup
.
dismiss
();
}
//關閉打印頁面時,關閉所有打印連接
//關閉ip打印連接
private
void
disLoadingDialog
()
{
PrintSocketHolder
.
getInstance
().
closeSocket
();
Observable
.
just
(
1
)
//關閉針式打印連接
.
observeOn
(
AndroidSchedulers
.
mainThread
())
EpsonPrint
.
getInstance
().
disconnectPrinter
();
.
subscribe
(
integer
->
{
EpsonPrint
.
getInstance
().
finalizeObject
();
if
(
mLoadingDialog
!=
null
)
{
mLoadingDialog
.
dismiss
();
mLoadingDialog
=
null
;
}
});
}
}
@Override
@Override
public
void
onStateChanged
(
int
state
,
PrinterDeviceBean
printerDeviceBean
)
{
public
void
onStateChanged
(
int
state
)
{
//ip打印狀態修改回調
//ip打印狀態修改回調
}
}
@Override
@Override
public
void
onResult
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
)
{
public
void
onResult
(
int
errorCode
)
{
//ip打印結果回調
//ip打印結果回調
}
}
...
...
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintTestActivity.java
View file @
f410baeb
...
@@ -259,14 +259,14 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
...
@@ -259,14 +259,14 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
}
}
@Override
@Override
public
void
onResult
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
)
{
public
void
onResult
(
int
errorCode
)
{
if
(
errorCode
==
0
)
{
if
(
errorCode
==
0
)
{
ToastUtils
.
show
(
PrintTestActivity
.
this
,
"打印失败"
);
ToastUtils
.
show
(
PrintTestActivity
.
this
,
"打印失败"
);
}
}
}
}
@Override
@Override
public
void
onStateChanged
(
int
state
,
PrinterDeviceBean
printerDeviceBean
)
{
public
void
onStateChanged
(
int
state
)
{
}
}
...
...
component-print/src/main/java/com/joe/print/mvp/ui/adapter/PrintProgressAdapter.java
View file @
f410baeb
package
com
.
joe
.
print
.
mvp
.
ui
.
adapter
;
package
com
.
joe
.
print
.
mvp
.
ui
.
adapter
;
import
android.content.Context
;
import
androidx.core.content.ContextCompat
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.joe.print.R
;
import
com.joe.print.R
;
...
@@ -9,36 +13,31 @@ import org.jetbrains.annotations.Nullable;
...
@@ -9,36 +13,31 @@ import org.jetbrains.annotations.Nullable;
import
java.util.List
;
import
java.util.List
;
/**
* 打印進度
*/
public
class
PrintProgressAdapter
extends
BaseQuickAdapter
<
String
,
BaseViewHolder
>
{
public
class
PrintProgressAdapter
extends
BaseQuickAdapter
<
String
,
BaseViewHolder
>
{
private
int
progress
=
0
;
private
int
completeColor
;
private
int
inProgressColor
;
public
PrintProgressAdapter
(
@Nullable
List
<
String
>
data
)
{
public
PrintProgressAdapter
(
Context
context
,
@Nullable
List
<
String
>
data
)
{
super
(
R
.
layout
.
print_progress_item
,
data
);
super
(
R
.
layout
.
print_progress_item
,
data
);
completeColor
=
ContextCompat
.
getColor
(
context
,
R
.
color
.
order_state0_color
);
}
inProgressColor
=
ContextCompat
.
getColor
(
context
,
R
.
color
.
theme_333_color
);
public
void
setProgress
(
int
progress
)
{
this
.
progress
=
progress
;
super
.
notifyDataSetChanged
();
}
}
@Override
@Override
protected
void
convert
(
@NotNull
BaseViewHolder
baseViewHolder
,
String
s
)
{
protected
void
convert
(
@NotNull
BaseViewHolder
baseViewHolder
,
String
s
)
{
baseViewHolder
.
setText
(
R
.
id
.
tv_print_progressbar
,
s
);
baseViewHolder
.
setText
(
R
.
id
.
tv_print_progressbar
,
s
);
if
(
progress
>
baseViewHolder
.
getAdapterPosition
()
)
{
if
(
baseViewHolder
.
getAdapterPosition
()
==
getItemCount
()
-
1
)
{
baseViewHolder
.
setGone
(
R
.
id
.
pb_print_progressbar
,
true
);
baseViewHolder
.
setGone
(
R
.
id
.
pb_print_progressbar
,
true
);
baseViewHolder
.
setTextColor
(
R
.
id
.
tv_print_progressbar
,
R
.
color
.
order_state0_c
olor
);
baseViewHolder
.
setTextColor
(
R
.
id
.
tv_print_progressbar
,
completeC
olor
);
baseViewHolder
.
setGone
(
R
.
id
.
iv_checked
,
false
);
baseViewHolder
.
setGone
(
R
.
id
.
iv_checked
,
false
);
}
else
if
(
progress
==
baseViewHolder
.
getAdapterPosition
())
{
baseViewHolder
.
setGone
(
R
.
id
.
pb_print_progressbar
,
false
);
baseViewHolder
.
setTextColor
(
R
.
id
.
tv_print_progressbar
,
R
.
color
.
theme_333_color
);
baseViewHolder
.
setGone
(
R
.
id
.
iv_checked
,
true
);
}
else
{
}
else
{
baseViewHolder
.
setGone
(
R
.
id
.
pb_print_progressbar
,
tru
e
);
baseViewHolder
.
setGone
(
R
.
id
.
pb_print_progressbar
,
fals
e
);
baseViewHolder
.
setTextColor
(
R
.
id
.
tv_print_progressbar
,
R
.
color
.
color_ccc
);
baseViewHolder
.
setTextColor
(
R
.
id
.
tv_print_progressbar
,
inProgressColor
);
baseViewHolder
.
setGone
(
R
.
id
.
iv_checked
,
true
);
baseViewHolder
.
setGone
(
R
.
id
.
iv_checked
,
true
);
}
}
}
}
}
}
component-print/src/main/java/com/joe/print/mvp/ui/view/PrintProgressPopup.java
0 → 100644
View file @
f410baeb
package
com
.
joe
.
print
.
mvp
.
ui
.
view
;
import
android.content.Context
;
import
androidx.annotation.NonNull
;
import
com.lxj.xpopup.impl.LoadingPopupView
;
/**
* @author 宇航.
* User: admin
* Date: 2021/2/5
* Time: 18:31
* Use:
*/
public
class
PrintProgressPopup
extends
LoadingPopupView
{
/**
* @param context
* @param bindLayoutId layoutId 如果要显示标题,则要求必须有id为tv_title的TextView,否则无任何要求
*/
public
PrintProgressPopup
(
@NonNull
Context
context
,
int
bindLayoutId
)
{
super
(
context
,
bindLayoutId
);
}
}
component-print/src/main/java/com/joe/print/mvp/ui/view/SelectPrintDevicePopup.java
0 → 100644
View file @
f410baeb
package
com
.
joe
.
print
.
mvp
.
ui
.
view
;
import
android.content.Context
;
import
android.widget.PopupMenu
;
import
android.widget.PopupWindow
;
import
androidx.annotation.NonNull
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.chad.library.adapter.base.listener.OnItemClickListener
;
import
com.gingersoft.gsa.cloud.common.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.joe.print.R
;
import
com.joe.print.mvp.print.utils.MyPrintUtils
;
import
com.joe.print.mvp.ui.adapter.DialogPrinterListAdapter
;
import
com.lxj.xpopup.core.CenterPopupView
;
import
com.lxj.xpopup.impl.CenterListPopupView
;
import
com.yanzhenjie.recyclerview.widget.DefaultItemDecoration
;
import
java.util.List
;
/**
* @author 宇航.
* User: admin
* Date: 2021/2/5
* Time: 16:59
* Use:選擇打印彈窗
*/
public
class
SelectPrintDevicePopup
extends
CenterPopupView
{
private
List
<
PrinterDeviceBean
>
printerDeviceBeans
;
private
OnItemClickListener
mOnItemClickListener
;
private
PopupWindow
.
OnDismissListener
onDismissListener
;
public
SelectPrintDevicePopup
(
@NonNull
Context
context
,
List
<
PrinterDeviceBean
>
printerDeviceBeans
)
{
super
(
context
);
this
.
printerDeviceBeans
=
printerDeviceBeans
;
}
@Override
protected
int
getPopupLayoutId
()
{
return
R
.
layout
.
print_dialog_internet_list
;
}
@Override
protected
void
initPopupContent
()
{
RecyclerView
mRvPrintList
=
findViewById
(
R
.
id
.
rv_print_list
);
DialogPrinterListAdapter
printListAdapter
=
new
DialogPrinterListAdapter
(
printerDeviceBeans
,
getContext
());
mRvPrintList
.
addItemDecoration
(
new
DefaultItemDecoration
(
ContextCompat
.
getColor
(
getContext
(),
R
.
color
.
line_color
)));
mRvPrintList
.
setAdapter
(
printListAdapter
);
printListAdapter
.
setOnItemClickListener
(
mOnItemClickListener
);
}
public
SelectPrintDevicePopup
setOnItemClickListener
(
OnItemClickListener
mOnItemClickListener
)
{
this
.
mOnItemClickListener
=
mOnItemClickListener
;
return
this
;
}
public
SelectPrintDevicePopup
setOnDismissListener
(
PopupWindow
.
OnDismissListener
onDismissListener
)
{
this
.
onDismissListener
=
onDismissListener
;
return
this
;
}
@Override
protected
void
onDismiss
()
{
super
.
onDismiss
();
if
(
onDismissListener
!=
null
)
onDismissListener
.
onDismiss
();
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
}
}
component-print/src/main/res/layout/print_bitmap.xml
View file @
f410baeb
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView
xmlns:android=
"http://schemas.android.com/apk/res/android"
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/alpha_70_black"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<
Image
View
<
androidx.recyclerview.widget.Recycler
View
android:id=
"@+id/
iv_bitmap
"
android:id=
"@+id/
rv_print_progress
"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"match_parent"
android:scrollbars=
"vertical"
android:layout_gravity=
"center"
android:scaleType=
"fitXY"
/>
android:orientation=
"vertical"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
/>
</FrameLayout>
</androidx.core.widget.NestedScrollView>
\ No newline at end of file
\ No newline at end of file
component-print/src/main/res/layout/print_dialog_internet_list.xml
View file @
f410baeb
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<FrameLayout
android:layout_gravity=
"center"
android:id=
"@+id/centerPopupContainer"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_30"
android:layout_marginRight=
"@dimen/dp_30"
android:background=
"@drawable/shape_white_eight_corners_bg"
android:background=
"@drawable/shape_white_eight_corners_bg"
android:gravity=
"center"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
android:padding=
"@dimen/dp_10"
>
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_print_list"
android:id=
"@+id/rv_print_list"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
android:layout_height=
"match_parent"
android:layout_gravity=
"center"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
/>
</LinearLayout>
</FrameLayout>
\ No newline at end of file
</FrameLayout>
component-print/src/main/res/layout/print_progress_item.xml
View file @
f410baeb
...
@@ -3,15 +3,16 @@
...
@@ -3,15 +3,16 @@
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_20"
android:orientation=
"horizontal"
android:layout_marginBottom=
"@dimen/dp_20"
android:paddingLeft=
"@dimen/dp_10"
android:orientation=
"horizontal"
>
android:paddingTop=
"@dimen/dp_10"
android:paddingRight=
"@dimen/dp_10"
>
<TextView
<TextView
android:id=
"@+id/tv_print_progressbar"
android:id=
"@+id/tv_print_progressbar"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginRight=
"@dimen/dp_
10
"
android:layout_marginRight=
"@dimen/dp_
5
"
android:textColor=
"@color/theme_333_color"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_16"
android:textSize=
"@dimen/dp_16"
tools:text=
"狀態:"
/>
tools:text=
"狀態:"
/>
...
...
component-print/src/main/res/layout/printer_dialog_item.xml
View file @
f410baeb
...
@@ -3,6 +3,9 @@
...
@@ -3,6 +3,9 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:clickable=
"true"
android:focusable=
"true"
android:foreground=
"?attr/selectableItemBackground"
android:orientation=
"vertical"
android:orientation=
"vertical"
android:paddingTop=
"@dimen/dp_10"
android:paddingTop=
"@dimen/dp_10"
android:paddingBottom=
"@dimen/dp_10"
>
android:paddingBottom=
"@dimen/dp_10"
>
...
@@ -36,13 +39,13 @@
...
@@ -36,13 +39,13 @@
<TextView
<TextView
android:id=
"@+id/tv_printer_port"
android:id=
"@+id/tv_printer_port"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:visibility=
"gone"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_marginLeft=
"@dimen/dp_10"
android:singleLine=
"true"
android:singleLine=
"true"
android:text=
"端口號:"
android:text=
"端口號:"
android:textColor=
"@color/normal_color"
android:textColor=
"@color/normal_color"
android:textSize=
"@dimen/dp_14"
android:textSize=
"@dimen/dp_14"
android:visibility=
"gone"
app:layout_constraintHorizontal_weight=
"0.5"
app:layout_constraintHorizontal_weight=
"0.5"
app:layout_constraintLeft_toRightOf=
"@id/tv_printer_ip"
app:layout_constraintLeft_toRightOf=
"@id/tv_printer_ip"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/NewSupplierPresenter.java
View file @
f410baeb
...
@@ -295,6 +295,8 @@ public class NewSupplierPresenter extends BasePresenter<NewSupplierContract.Mode
...
@@ -295,6 +295,8 @@ public class NewSupplierPresenter extends BasePresenter<NewSupplierContract.Mode
public
void
onNext
(
@NonNull
BaseResult
info
)
{
public
void
onNext
(
@NonNull
BaseResult
info
)
{
if
(
info
!=
null
)
{
if
(
info
!=
null
)
{
if
(
info
.
isSuccess
())
{
if
(
info
.
isSuccess
())
{
//供應商信息修改後,將購物車食品信息刪除掉,不然食品信息中的採購金額和地址不對
SupplyShoppingCart
.
getInstance
().
removeFoodsBySupplier
(
supplierBean
.
getId
());
mRootView
.
saveSuccess
();
mRootView
.
saveSuccess
();
}
else
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
info
.
getErrMsg
()))
{
}
else
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
info
.
getErrMsg
()))
{
mRootView
.
showMessage
(
info
.
getErrMsg
());
mRootView
.
showMessage
(
info
.
getErrMsg
());
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/WarehousingInventoryPresenter.java
View file @
f410baeb
...
@@ -102,10 +102,9 @@ public class WarehousingInventoryPresenter extends BasePresenter<WarehousingInve
...
@@ -102,10 +102,9 @@ public class WarehousingInventoryPresenter extends BasePresenter<WarehousingInve
/**
/**
* 查詢庫存盤點記錄
* 查詢庫存盤點記錄
*/
*/
public
void
getWarehousingRecord
(
int
pageIndex
)
{
public
void
getWarehousingRecord
(
String
foodNo
,
int
pageIndex
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>(
4
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>(
3
);
Constant
.
addRestaurantId
(
map
);
map
.
put
(
"foodNo"
,
foodNo
);
Constant
.
addBrandId
(
map
);
Constant
.
addPageSize
(
map
);
Constant
.
addPageSize
(
map
);
map
.
put
(
"pageIndex"
,
pageIndex
*
Constant
.
PAGE_SIZE
);
map
.
put
(
"pageIndex"
,
pageIndex
*
Constant
.
PAGE_SIZE
);
mModel
.
getWarehousingRecord
(
map
)
mModel
.
getWarehousingRecord
(
map
)
...
@@ -119,8 +118,7 @@ public class WarehousingInventoryPresenter extends BasePresenter<WarehousingInve
...
@@ -119,8 +118,7 @@ public class WarehousingInventoryPresenter extends BasePresenter<WarehousingInve
@Override
@Override
public
void
onNext
(
BaseResult
baseResult
)
{
public
void
onNext
(
BaseResult
baseResult
)
{
if
(
baseResult
!=
null
&&
baseResult
.
isSuccess
())
{
if
(
baseResult
!=
null
&&
baseResult
.
isSuccess
())
{
//消耗完之後,關閉頁面
mRootView
.
loadRecord
();
}
else
if
(
baseResult
!=
null
&&
TextUtil
.
isNotEmptyOrNullOrUndefined
(
baseResult
.
getErrMsg
()))
{
}
else
if
(
baseResult
!=
null
&&
TextUtil
.
isNotEmptyOrNullOrUndefined
(
baseResult
.
getErrMsg
()))
{
mRootView
.
showMessage
(
baseResult
.
getErrMsg
());
mRootView
.
showMessage
(
baseResult
.
getErrMsg
());
}
else
{
}
else
{
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/activity/SupplyChainMainActivity.java
View file @
f410baeb
package
com
.
gingersoft
.
supply_chain
.
mvp
.
ui
.
activity
;
package
com
.
gingersoft
.
supply_chain
.
mvp
.
ui
.
activity
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.graphics.Rect
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.view.MotionEvent
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.View
;
import
android.view.inputmethod.InputMethodManager
;
import
android.widget.EditText
;
import
android.widget.EditText
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
...
@@ -17,9 +20,11 @@ import com.gingersoft.supply_chain.mvp.contract.SupplyChainMainContract;
...
@@ -17,9 +20,11 @@ import com.gingersoft.supply_chain.mvp.contract.SupplyChainMainContract;
import
com.gingersoft.supply_chain.mvp.presenter.SupplyChainMainPresenter
;
import
com.gingersoft.supply_chain.mvp.presenter.SupplyChainMainPresenter
;
import
com.gingersoft.supply_chain.mvp.ui.fragment.FunctionListFragment
;
import
com.gingersoft.supply_chain.mvp.ui.fragment.FunctionListFragment
;
import
com.gingersoft.supply_chain.mvp.utils.HideUtil
;
import
com.gingersoft.supply_chain.mvp.utils.HideUtil
;
import
com.gingersoft.supply_chain.mvp.utils.NotDispatchListener
;
import
com.jess.arms.base.BaseFragmentActivity
;
import
com.jess.arms.base.BaseFragmentActivity
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.jess.arms.utils.ArmsUtils
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
...
@@ -49,6 +54,25 @@ public class SupplyChainMainActivity extends BaseFragmentActivity<SupplyChainMai
...
@@ -49,6 +54,25 @@ public class SupplyChainMainActivity extends BaseFragmentActivity<SupplyChainMai
loadRootFragment
(
R
.
id
.
layout_supply_chain_content
,
FunctionListFragment
.
newInstance
());
loadRootFragment
(
R
.
id
.
layout_supply_chain_content
,
FunctionListFragment
.
newInstance
());
}
}
@Override
public
boolean
dispatchTouchEvent
(
MotionEvent
event
)
{
if
(
getTopFragment
()
instanceof
NotDispatchListener
)
{
return
super
.
dispatchTouchEvent
(
event
);
}
if
(
event
.
getAction
()
==
MotionEvent
.
ACTION_DOWN
)
{
View
v
=
getCurrentFocus
();
if
(
v
instanceof
EditText
)
{
Rect
outRect
=
new
Rect
();
v
.
getGlobalVisibleRect
(
outRect
);
if
(!
outRect
.
contains
((
int
)
event
.
getRawX
(),
(
int
)
event
.
getRawY
()))
{
v
.
clearFocus
();
InputMethodManager
imm
=
(
InputMethodManager
)
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
);
imm
.
hideSoftInputFromWindow
(
v
.
getWindowToken
(),
0
);
}
}
}
return
super
.
dispatchTouchEvent
(
event
);
}
// @Override
// @Override
// public boolean dispatchTouchEvent(MotionEvent ev) {
// public boolean dispatchTouchEvent(MotionEvent ev) {
// if (getTopFragment() instanceof NotDispatchListener) {
// if (getTopFragment() instanceof NotDispatchListener) {
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/SendSupplierMsgAdapter.java
View file @
f410baeb
...
@@ -13,6 +13,7 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder;
...
@@ -13,6 +13,7 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import
com.gingersoft.supply_chain.R
;
import
com.gingersoft.supply_chain.R
;
import
com.gingersoft.supply_chain.mvp.bean.SendSupplierMsgBean
;
import
com.gingersoft.supply_chain.mvp.bean.SendSupplierMsgBean
;
import
com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean
;
import
com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean
;
import
com.gingersoft.supply_chain.mvp.utils.DoubleClickUtils
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
org.jetbrains.annotations.Nullable
;
...
@@ -81,6 +82,9 @@ public class SendSupplierMsgAdapter extends BaseQuickAdapter<SendSupplierMsgBean
...
@@ -81,6 +82,9 @@ public class SendSupplierMsgAdapter extends BaseQuickAdapter<SendSupplierMsgBean
viewHolder
.
setText
(
R
.
id
.
tv_item_pic_radio_title
,
SupplierInfoBean
.
SupplierContacts
.
getContractTitleByType
(
item
.
getType
()));
viewHolder
.
setText
(
R
.
id
.
tv_item_pic_radio_title
,
SupplierInfoBean
.
SupplierContacts
.
getContractTitleByType
(
item
.
getType
()));
viewHolder
.
setImageResource
(
R
.
id
.
iv_item_pic_radio_pic
,
getContractPicByType
(
item
.
getType
()));
viewHolder
.
setImageResource
(
R
.
id
.
iv_item_pic_radio_pic
,
getContractPicByType
(
item
.
getType
()));
radioButton
.
setOnCheckedChangeListener
((
buttonView
,
isChecked
)
->
{
radioButton
.
setOnCheckedChangeListener
((
buttonView
,
isChecked
)
->
{
if
(
DoubleClickUtils
.
isFastDoubleClick
())
{
return
;
}
if
(
isChecked
)
{
if
(
isChecked
)
{
setSelectIndex
(
viewHolder
.
getAdapterPosition
());
setSelectIndex
(
viewHolder
.
getAdapterPosition
());
notifyDataSetChanged
();
notifyDataSetChanged
();
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/food/FoodIngredientsFragment.java
View file @
f410baeb
...
@@ -332,7 +332,12 @@ public class FoodIngredientsFragment extends BaseSupplyChainFragment<FoodIngredi
...
@@ -332,7 +332,12 @@ public class FoodIngredientsFragment extends BaseSupplyChainFragment<FoodIngredi
if
(
foodListAdapter
!=
null
)
{
if
(
foodListAdapter
!=
null
)
{
mPresenter
.
getSelectFood
(
foodListAdapter
.
getIntegerMap
());
mPresenter
.
getSelectFood
(
foodListAdapter
.
getIntegerMap
());
}
}
//需要先判斷是否有食品
if
(
SupplyShoppingCart
.
getInstance
().
getCartFoods
().
size
()
>
0
)
{
start
(
ShoppingCatFragment
.
newInstance
());
start
(
ShoppingCatFragment
.
newInstance
());
}
else
{
showMessage
(
"請選擇食品"
);
}
}
else
if
(
viewId
==
R
.
id
.
btn_food_ingredients_cancel
)
{
}
else
if
(
viewId
==
R
.
id
.
btn_food_ingredients_cancel
)
{
//取消
//取消
killMyself
();
killMyself
();
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/order/PurchaseListFragment.java
View file @
f410baeb
...
@@ -81,7 +81,7 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
...
@@ -81,7 +81,7 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
ScreenView
screenView
;
ScreenView
screenView
;
@BindView
(
R2
.
id
.
view_load_bg
)
@BindView
(
R2
.
id
.
view_load_bg
)
View
loadBg
;
View
loadBg
;
// @BindView(R2.id.ed_food_ingredients_search)
// @BindView(R2.id.ed_food_ingredients_search)
// EditText edSearch;
// EditText edSearch;
@BindView
(
R2
.
id
.
srl_purchase_list
)
@BindView
(
R2
.
id
.
srl_purchase_list
)
SmartRefreshLayout
refreshPurchaseList
;
SmartRefreshLayout
refreshPurchaseList
;
...
@@ -166,7 +166,16 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
...
@@ -166,7 +166,16 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
RelativeLayout
.
LayoutParams
layoutParams
=
new
RelativeLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
,
ViewGroup
.
LayoutParams
.
MATCH_PARENT
);
RelativeLayout
.
LayoutParams
layoutParams
=
new
RelativeLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
,
ViewGroup
.
LayoutParams
.
MATCH_PARENT
);
mTopBar
.
addRightView
(
view
,
R
.
id
.
qmui_shopping_cart
,
layoutParams
);
mTopBar
.
addRightView
(
view
,
R
.
id
.
qmui_shopping_cart
,
layoutParams
);
view
.
setOnClickListener
(
v
->
start
(
ShoppingCatFragment
.
newInstance
()));
view
.
setOnClickListener
(
v
->
{
//需要先判斷是否有食品
if
(
SupplyShoppingCart
.
getInstance
().
getCartFoods
().
size
()
>
0
)
{
start
(
ShoppingCatFragment
.
newInstance
());
}
else
{
//跳轉到下單頁面
showMessage
(
"請先選擇食品"
);
startForResult
(
FoodIngredientsFragment
.
newInstance
(
ADD_ORDER
),
REQUEST_ORDER_DETAILS_CODE
);
}
});
}
}
private
void
initTabAndData
()
{
private
void
initTabAndData
()
{
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/warehouse/WarehousingInventoryFragment.java
View file @
f410baeb
...
@@ -91,13 +91,13 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
...
@@ -91,13 +91,13 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
Bundle
arguments
=
getArguments
();
Bundle
arguments
=
getArguments
();
if
(
arguments
!=
null
)
{
if
(
arguments
!=
null
)
{
//獲取庫存盤點記錄
getWarehousingRecord
();
int
foodId
=
arguments
.
getInt
(
WarehouseDetailsFragment
.
FOOD_ID_KEY
);
int
foodId
=
arguments
.
getInt
(
WarehouseDetailsFragment
.
FOOD_ID_KEY
);
//食品編號
//食品編號
foodNo
=
arguments
.
getString
(
WarehouseDetailsFragment
.
FOOD_NO_KEY
);
foodNo
=
arguments
.
getString
(
WarehouseDetailsFragment
.
FOOD_NO_KEY
);
//食品庫存總數
//食品庫存總數
foodNum
=
arguments
.
getInt
(
WarehouseDetailsFragment
.
FOOD_NUM_KEY
);
foodNum
=
arguments
.
getInt
(
WarehouseDetailsFragment
.
FOOD_NUM_KEY
);
//獲取庫存盤點記錄
getWarehousingRecord
();
//加載食品圖片
//加載食品圖片
loadFoodImage
(
arguments
);
loadFoodImage
(
arguments
);
//初始化標題
//初始化標題
...
@@ -111,7 +111,7 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
...
@@ -111,7 +111,7 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
}
}
private
void
getWarehousingRecord
()
{
private
void
getWarehousingRecord
()
{
mPresenter
.
getWarehousingRecord
(
pageIndex
);
mPresenter
.
getWarehousingRecord
(
foodNo
,
pageIndex
);
}
}
private
void
initEdit
()
{
private
void
initEdit
()
{
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/utils/DoubleClickUtils.java
0 → 100644
View file @
f410baeb
package
com
.
gingersoft
.
supply_chain
.
mvp
.
utils
;
/**
* @author 宇航.
* User: admin
* Date: 2021/2/6
* Time: 17:21
* Use:
*/
public
class
DoubleClickUtils
{
private
static
long
lastClickTime
=
0
;
public
static
boolean
isFastDoubleClick
()
{
long
nowTime
=
System
.
currentTimeMillis
();
if
(
nowTime
-
lastClickTime
<
500
)
{
//500ms
return
true
;
}
lastClickTime
=
nowTime
;
return
false
;
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/utils/HideUtil.java
0 → 100644
View file @
f410baeb
/*
* Copyright 2016 yinglan
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com
.
gingersoft
.
supply_chain
.
mvp
.
utils
;
import
android.app.Activity
;
import
android.app.Dialog
;
import
android.content.Context
;
import
android.graphics.Rect
;
import
android.os.IBinder
;
import
android.util.Log
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.inputmethod.InputMethodManager
;
import
android.widget.AbsListView
;
import
android.widget.EditText
;
import
android.widget.ScrollView
;
import
android.widget.TextView
;
import
androidx.recyclerview.widget.RecyclerView
;
/**
* Created by yinglan
*/
public
class
HideUtil
{
/**
* Initialization method
*
* @param activity
*/
public
static
void
init
(
Activity
activity
)
{
new
HideUtil
(
activity
,
null
);
}
/**
* Can pass the outer layout
*
* @param activity
* @param content
*/
public
static
void
init
(
Activity
activity
,
ViewGroup
content
)
{
new
HideUtil
(
activity
,
content
);
}
/**
* Forced hidden keyboard
*
* @param activity
*/
public
static
void
hideSoftKeyboard
(
Activity
activity
)
{
if
(
null
==
activity
)
{
throw
new
RuntimeException
(
"参数错误"
);
}
View
view
=
activity
.
getCurrentFocus
();
if
(
null
!=
view
)
{
InputMethodManager
inputMethodManager
=
(
InputMethodManager
)
activity
.
getSystemService
(
Activity
.
INPUT_METHOD_SERVICE
);
inputMethodManager
.
hideSoftInputFromWindow
(
view
.
getWindowToken
(),
InputMethodManager
.
HIDE_NOT_ALWAYS
);
}
}
/**
* Forced hidden keyboard
*
* @param view
*/
public
static
void
hideSoftKeyboard
(
View
view
)
{
if
(
null
!=
view
)
{
InputMethodManager
inputMethodManager
=
(
InputMethodManager
)
view
.
getContext
().
getSystemService
(
Activity
.
INPUT_METHOD_SERVICE
);
inputMethodManager
.
hideSoftInputFromWindow
(
view
.
getWindowToken
(),
InputMethodManager
.
HIDE_NOT_ALWAYS
);
}
else
{
throw
new
RuntimeException
(
"参数错误"
);
}
}
/**
* Forced hidden keyboard
*
* @param dialog
*/
public
static
void
hideDialogSoftKeyboard
(
Dialog
dialog
)
{
if
(
null
==
dialog
)
{
throw
new
RuntimeException
(
"参数错误"
);
}
View
view
=
dialog
.
getCurrentFocus
();
if
(
null
!=
view
)
{
InputMethodManager
inputMethodManager
=
(
InputMethodManager
)
dialog
.
getContext
().
getSystemService
(
Activity
.
INPUT_METHOD_SERVICE
);
inputMethodManager
.
hideSoftInputFromWindow
(
view
.
getWindowToken
(),
InputMethodManager
.
HIDE_NOT_ALWAYS
);
}
}
/**
* @param activity
*/
private
HideUtil
(
final
Activity
activity
,
ViewGroup
content
)
{
if
(
content
==
null
)
{
content
=
(
ViewGroup
)
activity
.
findViewById
(
android
.
R
.
id
.
content
);
}
getScrollView
(
content
,
activity
);
content
.
setOnTouchListener
(
new
View
.
OnTouchListener
()
{
@Override
public
boolean
onTouch
(
View
view
,
MotionEvent
motionEvent
)
{
Log
.
e
(
"eee"
,
"出賣人"
);
dispatchTouchEvent
(
activity
,
motionEvent
);
return
false
;
}
});
}
private
void
getScrollView
(
ViewGroup
viewGroup
,
final
Activity
activity
)
{
if
(
null
==
viewGroup
)
{
return
;
}
int
count
=
viewGroup
.
getChildCount
();
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
View
view
=
viewGroup
.
getChildAt
(
i
);
if
(
view
instanceof
ScrollView
)
{
ScrollView
newDtv
=
(
ScrollView
)
view
;
newDtv
.
setOnTouchListener
(
new
View
.
OnTouchListener
()
{
@Override
public
boolean
onTouch
(
View
view
,
MotionEvent
motionEvent
)
{
dispatchTouchEvent
(
activity
,
motionEvent
);
return
false
;
}
});
}
else
if
(
view
instanceof
AbsListView
)
{
AbsListView
newDtv
=
(
AbsListView
)
view
;
newDtv
.
setOnTouchListener
(
new
View
.
OnTouchListener
()
{
@Override
public
boolean
onTouch
(
View
view
,
MotionEvent
motionEvent
)
{
dispatchTouchEvent
(
activity
,
motionEvent
);
return
false
;
}
});
}
else
if
(
view
instanceof
RecyclerView
)
{
RecyclerView
newDtv
=
(
RecyclerView
)
view
;
newDtv
.
setOnTouchListener
(
new
View
.
OnTouchListener
()
{
@Override
public
boolean
onTouch
(
View
view
,
MotionEvent
motionEvent
)
{
dispatchTouchEvent
(
activity
,
motionEvent
);
return
false
;
}
});
}
else
if
(
view
instanceof
ViewGroup
)
{
this
.
getScrollView
((
ViewGroup
)
view
,
activity
);
}
if
(
view
.
isClickable
()
&&
view
instanceof
TextView
&&
!(
view
instanceof
EditText
))
{
view
.
setOnTouchListener
(
new
View
.
OnTouchListener
()
{
@Override
public
boolean
onTouch
(
View
view
,
MotionEvent
motionEvent
)
{
dispatchTouchEvent
(
activity
,
motionEvent
);
return
false
;
}
});
}
}
}
/**
* @param mActivity
* @param ev
* @return
*/
public
boolean
dispatchTouchEvent
(
Activity
mActivity
,
MotionEvent
ev
)
{
if
(
ev
.
getAction
()
==
MotionEvent
.
ACTION_DOWN
)
{
View
v
=
mActivity
.
getCurrentFocus
();
if
(
null
!=
v
&&
isShouldHideInput
(
v
,
ev
))
{
hideSoftInput
(
mActivity
,
v
.
getWindowToken
());
}
}
return
false
;
}
/**
* @param v
* @param event
* @return
*/
private
boolean
isShouldHideInput
(
View
v
,
MotionEvent
event
)
{
if
(
v
instanceof
EditText
)
{
Rect
rect
=
new
Rect
();
v
.
getHitRect
(
rect
);
if
(
rect
.
contains
((
int
)
event
.
getX
(),
(
int
)
event
.
getY
()))
{
return
false
;
}
}
return
true
;
}
/**
* @param mActivity
* @param token
*/
private
void
hideSoftInput
(
Activity
mActivity
,
IBinder
token
)
{
if
(
token
!=
null
)
{
InputMethodManager
im
=
(
InputMethodManager
)
mActivity
.
getSystemService
(
Context
.
INPUT_METHOD_SERVICE
);
im
.
hideSoftInputFromWindow
(
token
,
InputMethodManager
.
HIDE_NOT_ALWAYS
);
}
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/table/PrintServingPaperAction.java
View file @
f410baeb
...
@@ -135,12 +135,12 @@ public class PrintServingPaperAction extends TableAction {
...
@@ -135,12 +135,12 @@ public class PrintServingPaperAction extends TableAction {
* 打印上菜紙
* 打印上菜紙
*/
*/
private
void
printParper
(
TableBean
.
DataBean
tableBean
)
{
private
void
printParper
(
TableBean
.
DataBean
tableBean
)
{
PrintContent
printContent
=
new
PrintContentAdapter
().
adaptationServingPaperContent
(
DoshokuOrder
.
getInstance
(),
tableBean
);
PrintContent
printContent
=
new
PrintContentAdapter
().
adaptationServingPaperContent
(
DoshokuOrder
.
getInstance
(),
tableBean
);
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
setActionName
(
"printActivity"
)
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_SERVE
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_SERVE
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
tableBean
.
getOrderId
(
))
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
String
.
valueOf
(
tableBean
.
getOrderId
()
))
.
build
()
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
//清空賬單數據
//清空賬單數據
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
View file @
f410baeb
...
@@ -848,6 +848,12 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
...
@@ -848,6 +848,12 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
});
});
}
}
/**
* 點餐送單
*
* @param isPrint
* @param afterToActivity
*/
@Override
@Override
public
void
addOrderFood
(
boolean
isPrint
,
Class
<?>
afterToActivity
)
{
public
void
addOrderFood
(
boolean
isPrint
,
Class
<?>
afterToActivity
)
{
List
<
OrderDetail
>
foodLists
=
getOrderFoodLists
();
List
<
OrderDetail
>
foodLists
=
getOrderFoodLists
();
...
@@ -894,8 +900,13 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
...
@@ -894,8 +900,13 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
//合并主食品
//合并主食品
mergeMainFoodNumber
(
mOrderMealList
);
mergeMainFoodNumber
(
mOrderMealList
);
}
}
//餐檯送單
PrintContent
printContent
=
new
PrintContentAdapter
().
adaptationServingPaperContent
(
DoshokuOrder
.
getInstance
(),
mTableInfo
);
if
(
DoshokuOrder
.
getInstance
().
getNewFoodList
()
==
null
||
DoshokuOrder
.
getInstance
().
getNewFoodList
().
size
()
<=
0
)
{
//沒有新的食品時,不打印送單
IActivity
.
returnBeforeActivity
(
initTable
);
return
;
}
PrintContent
printContent
=
new
PrintContentAdapter
().
adaptationSendOrderPaperContent
(
DoshokuOrder
.
getInstance
(),
mTableInfo
);
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
setActionName
(
"printActivity"
)
.
setActionName
(
"printActivity"
)
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
View file @
f410baeb
...
@@ -388,8 +388,17 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
...
@@ -388,8 +388,17 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
//合并主食品
//合并主食品
mergeMainFoodNumber
(
mOrderMealList
);
mergeMainFoodNumber
(
mOrderMealList
);
}
}
//賬單內容送單
PrintContent
printContent
=
new
PrintContentAdapter
().
adaptationServingPaperContent
(
DoshokuOrder
.
getInstance
(),
mTableInfo
);
if
(
DoshokuOrder
.
getInstance
().
getNewFoodList
()
==
null
||
DoshokuOrder
.
getInstance
().
getNewFoodList
().
size
()
<=
0
)
{
//沒有新的食品時,不打印送單
if
(
afterToActivity
==
null
)
{
mRootView
.
sendSuccess
();
mAppManager
.
killActivity
(
MealStandActivity
.
class
);
}
return
;
}
//賬單內容送單
PrintContent
printContent
=
new
PrintContentAdapter
().
adaptationSendOrderPaperContent
(
DoshokuOrder
.
getInstance
(),
mTableInfo
);
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
setActionName
(
"printActivity"
)
.
setActionName
(
"printActivity"
)
...
...
config.gradle
View file @
f410baeb
...
@@ -7,8 +7,8 @@ ext {
...
@@ -7,8 +7,8 @@ ext {
targetSdkVersion
:
29
,
targetSdkVersion
:
29
,
//正式版: 1.0.3 3
//正式版: 1.0.3 3
//內部測試版:1.2.0 20
//內部測試版:1.2.0 20
versionCode
:
2
3
,
versionCode
:
2
4
,
versionName
:
"1.2.
3
"
versionName
:
"1.2.
4
"
]
]
version
=
[
version
=
[
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/app/GsaCloudApplication.java
View file @
f410baeb
...
@@ -358,12 +358,12 @@ public class GsaCloudApplication extends BaseApplication {
...
@@ -358,12 +358,12 @@ public class GsaCloudApplication extends BaseApplication {
}
}
@Override
@Override
public
void
onPrintSuccess
(
PrinterDeviceBean
printerDeviceBean
)
{
public
void
onPrintSuccess
()
{
LoganManager
.
w_printer
(
TAG
,
"打印成功"
);
LoganManager
.
w_printer
(
TAG
,
"打印成功"
);
}
}
@Override
@Override
public
void
onPrintError
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
)
{
public
void
onPrintError
(
int
errorCode
)
{
LoganManager
.
w_printer
(
TAG
,
"打印失敗:"
+
errorCode
);
LoganManager
.
w_printer
(
TAG
,
"打印失敗:"
+
errorCode
);
}
}
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/constans/PrintConstans.java
View file @
f410baeb
...
@@ -23,7 +23,6 @@ public class PrintConstans {
...
@@ -23,7 +23,6 @@ public class PrintConstans {
public
static
final
String
PRINT_TYPE
=
"print_type"
;
//打印類型
public
static
final
String
PRINT_TYPE
=
"print_type"
;
//打印類型
public
static
final
String
PRINT_CONTENT
=
"print_content"
;
//打印內容
public
static
final
String
PRINT_CONTENT
=
"print_content"
;
//打印內容
public
static
final
String
PRINT_ORDER_NO
=
"print_order_no"
;
//打印ID(唯一标识即可)
public
static
final
String
PRINT_ORDER_NO
=
"print_order_no"
;
//打印ID(唯一标识即可)
public
static
final
String
PRINT_LOADING
=
"is_show_loading"
;
//是否顯示加載框
public
final
static
int
PRINT_TEST
=
-
1
;
//測試頁
public
final
static
int
PRINT_TEST
=
-
1
;
//測試頁
public
final
static
int
PRINT_SERVE
=
0
;
//上菜紙
public
final
static
int
PRINT_SERVE
=
0
;
//上菜紙
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/logan/LoganManager.java
View file @
f410baeb
...
@@ -69,6 +69,8 @@ public class LoganManager {
...
@@ -69,6 +69,8 @@ public class LoganManager {
private
static
final
String
TABLEMODE_BUSINESS_TAG
=
"tableMode-> "
;
private
static
final
String
TABLEMODE_BUSINESS_TAG
=
"tableMode-> "
;
private
static
final
String
ORDER_BUSINESS_TAG
=
"order-> "
;
private
static
final
String
ORDER_BUSINESS_TAG
=
"order-> "
;
private
static
final
String
PAY_BUSINESS_TAG
=
"pay-> "
;
private
static
final
String
PAY_BUSINESS_TAG
=
"pay-> "
;
private
static
final
String
DELIVERY_PICK_TAG
=
"delivery-> "
;
/*******************************交互事件類型**************************************/
/*******************************交互事件類型**************************************/
public
static
final
String
EVENT_CLICK
=
"點擊->"
;
public
static
final
String
EVENT_CLICK
=
"點擊->"
;
...
@@ -115,6 +117,9 @@ public class LoganManager {
...
@@ -115,6 +117,9 @@ public class LoganManager {
w_business
(
PAY_BUSINESS_TAG
,
TAG
,
eventAndLog
);
w_business
(
PAY_BUSINESS_TAG
,
TAG
,
eventAndLog
);
}
}
public
static
void
w_delivery
(
String
TAG
,
String
...
eventAndLog
)
{
w_business
(
DELIVERY_PICK_TAG
,
TAG
,
eventAndLog
);
}
private
static
void
w_business
(
String
BUSINESS_TAG
,
String
TAG
,
String
...
eventAndLog
)
{
private
static
void
w_business
(
String
BUSINESS_TAG
,
String
TAG
,
String
...
eventAndLog
)
{
if
(
eventAndLog
!=
null
)
{
if
(
eventAndLog
!=
null
)
{
if
(
eventAndLog
.
length
>
1
)
{
if
(
eventAndLog
.
length
>
1
)
{
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/plugins/PrinterFlowListener.java
View file @
f410baeb
...
@@ -19,7 +19,7 @@ public interface PrinterFlowListener extends ExternalPrinterConnection {
...
@@ -19,7 +19,7 @@ public interface PrinterFlowListener extends ExternalPrinterConnection {
void
onPrinterBitmapBefore
(
int
orderType
,
int
printType
,
String
directoryName
,
List
<
Bitmap
>
bitmaps
);
void
onPrinterBitmapBefore
(
int
orderType
,
int
printType
,
String
directoryName
,
List
<
Bitmap
>
bitmaps
);
void
onPrintSuccess
(
PrinterDeviceBean
printerDeviceBean
);
void
onPrintSuccess
();
void
onPrintError
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
);
void
onPrintError
(
int
errorCode
);
}
}
library-print/src/main/java/com/gingersoft/gsa/cloud/print/PrintDataMaker.java
View file @
f410baeb
...
@@ -22,4 +22,8 @@ public interface PrintDataMaker {
...
@@ -22,4 +22,8 @@ public interface PrintDataMaker {
List
<
byte
[]>
getPrintData
();
List
<
byte
[]>
getPrintData
();
String
getPrjIds
();
String
getPrjIds
();
String
getIp
();
int
getPort
();
}
}
library-print/src/main/java/com/gingersoft/gsa/cloud/print/PrintExecutor.java
View file @
f410baeb
/*
* Copyright (C) 2015 AlexMofer
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com
.
gingersoft
.
gsa
.
cloud
.
print
;
package
com
.
gingersoft
.
gsa
.
cloud
.
print
;
import
android.bluetooth.BluetoothDevice
;
import
android.os.AsyncTask
;
import
android.os.AsyncTask
;
import
android.util.Log
;
import
com.elvishew.xlog.XLog
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.
gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.
xuexiang.rxutil2.rxjava.RxJavaUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
io.reactivex.disposables.Disposable
;
/**
/**
* 打印执行者
* 打印执行者
* Created by Alex on 2016/11/10.
*
* @author admin
*/
*/
public
class
PrintExecutor
{
public
class
PrintExecutor
{
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
private
PrintSocketHolder
holder
;
private
PrintSocketHolder
holder
;
private
int
mReconnectTimes
=
0
;
/**
private
int
time
=
0
;
* 存儲所有prj的id集合
*/
private
String
prjIds
;
private
String
prjIds
;
private
PrintSocketHolder
.
OnStateChangedListener
listener
;
private
PrintSocketHolder
.
OnStateChangedListener
listener
;
private
OnPrintResultListener
mListener
;
private
OnPrintResultListener
mListener
;
private
OnPrjPrintResultListener
onPrjPrintResultListener
;
private
OnPrjPrintResultListener
onPrjPrintResultListener
;
public
PrintExecutor
(
BluetoothDevice
device
)
{
public
PrintExecutor
()
{
holder
=
new
PrintSocketHolder
(
device
);
holder
=
PrintSocketHolder
.
getInstance
();
}
holder
.
closeSocket
();
printDataMakers
=
new
ArrayList
<>();
public
PrintExecutor
(
PrinterDeviceBean
printerDeviceBean
)
{
holder
=
new
PrintSocketHolder
(
printerDeviceBean
);
}
public
void
setPrinterDeviceBean
(
PrinterDeviceBean
printerDeviceBean
)
{
if
(
holder
!=
null
)
{
holder
.
setPrinterDeviceBean
(
printerDeviceBean
);
}
}
}
/**
/**
* 执行打印请求
* 需要執行的任務隊列
*
* @return 错误代码
*/
*/
private
int
doRequest
(
PrintDataMaker
maker
)
{
List
<
PrintDataMaker
>
printDataMakers
;
if
(
mReconnectTimes
==
0
)
{
holder
.
onPrinterStateChanged
(
PrintSocketHolder
.
STATE_0
);
List
<
byte
[]>
data
=
maker
.
getPrintData
();
prjIds
=
maker
.
getPrjIds
();
if
(!
holder
.
isSocketPrepared
())
{
int
prepare
=
holder
.
prepareSocket
();
if
(
prepare
!=
PrintSocketHolder
.
ERROR_0
)
{
return
prepare
;
}
}
return
holder
.
sendData
(
data
);
}
else
{
holder
.
onPrinterStateChanged
(
PrintSocketHolder
.
STATE_0
);
List
<
byte
[]>
data
=
maker
.
getPrintData
();
prjIds
=
maker
.
getPrjIds
();
if
(
holder
.
isSocketPrepared
())
{
if
(
sendData
(
data
))
{
return
PrintSocketHolder
.
ERROR_0
;
}
else
{
return
PrintSocketHolder
.
ERROR_100
;
}
}
else
{
if
(
prepareSocket
()
&&
sendData
(
data
))
{
return
PrintSocketHolder
.
ERROR_0
;
}
else
{
return
PrintSocketHolder
.
ERROR_100
;
}
}
}
}
/**
/**
* 执行打印请求
* 重啟打印的服務
*
* @return 错误代码
*/
*/
public
int
doPrinterRequest
(
PrintDataMaker
maker
)
{
private
Disposable
resetPrintDis
;
holder
.
setOnStateChangedListener
(
listener
);
return
doRequest
(
maker
);
}
private
boolean
prepareSocket
()
{
time
++;
boolean
prepareSocket
=
time
<
mReconnectTimes
&&
(
holder
.
prepareSocket
()
==
PrintSocketHolder
.
ERROR_0
||
prepareSocket
());
return
prepareSocket
;
}
private
boolean
sendData
(
List
<
byte
[]>
data
)
{
if
(
holder
.
sendData
(
data
)
==
PrintSocketHolder
.
ERROR_0
)
{
time
=
0
;
return
true
;
}
else
{
return
prepareSocket
()
&&
sendData
(
data
);
}
}
/**
/**
* 异步执行打印请求
* 异步执行打印请求
*/
*/
public
void
doPrinterRequestAsync
(
PrintDataMaker
maker
)
{
public
void
doPrinterRequestAsync
(
PrintDataMaker
maker
)
{
if
(
printDataMakers
.
size
()
<=
0
)
{
printDataMakers
.
add
(
maker
);
new
PrintTask
().
execute
(
maker
);
new
PrintTask
().
execute
(
maker
);
}
else
{
//如果隊列裡有任務在執行,只添加進去,等待執行完成之後,再來執行這個
printDataMakers
.
add
(
maker
);
startReset
();
}
}
/**
* 销毁
*/
public
int
closeSocket
()
{
return
holder
.
closeSocket
();
}
/**
* 设置IP及端口
*/
public
void
setIp
(
PrinterDeviceBean
printerDeviceBean
)
{
holder
.
setIp
(
printerDeviceBean
);
}
/**
* 设置蓝牙
*
* @param device 设备
*/
public
void
setDevice
(
BluetoothDevice
device
)
{
holder
.
setDevice
(
device
);
}
}
/**
private
void
startReset
()
{
* 设置状态监听
resetPrintDis
=
RxJavaUtils
.
delay
(
10
,
aLong
->
{
*
//如果十秒之後,任務還沒在打印完成方法中取消,可能打印程序卡住了,在這裡執行下一個任務
* @param listener 监听
if
(
printDataMakers
.
size
()
>
0
)
{
*/
new
PrintTask
().
execute
(
printDataMakers
.
get
(
0
));
public
void
setOnStateChangedListener
(
PrintSocketHolder
.
OnStateChangedListener
listener
)
{
this
.
listener
=
listener
;
}
}
});
/**
* 设置重连次数
*
* @param times 次数
*/
public
void
setReconnectTimes
(
int
times
)
{
mReconnectTimes
=
times
;
}
}
/**
/**
*
设置结果回调
*
执行打印请求
*
*
* @
param listener 回调
* @
return 错误代码
*/
*/
public
void
setOnPrintResultListener
(
OnPrintResultListener
listener
)
{
private
int
doRequest
(
PrintDataMaker
maker
)
{
this
.
mListener
=
listener
;
//通知狀態
holder
.
onPrinterStateChanged
(
PrintSocketHolder
.
STATE_0
);
//獲取打印數據
List
<
byte
[]>
data
=
maker
.
getPrintData
();
//如果是打印prj,需要獲取prj的id
prjIds
=
maker
.
getPrjIds
();
//判斷是否連接,如果未連接就先連接
int
prepare
=
holder
.
prepareSocket
(
maker
.
getIp
(),
maker
.
getPort
());
if
(
prepare
!=
PrintSocketHolder
.
ERROR_0
)
{
return
prepare
;
}
}
return
holder
.
sendData
(
data
);
public
interface
OnPrintResultListener
{
void
onResult
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
);
}
}
/**
/**
*
PRJ打印結果回調
*
打印任務
*/
*/
public
interface
OnPrjPrintResultListener
{
void
onResult
(
int
errorCode
,
String
ids
);
}
public
void
setOnPrjPrintResultListener
(
OnPrjPrintResultListener
onPrjPrintResultListener
)
{
this
.
onPrjPrintResultListener
=
onPrjPrintResultListener
;
}
private
class
PrintTask
extends
AsyncTask
<
PrintDataMaker
,
Integer
,
Integer
>
implements
private
class
PrintTask
extends
AsyncTask
<
PrintDataMaker
,
Integer
,
Integer
>
implements
PrintSocketHolder
.
OnStateChangedListener
{
PrintSocketHolder
.
OnStateChangedListener
{
@Override
@Override
protected
void
onPreExecute
()
{
protected
void
onPreExecute
()
{
super
.
onPreExecute
();
super
.
onPreExecute
();
Log
.
e
(
"eee"
,
"任務數量:"
+
printDataMakers
.
size
());
holder
.
setOnStateChangedListener
(
this
);
holder
.
setOnStateChangedListener
(
this
);
}
}
@Override
@Override
protected
Integer
doInBackground
(
PrintDataMaker
...
makers
)
{
protected
Integer
doInBackground
(
PrintDataMaker
...
makers
)
{
holder
.
closeSocket
();
if
(
makers
==
null
||
makers
.
length
<
1
)
{
if
(
makers
==
null
||
makers
.
length
<
1
)
{
return
PrintSocketHolder
.
ERROR_0
;
return
PrintSocketHolder
.
ERROR_0
;
}
}
...
@@ -212,13 +114,27 @@ public class PrintExecutor {
...
@@ -212,13 +114,27 @@ public class PrintExecutor {
return
;
return
;
}
}
if
(
listener
!=
null
)
{
if
(
listener
!=
null
)
{
listener
.
onStateChanged
(
values
[
0
]
,
holder
.
getPrinterDeviceBean
()
);
listener
.
onStateChanged
(
values
[
0
]);
}
}
}
}
@Override
@Override
protected
void
onPostExecute
(
Integer
integer
)
{
protected
void
onPostExecute
(
Integer
integer
)
{
super
.
onPostExecute
(
integer
);
super
.
onPostExecute
(
integer
);
if
(
resetPrintDis
!=
null
)
{
resetPrintDis
.
dispose
();
}
//移除掉當前任務
if
(
printDataMakers
.
size
()
>
0
)
{
printDataMakers
.
remove
(
0
);
}
//執行下一個任務
if
(
printDataMakers
.
size
()
>
0
)
{
new
PrintTask
().
execute
(
printDataMakers
.
get
(
0
));
startReset
();
}
Log
.
e
(
"eee"
,
"完成後任務數量:"
+
printDataMakers
.
size
());
//返回結果
if
(
integer
!=
null
)
{
if
(
integer
!=
null
)
{
onResult
(
integer
);
onResult
(
integer
);
}
}
...
@@ -232,7 +148,7 @@ public class PrintExecutor {
...
@@ -232,7 +148,7 @@ public class PrintExecutor {
private
void
onResult
(
int
errorCode
)
{
private
void
onResult
(
int
errorCode
)
{
try
{
try
{
if
(
mListener
!=
null
)
{
if
(
mListener
!=
null
)
{
mListener
.
onResult
(
errorCode
,
holder
.
getPrinterDeviceBean
()
);
mListener
.
onResult
(
errorCode
);
}
}
if
(
onPrjPrintResultListener
!=
null
)
{
if
(
onPrjPrintResultListener
!=
null
)
{
onPrjPrintResultListener
.
onResult
(
errorCode
,
prjIds
);
onPrjPrintResultListener
.
onResult
(
errorCode
,
prjIds
);
...
@@ -243,26 +159,66 @@ public class PrintExecutor {
...
@@ -243,26 +159,66 @@ public class PrintExecutor {
}
}
@Override
@Override
public
void
onStateChanged
(
int
state
,
PrinterDeviceBean
printerDeviceBean
)
{
public
void
onStateChanged
(
int
state
)
{
switch
(
state
)
{
switch
(
state
)
{
case
PrintSocketHolder
.
STATE_0
:
case
PrintSocketHolder
.
STATE_0
:
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 生成页面数据"
);
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 生成页面数据"
);
break
;
break
;
case
PrintSocketHolder
.
STATE_1
:
case
PrintSocketHolder
.
STATE_1
:
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 创建Socket连接"
);
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 创建Socket连接"
);
break
;
break
;
case
PrintSocketHolder
.
STATE_2
:
case
PrintSocketHolder
.
STATE_2
:
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 获取输出流"
);
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 获取输出流"
);
break
;
break
;
case
PrintSocketHolder
.
STATE_3
:
case
PrintSocketHolder
.
STATE_3
:
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 写入页面数据"
);
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 写入页面数据"
);
break
;
break
;
case
PrintSocketHolder
.
STATE_4
:
case
PrintSocketHolder
.
STATE_4
:
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 关闭输出流"
);
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 关闭输出流"
);
break
;
default
:
break
;
break
;
}
}
publishProgress
(
state
);
publishProgress
(
state
);
}
}
}
}
/**
* 设置状态监听
*
* @param listener 监听
*/
public
PrintExecutor
setOnStateChangedListener
(
PrintSocketHolder
.
OnStateChangedListener
listener
)
{
this
.
listener
=
listener
;
return
this
;
}
/**
* 设置结果回调
*
* @param listener 回调
*/
public
PrintExecutor
setOnPrintResultListener
(
OnPrintResultListener
listener
)
{
this
.
mListener
=
listener
;
return
this
;
}
/**
* 打印結果回調
*/
public
interface
OnPrintResultListener
{
void
onResult
(
int
errorCode
);
}
public
interface
OnPrjPrintResultListener
{
/**
* PRJ打印結果回調,prj service用
*/
void
onResult
(
int
errorCode
,
String
ids
);
}
public
PrintExecutor
setOnPrjPrintResultListener
(
OnPrjPrintResultListener
onPrjPrintResultListener
)
{
this
.
onPrjPrintResultListener
=
onPrjPrintResultListener
;
return
this
;
}
}
}
library-print/src/main/java/com/gingersoft/gsa/cloud/print/PrintSocketHolder.java
View file @
f410baeb
/*
* Copyright (C) 2015 AlexMofer
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com
.
gingersoft
.
gsa
.
cloud
.
print
;
package
com
.
gingersoft
.
gsa
.
cloud
.
print
;
import
android.
bluetooth.BluetoothDevice
;
import
android.
util.Log
;
import
android.bluetooth.BluetoothSocket
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.scwang.smartrefresh.layout.listener.OnStateChangedListener
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.io.OutputStream
;
import
java.lang.ref.WeakReference
;
import
java.lang.ref.WeakReference
;
import
java.net.InetSocketAddress
;
import
java.net.InetSocketAddress
;
import
java.net.Socket
;
import
java.net.Socket
;
import
java.util.List
;
import
java.util.List
;
import
java.util.UUID
;
/**
/**
* 打印Socket
* 打印Socket
* Created by Alex on 2016/11/10.
*/
*/
@SuppressWarnings
({
"WeakerAccess"
,
"unused"
})
public
class
PrintSocketHolder
{
public
class
PrintSocketHolder
{
private
final
static
PrintSocketHolder
printSocketHolder
=
new
PrintSocketHolder
();
public
static
PrintSocketHolder
getInstance
()
{
synchronized
(
printSocketHolder
)
{
return
printSocketHolder
;
}
}
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
public
static
final
int
STATE_0
=
10
;
// 生成测试页面数据
public
static
final
int
STATE_0
=
10
;
// 生成测试页面数据
...
@@ -53,41 +45,25 @@ public class PrintSocketHolder {
...
@@ -53,41 +45,25 @@ public class PrintSocketHolder {
public
static
final
int
ERROR_6
=
-
6
;
// 关闭Socket出错
public
static
final
int
ERROR_6
=
-
6
;
// 关闭Socket出错
public
static
final
int
ERROR_100
=
-
100
;
// 失败
public
static
final
int
ERROR_100
=
-
100
;
// 失败
private
static
final
UUID
uuid
=
UUID
.
fromString
(
"00001101-0000-1000-8000-00805F9B34FB"
);
//蓝牙打印UUID
// private String ip;
// private int port = 9100;
private
PrinterDeviceBean
printerDeviceBean
;
private
BluetoothDevice
mDevice
;
private
Socket
socket
;
private
Socket
socket
;
private
BluetoothSocket
bluetoothSocket
;
private
OutputStream
out
;
private
OutputStream
out
;
private
WeakReference
<
OnStateChangedListener
>
mListener
;
private
WeakReference
<
OnStateChangedListener
>
mListener
;
private
PrintSocketHolder
()
{
public
PrintSocketHolder
(
BluetoothDevice
device
)
{
setDevice
(
device
);
}
public
PrintSocketHolder
(
PrinterDeviceBean
printerDeviceBean
)
{
setIp
(
printerDeviceBean
);
}
}
public
int
createSocket
()
{
public
int
createSocket
(
String
ip
,
int
port
)
{
onPrinterStateChanged
(
STATE_1
);
onPrinterStateChanged
(
STATE_1
);
if
(
mDevice
==
null
&&
(
printerDeviceBean
==
null
||
printerDeviceBean
.
getIp
()
==
null
))
if
(
TextUtil
.
isEmptyOrNullOrUndefined
(
ip
))
{
return
ERROR_5
;
return
ERROR_5
;
}
try
{
try
{
if
(
mDevice
!=
null
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionBefore
(
"網絡打印機"
,
ip
,
port
,
PrintConstans
.
SO_TIMEOUT
,
PrintConstans
.
PRINT_TIMEOUT
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionBefore
(
"藍牙打印機"
,
printerDeviceBean
.
getIp
(),
printerDeviceBean
.
getPort
(),
0
,
0
);
bluetoothSocket
=
mDevice
.
createRfcommSocketToServiceRecord
(
uuid
);
bluetoothSocket
.
connect
();
}
else
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionBefore
(
"網絡打印機"
,
printerDeviceBean
.
getIp
(),
printerDeviceBean
.
getPort
(),
PrintConstans
.
SO_TIMEOUT
,
PrintConstans
.
PRINT_TIMEOUT
);
socket
=
new
Socket
();
socket
=
new
Socket
();
InetSocketAddress
socketAddress
=
new
InetSocketAddress
(
printerDeviceBean
.
getIp
(),
printerDeviceBean
.
getPort
());
//建立連接
InetSocketAddress
socketAddress
=
new
InetSocketAddress
(
ip
,
port
);
//设置超时时间
//设置超时时间
socket
.
setSoTimeout
(
PrintConstans
.
SO_TIMEOUT
);
socket
.
setSoTimeout
(
PrintConstans
.
SO_TIMEOUT
);
socket
.
connect
(
socketAddress
,
PrintConstans
.
PRINT_TIMEOUT
);
//开始连接ip
socket
.
connect
(
socketAddress
,
PrintConstans
.
PRINT_TIMEOUT
);
//开始连接ip
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
closeSocket
();
closeSocket
();
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -99,11 +75,7 @@ public class PrintSocketHolder {
...
@@ -99,11 +75,7 @@ public class PrintSocketHolder {
public
int
getOutputStream
()
{
public
int
getOutputStream
()
{
onPrinterStateChanged
(
STATE_2
);
onPrinterStateChanged
(
STATE_2
);
try
{
try
{
if
(
mDevice
!=
null
)
{
out
=
bluetoothSocket
.
getOutputStream
();
}
else
{
out
=
socket
.
getOutputStream
();
out
=
socket
.
getOutputStream
();
}
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
closeSocket
();
closeSocket
();
return
ERROR_3
;
return
ERROR_3
;
...
@@ -111,11 +83,19 @@ public class PrintSocketHolder {
...
@@ -111,11 +83,19 @@ public class PrintSocketHolder {
return
ERROR_0
;
return
ERROR_0
;
}
}
/**
* 是否連接
*/
public
boolean
isSocketPrepared
()
{
public
boolean
isSocketPrepared
()
{
boolean
isPrepared
=
(
bluetoothSocket
!=
null
||
socket
!=
null
)
&&
out
!=
null
;
return
socket
!=
null
&&
out
!=
null
;
return
isPrepared
;
}
}
/**
* 發送數據
*
* @param data 需要發送的數據
* @return 發送狀態:是否成功
*/
public
int
sendData
(
List
<
byte
[]>
data
)
{
public
int
sendData
(
List
<
byte
[]>
data
)
{
onPrinterStateChanged
(
STATE_3
);
onPrinterStateChanged
(
STATE_3
);
if
(
data
==
null
||
data
.
size
()
<=
0
)
{
if
(
data
==
null
||
data
.
size
()
<=
0
)
{
...
@@ -125,7 +105,7 @@ public class PrintSocketHolder {
...
@@ -125,7 +105,7 @@ public class PrintSocketHolder {
try
{
try
{
out
.
write
(
item
);
out
.
write
(
item
);
out
.
flush
();
out
.
flush
();
}
catch
(
IOException
e
)
{
}
catch
(
IOException
|
NullPointerException
e
)
{
LoganManager
.
w_printer
(
TAG
,
"打印异常: "
+
e
.
getMessage
());
LoganManager
.
w_printer
(
TAG
,
"打印异常: "
+
e
.
getMessage
());
closeSocket
();
closeSocket
();
return
ERROR_4
;
return
ERROR_4
;
...
@@ -135,38 +115,15 @@ public class PrintSocketHolder {
...
@@ -135,38 +115,15 @@ public class PrintSocketHolder {
return
ERROR_0
;
return
ERROR_0
;
}
}
public
int
sendData
(
byte
[]
data
)
{
public
int
prepareSocket
(
String
ip
,
int
port
)
{
onPrinterStateChanged
(
STATE_3
);
LoganManager
.
w_printer
(
TAG
,
"准备尝试连接打印机"
+
ip
+
":"
+
port
);
try
{
//創建連接
out
.
write
(
data
);
int
create
=
createSocket
(
ip
,
port
);
out
.
flush
();
//判斷連接狀態
}
catch
(
IOException
e
)
{
closeSocket
();
return
ERROR_4
;
}
return
ERROR_0
;
}
public
int
sendData
(
byte
[]...
data
)
{
onPrinterStateChanged
(
STATE_3
);
for
(
byte
[]
item
:
data
)
{
try
{
out
.
write
(
item
);
out
.
flush
();
}
catch
(
IOException
e
)
{
closeSocket
();
return
ERROR_4
;
}
}
return
ERROR_0
;
}
public
int
prepareSocket
()
{
LoganManager
.
w_printer
(
TAG
,
"准备尝试连接打印机"
);
int
create
=
createSocket
();
if
(
create
!=
PrintSocketHolder
.
ERROR_0
)
{
if
(
create
!=
PrintSocketHolder
.
ERROR_0
)
{
return
create
;
return
create
;
}
}
//獲取打印機寫入
int
result
=
getOutputStream
();
int
result
=
getOutputStream
();
if
(
result
==
ERROR_0
)
{
if
(
result
==
ERROR_0
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionSuccess
();
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionSuccess
();
...
@@ -180,13 +137,13 @@ public class PrintSocketHolder {
...
@@ -180,13 +137,13 @@ public class PrintSocketHolder {
* 销毁
* 销毁
*/
*/
public
int
closeSocket
()
{
public
int
closeSocket
()
{
LoganManager
.
w_printer
(
TAG
,
"準備关闭打印机连接"
);
onPrinterStateChanged
(
STATE_4
);
onPrinterStateChanged
(
STATE_4
);
boolean
error
=
false
;
boolean
error
=
false
;
try
{
try
{
if
(
out
!=
null
)
{
if
(
out
!=
null
)
{
out
.
close
();
out
.
close
();
out
=
null
;
out
=
null
;
LoganManager
.
w_printer
(
TAG
,
"关闭打印机輸出连接"
);
}
}
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
LoganManager
.
w_printer
(
TAG
,
"关闭打印机连接异常"
);
LoganManager
.
w_printer
(
TAG
,
"关闭打印机连接异常"
);
...
@@ -197,22 +154,13 @@ public class PrintSocketHolder {
...
@@ -197,22 +154,13 @@ public class PrintSocketHolder {
if
(
socket
!=
null
)
{
if
(
socket
!=
null
)
{
socket
.
close
();
socket
.
close
();
socket
=
null
;
socket
=
null
;
LoganManager
.
w_printer
(
TAG
,
"关闭打印机socket连接"
);
}
}
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
LoganManager
.
w_printer
(
TAG
,
"关闭打印机连接异常"
);
LoganManager
.
w_printer
(
TAG
,
"关闭打印机连接异常"
);
socket
=
null
;
socket
=
null
;
error
=
true
;
error
=
true
;
}
}
try
{
if
(
bluetoothSocket
!=
null
)
{
bluetoothSocket
.
close
();
bluetoothSocket
=
null
;
}
}
catch
(
IOException
e
)
{
LoganManager
.
w_printer
(
TAG
,
"关闭打印机连接异常"
);
bluetoothSocket
=
null
;
error
=
true
;
}
PrinterPlugins
.
getOnPrinterFlowHandler
().
disconnect
();
PrinterPlugins
.
getOnPrinterFlowHandler
().
disconnect
();
return
error
?
ERROR_6
:
ERROR_0
;
return
error
?
ERROR_6
:
ERROR_0
;
}
}
...
@@ -224,46 +172,15 @@ public class PrintSocketHolder {
...
@@ -224,46 +172,15 @@ public class PrintSocketHolder {
*/
*/
public
void
onPrinterStateChanged
(
int
state
)
{
public
void
onPrinterStateChanged
(
int
state
)
{
try
{
try
{
if
(
mListener
!=
null
&&
mListener
.
get
()
!=
null
)
if
(
mListener
!=
null
&&
mListener
.
get
()
!=
null
)
{
mListener
.
get
().
onStateChanged
(
state
,
printerDeviceBean
);
mListener
.
get
().
onStateChanged
(
state
);
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
}
}
/**
/**
* 设置IP及端口
*/
public
void
setIp
(
PrinterDeviceBean
printerDeviceBean
)
{
this
.
printerDeviceBean
=
printerDeviceBean
;
}
// public String getIp() {
// return ip;
// }
//
// public int getPort() {
// return port;
// }
public
PrinterDeviceBean
getPrinterDeviceBean
()
{
return
printerDeviceBean
;
}
public
void
setPrinterDeviceBean
(
PrinterDeviceBean
printerDeviceBean
)
{
this
.
printerDeviceBean
=
printerDeviceBean
;
}
/**
* 设置蓝牙
*
* @param device 设备
*/
public
void
setDevice
(
BluetoothDevice
device
)
{
this
.
mDevice
=
device
;
}
/**
* 设置状态监听
* 设置状态监听
*
*
* @param listener 监听
* @param listener 监听
...
@@ -273,6 +190,6 @@ public class PrintSocketHolder {
...
@@ -273,6 +190,6 @@ public class PrintSocketHolder {
}
}
public
interface
OnStateChangedListener
{
public
interface
OnStateChangedListener
{
void
onStateChanged
(
int
state
,
PrinterDeviceBean
printerDeviceBean
);
void
onStateChanged
(
int
state
);
}
}
}
}
library-print/src/main/java/com/gingersoft/gsa/cloud/print/bean/adapter/AdaptationContent.java
View file @
f410baeb
...
@@ -24,6 +24,8 @@ public interface AdaptationContent {
...
@@ -24,6 +24,8 @@ public interface AdaptationContent {
PrintContent
adaptationPrintSlipContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
);
PrintContent
adaptationPrintSlipContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
);
PrintContent
adaptationSendOrderPaperContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
);
PrintContent
adaptationServingPaperContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
);
PrintContent
adaptationServingPaperContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
);
PrintContent
adaptationBillContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
);
PrintContent
adaptationBillContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
);
...
...
library-print/src/main/java/com/gingersoft/gsa/cloud/print/bean/adapter/PrintContentAdapter.java
View file @
f410baeb
...
@@ -55,6 +55,11 @@ public class PrintContentAdapter implements AdaptationContent {
...
@@ -55,6 +55,11 @@ public class PrintContentAdapter implements AdaptationContent {
return
getPrintTakeawayFormContent
(
data
,
2
);
return
getPrintTakeawayFormContent
(
data
,
2
);
}
}
/**
* 清機打印
* @param settlementReport
* @return
*/
@Override
@Override
public
PrintContent
adaptationPrintCleanMachineContent
(
SettlementReport
settlementReport
)
{
public
PrintContent
adaptationPrintCleanMachineContent
(
SettlementReport
settlementReport
)
{
PrintCleanMachineContent
cleanMachineContent
=
new
PrintCleanMachineContent
();
PrintCleanMachineContent
cleanMachineContent
=
new
PrintCleanMachineContent
();
...
@@ -68,6 +73,12 @@ public class PrintContentAdapter implements AdaptationContent {
...
@@ -68,6 +73,12 @@ public class PrintContentAdapter implements AdaptationContent {
return
cleanMachineContent
;
return
cleanMachineContent
;
}
}
/**
* 印單
* @param doshokuOrder
* @param tableBean
* @return
*/
@Override
@Override
public
PrintContent
adaptationPrintSlipContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
)
{
public
PrintContent
adaptationPrintSlipContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
)
{
PrintSlipContent
slipContent
=
new
PrintSlipContent
();
PrintSlipContent
slipContent
=
new
PrintSlipContent
();
...
@@ -77,15 +88,23 @@ public class PrintContentAdapter implements AdaptationContent {
...
@@ -77,15 +88,23 @@ public class PrintContentAdapter implements AdaptationContent {
slipContent
.
setPerson
(
tableBean
.
getPerson
());
slipContent
.
setPerson
(
tableBean
.
getPerson
());
slipContent
.
setCreateTime
(
tableBean
.
getCreateTime
());
slipContent
.
setCreateTime
(
tableBean
.
getCreateTime
());
slipContent
.
setOrderNo
(
doshokuOrder
.
getOrderNo
());
slipContent
.
setOrderNo
(
doshokuOrder
.
getOrderNo
());
slipContent
.
setFoodItemList
(
orderDetailItemCastPrintFoodItemList
(
doshokuOrder
.
getNewFoodList
()));
// slipContent.setFoodItemList(orderDetailItemCastPrintFoodItemList(doshokuOrder.getNewFoodList()));
slipContent
.
setFoodItemList
(
orderDetailItemCastPrintFoodItemList
(
doshokuOrder
.
getShoppingCart
().
getOrderCommodityList
()));
slipContent
.
setBillItemList
(
billItemCastPrintBillItemList
(
doshokuOrder
.
getShoppingCart
().
getBillItemList
()));
slipContent
.
setBillItemList
(
billItemCastPrintBillItemList
(
doshokuOrder
.
getShoppingCart
().
getBillItemList
()));
slipContent
.
setWholeAmount
(
doshokuOrder
.
getShoppingCart
().
getWholeAmount
());
slipContent
.
setWholeAmount
(
doshokuOrder
.
getShoppingCart
().
getWholeAmount
());
slipContent
.
setTotalAmount
(
doshokuOrder
.
getShoppingCart
().
getTotalAmount
());
slipContent
.
setPoliteLanguage
(
"歡迎光臨!"
);
slipContent
.
setPoliteLanguage
(
"歡迎光臨!"
);
return
slipContent
;
return
slipContent
;
}
}
/**
* 送單
* @param doshokuOrder
* @param tableBean
* @return
*/
@Override
@Override
public
PrintContent
adaptationSe
rving
PaperContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
)
{
public
PrintContent
adaptationSe
ndOrder
PaperContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
)
{
PrintServingPaperContent
servingPaperContent
=
new
PrintServingPaperContent
();
PrintServingPaperContent
servingPaperContent
=
new
PrintServingPaperContent
();
servingPaperContent
.
setBrand
(
RestaurantInfoManager
.
newInstance
().
getBrandName
());
servingPaperContent
.
setBrand
(
RestaurantInfoManager
.
newInstance
().
getBrandName
());
servingPaperContent
.
setResturantName
(
RestaurantInfoManager
.
newInstance
().
getRestaurantName
());
servingPaperContent
.
setResturantName
(
RestaurantInfoManager
.
newInstance
().
getRestaurantName
());
...
@@ -93,11 +112,39 @@ public class PrintContentAdapter implements AdaptationContent {
...
@@ -93,11 +112,39 @@ public class PrintContentAdapter implements AdaptationContent {
servingPaperContent
.
setPerson
(
tableBean
.
getPerson
());
servingPaperContent
.
setPerson
(
tableBean
.
getPerson
());
servingPaperContent
.
setCreateTime
(
tableBean
.
getCreateTime
());
servingPaperContent
.
setCreateTime
(
tableBean
.
getCreateTime
());
servingPaperContent
.
setOrderNo
(
doshokuOrder
.
getOrderNo
());
servingPaperContent
.
setOrderNo
(
doshokuOrder
.
getOrderNo
());
//送單
servingPaperContent
.
setFoodItemList
(
orderDetailItemCastPrintFoodItemList
(
doshokuOrder
.
getNewFoodList
()));
servingPaperContent
.
setFoodItemList
(
orderDetailItemCastPrintFoodItemList
(
doshokuOrder
.
getNewFoodList
()));
servingPaperContent
.
setPoliteLanguage
(
"歡迎光臨!"
);
servingPaperContent
.
setPoliteLanguage
(
"歡迎光臨!"
);
return
servingPaperContent
;
return
servingPaperContent
;
}
}
/**
* 上菜紙
* @param doshokuOrder
* @param tableBean
* @return
*/
@Override
public
PrintContent
adaptationServingPaperContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
)
{
PrintServingPaperContent
servingPaperContent
=
new
PrintServingPaperContent
();
servingPaperContent
.
setBrand
(
RestaurantInfoManager
.
newInstance
().
getBrandName
());
servingPaperContent
.
setResturantName
(
RestaurantInfoManager
.
newInstance
().
getRestaurantName
());
servingPaperContent
.
setTableName
(
tableBean
.
getTableName
());
servingPaperContent
.
setPerson
(
tableBean
.
getPerson
());
servingPaperContent
.
setCreateTime
(
tableBean
.
getCreateTime
());
servingPaperContent
.
setOrderNo
(
doshokuOrder
.
getOrderNo
());
// servingPaperContent.setFoodItemList(orderDetailItemCastPrintFoodItemList(doshokuOrder.getNewFoodList()));
servingPaperContent
.
setFoodItemList
(
orderDetailItemCastPrintFoodItemList
(
doshokuOrder
.
getShoppingCart
().
getOrderCommodityList
()));
servingPaperContent
.
setPoliteLanguage
(
"歡迎光臨!"
);
return
servingPaperContent
;
}
/**
* 打印結賬單
* @param doshokuOrder
* @param tableBean
* @return
*/
@Override
@Override
public
PrintContent
adaptationBillContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
)
{
public
PrintContent
adaptationBillContent
(
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
tableBean
)
{
PrintBillContent
billContent
=
new
PrintBillContent
();
PrintBillContent
billContent
=
new
PrintBillContent
();
...
@@ -107,7 +154,7 @@ public class PrintContentAdapter implements AdaptationContent {
...
@@ -107,7 +154,7 @@ public class PrintContentAdapter implements AdaptationContent {
billContent
.
setPerson
(
tableBean
.
getPerson
());
billContent
.
setPerson
(
tableBean
.
getPerson
());
billContent
.
setCreateTime
(
tableBean
.
getCreateTime
());
billContent
.
setCreateTime
(
tableBean
.
getCreateTime
());
billContent
.
setOrderNo
(
doshokuOrder
.
getOrderNo
());
billContent
.
setOrderNo
(
doshokuOrder
.
getOrderNo
());
billContent
.
setFoodItemList
(
orderDetailItemCastPrintFoodItemList
(
doshokuOrder
.
get
NewFood
List
()));
billContent
.
setFoodItemList
(
orderDetailItemCastPrintFoodItemList
(
doshokuOrder
.
get
ShoppingCart
().
getOrderCommodity
List
()));
billContent
.
setBillItemList
(
billItemCastPrintBillItemList
(
doshokuOrder
.
getShoppingCart
().
getBillItemList
()));
billContent
.
setBillItemList
(
billItemCastPrintBillItemList
(
doshokuOrder
.
getShoppingCart
().
getBillItemList
()));
billContent
.
setPayMethodItemList
(
payMethodItemCastPrintBillItemList
(
doshokuOrder
.
getBillMoney
()));
billContent
.
setPayMethodItemList
(
payMethodItemCastPrintBillItemList
(
doshokuOrder
.
getBillMoney
()));
billContent
.
setWholeAmount
(
doshokuOrder
.
getShoppingCart
().
getWholeAmount
());
billContent
.
setWholeAmount
(
doshokuOrder
.
getShoppingCart
().
getWholeAmount
());
...
...
library-print/src/main/java/com/gingersoft/gsa/cloud/print/newprint/ConnectPrintUtil.java
View file @
f410baeb
...
@@ -60,7 +60,7 @@ public class ConnectPrintUtil {
...
@@ -60,7 +60,7 @@ public class ConnectPrintUtil {
socketMap
.
put
(
ip
,
socket
);
socketMap
.
put
(
ip
,
socket
);
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
socketMap
.
remove
(
ip
);
socketMap
.
remove
(
ip
);
setState
(
PrintSocketHolder
.
ERROR_
1
,
"連接失敗"
+
e
.
getMessage
());
setState
(
PrintSocketHolder
.
ERROR_
2
,
"連接失敗"
+
e
.
getMessage
());
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
}
}
...
...
library-print/src/main/java/com/gingersoft/gsa/cloud/print/newprint/PrintUtil.java
View file @
f410baeb
package
com
.
gingersoft
.
gsa
.
cloud
.
print
.
newprint
;
//
package com.gingersoft.gsa.cloud.print.newprint;
//
import
android.bluetooth.BluetoothDevice
;
//
import android.bluetooth.BluetoothDevice;
import
android.os.AsyncTask
;
//
import android.os.AsyncTask;
//
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
//
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
//
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import
com.gingersoft.gsa.cloud.print.PrintDataMaker
;
//
import com.gingersoft.gsa.cloud.print.PrintDataMaker;
import
com.gingersoft.gsa.cloud.print.PrintExecutor
;
//
import com.gingersoft.gsa.cloud.print.PrintExecutor;
import
com.gingersoft.gsa.cloud.print.PrintSocketHolder
;
//
import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
//
import
java.util.List
;
//
import java.util.List;
//
public
class
PrintUtil
{
//
public class PrintUtil {
//
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
//
protected final String TAG = this.getClass().getSimpleName();
//
private
PrintSocketHolder
holder
;
//
private PrintSocketHolder holder;
private
int
mReconnectTimes
=
0
;
//
private int mReconnectTimes = 0;
private
int
time
=
0
;
//
private int time = 0;
private
String
prjIds
;
//
private String prjIds;
private
PrintSocketHolder
.
OnStateChangedListener
listener
;
//
private PrintSocketHolder.OnStateChangedListener listener;
private
PrintExecutor
.
OnPrintResultListener
mListener
;
//
private PrintExecutor.OnPrintResultListener mListener;
private
PrintExecutor
.
OnPrjPrintResultListener
onPrjPrintResultListener
;
//
private PrintExecutor.OnPrjPrintResultListener onPrjPrintResultListener;
//
public
PrintUtil
()
{
//
public PrintUtil() {
// holder = new PrintSocketHolder(printerDeviceBean);
//
//
holder = new PrintSocketHolder(printerDeviceBean);
}
//
}
//
/**
//
/**
* 执行打印请求
//
* 执行打印请求
*
//
*
* @return 错误代码
//
* @return 错误代码
*/
//
*/
private
int
doRequest
(
PrintDataMaker
maker
)
{
//
private int doRequest(PrintDataMaker maker) {
LoganManager
.
w_printer
(
TAG
,
"PrintTask doRequest"
);
//
LoganManager.w_printer(TAG,"PrintTask doRequest");
if
(
mReconnectTimes
==
0
)
{
//
if (mReconnectTimes == 0) {
holder
.
onPrinterStateChanged
(
PrintSocketHolder
.
STATE_0
);
//
holder.onPrinterStateChanged(PrintSocketHolder.STATE_0);
List
<
byte
[]>
data
=
maker
.
getPrintData
();
//
List<byte[]> data = maker.getPrintData();
prjIds
=
maker
.
getPrjIds
();
//
prjIds = maker.getPrjIds();
if
(!
holder
.
isSocketPrepared
())
{
//
if (!holder.isSocketPrepared()) {
int
prepare
=
holder
.
prepareSocket
();
//
int prepare = holder.prepareSocket();
if
(
prepare
!=
PrintSocketHolder
.
ERROR_0
)
//
if (prepare != PrintSocketHolder.ERROR_0)
return
prepare
;
//
return prepare;
}
//
}
return
holder
.
sendData
(
data
);
//
return holder.sendData(data);
}
else
{
//
} else {
holder
.
onPrinterStateChanged
(
PrintSocketHolder
.
STATE_0
);
//
holder.onPrinterStateChanged(PrintSocketHolder.STATE_0);
List
<
byte
[]>
data
=
maker
.
getPrintData
();
//
List<byte[]> data = maker.getPrintData();
prjIds
=
maker
.
getPrjIds
();
//
prjIds = maker.getPrjIds();
if
(
holder
.
isSocketPrepared
())
{
//
if (holder.isSocketPrepared()) {
if
(
sendData
(
data
))
//
if (sendData(data))
return
PrintSocketHolder
.
ERROR_0
;
//
return PrintSocketHolder.ERROR_0;
else
//
else
return
PrintSocketHolder
.
ERROR_100
;
//
return PrintSocketHolder.ERROR_100;
}
else
{
//
} else {
if
(
prepareSocket
()
&&
sendData
(
data
))
{
//
if (prepareSocket() && sendData(data)) {
return
PrintSocketHolder
.
ERROR_0
;
//
return PrintSocketHolder.ERROR_0;
}
else
{
//
} else {
return
PrintSocketHolder
.
ERROR_100
;
//
return PrintSocketHolder.ERROR_100;
}
//
}
}
//
}
}
//
}
}
//
}
//
/**
//
/**
* 执行打印请求
//
* 执行打印请求
*
//
*
* @return 错误代码
//
* @return 错误代码
*/
//
*/
public
int
doPrinterRequest
(
PrintDataMaker
maker
)
{
//
public int doPrinterRequest(PrintDataMaker maker) {
holder
.
setOnStateChangedListener
(
listener
);
//
holder.setOnStateChangedListener(listener);
return
doRequest
(
maker
);
//
return doRequest(maker);
}
//
}
//
private
boolean
prepareSocket
()
{
//
private boolean prepareSocket() {
time
++;
//
time++;
return
time
<
mReconnectTimes
&&
//
return time < mReconnectTimes &&
(
holder
.
prepareSocket
()
==
PrintSocketHolder
.
ERROR_0
||
prepareSocket
());
//
(holder.prepareSocket() == PrintSocketHolder.ERROR_0 || prepareSocket());
}
//
}
//
private
boolean
sendData
(
List
<
byte
[]>
data
)
{
//
private boolean sendData(List<byte[]> data) {
if
(
holder
.
sendData
(
data
)
==
PrintSocketHolder
.
ERROR_0
)
{
//
if (holder.sendData(data) == PrintSocketHolder.ERROR_0) {
time
=
0
;
//
time = 0;
return
true
;
//
return true;
}
else
{
//
} else {
return
prepareSocket
()
&&
sendData
(
data
);
//
return prepareSocket() && sendData(data);
}
//
}
}
//
}
//
/**
//
/**
* 异步执行打印请求
//
* 异步执行打印请求
*/
//
*/
public
void
doPrinterRequestAsync
(
PrintDataMaker
maker
)
{
//
public void doPrinterRequestAsync(PrintDataMaker maker) {
// new PrintExecutor.PrintTask().execute(maker);
//
//
new PrintExecutor.PrintTask().execute(maker);
}
//
}
//
/**
//
/**
* 销毁
//
* 销毁
*/
//
*/
public
int
closeSocket
()
{
//
public int closeSocket() {
return
holder
.
closeSocket
();
//
return holder.closeSocket();
}
//
}
//
/**
//
/**
* 设置IP及端口
//
* 设置IP及端口
*/
//
*/
public
void
setIp
(
PrinterDeviceBean
printerDeviceBean
)
{
//
public void setIp(PrinterDeviceBean printerDeviceBean) {
holder
.
setIp
(
printerDeviceBean
);
//
holder.setIp(printerDeviceBean);
}
//
}
//
/**
//
/**
* 设置蓝牙
//
* 设置蓝牙
*
//
*
* @param device 设备
//
* @param device 设备
*/
//
*/
public
void
setDevice
(
BluetoothDevice
device
)
{
//
public void setDevice(BluetoothDevice device) {
holder
.
setDevice
(
device
);
//
holder.setDevice(device);
}
//
}
//
/**
//
/**
* 设置状态监听
//
* 设置状态监听
*
//
*
* @param listener 监听
//
* @param listener 监听
*/
//
*/
public
void
setOnStateChangedListener
(
PrintSocketHolder
.
OnStateChangedListener
listener
)
{
//
public void setOnStateChangedListener(PrintSocketHolder.OnStateChangedListener listener) {
this
.
listener
=
listener
;
//
this.listener = listener;
}
//
}
//
/**
//
/**
* 设置重连次数
//
* 设置重连次数
*
//
*
* @param times 次数
//
* @param times 次数
*/
//
*/
public
void
setReconnectTimes
(
int
times
)
{
//
public void setReconnectTimes(int times) {
mReconnectTimes
=
times
;
//
mReconnectTimes = times;
}
//
}
//
/**
//
/**
* 设置结果回调
//
* 设置结果回调
*
//
*
* @param listener 回调
//
* @param listener 回调
*/
//
*/
public
void
setOnPrintResultListener
(
PrintExecutor
.
OnPrintResultListener
listener
)
{
//
public void setOnPrintResultListener(PrintExecutor.OnPrintResultListener listener) {
this
.
mListener
=
listener
;
//
this.mListener = listener;
}
//
}
//
public
interface
OnPrintResultListener
{
//
public interface OnPrintResultListener {
void
onResult
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
);
//
void onResult(int errorCode, PrinterDeviceBean printerDeviceBean);
}
//
}
//
/**
//
/**
* PRJ打印結果回調
//
* PRJ打印結果回調
*/
//
*/
public
interface
OnPrjPrintResultListener
{
//
public interface OnPrjPrintResultListener {
void
onResult
(
int
errorCode
,
String
ids
);
//
void onResult(int errorCode, String ids);
}
//
}
//
public
void
setOnPrjPrintResultListener
(
PrintExecutor
.
OnPrjPrintResultListener
onPrjPrintResultListener
)
{
//
public void setOnPrjPrintResultListener(PrintExecutor.OnPrjPrintResultListener onPrjPrintResultListener) {
this
.
onPrjPrintResultListener
=
onPrjPrintResultListener
;
//
this.onPrjPrintResultListener = onPrjPrintResultListener;
}
//
}
//
private
class
PrintTask
extends
AsyncTask
<
PrintDataMaker
,
Integer
,
Integer
>
implements
//
private class PrintTask extends AsyncTask<PrintDataMaker, Integer, Integer> implements
PrintSocketHolder
.
OnStateChangedListener
{
//
PrintSocketHolder.OnStateChangedListener {
//
@Override
//
@Override
protected
void
onPreExecute
()
{
//
protected void onPreExecute() {
super
.
onPreExecute
();
//
super.onPreExecute();
holder
.
setOnStateChangedListener
(
this
);
//
holder.setOnStateChangedListener(this);
}
//
}
//
@Override
//
@Override
protected
Integer
doInBackground
(
PrintDataMaker
...
makers
)
{
//
protected Integer doInBackground(PrintDataMaker... makers) {
if
(
makers
==
null
||
makers
.
length
<
1
)
//
if (makers == null || makers.length < 1)
return
PrintSocketHolder
.
ERROR_0
;
//
return PrintSocketHolder.ERROR_0;
return
doRequest
(
makers
[
0
]);
//
return doRequest(makers[0]);
}
//
}
//
@Override
//
@Override
protected
void
onProgressUpdate
(
Integer
...
values
)
{
//
protected void onProgressUpdate(Integer... values) {
super
.
onProgressUpdate
(
values
);
//
super.onProgressUpdate(values);
if
(
values
==
null
||
values
.
length
<
1
)
//
if (values == null || values.length < 1)
return
;
//
return;
if
(
listener
!=
null
)
//
if (listener != null)
listener
.
onStateChanged
(
values
[
0
],
holder
.
getPrinterDeviceBean
());
//
listener.onStateChanged(values[0], holder.getPrinterDeviceBean());
}
//
}
//
@Override
//
@Override
protected
void
onPostExecute
(
Integer
integer
)
{
//
protected void onPostExecute(Integer integer) {
super
.
onPostExecute
(
integer
);
//
super.onPostExecute(integer);
if
(
integer
!=
null
)
{
//
if (integer != null) {
onResult
(
integer
);
//
onResult(integer);
}
//
}
}
//
}
//
/**
//
/**
* 打印结果
//
* 打印结果
*
//
*
* @param errorCode 错误代码
//
* @param errorCode 错误代码
*/
//
*/
private
void
onResult
(
int
errorCode
)
{
//
private void onResult(int errorCode) {
try
{
//
try {
if
(
mListener
!=
null
)
//
if (mListener != null)
mListener
.
onResult
(
errorCode
,
holder
.
getPrinterDeviceBean
());
//
mListener.onResult(errorCode, holder.getPrinterDeviceBean());
if
(
onPrjPrintResultListener
!=
null
)
{
//
if (onPrjPrintResultListener != null) {
onPrjPrintResultListener
.
onResult
(
errorCode
,
prjIds
);
//
onPrjPrintResultListener.onResult(errorCode, prjIds);
}
//
}
}
catch
(
Exception
e
)
{
//
} catch (Exception e) {
e
.
printStackTrace
();
//
e.printStackTrace();
}
//
}
}
//
}
//
@Override
//
@Override
public
void
onStateChanged
(
int
state
,
PrinterDeviceBean
printerDeviceBean
)
{
//
public void onStateChanged(int state, PrinterDeviceBean printerDeviceBean) {
publishProgress
(
state
);
//
publishProgress(state);
}
//
}
}
//
}
}
//
}
library-ui/src/main/res/layout/print_item_food.xml
View file @
f410baeb
...
@@ -3,6 +3,8 @@
...
@@ -3,6 +3,8 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
>
<TextView
<TextView
...
...
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