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
9d1b9379
Commit
9d1b9379
authored
Mar 03, 2021
by
Wyh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
凍鏈接單優化,打印回調優化
parent
25817e40
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
349 additions
and
319 deletions
+349
-319
component-coldchain/src/main/java/com/gingersoft/coldchain_module/mvp/presenter/ColdChainMainPresenter.java
+35
-24
component-coldchain/src/main/java/com/gingersoft/coldchain_module/mvp/ui/activity/ColdChainMainActivity.java
+15
-13
component-delivery-pick/src/main/debug/AndroidManifest.xml
+1
-1
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/DeliveryPickComponent.java
+2
-2
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/PageViewModel.kt
+11
-10
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/activity/DeliveryOrderMainActivity.kt
+4
-4
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/activity/LogActivity.java
+3
-3
component-print/src/main/java/com/joe/print/mvp/print/PrintListener.java
+0
-9
component-print/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
+91
-70
component-print/src/main/java/com/joe/print/mvp/print/utils/BBposPrint.java
+32
-30
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
+73
-134
component-print/src/main/java/com/joe/print/mvp/ui/view/PrinterLoadingDialog.java
+16
-2
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/SendSupplierMsgAdapter.java
+1
-1
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/delivery/OrderDetails.kt
+0
-5
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/restaurant/RestaurantInfoManager.java
+2
-2
library-common/src/main/java/com/gingersoft/gsa/cloud/common/service/DataNotificationService.kt
+3
-6
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/DoubleClickUtils.java
+37
-3
library-print/src/main/java/com/gingersoft/gsa/cloud/print/bean/UpdateBean.java
+23
-0
No files found.
component-coldchain/src/main/java/com/gingersoft/coldchain_module/mvp/presenter/ColdChainMainPresenter.java
View file @
9d1b9379
...
...
@@ -12,15 +12,14 @@ import com.gingersoft.coldchain_module.mvp.model.bean.PickUpBean;
import
com.gingersoft.coldchain_module.mvp.model.bean.ShipAnyOrdersNewBean
;
import
com.gingersoft.coldchain_module.mvp.model.bean.SupplementInfoBean
;
import
com.gingersoft.coldchain_module.mvp.model.bean.ThirdItem
;
import
com.gingersoft.coldchain_module.mvp.model.bean.UpdateOrderStatusBean
;
import
com.gingersoft.coldchain_module.mvp.model.bean.UpdateRestaurantStateBean
;
import
com.gingersoft.gsa.cloud.common.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
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.user.UserContext
;
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.common.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.component.ComponentName
;
import
com.gingersoft.gsa.cloud.order.order.TakeawayOrder
;
...
...
@@ -330,6 +329,8 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
third
.
add
(
thirdItemItem
);
}
}
Log
.
e
(
"eee"
,
"調用第三方物流接口開始"
);
//第三方物流
RequestBody
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"orderId"
,
dataBean
.
getID
()
+
""
)
.
add
(
"items"
,
GsonUtils
.
GsonString
(
third
))
...
...
@@ -346,6 +347,7 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
.
subscribe
(
new
ErrorHandleSubscriber
<
ShipAnyOrdersNewBean
>(
mErrorHandler
)
{
@Override
public
void
onNext
(
@NonNull
ShipAnyOrdersNewBean
info
)
{
Log
.
e
(
"eee"
,
"調用第三方物流接口結束:"
);
if
(
info
!=
null
&&
info
.
isSuccess
())
{
//修改訂單狀態
updateOrderState
(
dataBean
,
ColdChainConstants
.
ORDER_CONFIRMED
);
...
...
@@ -355,13 +357,14 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
}
private
void
printColdChainOrder
(
OrderDetails
.
DataBean
dataBean
)
{
LogUtil
.
w
(
"eee"
,
"凍鏈自動上菜紙"
+
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
AutoPrinterPaper
,
true
));
if
(
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
AutoPrinterPaper
,
true
))
{
//打印凍鏈上菜紙
dataBean
.
setOrder_type
(
8
);
TakeawayOrder
.
getInstance
().
getShoppingCart
().
setDeliveryAndPickupData
(
dataBean
);
PrintContentAdapter
contentAdapter
=
new
PrintContentAdapter
();
PrintContent
printContent
=
contentAdapter
.
adaptationPrintTakeawayFormContent
(
dataBean
);
Log
.
e
(
"eee"
,
"打印凍鏈上菜紙"
);
Log
Util
.
w
(
"eee"
,
"打印凍鏈上菜紙"
);
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_OTHER_ORDER
)
.
addParam
(
PrintConstans
.
PRINT_CONTENT
,
printContent
)
...
...
@@ -390,27 +393,34 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
}
//添加PRJ
addPrj
(
dataBean
);
RequestBody
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"memberId"
,
UserContext
.
newInstance
().
getMemberId
()
+
""
)
.
add
(
"orderId"
,
dataBean
.
getID
()
+
""
)
.
add
(
"status"
,
status
+
""
)
.
add
(
""
,
UserContext
.
newInstance
().
getMemberName
())
.
build
();
mModel
.
updateOrderStatus
(
requestBody
)
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
"確認訂單中,請稍候..."
))
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSubscriber
<
UpdateOrderStatusBean
>(
mErrorHandler
)
{
@Override
public
void
onNext
(
@NonNull
UpdateOrderStatusBean
info
)
{
mRootView
.
refreshOrderState
(
dataBean
.
getID
());
//打印凍鏈上菜紙
printColdChainOrder
(
dataBean
);
}
});
//打印凍鏈上菜紙
printColdChainOrder
(
dataBean
);
//修改訂單狀態
//後台會修改狀態,這裡就不修改
// RequestBody requestBody = new FormBody.Builder()
// .add("memberId", UserContext.newInstance().getMemberId() + "")
// .add("orderId", dataBean.getID() + "")
// .add("status", status + "")
// .add("", UserContext.newInstance().getMemberName())
// .build();
// LogUtil.w("eee", "修改訂單狀態開始----start");
// mModel.updateOrderStatus(requestBody)
// .subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading("確認訂單中,請稍候..."))
// .subscribeOn(AndroidSchedulers.mainThread())
// .observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
// .subscribe(new ErrorHandleSubscriber<UpdateOrderStatusBean>(mErrorHandler) {
// @Override
// public void onNext(@NonNull UpdateOrderStatusBean info) {
// LogUtil.w("eee", "修改訂單狀態結束----end----" + info.toString());
// mRootView.refreshOrderState(dataBean.getID());
// //打印凍鏈上菜紙
// printColdChainOrder(dataBean);
// }
// });
}
private
void
addPrj
(
OrderDetails
.
DataBean
dataBean
)
{
...
...
@@ -439,6 +449,7 @@ public class ColdChainMainPresenter extends BasePresenter<ColdChainMainContract.
.
add
(
"restaurantId"
,
RestaurantInfoManager
.
newInstance
().
getRestaurantId
()
+
""
)
.
add
(
"orderDetailsIds"
,
ids
.
toString
())
.
build
();
LogUtil
.
i
(
"eee"
,
"添加prj"
);
Disposable
subscribe
=
mModel
.
addPrj
(
requestBody
)
.
subscribeOn
(
Schedulers
.
io
()).
subscribe
(
s
->
{
});
...
...
component-coldchain/src/main/java/com/gingersoft/coldchain_module/mvp/ui/activity/ColdChainMainActivity.java
View file @
9d1b9379
...
...
@@ -40,7 +40,7 @@ import com.gingersoft.gsa.cloud.common.constans.DeliveryPickConstans;
import
com.gingersoft.gsa.cloud.common.constans.ExpandConstant
;
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.service.
GetInfoUpdate
Service
;
import
com.gingersoft.gsa.cloud.common.service.
DataNotification
Service
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
;
import
com.gingersoft.gsa.cloud.ui.utils.AppDialog
;
...
...
@@ -53,7 +53,6 @@ import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.qmuiteam.qmui.widget.popup.QMUIPopup
;
import
com.qmuiteam.qmui.widget.popup.QMUIPopups
;
import
com.xuexiang.rxutil2.rxjava.RxJavaUtils
;
import
java.lang.reflect.Method
;
import
java.util.ArrayList
;
...
...
@@ -62,7 +61,6 @@ import java.util.List;
import
butterknife.BindView
;
import
butterknife.OnClick
;
import
io.reactivex.disposables.Disposable
;
import
static
androidx
.
fragment
.
app
.
FragmentStatePagerAdapter
.
BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
...
...
@@ -207,7 +205,7 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre
private
void
initService
()
{
//開啟websocket
Intent
intent
=
new
Intent
(
getApplicationContext
(),
GetInfoUpdate
Service
.
class
);
Intent
intent
=
new
Intent
(
getApplicationContext
(),
DataNotification
Service
.
class
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
startForegroundService
(
intent
);
}
else
{
...
...
@@ -222,28 +220,33 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre
registerReceiver
(
clearHeartBroadcastReceiver
,
intentFilter
);
}
private
GetInfoUpdate
Service
.
MyBind
bind
=
null
;
private
DataNotification
Service
.
MyBind
bind
=
null
;
private
long
lastClickTime
=
0
;
private
ServiceConnection
serviceConnection
=
new
ServiceConnection
()
{
@Override
public
void
onServiceConnected
(
ComponentName
name
,
IBinder
service
)
{
bind
=
(
GetInfoUpdate
Service
.
MyBind
)
service
;
bind
=
(
DataNotification
Service
.
MyBind
)
service
;
if
(
bind
!=
null
)
{
bind
.
setOnPostCallBack
(
type
->
{
// -1斷開連接,\n-2:消息傳輸錯誤,\n0:連接消息,\n1:登錄通知,\n2:登出通知,\n3:外賣送單通知,\n4:自取送單通知,\n5:歷史訂單通知,\n6:修改訂單狀態通知,\n7:支付成功通知"
if
(
type
==
3
||
type
==
5
||
type
==
6
||
type
==
7
)
{
//ColdChainConstants.orderType
||
type
==
6
||
type
==
7
)
{
long
nowTime
=
System
.
currentTimeMillis
();
if
(
nowTime
-
lastClickTime
<
8000
)
{
return
;
}
lastClickTime
=
nowTime
;
fragments
.
get
(
viewPager
.
getCurrentItem
()).
onRefreshData
();
mPresenter
.
getBalance
();
if
(
type
!=
5
)
{
getNumByOrderTypeInvoke
(
"loadNumber"
);
}
//判斷要不要自動接單
if
(
autoReceivingOrders
.
isChecked
())
{
if
(
autoReceivingOrders
.
isChecked
())
{
mPresenter
.
startToBeConfirmedOrderList
(
restaurantId
);
}
}
if
(
type
==
3
||
type
==
6
||
type
==
7
)
{
getNumByOrderTypeInvoke
(
"loadNumber"
);
}
});
bind
.
execute
(
aBoolean
->
null
);
bind
.
setJumpActivity
(
ColdChainMainActivity
.
class
);
...
...
@@ -255,7 +258,6 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre
}
};
private
int
confirmedOrderNum
;
@Override
...
...
component-delivery-pick/src/main/debug/AndroidManifest.xml
View file @
9d1b9379
...
...
@@ -28,7 +28,7 @@
</intent-filter>
</activity>
<service
android:name=
"com.gingersoft.gsa.cloud.common.service.
GetInfoUpdate
Service"
/>
<service
android:name=
"com.gingersoft.gsa.cloud.common.service.
DataNotification
Service"
/>
<meta-data
android:name=
"com.gingersoft.gsa.cloud.common.config.globalconfig.GlobalConfiguration"
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/DeliveryPickComponent.java
View file @
9d1b9379
...
...
@@ -7,7 +7,7 @@ import com.billy.cc.core.component.CCResult;
import
com.billy.cc.core.component.CCUtil
;
import
com.billy.cc.core.component.IComponent
;
import
com.gingersoft.gsa.cloud.component.ComponentName
;
import
com.gingersoft.gsa.cloud.common.service.
GetInfoUpdate
Service
;
import
com.gingersoft.gsa.cloud.common.service.
DataNotification
Service
;
import
com.gingersoft.gsa.delivery_pick_mode.data.network.ServiceCreator
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity.PrjQueryActivity
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity.SendOrderActivity
;
...
...
@@ -52,7 +52,7 @@ public class DeliveryPickComponent implements IComponent {
CC
.
sendCCResult
(
cc
.
getCallId
(),
CCResult
.
success
());
break
;
case
"closeHeart"
:
Intent
intent
=
new
Intent
(
cc
.
getContext
(),
GetInfoUpdate
Service
.
class
);
Intent
intent
=
new
Intent
(
cc
.
getContext
(),
DataNotification
Service
.
class
);
cc
.
getContext
().
stopService
(
intent
);
break
;
case
"historyActivity"
:
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/PageViewModel.kt
View file @
9d1b9379
...
...
@@ -22,7 +22,7 @@ import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.Companion.veri
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.service.
GetInfoUpdate
Service
import
com.gingersoft.gsa.cloud.common.service.
DataNotification
Service
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.other.TextUtil
...
...
@@ -232,7 +232,8 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}
else
{
}
}
else
{}
}
else
{
}
}
//獲取預約單
repository
.
requestOrderList
(
restaurantId
.
toString
(),
fragmentStatus
[
1
],
fragmentType
[
0
],
"1"
,
orderNo
,
phone
,
1
).
apply
{
...
...
@@ -420,11 +421,11 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
thirdSend
(
restaurantId
,
dataBean
,
trafficType
,
status
,
isPrintPrj
,
isPrintBill
,
listener
)
}
}
},
{
},
{
e
->
listener
.
invoke
(
getMsgBean
(
0
,
""
,
false
))
it
.
printStackTrace
()
GetInfoUpdateService
.
loginfo
.
append
(
"錯誤信息111:"
+
it
.
message
+
" LOCALIZEDMESSAGE:"
+
it
.
localizedMessage
+
it
.
cause
)
GetInfoUpdate
Service
.
loginfo
.
append
(
"\n"
)
e
.
printStackTrace
()
DataNotificationService
.
loginfo
.
append
(
"錯誤信息111:"
+
e
.
message
+
" LOCALIZEDMESSAGE:"
+
e
.
localizedMessage
+
e
.
cause
)
DataNotification
Service
.
loginfo
.
append
(
"\n"
)
})
}
...
...
@@ -564,12 +565,12 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
//添加PRJ
//單獨包起來,哪怕這接口報錯也不要影響到正常的邏輯
repository
.
addPrj
(
dataBean
.
Order_ID
.
toString
(),
restaurantId
.
toString
(),
ids
.
toString
())
GetInfoUpdate
Service
.
loginfo
.
append
(
"添加PRJ:orderId:"
+
dataBean
.
Order_ID
.
toString
()
+
"restaurantId:"
+
restaurantId
+
"orderDetailsIds:"
+
ids
.
toString
())
GetInfoUpdate
Service
.
loginfo
.
append
(
"\n"
)
DataNotification
Service
.
loginfo
.
append
(
"添加PRJ:orderId:"
+
dataBean
.
Order_ID
.
toString
()
+
"restaurantId:"
+
restaurantId
+
"orderDetailsIds:"
+
ids
.
toString
())
DataNotification
Service
.
loginfo
.
append
(
"\n"
)
},
{
it
.
printStackTrace
()
GetInfoUpdate
Service
.
loginfo
.
append
(
"錯誤信息222:"
+
it
.
message
+
" LOCALIZEDMESSAGE:"
+
it
.
localizedMessage
+
it
.
cause
)
GetInfoUpdate
Service
.
loginfo
.
append
(
"\n"
)
DataNotification
Service
.
loginfo
.
append
(
"錯誤信息222:"
+
it
.
message
+
" LOCALIZEDMESSAGE:"
+
it
.
localizedMessage
+
it
.
cause
)
DataNotification
Service
.
loginfo
.
append
(
"\n"
)
})
}
if
(
isPrintBill
)
{
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/activity/DeliveryOrderMainActivity.kt
View file @
9d1b9379
...
...
@@ -31,7 +31,7 @@ import com.gingersoft.gsa.cloud.common.constans.ExpandConstant
import
com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans.TAKEAWAY_TYPE
import
com.gingersoft.gsa.cloud.common.constans.FunctionManagerConstants
import
com.gingersoft.gsa.cloud.common.function.FunctionManager
import
com.gingersoft.gsa.cloud.common.service.
GetInfoUpdate
Service
import
com.gingersoft.gsa.cloud.common.service.
DataNotification
Service
import
com.gingersoft.gsa.cloud.common.service.PostCallBack
import
com.gingersoft.gsa.cloud.order.order.BaseOrder
import
com.gingersoft.gsa.cloud.ui.utils.AppDialog
...
...
@@ -387,7 +387,7 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
private
fun
initWebsocket
()
{
//開啟websocket
val
service
=
Intent
(
applicationContext
,
GetInfoUpdate
Service
::
class
.
java
)
val
service
=
Intent
(
applicationContext
,
DataNotification
Service
::
class
.
java
)
val
notification
:
NotificationManagerCompat
=
NotificationManagerCompat
.
from
(
this
)
if
(!
notification
.
areNotificationsEnabled
())
{
//未開啟通知權限
...
...
@@ -437,12 +437,12 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
unbindService
(
serviceConnection
)
}
var
bind
:
GetInfoUpdate
Service
.
MyBind
?
=
null
var
bind
:
DataNotification
Service
.
MyBind
?
=
null
var
lastRefreshTime
:
Long
=
0
private
var
serviceConnection
=
object
:
ServiceConnection
{
override
fun
onServiceConnected
(
name
:
ComponentName
,
service
:
IBinder
)
{
bind
=
service
as
GetInfoUpdate
Service
.
MyBind
bind
=
service
as
DataNotification
Service
.
MyBind
bind
?.
let
{
it
->
it
.
setOnPostCallBack
(
object
:
PostCallBack
{
override
fun
callBack
(
type
:
Int
)
{
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/activity/LogActivity.java
View file @
9d1b9379
...
...
@@ -3,7 +3,7 @@ package com.gingersoft.gsa.delivery_pick_mode.ui.activity;
import
android.os.Bundle
;
import
android.widget.TextView
;
import
androidx.appcompat.app.AppCompatActivity
;
import
com.gingersoft.gsa.cloud.common.service.
GetInfoUpdate
Service
;
import
com.gingersoft.gsa.cloud.common.service.
DataNotification
Service
;
import
com.gingersoft.gsa.delivery_pick_mode.R
;
public
class
LogActivity
extends
AppCompatActivity
{
...
...
@@ -14,13 +14,13 @@ public class LogActivity extends AppCompatActivity {
setContentView
(
R
.
layout
.
activity_log
);
loadInfo
();
findViewById
(
R
.
id
.
btn_clear_log
).
setOnClickListener
(
v
->
{
GetInfoUpdate
Service
.
loginfo
.
setLength
(
0
);
DataNotification
Service
.
loginfo
.
setLength
(
0
);
loadInfo
();
});
findViewById
(
R
.
id
.
btn_back
).
setOnClickListener
(
v
->
finish
());
}
private
void
loadInfo
()
{
((
TextView
)
findViewById
(
R
.
id
.
tv_log
)).
setText
(
GetInfoUpdate
Service
.
loginfo
.
toString
());
((
TextView
)
findViewById
(
R
.
id
.
tv_log
)).
setText
(
DataNotification
Service
.
loginfo
.
toString
());
}
}
component-print/src/main/java/com/joe/print/mvp/print/PrintListener.java
deleted
100644 → 0
View file @
25817e40
package
com
.
joe
.
print
.
mvp
.
print
;
public
interface
PrintListener
{
void
printStateChanged
(
int
state
);
void
printSuccess
();
void
printFailure
(
String
msg
);
}
component-print/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
View file @
9d1b9379
...
...
@@ -37,6 +37,8 @@ import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInf
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.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.common.utils.log.LogUtil
;
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.view.ImageUtils
;
...
...
@@ -81,6 +83,7 @@ import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import
com.xuexiang.rxutil2.rxjava.task.RxIOTask
;
import
java.io.IOException
;
import
java.net.ConnectException
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
...
...
@@ -96,7 +99,7 @@ import static com.joe.print.mvp.print.common.HtmlContract.LABLE_DIV;
import
static
com
.
joe
.
print
.
mvp
.
print
.
common
.
HtmlContract
.
LABLE_P
;
@Getter
public
abstract
class
PrinterRoot
<
T
extends
PrintContent
>
implements
Print
SocketHolder
.
OnStateChangedListener
,
Print
Executor
.
OnPrintResultListener
,
ReceiveListener
{
public
abstract
class
PrinterRoot
<
T
extends
PrintContent
>
implements
PrintExecutor
.
OnPrintResultListener
,
ReceiveListener
{
private
final
String
TAG
=
getClass
().
getSimpleName
();
@Inject
...
...
@@ -106,7 +109,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
private
final
static
int
N5_PAPER_WIDTH
=
500
;
//N5打印機紙張寬度
final
static
String
DELIMITER
=
"/"
;
//將打印位置區分開來。。。。,暫時只有廚房單用到
private
PrintListener
printListener
;
//
private PrintListener printListener;
private
static
SparseArray
<
PrinterRoot
>
mPrinterStrategy
=
new
SparseArray
<>();
...
...
@@ -140,10 +143,10 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
protected
void
setPrintContent
(
T
printContent
)
{
}
public
PrinterRoot
setPrintListener
(
PrintListener
printListener
)
{
this
.
printListener
=
printListener
;
return
this
;
}
//
public PrinterRoot setPrintListener(PrintListener printListener) {
//
this.printListener = printListener;
//
return this;
//
}
/**
* 把Map中Key相同,则各个value添加到一起,汇总值
...
...
@@ -220,20 +223,20 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
/**
* 本機打印
*/
public
void
locationPrint
(
List
<
Bitmap
>
bitmaps
,
String
[]
BBPosPrintDatas
,
PrintListener
listener
)
{
public
void
locationPrint
(
List
<
Bitmap
>
bitmaps
,
String
[]
BBPosPrintDatas
)
{
//本機打印
String
model
=
Build
.
MODEL
;
if
(
PrintConstans
.
PRINT_MODEL_V2
.
contains
(
model
))
{
sunmiPrint
(
bitmaps
,
listener
);
sunmiPrint
(
bitmaps
);
}
else
if
(
PrintConstans
.
PRINT_MODEL_N5
.
contains
(
model
))
{
//N5打印
n5Print
(
bitmaps
,
listener
);
n5Print
(
bitmaps
);
}
else
if
(
PrintConstans
.
PRINT_MODEL_WISEPOS
.
contains
(
model
))
{
//BBPOS Wisepos 打印 localhost 192.168.1.162
//打印結果示例:<?xml version="1.0" encoding= "UTF-8" ?><WAPIResult><status>SUCCESS</status><requestType>PRINT</requestType><state>IDLE</state><systemInfo><appVersion>1.22.4.4.007</appVersion><OSVersion>9</OSVersion><ip>192.168.1.162</ip><mac>2059a018d3d6</mac><serialNumber>WSS503013000075</serialNumber><firmware>WSS50.501-02 (5.00.01.02.beta7)</firmware><hardware></hardware><terminalConfig>GNZZ_MTIPD_v13_with_AE_v1</terminalConfig><key>034040XXXXXXXXXXXXXX</key><bootloader>6.00.00.20 (6.00.00.34)</bootloader></systemInfo><timestamp>1601021267673</timestamp></WAPIResult>
new
BBposPrint
().
print
(
BBPosPrintDatas
,
listener
,
false
);
new
BBposPrint
().
print
(
BBPosPrintDatas
,
false
);
}
else
{
listener
.
printFailure
(
"暫不支持本機型打印"
);
printFailure
(
"暫不支持本機型打印"
,
UpdateBean
.
FAIL_LOCAL_PRINT_NOT_DEVICE
);
}
}
...
...
@@ -241,20 +244,18 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
* n5打印
*
* @param bitmaps
* @param listener
*/
private
void
n5Print
(
List
<
Bitmap
>
bitmaps
,
PrintListener
listener
)
{
private
void
n5Print
(
List
<
Bitmap
>
bitmaps
)
{
try
{
for
(
int
i
=
0
;
i
<
bitmaps
.
size
();
i
++)
{
PrinterUtil
.
appendImage
(
ImageUtils
.
zoomDrawable
(
bitmaps
.
get
(
i
),
N5_PAPER_WIDTH
),
PrinterConstant
.
ALIGN_CENTER
);
PrinterUtil
.
appendPrnStr
(
"\n"
,
24
,
PrinterConstant
.
ALIGN_CENTER
,
false
);
PrinterUtil
.
appendPrnStr
(
"\n"
,
24
,
PrinterConstant
.
ALIGN_CENTER
,
false
);
}
startN5Print
(
listener
);
startN5Print
();
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
listener
.
printFailure
(
"打印失敗,請重試"
);
printFailure
(
e
.
getMessage
(),
UpdateBean
.
FAILED_PRINT_N5
);
}
}
...
...
@@ -262,9 +263,8 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
* 商米打印
*
* @param bitmaps
* @param listener
*/
private
void
sunmiPrint
(
List
<
Bitmap
>
bitmaps
,
PrintListener
listener
)
{
private
void
sunmiPrint
(
List
<
Bitmap
>
bitmaps
)
{
//商米打印
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionSuccess
();
AidlUtil
.
getInstance
().
printBitmaps
(
bitmaps
,
SUNMI_PAPER_WIDTH
,
new
InnerResultCallbcak
()
{
...
...
@@ -272,9 +272,9 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
public
void
onRunResult
(
boolean
isSuccess
)
{
//返回接⼝执⾏的情况(并⾮真实打印):成功或失败
if
(
isSuccess
)
{
listener
.
printSuccess
();
printSuccess
();
}
else
{
listener
.
printFailure
(
"sunmi打印失敗"
);
printFailure
(
"sunmi打印失敗"
,
UpdateBean
.
FAILED_PRINT
);
}
}
...
...
@@ -299,19 +299,18 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
}
private
void
startN5Print
(
PrintListener
listener
)
{
private
void
startN5Print
()
{
try
{
PrinterUtil
.
startPrint
(
true
,
new
IOnPrintCallback
.
Stub
()
{
@Override
public
void
onPrintResult
(
int
i
)
{
if
(
i
==
0
)
{
//打印成功
listener
.
printSuccess
();
printSuccess
();
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
();
}
else
{
//打印失敗
listener
.
printFailure
(
"打印失敗"
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
UpdateBean
.
getStateByCode
(
i
)),
i
);
printFailure
(
"打印失敗"
,
i
);
}
}
...
...
@@ -320,11 +319,10 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
return
this
;
}
});
}
catch
(
RemoteException
e
)
{
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
//打印失敗
listener
.
printFailure
(
"打印失敗"
);
printFailure
(
e
.
getMessage
(),
UpdateBean
.
FAILED_PRINT_N5
);
}
}
...
...
@@ -360,7 +358,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
}
}
}
ipPrint
(
printerDeviceBean
,
bitmaps
,
this
,
this
);
ipPrint
(
printerDeviceBean
,
bitmaps
);
}
public
void
disconnectEpson
()
{
...
...
@@ -369,24 +367,51 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
}
}
private
void
ipPrint
(
PrinterDeviceBean
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
,
PrintSocketHolder
.
OnStateChangedListener
stateChangedListener
,
PrintExecutor
.
OnPrintResultListener
resultListener
)
{
private
void
ipPrint
(
PrinterDeviceBean
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
)
{
if
(
executor
==
null
)
{
executor
=
new
PrintExecutor
()
.
setOnStateChangedListener
(
stateChangedListener
)
.
setOnPrintResultListener
(
resultListener
);
.
setOnStateChangedListener
(
state
->
{
// switch (state) {
// case PrintSocketHolder.STATE_1:
// tip = "開始創建連接";
// break;
// case PrintSocketHolder.STATE_2:
// tip = "創建連接成功,開始發送數據";
// break;
// case PrintSocketHolder.STATE_3:
// tip = "開始寫入數據";
// break;
// case PrintSocketHolder.STATE_4://关闭输出流
// tip = "關閉中";
// killMyself();
// break;
// default:
// break;
// }
LogUtil
.
e
(
"eee"
,
"打印狀態:"
+
state
);
if
(
state
==
PrintSocketHolder
.
STATE_4
){
printSuccess
();
}
})
.
setOnPrintResultListener
(
this
::
onResult
);
}
IpPrintMaker
maker
=
new
IpPrintMaker
(
480
,
bitmaps
,
printerDeviceBean
.
getIp
(),
printerDeviceBean
.
getPort
());
executor
.
doPrinterRequestAsync
(
maker
);
}
/**
* usb打印
*
* @param context
* @param bitmaps
*/
public
void
usbPrint
(
Context
context
,
List
<
Bitmap
>
bitmaps
)
{
UsbPrint
usbPrint
=
new
UsbPrint
(
context
,
(
code
,
printId
)
->
{
//打印結果
if
(
code
==
SendResultCode
.
SEND_SUCCESS
)
{
printSuccess
();
}
else
if
(
code
==
SendResultCode
.
SEND_FAILED
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
"usb打印失敗"
),
0
);
printFailure
(
"打印失敗"
);
printFailure
(
"usb打印失敗"
,
UpdateBean
.
FAIL_USB_PRINT
);
}
});
UsbPrinterFinder
printerFinder
=
new
UsbPrinterFinder
(
context
,
new
PrinterFinderCallback
<
UsbPrinter
>()
{
...
...
@@ -420,7 +445,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
}
}
else
{
boolean
hasPermission
=
new
Intent
().
getBooleanExtra
(
UsbManager
.
EXTRA_PERMISSION_GRANTED
,
false
);
print
Listener
.
printFailure
(
"未找到USB打印機"
);
print
Failure
(
"未找到USB打印機"
,
UpdateBean
.
FAIL_USB_PRINT_NOT_FIND
);
}
}
});
...
...
@@ -463,68 +488,62 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
return
;
case
PrintSocketHolder
.
ERROR_6
:
LoganManager
.
w_printer
(
TAG
,
"生成打印數據失敗"
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionError
(
new
Exception
(
"生成打印數據失敗"
));
printFailure
(
"生成打印數據失敗"
);
printConnectError
(
UpdateBean
.
getStateByCode
(
errorCode
));
break
;
case
PrintSocketHolder
.
ERROR_7
:
LoganManager
.
w_printer
(
TAG
,
"連接打印機失敗"
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionError
(
new
Exception
(
"連接打印機失敗"
));
printFailure
(
"連接打印機失敗"
);
printConnectError
(
UpdateBean
.
getStateByCode
(
errorCode
));
break
;
case
PrintSocketHolder
.
ERROR_10
:
LoganManager
.
w_printer
(
TAG
,
"打印機連接成功,發送數據出現問題"
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
"打印機連接成功,發送數據出現問題"
),
errorCode
);
printFailure
(
"打印失敗,錯誤碼:"
+
errorCode
);
printFailure
(
UpdateBean
.
getStateByCode
(
errorCode
),
errorCode
);
break
;
case
PrintSocketHolder
.
ERROR_9
:
LoganManager
.
w_printer
(
TAG
,
"IP地址為空"
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionError
(
new
Exception
(
"IP地址為空"
));
printFailure
(
"IP地址為空"
);
printConnectError
(
UpdateBean
.
getStateByCode
(
errorCode
));
break
;
case
PrintSocketHolder
.
ERROR_66
:
LoganManager
.
w_printer
(
TAG
,
"關閉Socket出錯"
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
disconnect
(
new
Exception
(
"關閉打印機連接出错"
));
printDisconnect
(
"關閉打印機連接出错"
);
break
;
case
PrintSocketHolder
.
ERROR_11
:
printFailure
(
"打印機沒紙了"
,
UpdateBean
.
FAIL_NOT_PAPER
);
break
;
case
PrintSocketHolder
.
ERROR_12
:
//暫時只有針式打印機有
printConnectError
(
"打印機初始化失敗"
);
break
;
case
PrintSocketHolder
.
ERROR_TIMEOUT
:
printConnectError
(
"連接打印機超時"
);
break
;
default
:
break
;
}
setPrintState
(
errorCode
);
}
private
void
printSuccess
()
{
if
(
printListener
!=
null
)
{
printListener
.
printSuccess
();
@Override
public
void
onPtrReceive
(
Printer
printer
,
int
i
,
PrinterStatusInfo
printerStatusInfo
,
String
s
)
{
if
(
i
==
0
)
{
printSuccess
();
}
else
{
printFailure
(
"打印失敗"
,
UpdateBean
.
FAILED_PRINT
);
}
}
private
void
printFailure
(
String
state
)
{
if
(
printListener
!=
null
)
{
printListener
.
printFailure
(
state
);
}
private
void
printSuccess
()
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
();
}
@Override
public
void
onStateChanged
(
int
state
)
{
setPrintState
(
state
);
private
void
printFailure
(
String
msg
,
int
code
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
msg
),
code
);
}
private
void
setPrintState
(
int
state
)
{
if
(
printListener
!=
null
)
{
printListener
.
printStateChanged
(
state
);
}
private
void
printConnectError
(
String
msg
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionError
(
new
Exception
(
msg
));
}
@Override
public
void
onPtrReceive
(
Printer
printer
,
int
i
,
PrinterStatusInfo
printerStatusInfo
,
String
s
)
{
if
(
printListener
!=
null
)
{
if
(
i
==
0
)
{
printSuccess
();
}
else
{
printFailure
(
"打印失敗"
);
}
}
// EpsonPrint.getInstance().disconnectPrinter();
// EpsonPrint.getInstance().finalizeObject();
private
void
printDisconnect
(
String
msg
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
disconnect
(
new
Exception
(
msg
));
}
...
...
@@ -621,7 +640,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
if
(
TextUtil
.
isEmptyOrNullOrUndefined
(
data
.
getBillNo
()))
{
if
(
DeliveryPickConstans
.
COLD_CHAIN_TYPE
.
equals
(
data
.
getOrder_type
()
+
""
))
{
//凍鏈
tvOrderNumber
.
setText
(
"訂單號:"
+
data
.
getID
());
tvOrderNumber
.
setText
(
"訂單號:"
+
data
.
getID
());
tvOrderNumber
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
tvOrderNumber
.
setVisibility
(
View
.
GONE
);
...
...
@@ -1405,4 +1424,5 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
protected
String
getBrLable
()
{
return
"<br/>\n"
;
}
}
\ No newline at end of file
component-print/src/main/java/com/joe/print/mvp/print/utils/BBposPrint.java
View file @
9d1b9379
...
...
@@ -5,8 +5,8 @@ import android.text.TextUtils;
import
android.util.Xml
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.printer.plugins.PrinterPlugins
;
import
com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils
;
import
com.joe.print.mvp.print.PrintListener
;
import
com.joe.print.mvp.ui.activity.PrintActivity
;
import
org.xmlpull.v1.XmlPullParser
;
...
...
@@ -15,11 +15,8 @@ import org.xmlpull.v1.XmlPullParserException;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.net.ConnectException
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Queue
;
import
java.util.concurrent.TimeoutException
;
...
...
@@ -43,7 +40,6 @@ public class BBposPrint {
* RESULT_UNKNOWN_MERCHANT : -7
* RESULT_INPUT_INVALID : -8
*/
private
static
final
String
RESULT_OK
=
"RESULT_OK"
;
//成功
private
static
final
String
RESULT_FAILED
=
"RESULT_FAILED"
;
//失敗
private
static
final
String
RESULT_CANCELED
=
"RESULT_CANCELED"
;
//取消
...
...
@@ -84,10 +80,9 @@ public class BBposPrint {
* 递归打印
*
* @param printDatas 打印数据
* @param listener 回调监听
* @param recursion 是否递归从队列中取打印数据
*/
public
void
print
(
String
[]
printDatas
,
PrintListener
listener
,
boolean
recursion
)
{
public
void
print
(
String
[]
printDatas
,
boolean
recursion
)
{
if
(!
recursion
)
{
if
(
printXMLQueues
.
size
()
>
0
)
{
printXMLQueues
.
clear
();
...
...
@@ -117,7 +112,7 @@ public class BBposPrint {
@Override
public
void
onNext
(
String
s
)
{
try
{
Map
<
String
,
String
>
xmlContentMaps
=
analysisPrintResult
(
s
,
printDatas
,
listener
,
recursion
);
Map
<
String
,
String
>
xmlContentMaps
=
analysisPrintResult
(
s
,
printDatas
,
recursion
);
String
status
=
xmlContentMaps
.
get
(
STATUS
);
if
(
status
!=
null
&&
status
.
equals
(
"SUCCESS"
))
{
printSuccesCount
++;
...
...
@@ -125,13 +120,13 @@ public class BBposPrint {
String
errorMessage
=
xmlContentMaps
.
get
(
"ErrorMessage"
);
if
(!
TextUtils
.
isEmpty
(
errorMessage
))
{
if
(
errorMessage
.
equals
(
HTML_FORMAT_ERR
))
{
listener
.
printFailure
(
"內容格式錯誤,無法打印!"
);
printFailure
(
"內容格式錯誤,無法打印!"
,
0
);
backPrintActivity
();
return
;
}
else
if
(
s
.
contains
(
"Please login first"
))
{
login
(
printDatas
,
listener
,
recursion
);
login
(
printDatas
,
recursion
);
}
else
{
listener
.
printFailure
(
errorMessage
);
printFailure
(
errorMessage
,
0
);
}
}
printErrorCount
++;
...
...
@@ -139,11 +134,10 @@ public class BBposPrint {
}
catch
(
XmlPullParserException
|
IOException
e
)
{
e
.
printStackTrace
();
if
(
s
.
contains
(
"Failed to connect"
))
{
listener
.
printFailure
(
"無法連接打印,請檢查WisePay是否打開"
);
printFailure
(
"無法連接打印,請檢查WisePay是否打開"
,
0
);
backPrintActivity
();
return
;
}
else
if
(
s
.
contains
(
"Please login first"
))
{
login
(
printDatas
,
listener
,
recursion
);
login
(
printDatas
,
recursion
);
}
}
}
...
...
@@ -153,38 +147,38 @@ public class BBposPrint {
public
void
onError
(
Throwable
e
)
{
e
.
printStackTrace
();
if
(
e
instanceof
ConnectException
)
{
listener
.
printFailure
(
"無法連接打印,請檢查WisePay是否打開"
);
printFailure
(
"無法連接打印,請檢查WisePay是否打開"
,
0
);
backPrintActivity
();
return
;
}
else
if
(
e
instanceof
TimeoutException
)
{
listener
.
printFailure
(
"已超時"
);
printFailure
(
"已超時"
,
0
);
}
printErrorCount
++;
maxRecursionCount
--;
printBefore
(
printDatas
,
listener
);
printBefore
(
printDatas
);
}
@Override
public
void
onComplete
()
{
maxRecursionCount
--;
printBefore
(
printDatas
,
listener
);
printBefore
(
printDatas
);
}
});
}
private
void
printBefore
(
String
[]
printData
s
,
PrintListener
listener
)
{
private
void
printBefore
(
String
[]
printData
)
{
int
totalCount
=
printSuccesCount
+
printErrorCount
;
if
(
totalCount
==
printXMLQueues
.
size
())
{
//打印完畢
if
(
printSuccesCount
>
0
&&
printErrorCount
>
0
)
{
//部分打印失敗
listener
.
printFailure
(
"打印成功"
+
printSuccesCount
+
"張,失敗"
+
printErrorCount
+
"張"
);
printFailure
(
"打印成功"
+
printSuccesCount
+
"張,失敗"
+
printErrorCount
+
"張"
,
0
);
}
else
if
(
printSuccesCount
>
0
)
{
listener
.
printSuccess
();
printSuccess
();
}
backPrintActivity
();
}
else
{
printNext
(
printData
s
,
listener
);
}
else
{
printNext
(
printData
);
}
}
...
...
@@ -192,10 +186,9 @@ public class BBposPrint {
* 登录bbpos
*
* @param printDatas
* @param listener
* @param recursion
*/
public
void
login
(
String
[]
printDatas
,
PrintListener
listener
,
boolean
recursion
)
{
public
void
login
(
String
[]
printDatas
,
boolean
recursion
)
{
OkHttp3Utils
.
get
(
"http://localhost:8080/pos?UserName=gs01&Password=88888888&transactionType=LOGIN&isExternal=true&apiVersion=21"
)
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
...
...
@@ -208,14 +201,14 @@ public class BBposPrint {
@Override
public
void
onNext
(
String
s
)
{
//登录成功 开始打印
print
(
printDatas
,
listener
,
recursion
);
print
(
printDatas
,
recursion
);
}
@Override
public
void
onError
(
Throwable
e
)
{
e
.
printStackTrace
();
if
(
e
instanceof
ConnectException
)
{
listener
.
printFailure
(
"登錄失敗,無法打印!"
);
printFailure
(
"登錄失敗,無法打印!"
,
0
);
}
}
...
...
@@ -235,7 +228,7 @@ public class BBposPrint {
GsaCloudApplication
.
getAppContext
().
startActivity
(
intent
);
}
private
Map
<
String
,
String
>
analysisPrintResult
(
String
s
,
String
[]
printDatas
,
PrintListener
listener
,
boolean
recursion
)
throws
XmlPullParserException
,
IOException
{
private
Map
<
String
,
String
>
analysisPrintResult
(
String
s
,
String
[]
printDatas
,
boolean
recursion
)
throws
XmlPullParserException
,
IOException
{
XmlPullParser
xmlPullParser
=
Xml
.
newPullParser
();
xmlPullParser
.
setInput
(
new
ByteArrayInputStream
(
s
.
getBytes
()),
"utf-8"
);
int
eventType
=
xmlPullParser
.
getEventType
();
...
...
@@ -279,11 +272,11 @@ public class BBposPrint {
return
xmlContents
;
}
private
void
printNext
(
String
[]
printData
s
,
PrintListener
listener
)
{
private
void
printNext
(
String
[]
printData
)
{
//打印完一張就移除
printXMLQueues
.
remove
();
//递归进行打印
print
(
printData
s
,
listener
,
true
);
print
(
printData
,
true
);
}
private
void
closePrintObservable
()
{
...
...
@@ -292,4 +285,13 @@ public class BBposPrint {
stringObservable
=
null
;
}
}
private
void
printSuccess
()
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
();
}
private
void
printFailure
(
String
msg
,
int
code
)
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
msg
),
code
);
}
}
component-print/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
View file @
9d1b9379
package
com
.
joe
.
print
.
mvp
.
ui
.
activity
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.graphics.Bitmap
;
import
android.os.Build
;
...
...
@@ -20,6 +19,7 @@ import com.gingersoft.gsa.cloud.common.logan.LoganManager;
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.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.common.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.common.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
;
...
...
@@ -37,7 +37,6 @@ import com.joe.print.di.component.DaggerPrintComponent;
import
com.joe.print.mvp.contract.PrintContract
;
import
com.joe.print.mvp.presenter.PrintPresenter
;
import
com.joe.print.mvp.print.PrintInstruction
;
import
com.joe.print.mvp.print.PrintListener
;
import
com.joe.print.mvp.print.PrintPrjKitchen
;
import
com.joe.print.mvp.print.PrinterRoot
;
import
com.joe.print.mvp.print.maker.OpenCashBoxMaker
;
...
...
@@ -46,7 +45,6 @@ import com.joe.print.mvp.ui.view.PrinterLoadingDialog;
import
com.joe.print.mvp.ui.view.SelectPrintDevicePopup
;
import
com.lxj.xpopup.XPopup
;
import
java.net.ConnectException
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -75,12 +73,9 @@ 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
,
PrintExecutor
.
OnPrintResultListener
{
public
final
static
int
ADD_PRINT_CODE
=
1001
;
//添加打印機回調
public
final
static
int
FINISH
=
1003
;
//關閉頁面
public
final
static
int
ADD_PRINT_DEVICE
=
1004
;
//添加打印機
public
final
static
int
LACK_OF_PAPER
=
1005
;
//缺紙
public
static
List
<
PrinterDeviceBean
>
printerDeviceBeans
;
...
...
@@ -162,12 +157,14 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
public
void
onPrintSuccess
()
{
printerResult
=
true
;
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_RESULT
,
PrinterLoadingDialog
.
STATUS_SUCCESS
,
null
);
printSuccess
();
}
@Override
public
void
onPrintError
(
Exception
e
,
int
errorCode
)
{
LogUtil
.
d
(
"PrinterLoadingDialog"
,
"onPrintError"
);
printerResult
=
false
;
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_
RESULT
,
PrinterLoadingDialog
.
STATUS_ERROR
,
e
.
getMessage
());
printerLoadingDialog
.
setStep
(
PrinterLoadingDialog
.
PROGRESS_
PRINTING
,
PrinterLoadingDialog
.
STATUS_ERROR
,
e
.
getMessage
());
}
});
}
...
...
@@ -179,7 +176,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
private
void
actionPrinter
()
{
LogUtil
.
d
(
""
,
"actionPrinter"
);
showPrintLoadingDialog
();
callId
=
CCUtil
.
getNavigateCallId
(
this
);
...
...
@@ -191,9 +188,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
mOrderNo
=
CCUtil
.
getNavigateParam
(
this
,
PrintConstans
.
PRINT_ORDER_NO
,
""
);
//根據打印類型獲取對應的執行類
printerInIt
=
PrinterRoot
.
getPrinterByType
(
type
,
printContent
);
if
(
printerInIt
!=
null
)
{
printerInIt
.
setPrintListener
(
this
);
}
//初始化打印配置
initPrintConfig
(
printContent
);
}
...
...
@@ -221,7 +215,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private
PrinterDeviceBean
defaultPrint
;
private
void
initPrintConfig
(
PrintContent
printContent
)
{
//開始
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrinterDataBefore
(
type
,
type
,
GsonUtils
.
GsonString
(
printContent
),
GsonUtils
.
GsonString
(
defaultPrint
));
//獲取通用打印配置
...
...
@@ -246,27 +240,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
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
(
"沒有找到打印機,無法打印"
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
"沒有找到打印機,無法打印"
),
UpdateBean
.
FAIL_PRINT_BY_NOT_FIND_DEVICE
);
}
});
new
XPopup
.
Builder
(
mContext
).
asCustom
(
selectPrintDevicePopup
).
show
();
}
else
{
//沒有打印機
ToastUtils
.
show
(
mContext
,
"沒有打印機,請先添加打印機"
);
}
showSelectPrint
(
printCurrencyBean
);
}
else
{
//將打印機和通用配置合併
defaultPrint
=
MyPrintUtils
.
configPrinterProperties
(
printCurrencyBean
,
defaultPrint
);
...
...
@@ -275,6 +249,35 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
/**
* 顯示選擇打印機
*
* @param printCurrencyBean
*/
private
void
showSelectPrint
(
PrintCurrencyBean
printCurrencyBean
)
{
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
(
"沒有找到打印機,無法打印"
);
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
"沒有找到打印機,無法打印"
),
UpdateBean
.
FAIL_PRINT_BY_NOT_FIND_DEVICE
);
}
});
new
XPopup
.
Builder
(
mContext
).
asCustom
(
selectPrintDevicePopup
).
show
();
}
else
{
//沒有打印機
ToastUtils
.
show
(
mContext
,
"沒有打印機,請先添加打印機"
);
}
}
/**
* 設置廚房單打印數據
*
* @param defaultPrint 默認打印機
...
...
@@ -373,7 +376,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
printerInIt
.
ipDevicePrint
(
defaultPrint
,
zoomBitmaps
);
}
else
if
(
defaultPrint
.
getPrinterDeviceType
()
==
PrinterDeviceBean
.
PRINT_LOCAL
)
{
//本地N5或Sunmi打印
printerInIt
.
locationPrint
(
zoomBitmaps
,
BBPosPrintDatas
,
this
);
printerInIt
.
locationPrint
(
zoomBitmaps
,
BBPosPrintDatas
);
}
else
if
(
defaultPrint
.
getPrinterDeviceType
()
==
PrinterDeviceBean
.
PRINT_USB
)
{
//USB打印打印
printerInIt
.
usbPrint
(
mContext
,
zoomBitmaps
);
...
...
@@ -394,12 +397,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
private
void
addPrintProgress
(
String
printState
)
{
runOnUiThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
printerLoadingDialog
.
setTitle
(
printState
);
}
});
runOnUiThread
(()
->
printerLoadingDialog
.
setTitle
(
printState
));
}
@Override
...
...
@@ -409,96 +407,52 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
return
true
;
}
@Override
public
void
printStateChanged
(
int
state
)
{
String
tip
=
"加載中..."
;
switch
(
state
)
{
case
PrintSocketHolder
.
ERROR_0
:
tip
=
"打印成功"
;
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintSuccess
();
break
;
case
PrintSocketHolder
.
ERROR_6
:
tip
=
"生成打印數據失敗"
;
break
;
case
PrintSocketHolder
.
ERROR_7
:
tip
=
"連接打印機失敗"
;
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionError
(
new
ConnectException
(
tip
));
break
;
case
PrintSocketHolder
.
ERROR_4
:
tip
=
"寫入數據失敗"
;
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
tip
),
0
);
break
;
case
PrintSocketHolder
.
ERROR_9
:
tip
=
"ip地址不能為空"
;
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionError
(
new
ConnectException
(
tip
));
break
;
case
PrintSocketHolder
.
ERROR_10
:
tip
=
"打印機連接成功,獲取輸入流失敗或者發送數據出現問題"
;
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
tip
),
0
);
break
;
case
PrintSocketHolder
.
ERROR_11
:
tip
=
"打印機沒紙了"
;
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
tip
),
0
);
break
;
case
PrintSocketHolder
.
ERROR_12
:
tip
=
" 打印機初始化失敗,暫時只有針式打印機有"
;
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionError
(
new
ConnectException
(
tip
));
break
;
case
PrintSocketHolder
.
ERROR_TIMEOUT
:
tip
=
"連接打印機超時"
;
PrinterPlugins
.
getOnPrinterFlowHandler
().
connectionError
(
new
ConnectException
(
tip
));
break
;
case
PrintSocketHolder
.
STATE_0
:
break
;
case
PrintSocketHolder
.
STATE_1
:
tip
=
"開始創建連接"
;
break
;
case
PrintSocketHolder
.
STATE_2
:
tip
=
"創建連接成功,開始發送數據"
;
break
;
case
PrintSocketHolder
.
STATE_3
:
tip
=
"開始寫入數據"
;
break
;
case
PrintSocketHolder
.
STATE_4
:
//关闭输出流
tip
=
"關閉中"
;
killMyself
();
break
;
case
FINISH:
killMyself
();
break
;
case
ADD_PRINT_DEVICE:
addPrintDevice
();
break
;
case
LACK_OF_PAPER:
//缺紙
printFailure
(
"打印機缺紙"
);
tip
=
"打印機缺紙"
;
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
tip
),
0
);
break
;
default
:
break
;
}
LoganManager
.
w_printer
(
TAG
,
"printStateChanged state--->"
+
tip
);
addPrintProgress
(
tip
);
}
/**
* 打印成功
*/
@Override
//
// @Override
// public void printStateChanged(int state) {
// String tip = "加載中...";
// switch (state) {
// case PrintSocketHolder.STATE_1:
// tip = "開始創建連接";
// break;
// case PrintSocketHolder.STATE_2:
// tip = "創建連接成功,開始發送數據";
// break;
// case PrintSocketHolder.STATE_3:
// tip = "開始寫入數據";
// break;
// case PrintSocketHolder.STATE_4://关闭输出流
// tip = "關閉中";
// killMyself();
// break;
// default:
// break;
// }
// LoganManager.w_printer(TAG, "printStateChanged state--->" + tip);
// addPrintProgress(tip);
// }
//
// /**
// * 打印成功
// */
// @Override
public
void
printSuccess
()
{
LoganManager
.
w_printer
(
TAG
,
"printFailure 打印成功"
);
killMyself
();
CC
.
sendCCResult
(
callId
,
CCResult
.
success
());
}
@Override
//
// @Override
public
void
printFailure
(
String
msg
)
{
LogUtil
.
d
(
"PrinterLoadingDialog"
,
"printFailure"
);
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
msg
))
{
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
msg
),
0
);
ToastUtils
.
show
(
GsaCloudApplication
.
getAppContext
(),
msg
);
CC
.
sendCCResult
(
callId
,
CCResult
.
error
(
msg
));
}
else
{
CC
.
sendCCResult
(
callId
,
CCResult
.
error
(
"print error"
));
PrinterPlugins
.
getOnPrinterFlowHandler
().
onPrintError
(
new
Exception
(
"print error"
),
0
);
}
}
...
...
@@ -562,10 +516,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
// printerInIt.print(printerDeviceBeans);
}
private
void
addPrintDevice
()
{
printFailure
(
"沒有打印機,請添加"
);
// startActivityForResult(new Intent(mContext, PrinterAddActivity.class), ADD_PRINT_CODE);
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
@Nullable
Intent
data
)
{
...
...
@@ -587,11 +537,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
@Override
public
void
onDismiss
(
DialogInterface
dialog
)
{
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
//關閉打印頁面時,關閉所有打印連接
...
...
@@ -605,12 +550,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
@Override
public
void
onStateChanged
(
int
state
)
{
//ip打印狀態修改回調
}
@Override
public
void
onResult
(
int
errorCode
)
{
//ip打印結果回調
...
...
component-print/src/main/java/com/joe/print/mvp/ui/view/PrinterLoadingDialog.java
View file @
9d1b9379
...
...
@@ -4,7 +4,9 @@ import android.animation.ValueAnimator;
import
android.content.Context
;
import
android.graphics.drawable.Drawable
;
import
android.os.Bundle
;
import
android.os.Looper
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
android.view.View
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
...
...
@@ -13,6 +15,7 @@ import androidx.annotation.NonNull;
import
androidx.core.content.ContextCompat
;
import
com.airbnb.lottie.LottieAnimationView
;
import
com.gingersoft.gsa.cloud.common.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog
;
import
com.joe.print.R
;
import
com.qmuiteam.qmui.layout.QMUILinearLayout
;
...
...
@@ -64,13 +67,13 @@ public class PrinterLoadingDialog extends BaseRetryDialog {
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setCanceledOnTouchOutside
(
true
);
}
@Override
public
void
show
()
{
super
.
show
();
LogUtil
.
d
(
"PrinterLoadingDialog"
,
"show"
);
}
@Override
...
...
@@ -107,8 +110,17 @@ public class PrinterLoadingDialog extends BaseRetryDialog {
return
view
;
}
@Override
public
void
onAttachedToWindow
()
{
super
.
onAttachedToWindow
();
Log
.
e
(
"PrinterLoadingDialog"
,
"onAttachedToWindow"
);
}
public
void
setStep
(
int
step
,
int
status
,
String
errorMsg
)
{
tvGeneratePrintData
.
post
(()
->
{
LogUtil
.
d
(
"PrinterLoadingDialog"
,
"進入setStep:"
+
step
+
"--status:"
+
status
+
"線程:"
+
Thread
.
currentThread
().
getId
()
+
"/"
+
Looper
.
getMainLooper
().
getThread
().
getId
());
tvErrorMsg
.
post
(()
->
{
LogUtil
.
d
(
"PrinterLoadingDialog-"
,
"--start----setStep:"
+
step
+
"--status:"
+
status
);
if
(!
TextUtils
.
isEmpty
(
errorMsg
))
{
tvErrorMsg
.
setText
(
errorMsg
);
tvErrorMsg
.
setVisibility
(
View
.
VISIBLE
);
...
...
@@ -127,6 +139,7 @@ public class PrinterLoadingDialog extends BaseRetryDialog {
});
}
private
void
setStatusResult
(
int
step
,
int
status
)
{
switch
(
step
)
{
case
PrinterLoadingDialog
.
PROGRESS_PRINTING
:
...
...
@@ -149,6 +162,7 @@ public class PrinterLoadingDialog extends BaseRetryDialog {
}
break
;
default
:
LogUtil
.
d
(
"PrinterLoadingDialog"
,
"default----setStatusResult"
);
break
;
}
}
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/SendSupplierMsgAdapter.java
View file @
9d1b9379
...
...
@@ -12,7 +12,7 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import
com.gingersoft.supply_chain.R
;
import
com.gingersoft.supply_chain.mvp.bean.SendSupplierMsgBean
;
import
com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean
;
import
com.gingersoft.
supply_chain.mvp
.utils.DoubleClickUtils
;
import
com.gingersoft.
gsa.cloud.common
.utils.DoubleClickUtils
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/delivery/OrderDetails.kt
View file @
9d1b9379
...
...
@@ -327,13 +327,10 @@ class OrderDetails {
}
}
}
Log
.
e
(
"eee"
,
"食品總金額$foodAmount"
)
//食品金額加上餐盒費,配送費,應該等於總金額
foodAmount
=
MoneyUtil
.
sum
(
MoneyUtil
.
sum
(
foodAmount
,
orderDetail
.
Lunchbox
),
orderDetail
.
DELIVERY_CHARGE
)
Log
.
e
(
"eee"
,
"總金額$foodAmount"
)
//後台返回的總金額與計算的總金額相減,如果不等於0,則是金額有問題,攔截
var
differenceAmount
=
MoneyUtil
.
sub
(
MoneyUtil
.
sub
(
totalAmount
,
foodAmount
),
allowableError
)
Log
.
e
(
"eee"
,
"金額差$differenceAmount"
)
differenceAmount
=
abs
(
differenceAmount
)
if
(
MoneyUtil
.
compareTo
(
differenceAmount
,
allowableError
)
==
1
)
{
return
true
...
...
@@ -345,11 +342,9 @@ class OrderDetails {
payAmount
=
MoneyUtil
.
sub
(
payAmount
,
coupon
.
discount_amount
)
}
}
Log
.
e
(
"eee"
,
"減去折扣之後的總金額$payAmount"
)
//計算折扣後的金額,減去支付金額,如果不為0,則是有問題
differenceAmount
=
MoneyUtil
.
sub
(
MoneyUtil
.
sub
(
payAmount
,
orderDetail
.
PAY_AMOUNT
),
allowableError
)
Log
.
e
(
"eee"
,
"支付金額差$differenceAmount"
)
differenceAmount
=
abs
(
differenceAmount
)
if
(
MoneyUtil
.
compareTo
(
differenceAmount
,
allowableError
)
==
1
)
{
return
true
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/restaurant/RestaurantInfoManager.java
View file @
9d1b9379
...
...
@@ -31,10 +31,10 @@ public class RestaurantInfoManager {
if
(
restaurantInfo
==
null
)
{
restaurantInfo
=
new
RestaurantInfo
();
}
brandInfo
.
setBrandId
((
Integer
)
SPUtils
.
get
(
UserConstans
.
brandId
,
1
));
brandInfo
.
setBrandId
((
Integer
)
SPUtils
.
get
(
UserConstans
.
brandId
,
0
));
brandInfo
.
setBrandName
((
String
)
SPUtils
.
get
(
UserConstans
.
brandName
,
""
));
restaurantInfo
.
setGsPosShopId
((
String
)
SPUtils
.
get
(
UserConstans
.
gsPosShopId
,
"-1"
));
restaurantInfo
.
setRestaurantId
((
Integer
)
SPUtils
.
get
(
UserConstans
.
restaurantId
,
26
));
restaurantInfo
.
setRestaurantId
((
Integer
)
SPUtils
.
get
(
UserConstans
.
restaurantId
,
0
));
restaurantInfo
.
setRestaurantName
((
String
)
SPUtils
.
get
(
UserConstans
.
restaurantName
,
""
));
}
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/service/DataNotificationService.kt
View file @
9d1b9379
package
com.gingersoft.gsa.cloud.common.service
import
android.annotation.SuppressLint
import
android.app.NotificationChannel
import
android.app.NotificationManager
import
android.app.PendingIntent
...
...
@@ -15,16 +14,13 @@ import android.os.Build
import
android.os.IBinder
import
android.os.PowerManager
import
android.util.Log
import
android.view.View
import
android.widget.RemoteViews
import
androidx.annotation.RequiresApi
import
androidx.core.app.NotificationCompat
import
com.billy.cc.core.component.CC
import
com.billy.cc.core.component.CCResult
import
com.gingersoft.gsa.cloud.common.R
import
com.gingersoft.gsa.cloud.common.constans.AppConstans
import
com.gingersoft.gsa.cloud.common.constans.HttpsConstans
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
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
...
...
@@ -129,9 +125,10 @@ class DataNotificationService : Service() {
}
override
fun
onStartCommand
(
intent
:
Intent
?,
flags
:
Int
,
startId
:
Int
):
Int
{
//获取当前长连类型
mCurrConnectionType
=
intent
!!
.
getIntExtra
(
CONNECTION_TYPE
,
OPEN_DELIVET_ORDER_CONNECTION
)
intent
?.
let
{
mCurrConnectionType
=
it
.
getIntExtra
(
CONNECTION_TYPE
,
OPEN_DELIVET_ORDER_CONNECTION
)
}
initNotification
()
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp
/utils/DoubleClickUtils.java
→
library-common/src/main/java/com/gingersoft/gsa/cloud/common
/utils/DoubleClickUtils.java
View file @
9d1b9379
package
com
.
gingersoft
.
supply_chain
.
mvp
.
utils
;
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
utils
;
import
android.util.Log
;
import
android.view.View
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
;
/**
...
...
@@ -15,12 +19,42 @@ public class DoubleClickUtils {
public
static
boolean
isFastDoubleClick
()
{
long
nowTime
=
System
.
currentTimeMillis
();
if
(
nowTime
-
lastClickTime
<
500
)
{
//500ms
ToastUtils
.
show
(
GsaCloudApplication
.
getAppContext
(),
"請慢一點"
);
if
(
nowTime
-
lastClickTime
<
1000
)
{
//500ms
LogUtil
.
w
(
"eee"
,
"間隔小於1000"
);
// ToastUtils.show(GsaCloudApplication.getAppContext(), "請慢一點");
return
true
;
}
lastClickTime
=
nowTime
;
return
false
;
}
/**
* 最近一次点击的时间
*/
private
static
long
mLastClickTime
;
/**
* 最近一次点击的控件ID
*/
private
static
int
mLastClickViewId
;
/**
* 是否是快速点击
*
* @param v 点击的控件
* @param intervalMillis 时间间期(毫秒)
* @return true:是,false:不是
*/
public
static
boolean
isFastDoubleClick
(
View
v
,
long
intervalMillis
)
{
int
viewId
=
v
.
getId
();
long
time
=
System
.
currentTimeMillis
();
long
timeInterval
=
Math
.
abs
(
time
-
mLastClickTime
);
if
(
timeInterval
<
intervalMillis
&&
viewId
==
mLastClickViewId
)
{
return
true
;
}
else
{
mLastClickTime
=
time
;
mLastClickViewId
=
viewId
;
return
false
;
}
}
}
library-print/src/main/java/com/gingersoft/gsa/cloud/print/bean/UpdateBean.java
View file @
9d1b9379
...
...
@@ -87,6 +87,29 @@ public class UpdateBean {
*/
public
static
final
int
FAIL_LOCAL_PRINT_NOT_DEVICE
=
17
;
/**
* 18 USB打印失敗,未添加到後台
*/
public
static
final
int
FAIL_USB_PRINT
=
18
;
/**
* 19 未找到USB打印機,未添加到後台
*/
public
static
final
int
FAIL_USB_PRINT_NOT_FIND
=
19
;
/**
* 20 生成打印數據失敗
*/
public
static
final
int
FAIL_GENERATE_PRINT_INFO
=
20
;
/**
* 505 SUNMI未查詢到打印機請查詢打印管理配置是否正確
* 通過打印位置沒有找到對應的打印機
*/
...
...
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