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
e860097a
Commit
e860097a
authored
Mar 17, 2021
by
Wyh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、外送優化、自動接單優化 2、供應鏈代碼提交
parent
f1f53df5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
1083 additions
and
216 deletions
+1083
-216
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/WeatherRepository.kt
+22
-15
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/model/bean/OrderListBean.java
+344
-0
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/model/bean/RestaurantBusinessInfo.java
+175
-0
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/network/CoolWeatherNetwork.kt
+10
-5
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/network/api/WeatherService.kt
+11
-10
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/PageViewModel.kt
+0
-0
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/activity/DeliveryOrderMainActivity.kt
+47
-51
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/activity/OrderDetailsActivity.kt
+1
-2
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/adapter/OrderListAdapter.kt
+195
-0
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/adapter/OtherOrdersAdapter.kt
+0
-0
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/base/BaseActivity.kt
+5
-0
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/fragment/PlaceholderFragment.kt
+42
-59
component-delivery-pick/src/main/res/layout/activity_other_order.xml
+12
-8
component-delivery-pick/src/main/res/layout/layout_delivery_order_item.xml
+6
-6
component-delivery-pick/src/main/res/values/strings.xml
+1
-0
component-supply-chain/src/main/AndroidManifest.xml
+10
-9
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/ConsumeWareHousingBean.java
+1
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/InventoryRecordBean.java
+3
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/WarehouseDetailsBean.java
+1
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/NewFoodIngredientsPresenter.java
+8
-7
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/FunctionListFragment.java
+2
-2
component-supply-chain/src/main/res/xml/gsa_purchase_paths.xml
+2
-20
library-common/src/main/java/com/gingersoft/gsa/cloud/common/bean/BaseResult.java
+32
-3
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/delivery/OrderDetails.kt
+3
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/function/click/SingleClick.java
+21
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/function/click/SingleClickAspect.java
+92
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/logan/LoganManager.java
+2
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/service/DataNotificationService.kt
+18
-12
library-common/src/main/res/drawable/shape_thumb_on.xml
+3
-2
library-common/src/main/res/drawable/shape_track_on.xml
+2
-3
library-common/src/main/res/values/strings.xml
+3
-1
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/adapter/bean/InfoMultiBean.java
+9
-1
No files found.
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/WeatherRepository.kt
View file @
e860097a
...
...
@@ -9,6 +9,7 @@ import com.gingersoft.gsa.delivery_pick_mode.data.network.CoolWeatherNetwork
import
com.google.gson.Gson
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.withContext
import
lombok.With
import
okhttp3.FormBody
import
okhttp3.MediaType
import
okhttp3.RequestBody
...
...
@@ -17,35 +18,42 @@ import kotlin.Pair as Pair1
class
WeatherRepository
private
constructor
(
private
val
network
:
CoolWeatherNetwork
)
{
suspend
fun
requestOrderList
(
restaurantId
:
String
,
status
:
String
,
type
:
String
,
page
:
String
,
orderNo
:
String
,
phone
:
String
,
appointmentType
:
Int
)
=
withContext
(
Dispatchers
.
IO
)
{
suspend
fun
requestOrderList
(
restaurantId
:
String
,
status
:
String
,
type
:
Int
,
page
:
String
,
orderNo
:
String
,
phone
:
String
,
appointmentType
:
Int
)
=
withContext
(
Dispatchers
.
IO
)
{
val
requestBody
=
FormBody
.
Builder
()
.
add
(
"restaurantId"
,
restaurantId
)
.
add
(
"page"
,
page
)
.
add
(
"status"
,
status
)
.
add
(
"orderNo"
,
orderNo
)
.
add
(
"phone"
,
phone
)
.
add
(
"type"
,
type
)
.
add
(
"type"
,
type
.
toString
()
)
.
add
(
"appointmentType"
,
appointmentType
.
toString
())
.
build
()
val
heWeather
=
network
.
fetchOrderList
(
requestBody
)
heWeather
}
suspend
fun
getToBeConfirmedOrderIds
(
restaurantId
:
Int
,
orderType
:
String
)
=
withContext
(
Dispatchers
.
IO
)
{
network
.
getToBeConfirmedOrderIds
(
restaurantId
,
orderType
)
}
/**
* 新的獲取訂單列表接口
*/
suspend
fun
getNewOrderList
(
restaurantId
:
Int
,
appointmentType
:
Int
,
page
:
Int
,
pageSize
:
Int
,
status
:
String
,
orderNo
:
String
,
phone
:
String
,
type
:
Int
)
=
withContext
(
Dispatchers
.
IO
)
{
val
requestBody
=
FormBody
.
Builder
()
.
add
(
"restaurantId"
,
restaurantId
.
toString
())
.
add
(
"appointmentType"
,
appointmentType
.
toString
())
.
add
(
"page"
,
page
.
toString
())
.
add
(
"pageSize"
,
pageSize
.
toString
())
.
add
(
"status"
,
status
)
.
add
(
"orderNo"
,
orderNo
)
.
add
(
"phone"
,
phone
)
.
add
(
"type"
,
type
.
toString
())
.
build
()
network
.
fetchOrderList
(
requestBody
)
val
map
=
HashMap
<
String
,
Any
>()
map
[
"restaurantId"
]
=
restaurantId
map
[
"appointmentType"
]
=
appointmentType
map
[
"page"
]
=
page
map
[
"pageSize"
]
=
pageSize
map
[
"status"
]
=
status
map
[
"orderNo"
]
=
orderNo
map
[
"phone"
]
=
phone
map
[
"type"
]
=
type
network
.
getOrderList
(
map
)
}
suspend
fun
getOrderStatistics
(
restaurantId
:
Int
,
status
:
String
)
=
withContext
(
Dispatchers
.
IO
)
{
network
.
getOrderStatistics
(
restaurantId
,
status
)
}
suspend
fun
getOrderGroup
(
restaurantId
:
String
)
=
withContext
(
Dispatchers
.
IO
)
{
...
...
@@ -68,8 +76,7 @@ class WeatherRepository private constructor(private val network: CoolWeatherNetw
val
requestBody
=
FormBody
.
Builder
()
.
add
(
"orderId"
,
orderId
)
.
build
()
val
data
=
network
.
getOrderInfo
(
requestBody
)
data
network
.
getOrderInfo
(
requestBody
)
}
suspend
fun
getShipanyOrderTime
(
restaurantId
:
String
,
orderId
:
String
,
type
:
Int
)
=
withContext
(
Dispatchers
.
IO
)
{
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/model/bean/OrderListBean.java
0 → 100644
View file @
e860097a
package
com
.
gingersoft
.
gsa
.
delivery_pick_mode
.
data
.
model
.
bean
;
/**
* @author 宇航.
* User: admin
* Date: 2021/3/16
* Time: 11:40
* Use:
*/
public
class
OrderListBean
{
/**
* id : 11140410
* orderNo : 26210471152446517
* createTime : 2021-03-11 16:33:09.0
* addressDetail :
* payAmount : 153.6
* status : 2
* phone : 15073379600
* receiver :
* orderPayType : 1
* orderType : 7
* takeTime : 立即 18:33-18:33
* takeFoodCode : IKD4
* sendTime :
* waimaiSendTime : 2021-03-11 18:33:00.0
* memberName : zhangsa
* isRead : 1
* printStatus : 0
* timeSecond : 406956678
*/
private
int
id
;
private
String
createTime
;
//訂單編號
private
String
orderNo
;
//詳細地址
private
String
addressDetail
;
//支付金額
private
double
payAmount
;
//支付名稱
private
String
payName
;
//訂單狀態 #0:未支付;1:待確認(已支付, 待餐廳確認);2:製作中(餐廳確認);3:派送中;4:確認收貨(完成);5:是否評論;6:取消;
private
int
status
;
//收貨電話
private
String
phone
;
//收貨聯繫人
private
String
receiver
;
//訂單支付類型:0 店內支付,1 貨到付款,2 在線支付
private
int
orderPayType
;
//訂單類型#1:餐廳訂單;2:線上外賣訂單3:扫码点餐;4固定二维码订单;5:预点餐;6:積分訂單;7:自取订单;8:冷鏈
private
int
orderType
;
//是否第三方物流派送 0 :否 1:是 2 創建了飯糰訂單未下物流單
private
int
isDelete
;
//自取取貨時間
private
String
takeTime
;
//取餐碼
private
String
takeFoodCode
;
//餐廳送達描述
private
String
sendTime
;
//外賣送達時間
private
String
waimaiSendTime
;
//用戶名
private
String
memberName
;
//是否已讀 0未讀,1已讀
private
int
isRead
;
//打印上菜紙狀態:0 未打印,1 打印成功,2 打印失敗
private
int
printStatus
;
// (物流公司類型為冷鏈時使用)是否已打印pdf 1 是 0 否
private
String
isPrintPdf
;
// 運輸類型 1摩托車 2麵包車 3卡車
private
int
transportationType
;
//超時時間
private
int
timeSecond
;
//貨拉拉追加服務費
private
int
paymentValue
;
//物流單號
private
String
trkNo
;
//快遞員名稱
private
String
deliveryManName
;
//快遞員電話
private
String
deliveryManPhoneNum
;
//當前訂單狀態(第三方狀態)
private
String
curStat
;
//配送類型 SHORT_RANGE (短途送)STANDARD (中途送)LONG_DISTANCE(長途送)
private
String
deliveryMode
;
//當前訂單第三方物流狀態(第三方狀態轉換為數值)
//Order Created:1
//Pickup Request Sent:1
//Order Assigned To Delivery Man:2
//Delivery Man Reached Pickup Point Nearby:3
//Delivery Man Reached Pickup Point:4
//Delivery In Progress:5
//Delivery Man Reached Destination Nearby:6
//Order Delivered:7
//Order Cancelled Before Collection:8
//Order Cancelled After Collection:9
//Order Assigned To Another Delivery Man:10
//Collected By Customer:10
//Pickup Request Received:11
//Collected By Courier:12
//Dropped At Service Point:13
//In Transit:14
//Ready For Shipment:15
//Arrived Transit Point:16
//Shipping:17
//Delivered To Locker:18
//Delivered To Service Point:19
private
int
curStatNumber
;
public
int
getIsDelete
()
{
return
isDelete
;
}
public
void
setIsDelete
(
int
isDelete
)
{
this
.
isDelete
=
isDelete
;
}
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
String
getOrderNo
()
{
return
orderNo
;
}
public
void
setOrderNo
(
String
orderNo
)
{
this
.
orderNo
=
orderNo
;
}
public
String
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
String
createTime
)
{
this
.
createTime
=
createTime
;
}
public
String
getAddressDetail
()
{
return
addressDetail
;
}
public
void
setAddressDetail
(
String
addressDetail
)
{
this
.
addressDetail
=
addressDetail
;
}
public
double
getPayAmount
()
{
return
payAmount
;
}
public
void
setPayAmount
(
double
payAmount
)
{
this
.
payAmount
=
payAmount
;
}
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
String
getPhone
()
{
return
phone
;
}
public
void
setPhone
(
String
phone
)
{
this
.
phone
=
phone
;
}
public
String
getReceiver
()
{
return
receiver
;
}
public
void
setReceiver
(
String
receiver
)
{
this
.
receiver
=
receiver
;
}
public
int
getOrderPayType
()
{
return
orderPayType
;
}
public
void
setOrderPayType
(
int
orderPayType
)
{
this
.
orderPayType
=
orderPayType
;
}
public
int
getOrderType
()
{
return
orderType
;
}
public
void
setOrderType
(
int
orderType
)
{
this
.
orderType
=
orderType
;
}
public
String
getTakeTime
()
{
return
takeTime
;
}
public
void
setTakeTime
(
String
takeTime
)
{
this
.
takeTime
=
takeTime
;
}
public
String
getTakeFoodCode
()
{
return
takeFoodCode
;
}
public
void
setTakeFoodCode
(
String
takeFoodCode
)
{
this
.
takeFoodCode
=
takeFoodCode
;
}
public
String
getSendTime
()
{
return
sendTime
;
}
public
void
setSendTime
(
String
sendTime
)
{
this
.
sendTime
=
sendTime
;
}
public
String
getWaimaiSendTime
()
{
return
waimaiSendTime
;
}
public
void
setWaimaiSendTime
(
String
waimaiSendTime
)
{
this
.
waimaiSendTime
=
waimaiSendTime
;
}
public
String
getMemberName
()
{
return
memberName
;
}
public
void
setMemberName
(
String
memberName
)
{
this
.
memberName
=
memberName
;
}
public
int
getIsRead
()
{
return
isRead
;
}
public
void
setIsRead
(
int
isRead
)
{
this
.
isRead
=
isRead
;
}
public
int
getPrintStatus
()
{
return
printStatus
;
}
public
void
setPrintStatus
(
int
printStatus
)
{
this
.
printStatus
=
printStatus
;
}
public
int
getTimeSecond
()
{
return
timeSecond
;
}
public
void
setTimeSecond
(
int
timeSecond
)
{
this
.
timeSecond
=
timeSecond
;
}
public
String
getPayName
()
{
return
payName
;
}
public
void
setPayName
(
String
payName
)
{
this
.
payName
=
payName
;
}
public
String
getIsPrintPdf
()
{
return
isPrintPdf
;
}
public
void
setIsPrintPdf
(
String
isPrintPdf
)
{
this
.
isPrintPdf
=
isPrintPdf
;
}
public
int
getTransportationType
()
{
return
transportationType
;
}
public
void
setTransportationType
(
int
transportationType
)
{
this
.
transportationType
=
transportationType
;
}
public
int
getPaymentValue
()
{
return
paymentValue
;
}
public
void
setPaymentValue
(
int
paymentValue
)
{
this
.
paymentValue
=
paymentValue
;
}
public
String
getTrkNo
()
{
return
trkNo
;
}
public
void
setTrkNo
(
String
trkNo
)
{
this
.
trkNo
=
trkNo
;
}
public
String
getDeliveryManName
()
{
return
deliveryManName
;
}
public
void
setDeliveryManName
(
String
deliveryManName
)
{
this
.
deliveryManName
=
deliveryManName
;
}
public
String
getDeliveryManPhoneNum
()
{
return
deliveryManPhoneNum
;
}
public
void
setDeliveryManPhoneNum
(
String
deliveryManPhoneNum
)
{
this
.
deliveryManPhoneNum
=
deliveryManPhoneNum
;
}
public
String
getCurStat
()
{
return
curStat
;
}
public
void
setCurStat
(
String
curStat
)
{
this
.
curStat
=
curStat
;
}
public
String
getDeliveryMode
()
{
return
deliveryMode
;
}
public
void
setDeliveryMode
(
String
deliveryMode
)
{
this
.
deliveryMode
=
deliveryMode
;
}
public
int
getCurStatNumber
()
{
return
curStatNumber
;
}
public
void
setCurStatNumber
(
int
curStatNumber
)
{
this
.
curStatNumber
=
curStatNumber
;
}
}
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/model/bean/RestaurantBusinessInfo.java
0 → 100644
View file @
e860097a
package
com
.
gingersoft
.
gsa
.
delivery_pick_mode
.
data
.
model
.
bean
;
import
lombok.Data
;
/**
* @author 宇航.
* User: admin
* Date: 2021/3/16
* Time: 14:47
* Use: 餐廳外送的營業信息
*/
public
class
RestaurantBusinessInfo
{
// 當月支付成功的外賣單總數
private
int
takeawayOrderNumber
;
// 當月支付成功的自取單總數
private
int
selfCollectionOrderNumber
;
// 外賣訂單數
private
int
maxOrderTakeaway
;
// 自取訂單數
private
int
maxOrderSelf
;
// 餐廳狀態:0=休息中,1=營業中,2=繁忙中,3繁忙可接單
private
int
openStatus
;
// 今日營業總金額
private
double
sumTotalAmount
;
// 今日總訂單數
private
int
sumOrderNumber
;
//外賣信息
private
TakeOutSelfInfoBean
takeoutType
;
//自取信息
private
TakeOutSelfInfoBean
selfCollectionType
;
// 即時單預約單信息
private
OrderAppointment
orderAppointment
;
/**
* 外賣自取信息
*/
public
static
class
TakeOutSelfInfoBean
{
// 當天外賣訂單金額
private
double
totalAmount
;
// 當天外賣訂單數量
private
int
dayOrderNumber
;
public
double
getTotalAmount
()
{
return
totalAmount
;
}
public
void
setTotalAmount
(
double
totalAmount
)
{
this
.
totalAmount
=
totalAmount
;
}
public
int
getDayOrderNumber
()
{
return
dayOrderNumber
;
}
public
void
setDayOrderNumber
(
int
dayOrderNumber
)
{
this
.
dayOrderNumber
=
dayOrderNumber
;
}
}
/**
* 即時單預約單
*/
public
static
class
OrderAppointment
{
// 預約單數量
private
int
reservationNumber
;
// 即時單數量
private
int
immediateNumber
;
// 預約單配置時間(分鐘)
private
long
reservationConfigTime
;
public
int
getReservationNumber
()
{
return
reservationNumber
;
}
public
void
setReservationNumber
(
int
reservationNumber
)
{
this
.
reservationNumber
=
reservationNumber
;
}
public
int
getImmediateNumber
()
{
return
immediateNumber
;
}
public
void
setImmediateNumber
(
int
immediateNumber
)
{
this
.
immediateNumber
=
immediateNumber
;
}
public
long
getReservationConfigTime
()
{
return
reservationConfigTime
;
}
public
void
setReservationConfigTime
(
long
reservationConfigTime
)
{
this
.
reservationConfigTime
=
reservationConfigTime
;
}
}
public
int
getSelfCollectionOrderNumber
()
{
return
selfCollectionOrderNumber
;
}
public
void
setSelfCollectionOrderNumber
(
int
selfCollectionOrderNumber
)
{
this
.
selfCollectionOrderNumber
=
selfCollectionOrderNumber
;
}
public
int
getMaxOrderTakeaway
()
{
return
maxOrderTakeaway
;
}
public
void
setMaxOrderTakeaway
(
int
maxOrderTakeaway
)
{
this
.
maxOrderTakeaway
=
maxOrderTakeaway
;
}
public
int
getMaxOrderSelf
()
{
return
maxOrderSelf
;
}
public
void
setMaxOrderSelf
(
int
maxOrderSelf
)
{
this
.
maxOrderSelf
=
maxOrderSelf
;
}
public
int
getOpenStatus
()
{
return
openStatus
;
}
public
void
setOpenStatus
(
int
openStatus
)
{
this
.
openStatus
=
openStatus
;
}
public
double
getSumTotalAmount
()
{
return
sumTotalAmount
;
}
public
void
setSumTotalAmount
(
double
sumTotalAmount
)
{
this
.
sumTotalAmount
=
sumTotalAmount
;
}
public
int
getSumOrderNumber
()
{
return
sumOrderNumber
;
}
public
void
setSumOrderNumber
(
int
sumOrderNumber
)
{
this
.
sumOrderNumber
=
sumOrderNumber
;
}
public
int
getTakeawayOrderNumber
()
{
return
takeawayOrderNumber
;
}
public
void
setTakeawayOrderNumber
(
int
takeawayOrderNumber
)
{
this
.
takeawayOrderNumber
=
takeawayOrderNumber
;
}
public
TakeOutSelfInfoBean
getTakeoutType
()
{
return
takeoutType
;
}
public
void
setTakeoutType
(
TakeOutSelfInfoBean
takeoutType
)
{
this
.
takeoutType
=
takeoutType
;
}
public
TakeOutSelfInfoBean
getSelfCollectionType
()
{
return
selfCollectionType
;
}
public
void
setSelfCollectionType
(
TakeOutSelfInfoBean
selfCollectionType
)
{
this
.
selfCollectionType
=
selfCollectionType
;
}
public
OrderAppointment
getOrderAppointment
()
{
return
orderAppointment
;
}
public
void
setOrderAppointment
(
OrderAppointment
orderAppointment
)
{
this
.
orderAppointment
=
orderAppointment
;
}
}
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/network/CoolWeatherNetwork.kt
View file @
e860097a
...
...
@@ -6,7 +6,6 @@ import okhttp3.RequestBody
import
retrofit2.Call
import
retrofit2.Callback
import
retrofit2.Response
import
retrofit2.http.Query
import
kotlin.coroutines.resume
import
kotlin.coroutines.resumeWithException
import
kotlin.coroutines.suspendCoroutine
...
...
@@ -23,7 +22,7 @@ class CoolWeatherNetwork {
private
val
cloudService
=
ServiceCreator
.
create4
(
WeatherService
::
class
.
java
)
private
val
orderPay
Service
=
ServiceCreator
.
create5
(
WeatherService
::
class
.
java
)
private
val
riceponOrder
Service
=
ServiceCreator
.
create5
(
WeatherService
::
class
.
java
)
private
val
systemService
=
ServiceCreator
.
createSystem
(
WeatherService
::
class
.
java
)
...
...
@@ -37,7 +36,13 @@ class CoolWeatherNetwork {
suspend
fun
fetchOrderList
(
requestBody
:
RequestBody
)
=
ricepon_WechatService
.
getOrderList
(
requestBody
).
await
()
//新的獲取訂單列表
suspend
fun
getOrderList
(
requestBody
:
RequestBody
)
=
ricepon_WechatService
.
getNewOrderList
(
requestBody
).
await
()
suspend
fun
getOrderList
(
map
:
Map
<
String
,
Any
>)
=
riceponOrderService
.
getNewOrderList
(
map
).
await
()
//獲取待確認的訂單id集合
suspend
fun
getToBeConfirmedOrderIds
(
restaurantId
:
Int
,
orderType
:
String
)
=
riceponOrderService
.
getToBeConfirmedOrderIds
(
restaurantId
,
orderType
).
await
()
//新的餐廳營業信息
suspend
fun
getOrderStatistics
(
restaurantId
:
Int
,
status
:
String
)
=
riceponOrderService
.
getOrderStatistics
(
restaurantId
,
status
).
await
()
//修改餐廳營業狀態
suspend
fun
updateRestOpenStatus
(
requestBody
:
RequestBody
)
=
service
.
updateRestOpenStatus
(
requestBody
).
await
()
...
...
@@ -58,7 +63,7 @@ class CoolWeatherNetwork {
suspend
fun
gsUpdateOrderStatus
(
requestBody
:
RequestBody
)
=
service
.
gsUpdateOrderStatus
(
requestBody
).
await
()
//支付
suspend
fun
updateOrderPay
(
requestBody
:
RequestBody
)
=
orderPay
Service
.
updateOrderPay
(
requestBody
).
await
()
suspend
fun
updateOrderPay
(
requestBody
:
RequestBody
)
=
riceponOrder
Service
.
updateOrderPay
(
requestBody
).
await
()
//第三方配送接口
suspend
fun
thirdDelivery
(
requestBody
:
RequestBody
)
=
gsposService
.
thirdDelivery
(
requestBody
).
await
()
...
...
@@ -76,7 +81,7 @@ class CoolWeatherNetwork {
//獲取歷史訂單
suspend
fun
getHistoryOrderList
(
restaurantId
:
String
,
startTime
:
String
,
endTime
:
String
,
param
:
String
,
status
:
String
,
orderType
:
String
,
orderFrom
:
Int
,
pageIndex
:
String
,
pageSize
:
String
)
=
orderPayService
.
getHistoryOrderList
(
restaurantId
,
startTime
,
endTime
,
param
,
status
,
orderType
,
orderFrom
,
pageIndex
,
pageSize
).
await
()
status
:
String
,
orderType
:
String
,
orderFrom
:
Int
,
pageIndex
:
String
,
pageSize
:
String
)
=
riceponOrderService
.
getHistoryOrderList
(
restaurantId
,
startTime
,
endTime
,
param
,
status
,
orderType
,
orderFrom
,
pageIndex
,
pageSize
).
await
()
//取消物流
suspend
fun
cancelLogistics
(
requestBody
:
RequestBody
)
=
gsposService
.
cancelLogistics
(
requestBody
).
await
()
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/network/api/WeatherService.kt
View file @
e860097a
package
com.gingersoft.gsa.delivery_pick_mode.data.network.api
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
import
com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails
import
com.gingersoft.gsa.delivery_pick_mode.data.model.bean.*
import
okhttp3.RequestBody
import
retrofit2.Call
import
retrofit2.http.Body
import
retrofit2.http.GET
import
retrofit2.http.POST
import
retrofit2.http.Query
import
retrofit2.http.*
interface
WeatherService
{
@POST
(
"wechat/findOrderList"
)
fun
getOrderList
(
@Body
requestBody
:
RequestBody
):
Call
<
OrderList
>
@POST
(
"orderInfo/getOrderList"
)
fun
getNewOrderList
(
@Body
requestBody
:
RequestBody
):
Call
<
OrderList
>
@GET
(
"orderInfo/getOrderList"
)
fun
getNewOrderList
(
@QueryMap
map
:
Map
<
String
,
@JvmSuppressWildcards
Any
>):
Call
<
BaseResult
>
@GET
(
"orderInfo/getOrderStatistics"
)
fun
getOrderStatistics
(
@Query
(
"restaurantId"
)
restaurantId
:
Int
,
@Query
(
"status"
)
status
:
String
):
Call
<
BaseResult
>
@GET
(
"orderInfo/getOrderByIdList"
)
fun
getToBeConfirmedOrderIds
(
@Query
(
"restaurantId"
)
restaurantId
:
Int
,
@Query
(
"orderType"
)
orderType
:
String
):
Call
<
BaseResult
>
@POST
(
"wx/updateRestOpenStatus"
)
fun
updateRestOpenStatus
(
@Body
requestBody
:
RequestBody
):
Call
<
MessageBean
>
...
...
@@ -53,13 +57,10 @@ interface WeatherService {
@POST
(
"gsa/getDeliveryConfigDTO"
)
fun
getDeliveryConfigDTO
(
@Body
requestBody
:
RequestBody
):
Call
<
DeliveryConfig
>
// @POST("wechat/findHistoryOrderList")
// fun getHistoryOrderList(@Body requestBody: RequestBody): Call<HistoryOrderBean>
@GET
(
"historyOrder/getOrderList"
)
fun
getHistoryOrderList
(
@Query
(
"restaurantId"
)
restaurantId
:
String
,
@Query
(
"startTime"
)
startTime
:
String
,
@Query
(
"endTime"
)
endTime
:
String
,
@Query
(
"param"
)
param
:
String
,
@Query
(
"status"
)
status
:
String
,
@Query
(
"orderType"
)
orderType
:
String
,
@Query
(
"orderFrom"
)
orderFrom
:
Int
,
@Query
(
"pageIndex"
)
pageIndex
:
String
,
@Query
(
"pageSize"
)
pageSize
:
String
):
Call
<
HistoryOrderBean
>
@Query
(
"status"
)
status
:
String
,
@Query
(
"orderType"
)
orderType
:
String
,
@Query
(
"orderFrom"
)
orderFrom
:
Int
,
@Query
(
"pageIndex"
)
pageIndex
:
String
,
@Query
(
"pageSize"
)
pageSize
:
String
):
Call
<
HistoryOrderBean
>
@POST
(
"gsa/cancelOrder"
)
fun
cancelLogistics
(
@Body
requestBody
:
RequestBody
):
Call
<
CancelLogisticsBean
>
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/model/viewModel/PageViewModel.kt
View file @
e860097a
This diff is collapsed.
Click to expand it.
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/activity/DeliveryOrderMainActivity.kt
View file @
e860097a
...
...
@@ -38,6 +38,7 @@ import com.gingersoft.gsa.cloud.ui.utils.DialogUtils
import
com.gingersoft.gsa.delivery_pick_mode.R
import
com.gingersoft.gsa.delivery_pick_mode.databinding.ActivityOtherOrderBinding
import
com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel
import
com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel.Companion.fragmentStatus
import
com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity.SendOrderActivity
import
com.gingersoft.gsa.delivery_pick_mode.ui.adapter.SectionsPagerAdapter
import
com.gingersoft.gsa.delivery_pick_mode.ui.base.BaseActivity
...
...
@@ -78,8 +79,10 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
private
var
btnHeight
:
Float
=
0F
var
bind
:
DataNotificationService
.
MyBind
?
=
null
//最後一次長連接過來的消息類型
var
lastMsgType
:
Int
=
0
//是否展開餐廳營業信息
private
var
isOpen
:
Boolean
=
true
...
...
@@ -112,8 +115,6 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
initViewPager
()
//搜索
searchMethod
()
//餐廳營業信息
loadRestaurantInfo
(
binding
)
//獲取餐廳營業信息展示欄的高度
initInfoHeight
()
initOrderCheckedState
()
...
...
@@ -122,11 +123,35 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
//自動接單按鈕點擊事件
cb_takeaway_auto_receiving_orders
.
setOnCheckedChangeListener
{
_
,
isChecked
->
RestaurantExpandInfoUtils
.
setValue
(
ExpandConstant
.
TakeawayAutoOrder
,
isChecked
)
pageViewModel
.
autoReceiver
=
isChecked
}
pageViewModel
.
apply
{
autoReceiver
=
cb_takeaway_auto_receiving_orders
.
isChecked
//獲取配送員信息
getDeliveryInfo
()
//監聽餘額類
//獲取餐廳營業信息與預約單數量信息
getOrderStatistics
(
fragmentStatus
[
0
])
//獲取餘額信息
getBalance
(
RestaurantInfoManager
.
newInstance
().
brandId
)
//第一次獲取數據
getCurrentPageOrderList
()
//餐廳營業信息刷新監聽
restaurantBusinessInfo
.
observe
(
this
@DeliveryOrderMainActivity
,
Observer
{
binding
.
data
=
it
//外送訂單數
sb_takeaway
.
max
=
if
(
it
.
maxOrderTakeaway
==
0
)
1
else
it
.
maxOrderTakeaway
//即時單和預約單
val
orderAppointment
=
it
.
orderAppointment
//即時單數量
tv_immediate_order_num
.
visibility
=
View
.
VISIBLE
tv_immediate_order_num
.
text
=
orderAppointment
.
immediateNumber
.
toString
()
//預約單單數
tv_booking_order_num
.
visibility
=
View
.
VISIBLE
tv_booking_order_num
.
text
=
orderAppointment
.
reservationNumber
.
toString
()
//預約單時間
tv_booking_order
.
text
=
String
.
format
(
getString
(
R
.
string
.
str_reservation_time
),
orderAppointment
.
reservationConfigTime
)
})
//餘額刷新監聽
balanceBean
.
observe
(
this
@DeliveryOrderMainActivity
,
Observer
{
it
?.
data
?.
let
{
data
->
tv_balance
.
text
=
"餘額:${data.balance}"
+
"(保證金: ${data.bond} )"
...
...
@@ -138,20 +163,6 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
}
}
})
//監聽即時單單數
instantOrderNum
.
observe
(
this
@DeliveryOrderMainActivity
,
Observer
{
tv_immediate_order_num
.
visibility
=
View
.
VISIBLE
tv_immediate_order_num
.
text
=
it
.
toString
()
})
//監聽預約單單數
bookingOrderNum
.
observe
(
this
@DeliveryOrderMainActivity
,
Observer
{
tv_booking_order_num
.
visibility
=
View
.
VISIBLE
tv_booking_order_num
.
text
=
it
.
toString
()
})
//監聽預約單時間
bookingConfigTime
.
observe
(
this
@DeliveryOrderMainActivity
,
Observer
{
tv_booking_order
.
text
=
"預約單($it"
+
"分)"
})
}
}
...
...
@@ -210,50 +221,26 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
}
override
fun
onPageSelected
(
position
:
Int
)
{
pageViewModel
.
refreshState
.
postValue
(
position
)
//每次切換時去獲取訂單列表
pageViewModel
.
getNewOrderList
(
1
,
fragmentStatus
[
position
],
PageViewModel
.
fragmentType
[
position
])
//只有全部||待確認 狀態下,才查詢即時單、預約單數量
//控制即時單預約單layout的顯示與隱藏
if
(
position
!=
0
&&
position
!=
1
)
{
layout_order_type
.
visibility
=
View
.
GONE
}
else
{
pageViewModel
.
getOrderStatistics
(
fragmentStatus
[
position
])
layout_order_type
.
visibility
=
View
.
VISIBLE
}
}
})
}
override
fun
onStart
()
{
super
.
onStart
()
pageViewModel
.
getBanlance
(
RestaurantInfoManager
.
newInstance
().
brandId
)
}
private
fun
initOutTime
()
{
//初始化外送接單超時時間,如果超過這個時間未接單,這個訂單會顯示超時
pageViewModel
.
timeOut
=
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
OrderReceivingTimeout
,
0
)
}
/**
* 加載餐廳營業信息
*/
private
fun
loadRestaurantInfo
(
binding
:
ActivityOtherOrderBinding
)
{
pageViewModel
.
otherInfo
.
observe
(
this
,
Observer
{
binding
.
data
=
pageViewModel
sb_takeaway
.
max
=
if
(
it
.
MaxOrder
==
0
)
1
else
it
.
MaxOrder
sb_takeaway
.
progress
=
it
.
num
sb_self
.
max
=
it
.
maxOrderSelf
sb_self
.
progress
=
it
.
selflNum
if
(
it
.
orderType_2
!=
null
)
{
tv_takeaway_num
.
text
=
it
.
orderType_2
!!
.
typeDayOrderNum
.
toString
()
tv_takeaway_amount
.
text
=
"$"
+
it
.
orderType_2
!!
.
typeTotalAmount
.
toString
()
}
if
(
it
.
orderType_7
!=
null
)
{
tv_today_self_order_num
.
text
=
it
.
orderType_7
!!
.
typeDayOrderNum
.
toString
()
tv_today_self_amount_num
.
text
=
"$"
+
it
.
orderType_7
!!
.
typeTotalAmount
.
toString
()
}
})
}
/**
* 初始化viewpager的tab指示器
*/
private
fun
initTabs
()
{
...
...
@@ -291,7 +278,7 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
//搜索
if
(
ed_order_num_search
.
text
!=
null
&&
ed_order_num_search
.
text
.
isNotEmpty
())
{
pageViewModel
.
phone
=
ed_order_num_search
.
text
.
toString
()
pageViewModel
.
getOrderList
(
view_pager
.
currentItem
,
"0"
,
false
)
getCurrentPageOrderList
(
)
}
else
{
ToastUtils
.
show
(
this
@DeliveryOrderMainActivity
,
"請輸入手機號或訂單號"
)
}
...
...
@@ -443,7 +430,6 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
super
.
onDestroy
()
bind
?.
setOnPostCallBack
(
null
)
bind
?.
execute
{}
cancelDialogForLoading
()
unregisterReceiver
(
mReceiver
)
unbindService
(
serviceConnection
)
}
...
...
@@ -460,15 +446,18 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
||
type
==
6
||
type
==
7
)
{
//上次是未確認訂單,本次的提示還是未確認訂單,就不刷新本地頁面
if
(!(
lastMsgType
==
5
&&
type
==
5
))
{
pageViewModel
.
refreshState
.
postValue
(
view_pager
.
currentItem
)
getCurrentPageOrderList
(
)
// 刷新餘額
pageViewModel
.
getBa
n
lance
(
RestaurantInfoManager
.
newInstance
().
brandId
)
pageViewModel
.
getBalance
(
RestaurantInfoManager
.
newInstance
().
brandId
)
}
lastMsgType
=
type
// 選擇了自動接單,有訂單來就接單
if
(
cb_takeaway_auto_receiving_orders
.
isChecked
)
{
pageViewModel
.
startAutoConfirmOrder
()
//查詢待確定的訂單id
pageViewModel
.
getToBeConfirmedOrderIds
()
}
//獲取每個狀態的訂單數量
pageViewModel
.
getOrderGroupNum
()
}
}
})
...
...
@@ -488,6 +477,13 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
}
/**
* 獲取當前頁面訂單列表
*/
private
fun
getCurrentPageOrderList
()
{
pageViewModel
.
getNewOrderList
(
1
,
fragmentStatus
[
view_pager
.
currentItem
],
PageViewModel
.
fragmentType
[
view_pager
.
currentItem
])
}
/**
* 顯示或收起餐廳營業信息
*/
private
fun
setOrderInfoOpenOrClose
()
{
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/activity/OrderDetailsActivity.kt
View file @
e860097a
...
...
@@ -69,7 +69,6 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
lateinit
var
skeletonScreen
:
ViewSkeletonScreen
var
restaurantId
:
Int
=
-
1
private
var
orderNo
:
String
?
=
null
lateinit
var
rvThirdExpenses
:
RecyclerView
lateinit
var
thirdExpensesLayout
:
LinearLayout
...
...
@@ -127,7 +126,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
if
(
it
?.
data
!=
null
&&
it
.
data
!!
.
isNotEmpty
())
{
//初始化頁面佈局
val
orderDetails
=
it
.
data
!!
[
0
]
orderNo
=
orderDetails
.
ORDER_NO
.
toString
()
val
orderNo
=
orderDetails
.
ORDER_NO
.
toString
()
//訂單編號點擊事件
tv_order_details_order_no
.
setOnClickListener
{
ClipboardUtils
.
copyText
(
orderNo
)
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/adapter/OrderListAdapter.kt
0 → 100644
View file @
e860097a
package
com.gingersoft.gsa.delivery_pick_mode.ui.adapter
import
android.animation.AnimatorSet
import
android.animation.ObjectAnimator.ofFloat
import
android.animation.ValueAnimator
import
android.content.Context
import
android.graphics.drawable.GradientDrawable
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.widget.FrameLayout
import
androidx.core.content.ContextCompat
import
androidx.databinding.DataBindingUtil
import
androidx.recyclerview.widget.RecyclerView
import
androidx.recyclerview.widget.RecyclerView.Adapter
import
com.gingersoft.gsa.delivery_pick_mode.R
import
com.gingersoft.gsa.delivery_pick_mode.data.model.bean.OrderListBean
import
com.gingersoft.gsa.delivery_pick_mode.databinding.LayoutDeliveryOrderItemBinding
import
com.scwang.smartrefresh.layout.util.SmartUtil.dp2px
class
OrderListAdapter
(
var
context
:
Context
,
var
outTime
:
Int
,
var
dataBean
:
List
<
OrderListBean
>
=
ArrayList
())
:
Adapter
<
OrderListAdapter
.
ViewHolder
>()
{
private
var
listener
:
((
item
:
OrderListBean
)
->
Unit
)?
=
null
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
{
return
ViewHolder
(
LayoutInflater
.
from
(
parent
.
context
).
inflate
(
R
.
layout
.
layout_delivery_order_item
,
parent
,
false
))
}
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
position
:
Int
)
{
val
data
=
dataBean
[
position
]
holder
.
binding
.
data
=
data
holder
.
binding
.
isSelf
=
data
.
orderType
==
7
if
(
data
.
orderType
!=
7
&&
data
.
isDelete
==
0
)
{
holder
.
binding
.
deliveryState
=
when
(
data
.
curStatNumber
)
{
1
->
"已通知物流"
2
->
"配送員已接單"
3
->
"配送員到店附近"
4
->
"配送員已到店"
5
->
"配送中"
6
->
"到達目的地附近"
7
->
"訂單已完成"
8
->
"物流已取消"
//取餐前
9
->
"物流已取消"
//取餐後
10
->
"已指派另一位配送員"
else
->
""
}
if
(
data
.
curStatNumber
<
2
)
{
//是否超時
if
(
outTime
==
0
)
{
holder
.
binding
.
isTimeOut
=
false
}
else
{
holder
.
binding
.
isTimeOut
=
data
.
timeSecond
<
outTime
}
}
}
else
{
holder
.
binding
.
deliveryState
=
""
holder
.
binding
.
isTimeOut
=
false
}
holder
.
binding
.
vehicle
=
when
(
data
.
transportationType
)
{
1
->
ContextCompat
.
getDrawable
(
holder
.
itemView
.
context
,
R
.
drawable
.
ic_motorcycle
)
2
->
ContextCompat
.
getDrawable
(
holder
.
itemView
.
context
,
R
.
drawable
.
ic_bread_car
)
3
->
ContextCompat
.
getDrawable
(
holder
.
itemView
.
context
,
R
.
drawable
.
ic_truck
)
else
->
null
}
var
state
:
String
?
=
null
val
bg
=
GradientDrawable
()
bg
.
cornerRadius
=
dp2px
(
5f
).
toFloat
()
holder
.
flBorder
.
visibility
=
View
.
GONE
//隱藏邊框
//執行動畫
if
(
data
.
isRead
==
0
)
{
holder
.
flBorder
.
visibility
=
View
.
VISIBLE
//顯示邊框
alphaAnimator
(
holder
.
flBorder
)
}
else
{
holder
.
flBorder
.
visibility
=
View
.
GONE
holder
.
flBorder
.
clearAnimation
()
}
when
(
data
.
status
)
{
0
->
{
state
=
"待確認"
bg
.
setColor
(
getColor
(
R
.
color
.
order_state0_color
))
}
1
->
{
state
=
"待確認"
bg
.
setColor
(
getColor
(
R
.
color
.
order_state0_color
))
holder
.
flBorder
.
visibility
=
View
.
VISIBLE
//顯示邊框
}
2
->
{
state
=
"製作中"
bg
.
setColor
(
getColor
(
R
.
color
.
order_state1_color
))
}
8
->
{
state
=
"待製作"
bg
.
setColor
(
getColor
(
R
.
color
.
order_state4_color
))
holder
.
flBorder
.
visibility
=
View
.
VISIBLE
//顯示邊框
alphaAnimator
(
holder
.
flBorder
)
}
3
->
{
state
=
if
(
data
.
orderType
==
7
)
{
"待取餐"
}
else
{
"派送中"
}
bg
.
setColor
(
getColor
(
R
.
color
.
order_state2_color
))
}
}
holder
.
binding
.
state
=
state
holder
.
binding
.
stateBg
=
bg
//堂食外賣背景
val
orderingMethodBg
=
GradientDrawable
()
orderingMethodBg
.
shape
=
GradientDrawable
.
RECTANGLE
orderingMethodBg
.
cornerRadii
=
floatArrayOf
(
dp2px
(
8f
).
toFloat
(),
dp2px
(
8f
).
toFloat
(),
0f
,
0f
,
0f
,
0f
,
dp2px
(
8f
).
toFloat
(),
dp2px
(
8f
).
toFloat
())
holder
.
binding
.
orderingMethod
=
when
(
data
.
orderType
)
{
2
->
{
orderingMethodBg
.
setColor
(
getColor
(
R
.
color
.
order_state2_color
))
"外送"
}
7
->
{
orderingMethodBg
.
setColor
(
getColor
(
R
.
color
.
order_state3_color
))
"自取"
}
else
->
{
orderingMethodBg
.
setColor
(
getColor
(
R
.
color
.
order_state1_color
))
"堂食"
}
}
holder
.
binding
.
orderingMethodBg
=
orderingMethodBg
//支付方式背景 data.orderPayType==1?@color/table_send:@color/table_use
//data.orderPayType==1?@string/cash_on_delivery:@string/online_payments
val
payMethodBg
=
GradientDrawable
()
payMethodBg
.
cornerRadius
=
dp2px
(
10f
).
toFloat
()
holder
.
binding
.
payMethod
=
when
(
data
.
orderPayType
)
{
1
->
{
payMethodBg
.
setColor
(
getColor
(
R
.
color
.
cash_on_delivery_bg
))
"貨到付款"
}
else
->
{
payMethodBg
.
setColor
(
getColor
(
R
.
color
.
online_payments_bg
))
"在線支付"
}
}
holder
.
binding
.
payMethodBg
=
payMethodBg
holder
.
itemView
.
setOnClickListener
{
listener
?.
invoke
(
data
)
}
}
fun
setOnItemClickListener
(
listener
:
(
item
:
OrderListBean
)
->
Unit
)
{
this
.
listener
=
listener
}
fun
setData
(
dataBean
:
List
<
OrderListBean
>)
{
this
.
dataBean
=
dataBean
notifyDataSetChanged
()
}
private
fun
alphaAnimator
(
view
:
View
)
{
view
.
clearAnimation
()
val
animatorSet
=
AnimatorSet
()
val
ofFloat
=
ofFloat
(
view
,
"alpha"
,
0f
,
1f
)
ofFloat
.
duration
=
200
ofFloat
.
repeatCount
=
-
1
ofFloat
.
repeatMode
=
ValueAnimator
.
REVERSE
val
ofFloat1
=
ofFloat
(
view
,
"alpha"
,
1f
,
0f
)
ofFloat1
.
duration
=
200
ofFloat1
.
repeatCount
=
-
1
ofFloat1
.
repeatMode
=
ValueAnimator
.
REVERSE
animatorSet
.
play
(
ofFloat
).
with
(
ofFloat1
)
animatorSet
.
duration
=
400
animatorSet
.
start
()
}
override
fun
getItemCount
():
Int
{
return
dataBean
.
size
}
private
fun
getColor
(
color
:
Int
):
Int
{
return
ContextCompat
.
getColor
(
context
,
color
)
}
class
ViewHolder
(
itemView
:
View
)
:
RecyclerView
.
ViewHolder
(
itemView
)
{
var
binding
:
LayoutDeliveryOrderItemBinding
=
DataBindingUtil
.
bind
(
itemView
)
!!
var
flBorder
:
FrameLayout
=
itemView
.
findViewById
(
R
.
id
.
fl_border
)
}
}
\ No newline at end of file
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/adapter/OtherOrdersAdapter.kt
View file @
e860097a
This diff is collapsed.
Click to expand it.
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/base/BaseActivity.kt
View file @
e860097a
...
...
@@ -19,6 +19,11 @@ open class BaseActivity<P : IPresenter> : BaseActivity<P>() {
LoadingDialog
.
cancelDialogForLoading
()
}
override
fun
onStop
()
{
super
.
onStop
()
cancelDialogForLoading
()
}
override
fun
setupActivityComponent
(
appComponent
:
AppComponent
)
{
}
...
...
component-delivery-pick/src/main/java/com/gingersoft/gsa/delivery_pick_mode/ui/fragment/PlaceholderFragment.kt
View file @
e860097a
...
...
@@ -2,23 +2,17 @@ package com.gingersoft.gsa.delivery_pick_mode.ui.fragment
import
android.content.Intent
import
android.os.Bundle
import
android.util.Log
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.Observer
import
androidx.lifecycle.ViewModelProvider
import
androidx.recyclerview.widget.LinearLayoutManager
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
import
com.gingersoft.gsa.cloud.common.core.user.UserContext
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
import
com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils
import
com.gingersoft.gsa.delivery_pick_mode.R
import
com.gingersoft.gsa.delivery_pick_mode.model.viewModel.PageViewModel
import
com.gingersoft.gsa.delivery_pick_mode.ui.activity.OrderDetailsActivity
import
com.gingersoft.gsa.delivery_pick_mode.ui.adapter.O
therOrders
Adapter
import
com.gingersoft.gsa.delivery_pick_mode.ui.adapter.O
rderList
Adapter
import
com.gingersoft.gsa.delivery_pick_mode.ui.base.BaseFragment
import
com.gingersoft.gsa.delivery_pick_mode.util.InjectorUtil
import
com.gingersoft.gsa.delivery_pick_mode.util.setState
import
com.jess.arms.utils.LogUtils
import
kotlinx.android.synthetic.main.fragment_other_order.*
/**
...
...
@@ -26,57 +20,50 @@ import kotlinx.android.synthetic.main.fragment_other_order.*
*/
class
PlaceholderFragment
:
BaseFragment
(
R
.
layout
.
fragment_other_order
)
{
private
val
pageViewModel
by
lazy
{
ViewModelProvider
(
activity
?.
viewModelStore
!!
,
InjectorUtil
.
getWeatherModelFactory
())[
PageViewModel
::
class
.
java
]
}
//請求數據頁數
private
var
page
=
1
//當前fragment是第幾頁
private
var
position
=
0
private
lateinit
var
adapter
:
OtherOrdersAdapter
private
lateinit
var
adapter
:
OrderListAdapter
override
fun
onActivityCreated
(
savedInstanceState
:
Bundle
?)
{
super
.
onActivityCreated
(
savedInstanceState
)
//獲取頁數
//獲取
當前
頁數
position
=
arguments
?.
getInt
(
INDEX
)
?:
0
pageViewModel
.
apply
{
// 綁定狀態,如果這個值發生變化,並且是當前頁,就去獲取訂單列表
refreshState
.
observe
(
viewLifecycleOwner
,
Observer
{
if
(
position
==
it
)
{
page
=
1
getOrderList
(
false
)
showLoading
.
observe
(
viewLifecycleOwner
,
Observer
{
if
(
it
)
{
showLoading
(
"加載中..."
)
}
else
{
cancelDialogForLoading
(
)
}
})
//有多少個Fragment就添加多少個監聽
while
(
mFragmentData
.
size
<=
position
)
{
mFragmentData
.
add
(
MutableLiveData
())
}
// 綁定監聽當前fragment的數據項
mFragmentData
[
position
].
observe
(
viewLifecycleOwner
,
Observer
{
cancelDialogForLoading
()
refresh_layout
.
finishRefresh
()
refresh_layout
.
finishLoadMore
()
})
// 綁定狀態,如果這個值發生變化,並且是當前頁,就去獲取訂單列表
// refreshState.observe(viewLifecycleOwner, Observer {
// if (position == it) {
// page = 1
// getOrderList()
// }
// })
// 綁定監聽當前fragment的數據項
// mFragmentData[position].observe(viewLifecycleOwner, Observer {
// it?.let {
// layout_nodata.setState(it.size <= 0)
// adapter.setData(it)
// }
// })
newOrderList
.
observe
(
viewLifecycleOwner
,
Observer
{
it
?.
let
{
layout_nodata
.
setState
(
it
.
size
<=
0
)
adapter
.
setData
(
it
)
}
})
orderList
.
observe
(
viewLifecycleOwner
,
Observer
{
refresh_layout
.
finishRefresh
()
refresh_layout
.
finishLoadMore
()
it
?.
let
{
if
(!
it
.
isSuccess
())
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
it
.
errMsg
))
{
//訂單未請求成功才調用
ToastUtils
.
show
(
activity
,
it
.
errMsg
)
}
else
{
ToastUtils
.
show
(
activity
,
"獲取訂單列表失敗"
)
}
}
}
})
//切換預約單狀態監聽
appointmentType
.
observe
(
viewLifecycleOwner
,
Observer
{
if
(
position
<=
1
)
{
//判斷小於1是因為只有 前兩個狀態才有預約單
...
...
@@ -86,6 +73,7 @@ class PlaceholderFragment : BaseFragment(R.layout.fragment_other_order) {
}
// 初始化recyclerview
initRecyclerView
()
//初始化下拉刷新
initRefresh
()
}
...
...
@@ -100,19 +88,19 @@ class PlaceholderFragment : BaseFragment(R.layout.fragment_other_order) {
}
refresh_layout
.
setOnLoadMoreListener
{
page
++
getOrderList
(
true
)
getOrderList
()
}
}
private
fun
initRecyclerView
()
{
rv_other_order
.
layoutManager
=
LinearLayoutManager
(
activity
)
adapter
=
O
therOrders
Adapter
(
requireActivity
(),
pageViewModel
.
timeOut
*
60
*
1000
)
adapter
.
setOnItemClickListen
t
er
{
data
->
adapter
=
O
rderList
Adapter
(
requireActivity
(),
pageViewModel
.
timeOut
*
60
*
1000
)
adapter
.
setOnItemClickListener
{
data
->
// 點擊查詢食品詳情
val
intent
=
Intent
(
activity
,
OrderDetailsActivity
::
class
.
java
)
intent
.
putExtra
(
"orderId"
,
data
.
I
d
.
toString
())
intent
.
putExtra
(
"orderType"
,
data
.
order
_t
ype
)
intent
.
putExtra
(
"orderStatus"
,
data
.
STATUS
)
intent
.
putExtra
(
"orderId"
,
data
.
i
d
.
toString
())
intent
.
putExtra
(
"orderType"
,
data
.
order
T
ype
)
intent
.
putExtra
(
"orderStatus"
,
data
.
status
)
intent
.
putExtra
(
"orderPayType"
,
data
.
orderPayType
)
intent
.
putExtra
(
"isRead"
,
data
.
isRead
)
//傳遞是否是預約單
...
...
@@ -122,9 +110,8 @@ class PlaceholderFragment : BaseFragment(R.layout.fragment_other_order) {
intent
.
putExtra
(
"isBookingOrder"
,
true
)
}
}
//已指派物流 並且 狀態為未接單 才判斷是否超時
if
(
data
.
isDelete
==
0
&&
data
.
curStat
<
2
)
{
if
(
data
.
isDelete
==
0
&&
data
.
curStat
Number
<
2
)
{
if
(
pageViewModel
.
timeOut
==
0
)
{
//為0時沒配置,不顯示追加服務費按鈕
intent
.
putExtra
(
"isTimeOut"
,
false
)
...
...
@@ -139,18 +126,14 @@ class PlaceholderFragment : BaseFragment(R.layout.fragment_other_order) {
private
fun
refresh
()
{
if
(
position
==
pageViewModel
.
refreshState
.
value
)
{
showLoading
(
"獲取數據中..."
)
page
=
1
pageViewModel
.
orderNo
=
""
pageViewModel
.
phone
=
""
getOrderList
(
false
)
}
pageViewModel
.
showLoading
.
postValue
(
true
)
page
=
1
pageViewModel
.
phone
=
""
getOrderList
()
}
private
fun
getOrderList
(
isLoadMore
:
Boolean
)
{
pageViewModel
.
getOrderList
(
arguments
?.
getInt
(
INDEX
)
?:
0
,
page
.
toString
(),
isLoadMore
)
private
fun
getOrderList
()
{
pageViewModel
.
getNewOrderList
(
page
,
PageViewModel
.
fragmentStatus
[
position
],
PageViewModel
.
fragmentType
[
position
])
}
companion
object
{
...
...
component-delivery-pick/src/main/res/layout/activity_other_order.xml
View file @
e860097a
...
...
@@ -9,7 +9,7 @@
<variable
name=
"data"
type=
"com.gingersoft.gsa.delivery_pick_mode.
model.viewModel.PageViewModel
"
/>
type=
"com.gingersoft.gsa.delivery_pick_mode.
data.model.bean.RestaurantBusinessInfo
"
/>
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout
...
...
@@ -71,6 +71,7 @@
android:layout_width=
"0dp"
android:layout_height=
"@dimen/dp_5"
android:layout_marginRight=
"@dimen/dp_5"
android:progress=
"@{data.takeawayOrderNumber}"
android:progressDrawable=
"@drawable/shape_seekbar_bg"
app:layout_constraintCircleRadius=
"@dimen/dp_5"
app:layout_constraintLeft_toLeftOf=
"parent"
...
...
@@ -96,7 +97,7 @@
android:id=
"@+id/tv_month_takeaway_num"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@{String.valueOf(data.
otherInfo.num + @string/slash + data.otherInfo.maxOrder
)}"
android:text=
"@{String.valueOf(data.
takeawayOrderNumber + @string/slash + data.maxOrderTakeaway
)}"
android:textColor=
"@color/color_a9"
android:textSize=
"@dimen/dp_12"
app:layout_constraintRight_toRightOf=
"@id/sb_takeaway"
...
...
@@ -118,6 +119,8 @@
android:layout_width=
"0dp"
android:layout_height=
"@dimen/dp_5"
android:layout_marginLeft=
"@dimen/dp_5"
android:max=
"@{data.maxOrderSelf}"
android:progress=
"@{data.selfCollectionOrderNumber}"
android:progressDrawable=
"@drawable/shape_seekbar_bg"
app:layout_constraintCircleRadius=
"@dimen/dp_5"
app:layout_constraintLeft_toRightOf=
"@id/dividing_line"
...
...
@@ -142,7 +145,7 @@
android:id=
"@+id/tv_month_self_num"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@{String.valueOf(data.
otherInfo.selflNum + @string/slash +data.otherInfo
.maxOrderSelf)}"
android:text=
"@{String.valueOf(data.
selfCollectionOrderNumber + @string/slash +data
.maxOrderSelf)}"
android:textColor=
"@color/color_a9"
android:textSize=
"@dimen/dp_12"
app:layout_constraintRight_toRightOf=
"@id/sb_self"
...
...
@@ -261,7 +264,7 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_5"
android:text=
"@{String.valueOf(data.
otherInfo.dayOrderNum
)}"
android:text=
"@{String.valueOf(data.
sumOrderNumber
)}"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_16"
android:textStyle=
"bold"
...
...
@@ -307,7 +310,7 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"@dimen/dp_10"
android:text=
""
android:text=
"
@{String.valueOf(data.takeoutType.dayOrderNumber)}
"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toLeftOf=
"@id/line_today_order_info"
...
...
@@ -329,7 +332,7 @@
style=
"@style/otherOrderInfoDialogTextStyle_font_style_twelve"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
""
android:text=
"
@{String.valueOf(data.selfCollectionType.dayOrderNumber)}
"
app:layout_constraintLeft_toRightOf=
"@id/line_today_order_info"
app:layout_constraintRight_toRightOf=
"@id/line_today_info"
app:layout_constraintTop_toBottomOf=
"@id/tv_self_text"
/>
...
...
@@ -360,7 +363,7 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_5"
android:text=
"@{@string/amount_unit + data.
otherInfo.t
otalAmount}"
android:text=
"@{@string/amount_unit + data.
sumT
otalAmount}"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_16"
android:textStyle=
"bold"
...
...
@@ -396,6 +399,7 @@
style=
"@style/otherOrderInfoDialogTextStyle_font_style_twelve"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@{@string/amount_unit + data.takeoutType.totalAmount}"
app:layout_constraintLeft_toLeftOf=
"@id/tv_takeaway_amount_text"
app:layout_constraintRight_toRightOf=
"@id/tv_takeaway_amount_text"
app:layout_constraintTop_toBottomOf=
"@id/tv_takeaway_amount_text"
/>
...
...
@@ -416,7 +420,7 @@
style=
"@style/otherOrderInfoDialogTextStyle_font_style_twelve"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
""
android:text=
"
@{@string/amount_unit + data.selfCollectionType.totalAmount}
"
app:layout_constraintLeft_toLeftOf=
"@id/tv_self_amount_text"
app:layout_constraintRight_toRightOf=
"@id/tv_self_amount_text"
app:layout_constraintTop_toBottomOf=
"@id/tv_self_amount_text"
/>
...
...
component-delivery-pick/src/main/res/layout/layout_delivery_order_item.xml
View file @
e860097a
...
...
@@ -11,7 +11,7 @@
<variable
name=
"data"
type=
"com.gingersoft.gsa.delivery_pick_mode.data.model.bean.OrderList
.DataBeanX.Data
Bean"
/>
type=
"com.gingersoft.gsa.delivery_pick_mode.data.model.bean.OrderListBean"
/>
<variable
name=
"delivery_state"
...
...
@@ -128,7 +128,7 @@
android:layout_marginRight=
"@dimen/dp_10"
android:layout_weight=
"1"
android:gravity=
"right"
android:text=
"@{TimeUtils.parseTimeRepeat(data.c
REATE_TIME
,TimeUtils.DEFAULT_DATE_FORMAT)}"
android:text=
"@{TimeUtils.parseTimeRepeat(data.c
reateTime
,TimeUtils.DEFAULT_DATE_FORMAT)}"
android:textSize=
"@dimen/dp_10"
tools:text=
"下單時間"
tools:textColor=
"@color/theme_333_color"
/>
...
...
@@ -151,7 +151,7 @@
android:layout_height=
"match_parent"
android:layout_marginTop=
"@dimen/dp_2"
android:layout_marginRight=
"@dimen/dp_10"
android:text=
"@{data.r
ECEIVER + @string/left_parenthesis+data.pHONE
+ @string/right_parenthesis}"
android:text=
"@{data.r
eceiver + @string/left_parenthesis+data.phone
+ @string/right_parenthesis}"
android:textColor=
"@color/theme_text_color"
android:textSize=
"@dimen/sp_14"
android:textStyle=
"bold"
...
...
@@ -230,7 +230,7 @@
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_6"
android:text=
"@{data.a
DDRESS_DETAIL
}"
android:text=
"@{data.a
ddressDetail
}"
android:visibility=
"@{isSelf?View.GONE:View.VISIBLE}"
app:layout_constraintLeft_toRightOf=
"@id/barrier_order_item_right"
app:layout_constraintRight_toRightOf=
"parent"
...
...
@@ -299,7 +299,7 @@
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_2"
android:gravity=
"center_horizontal"
android:text=
"@{@string/amount_unit + data.p
AY_AMOUNT
}"
android:text=
"@{@string/amount_unit + data.p
ayAmount
}"
android:textColor=
"@color/red_600"
android:textSize=
"@dimen/sp_16"
app:layout_constraintHorizontal_weight=
"1"
...
...
@@ -325,11 +325,11 @@
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginRight=
"@dimen/dp_2"
android:gravity=
"center_horizontal"
android:text=
"@{@string/amount_unit + data.paymentValue}"
android:textColor=
"@color/red_600"
android:textSize=
"@dimen/sp_10"
android:layout_marginRight=
"@dimen/dp_2"
app:layout_constraintHorizontal_weight=
"1"
app:layout_constraintLeft_toRightOf=
"@id/tv_address"
app:layout_constraintRight_toRightOf=
"parent"
...
...
component-delivery-pick/src/main/res/values/strings.xml
View file @
e860097a
...
...
@@ -15,4 +15,5 @@
<string
name=
"delivery_shop"
>
本店派送
</string>
<string
name=
"logistics_distribution"
>
物流配送
</string>
<string
name=
"str_reservation_time"
>
"預約單(%1$d分)"
</string>
</resources>
component-supply-chain/src/main/AndroidManifest.xml
View file @
e860097a
...
...
@@ -24,15 +24,15 @@
android:name=
"com.yalantis.ucrop.UCropActivity"
android:screenOrientation=
"portrait"
android:theme=
"@style/Theme.AppCompat.Light.NoActionBar"
/>
<provider
android:name=
"androidx.core.content.FileProvider"
android:authorities=
"${applicationId}.fileprovider"
android:exported=
"false"
android:grantUriPermissions=
"true"
>
<meta-data
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/gsa_purchase_paths"
/
>
</provider
>
<!-- <provider-->
<!-- android:name="androidx.core.content.FileProvider"-->
<!-- android:authorities="${applicationId}.fileprovider"-->
<!-- android:exported="false"-->
<!-- android:grantUriPermissions="true">--
>
<!-- <meta-data-->
<!-- android:name="android.support.FILE_PROVIDER_PATHS"-->
<!-- android:resource="@xml/gsa_purchase_paths" />--
>
<!-- </provider>--
>
</application>
</manifest>
\ No newline at end of file
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/ConsumeWareHousingBean.java
View file @
e860097a
...
...
@@ -17,4 +17,5 @@ public class ConsumeWareHousingBean {
private
String
dates
;
private
String
description
;
private
int
quantity
;
private
String
supplierName
;
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/InventoryRecordBean.java
View file @
e860097a
...
...
@@ -14,5 +14,8 @@ public class InventoryRecordBean {
private
String
userName
;
private
int
uid
;
private
int
consumeQuantity
;
private
int
remainingQuantity
;
private
long
createTime
;
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/WarehouseDetailsBean.java
View file @
e860097a
...
...
@@ -67,6 +67,7 @@ public class WarehouseDetailsBean {
warehousingBean
.
purchase
=
consumeWareHousingBean
.
getDescription
();
warehousingBean
.
foodQuantity
=
consumeWareHousingBean
.
getQuantity
();
warehousingBean
.
purchaseTime
=
consumeWareHousingBean
.
getDates
();
warehousingBean
.
supplierName
=
consumeWareHousingBean
.
getSupplierName
();
return
warehousingBean
;
}
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/NewFoodIngredientsPresenter.java
View file @
e860097a
...
...
@@ -104,15 +104,15 @@ public class NewFoodIngredientsPresenter extends BasePresenter<NewFoodIngredient
/**
* 食材單價下標
*/
public
int
foodIngredientPriceIndex
=
1
1
;
public
int
foodIngredientPriceIndex
=
1
2
;
/**
* 是否審核 下標
*/
public
int
isAuditIndex
=
1
4
;
public
int
mixInventoryIndex
=
1
5
;
//最低庫存
public
int
shelfLifeIndex
=
1
6
;
//保質期
public
int
shelfLifeWarningIndex
=
1
7
;
//保質期預警
public
int
remarkIndex
=
2
0
;
//備註
public
int
isAuditIndex
=
1
5
;
public
int
mixInventoryIndex
=
1
6
;
//最低庫存
public
int
shelfLifeIndex
=
1
7
;
//保質期
public
int
shelfLifeWarningIndex
=
1
8
;
//保質期預警
public
int
remarkIndex
=
2
1
;
//備註
/**
* 副單位集合
*/
...
...
@@ -210,10 +210,11 @@ public class NewFoodIngredientsPresenter extends BasePresenter<NewFoodIngredient
infoMultiBeans
.
add
(
new
MultiSelectBean
(
InfoMultiBean
.
EDIT_FOOD_ITEM_SELECT
,
"基本單位"
,
true
,
"請選擇食材單位"
,
SELECT_PACKAGE_SPECIFICATION_REQUEST_CODE
,
FoodUnitPageFragment
.
class
));
infoMultiBeans
.
add
(
new
MultiInputBean
(
InfoMultiBean
.
ITEM_TYPE_INPUT
,
"包裝說明"
,
false
,
"請輸入包裝說明"
,
new
InputFilter
[]{
InputFilterUtils
.
getLengthFilter
(
context
,
10
),
InputFilterUtils
.
getTypeFilter
(
context
,
InputFilterUtils
.
chAndEnAndNumAndSlash
)}));
infoMultiBeans
.
add
(
new
MultiInputBean
(
InfoMultiBean
.
ITEM_TYPE_INPUT
,
"食材編號"
,
false
,
"請輸入食材編號"
,
new
InputFilter
[]{
InputFilterUtils
.
getLengthFilter
(
context
,
11
),
InputFilterUtils
.
getEnAndNumInputFilter
(
context
)}));
infoMultiBeans
.
add
(
new
InfoMultiBean
(
InfoMultiBean
.
ITEM_MULTIPLE_BOOLEAN
,
"是否有SN碼"
,
false
,
false
));
infoMultiBeans
.
add
(
new
MultiInputBean
(
InfoMultiBean
.
ITEM_TYPE_INPUT
,
"單價($)"
,
false
,
"請輸入單價,保留2位小數"
,
new
InputFilter
[]{
InputFilterUtils
.
getLengthFilter
(
context
,
9
),
new
DecimalDigitsInputFilter
(
context
,
2
)},
InputType
.
TYPE_CLASS_NUMBER
|
InputType
.
TYPE_NUMBER_FLAG_DECIMAL
));
infoMultiBeans
.
add
(
new
InfoMultiBean
(
InfoMultiBean
.
ITEM_TYPE_LINE
));
infoMultiBeans
.
add
(
new
InfoMultiBean
(
InfoMultiBean
.
ITEM_TYPE_TITLE
,
"庫存預警"
));
infoMultiBeans
.
add
(
new
InfoMultiBean
(
InfoMultiBean
.
ITEM_MULTIPLE_BOOLEAN
,
"是否審核"
,
false
,
"
請輸入單位
"
));
infoMultiBeans
.
add
(
new
InfoMultiBean
(
InfoMultiBean
.
ITEM_MULTIPLE_BOOLEAN
,
"是否審核"
,
false
,
""
));
infoMultiBeans
.
add
(
new
MultiInputBean
(
InfoMultiBean
.
ITEM_TYPE_INPUT
,
"最低庫存"
,
false
,
"請輸入最低庫存"
,
new
InputFilter
[]{
InputFilterUtils
.
getLengthFilter
(
context
,
5
)},
EditorInfo
.
TYPE_CLASS_NUMBER
));
infoMultiBeans
.
add
(
new
MultiInputBean
(
InfoMultiBean
.
ITEM_TYPE_INPUT
,
"保質期(天)"
,
false
,
"請輸入保質期"
,
new
InputFilter
[]{
InputFilterUtils
.
getLengthFilter
(
context
,
5
)},
EditorInfo
.
TYPE_CLASS_NUMBER
));
infoMultiBeans
.
add
(
new
MultiInputBean
(
InfoMultiBean
.
ITEM_TYPE_INPUT
,
"保質期預警(天)"
,
false
,
"請輸入預警天數"
,
new
InputFilter
[]{
InputFilterUtils
.
getLengthFilter
(
context
,
5
)},
EditorInfo
.
TYPE_CLASS_NUMBER
));
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/FunctionListFragment.java
View file @
e860097a
...
...
@@ -113,8 +113,8 @@ public class FunctionListFragment extends BaseSupplyChainFragment<FunctionListPr
start
(
SupplierListFragment
.
newInstance
(
false
,
null
));
break
;
case
"食材"
:
//
start(FoodIngredientsFragment.newInstance(FOOD_INGREDIENTS));
start
(
BuyIngredientsFragment
.
newInstance
());
start
(
FoodIngredientsFragment
.
newInstance
(
FOOD_INGREDIENTS
));
//
start(BuyIngredientsFragment.newInstance());
break
;
case
"種類"
:
start
(
CategoryFragment
.
newInstance
());
...
...
component-supply-chain/src/main/res/xml/gsa_purchase_paths.xml
View file @
e860097a
...
...
@@ -36,25 +36,7 @@
<!--path="images" />-->
<paths
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<root-path
name=
"root"
path=
""
/>
<files-path
name=
"files"
path=
"images"
/>
<cache-path
name=
"cache"
path=
""
/>
<external-path
name=
"external"
path=
"image"
/>
<external-files-path
name=
"external_file_path"
path=
""
/>
<external-cache-path
name=
"external_cache_path"
path=
""
/>
name=
""
path=
"purchase_image"
/>
</paths>
library-common/src/main/java/com/gingersoft/gsa/cloud/common/bean/BaseResult.java
View file @
e860097a
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
bean
;
import
lombok.Data
;
/**
* Created by Wyh on 2020/1/15.
*/
@Data
public
class
BaseResult
{
/**
...
...
@@ -27,4 +24,36 @@ public class BaseResult {
public
void
setSuccess
(
boolean
success
)
{
this
.
success
=
success
;
}
public
Object
getData
()
{
return
data
;
}
public
void
setData
(
Object
data
)
{
this
.
data
=
data
;
}
public
long
getSysTime
()
{
return
sysTime
;
}
public
void
setSysTime
(
long
sysTime
)
{
this
.
sysTime
=
sysTime
;
}
public
String
getErrCode
()
{
return
errCode
;
}
public
void
setErrCode
(
String
errCode
)
{
this
.
errCode
=
errCode
;
}
public
String
getErrMsg
()
{
return
errMsg
;
}
public
void
setErrMsg
(
String
errMsg
)
{
this
.
errMsg
=
errMsg
;
}
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/delivery/OrderDetails.kt
View file @
e860097a
...
...
@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.common.core.delivery
import
android.util.Log
import
android.view.View
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
import
java.io.Serializable
...
...
@@ -333,6 +334,7 @@ class OrderDetails {
var
differenceAmount
=
MoneyUtil
.
sub
(
MoneyUtil
.
sub
(
totalAmount
,
foodAmount
),
allowableError
)
differenceAmount
=
abs
(
differenceAmount
)
if
(
MoneyUtil
.
compareTo
(
differenceAmount
,
allowableError
)
==
1
)
{
LoganManager
.
w_delivery
(
LoganManager
.
EVENT_CALCULATE
,
"verificationAmount食品金額:${totalAmount} + ${foodAmount}"
);
return
true
}
var
payAmount
=
foodAmount
...
...
@@ -347,6 +349,7 @@ class OrderDetails {
differenceAmount
=
MoneyUtil
.
sub
(
MoneyUtil
.
sub
(
payAmount
,
orderDetail
.
PAY_AMOUNT
),
allowableError
)
differenceAmount
=
abs
(
differenceAmount
)
if
(
MoneyUtil
.
compareTo
(
differenceAmount
,
allowableError
)
==
1
)
{
LoganManager
.
w_delivery
(
LoganManager
.
EVENT_CALCULATE
,
"verificationAmount支付金額:${payAmount} + ${orderDetail.PAY_AMOUNT}"
);
return
true
}
return
false
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/function/click/SingleClick.java
0 → 100644
View file @
e860097a
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
function
.
click
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* @author 宇航.
* User: admin
* Date: 2021/3/3
* Time: 11:44
* Use:
*/
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
METHOD
)
public
@interface
SingleClick
{
long
value
()
default
1000
;
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/function/click/SingleClickAspect.java
0 → 100644
View file @
e860097a
//package com.gingersoft.gsa.cloud.common.function.click;
//
//import android.util.Log;
//import android.view.View;
//
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.annotation.Around;
//import org.aspectj.lang.annotation.Aspect;
//import org.aspectj.lang.annotation.Pointcut;
//import org.aspectj.lang.reflect.MethodSignature;
//
//import java.lang.reflect.Method;
//
///**
// * @author 宇航.
// * User: admin
// * Date: 2021/3/3
// * Time: 11:46
// * Use:
// */
//@Aspect
//public class SingleClickAspect {
// private static final long DEFAULT_TIME_INTERVAL = 5000;
// /**
// * 定义切点,标记切点为所有被@SingleClick注解的方法
// 注意:这里me.baron.test.annotation.SingleClick需要替换成
// * 你自己项目中SingleClick这个类的全路径哦
// */
// @Pointcut("execution(@com.gingersoft.gsa.cloud.common.function.click.SingleClick * *(..))")
// public void methodAnnotated() {}
//
// /**
// * 定义一个切面方法,包裹切点方法
// */
// @Around("methodAnnotated()")
// public void aroundJoinPoint(ProceedingJoinPoint joinPoint) throws Throwable {
// // 取出方法的参数
//// View view = null;
//// for (Object arg : joinPoint.getArgs()) {
//// if (arg instanceof View) {
//// view = (View) arg;
//// break;
//// }
//// }
//// if (view == null) {
//// return;
//// }
// // 取出方法的注解
// MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
// Method method = methodSignature.getMethod();
// Log.e("eee", "aroundJoinPoint");
// if (!method.isAnnotationPresent(SingleClick.class)) {
// Log.e("eee", "isAnnotationPresent");
// return;
// }
// SingleClick singleClick = method.getAnnotation(SingleClick.class);
// // 判断是否快速点击
// if (!isFastDoubleClick(method.getName(), singleClick.value())) {
// Log.e("eee", "不是快速點擊");
// // 不是快速点击,执行原方法
// joinPoint.proceed();
// } else {
// Log.e("eee", "快速點擊");
// }
// }
//
// /**
// * 最近一次点击的时间
// */
// private static long mLastClickTime;
// /**
// * 最近一次点击的方法
// */
// private static String mLastMethodName;
//
// /**
// * 是否是快速点击
// * @param intervalMillis 时间间期(毫秒)
// * @return true:是,false:不是
// */
// public static boolean isFastDoubleClick(String methodName, long intervalMillis) {
// long time = System.currentTimeMillis();
// long timeInterval = Math.abs(time - mLastClickTime);
// if (timeInterval < intervalMillis && methodName.equals(mLastMethodName)) {
// return true;
// } else {
// mLastClickTime = time;
// mLastMethodName = methodName;
// return false;
// }
// }
//}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/logan/LoganManager.java
View file @
e860097a
...
...
@@ -91,6 +91,8 @@ public class LoganManager {
public
static
final
String
EVENT_DELETE
=
"刪除->"
;
public
static
final
String
EVENT_MODIFY
=
"修改->"
;
public
static
final
String
EVENT_QUERY
=
"查詢->"
;
public
static
final
String
EVENT_ERROR
=
"錯誤->"
;
public
static
void
w_login
(
String
TAG
,
String
...
eventAndLog
)
{
w_business
(
LOGIN_BUSINESS_TAG
,
TAG
,
eventAndLog
);
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/service/DataNotificationService.kt
View file @
e860097a
...
...
@@ -54,7 +54,7 @@ class DataNotificationService : Service() {
var
client
:
OkHttpClient
?
=
null
var
postCallBack
:
PostCallBack
?
=
null
private
lateinit
var
mReceiver
:
ClearHeartBroadcastReceiver
private
var
mReceiver
:
ClearHeartBroadcastReceiver
?
=
null
private
var
newWakeLock
:
PowerManager
.
WakeLock
?
=
null
...
...
@@ -163,13 +163,9 @@ class DataNotificationService : Service() {
* 创建通知渠道
*/
@RequiresApi
(
Build
.
VERSION_CODES
.
O
)
fun
createNotificationChannel
(
notifiyId
:
Int
)
{
if
(!
UserContext
.
newInstance
().
isLogin
)
{
stopSelf
()
return
}
fun
createNotificationChannel
(
notifyId
:
Int
)
{
//设定的通知渠道名称
va
r
channelName
=
"Data Notification"
va
l
channelName
=
"Data Notification"
//设置通知的重要程度
val
importance
=
NotificationManager
.
IMPORTANCE_LOW
//构建通知渠道
...
...
@@ -179,7 +175,7 @@ class DataNotificationService : Service() {
val
notificationManager
=
getSystemService
(
Context
.
NOTIFICATION_SERVICE
)
as
NotificationManager
notificationManager
.
createNotificationChannel
(
channel
)
notificationManager
.
cancelAll
()
startNotification
(
notif
i
yId
)
startNotification
(
notifyId
)
}
private
fun
startNotification
(
notifiyId
:
Int
)
{
...
...
@@ -201,7 +197,7 @@ class DataNotificationService : Service() {
builder
.
setContentTitle
(
"Ricepon POS"
)
//设置通知标题
builder
.
setContentText
(
"connection service"
)
//设置通知内容
va
r
pendingIntent
:
PendingIntent
va
l
pendingIntent
:
PendingIntent
if
(
notifiyId
==
DELIVETY_NOTIFITY_ID
)
{
var
intent
:
Intent
?
=
null
myBind
?.
jumpActivity
?.
let
{
...
...
@@ -219,6 +215,10 @@ class DataNotificationService : Service() {
builder
.
setLargeIcon
(
BitmapFactory
.
decodeResource
(
resources
,
R
.
mipmap
.
ic_launcher
))
//将服务置于启动状态 NOTIFICATION_ID指的是创建的通知的ID
startForeground
(
notifiyId
,
builder
.
build
())
if
(!
UserContext
.
newInstance
().
isLogin
)
{
stopSelf
()
return
}
}
fun
restartNotification
()
{
...
...
@@ -374,7 +374,7 @@ class DataNotificationService : Service() {
fun
send
(
currConnectionType
:
Int
)
{
// val token = "weixin_" + RestaurantInfoManager.newInstance().restaurantId + "_" + UserContext.newInstance().memberId + "_" + getRandomString(24)
val
token
=
"weixin_"
+
RestaurantInfoManager
.
newInstance
().
restaurantId
+
"_"
+
getRandomString
(
24
)
val
token
=
"weixin_"
+
RestaurantInfoManager
.
newInstance
().
restaurantId
+
"_"
+
getRandomString
(
24
)
LoganManager
.
w_code
(
TAG
,
"token="
+
token
);
if
(
mWebSocket
!=
null
)
{
mWebSocket
?.
send
(
Gson
().
toJson
(
MsgBean
(
1
,
getConnectiontype
(),
token
)))
...
...
@@ -416,13 +416,19 @@ class DataNotificationService : Service() {
override
fun
onDestroy
()
{
super
.
onDestroy
()
putTimeLog
(
"服務銷毀onDestroy"
)
clearTask
()
}
private
fun
clearTask
()
{
putTimeLog
(
"服務銷毀onDestroy"
)
//清除心跳
clearHeart
()
isDestroy
=
true
//取消廣播
unregisterReceiver
(
mReceiver
)
mReceiver
?.
let
{
unregisterReceiver
(
mReceiver
)
mReceiver
=
null
}
//斷開長鏈接
client
?.
let
{
mWebSocket
?.
cancel
()
...
...
library-common/src/main/res/drawable/shape_thumb_on.xml
View file @
e860097a
...
...
@@ -5,8 +5,8 @@
android:width=
"@dimen/dp_19"
android:height=
"@dimen/dp_19"
/>
<stroke
android:width=
"
3
dp"
android:color=
"
#00000000
"
/>
android:width=
"
1
dp"
android:color=
"
@color/color_3c
"
/>
<solid
android:color=
"@color/white"
/>
</shape>
\ No newline at end of file
library-common/src/main/res/drawable/shape_track_on.xml
View file @
e860097a
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:shape=
"rectangle"
>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<corners
android:radius=
"
20dp
"
/>
<corners
android:radius=
"
@dimen/dp_20
"
/>
<solid
android:color=
"@color/theme_color"
/>
...
...
library-common/src/main/res/values/strings.xml
View file @
e860097a
...
...
@@ -153,7 +153,6 @@
<string
name=
"response_error_request_logged"
>
賬號已在其他設備登錄
</string>
<string
name=
"app_exception"
>
很抱歉,程序出現異常,即將退出!
</string>
<string
name=
"queue_write_external_storage_permission_hint"
>
保存失敗,請先前往設置開放存儲權限
</string>
...
...
@@ -221,4 +220,7 @@
<string
name=
"delivery_fee"
>
最低消費:
</string>
<string
name=
"delivery_method"
>
配送方式:
</string>
<string
name=
"delivery_difference"
>
補差價:
</string>
<string
name=
"str_amount_tran"
>
$%1$.2f
</string>
<string
name=
"str_amount_tran_integer"
>
$%1$d
</string>
</resources>
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/adapter/bean/InfoMultiBean.java
View file @
e860097a
...
...
@@ -104,7 +104,8 @@ public class InfoMultiBean {
protected
Class
<?
extends
ISupportFragment
>
fragment
;
public
InfoMultiBean
(){}
public
InfoMultiBean
()
{
}
public
InfoMultiBean
(
int
itemType
)
{
this
.
itemType
=
itemType
;
...
...
@@ -130,6 +131,13 @@ public class InfoMultiBean {
this
.
hintText
=
hintText
;
}
public
InfoMultiBean
(
int
itemType
,
String
showTitle
,
boolean
isRequired
,
boolean
isChecked
)
{
this
.
itemType
=
itemType
;
this
.
showTitle
=
showTitle
;
this
.
isRequired
=
isRequired
;
this
.
isChecked
=
isChecked
;
}
public
InfoMultiBean
(
int
itemType
,
String
showTitle
,
String
hintText
,
Class
<?
extends
ISupportFragment
>
supportFragment
)
{
this
.
itemType
=
itemType
;
this
.
showTitle
=
showTitle
;
...
...
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