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
7678dfd3
Commit
7678dfd3
authored
Jan 29, 2021
by
宁斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、打印流程日志埋点
parent
35f60e81
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
357 additions
and
176 deletions
+357
-176
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/HistoryOrderViewModel.kt
+1
-0
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/PageViewModel.kt
+3
-1
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/ui/activity/PrjQueryActivity.java
+7
-3
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
+2
-1
component-pay/src/main/java/com/gingersoft/gsa/cloud/pay/mvp/ui/activity/PayResultActivity.java
+1
-0
component-print/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
+17
-2
component-print/src/main/java/com/joe/print/mvp/print/service/PrjService.java
+23
-22
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
+23
-5
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/PrintOrderAction.java
+1
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/table/PrintServingPaperAction.java
+1
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
+1
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
+2
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/TablePresenter.java
+0
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderPayActivity.java
+2
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/orderManager/OrderDetailActivity.java
+2
-2
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/OrderCenterAdapter.java
+2
-2
library-common/src/main/java/com/gingersoft/gsa/cloud/app/GsaCloudApplication.java
+26
-68
library-common/src/main/java/com/gingersoft/gsa/cloud/common/config/LoganConfig.java
+12
-8
library-common/src/main/java/com/gingersoft/gsa/cloud/common/constans/PrintConstans.java
+1
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/logan/LoganManager.java
+8
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/PrinterFileUtils.java
+137
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/plugins/ExternalPrinterConnection.java
+1
-1
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/plugins/PrinterFlowListener.java
+3
-2
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/plugins/PrinterPlugins.java
+3
-4
library-common/src/main/java/com/gingersoft/gsa/cloud/common/service/GetInfoUpdateService.kt
+12
-9
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/FileUtils.java
+26
-17
library-print/src/main/java/com/gingersoft/gsa/cloud/print/PrintExecutor.java
+19
-14
library-print/src/main/java/com/gingersoft/gsa/cloud/print/PrintSocketHolder.java
+21
-14
No files found.
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/HistoryOrderViewModel.kt
View file @
7678dfd3
...
...
@@ -105,6 +105,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_OTHER_ORDER
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
TakeawayOrder
.
getInstance
().
shoppingCart
.
deliveryAndPickupData
.
ORDER_NO
)
.
setActionName
(
"printActivity"
)
.
build
()
.
callAsyncCallbackOnMainThread
{
_
,
result
->
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/PageViewModel.kt
View file @
7678dfd3
...
...
@@ -655,6 +655,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_OTHER_ORDER
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
dataBean
.
ORDER_NO
)
.
setActionName
(
"printActivity"
)
.
build
()
.
callAsyncCallbackOnMainThread
{
_
,
result
->
...
...
@@ -674,8 +675,9 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_OTHER_CLOSING
)
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
dataBean
.
ORDER_NO
)
.
setActionName
(
"printActivity"
)
.
build
()
.
callAsyncCallbackOnMainThread
{
_
,
result
->
TakeawayOrder
.
getInstance
().
shoppingCart
.
deliveryAndPickupData
=
null
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/ui/activity/PrjQueryActivity.java
View file @
7678dfd3
...
...
@@ -246,17 +246,21 @@ public class PrjQueryActivity extends BaseActivity<PrjQueryPresenter> implements
}
private
void
printPrj
(
List
<
PrjBean
.
DataBean
.
Bean
>
printDatas
)
{
String
orderNo
=
""
;
StringBuilder
ids
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
printDatas
.
size
();
i
++)
{
printDatas
.
get
(
i
).
setTotalPrj
(
printDatas
.
size
());
printDatas
.
get
(
i
).
setCurrentIndex
(
i
);
ids
.
append
(
printDatas
.
get
(
i
).
getId
());
PrjBean
.
DataBean
.
Bean
prjBean
=
printDatas
.
get
(
i
);
orderNo
=
prjBean
.
getOrderNo
();
prjBean
.
setTotalPrj
(
printDatas
.
size
());
prjBean
.
setCurrentIndex
(
i
);
ids
.
append
(
prjBean
.
getId
());
}
//添加重印的報警推送
OkHttp3Utils
.
noticePersonnel
(
AppConstans
.
RP_REPRINT_CODE
,
"重印,訂單號:"
+
printDatas
.
get
(
0
).
getOrderNo
());
String
finalIds
=
ids
.
toString
();
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_KITCHEN
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
orderNo
)
.
addParam
(
"prjBeans"
,
printDatas
)
.
setActionName
(
"printActivity"
)
.
build
()
...
...
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
View file @
7678dfd3
...
...
@@ -591,7 +591,8 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
showMessage
(
"再按一次退出應用"
);
mExitTime
=
System
.
currentTimeMillis
();
}
else
{
finish
();
// finish();
ArmsUtils
.
exitApp
();
// System.exit(0);
}
}
...
...
component-pay/src/main/java/com/gingersoft/gsa/cloud/pay/mvp/ui/activity/PayResultActivity.java
View file @
7678dfd3
...
...
@@ -377,6 +377,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_BILL
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
mMealPayResultParam
.
getMealOrderPayRequest
().
getOrderId
())
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
Log
.
e
(
"error"
,
"是否成功打印:"
+
result
.
isSuccess
());
...
...
component-print/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
View file @
7678dfd3
...
...
@@ -33,7 +33,9 @@ import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
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.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.printer.AidlUtil
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.threadPool.ThreadPoolManager
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
...
...
@@ -94,6 +96,7 @@ import static com.joe.print.mvp.print.common.HtmlContract.LABLE_P;
@Getter
public
abstract
class
PrinterRoot
<
T
extends
PrintContent
>
implements
PrintSocketHolder
.
OnStateChangedListener
,
PrintExecutor
.
OnPrintResultListener
,
ReceiveListener
{
private
final
String
TAG
=
getClass
().
getSimpleName
();
@Inject
AppManager
mAppManager
;
protected
final
String
MONETARY_UNIT
=
"$"
;
...
...
@@ -436,29 +439,41 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
return
ImageUtils
.
zoomDrawable
(
bitmap
,
printWidth
);
}
@Override
public
void
onResult
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
)
{
switch
(
errorCode
)
{
case
PrintSocketHolder
.
ERROR_0
:
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
(
printerDeviceBean
);
printSuccess
();
break
;
return
;
case
PrintSocketHolder
.
ERROR_1
:
LoganManager
.
w_printer
(
TAG
,
"生成打印數據失敗"
);
printFailure
(
"生成打印數據失敗"
);
break
;
case
PrintSocketHolder
.
ERROR_2
:
LoganManager
.
w_printer
(
TAG
,
"連接打印機失敗"
);
printFailure
(
"連接打印機失敗"
);
break
;
case
PrintSocketHolder
.
ERROR_3
:
LoganManager
.
w_printer
(
TAG
,
"連接打印機失敗(获取输出流失败)"
);
printFailure
(
"連接打印機失敗"
);
break
;
case
PrintSocketHolder
.
ERROR_4
:
LoganManager
.
w_printer
(
TAG
,
"連接打印機失敗(写入页面数据失败)"
);
printFailure
(
"連接打印機失敗"
);
break
;
case
PrintSocketHolder
.
ERROR_5
:
LoganManager
.
w_printer
(
TAG
,
"連接打印機失敗(必要参数不能为空)"
);
printFailure
(
"連接打印機失敗"
);
break
;
case
PrintSocketHolder
.
ERROR_6
:
LoganManager
.
w_printer
(
TAG
,
"关闭Socket出错"
);
break
;
case
PrintSocketHolder
.
ERROR_100
:
LoganManager
.
w_printer
(
TAG
,
"打印失败"
);
break
;
}
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
errorCode
,
printerDeviceBean
);
setPrintState
(
errorCode
);
}
...
...
component-print/src/main/java/com/joe/print/mvp/print/service/PrjService.java
View file @
7678dfd3
package
com
.
joe
.
print
.
mvp
.
print
.
service
;
import
android.app.IntentService
;
import
android.app.Service
;
import
android.content.Context
;
import
android.content.Intent
;
...
...
@@ -23,8 +22,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.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.printer.AidlUtil
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrintPaperPlugins
;
import
com.gingersoft.gsa.cloud.common.utils.FileUtils
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins
;
import
com.gingersoft.gsa.cloud.common.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils
;
...
...
@@ -32,20 +30,17 @@ import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import
com.gingersoft.gsa.cloud.common.utils.threadPool.ThreadPoolManager
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
;
import
com.gingersoft.gsa.cloud.common.utils.view.BitmapUtil
;
import
com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.database.utils.PrinterDeviceDaoUtils
;
import
com.gingersoft.gsa.cloud.print.PrintExecutor
;
import
com.gingersoft.gsa.cloud.print.PrintSocketHolder
;
import
com.gingersoft.gsa.cloud.print.PrinterWriter58mm
;
import
com.gingersoft.gsa.cloud.print.bean.PrintContent
;
import
com.gingersoft.gsa.cloud.print.bean.PrjBean
;
import
com.gingersoft.gsa.cloud.print.bean.UpdateBean
;
import
com.hyweb.n5.lib.constant.PrinterConstant
;
import
com.hyweb.n5.lib.util.PrinterUtil
;
import
com.hyweb.n5.server.aidl.IOnPrintCallback
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
com.joe.print.mvp.print.PrintPrjKitchen
;
import
com.joe.print.mvp.print.PrinterRoot
;
import
com.joe.print.mvp.print.common.PrinterFinderCallback
;
...
...
@@ -57,14 +52,11 @@ import com.joe.print.mvp.print.usb.UsbPrinter;
import
com.joe.print.mvp.print.usb.UsbPrinterFinder
;
import
com.joe.print.mvp.print.utils.MyPrintUtils
;
import
com.sunmi.peripheral.printer.InnerResultCallbcak
;
import
com.xuexiang.rxutil2.rxjava.RxJavaUtils
;
import
com.xuexiang.rxutil2.rxjava.task.RxIOTask
;
import
org.json.JSONArray
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.PrintStream
;
import
java.util.ArrayList
;
...
...
@@ -73,13 +65,13 @@ import java.util.HashMap;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.concurrent.TimeUnit
;
import
io.reactivex.Observable
;
import
io.reactivex.Observer
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.schedulers.Schedulers
;
import
jcifs.smb.SmbFile
;
import
jcifs.smb.SmbFileOutputStream
;
...
...
@@ -112,6 +104,7 @@ public class PrjService extends Service implements ReceiveListener {
@Override
public
void
onCreate
()
{
super
.
onCreate
();
LoganManager
.
w_printer
(
TAG
,
"onCreate"
);
mContext
=
this
;
initUsbPrint
();
}
...
...
@@ -119,8 +112,8 @@ public class PrjService extends Service implements ReceiveListener {
@Override
public
int
onStartCommand
(
Intent
intent
,
int
flags
,
int
startId
)
{
mContext
=
this
;
LoganManager
.
w_printer
(
TAG
,
"onStartCommand"
);
ThreadPoolManager
.
getInstence
().
putExecutableTasks
(()
->
{
LoganManager
.
w_printer
(
TAG
,
"currentThreadName: "
+
Thread
.
currentThread
().
getName
());
LoganManager
.
w_printer
(
TAG
,
"開始請求 PRJ 數據"
);
getPrintList
();
//開始請求
...
...
@@ -129,6 +122,12 @@ public class PrjService extends Service implements ReceiveListener {
return
super
.
onStartCommand
(
intent
,
flags
,
startId
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
LoganManager
.
w_printer
(
TAG
,
"onDestroy"
);
}
private
UsbPrinterFinder
printerFinder
;
private
List
<
UsbPrinter
>
mUsbPrinters
;
...
...
@@ -215,7 +214,6 @@ public class PrjService extends Service implements ReceiveListener {
@Override
public
void
onSubscribe
(
Disposable
d
)
{
LoganManager
.
w_printer
(
TAG
,
"RxCurrentThreadName: "
+
Thread
.
currentThread
().
getName
());
LoganManager
.
w_printer
(
TAG
,
"getPrjInfo onSubscribe"
);
}
...
...
@@ -534,7 +532,7 @@ public class PrjService extends Service implements ReceiveListener {
if
(
beans
.
size
()
>
0
)
{
orderType
=
beans
.
get
(
0
).
getOrderType
();
}
Print
PaperPlugins
.
getOnPrinterFlowHandler
().
onPrinterDataBefore
(
orderType
,
GsonUtils
.
GsonString
(
beans
),
GsonUtils
.
GsonString
(
printerDeviceBean
));
Print
erPlugins
.
getOnPrinterFlowHandler
().
onPrinterDataBefore
(
orderType
,
PrintConstans
.
PRINT_KITCHEN
,
GsonUtils
.
GsonString
(
beans
),
GsonUtils
.
GsonString
(
printerDeviceBean
));
if
(
isPinPrinter
(
printerDeviceBean
)
&&
printerDeviceBean
.
getPrinterDeviceType
()
==
PRINT_IP
)
{
//針式打印機並且打印機類型為IP打印,生成獨特的格式
...
...
@@ -733,13 +731,9 @@ public class PrjService extends Service implements ReceiveListener {
switch
(
errorCode
)
{
case
PrintSocketHolder
.
ERROR_0
:
//更新狀態
LoganManager
.
w_printer
(
TAG
,
"ipPrint errorCode ERROR_0 i: "
+
finalI
);
updatePrjSuccess
(
ids
);
Log
.
e
(
TAG
,
"打印成功"
);
break
;
case
PrintSocketHolder
.
ERROR_2
:
LoganManager
.
w_printer
(
TAG
,
"ipPrint errorCode ERROR_2 i: "
+
finalI
);
Log
.
e
(
TAG
,
"创建Socket失败"
);
updatePrjFailure
(
ids
);
break
;
}
...
...
@@ -760,10 +754,10 @@ public class PrjService extends Service implements ReceiveListener {
UsbPrint
usbPrint
=
new
UsbPrint
(
mContext
,
(
code
,
printId
)
->
{
//打印結果
if
(
code
==
SendResultCode
.
SEND_SUCCESS
)
{
Log
.
e
(
"ddd"
,
"打印成功"
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
(
null
);
updatePrjSuccess
(
key
);
}
else
if
(
code
==
SendResultCode
.
SEND_FAILED
)
{
Log
.
e
(
"ddd"
,
"打印失敗"
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
code
,
null
);
updatePrjFailure
(
key
);
}
});
...
...
@@ -945,9 +939,16 @@ public class PrjService extends Service implements ReceiveListener {
orderType
=
prjBean
.
getOrderType
();
}
}
PrintPaperPlugins
.
getOnPrinterFlowHandler
().
onPrinterBitmapBefore
(
orderType
,
prjName
,
bitmapMaps
);
List
<
Bitmap
>
bitmapList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
bitmapMaps
.
size
();
i
++)
{
Set
<
Map
.
Entry
<
String
,
Bitmap
>>
bitmapSet
=
bitmapMaps
.
get
(
i
).
entrySet
();
Iterator
<
Map
.
Entry
<
String
,
Bitmap
>>
bitmapIterator
=
bitmapSet
.
iterator
();
while
(
bitmapIterator
.
hasNext
())
{
bitmapList
.
add
(
bitmapIterator
.
next
().
getValue
());
}
}
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrinterBitmapBefore
(
orderType
,
PrintConstans
.
PRINT_KITCHEN
,
prjName
,
bitmapList
);
}
return
bitmapMaps
;
}
...
...
@@ -1005,7 +1006,7 @@ public class PrjService extends Service implements ReceiveListener {
@Override
public
void
onNext
(
String
s
)
{
Log
.
e
(
TAG
,
"修改打印狀態:
"
+
s
);
Log
anManager
.
w_printer
(
TAG
,
"---end---修改Prj打印狀態---end----:
"
+
s
);
}
@Override
...
...
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
View file @
7678dfd3
...
...
@@ -28,6 +28,8 @@ import com.billy.cc.core.component.CCUtil;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins
;
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.print.PrintExecutor
;
import
com.gingersoft.gsa.cloud.print.PrintSocketHolder
;
import
com.gingersoft.gsa.cloud.print.bean.PrintContent
;
...
...
@@ -103,6 +105,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private
Dialog
mLoadingDialog
;
private
TextView
mTvLoadingTip
;
/**
* 0:上菜紙
* 1:印單
...
...
@@ -113,6 +116,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
* 6:其他指令
*/
private
int
type
;
private
String
mOrderNo
;
//是否顯示打印等待彈窗
private
boolean
isShowDialog
;
...
...
@@ -140,18 +144,20 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
//獲取打印類型,根據打印類型生成對應的bitmap
type
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_TEST
);
PrintContent
printContent
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_CONTENT
,
null
);
mOrderNo
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_ORDER_NO
,
""
);
isShowDialog
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_LOADING
,
true
);
printerInIt
=
PrinterRoot
.
getPrinterByType
(
type
,
printContent
);
if
(
printerInIt
!=
null
)
{
printerInIt
.
setPrintListener
(
this
);
}
initPrintConfig
();
initPrintConfig
(
printContent
);
}
private
int
selectPrint
=
-
1
;
private
void
initPrintConfig
()
{
private
void
initPrintConfig
(
PrintContent
printContent
)
{
PrintCurrencyBean
printCurrencyBean
;
PrinterDeviceBean
defaultPrint
;
//獲取通用打印配置,不同的打印
...
...
@@ -176,6 +182,9 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
// 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印
defaultPrint
=
mPresenter
.
getDefaultPrintInList
(
printerDeviceBeans
,
(
String
)
SPUtils
.
get
(
"defaultPrint"
,
""
));
}
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrinterDataBefore
(
type
,
type
,
GsonUtils
.
GsonString
(
printContent
),
GsonUtils
.
GsonString
(
defaultPrint
));
//廚房單
if
(
type
==
PrintConstans
.
PRINT_KITCHEN
)
{
List
<
PrjBean
.
DataBean
.
Bean
>
printDatas
=
CCUtil
.
getNavigateParam
(
this
,
"prjBeans"
,
null
);
...
...
@@ -285,6 +294,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
//打印失敗
printFailure
(
"打印失敗,生成打印數據失敗"
);
}
setPrinterBitmapToLocation
(
type
,
type
,
mOrderNo
,
listMap
);
}
//獲得對應的圖片
if
(
defaultPrint
.
getPrinterDeviceType
()
==
PrinterDeviceBean
.
PRINT_IP
)
{
...
...
@@ -303,7 +313,16 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
else
{
printFailure
(
"未找到對應的打印類型"
);
}
}
}
/**
* 将所要打印的图片保存到本地
*/
private
void
setPrinterBitmapToLocation
(
int
orderType
,
int
printType
,
String
orderNo
,
Map
<
String
,
List
<
Bitmap
>>
bitmapMaps
)
{
if
(
bitmapMaps
.
size
()
>
0
&&
bitmapMaps
.
get
(
""
)
!=
null
)
{
String
prjName
=
orderNo
+
"-"
+
System
.
currentTimeMillis
();
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrinterBitmapBefore
(
orderType
,
printType
,
prjName
,
bitmapMaps
.
get
(
""
));
}
}
...
...
@@ -468,7 +487,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
printFailure
(
"打印機缺紙"
);
break
;
}
LoganManager
.
w_printer
(
TAG
,
"printStateChanged state--->"
+
tip
);
LoganManager
.
w_printer
(
TAG
,
"printStateChanged state--->"
+
tip
);
setLoadingText
(
tip
);
}
...
...
@@ -477,7 +496,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
*/
@Override
public
void
printSuccess
()
{
LoganManager
.
w_printer
(
TAG
,
"printFailure 打印成功"
);
LoganManager
.
w_printer
(
TAG
,
"printFailure 打印成功"
);
// if (printCount <= 1) {
CC
.
sendCCResult
(
callId
,
CCResult
.
success
());
disLoadingDialog
();
...
...
@@ -490,7 +509,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
public
void
printFailure
(
String
msg
)
{
LoganManager
.
w_printer
(
TAG
,
"printFailure 打印失敗--->"
+
msg
);
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
msg
))
{
ToastUtils
.
show
(
GsaCloudApplication
.
getAppContext
(),
msg
);
CC
.
sendCCResult
(
callId
,
CCResult
.
error
(
msg
));
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/PrintOrderAction.java
View file @
7678dfd3
...
...
@@ -144,6 +144,7 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_BILL
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
doshokuOrder
.
getOrderNo
())
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
Log
.
e
(
"error"
,
"是否成功打印:"
+
result
.
isSuccess
());
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/table/PrintServingPaperAction.java
View file @
7678dfd3
...
...
@@ -140,6 +140,7 @@ public class PrintServingPaperAction extends TableAction {
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_SERVE
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
tableBean
.
getOrderId
())
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
//清空賬單數據
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
View file @
7678dfd3
...
...
@@ -896,6 +896,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_SERVE
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
DoshokuOrder
.
getInstance
().
getOrderNo
())
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
if
(
result
.
isSuccess
())
{
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
View file @
7678dfd3
...
...
@@ -391,6 +391,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_SERVE
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
DoshokuOrder
.
getInstance
().
getOrderNo
())
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
if
(
result
.
isSuccess
())
{
...
...
@@ -437,6 +438,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_SLIP
)
//印單
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
DoshokuOrder
.
getInstance
().
getOrderNo
())
.
setActionName
(
"printActivity"
)
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/TablePresenter.java
View file @
7678dfd3
...
...
@@ -233,7 +233,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
}
}
public
void
getTables
(
boolean
show
,
RefreshLayout
refreshLayout
)
{
int
restaurantId
=
RestaurantInfoManager
.
newInstance
().
getRestaurantId
()
!=
0
?
RestaurantInfoManager
.
newInstance
().
getRestaurantId
()
:
26
;
mModel
.
getTables
(
restaurantId
)
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderPayActivity.java
View file @
7678dfd3
...
...
@@ -461,6 +461,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_INSTRUCTION
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
DoshokuOrder
.
getInstance
().
getOrderNo
())
.
build
()
.
callAsyncCallbackOnMainThread
(
new
IComponentCallback
()
{
@Override
...
...
@@ -489,6 +490,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_BILL
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
.
addParam
(
PrintConstans
.
PRINT_ORDER_NO
,
DoshokuOrder
.
getInstance
().
getOrderNo
())
.
build
()
.
callAsyncCallbackOnMainThread
(
new
IComponentCallback
()
{
@Override
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/orderManager/OrderDetailActivity.java
View file @
7678dfd3
...
...
@@ -272,9 +272,9 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
tv_order_num
.
setText
(
orderCode
+
orderDetailItem
.
getBillNo
()
+
" "
+
mealCode
+
orderDetailItem
.
getTakeFoodCode
());
}
else
{
String
tableName
=
LanguageUtils
.
get_language_system
(
this
,
"table.number"
,
"檯號"
)
+
": "
;
String
orderNumber
=
LanguageUtils
.
get_language_system
(
this
,
"order.number"
,
"
訂
單號"
)
+
": "
;
String
orderNumber
=
LanguageUtils
.
get_language_system
(
this
,
"order.number"
,
"單號"
)
+
": "
;
tv_table_name
.
setText
(
tableName
+
orderDetailItem
.
getTableName
());
tv_order_num
.
setText
(
orderNumber
+
orderDetailItem
.
get
Id
());
tv_order_num
.
setText
(
orderNumber
+
orderDetailItem
.
get
OrderNo
());
}
tv_people_num
.
setText
(
pax
);
tv_open_time
.
setText
(
openTable
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/OrderCenterAdapter.java
View file @
7678dfd3
...
...
@@ -152,9 +152,9 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
tv_order_num
.
setText
(
orderCode
+
orderBean
.
getBillNo
()
+
" "
+
mealCode
+
orderBean
.
getTakeFoodCode
());
}
else
{
String
tableName
=
LanguageUtils
.
get_language_system
(
mContext
,
"table.number"
,
"檯號"
)
+
": "
;
String
orderNumber
=
LanguageUtils
.
get_language_system
(
mContext
,
"order.number"
,
"
訂
單號"
)
+
": "
;
String
orderNumber
=
LanguageUtils
.
get_language_system
(
mContext
,
"order.number"
,
"單號"
)
+
": "
;
tv_table_name
.
setText
(
tableName
+
orderBean
.
getTableName
());
tv_order_num
.
setText
(
orderNumber
+
orderBean
.
get
Id
());
tv_order_num
.
setText
(
orderNumber
+
orderBean
.
get
OrderNo
());
}
//先将check回调情况,防止setChecked时反复调用onCheckedChanged方法
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/app/GsaCloudApplication.java
View file @
7678dfd3
...
...
@@ -47,8 +47,10 @@ import com.gingersoft.gsa.cloud.common.loadsir.pos.PosVoidStatusExceptionCallbac
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.oaId.DeviceID
;
import
com.gingersoft.gsa.cloud.common.printer.AidlUtil
;
import
com.gingersoft.gsa.cloud.common.printer.
plugins.PrintPaperPlugin
s
;
import
com.gingersoft.gsa.cloud.common.printer.
PrinterFileUtil
s
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterFlowListener
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins
;
import
com.gingersoft.gsa.cloud.common.utils.AppDevices
;
import
com.gingersoft.gsa.cloud.common.utils.FileUtils
;
import
com.gingersoft.gsa.cloud.common.utils.crash.AppCrashHandler
;
import
com.gingersoft.gsa.cloud.common.utils.log.LogUtil
;
...
...
@@ -170,7 +172,7 @@ public class GsaCloudApplication extends BaseApplication {
private
void
initQMUI
()
{
//初始化側滑回退
QMUISwipeBackActivityManager
.
init
(
this
);
//
QMUISwipeBackActivityManager.init(this);
//初始化主題管理器
// QDSkinManager.install(this);
}
...
...
@@ -216,12 +218,12 @@ public class GsaCloudApplication extends BaseApplication {
* 初始化Hyweb支付回調
*/
private
void
initHywebCommandImpl
()
{
//
if (AppDevices.isHywebPos()) {
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_LOGIN
)
.
setActionName
(
ComponentAction
.
Login
.
INIT_HYWEB_COMMAND_IMPL
)
.
build
()
.
call
();
//
}
if
(
AppDevices
.
isHywebPos
())
{
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_LOGIN
)
.
setActionName
(
ComponentAction
.
Login
.
INIT_HYWEB_COMMAND_IMPL
)
.
build
()
.
call
();
}
}
private
void
initRxjava
()
{
...
...
@@ -340,94 +342,50 @@ public class GsaCloudApplication extends BaseApplication {
SPUtils
.
put
(
PrintConstans
.
DEFAULT_PRINT_METHOD
,
PrintConstans
.
IP_PRINT
);
}
//打印流程
PrintPaperPlugins
.
setOnPrinterFlowHandler
(
new
PrinterFlowListener
()
{
PrinterPlugins
.
setOnPrinterFlowHandler
(
new
PrinterFlowListener
()
{
private
final
String
TAG
=
"PrinterPlugins"
;
@Override
public
void
onPrinterDataBefore
(
int
orderType
,
String
printerData
,
String
printerDeviceInfo
)
{
LoganManager
.
w_
code
(
TAG
,
"onPrinterDataBefore
printerData="
+
printerData
+
" printerDeviceInfo="
+
printerDeviceInfo
);
public
void
onPrinterDataBefore
(
int
orderType
,
int
printType
,
String
printerData
,
String
printerDeviceInfo
)
{
LoganManager
.
w_
printer
(
TAG
,
"打印前-->
printerData="
+
printerData
+
" printerDeviceInfo="
+
printerDeviceInfo
);
}
@Override
public
void
onPrinterBitmapBefore
(
int
orderType
,
String
directoryName
,
List
<
Map
<
String
,
Bitmap
>>
bitmaps
)
{
LoganManager
.
w_code
(
TAG
,
"onPrinterBitmapBefore"
);
RxIOTask
rxIOTask
=
new
RxIOTask
(
0
)
{
@Override
public
Object
doInIOThread
(
Object
o
)
{
File
file
=
new
File
(
FileUtils
.
PrinterImagePath
.
KITCHEN_PRJ_IMAGE_PATH
);
if
(
file
!=
null
&&
file
.
exists
())
{
long
FILE_SIZE
=
FileUtils
.
getDirSize
(
file
);
if
(
FILE_SIZE
>
FileUtils
.
PrinterImagePath
.
PRINTER_MAX_FILE_SIZE
)
{
//大於100M 就刪除
File
prjPath
=
new
File
(
FileUtils
.
PrinterImagePath
.
KITCHEN_PRJ_IMAGE_PATH
);
if
(
prjPath
.
isDirectory
())
{
File
[]
prjDirectorys
=
prjPath
.
listFiles
();
for
(
int
i
=
prjDirectorys
.
length
-
1
;
i
>=
0
;
i
--)
{
File
prjDirectory
=
prjDirectorys
[
i
];
boolean
deleteResult
=
prjDirectory
.
delete
();
if
(
deleteResult
&&
FILE_SIZE
<=
FileUtils
.
PrinterImagePath
.
PRINTER_KEEP_FILE_SIZE
)
{
FILE_SIZE
=
FileUtils
.
getFileSize
(
FileUtils
.
PrinterImagePath
.
KITCHEN_PRJ_IMAGE_PATH
);
LoganManager
.
w_code
(
TAG
,
"onPrinterBitmapBefore delete kitchen prj file after size :"
+
FILE_SIZE
);
break
;
}
}
}
}
}
for
(
Map
<
String
,
Bitmap
>
bitmapMap
:
bitmaps
)
{
Set
<
Map
.
Entry
<
String
,
Bitmap
>>
bitmapSet
=
bitmapMap
.
entrySet
();
Iterator
<
Map
.
Entry
<
String
,
Bitmap
>>
bitmapIterator
=
bitmapSet
.
iterator
();
while
(
bitmapIterator
.
hasNext
())
{
Map
.
Entry
<
String
,
Bitmap
>
bitmapEntry
=
bitmapIterator
.
next
();
String
prjName
=
directoryName
+
"-"
+
System
.
currentTimeMillis
();
BitmapUtil
.
saveBitmap
(
bitmapEntry
.
getValue
(),
FileUtils
.
PrinterImagePath
.
KITCHEN_PRJ_IMAGE_PATH
+
directoryName
+
File
.
separator
,
prjName
+
".jpeg"
,
new
BitmapUtil
.
OnSaveBitmapListener
()
{
@Override
public
void
onSuccess
()
{
LoganManager
.
w_code
(
TAG
,
"onPrinterBitmapBefore saveBitmap onSuccess"
);
}
@Override
public
void
onError
(
Exception
e
)
{
LoganManager
.
w_code
(
TAG
,
"onPrinterBitmapBefore saveBitmap onError :"
+
e
.
getMessage
());
}
});
}
}
return
null
;
}
};
RxJavaUtils
.
doInIOThread
(
rxIOTask
);
public
void
onPrinterBitmapBefore
(
int
orderType
,
int
printType
,
String
directoryName
,
List
<
Bitmap
>
bitmaps
)
{
LoganManager
.
w_printer
(
TAG
,
"生成的打印圖片-->"
);
PrinterFileUtils
.
savePrinterBitmapByType
(
orderType
,
printType
,
directoryName
,
bitmaps
);
}
@Override
public
void
onPrintSuccess
(
PrinterDeviceBean
printerDeviceBean
)
{
LoganManager
.
w_
code
(
TAG
,
"onPrintSuccess
"
);
LoganManager
.
w_
printer
(
TAG
,
"打印成功
"
);
}
@Override
public
void
onPrintError
(
int
errorCode
,
PrinterDeviceBean
printerDeviceBean
)
{
LoganManager
.
w_
code
(
TAG
,
"onPrintError errorCode
:"
+
errorCode
);
LoganManager
.
w_
printer
(
TAG
,
"打印失敗
:"
+
errorCode
);
}
@Override
public
void
connectionBefore
(
int
type
,
String
IP
,
String
port
,
Stri
ng
ioTimeout
,
long
printTimeout
)
{
Object
[]
objs
=
{
type
,
IP
,
port
,
ioTimeout
,
printTimeout
};
LoganManager
.
w_
code
(
TAG
,
String
.
format
(
"connectionBefore typ
e=%s ,IP=%s ,port=%s ,ioTimeout=%s ,printTimeout=%s"
,
objs
));
public
void
connectionBefore
(
String
deviceName
,
String
ip
,
int
port
,
lo
ng
ioTimeout
,
long
printTimeout
)
{
Object
[]
objs
=
{
deviceName
,
ip
,
port
,
ioTimeout
,
printTimeout
};
LoganManager
.
w_
printer
(
TAG
,
String
.
format
(
"連接打印機前--> deviceNam
e=%s ,IP=%s ,port=%s ,ioTimeout=%s ,printTimeout=%s"
,
objs
));
}
@Override
public
void
connectionSuccess
()
{
LoganManager
.
w_
code
(
TAG
,
"connectionSuccess
"
);
LoganManager
.
w_
printer
(
TAG
,
"連接打印機成功
"
);
}
@Override
public
void
connectionError
(
Exception
e
)
{
LoganManager
.
w_
code
(
TAG
,
"connectionError e: "
+
e
.
getMessage
()
);
LoganManager
.
w_
printer
(
TAG
,
"連接打印機失敗"
);
}
@Override
public
void
disconnect
()
{
LoganManager
.
w_
code
(
TAG
,
"disconnect
"
);
LoganManager
.
w_
printer
(
TAG
,
"斷開打印機連接
"
);
}
});
}
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/config/LoganConfig.java
View file @
7678dfd3
...
...
@@ -12,12 +12,12 @@ public class LoganConfig {
public
static
final
String
EncryptKey16
=
"0123456789012345"
;
public
static
final
String
EncryptIV16
=
"0123456789012345"
;
public
static
final
String
APP_ID
=
"gingersoft1008611"
;
public
static
final
String
UPLOAD_LOG_URL
=
"http://192.168.1.1
13:8082
/logan/upload.json"
;
public
static
final
String
UPLOAD_LOG_URL
=
"http://192.168.1.1
31:8080/logan-web
/logan/upload.json"
;
/**
* 日誌保留天數
*/
public
static
final
int
DAY
=
1
;
public
static
final
int
DAY
=
2
;
/**
* 代码日志
...
...
@@ -28,24 +28,28 @@ public class LoganConfig {
*/
public
static
final
byte
NETWORK_LEVLE
=
2
;
/**
* 數據庫日誌
*/
public
static
final
byte
DATABASE_LEVLE
=
3
;
/**
* 用戶行為日誌(頁面跳轉,交互,觸摸反饋等)
*/
public
static
final
byte
ACTION_LEVLE
=
3
;
public
static
final
byte
ACTION_LEVLE
=
4
;
/**
* 崩潰日誌
*/
public
static
final
byte
CRASH_LEVLE
=
4
;
public
static
final
byte
CRASH_LEVLE
=
5
;
/**
* H5日誌
*/
public
static
final
byte
H5_LEVLE
=
5
;
public
static
final
byte
H5_LEVLE
=
6
;
/**
* native日誌
*/
public
static
final
byte
native_LEVLE
=
6
;
public
static
final
byte
native_LEVLE
=
7
;
/**
* 打印相關日誌
* 打印
模塊
相關日誌
*/
public
static
final
byte
PRINTER_LEVLE
=
7
;
public
static
final
byte
PRINTER_LEVLE
=
8
;
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/constans/PrintConstans.java
View file @
7678dfd3
...
...
@@ -22,6 +22,7 @@ public class PrintConstans {
*/
public
static
final
String
PRINT_TYPE
=
"print_type"
;
//打印類型
public
static
final
String
PRINT_CONTENT
=
"print_content"
;
//打印內容
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
;
//測試頁
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/logan/LoganManager.java
View file @
7678dfd3
...
...
@@ -46,6 +46,14 @@ public class LoganManager {
}
}
public
static
void
w_database
(
String
TAG
,
String
log
)
{
Logan
.
w
(
log
,
LoganConfig
.
DATABASE_LEVLE
);
// Logan.f();
if
(
BuildConfig
.
DEBUG
)
{
printLog
(
TAG
,
log
);
}
}
public
static
void
w_crash
(
String
log
)
{
Logan
.
w
(
log
,
LoganConfig
.
CRASH_LEVLE
);
//cash日誌比較重要立即寫入本地
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/PrinterFileUtils.java
0 → 100644
View file @
7678dfd3
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
printer
;
import
android.graphics.Bitmap
;
import
android.text.TextUtils
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.utils.FileUtils
;
import
com.gingersoft.gsa.cloud.common.utils.view.BitmapUtil
;
import
com.xuexiang.rxutil2.rxjava.RxJavaUtils
;
import
com.xuexiang.rxutil2.rxjava.task.RxIOTask
;
import
java.io.File
;
import
java.util.List
;
/**
* @作者: bin
* @創建時間: 2021-01-29 16:04
* @更新時間: 2021-01-29 16:04
* @描述:
*/
public
class
PrinterFileUtils
{
private
static
final
String
TAG
=
"PrinterFileUtils"
;
//圖片文件最大文件大小不能超過100M
public
static
final
int
PRINTER_MAX_FILE_SIZE
=
100
*
1024
*
1024
;
//最少保留多少打印圖片文件大小
public
static
final
int
PRINTER_KEEP_FILE_SIZE
=
20
*
1024
*
1024
;
//根目錄
public
static
String
PrinterImagesRootPath
=
"PrinterImages"
;
/**
* 廚房單
* 堂食結賬單
* 堂食印單
* 堂食上菜紙
* QRCODE
* 外送印單
* 外送結賬單
* 清機單
*/
public
static
String
KitchenImage
=
"KitchenImages"
;
public
static
String
PrintOrderImage
=
"PrintOrderImages"
;
public
static
String
BillImage
=
"BillImages"
;
public
static
String
ServingPaperImage
=
"ServingPaperImages"
;
public
static
String
QrcodeImage
=
"QrcodeImages"
;
public
static
String
DeliveryPrintOrderImage
=
"DeliveryPrintOrderImages"
;
public
static
String
DeliveryBillImage
=
"DeliveryBillImages"
;
public
static
String
SettlementImage
=
"SettlementImages"
;
public
final
static
String
ROOT_PATH
=
FileUtils
.
ALBUM_PATH
+
PrinterImagesRootPath
+
File
.
separator
;
public
final
static
String
KITCHEN_PRJ_IMAGE_PATH
=
ROOT_PATH
+
KitchenImage
+
File
.
separator
;
public
final
static
String
PRINT_ORDER_IMAGE_PATH
=
ROOT_PATH
+
PrintOrderImage
+
File
.
separator
;
public
final
static
String
BILL_IMAGE_PATH
=
ROOT_PATH
+
BillImage
+
File
.
separator
;
public
final
static
String
SERVING_PAPER_IMAGE_PATH
=
ROOT_PATH
+
ServingPaperImage
+
File
.
separator
;
public
final
static
String
DELIVERY_PRINT_ORDER_IMAGE_PATH
=
ROOT_PATH
+
DeliveryPrintOrderImage
+
File
.
separator
;
public
final
static
String
DELIVERY_BILL_IMAGE_PATH
=
ROOT_PATH
+
DeliveryBillImage
+
File
.
separator
;
public
final
static
String
QRCODE_IMAGE_PATH
=
ROOT_PATH
+
QrcodeImage
+
File
.
separator
;
public
final
static
String
SETTLEMENT_IMAGE_PATH
=
ROOT_PATH
+
SettlementImage
+
File
.
separator
;
public
static
void
savePrinterBitmapByType
(
int
orderType
,
int
printType
,
String
directoryName
,
List
<
Bitmap
>
bitmaps
)
{
RxIOTask
rxIOTask
=
new
RxIOTask
(
0
)
{
@Override
public
Object
doInIOThread
(
Object
o
)
{
String
savePath
=
getPathByPrintType
(
printType
);
if
(
TextUtils
.
isEmpty
(
savePath
))
{
return
null
;
}
LoganManager
.
w_printer
(
TAG
,
"save path :"
+
savePath
);
File
file
=
new
File
(
ROOT_PATH
);
if
(
file
!=
null
&&
file
.
exists
())
{
long
FILE_SIZE
=
FileUtils
.
getDirSize
(
file
);
if
(
FILE_SIZE
>
PRINTER_MAX_FILE_SIZE
)
{
LoganManager
.
w_printer
(
TAG
,
"delete file before size : "
+
FILE_SIZE
);
//大於100M 就刪除
File
prjPath
=
new
File
(
ROOT_PATH
);
if
(
prjPath
.
isDirectory
())
{
File
[]
prjDirectorys
=
prjPath
.
listFiles
();
for
(
int
i
=
prjDirectorys
.
length
-
1
;
i
>=
0
;
i
--)
{
File
prjDirectory
=
prjDirectorys
[
i
];
boolean
deleteResult
=
prjDirectory
.
delete
();
if
(
deleteResult
&&
FILE_SIZE
<=
PRINTER_KEEP_FILE_SIZE
)
{
FILE_SIZE
=
FileUtils
.
getFileSize
(
ROOT_PATH
);
LoganManager
.
w_printer
(
TAG
,
"delete file after size : "
+
FILE_SIZE
);
break
;
}
}
}
}
}
for
(
Bitmap
bitmap
:
bitmaps
)
{
String
fileName
=
directoryName
+
"-"
+
System
.
currentTimeMillis
();
LoganManager
.
w_printer
(
TAG
,
"saveBitmap fileName : "
+
fileName
);
BitmapUtil
.
saveBitmap
(
bitmap
,
savePath
+
directoryName
+
File
.
separator
,
fileName
+
".jpeg"
,
new
BitmapUtil
.
OnSaveBitmapListener
()
{
@Override
public
void
onSuccess
()
{
LoganManager
.
w_printer
(
TAG
,
"saveBitmap onSuccess"
);
}
@Override
public
void
onError
(
Exception
e
)
{
LoganManager
.
w_printer
(
TAG
,
"saveBitmap onError :"
+
e
.
getMessage
());
}
});
}
return
null
;
}
};
RxJavaUtils
.
doInIOThread
(
rxIOTask
);
}
private
static
String
getPathByPrintType
(
int
printType
)
{
switch
(
printType
)
{
case
PrintConstans
.
PRINT_SERVE
:
//堂食上菜紙
return
PrinterFileUtils
.
SERVING_PAPER_IMAGE_PATH
;
case
PrintConstans
.
PRINT_SLIP
:
//堂食印單
return
PrinterFileUtils
.
PRINT_ORDER_IMAGE_PATH
;
case
PrintConstans
.
PRINT_BILL
:
//堂食結賬單
return
PrinterFileUtils
.
BILL_IMAGE_PATH
;
case
PrintConstans
.
PRINT_SKYORDER_QRCODE
:
//QRCODE
return
PrinterFileUtils
.
QRCODE_IMAGE_PATH
;
case
PrintConstans
.
PRINT_KITCHEN
:
//廚房單 PRJ
return
PrinterFileUtils
.
KITCHEN_PRJ_IMAGE_PATH
;
case
PrintConstans
.
PRINT_OTHER_ORDER
:
//外送印單
return
PrinterFileUtils
.
DELIVERY_PRINT_ORDER_IMAGE_PATH
;
case
PrintConstans
.
PRINT_OTHER_CLOSING
:
//外送結賬
return
PrinterFileUtils
.
DELIVERY_BILL_IMAGE_PATH
;
case
PrintConstans
.
PRINT_CLEAN_MACHINE
:
//清機報表
return
PrinterFileUtils
.
SETTLEMENT_IMAGE_PATH
;
}
return
null
;
}
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/plugins/ExternalPrinterConnection.java
View file @
7678dfd3
...
...
@@ -8,7 +8,7 @@ package com.gingersoft.gsa.cloud.common.printer.plugins;
*/
public
interface
ExternalPrinterConnection
{
void
connectionBefore
(
int
type
,
String
IP
,
String
port
,
Stri
ng
ioTimeout
,
long
printTimeout
);
void
connectionBefore
(
String
deviceName
,
String
IP
,
int
port
,
lo
ng
ioTimeout
,
long
printTimeout
);
void
connectionSuccess
();
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/plugins/PrinterFlowListener.java
View file @
7678dfd3
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
printer
.
plugins
;
import
android.graphics.Bitmap
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
java.util.List
;
...
...
@@ -14,9 +15,9 @@ import java.util.Map;
*/
public
interface
PrinterFlowListener
extends
ExternalPrinterConnection
{
void
onPrinterDataBefore
(
int
orderType
,
String
printerData
,
String
printerDeviceInfo
);
void
onPrinterDataBefore
(
int
orderType
,
int
printType
,
String
printerData
,
String
printerDeviceInfo
);
void
onPrinterBitmapBefore
(
int
orderType
,
String
directoryName
,
List
<
Map
<
String
,
Bitmap
>
>
bitmaps
);
void
onPrinterBitmapBefore
(
int
orderType
,
int
printType
,
String
directoryName
,
List
<
Bitmap
>
bitmaps
);
void
onPrintSuccess
(
PrinterDeviceBean
printerDeviceBean
);
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/plugins/Print
Pap
erPlugins.java
→
library-common/src/main/java/com/gingersoft/gsa/cloud/common/printer/plugins/PrinterPlugins.java
View file @
7678dfd3
...
...
@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.common.printer.plugins;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.annotations.Nullable
;
import
io.reactivex.exceptions.UndeliverableException
;
import
io.reactivex.functions.Consumer
;
/**
...
...
@@ -11,7 +10,7 @@ import io.reactivex.functions.Consumer;
* @更新時間: 2021-01-25 9:46
* @描述:
*/
public
class
Print
Pap
erPlugins
{
public
class
PrinterPlugins
{
@Nullable
static
volatile
Consumer
<?
super
Throwable
>
errorHandler
;
...
...
@@ -44,7 +43,7 @@ public class PrintPaperPlugins {
}
public
static
void
setErrorHandler
(
Consumer
<?
super
Throwable
>
errorHandler
)
{
Print
Pap
erPlugins
.
errorHandler
=
errorHandler
;
PrinterPlugins
.
errorHandler
=
errorHandler
;
}
public
static
PrinterFlowListener
getOnPrinterFlowHandler
()
{
...
...
@@ -55,6 +54,6 @@ public class PrintPaperPlugins {
}
public
static
void
setOnPrinterFlowHandler
(
PrinterFlowListener
onPrinterFlowHandler
)
{
Print
Pap
erPlugins
.
onPrinterFlowHandler
=
onPrinterFlowHandler
;
PrinterPlugins
.
onPrinterFlowHandler
=
onPrinterFlowHandler
;
}
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/service/GetInfoUpdateService.kt
View file @
7678dfd3
...
...
@@ -23,6 +23,7 @@ import com.gingersoft.gsa.cloud.common.constans.AppConstans
import
com.gingersoft.gsa.cloud.common.constans.HttpsConstans
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
import
com.gingersoft.gsa.cloud.common.core.user.UserContext
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
import
com.gingersoft.gsa.cloud.common.utils.SoundPoolUtils
import
com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
...
...
@@ -41,6 +42,7 @@ import java.util.concurrent.TimeUnit
class
GetInfoUpdateService
:
Service
()
{
private
val
TAG
=
"heart"
/**
* 心跳检测时间
*/
...
...
@@ -86,7 +88,6 @@ class GetInfoUpdateService : Service() {
}
override
fun
onStartCommand
(
intent
:
Intent
?,
flags
:
Int
,
startId
:
Int
):
Int
{
Log
.
d
(
TAG
,
"onStartCommand()"
)
// 在API11之后构建Notification的方式
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
createNotificationChannel
()
...
...
@@ -102,7 +103,7 @@ class GetInfoUpdateService : Service() {
*/
@RequiresApi
(
Build
.
VERSION_CODES
.
O
)
fun
createNotificationChannel
()
{
if
(!
UserContext
.
newInstance
().
isLogin
)
{
if
(!
UserContext
.
newInstance
().
isLogin
)
{
stopSelf
()
return
}
...
...
@@ -152,14 +153,14 @@ class GetInfoUpdateService : Service() {
inner
class
MyBind
:
Binder
()
{
lateinit
var
block
:
(
isShow
:
Boolean
)
->
Unit
var
jumpActivity
:
Class
<*>?
=
null
set
(
value
)
{
field
=
value
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
createNotificationChannel
()
}
else
{
startNotification
()
set
(
value
)
{
field
=
value
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
createNotificationChannel
()
}
else
{
startNotification
()
}
}
}
fun
setOnPostCallBack
(
postCallBack
:
PostCallBack
?)
{
this
@GetInfoUpdateService
.
postCallBack
=
postCallBack
...
...
@@ -358,10 +359,12 @@ class GetInfoUpdateService : Service() {
loginfo
.
append
(
":"
)
loginfo
.
append
(
content
)
loginfo
.
append
(
"\n"
)
LoganManager
.
w_network
(
TAG
+
" -> "
+
content
);
}
var
mIntervalDisposable
:
Disposable
?
=
null
var
timerDisposable
:
Disposable
?
=
null
/**
* 执行定时任务
*/
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/FileUtils.java
View file @
7678dfd3
...
...
@@ -66,23 +66,32 @@ public class FileUtils {
/**
* 打印前圖片存儲路徑
*/
public
final
static
class
PrinterImagePath
{
//Prj圖片文件最大文件大小不能超過100M
public
static
final
int
PRINTER_MAX_FILE_SIZE
=
100
*
1024
*
1024
;
//Prj最少保留文件大小
public
static
final
int
PRINTER_KEEP_FILE_SIZE
=
20
*
1024
*
1024
;
public
static
String
PrinterImagesRootPath
=
"PrinterImages"
;
public
static
String
KitchenImage
=
"KitchenPrj"
;
public
static
String
OrderImage
=
"OrderImage"
;
public
static
String
BillImage
=
"BillImage"
;
public
static
String
ServingPaperImage
=
"ServingPaperImage"
;
public
final
static
String
ROOT_PATH
=
ALBUM_PATH
+
PrinterImagesRootPath
+
File
.
separator
;
public
final
static
String
KITCHEN_PRJ_IMAGE_PATH
=
ROOT_PATH
+
KitchenImage
+
File
.
separator
;
public
final
static
String
ORDER_IMAGE_PATH
=
ROOT_PATH
+
OrderImage
+
File
.
separator
;
public
final
static
String
BILL_IMAGE_PATH
=
ROOT_PATH
+
BillImage
+
File
.
separator
;
public
final
static
String
SERVING_PAPER_IMAGE_PATH
=
ROOT_PATH
+
ServingPaperImage
+
File
.
separator
;
}
// public final static class PrinterImagePath {
// //Prj圖片文件最大文件大小不能超過100M
// public static final int PRINTER_MAX_FILE_SIZE = 100 * 1024 * 1024;
// //Prj最少保留文件大小
// public static final int PRINTER_KEEP_FILE_SIZE = 20 * 1024 * 1024;
//
// public static String PrinterImagesRootPath = "PrinterImages";
// public static String KitchenImage = "KitchenImages";
// public static String PrintOrderImage = "PrintOrderImages";
// public static String BillImage = "BillImages";
// public static String ServingPaperImage = "ServingPaperImages";
// public static String DeliveryPrintOrderImage = "DeliveryPrintOrderImages";
// public static String DeliveryBillImage = "DeliveryBillImages";
// public static String QrcodeImage = "QrcodeImages";
// public static String SettlementImage = "SettlementImages";
//
// public final static String ROOT_PATH = ALBUM_PATH + PrinterImagesRootPath + File.separator;
// public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage + File.separator;
// public final static String PRINT_ORDER_IMAGE_PATH = ROOT_PATH + PrintOrderImage + File.separator;
// public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage + File.separator;
// public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage + File.separator;
// public final static String DELIVERY_PRINT_ORDER_IMAGE_PATH = ROOT_PATH + DeliveryPrintOrderImage + File.separator;
// public final static String DELIVERY_BILL_IMAGE_PATH = ROOT_PATH + DeliveryBillImage + File.separator;
// public final static String QRCODE_IMAGE_PATH = ROOT_PATH + QrcodeImage + File.separator;
// public final static String SETTLEMENT_IMAGE_PATH = ROOT_PATH + SettlementImage + File.separator;
// }
public
final
static
String
FILE_EXTENSION_SEPARATOR
=
"."
;
...
...
library-print/src/main/java/com/gingersoft/gsa/cloud/print/PrintExecutor.java
View file @
7678dfd3
...
...
@@ -69,27 +69,21 @@ public class PrintExecutor {
return
prepare
;
}
}
LoganManager
.
w_printer
(
TAG
,
"PrintTask doRequest holder.sendData(data) ------------------------------->"
);
return
holder
.
sendData
(
data
);
}
else
{
holder
.
onPrinterStateChanged
(
PrintSocketHolder
.
STATE_0
);
List
<
byte
[]>
data
=
maker
.
getPrintData
();
prjIds
=
maker
.
getPrjIds
();
if
(
holder
.
isSocketPrepared
())
{
LoganManager
.
w_printer
(
TAG
,
"PrintTask doRequest sendData(data) --------------连接打印机完成----------------->"
);
if
(
sendData
(
data
))
{
LoganManager
.
w_printer
(
TAG
,
"PrintTask doRequest sendData(data) -------------打印成功------------------>"
);
return
PrintSocketHolder
.
ERROR_0
;
}
else
{
LoganManager
.
w_printer
(
TAG
,
"PrintTask doRequest sendData(data) -------------打印失败------------------>"
);
return
PrintSocketHolder
.
ERROR_100
;
}
}
else
{
if
(
prepareSocket
()
&&
sendData
(
data
))
{
LoganManager
.
w_printer
(
TAG
,
"PrintTask doRequest sendData(data) -------------打印成功------------------>"
);
return
PrintSocketHolder
.
ERROR_0
;
}
else
{
LoganManager
.
w_printer
(
TAG
,
"PrintTask doRequest sendData(data) -------------打印失败------------------>"
);
return
PrintSocketHolder
.
ERROR_100
;
}
}
...
...
@@ -200,13 +194,11 @@ public class PrintExecutor {
@Override
protected
void
onPreExecute
()
{
super
.
onPreExecute
();
LoganManager
.
w_printer
(
TAG
,
"PrintTask onPreExecute"
);
holder
.
setOnStateChangedListener
(
this
);
}
@Override
protected
Integer
doInBackground
(
PrintDataMaker
...
makers
)
{
LoganManager
.
w_printer
(
TAG
,
"PrintTask doInBackground makers.length:"
+
makers
.
length
);
if
(
makers
==
null
||
makers
.
length
<
1
)
{
return
PrintSocketHolder
.
ERROR_0
;
}
...
...
@@ -216,7 +208,6 @@ public class PrintExecutor {
@Override
protected
void
onProgressUpdate
(
Integer
...
values
)
{
super
.
onProgressUpdate
(
values
);
LoganManager
.
w_printer
(
TAG
,
"PrintTask onProgressUpdate values:"
+
values
);
if
(
values
==
null
||
values
.
length
<
1
)
{
return
;
}
...
...
@@ -228,7 +219,6 @@ public class PrintExecutor {
@Override
protected
void
onPostExecute
(
Integer
integer
)
{
super
.
onPostExecute
(
integer
);
LoganManager
.
w_printer
(
TAG
,
"PrintTask onPostExecute values:"
+
integer
);
if
(
integer
!=
null
)
{
onResult
(
integer
);
}
...
...
@@ -241,21 +231,36 @@ public class PrintExecutor {
*/
private
void
onResult
(
int
errorCode
)
{
try
{
LoganManager
.
w_printer
(
TAG
,
"PrintTask onResult errorCode:"
+
errorCode
);
if
(
mListener
!=
null
)
if
(
mListener
!=
null
)
{
mListener
.
onResult
(
errorCode
,
holder
.
getPrinterDeviceBean
());
}
if
(
onPrjPrintResultListener
!=
null
)
{
onPrjPrintResultListener
.
onResult
(
errorCode
,
prjIds
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
LoganManager
.
w_printer
(
TAG
,
"PrintTask onResult Exception:"
+
e
.
getMessage
());
}
}
@Override
public
void
onStateChanged
(
int
state
,
PrinterDeviceBean
printerDeviceBean
)
{
LoganManager
.
w_printer
(
TAG
,
"PrintTaskonStateChanged state: "
+
state
);
switch
(
state
)
{
case
PrintSocketHolder
.
STATE_0
:
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 生成页面数据"
);
break
;
case
PrintSocketHolder
.
STATE_1
:
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 创建Socket连接"
);
break
;
case
PrintSocketHolder
.
STATE_2
:
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 获取输出流"
);
break
;
case
PrintSocketHolder
.
STATE_3
:
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 写入页面数据"
);
break
;
case
PrintSocketHolder
.
STATE_4
:
LoganManager
.
w_printer
(
TAG
,
"打印機狀態 --> 关闭输出流"
);
break
;
}
publishProgress
(
state
);
}
}
...
...
library-print/src/main/java/com/gingersoft/gsa/cloud/print/PrintSocketHolder.java
View file @
7678dfd3
...
...
@@ -22,6 +22,7 @@ import android.bluetooth.BluetoothSocket;
import
com.elvishew.xlog.XLog
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
java.io.IOException
;
...
...
@@ -53,8 +54,8 @@ public class PrintSocketHolder {
public
static
final
int
ERROR_4
=
-
4
;
// 写入测试页面数据失败
public
static
final
int
ERROR_5
=
-
5
;
// 必要参数不能为空
public
static
final
int
ERROR_6
=
-
6
;
// 关闭Socket出错
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;
...
...
@@ -79,15 +80,16 @@ public class PrintSocketHolder {
return
ERROR_5
;
try
{
if
(
mDevice
!=
null
)
{
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
();
InetSocketAddress
socketAddress
=
new
InetSocketAddress
(
printerDeviceBean
.
getIp
(),
printerDeviceBean
.
getPort
());
//设置
超时时间
//设置超时时间
socket
.
setSoTimeout
(
PrintConstans
.
SO_TIMEOUT
);
socket
.
connect
(
socketAddress
,
PrintConstans
.
PRINT_TIMEOUT
);
//开始连接ip
// Log.e("eee", "連接狀態:" + socket.isConnected());
}
}
catch
(
Exception
e
)
{
closeSocket
();
...
...
@@ -113,20 +115,21 @@ public class PrintSocketHolder {
}
public
boolean
isSocketPrepared
()
{
return
(
bluetoothSocket
!=
null
||
socket
!=
null
)
&&
out
!=
null
;
boolean
isPrepared
=
(
bluetoothSocket
!=
null
||
socket
!=
null
)
&&
out
!=
null
;
return
isPrepared
;
}
public
int
sendData
(
List
<
byte
[]>
data
)
{
onPrinterStateChanged
(
STATE_3
);
LoganManager
.
w_printer
(
TAG
,
"PrintSocketHolder sendData ----------准备往打印机写入数据-------->"
);
if
(
data
==
null
||
data
.
size
()
<=
0
)
if
(
data
==
null
||
data
.
size
()
<=
0
)
{
return
ERROR_0
;
}
for
(
byte
[]
item
:
data
)
{
try
{
out
.
write
(
item
);
out
.
flush
();
}
catch
(
IOException
e
)
{
LoganManager
.
w_printer
(
TAG
,
"PrintSocketHolder sendData !!!!!!!!打印异常!!!!!!!! IOException
: "
+
e
.
getMessage
());
LoganManager
.
w_printer
(
TAG
,
"-->打印异常
: "
+
e
.
getMessage
());
closeSocket
();
return
ERROR_4
;
}
...
...
@@ -162,13 +165,17 @@ public class PrintSocketHolder {
}
public
int
prepareSocket
()
{
LoganManager
.
w_printer
(
TAG
,
"PrintTask doRequest sendData(data) --------------准备尝试连接打印机----------------->
"
);
LoganManager
.
w_printer
(
TAG
,
"-->准备尝试连接打印机
"
);
int
create
=
createSocket
();
if
(
create
!=
PrintSocketHolder
.
ERROR_0
)
{
return
create
;
}
int
result
=
getOutputStream
();
LoganManager
.
w_printer
(
TAG
,
"PrintSocketHolder prepareSocket--------------连接打印机结果----------------->"
+
(
result
==
ERROR_0
?
"成功"
:
"失败"
));
if
(
result
==
ERROR_0
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionSuccess
();
}
else
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionError
(
new
Exception
(
"失敗"
));
}
return
result
;
}
...
...
@@ -176,7 +183,7 @@ public class PrintSocketHolder {
* 销毁
*/
public
int
closeSocket
()
{
LoganManager
.
w_printer
(
TAG
,
"PrintSocketHolder closeSocket ----------关闭打印机连接-------->
"
);
LoganManager
.
w_printer
(
TAG
,
"-->準備关闭打印机连接
"
);
onPrinterStateChanged
(
STATE_4
);
boolean
error
=
false
;
try
{
...
...
@@ -185,7 +192,7 @@ public class PrintSocketHolder {
out
=
null
;
}
}
catch
(
IOException
e
)
{
LoganManager
.
w_printer
(
TAG
,
"PrintSocketHolder closeSocket out----------关闭打印机连接异常-------->
"
);
LoganManager
.
w_printer
(
TAG
,
"-->关闭打印机连接异常
"
);
out
=
null
;
error
=
true
;
}
...
...
@@ -195,7 +202,7 @@ public class PrintSocketHolder {
socket
=
null
;
}
}
catch
(
IOException
e
)
{
LoganManager
.
w_printer
(
TAG
,
"PrintSocketHolder closeSocket socket----------关闭打印机连接异常-------->
"
);
LoganManager
.
w_printer
(
TAG
,
"-->关闭打印机连接异常
"
);
socket
=
null
;
error
=
true
;
}
...
...
@@ -205,10 +212,11 @@ public class PrintSocketHolder {
bluetoothSocket
=
null
;
}
}
catch
(
IOException
e
)
{
LoganManager
.
w_printer
(
TAG
,
"PrintSocketHolder closeSocket bluetoothSocket----------关闭打印机连接异常-------->
"
);
LoganManager
.
w_printer
(
TAG
,
"-->关闭打印机连接异常
"
);
bluetoothSocket
=
null
;
error
=
true
;
}
PrinterPlugins
.
getOnPrinterFlowHandler
().
disconnect
();
return
error
?
ERROR_6
:
ERROR_0
;
}
...
...
@@ -241,7 +249,6 @@ public class PrintSocketHolder {
// return port;
// }
public
PrinterDeviceBean
getPrinterDeviceBean
()
{
return
printerDeviceBean
;
}
...
...
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