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
5e45c2a8
Commit
5e45c2a8
authored
Oct 15, 2020
by
Wyh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
10.15 1、BBpos打印印單、上菜紙、處方單 2、PRJ打印頁數優化 3、新訂單頁面
Signed-off-by: Wyh <1239658231>
parent
cc2bb8ac
Hide whitespace changes
Inline
Side-by-side
Showing
50 changed files
with
3409 additions
and
963 deletions
+3409
-963
base-module/build.gradle
+1
-1
base-module/src/main/java/com/gingersoft/gsa/cloud/base/application/GsaCloudApplication.java
+4
-2
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/BaseResult.java
+39
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/MemberInfo.java
+504
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/PayMethod.java
+328
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/other/TextUtil.java
+13
-1
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/time/TimePickerUtils.java
+39
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/time/TimeUtils.java
+62
-1
base-module/src/main/java/com/gingersoft/gsa/cloud/bean/RestaurantExpandInfo.java
+320
-1
base-module/src/main/java/com/gingersoft/gsa/cloud/constans/HttpsConstans.java
+18
-11
base-module/src/main/java/com/gingersoft/gsa/cloud/database/bean/ComboItem.java
+161
-3
base-module/src/main/java/com/gingersoft/gsa/cloud/database/bean/Discount.java
+7
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/database/bean/ExpandInfo.java
+12
-3
base-module/src/main/java/com/gingersoft/gsa/cloud/database/greendao/ColorBeanDao.java
+202
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/database/greendao/DaoMaster.java
+2
-2
base-module/src/main/java/com/gingersoft/gsa/cloud/database/greendao/ExpandInfoDao.java
+16
-2
base-module/src/main/java/com/gingersoft/gsa/cloud/function/FunctionStyleUtils.java
+242
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/ui/adapter/ListSelectAdapter.java
+113
-0
base-module/src/main/res/color/s_send_order_radio.xml
+8
-0
base-module/src/main/res/drawable/s_tran_twenty_blue.xml
+8
-0
base-module/src/main/res/drawable/selector_new_order_radio_bg.xml
+10
-0
base-module/src/main/res/layout/item_list_string_select.xml
+6
-0
base-module/src/main/res/layout/print_item_food.xml
+3
-2
base-module/src/main/res/values/colors.xml
+2
-0
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/contract/SendOrderContract.java
+8
-1
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/model/MemberAddressInfoBean.java
+121
-0
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/model/SendOrderModel.java
+13
-0
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/presenter/SendOrderPresenter.java
+156
-0
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/server/SendOrderServer.java
+15
-0
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/ui/activity/SendOrderActivity.java
+112
-30
delivery_pick_module/src/main/res/layout/item_send_order_radio.xml
+22
-0
delivery_pick_module/src/main/res/layout/other_order_activity_send_order.xml
+201
-70
delivery_pick_module/src/main/res/values/strings.xml
+2
-0
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/contract/ExpandListContract.java
+3
-0
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/model/ExpandListModel.java
+7
-1
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/model/service/ExpandListService.java
+9
-0
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/presenter/ExpandListPresenter.java
+27
-1
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/adapter/ExpandListAdapter.java
+24
-24
print-module/src/main/java/com/joe/print/mvp/print/PrintBill.java
+45
-1
print-module/src/main/java/com/joe/print/mvp/print/PrintOtherOrderClosing.java
+4
-22
print-module/src/main/java/com/joe/print/mvp/print/PrintPrjKitchen.java
+12
-12
print-module/src/main/java/com/joe/print/mvp/print/PrintServe.java
+9
-72
print-module/src/main/java/com/joe/print/mvp/print/PrintSlip.java
+8
-55
print-module/src/main/java/com/joe/print/mvp/print/PrintUtils.java
+132
-379
print-module/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
+142
-99
print-module/src/main/java/com/joe/print/mvp/print/service/PrjService.java
+39
-78
print-module/src/main/java/com/joe/print/mvp/print/utils/BBposPrint.java
+115
-0
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
+34
-24
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintTestActivity.java
+20
-56
table-module/src/main/java/com/gingersoft/gsa/cloud/bean/mvp/ui/activity/OrderContentActivity.java
+9
-9
No files found.
base-module/build.gradle
View file @
5e45c2a8
...
@@ -51,7 +51,7 @@ android {
...
@@ -51,7 +51,7 @@ android {
/**
/**
* 版本号
* 版本号
*/
*/
schemaVersion
1
6
schemaVersion
1
7
/**
/**
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
*/
*/
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/application/GsaCloudApplication.java
View file @
5e45c2a8
...
@@ -30,13 +30,13 @@ import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler;
...
@@ -30,13 +30,13 @@ import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler;
import
com.gingersoft.gsa.cloud.base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.base.utils.xlog.MyBackupStrategy
;
import
com.gingersoft.gsa.cloud.base.utils.xlog.MyBackupStrategy
;
import
com.gingersoft.gsa.cloud.bean.RestaurantExpandInfo
;
import
com.gingersoft.gsa.cloud.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.constans.UserConstans
;
import
com.gingersoft.gsa.cloud.constans.UserConstans
;
import
com.gingersoft.gsa.cloud.database.DaoManager
;
import
com.gingersoft.gsa.cloud.database.DaoManager
;
import
com.gingersoft.gsa.cloud.database.bean.ExpandInfo
;
import
com.gingersoft.gsa.cloud.database.bean.ExpandInfo
;
import
com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils
;
import
com.gingersoft.gsa.cloud.bean.RestaurantExpandInfo
;
import
com.hyweb.n5.lib.exception.NoInitPrinterException
;
import
com.hyweb.n5.lib.exception.NoInitPrinterException
;
import
com.hyweb.n5.lib.util.PrinterUtil
;
import
com.hyweb.n5.lib.util.PrinterUtil
;
import
com.jess.arms.base.BaseApplication
;
import
com.jess.arms.base.BaseApplication
;
...
@@ -105,7 +105,7 @@ public class GsaCloudApplication extends BaseApplication {
...
@@ -105,7 +105,7 @@ public class GsaCloudApplication extends BaseApplication {
@Override
@Override
public
void
onCreate
()
{
public
void
onCreate
()
{
super
.
onCreate
();
super
.
onCreate
();
this
.
mAppContext
=
this
;
mAppContext
=
this
;
CC
.
enableVerboseLog
(
true
);
CC
.
enableVerboseLog
(
true
);
CC
.
enableDebug
(
true
);
CC
.
enableDebug
(
true
);
CC
.
enableRemoteCC
(
true
);
CC
.
enableRemoteCC
(
true
);
...
@@ -227,6 +227,8 @@ public class GsaCloudApplication extends BaseApplication {
...
@@ -227,6 +227,8 @@ public class GsaCloudApplication extends BaseApplication {
RetrofitUrlManager
.
getInstance
().
putDomain
(
"ricepon_activities"
,
HttpsConstans
.
ricepon_activities
);
RetrofitUrlManager
.
getInstance
().
putDomain
(
"ricepon_activities"
,
HttpsConstans
.
ricepon_activities
);
///ricepon-cloud-gsa/api/請求地址
///ricepon-cloud-gsa/api/請求地址
RetrofitUrlManager
.
getInstance
().
putDomain
(
"ricepon_cloud_gsa"
,
HttpsConstans
.
ricepon_cloud_gsa
);
RetrofitUrlManager
.
getInstance
().
putDomain
(
"ricepon_cloud_gsa"
,
HttpsConstans
.
ricepon_cloud_gsa
);
//61177
RetrofitUrlManager
.
getInstance
().
putDomain
(
"ricepon_member"
,
HttpsConstans
.
RICEPON_MEMBER_61177
);
}
}
private
void
initPrint
()
{
private
void
initPrint
()
{
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/BaseResult.java
View file @
5e45c2a8
...
@@ -20,4 +20,43 @@ public class BaseResult {
...
@@ -20,4 +20,43 @@ public class BaseResult {
private
String
errMsg
;
private
String
errMsg
;
private
Object
data
;
private
Object
data
;
public
boolean
isSuccess
()
{
return
success
;
}
public
void
setSuccess
(
boolean
success
)
{
this
.
success
=
success
;
}
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
;
}
public
Object
getData
()
{
return
data
;
}
public
void
setData
(
Object
data
)
{
this
.
data
=
data
;
}
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/MemberInfo.java
View file @
5e45c2a8
...
@@ -344,4 +344,508 @@ public class MemberInfo implements Serializable {
...
@@ -344,4 +344,508 @@ public class MemberInfo implements Serializable {
private
int
year
;
private
int
year
;
}
}
public
long
getId
()
{
return
id
;
}
public
void
setId
(
long
id
)
{
this
.
id
=
id
;
}
public
String
getMemberNo
()
{
return
memberNo
;
}
public
void
setMemberNo
(
String
memberNo
)
{
this
.
memberNo
=
memberNo
;
}
public
int
getMemberDiscount
()
{
return
memberDiscount
;
}
public
void
setMemberDiscount
(
int
memberDiscount
)
{
this
.
memberDiscount
=
memberDiscount
;
}
public
void
setMemberPoint
(
float
memberPoint
)
{
MemberPoint
=
memberPoint
;
}
public
String
getMemberName
()
{
return
memberName
;
}
public
void
setMemberName
(
String
memberName
)
{
this
.
memberName
=
memberName
;
}
public
String
getLevelName3
()
{
return
levelName3
;
}
public
void
setLevelName3
(
String
levelName3
)
{
this
.
levelName3
=
levelName3
;
}
public
String
getLevelName2
()
{
return
levelName2
;
}
public
void
setLevelName2
(
String
levelName2
)
{
this
.
levelName2
=
levelName2
;
}
public
String
getLevelName1
()
{
return
levelName1
;
}
public
void
setLevelName1
(
String
levelName1
)
{
this
.
levelName1
=
levelName1
;
}
public
void
setLevelName
(
String
levelName
)
{
this
.
levelName
=
levelName
;
}
public
String
getPhone
()
{
return
phone
;
}
public
void
setPhone
(
String
phone
)
{
this
.
phone
=
phone
;
}
public
int
getBirthdaybonusratio
()
{
return
birthdaybonusratio
;
}
public
void
setBirthdaybonusratio
(
int
birthdaybonusratio
)
{
this
.
birthdaybonusratio
=
birthdaybonusratio
;
}
public
int
getCreditPoints
()
{
return
creditPoints
;
}
public
void
setCreditPoints
(
int
creditPoints
)
{
this
.
creditPoints
=
creditPoints
;
}
public
int
getBirthdayperiod
()
{
return
birthdayperiod
;
}
public
void
setBirthdayperiod
(
int
birthdayperiod
)
{
this
.
birthdayperiod
=
birthdayperiod
;
}
public
int
getExtendExpirePeriod
()
{
return
extendExpirePeriod
;
}
public
void
setExtendExpirePeriod
(
int
extendExpirePeriod
)
{
this
.
extendExpirePeriod
=
extendExpirePeriod
;
}
public
int
getBrCouponTypeId
()
{
return
brCouponTypeId
;
}
public
void
setBrCouponTypeId
(
int
brCouponTypeId
)
{
this
.
brCouponTypeId
=
brCouponTypeId
;
}
public
int
getLevelUpPeriod
()
{
return
levelUpPeriod
;
}
public
void
setLevelUpPeriod
(
int
levelUpPeriod
)
{
this
.
levelUpPeriod
=
levelUpPeriod
;
}
public
int
getGroupId
()
{
return
groupId
;
}
public
void
setGroupId
(
int
groupId
)
{
this
.
groupId
=
groupId
;
}
public
int
getSeq1
()
{
return
seq1
;
}
public
void
setSeq1
(
int
seq1
)
{
this
.
seq1
=
seq1
;
}
public
int
getNextDownLevel
()
{
return
nextDownLevel
;
}
public
void
setNextDownLevel
(
int
nextDownLevel
)
{
this
.
nextDownLevel
=
nextDownLevel
;
}
public
int
getDiscount
()
{
return
discount
;
}
public
void
setDiscount
(
int
discount
)
{
this
.
discount
=
discount
;
}
public
int
getLanguage
()
{
return
language
;
}
public
void
setLanguage
(
int
language
)
{
this
.
language
=
language
;
}
public
int
getPoints
()
{
return
points
;
}
public
void
setPoints
(
int
points
)
{
this
.
points
=
points
;
}
public
int
getNegativePoints
()
{
return
negativePoints
;
}
public
void
setNegativePoints
(
int
negativePoints
)
{
this
.
negativePoints
=
negativePoints
;
}
public
int
getCouponTypeId
()
{
return
couponTypeId
;
}
public
void
setCouponTypeId
(
int
couponTypeId
)
{
this
.
couponTypeId
=
couponTypeId
;
}
public
int
getIsdefault
()
{
return
isdefault
;
}
public
void
setIsdefault
(
int
isdefault
)
{
this
.
isdefault
=
isdefault
;
}
public
int
getPointsVariable
()
{
return
pointsVariable
;
}
public
void
setPointsVariable
(
int
pointsVariable
)
{
this
.
pointsVariable
=
pointsVariable
;
}
public
String
getBrandName
()
{
return
brandName
;
}
public
void
setBrandName
(
String
brandName
)
{
this
.
brandName
=
brandName
;
}
public
int
getLevel
()
{
return
level
;
}
public
void
setLevel
(
int
level
)
{
this
.
level
=
level
;
}
public
int
getNewCouponNum
()
{
return
newCouponNum
;
}
public
void
setNewCouponNum
(
int
newCouponNum
)
{
this
.
newCouponNum
=
newCouponNum
;
}
public
int
getIsVisible
()
{
return
isVisible
;
}
public
void
setIsVisible
(
int
isVisible
)
{
this
.
isVisible
=
isVisible
;
}
public
int
getIsDisplay
()
{
return
isDisplay
;
}
public
void
setIsDisplay
(
int
isDisplay
)
{
this
.
isDisplay
=
isDisplay
;
}
public
int
getVaildDays
()
{
return
vaildDays
;
}
public
void
setVaildDays
(
int
vaildDays
)
{
this
.
vaildDays
=
vaildDays
;
}
public
int
getBrandId
()
{
return
brandId
;
}
public
void
setBrandId
(
int
brandId
)
{
this
.
brandId
=
brandId
;
}
public
float
getPointRedeemCash
()
{
return
pointRedeemCash
;
}
public
void
setPointRedeemCash
(
float
pointRedeemCash
)
{
this
.
pointRedeemCash
=
pointRedeemCash
;
}
public
int
getAblediscount
()
{
return
ablediscount
;
}
public
void
setAblediscount
(
int
ablediscount
)
{
this
.
ablediscount
=
ablediscount
;
}
public
float
getExpireAfterDayClearPoints
()
{
return
expireAfterDayClearPoints
;
}
public
void
setExpireAfterDayClearPoints
(
float
expireAfterDayClearPoints
)
{
this
.
expireAfterDayClearPoints
=
expireAfterDayClearPoints
;
}
public
double
getExtendExpireAmount
()
{
return
extendExpireAmount
;
}
public
void
setExtendExpireAmount
(
double
extendExpireAmount
)
{
this
.
extendExpireAmount
=
extendExpireAmount
;
}
public
String
getFoodDesc3
()
{
return
foodDesc3
;
}
public
void
setFoodDesc3
(
String
foodDesc3
)
{
this
.
foodDesc3
=
foodDesc3
;
}
public
int
getScCharge
()
{
return
scCharge
;
}
public
void
setScCharge
(
int
scCharge
)
{
this
.
scCharge
=
scCharge
;
}
public
int
getExtendValidDays
()
{
return
extendValidDays
;
}
public
void
setExtendValidDays
(
int
extendValidDays
)
{
this
.
extendValidDays
=
extendValidDays
;
}
public
double
getLevelUpAmount
()
{
return
levelUpAmount
;
}
public
void
setLevelUpAmount
(
double
levelUpAmount
)
{
this
.
levelUpAmount
=
levelUpAmount
;
}
public
int
getOptTimes
()
{
return
optTimes
;
}
public
void
setOptTimes
(
int
optTimes
)
{
this
.
optTimes
=
optTimes
;
}
public
int
getUpdateTimes
()
{
return
updateTimes
;
}
public
void
setUpdateTimes
(
int
updateTimes
)
{
this
.
updateTimes
=
updateTimes
;
}
public
String
getFoodDesc1
()
{
return
foodDesc1
;
}
public
void
setFoodDesc1
(
String
foodDesc1
)
{
this
.
foodDesc1
=
foodDesc1
;
}
public
String
getFoodDesc2
()
{
return
foodDesc2
;
}
public
void
setFoodDesc2
(
String
foodDesc2
)
{
this
.
foodDesc2
=
foodDesc2
;
}
public
String
getSid
()
{
return
sid
;
}
public
void
setSid
(
String
sid
)
{
this
.
sid
=
sid
;
}
public
String
getPointenddate
()
{
return
pointenddate
;
}
public
void
setPointenddate
(
String
pointenddate
)
{
this
.
pointenddate
=
pointenddate
;
}
public
String
getUpdateBy
()
{
return
updateBy
;
}
public
void
setUpdateBy
(
String
updateBy
)
{
this
.
updateBy
=
updateBy
;
}
public
int
getBrPoints
()
{
return
brPoints
;
}
public
void
setBrPoints
(
int
brPoints
)
{
this
.
brPoints
=
brPoints
;
}
public
String
getOptTime
()
{
return
optTime
;
}
public
void
setOptTime
(
String
optTime
)
{
this
.
optTime
=
optTime
;
}
public
int
getCreateTimes
()
{
return
createTimes
;
}
public
void
setCreateTimes
(
int
createTimes
)
{
this
.
createTimes
=
createTimes
;
}
public
int
getBrCouponNum
()
{
return
brCouponNum
;
}
public
void
setBrCouponNum
(
int
brCouponNum
)
{
this
.
brCouponNum
=
brCouponNum
;
}
public
int
getPointRule
()
{
return
pointRule
;
}
public
void
setPointRule
(
int
pointRule
)
{
this
.
pointRule
=
pointRule
;
}
public
int
getFoodPrice
()
{
return
foodPrice
;
}
public
void
setFoodPrice
(
int
foodPrice
)
{
this
.
foodPrice
=
foodPrice
;
}
public
String
getCreateBy
()
{
return
createBy
;
}
public
void
setCreateBy
(
String
createBy
)
{
this
.
createBy
=
createBy
;
}
public
int
getPointoveryear
()
{
return
pointoveryear
;
}
public
void
setPointoveryear
(
int
pointoveryear
)
{
this
.
pointoveryear
=
pointoveryear
;
}
public
String
getLevelDesc
()
{
return
levelDesc
;
}
public
void
setLevelDesc
(
String
levelDesc
)
{
this
.
levelDesc
=
levelDesc
;
}
public
int
getPointUnit
()
{
return
pointUnit
;
}
public
void
setPointUnit
(
int
pointUnit
)
{
this
.
pointUnit
=
pointUnit
;
}
public
int
getNextUpLevel
()
{
return
nextUpLevel
;
}
public
void
setNextUpLevel
(
int
nextUpLevel
)
{
this
.
nextUpLevel
=
nextUpLevel
;
}
public
int
getRestaurantId
()
{
return
restaurantId
;
}
public
void
setRestaurantId
(
int
restaurantId
)
{
this
.
restaurantId
=
restaurantId
;
}
public
CreateTimeBean
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
CreateTimeBean
createTime
)
{
this
.
createTime
=
createTime
;
}
public
UpdateTimeBean
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
UpdateTimeBean
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
MemberExpireDateBean
getMemberExpireDate
()
{
return
memberExpireDate
;
}
public
void
setMemberExpireDate
(
MemberExpireDateBean
memberExpireDate
)
{
this
.
memberExpireDate
=
memberExpireDate
;
}
public
VaildTimeBean
getVaildTime
()
{
return
vaildTime
;
}
public
void
setVaildTime
(
VaildTimeBean
vaildTime
)
{
this
.
vaildTime
=
vaildTime
;
}
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/PayMethod.java
View file @
5e45c2a8
...
@@ -234,4 +234,332 @@ public class PayMethod {
...
@@ -234,4 +234,332 @@ public class PayMethod {
this
.
nameSecond
=
name
;
this
.
nameSecond
=
name
;
this
.
nameThird
=
name
;
this
.
nameThird
=
name
;
}
}
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
int
getBrandId
()
{
return
brandId
;
}
public
void
setBrandId
(
int
brandId
)
{
this
.
brandId
=
brandId
;
}
public
int
getRestaurantId
()
{
return
restaurantId
;
}
public
void
setRestaurantId
(
int
restaurantId
)
{
this
.
restaurantId
=
restaurantId
;
}
public
String
getNameFirst
()
{
return
nameFirst
;
}
public
void
setNameFirst
(
String
nameFirst
)
{
this
.
nameFirst
=
nameFirst
;
}
public
String
getNameSecond
()
{
return
nameSecond
;
}
public
void
setNameSecond
(
String
nameSecond
)
{
this
.
nameSecond
=
nameSecond
;
}
public
String
getNameThird
()
{
return
nameThird
;
}
public
void
setNameThird
(
String
nameThird
)
{
this
.
nameThird
=
nameThird
;
}
public
int
getWhetherSales
()
{
return
whetherSales
;
}
public
void
setWhetherSales
(
int
whetherSales
)
{
this
.
whetherSales
=
whetherSales
;
}
public
int
getWhetherManagerAuthority
()
{
return
whetherManagerAuthority
;
}
public
void
setWhetherManagerAuthority
(
int
whetherManagerAuthority
)
{
this
.
whetherManagerAuthority
=
whetherManagerAuthority
;
}
public
String
getColor
()
{
return
color
;
}
public
void
setColor
(
String
color
)
{
this
.
color
=
color
;
}
public
String
getFont_color
()
{
return
font_color
;
}
public
void
setFont_color
(
String
font_color
)
{
this
.
font_color
=
font_color
;
}
public
int
getWhetherReportCount
()
{
return
whetherReportCount
;
}
public
void
setWhetherReportCount
(
int
whetherReportCount
)
{
this
.
whetherReportCount
=
whetherReportCount
;
}
public
int
getInteractiveType
()
{
return
interactiveType
;
}
public
void
setInteractiveType
(
int
interactiveType
)
{
this
.
interactiveType
=
interactiveType
;
}
public
int
getWhetherFixedAmount
()
{
return
whetherFixedAmount
;
}
public
void
setWhetherFixedAmount
(
int
whetherFixedAmount
)
{
this
.
whetherFixedAmount
=
whetherFixedAmount
;
}
public
double
getAmountValue
()
{
return
amountValue
;
}
public
void
setAmountValue
(
double
amountValue
)
{
this
.
amountValue
=
amountValue
;
}
public
int
getPayType
()
{
return
payType
;
}
public
void
setPayType
(
int
payType
)
{
this
.
payType
=
payType
;
}
public
double
getMinPayAmount
()
{
return
minPayAmount
;
}
public
void
setMinPayAmount
(
double
minPayAmount
)
{
this
.
minPayAmount
=
minPayAmount
;
}
public
int
getWhetherFreeService
()
{
return
whetherFreeService
;
}
public
void
setWhetherFreeService
(
int
whetherFreeService
)
{
this
.
whetherFreeService
=
whetherFreeService
;
}
public
int
getWhetherTaxExemption
()
{
return
whetherTaxExemption
;
}
public
void
setWhetherTaxExemption
(
int
whetherTaxExemption
)
{
this
.
whetherTaxExemption
=
whetherTaxExemption
;
}
public
int
getWhetherSignatureLine
()
{
return
whetherSignatureLine
;
}
public
void
setWhetherSignatureLine
(
int
whetherSignatureLine
)
{
this
.
whetherSignatureLine
=
whetherSignatureLine
;
}
public
int
getPaySeq
()
{
return
paySeq
;
}
public
void
setPaySeq
(
int
paySeq
)
{
this
.
paySeq
=
paySeq
;
}
public
int
getWhetherOpenBox
()
{
return
whetherOpenBox
;
}
public
void
setWhetherOpenBox
(
int
whetherOpenBox
)
{
this
.
whetherOpenBox
=
whetherOpenBox
;
}
public
int
getGetIntegral
()
{
return
getIntegral
;
}
public
void
setGetIntegral
(
int
getIntegral
)
{
this
.
getIntegral
=
getIntegral
;
}
public
int
getIntegralMultiple
()
{
return
integralMultiple
;
}
public
void
setIntegralMultiple
(
int
integralMultiple
)
{
this
.
integralMultiple
=
integralMultiple
;
}
public
float
getDeductionIntegral
()
{
return
deductionIntegral
;
}
public
void
setDeductionIntegral
(
float
deductionIntegral
)
{
this
.
deductionIntegral
=
deductionIntegral
;
}
public
int
getDockingType
()
{
return
dockingType
;
}
public
void
setDockingType
(
int
dockingType
)
{
this
.
dockingType
=
dockingType
;
}
public
String
getBillType
()
{
return
billType
;
}
public
void
setBillType
(
String
billType
)
{
this
.
billType
=
billType
;
}
public
int
getTablePrintingAmount
()
{
return
tablePrintingAmount
;
}
public
void
setTablePrintingAmount
(
int
tablePrintingAmount
)
{
this
.
tablePrintingAmount
=
tablePrintingAmount
;
}
public
int
getTakeOutPrintingAmount
()
{
return
takeOutPrintingAmount
;
}
public
void
setTakeOutPrintingAmount
(
int
takeOutPrintingAmount
)
{
this
.
takeOutPrintingAmount
=
takeOutPrintingAmount
;
}
public
long
getUpdateTime
()
{
return
updateTime
;
}
public
void
setUpdateTime
(
long
updateTime
)
{
this
.
updateTime
=
updateTime
;
}
public
long
getCreateTimeX
()
{
return
createTimeX
;
}
public
void
setCreateTimeX
(
long
createTimeX
)
{
this
.
createTimeX
=
createTimeX
;
}
public
int
getUpdateUid
()
{
return
updateUid
;
}
public
void
setUpdateUid
(
int
updateUid
)
{
this
.
updateUid
=
updateUid
;
}
public
int
getCreateUid
()
{
return
createUid
;
}
public
void
setCreateUid
(
int
createUid
)
{
this
.
createUid
=
createUid
;
}
public
double
getPayMoney
()
{
return
payMoney
;
}
public
void
setPayMoney
(
double
payMoney
)
{
this
.
payMoney
=
payMoney
;
}
public
double
getTipsPrice
()
{
return
TipsPrice
;
}
public
void
setTipsPrice
(
double
tipsPrice
)
{
TipsPrice
=
tipsPrice
;
}
public
int
getPayModeTextColor
()
{
return
payModeTextColor
;
}
public
void
setPayModeTextColor
(
int
payModeTextColor
)
{
this
.
payModeTextColor
=
payModeTextColor
;
}
public
int
getPayMoneyTextColor
()
{
return
payMoneyTextColor
;
}
public
void
setPayMoneyTextColor
(
int
payMoneyTextColor
)
{
this
.
payMoneyTextColor
=
payMoneyTextColor
;
}
public
int
getPayModeTextSelectColor
()
{
return
payModeTextSelectColor
;
}
public
void
setPayModeTextSelectColor
(
int
payModeTextSelectColor
)
{
this
.
payModeTextSelectColor
=
payModeTextSelectColor
;
}
public
int
getPayMoneyTextSelectColor
()
{
return
payMoneyTextSelectColor
;
}
public
void
setPayMoneyTextSelectColor
(
int
payMoneyTextSelectColor
)
{
this
.
payMoneyTextSelectColor
=
payMoneyTextSelectColor
;
}
public
int
getPayModeSize
()
{
return
payModeSize
;
}
public
void
setPayModeSize
(
int
payModeSize
)
{
this
.
payModeSize
=
payModeSize
;
}
public
int
getPayMoneySize
()
{
return
payMoneySize
;
}
public
void
setPayMoneySize
(
int
payMoneySize
)
{
this
.
payMoneySize
=
payMoneySize
;
}
public
static
int
getPayTypeCash
()
{
return
PAY_TYPE_CASH
;
}
public
static
int
getPayTypeIntegral
()
{
return
PAY_TYPE_INTEGRAL
;
}
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/other/TextUtil.java
View file @
5e45c2a8
package
com
.
gingersoft
.
gsa
.
cloud
.
base
.
utils
.
other
;
package
com
.
gingersoft
.
gsa
.
cloud
.
base
.
utils
.
other
;
import
android.widget.EditText
;
import
java.util.regex.Matcher
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
java.util.regex.Pattern
;
...
@@ -23,6 +25,15 @@ public class TextUtil {
...
@@ -23,6 +25,15 @@ public class TextUtil {
!
str
.
equals
(
"null"
)
&&
!
str
.
equals
(
"undefined"
);
!
str
.
equals
(
"null"
)
&&
!
str
.
equals
(
"undefined"
);
}
}
public
static
boolean
isNotEmptyOrNullOrUndefined
(
EditText
editText
)
{
if
(
editText
!=
null
&&
editText
.
getText
()
!=
null
)
{
String
str
=
editText
.
getText
().
toString
();
return
str
.
length
()
!=
0
&&
!
str
.
equals
(
"null"
)
&&
!
str
.
equals
(
"undefined"
);
}
else
{
return
false
;
}
}
public
static
String
isEmptyReturnString
(
String
str
)
{
public
static
String
isEmptyReturnString
(
String
str
)
{
if
(
str
==
null
||
str
.
length
()
==
0
||
if
(
str
==
null
||
str
.
length
()
==
0
||
str
.
equals
(
"null"
)
||
str
.
equals
(
"undefined"
))
{
str
.
equals
(
"null"
)
||
str
.
equals
(
"undefined"
))
{
...
@@ -53,8 +64,9 @@ public class TextUtil {
...
@@ -53,8 +64,9 @@ public class TextUtil {
c
[
i
]
=
(
char
)
32
;
c
[
i
]
=
(
char
)
32
;
continue
;
continue
;
}
}
if
(
c
[
i
]
>
65280
&&
c
[
i
]
<
65375
)
if
(
c
[
i
]
>
65280
&&
c
[
i
]
<
65375
)
{
c
[
i
]
=
(
char
)
(
c
[
i
]
-
65248
);
c
[
i
]
=
(
char
)
(
c
[
i
]
-
65248
);
}
}
}
return
new
String
(
c
);
return
new
String
(
c
);
}
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/time/TimePickerUtils.java
View file @
5e45c2a8
...
@@ -94,4 +94,43 @@ public class TimePickerUtils {
...
@@ -94,4 +94,43 @@ public class TimePickerUtils {
}
}
/**
* 顯示報表頁面時間選擇樣式
* @param mContext
* @param defaultTime 默認選中時間
* @param onTimeSelectListener 選中時間回調
*/
public
static
TimePickerView
showTimePicker
(
Context
mContext
,
Calendar
defaultTime
,
TimePickerView
.
OnTimeSelectListener
onTimeSelectListener
)
{
//獲取今年第一天的日期
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
set
(
Calendar
.
HOUR
,
cal
.
getActualMaximum
(
Calendar
.
HOUR_OF_DAY
));
//打開時間選擇器
TimePickerView
pvTime
=
new
TimePickerView
.
Builder
(
mContext
,
onTimeSelectListener
)
.
setType
(
TimePickerView
.
Type
.
HOURS_MINS
)
//默认全部显示
.
setCancelText
(
"取消"
)
//取消按钮文字
.
setSubmitText
(
"確認"
)
//确认按钮文字
.
setContentSize
(
20
)
//滚轮文字大小
.
setTitleSize
(
20
)
//标题文字大小
// .setTitleText("请选择时间")//标题文字
.
setOutSideCancelable
(
true
)
//点击屏幕,点在控件外部范围时,是否取消显示
.
isCyclic
(
false
)
//是否循环滚动
.
setTextColorCenter
(
Color
.
BLACK
)
//设置选中项的颜色
.
setTitleColor
(
Color
.
BLACK
)
//标题文字颜色
.
setSubmitColor
(
Color
.
BLUE
)
//确定按钮文字颜色
.
setCancelColor
(
Color
.
BLUE
)
//取消按钮文字颜色
// .setTitleBgColor(0xFF666666)//标题背景颜色 Night mode
// .setBgColor(0xFF333333)//滚轮背景颜色 Night mode
// .setRange(Calendar.getInstance().get(Calendar.YEAR), Calendar.getInstance().get(Calendar.YEAR))
// .setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
.
setRangDate
(
Calendar
.
getInstance
(),
cal
)
//時間是今年第一天到今天
.
setLabel
(
""
,
""
,
""
,
""
,
""
,
""
)
.
isCenterLabel
(
false
)
//是否只显示中间选中项的label文字,false则每项item全部都带有label。
// .isDialog(true)//是否显示为对话框样式
.
build
();
//設置默認選中時間
// pvTime.setDate(defaultTime);//注:根据需求来决定是否使用该方法(一般是精确到秒的情况),此项可以在弹出选择器的时候重新设置当前时间,避免在初始化之后由于时间已经设定,导致选中时间与当前时间不匹配的问题。
pvTime
.
show
();
return
pvTime
;
}
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/time/TimeUtils.java
View file @
5e45c2a8
...
@@ -22,6 +22,67 @@ import timber.log.Timber;
...
@@ -22,6 +22,67 @@ import timber.log.Timber;
* @Description: TODO(时间工具类)
* @Description: TODO(时间工具类)
*/
*/
public
class
TimeUtils
{
public
class
TimeUtils
{
/**
* SimpleDateFormat.format把date转成String
* SimpleDateFormat.parse把String转成date。
*
* SimpleDateFormat.parse的时候,经常会有ParseException原因是输入的字符串格式跟SimpleDateFormat定义的格式不一致。
* 这时候,可以先通过SimpleDateFormat.format把参数转成符合格式的字符串,然后再调用SimpleDateFormat.parse
*
* G 年代标志符
* y 年
* M 月
* d 日
* h 时 在上午或下午 (1~12)
* H 时 在一天中 (0~23)
* m 分
* s 秒
* S 毫秒
* E 星期
* D 一年中的第几天
* F 一月中第几个星期几
* w 一年中第几个星期
* W 一月中第几个星期
* a 上午 / 下午 标记符
* k 时 在一天中 (1~24)
* K 时 在上午或下午 (0~11)
* z 时区
* <p>
* yyyy : 代表年(不去区分大小写) 假设年份为 2017
* <p>
* "y" , "yyy" , "yyyy" 匹配的都是4位完整的年 如 : "2017"
* "yy" 匹配的是年分的后两位 如 : "15"
* 超过4位,会在年份前面加"0"补位 如 "YYYYY"对应"02017"
* <p>
* MM : 代表月(只能使用大写) 假设月份为 9
* "M" 对应 "9"
* "MM" 对应 "09"
* "MMM" 对应 "Sep"
* "MMMM" 对应 "Sep"
* 超出3位,仍然对应 "September"
* <p>
* dd : 代表日(只能使用小写) 假设为13号
* "d" , "dd" 都对应 "13"
* 超出2位,会在数字前面加"0"补位. 例如 "dddd" 对应 "0013"
* <p>
* hh : 代表时(区分大小写,大写为24进制计时,小写为12进制计时) 假设为15时
* "H" , "HH" 都对应 "15" , 超出2位,会在数字前面加"0"补位. 例如 "HHHH" 对应 "0015"
* "h" 对应 "3"
* "hh" 对应 "03" , 超出2位,会在数字前面加"0"补位. 例如 "hhhh" 对应 "0003"
* <p>
* mm : 代表分(只能使用小写) 假设为32分
* "m" , "mm" 都对应 "32" , 超出2位,会在数字前面加"0"补位. 例如 "mmmm" 对应 "0032"
* <p>
* ss : 代表秒(只能使用小写) 假设为15秒
* "s" , "ss" 都对应 "15" , 超出2位,会在数字前面加"0"补位. 例如 "ssss" 对应 "0015"
* <p>
* E : 代表星期(只能使用大写) 假设为 Sunday
* "E" , "EE" , "EEE" 都对应 "Sun"
* "EEEE" 对应 "Sunday" , 超出4位 , 仍然对应 "Sunday"
* <p>
* a : 代表上午还是下午,如果是上午就对应 "AM" , 如果是下午就对应 "PM"
*/
public
static
final
SimpleDateFormat
ENGLISH_DATE_FORMAT
=
new
SimpleDateFormat
(
"MMM d, yyyy K:m:s a"
,
Locale
.
ENGLISH
);
public
static
final
SimpleDateFormat
DEFAULT_DATE_FORMAT
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
//, Locale.CHINESE
public
static
final
SimpleDateFormat
DEFAULT_DATE_FORMAT
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
//, Locale.CHINESE
public
static
final
SimpleDateFormat
DEFAULT_DATE_FORMAT_YMDHM
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
);
//, Locale.CHINESE
public
static
final
SimpleDateFormat
DEFAULT_DATE_FORMAT_YMDHM
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
);
//, Locale.CHINESE
...
@@ -1446,7 +1507,7 @@ public class TimeUtils {
...
@@ -1446,7 +1507,7 @@ public class TimeUtils {
return
time
;
return
time
;
}
}
public
static
String
parseDateToString
(
Date
date
,
SimpleDateFormat
dateFormat
){
public
static
String
parseDateToString
(
Date
date
,
SimpleDateFormat
dateFormat
)
{
return
dateFormat
.
format
(
date
);
return
dateFormat
.
format
(
date
);
}
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/bean/RestaurantExpandInfo.java
View file @
5e45c2a8
...
@@ -49,6 +49,182 @@ public class RestaurantExpandInfo {
...
@@ -49,6 +49,182 @@ public class RestaurantExpandInfo {
//估清控制食品字體大小
//估清控制食品字體大小
private
int
soldoutCtrlFoodFontSize
=
16
;
private
int
soldoutCtrlFoodFontSize
=
16
;
public
int
getFoodGroupRow
()
{
return
foodGroupRow
;
}
public
void
setFoodGroupRow
(
int
foodGroupRow
)
{
this
.
foodGroupRow
=
foodGroupRow
;
}
public
int
getFoodGroupColumn
()
{
return
foodGroupColumn
;
}
public
void
setFoodGroupColumn
(
int
foodGroupColumn
)
{
this
.
foodGroupColumn
=
foodGroupColumn
;
}
public
int
getFoodColumn
()
{
return
foodColumn
;
}
public
void
setFoodColumn
(
int
foodColumn
)
{
this
.
foodColumn
=
foodColumn
;
}
public
int
getComboColumn
()
{
return
comboColumn
;
}
public
void
setComboColumn
(
int
comboColumn
)
{
this
.
comboColumn
=
comboColumn
;
}
public
int
getModColumn
()
{
return
modColumn
;
}
public
void
setModColumn
(
int
modColumn
)
{
this
.
modColumn
=
modColumn
;
}
public
int
getDiscountColumn
()
{
return
discountColumn
;
}
public
void
setDiscountColumn
(
int
discountColumn
)
{
this
.
discountColumn
=
discountColumn
;
}
public
int
getFoodGroupBtnHeight
()
{
return
foodGroupBtnHeight
;
}
public
void
setFoodGroupBtnHeight
(
int
foodGroupBtnHeight
)
{
this
.
foodGroupBtnHeight
=
foodGroupBtnHeight
;
}
public
int
getFoodBtnHeight
()
{
return
foodBtnHeight
;
}
public
void
setFoodBtnHeight
(
int
foodBtnHeight
)
{
this
.
foodBtnHeight
=
foodBtnHeight
;
}
public
int
getModBtnHeight
()
{
return
modBtnHeight
;
}
public
void
setModBtnHeight
(
int
modBtnHeight
)
{
this
.
modBtnHeight
=
modBtnHeight
;
}
public
int
getComboHeight
()
{
return
comboHeight
;
}
public
void
setComboHeight
(
int
comboHeight
)
{
this
.
comboHeight
=
comboHeight
;
}
public
int
getDiscountHeight
()
{
return
discountHeight
;
}
public
void
setDiscountHeight
(
int
discountHeight
)
{
this
.
discountHeight
=
discountHeight
;
}
public
int
getLayoutQtyHeight
()
{
return
LayoutQtyHeight
;
}
public
void
setLayoutQtyHeight
(
int
layoutQtyHeight
)
{
LayoutQtyHeight
=
layoutQtyHeight
;
}
public
int
getFoodGroupFontSize
()
{
return
foodGroupFontSize
;
}
public
void
setFoodGroupFontSize
(
int
foodGroupFontSize
)
{
this
.
foodGroupFontSize
=
foodGroupFontSize
;
}
public
int
getFoodFontSize
()
{
return
foodFontSize
;
}
public
void
setFoodFontSize
(
int
foodFontSize
)
{
this
.
foodFontSize
=
foodFontSize
;
}
public
int
getComboFontSize
()
{
return
comboFontSize
;
}
public
void
setComboFontSize
(
int
comboFontSize
)
{
this
.
comboFontSize
=
comboFontSize
;
}
public
int
getModFontSize
()
{
return
modFontSize
;
}
public
void
setModFontSize
(
int
modFontSize
)
{
this
.
modFontSize
=
modFontSize
;
}
public
int
getDiscountFontSize
()
{
return
discountFontSize
;
}
public
void
setDiscountFontSize
(
int
discountFontSize
)
{
this
.
discountFontSize
=
discountFontSize
;
}
public
int
getOrderNumberShowSize
()
{
return
OrderNumberShowSize
;
}
public
void
setOrderNumberShowSize
(
int
orderNumberShowSize
)
{
OrderNumberShowSize
=
orderNumberShowSize
;
}
public
int
getOrderNumberFontSize
()
{
return
OrderNumberFontSize
;
}
public
void
setOrderNumberFontSize
(
int
orderNumberFontSize
)
{
OrderNumberFontSize
=
orderNumberFontSize
;
}
public
int
getOrderNumberChildShowSize
()
{
return
OrderNumberChildShowSize
;
}
public
void
setOrderNumberChildShowSize
(
int
orderNumberChildShowSize
)
{
OrderNumberChildShowSize
=
orderNumberChildShowSize
;
}
public
int
getOrderNumberChildFontSize
()
{
return
OrderNumberChildFontSize
;
}
public
void
setOrderNumberChildFontSize
(
int
orderNumberChildFontSize
)
{
OrderNumberChildFontSize
=
orderNumberChildFontSize
;
}
public
int
getSoldoutCtrlFoodFontSize
()
{
return
soldoutCtrlFoodFontSize
;
}
public
void
setSoldoutCtrlFoodFontSize
(
int
soldoutCtrlFoodFontSize
)
{
this
.
soldoutCtrlFoodFontSize
=
soldoutCtrlFoodFontSize
;
}
}
}
...
@@ -76,6 +252,149 @@ public class RestaurantExpandInfo {
...
@@ -76,6 +252,149 @@ public class RestaurantExpandInfo {
private
int
AutoPrinterPaper
;
//送單自動打印上菜紙
private
int
AutoPrinterPaper
;
//送單自動打印上菜紙
private
int
ToPrintQRCode
;
//結賬是否打印積分二維碼
private
int
ToPrintQRCode
;
//結賬是否打印積分二維碼
private
int
AutoQuitTime
=
600
;
//餐檯模式下單頁多少秒不操作返回餐檯頁面
private
int
AutoQuitTime
=
600
;
//餐檯模式下單頁多少秒不操作返回餐檯頁面
}
public
int
getRounding
()
{
return
Rounding
;
}
public
void
setRounding
(
int
rounding
)
{
Rounding
=
rounding
;
}
public
int
getRoundingDecimal
()
{
return
RoundingDecimal
;
}
public
void
setRoundingDecimal
(
int
roundingDecimal
)
{
RoundingDecimal
=
roundingDecimal
;
}
public
int
getItemDecimals
()
{
return
ItemDecimals
;
}
public
void
setItemDecimals
(
int
itemDecimals
)
{
ItemDecimals
=
itemDecimals
;
}
public
int
getDeliveryPrintCount
()
{
return
DeliveryPrintCount
;
}
public
void
setDeliveryPrintCount
(
int
deliveryPrintCount
)
{
DeliveryPrintCount
=
deliveryPrintCount
;
}
public
int
getDeliveryClosingPC
()
{
return
DeliveryClosingPC
;
}
public
void
setDeliveryClosingPC
(
int
deliveryClosingPC
)
{
DeliveryClosingPC
=
deliveryClosingPC
;
}
public
int
getTableModePrintCount
()
{
return
TableModePrintCount
;
}
public
void
setTableModePrintCount
(
int
tableModePrintCount
)
{
TableModePrintCount
=
tableModePrintCount
;
}
public
int
getTableModeClosingPC
()
{
return
TableModeClosingPC
;
}
public
void
setTableModeClosingPC
(
int
tableModeClosingPC
)
{
TableModeClosingPC
=
tableModeClosingPC
;
}
public
int
getOrderReceivingTimeout
()
{
return
OrderReceivingTimeout
;
}
public
void
setOrderReceivingTimeout
(
int
orderReceivingTimeout
)
{
OrderReceivingTimeout
=
orderReceivingTimeout
;
}
public
int
getPrintMemberInfo
()
{
return
PrintMemberInfo
;
}
public
void
setPrintMemberInfo
(
int
printMemberInfo
)
{
PrintMemberInfo
=
printMemberInfo
;
}
public
int
getPrintPage
()
{
return
PrintPage
;
}
public
void
setPrintPage
(
int
printPage
)
{
PrintPage
=
printPage
;
}
public
int
getPrintMergerFood
()
{
return
PrintMergerFood
;
}
public
void
setPrintMergerFood
(
int
printMergerFood
)
{
PrintMergerFood
=
printMergerFood
;
}
public
int
getPrintStatisticsAmount
()
{
return
PrintStatisticsAmount
;
}
public
void
setPrintStatisticsAmount
(
int
printStatisticsAmount
)
{
PrintStatisticsAmount
=
printStatisticsAmount
;
}
public
int
getPrintFirstOrder
()
{
return
PrintFirstOrder
;
}
public
void
setPrintFirstOrder
(
int
printFirstOrder
)
{
PrintFirstOrder
=
printFirstOrder
;
}
public
int
getFrozenChainAutoOrder
()
{
return
FrozenChainAutoOrder
;
}
public
void
setFrozenChainAutoOrder
(
int
frozenChainAutoOrder
)
{
FrozenChainAutoOrder
=
frozenChainAutoOrder
;
}
public
int
getMergeSendFood
()
{
return
MergeSendFood
;
}
public
void
setMergeSendFood
(
int
mergeSendFood
)
{
MergeSendFood
=
mergeSendFood
;
}
public
int
getAutoPrinterPaper
()
{
return
AutoPrinterPaper
;
}
public
void
setAutoPrinterPaper
(
int
autoPrinterPaper
)
{
AutoPrinterPaper
=
autoPrinterPaper
;
}
public
int
getToPrintQRCode
()
{
return
ToPrintQRCode
;
}
public
void
setToPrintQRCode
(
int
toPrintQRCode
)
{
ToPrintQRCode
=
toPrintQRCode
;
}
public
int
getAutoQuitTime
()
{
return
AutoQuitTime
;
}
public
void
setAutoQuitTime
(
int
autoQuitTime
)
{
AutoQuitTime
=
autoQuitTime
;
}
}
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/constans/HttpsConstans.java
View file @
5e45c2a8
...
@@ -73,6 +73,7 @@ public class HttpsConstans {
...
@@ -73,6 +73,7 @@ public class HttpsConstans {
//---------------------------------------System請求地址----------------------------------------------------------------------------------
//---------------------------------------System請求地址----------------------------------------------------------------------------------
public
static
String
SYSTEM_PATH
=
"/ricepon-system/api/"
;
public
static
String
SYSTEM_PATH
=
"/ricepon-system/api/"
;
public
static
String
API_RICEPON_MEMBER
=
"/ricepon-member/api/"
;
//--------------------------------------配置-----------------------------------------------------------------------------------
//--------------------------------------配置-----------------------------------------------------------------------------------
...
@@ -86,7 +87,6 @@ public class HttpsConstans {
...
@@ -86,7 +87,6 @@ public class HttpsConstans {
*/
*/
public
static
int
isFormal
=
0
;
public
static
int
isFormal
=
0
;
//沽清控制地址
//沽清控制地址
public
static
String
_SERVER_ADDRESS
;
// = (isFormal ? HTTP_ADDRESS_URL_FORMAL : "http://a.ricepon.com:61177") + "/member-web/api/";
public
static
String
_SERVER_ADDRESS
;
// = (isFormal ? HTTP_ADDRESS_URL_FORMAL : "http://a.ricepon.com:61177") + "/member-web/api/";
...
@@ -109,6 +109,10 @@ public class HttpsConstans {
...
@@ -109,6 +109,10 @@ public class HttpsConstans {
public
static
String
SYSTEM_URL
;
public
static
String
SYSTEM_URL
;
public
static
String
RICEPON_MEMBER_SERVER_ADDRESS
;
public
static
String
RICEPON_MEMBER_61177
;
public
static
void
init
(
Context
context
)
{
public
static
void
init
(
Context
context
)
{
isFormal
=
(
int
)
SPUtils
.
get
(
context
,
"isFormal"
,
-
1
);
isFormal
=
(
int
)
SPUtils
.
get
(
context
,
"isFormal"
,
-
1
);
if
(
isFormal
==
-
1
&&
BuildConfig
.
DEBUG
)
{
if
(
isFormal
==
-
1
&&
BuildConfig
.
DEBUG
)
{
...
@@ -119,17 +123,20 @@ public class HttpsConstans {
...
@@ -119,17 +123,20 @@ public class HttpsConstans {
}
}
switch
(
isFormal
)
{
switch
(
isFormal
)
{
default
:
default
:
_SERVER_ADDRESS
=
HTTP_ADDRESS_URL_FORMAL
+
"/member-web/api/"
;
RICEPON_MEMBER_61177
=
HTTP_ADDRESS_URL_FORMAL
+
API_RICEPON_MEMBER
;
_SERVER_ADDRESS
=
HTTP_ADDRESS_URL_FORMAL
+
WECHAR_REPORT_PATH
;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL
=
HTTP_ADDRESS_URL_FORMAL
;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL
=
HTTP_ADDRESS_URL_FORMAL
;
ROOT_SERVER_ADDRESS_FORMAL
=
HTTP_ADDRESS_URL_FORMAL
+
CLOUD_GSA_API_PATH
;
ROOT_SERVER_ADDRESS_FORMAL
=
HTTP_ADDRESS_URL_FORMAL
+
CLOUD_GSA_API_PATH
;
ROOT_URL
=
ROOT_FORMAL_URL
;
ROOT_URL
=
ROOT_FORMAL_URL
;
REPORT_SERVER_ADDRESS
=
REPORT_FORMAL_ADDRESS
+
REPORT_PATH
;
REPORT_SERVER_ADDRESS
=
REPORT_FORMAL_ADDRESS
+
REPORT_PATH
;
WECHAR_REPORT_SERVER_ADDRESS
=
WECHAR_REPORT_FORMAL_ADDRESS
+
WECHAR_REPORT_PATH
;
//正式:WECHAR_REPORT_FORMAL_ADDRESS 測試:WECHAR_REPORT_TEST_ADDRESS
WECHAR_REPORT_SERVER_ADDRESS
=
WECHAR_REPORT_FORMAL_ADDRESS
+
WECHAR_REPORT_PATH
;
//正式:WECHAR_REPORT_FORMAL_ADDRESS 測試:WECHAR_REPORT_TEST_ADDRESS
RICEPON_MEMBER_SERVER_ADDRESS
=
WECHAR_REPORT_FORMAL_ADDRESS
+
WECHAR_REPORT_PATH
;
SYSTEM_URL
=
HTTP_ADDRESS_URL_FORMAL
+
SYSTEM_PATH
;
SYSTEM_URL
=
HTTP_ADDRESS_URL_FORMAL
+
SYSTEM_PATH
;
ROOT_SERVER
=
HTTP_ADDRESS_URL_FORMAL
;
ROOT_SERVER
=
HTTP_ADDRESS_URL_FORMAL
;
break
;
break
;
case
1
:
case
1
:
_SERVER_ADDRESS
=
"http://a.ricepon.com:61177"
+
"/member-web/api/"
;
RICEPON_MEMBER_61177
=
WECHAR_REPORT_TEST_ADDRESS
+
API_RICEPON_MEMBER
;
_SERVER_ADDRESS
=
WECHAR_REPORT_TEST_ADDRESS
+
WECHAR_REPORT_PATH
;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL
=
REPORT_TEST_ADDRESS
;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL
=
REPORT_TEST_ADDRESS
;
ROOT_SERVER_ADDRESS_FORMAL
=
HTTP_ADDRESS_URL_HK
+
CLOUD_GSA_API_PATH
;
ROOT_SERVER_ADDRESS_FORMAL
=
HTTP_ADDRESS_URL_HK
+
CLOUD_GSA_API_PATH
;
ROOT_URL
=
ROOT_HK_TEST_URL
;
ROOT_URL
=
ROOT_HK_TEST_URL
;
...
@@ -139,7 +146,8 @@ public class HttpsConstans {
...
@@ -139,7 +146,8 @@ public class HttpsConstans {
ROOT_SERVER
=
HTTP_ADDRESS_URL_HK
;
ROOT_SERVER
=
HTTP_ADDRESS_URL_HK
;
break
;
break
;
case
2
:
case
2
:
_SERVER_ADDRESS
=
ROOT_SERVER_ZHI_WANG_HK
+
"/member-web/api/"
;
RICEPON_MEMBER_61177
=
WECHAR_REPORT_TEST_ADDRESS
+
API_RICEPON_MEMBER
;
_SERVER_ADDRESS
=
ROOT_SERVER_ZHI_WANG_HK
+
WECHAR_REPORT_PATH
;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL
=
REPORT_TEST_ADDRESS
;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL
=
REPORT_TEST_ADDRESS
;
ROOT_SERVER_ADDRESS_FORMAL
=
ROOT_SERVER_ZHI_WANG_HK
;
ROOT_SERVER_ADDRESS_FORMAL
=
ROOT_SERVER_ZHI_WANG_HK
;
ROOT_URL
=
ROOT_SZ_URL
;
ROOT_URL
=
ROOT_SZ_URL
;
...
@@ -148,7 +156,8 @@ public class HttpsConstans {
...
@@ -148,7 +156,8 @@ public class HttpsConstans {
SYSTEM_URL
=
ROOT_SERVER_ZHI_WANG_HK
+
SYSTEM_PATH
;
SYSTEM_URL
=
ROOT_SERVER_ZHI_WANG_HK
+
SYSTEM_PATH
;
break
;
break
;
case
3
:
case
3
:
_SERVER_ADDRESS
=
ROOT_SERVER_YOU_CHANG_HK
+
"/member-web/api/"
;
RICEPON_MEMBER_61177
=
WECHAR_REPORT_TEST_ADDRESS
+
API_RICEPON_MEMBER
;
_SERVER_ADDRESS
=
ROOT_SERVER_YOU_CHANG_HK
+
WECHAR_REPORT_PATH
;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL
=
REPORT_TEST_ADDRESS
;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL
=
REPORT_TEST_ADDRESS
;
ROOT_SERVER_ADDRESS_FORMAL
=
ROOT_SERVER_YOU_CHANG_HK
;
ROOT_SERVER_ADDRESS_FORMAL
=
ROOT_SERVER_YOU_CHANG_HK
;
ROOT_URL
=
ROOT_SZ_URL
;
ROOT_URL
=
ROOT_SZ_URL
;
...
@@ -157,7 +166,8 @@ public class HttpsConstans {
...
@@ -157,7 +166,8 @@ public class HttpsConstans {
SYSTEM_URL
=
ROOT_SERVER_YOU_CHANG_HK
+
SYSTEM_PATH
;
SYSTEM_URL
=
ROOT_SERVER_YOU_CHANG_HK
+
SYSTEM_PATH
;
break
;
break
;
case
4
:
case
4
:
_SERVER_ADDRESS
=
ROOT_SERVER_SHI_SHU_HK
+
"/member-web/api/"
;
RICEPON_MEMBER_61177
=
WECHAR_REPORT_TEST_ADDRESS
+
API_RICEPON_MEMBER
;
_SERVER_ADDRESS
=
ROOT_SERVER_SHI_SHU_HK
+
WECHAR_REPORT_PATH
;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL
=
REPORT_TEST_ADDRESS
;
ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL
=
REPORT_TEST_ADDRESS
;
ROOT_SERVER_ADDRESS_FORMAL
=
ROOT_SERVER_SHI_SHU_HK
;
ROOT_SERVER_ADDRESS_FORMAL
=
ROOT_SERVER_SHI_SHU_HK
;
ROOT_URL
=
ROOT_SZ_URL
;
ROOT_URL
=
ROOT_SZ_URL
;
...
@@ -173,8 +183,9 @@ public class HttpsConstans {
...
@@ -173,8 +183,9 @@ public class HttpsConstans {
ricepon_gsa
=
HttpsConstans
.
ROOT_URL
+
HttpsConstans
.
URK_RICEPON_GSA
;
ricepon_gsa
=
HttpsConstans
.
ROOT_URL
+
HttpsConstans
.
URK_RICEPON_GSA
;
ricepon_activities
=
HttpsConstans
.
ROOT_URL
+
HttpsConstans
.
URK_RICEPON_ACTIVITIES
;
ricepon_activities
=
HttpsConstans
.
ROOT_URL
+
HttpsConstans
.
URK_RICEPON_ACTIVITIES
;
ricepon_cloud_gsa
=
HttpsConstans
.
ROOT_URL
+
HttpsConstans
.
CLOUD_GSA_API_PATH
;
ricepon_cloud_gsa
=
HttpsConstans
.
ROOT_URL
+
HttpsConstans
.
CLOUD_GSA_API_PATH
;
ricepon_member
=
HttpsConstans
.
ROOT_URL
+
"/ricepon-member/api/"
;
ricepon_member
=
HttpsConstans
.
ROOT_URL
+
API_RICEPON_MEMBER
;
}
}
public
static
String
ricepon_wechat
;
public
static
String
ricepon_wechat
;
public
static
String
ricepon_order
;
public
static
String
ricepon_order
;
public
static
String
member_web_ricepon_gsa
;
public
static
String
member_web_ricepon_gsa
;
...
@@ -185,7 +196,4 @@ public class HttpsConstans {
...
@@ -185,7 +196,4 @@ public class HttpsConstans {
public
static
String
ricepon_member
;
public
static
String
ricepon_member
;
}
}
\ No newline at end of file
base-module/src/main/java/com/gingersoft/gsa/cloud/database/bean/ComboItem.java
View file @
5e45c2a8
...
@@ -4,14 +4,13 @@ import android.graphics.Color;
...
@@ -4,14 +4,13 @@ import android.graphics.Color;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
org.greenrobot.greendao.annotation.Entity
;
import
org.greenrobot.greendao.annotation.Entity
;
import
org.greenrobot.greendao.annotation.Generated
;
import
org.greenrobot.greendao.annotation.Id
;
import
org.greenrobot.greendao.annotation.Id
;
import
org.greenrobot.greendao.annotation.Property
;
import
org.greenrobot.greendao.annotation.Property
;
import
org.greenrobot.greendao.annotation.Transient
;
import
java.util.Date
;
import
java.util.Date
;
import
org.greenrobot.greendao.annotation.Generated
;
import
org.greenrobot.greendao.annotation.Transient
;
import
lombok.Data
;
import
lombok.Data
;
/**
/**
...
@@ -414,4 +413,163 @@ public class ComboItem {
...
@@ -414,4 +413,163 @@ public class ComboItem {
this
.
printSeting
=
printSeting
;
this
.
printSeting
=
printSeting
;
}
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getName1
()
{
return
name1
;
}
public
void
setName1
(
String
name1
)
{
this
.
name1
=
name1
;
}
public
String
getName2
()
{
return
name2
;
}
public
void
setName2
(
String
name2
)
{
this
.
name2
=
name2
;
}
public
long
getParentId
()
{
return
parentId
;
}
public
void
setParentId
(
long
parentId
)
{
this
.
parentId
=
parentId
;
}
public
int
getSelectQty
()
{
return
selectQty
;
}
public
void
setSelectQty
(
int
selectQty
)
{
this
.
selectQty
=
selectQty
;
}
public
String
getDefmodifier
()
{
return
defmodifier
;
}
public
void
setDefmodifier
(
String
defmodifier
)
{
this
.
defmodifier
=
defmodifier
;
}
public
double
getPrice
()
{
return
price
;
}
public
void
setPrice
(
double
price
)
{
this
.
price
=
price
;
}
public
long
getAblediscount
()
{
return
ablediscount
;
}
public
void
setAblediscount
(
long
ablediscount
)
{
this
.
ablediscount
=
ablediscount
;
}
public
int
getServiceCharge
()
{
return
serviceCharge
;
}
public
void
setServiceCharge
(
int
serviceCharge
)
{
this
.
serviceCharge
=
serviceCharge
;
}
public
int
getAutoMode
()
{
return
autoMode
;
}
public
void
setAutoMode
(
int
autoMode
)
{
this
.
autoMode
=
autoMode
;
}
public
boolean
isModifier
()
{
return
isModifier
;
}
public
void
setModifier
(
boolean
modifier
)
{
isModifier
=
modifier
;
}
public
long
getInvisible
()
{
return
invisible
;
}
public
void
setInvisible
(
long
invisible
)
{
this
.
invisible
=
invisible
;
}
public
String
getMaxNumber
()
{
return
maxNumber
;
}
public
void
setMaxNumber
(
String
maxNumber
)
{
this
.
maxNumber
=
maxNumber
;
}
public
String
getCurrentMaxNumber
()
{
return
currentMaxNumber
;
}
public
void
setCurrentMaxNumber
(
String
currentMaxNumber
)
{
this
.
currentMaxNumber
=
currentMaxNumber
;
}
public
int
getBgColor
()
{
return
bgColor
;
}
public
void
setBgColor
(
int
bgColor
)
{
this
.
bgColor
=
bgColor
;
}
public
int
getFontColor
()
{
return
fontColor
;
}
public
void
setFontColor
(
int
fontColor
)
{
this
.
fontColor
=
fontColor
;
}
public
Modifier
getModifier
()
{
return
modifier
;
}
public
void
setModifier
(
Modifier
modifier
)
{
this
.
modifier
=
modifier
;
}
public
double
getPointsAdd
()
{
return
pointsAdd
;
}
public
void
setPointsAdd
(
double
pointsAdd
)
{
this
.
pointsAdd
=
pointsAdd
;
}
public
long
getPointsRatio
()
{
return
pointsRatio
;
}
public
void
setPointsRatio
(
long
pointsRatio
)
{
this
.
pointsRatio
=
pointsRatio
;
}
public
double
getPointsRedeem
()
{
return
pointsRedeem
;
}
public
void
setPointsRedeem
(
double
pointsRedeem
)
{
this
.
pointsRedeem
=
pointsRedeem
;
}
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/database/bean/Discount.java
View file @
5e45c2a8
...
@@ -85,6 +85,13 @@ public class Discount {
...
@@ -85,6 +85,13 @@ public class Discount {
public
Discount
()
{
public
Discount
()
{
}
}
public
long
getMemberId
()
{
return
memberId
;
}
public
void
setMemberId
(
long
memberId
)
{
this
.
memberId
=
memberId
;
}
/**
/**
* 計算折扣金額
* 計算折扣金額
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/database/bean/ExpandInfo.java
View file @
5e45c2a8
...
@@ -50,16 +50,16 @@ public class ExpandInfo {
...
@@ -50,16 +50,16 @@ public class ExpandInfo {
//是否被編輯了
//是否被編輯了
@Transient
@Transient
private
boolean
isUpdate
=
false
;
private
boolean
isUpdate
=
false
;
private
String
showName
;
public
static
final
int
data_type_int
=
1
;
public
static
final
int
data_type_int
=
1
;
public
static
final
int
data_type_string
=
2
;
public
static
final
int
data_type_string
=
2
;
public
static
final
int
data_type_boolean
=
3
;
public
static
final
int
data_type_boolean
=
3
;
public
static
final
int
data_type_date
=
4
;
public
static
final
int
data_type_date
=
4
;
@Generated
(
hash
=
372331474
)
@Generated
(
hash
=
1155994232
)
public
ExpandInfo
(
Long
id
,
int
restaurantId
,
String
settingName
,
public
ExpandInfo
(
Long
id
,
int
restaurantId
,
String
settingName
,
Integer
valueInt
,
String
valueChar
,
String
valueDatetime
,
String
remark
,
Integer
valueInt
,
String
valueChar
,
String
valueDatetime
,
String
remark
,
int
dataType
)
{
int
dataType
,
String
showName
)
{
this
.
id
=
id
;
this
.
id
=
id
;
this
.
restaurantId
=
restaurantId
;
this
.
restaurantId
=
restaurantId
;
this
.
settingName
=
settingName
;
this
.
settingName
=
settingName
;
...
@@ -68,6 +68,7 @@ public class ExpandInfo {
...
@@ -68,6 +68,7 @@ public class ExpandInfo {
this
.
valueDatetime
=
valueDatetime
;
this
.
valueDatetime
=
valueDatetime
;
this
.
remark
=
remark
;
this
.
remark
=
remark
;
this
.
dataType
=
dataType
;
this
.
dataType
=
dataType
;
this
.
showName
=
showName
;
}
}
@Generated
(
hash
=
9429432
)
@Generated
(
hash
=
9429432
)
public
ExpandInfo
()
{
public
ExpandInfo
()
{
...
@@ -128,4 +129,12 @@ public class ExpandInfo {
...
@@ -128,4 +129,12 @@ public class ExpandInfo {
public
void
setUpdate
(
boolean
update
)
{
public
void
setUpdate
(
boolean
update
)
{
isUpdate
=
update
;
isUpdate
=
update
;
}
}
public
String
getShowName
()
{
return
showName
;
}
public
void
setShowName
(
String
showName
)
{
this
.
showName
=
showName
;
}
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/database/greendao/ColorBeanDao.java
0 → 100644
View file @
5e45c2a8
package
com
.
gingersoft
.
gsa
.
cloud
.
database
.
greendao
;
import
android.database.Cursor
;
import
android.database.sqlite.SQLiteStatement
;
import
com.gingersoft.gsa.cloud.database.bean.ColorBean
;
import
org.greenrobot.greendao.AbstractDao
;
import
org.greenrobot.greendao.Property
;
import
org.greenrobot.greendao.database.Database
;
import
org.greenrobot.greendao.database.DatabaseStatement
;
import
org.greenrobot.greendao.internal.DaoConfig
;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* DAO for table "COLOR_BEAN".
*/
public
class
ColorBeanDao
extends
AbstractDao
<
ColorBean
,
Void
>
{
public
static
final
String
TABLENAME
=
"COLOR_BEAN"
;
/**
* Properties of entity ColorBean.<br/>
* Can be used for QueryBuilder and for referencing column names.
*/
public
static
class
Properties
{
public
final
static
Property
ColorId
=
new
Property
(
0
,
int
.
class
,
"colorId"
,
false
,
"COLOR_ID"
);
public
final
static
Property
ColorStart
=
new
Property
(
1
,
String
.
class
,
"colorStart"
,
false
,
"COLOR_START"
);
public
final
static
Property
ColorStop
=
new
Property
(
2
,
String
.
class
,
"colorStop"
,
false
,
"COLOR_STOP"
);
public
final
static
Property
FontColor
=
new
Property
(
3
,
String
.
class
,
"fontColor"
,
false
,
"FONT_COLOR"
);
public
final
static
Property
AndroidColor
=
new
Property
(
4
,
String
.
class
,
"androidColor"
,
false
,
"ANDROID_COLOR"
);
public
final
static
Property
AndroidFontColor
=
new
Property
(
5
,
String
.
class
,
"androidFontColor"
,
false
,
"ANDROID_FONT_COLOR"
);
public
final
static
Property
CreateTime
=
new
Property
(
6
,
String
.
class
,
"createTime"
,
false
,
"CREATE_TIME"
);
public
final
static
Property
EditTime
=
new
Property
(
7
,
String
.
class
,
"editTime"
,
false
,
"EDIT_TIME"
);
}
public
ColorBeanDao
(
DaoConfig
config
)
{
super
(
config
);
}
public
ColorBeanDao
(
DaoConfig
config
,
DaoSession
daoSession
)
{
super
(
config
,
daoSession
);
}
/** Creates the underlying database table. */
public
static
void
createTable
(
Database
db
,
boolean
ifNotExists
)
{
String
constraint
=
ifNotExists
?
"IF NOT EXISTS "
:
""
;
db
.
execSQL
(
"CREATE TABLE "
+
constraint
+
"\"COLOR_BEAN\" ("
+
//
"\"COLOR_ID\" INTEGER NOT NULL ,"
+
// 0: colorId
"\"COLOR_START\" TEXT,"
+
// 1: colorStart
"\"COLOR_STOP\" TEXT,"
+
// 2: colorStop
"\"FONT_COLOR\" TEXT,"
+
// 3: fontColor
"\"ANDROID_COLOR\" TEXT,"
+
// 4: androidColor
"\"ANDROID_FONT_COLOR\" TEXT,"
+
// 5: androidFontColor
"\"CREATE_TIME\" TEXT,"
+
// 6: createTime
"\"EDIT_TIME\" TEXT);"
);
// 7: editTime
}
/** Drops the underlying database table. */
public
static
void
dropTable
(
Database
db
,
boolean
ifExists
)
{
String
sql
=
"DROP TABLE "
+
(
ifExists
?
"IF EXISTS "
:
""
)
+
"\"COLOR_BEAN\""
;
db
.
execSQL
(
sql
);
}
@Override
protected
final
void
bindValues
(
DatabaseStatement
stmt
,
ColorBean
entity
)
{
stmt
.
clearBindings
();
stmt
.
bindLong
(
1
,
entity
.
getColorId
());
String
colorStart
=
entity
.
getColorStart
();
if
(
colorStart
!=
null
)
{
stmt
.
bindString
(
2
,
colorStart
);
}
String
colorStop
=
entity
.
getColorStop
();
if
(
colorStop
!=
null
)
{
stmt
.
bindString
(
3
,
colorStop
);
}
String
fontColor
=
entity
.
getFontColor
();
if
(
fontColor
!=
null
)
{
stmt
.
bindString
(
4
,
fontColor
);
}
String
androidColor
=
entity
.
getAndroidColor
();
if
(
androidColor
!=
null
)
{
stmt
.
bindString
(
5
,
androidColor
);
}
String
androidFontColor
=
entity
.
getAndroidFontColor
();
if
(
androidFontColor
!=
null
)
{
stmt
.
bindString
(
6
,
androidFontColor
);
}
String
createTime
=
entity
.
getCreateTime
();
if
(
createTime
!=
null
)
{
stmt
.
bindString
(
7
,
createTime
);
}
String
editTime
=
entity
.
getEditTime
();
if
(
editTime
!=
null
)
{
stmt
.
bindString
(
8
,
editTime
);
}
}
@Override
protected
final
void
bindValues
(
SQLiteStatement
stmt
,
ColorBean
entity
)
{
stmt
.
clearBindings
();
stmt
.
bindLong
(
1
,
entity
.
getColorId
());
String
colorStart
=
entity
.
getColorStart
();
if
(
colorStart
!=
null
)
{
stmt
.
bindString
(
2
,
colorStart
);
}
String
colorStop
=
entity
.
getColorStop
();
if
(
colorStop
!=
null
)
{
stmt
.
bindString
(
3
,
colorStop
);
}
String
fontColor
=
entity
.
getFontColor
();
if
(
fontColor
!=
null
)
{
stmt
.
bindString
(
4
,
fontColor
);
}
String
androidColor
=
entity
.
getAndroidColor
();
if
(
androidColor
!=
null
)
{
stmt
.
bindString
(
5
,
androidColor
);
}
String
androidFontColor
=
entity
.
getAndroidFontColor
();
if
(
androidFontColor
!=
null
)
{
stmt
.
bindString
(
6
,
androidFontColor
);
}
String
createTime
=
entity
.
getCreateTime
();
if
(
createTime
!=
null
)
{
stmt
.
bindString
(
7
,
createTime
);
}
String
editTime
=
entity
.
getEditTime
();
if
(
editTime
!=
null
)
{
stmt
.
bindString
(
8
,
editTime
);
}
}
@Override
public
Void
readKey
(
Cursor
cursor
,
int
offset
)
{
return
null
;
}
@Override
public
ColorBean
readEntity
(
Cursor
cursor
,
int
offset
)
{
ColorBean
entity
=
new
ColorBean
(
//
cursor
.
getInt
(
offset
+
0
),
// colorId
cursor
.
isNull
(
offset
+
1
)
?
null
:
cursor
.
getString
(
offset
+
1
),
// colorStart
cursor
.
isNull
(
offset
+
2
)
?
null
:
cursor
.
getString
(
offset
+
2
),
// colorStop
cursor
.
isNull
(
offset
+
3
)
?
null
:
cursor
.
getString
(
offset
+
3
),
// fontColor
cursor
.
isNull
(
offset
+
4
)
?
null
:
cursor
.
getString
(
offset
+
4
),
// androidColor
cursor
.
isNull
(
offset
+
5
)
?
null
:
cursor
.
getString
(
offset
+
5
),
// androidFontColor
cursor
.
isNull
(
offset
+
6
)
?
null
:
cursor
.
getString
(
offset
+
6
),
// createTime
cursor
.
isNull
(
offset
+
7
)
?
null
:
cursor
.
getString
(
offset
+
7
)
// editTime
);
return
entity
;
}
@Override
public
void
readEntity
(
Cursor
cursor
,
ColorBean
entity
,
int
offset
)
{
entity
.
setColorId
(
cursor
.
getInt
(
offset
+
0
));
entity
.
setColorStart
(
cursor
.
isNull
(
offset
+
1
)
?
null
:
cursor
.
getString
(
offset
+
1
));
entity
.
setColorStop
(
cursor
.
isNull
(
offset
+
2
)
?
null
:
cursor
.
getString
(
offset
+
2
));
entity
.
setFontColor
(
cursor
.
isNull
(
offset
+
3
)
?
null
:
cursor
.
getString
(
offset
+
3
));
entity
.
setAndroidColor
(
cursor
.
isNull
(
offset
+
4
)
?
null
:
cursor
.
getString
(
offset
+
4
));
entity
.
setAndroidFontColor
(
cursor
.
isNull
(
offset
+
5
)
?
null
:
cursor
.
getString
(
offset
+
5
));
entity
.
setCreateTime
(
cursor
.
isNull
(
offset
+
6
)
?
null
:
cursor
.
getString
(
offset
+
6
));
entity
.
setEditTime
(
cursor
.
isNull
(
offset
+
7
)
?
null
:
cursor
.
getString
(
offset
+
7
));
}
@Override
protected
final
Void
updateKeyAfterInsert
(
ColorBean
entity
,
long
rowId
)
{
// Unsupported or missing PK type
return
null
;
}
@Override
public
Void
getKey
(
ColorBean
entity
)
{
return
null
;
}
@Override
public
boolean
hasKey
(
ColorBean
entity
)
{
// TODO
return
false
;
}
@Override
protected
final
boolean
isEntityUpdateable
()
{
return
true
;
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/database/greendao/DaoMaster.java
View file @
5e45c2a8
...
@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
...
@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
/**
* Master of DAO (schema version 1
6
): knows all DAOs.
* Master of DAO (schema version 1
7
): knows all DAOs.
*/
*/
public
class
DaoMaster
extends
AbstractDaoMaster
{
public
class
DaoMaster
extends
AbstractDaoMaster
{
public
static
final
int
SCHEMA_VERSION
=
1
6
;
public
static
final
int
SCHEMA_VERSION
=
1
7
;
/** Creates underlying database table using DAOs. */
/** Creates underlying database table using DAOs. */
public
static
void
createAllTables
(
Database
db
,
boolean
ifNotExists
)
{
public
static
void
createAllTables
(
Database
db
,
boolean
ifNotExists
)
{
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/database/greendao/ExpandInfoDao.java
View file @
5e45c2a8
...
@@ -32,6 +32,7 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
...
@@ -32,6 +32,7 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
public
final
static
Property
ValueDatetime
=
new
Property
(
5
,
String
.
class
,
"valueDatetime"
,
false
,
"VALUE_DATETIME"
);
public
final
static
Property
ValueDatetime
=
new
Property
(
5
,
String
.
class
,
"valueDatetime"
,
false
,
"VALUE_DATETIME"
);
public
final
static
Property
Remark
=
new
Property
(
6
,
String
.
class
,
"remark"
,
false
,
"REMARK"
);
public
final
static
Property
Remark
=
new
Property
(
6
,
String
.
class
,
"remark"
,
false
,
"REMARK"
);
public
final
static
Property
DataType
=
new
Property
(
7
,
int
.
class
,
"dataType"
,
false
,
"DATA_TYPE"
);
public
final
static
Property
DataType
=
new
Property
(
7
,
int
.
class
,
"dataType"
,
false
,
"DATA_TYPE"
);
public
final
static
Property
ShowName
=
new
Property
(
8
,
String
.
class
,
"showName"
,
false
,
"SHOW_NAME"
);
}
}
...
@@ -54,7 +55,8 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
...
@@ -54,7 +55,8 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
"\"VALUE_CHAR\" TEXT,"
+
// 4: valueChar
"\"VALUE_CHAR\" TEXT,"
+
// 4: valueChar
"\"VALUE_DATETIME\" TEXT,"
+
// 5: valueDatetime
"\"VALUE_DATETIME\" TEXT,"
+
// 5: valueDatetime
"\"REMARK\" TEXT,"
+
// 6: remark
"\"REMARK\" TEXT,"
+
// 6: remark
"\"DATA_TYPE\" INTEGER NOT NULL );"
);
// 7: dataType
"\"DATA_TYPE\" INTEGER NOT NULL ,"
+
// 7: dataType
"\"SHOW_NAME\" TEXT);"
);
// 8: showName
}
}
/** Drops the underlying database table. */
/** Drops the underlying database table. */
...
@@ -98,6 +100,11 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
...
@@ -98,6 +100,11 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
stmt
.
bindString
(
7
,
remark
);
stmt
.
bindString
(
7
,
remark
);
}
}
stmt
.
bindLong
(
8
,
entity
.
getDataType
());
stmt
.
bindLong
(
8
,
entity
.
getDataType
());
String
showName
=
entity
.
getShowName
();
if
(
showName
!=
null
)
{
stmt
.
bindString
(
9
,
showName
);
}
}
}
@Override
@Override
...
@@ -135,6 +142,11 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
...
@@ -135,6 +142,11 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
stmt
.
bindString
(
7
,
remark
);
stmt
.
bindString
(
7
,
remark
);
}
}
stmt
.
bindLong
(
8
,
entity
.
getDataType
());
stmt
.
bindLong
(
8
,
entity
.
getDataType
());
String
showName
=
entity
.
getShowName
();
if
(
showName
!=
null
)
{
stmt
.
bindString
(
9
,
showName
);
}
}
}
@Override
@Override
...
@@ -152,7 +164,8 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
...
@@ -152,7 +164,8 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
cursor
.
isNull
(
offset
+
4
)
?
null
:
cursor
.
getString
(
offset
+
4
),
// valueChar
cursor
.
isNull
(
offset
+
4
)
?
null
:
cursor
.
getString
(
offset
+
4
),
// valueChar
cursor
.
isNull
(
offset
+
5
)
?
null
:
cursor
.
getString
(
offset
+
5
),
// valueDatetime
cursor
.
isNull
(
offset
+
5
)
?
null
:
cursor
.
getString
(
offset
+
5
),
// valueDatetime
cursor
.
isNull
(
offset
+
6
)
?
null
:
cursor
.
getString
(
offset
+
6
),
// remark
cursor
.
isNull
(
offset
+
6
)
?
null
:
cursor
.
getString
(
offset
+
6
),
// remark
cursor
.
getInt
(
offset
+
7
)
// dataType
cursor
.
getInt
(
offset
+
7
),
// dataType
cursor
.
isNull
(
offset
+
8
)
?
null
:
cursor
.
getString
(
offset
+
8
)
// showName
);
);
return
entity
;
return
entity
;
}
}
...
@@ -167,6 +180,7 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
...
@@ -167,6 +180,7 @@ public class ExpandInfoDao extends AbstractDao<ExpandInfo, Long> {
entity
.
setValueDatetime
(
cursor
.
isNull
(
offset
+
5
)
?
null
:
cursor
.
getString
(
offset
+
5
));
entity
.
setValueDatetime
(
cursor
.
isNull
(
offset
+
5
)
?
null
:
cursor
.
getString
(
offset
+
5
));
entity
.
setRemark
(
cursor
.
isNull
(
offset
+
6
)
?
null
:
cursor
.
getString
(
offset
+
6
));
entity
.
setRemark
(
cursor
.
isNull
(
offset
+
6
)
?
null
:
cursor
.
getString
(
offset
+
6
));
entity
.
setDataType
(
cursor
.
getInt
(
offset
+
7
));
entity
.
setDataType
(
cursor
.
getInt
(
offset
+
7
));
entity
.
setShowName
(
cursor
.
isNull
(
offset
+
8
)
?
null
:
cursor
.
getString
(
offset
+
8
));
}
}
@Override
@Override
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/function/FunctionStyleUtils.java
0 → 100644
View file @
5e45c2a8
package
com
.
gingersoft
.
gsa
.
cloud
.
function
;
import
android.content.Context
;
import
android.util.DisplayMetrics
;
import
android.util.Log
;
import
com.jess.arms.utils.DeviceUtils
;
import
java.util.HashSet
;
import
java.util.Set
;
import
lombok.Data
;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2018/8/11
* 修订历史:2018/8/11
* 描述:
*/
@Data
public
class
FunctionStyleUtils
{
private
int
ID
;
private
String
TableNumPadChar
;
private
String
PLUNumPadChar
;
private
int
FoodTypeFontSize
=
12
;
private
int
FoodFontSize
=
12
;
private
String
TableExt
=
""
;
private
int
BaseDpi
=
480
;
private
int
BaseHeight
=
1920
;
private
int
BaseWidth
=
1080
;
private
int
ModFontSize
=
14
;
private
int
BillListFontSize
=
12
;
private
int
BillTotalFontSize
=
12
;
private
int
FoodlListFontSize
=
18
;
private
int
LayoutBillListHeight
=
40
;
private
int
LayoutQtyHeight
=
40
;
private
int
LayoutQuitHeight
=
40
;
private
int
LayoutFoodTypeHeight
=
100
;
private
int
FoodBtnHeight
=
120
;
private
int
ModBtnHeight
=
75
;
private
int
FoodTypeCol
=
4
;
private
int
FoodTypeRow
=
1
;
private
int
FoodCol
=
4
;
private
int
ModCol
=
5
;
private
int
DiscountCol
=
5
;
private
int
TableDirection
;
private
int
RefreshTime
=
1
;
private
String
ShowTableType
=
"1,2,3,5"
;
private
int
servicecharge_tablemode
;
private
int
servicecharge_tablemode_setting
;
private
int
servicecharge_takeoutmode
;
private
int
servicecharge_deliverymode
;
private
int
servicecharge_pickupmode
;
private
int
tableType
=
1
;
private
boolean
ServiceChargeIncludeItemDiscount
;
private
boolean
BillDiscountIncludeServiceCharge
;
private
boolean
Edit_Send
;
private
int
ItemDecimals
;
private
int
RoundingDecimal
=
1
;
private
int
Rounding
;
private
int
SystemLanguage
=
2
;
private
int
OpenTableVipFrontColor
=
1
;
private
int
OpenTableVipBackColor
=
2
;
private
int
nowLanguageIndex
=
1
;
private
String
orderlanguage
=
"1,2,3"
;
private
boolean
MemberLoginCover
=
true
;
private
String
LanageName
=
"中文,粵語,英文"
;
private
int
DataLanguage
=
2
;
private
int
AutoQuitTime
=
600
;
private
int
ModFunctionBarHeight
=
60
;
private
int
BottomBarHeight
=
160
;
private
int
ReportFontSize
=
15
;
private
String
ShopId
=
""
;
private
boolean
OrderFunction_Discount
;
private
boolean
OrderFunction_Transfer
;
private
boolean
OrderFunction_Print
;
private
boolean
MainFunction_Report
;
private
int
printerServerReadTime
=
10
;
private
boolean
OrderFunction_VoidSentItem
=
false
;
private
boolean
OrderFunction_ItemDiscount
=
false
;
private
boolean
OrderFunction_ItemFoodMerge
=
false
;
private
boolean
OrderFunction_FoodTableMode
=
true
;
private
boolean
OrderFunction_FoodTemporay
=
true
;
private
boolean
Order_InputPax
=
true
;
private
boolean
Order_GetTables
=
true
;
private
int
OrderOperButtonHeight
=
40
;
private
int
orderInfoHeight
=
40
;
private
int
orderInfoFontSize
=
16
;
private
int
OrderDataOperBtnWidth
=
50
;
private
int
OrderDataOperBtnHeight
=
50
;
private
boolean
BillTextScroll
=
true
;
private
int
TableFunctionTopHeight
=
100
;
private
int
TableFunctionBottomHeight
=
100
;
private
int
TableFunctionFontSize
=
20
;
private
int
TableFunctionTopFontSize
=
20
;
private
int
TableFunctionBottomFontSize
=
20
;
private
String
Memberinfo
=
"MEM_MemberNo,MEM_Phone,MEM_NAME,MEM_Points"
;
private
String
MemberHttp
=
"http://m.ricepon.com:9090/member-web"
;
private
boolean
EnableErrorLog
=
true
;
private
boolean
TableFunction_SplitTable
=
true
;
private
boolean
TableFunction_FoodList
=
true
;
private
boolean
TableFunction_OfflineOrder
=
true
;
private
boolean
MainFunction_TableMode
=
true
;
private
boolean
TableFunction_ScanBarcode
=
true
;
private
boolean
OrderFunction_send
=
true
;
private
boolean
TableFunction_PayBill
=
true
;
private
boolean
OrderFunction_PrePay
=
true
;
private
int
AutoOpen
=
0
;
private
int
OrderNumberShowSize
=
20
;
private
int
OrderNumberFontSize
=
7
;
private
int
OrderNumberChildShowSize
=
20
;
private
int
OrderNumberChildFontSize
=
10
;
/**
* 送單是否自動合併未送食品(只處理未有細項的食品)
*/
private
boolean
MergeSendFood
=
true
;
/**
* 送單是否自動打印上菜纸
*/
private
boolean
AutoPrinterParper
=
true
;
private
Set
<
String
>
customizeSetting
=
new
HashSet
<>();
private
int
screen_w
=
1080
;
private
int
screen_h
=
1920
;
private
int
screen_density_dpi
;
public
void
adjustSize
(
Context
context
,
FunctionStyleUtils
setting
)
{
DisplayMetrics
metrics
=
DeviceUtils
.
getDisplayMetrics
(
context
);
screen_w
=
metrics
.
widthPixels
;
screen_h
=
metrics
.
heightPixels
;
screen_density_dpi
=
metrics
.
densityDpi
;
if
(!
setting
.
customizeSetting
.
contains
(
"TableFunctionBottomHeight"
))
{
//计算高度/
setting
.
TableFunctionBottomHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
TableFunctionBottomHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"TableFunctionTopHeight"
))
{
//计算高度/
setting
.
TableFunctionTopHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
TableFunctionTopHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"OrderOperButtonHeight"
))
{
//计算高度/
setting
.
OrderOperButtonHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
OrderOperButtonHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"LayoutBillListHeight"
))
{
//计算高度/
setting
.
LayoutBillListHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
LayoutBillListHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"LayoutQtyHeight"
))
{
//计算高度/
setting
.
LayoutQtyHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
LayoutQtyHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"LayoutQuitHeight"
))
{
//计算高度/
setting
.
LayoutQuitHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
LayoutQuitHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"LayoutFoodTypeHeight"
))
{
//计算高度/
setting
.
LayoutFoodTypeHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
LayoutFoodTypeHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"FoodBtnHeight"
))
{
//计算高度/
Log
.
e
(
"初始FoodBtnHeight"
,
FoodBtnHeight
+
""
);
setting
.
FoodBtnHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
FoodBtnHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
Log
.
e
(
"最后得出的FoodBtnHeight"
,
setting
.
FoodBtnHeight
+
""
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"ModBtnHeight"
))
{
//计算高度/
setting
.
ModBtnHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
ModBtnHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"ModFunctionBarHeight"
))
{
//计算高度/
setting
.
ModFunctionBarHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
ModFunctionBarHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"BottomBarHeight"
))
{
//计算高度/
setting
.
BottomBarHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
BottomBarHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"OrderDataOperBtnWidth"
))
{
//计算高度/
OrderDataOperBtnWidth
=
(
int
)
Math
.
ceil
((
float
)
OrderDataOperBtnWidth
/
(
float
)
BaseWidth
*
(
float
)
screen_w
);
}
if
(!
customizeSetting
.
contains
(
"OrderDataOperBtnHeight"
))
{
//计算高度/
setting
.
OrderDataOperBtnHeight
=
(
int
)
Math
.
ceil
((
float
)
setting
.
OrderDataOperBtnHeight
/
(
float
)
setting
.
BaseHeight
*
(
float
)
setting
.
screen_h
);
}
float
screen_scaledDensity
=
(
float
)
setting
.
screen_density_dpi
/
160
;
float
base_scaledDensity
=
(
float
)
setting
.
BaseDpi
/
160
;
float
rate
=
(
float
)
(
base_scaledDensity
/
screen_scaledDensity
);
if
(!
setting
.
customizeSetting
.
contains
(
"TableFunctionTopFontSize"
))
{
setting
.
TableFunctionTopFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
TableFunctionTopFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
///base_scaledDensity*(float)privateClass.screen_scaledDensity);
}
if
(!
setting
.
customizeSetting
.
contains
(
"TableFunctionBottomFontSize"
))
{
setting
.
TableFunctionBottomFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
TableFunctionBottomFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"FoodTypeFontSize"
))
{
setting
.
FoodTypeFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
FoodTypeFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"FoodFontSize"
))
{
setting
.
FoodFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
FoodFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"ModFontSize"
))
{
setting
.
ModFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
ModFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"BillTotalFontSize"
))
{
setting
.
BillTotalFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
BillTotalFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"BillListFontSize"
))
{
Log
.
e
(
"初始BillListFontSize"
,
setting
.
BillListFontSize
+
""
);
setting
.
BillListFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
BillListFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
Log
.
e
(
"最后得出的BillListFontSize"
,
BillListFontSize
+
""
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"FoodlListFontSize"
))
{
setting
.
FoodlListFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
FoodlListFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"orderInfoFontSize"
))
{
Log
.
e
(
"初始orderInfoFontSize"
,
setting
.
orderInfoFontSize
+
""
);
setting
.
orderInfoFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
orderInfoFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
Log
.
e
(
"最后得出的orderInfoFontSize"
,
setting
.
orderInfoFontSize
+
""
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"TableFunctionFontSize"
))
{
setting
.
TableFunctionFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
TableFunctionFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"OrderNumberFontSize"
))
{
setting
.
OrderNumberFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
OrderNumberFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
}
if
(!
setting
.
customizeSetting
.
contains
(
"OrderNumberChildFontSize"
))
{
setting
.
OrderNumberChildFontSize
=
(
int
)
Math
.
ceil
((
float
)
setting
.
OrderNumberChildFontSize
/
(
float
)
setting
.
BaseWidth
*
(
float
)
setting
.
screen_w
*
rate
);
}
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/ui/adapter/ListSelectAdapter.java
0 → 100644
View file @
5e45c2a8
package
com
.
gingersoft
.
gsa
.
cloud
.
ui
.
adapter
;
import
android.content.Context
;
import
android.graphics.drawable.Drawable
;
import
android.widget.TextView
;
import
androidx.core.content.ContextCompat
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.gingersoft.gsa.cloud.base.R
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
java.util.List
;
public
class
ListSelectAdapter
extends
BaseQuickAdapter
<
String
,
BaseViewHolder
>
{
private
int
textSize
;
private
int
selectTextColor
;
private
int
normalTextColor
;
private
Drawable
normalBg
;
private
Drawable
selectBg
;
private
int
selectIndex
=
0
;
private
int
paddingLeft
=
0
;
private
int
paddingTop
=
0
;
private
int
paddingRight
=
0
;
private
int
paddingBottom
=
0
;
private
Context
mContext
;
// public ListSelectAdapter(List<String> data) {
// super(layoutResId, data);
// }
public
ListSelectAdapter
(
Context
context
,
int
layoutResId
,
@Nullable
List
<
String
>
data
)
{
super
(
layoutResId
,
data
);
this
.
mContext
=
context
;
textSize
=
16
;
selectBg
=
ContextCompat
.
getDrawable
(
context
,
R
.
drawable
.
s_tran_twenty_blue
);
selectTextColor
=
ContextCompat
.
getColor
(
context
,
R
.
color
.
other_order_details_sure_btn_color
);
normalTextColor
=
ContextCompat
.
getColor
(
context
,
R
.
color
.
color_c9
);
}
@Override
protected
void
convert
(
@NotNull
BaseViewHolder
baseViewHolder
,
String
s
)
{
TextView
title
=
baseViewHolder
.
getView
(
R
.
id
.
cb_select_title
);
title
.
setText
(
s
);
title
.
setTextSize
(
textSize
);
title
.
setBackground
(
selectBg
);
title
.
setPadding
(
paddingLeft
,
paddingTop
,
paddingRight
,
paddingBottom
);
if
(
baseViewHolder
.
getAdapterPosition
()
==
selectIndex
)
{
title
.
setBackground
(
selectBg
);
title
.
setTextColor
(
selectTextColor
);
}
else
{
title
.
setBackground
(
normalBg
);
title
.
setTextColor
(
normalTextColor
);
}
}
public
ListSelectAdapter
setSelectTextColor
(
int
textColor
)
{
this
.
selectTextColor
=
textColor
;
return
this
;
}
public
ListSelectAdapter
setNormalTextColor
(
int
textColor
)
{
this
.
normalTextColor
=
textColor
;
return
this
;
}
public
ListSelectAdapter
setTextSize
(
int
textSize
)
{
this
.
textSize
=
textSize
;
return
this
;
}
public
ListSelectAdapter
setNormalBg
(
Drawable
bg
)
{
this
.
normalBg
=
bg
;
return
this
;
}
public
ListSelectAdapter
setSelectBg
(
Drawable
bg
)
{
this
.
selectBg
=
bg
;
return
this
;
}
public
ListSelectAdapter
setNormalBg
(
int
bg
)
{
return
setNormalBg
(
ContextCompat
.
getDrawable
(
mContext
,
bg
));
}
public
ListSelectAdapter
setSelectBg
(
int
bg
)
{
return
setSelectBg
(
ContextCompat
.
getDrawable
(
mContext
,
bg
));
}
public
ListSelectAdapter
setDefaultSelect
(
int
select
)
{
this
.
selectIndex
=
select
;
return
this
;
}
public
ListSelectAdapter
setPadding
(
int
paddingLeft
,
int
paddingTop
,
int
paddingRight
,
int
paddingBottom
)
{
this
.
paddingLeft
=
paddingLeft
;
this
.
paddingBottom
=
paddingBottom
;
this
.
paddingTop
=
paddingTop
;
this
.
paddingRight
=
paddingRight
;
return
this
;
}
public
ListSelectAdapter
notifyAdapter
()
{
notifyDataSetChanged
();
return
this
;
}
}
base-module/src/main/res/color/s_send_order_radio.xml
0 → 100644
View file @
5e45c2a8
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:color=
"@color/other_order_details_sure_btn_color"
android:state_checked=
"true"
/>
<item
android:color=
"@color/color_66"
/>
</selector>
\ No newline at end of file
base-module/src/main/res/drawable/s_tran_twenty_blue.xml
0 → 100644
View file @
5e45c2a8
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:drawable=
"@color/tran_twenty_send_order_btn_bg_color"
android:state_checked=
"true"
/>
<item
android:drawable=
"@color/color_ea"
/>
</selector>
\ No newline at end of file
base-module/src/main/res/drawable/selector_new_order_radio_bg.xml
0 → 100644
View file @
5e45c2a8
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:color=
"@color/other_order_details_sure_btn_color"
android:state_checked=
"true"
/>
<item
android:drawable=
"@drawable/shape_delivery_item_btn_normal"
/>
</selector>
\ No newline at end of file
base-module/src/main/res/layout/item_list_string_select.xml
0 → 100644
View file @
5e45c2a8
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:id=
"@+id/cb_select_title"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
\ No newline at end of file
base-module/src/main/res/layout/print_item_food.xml
View file @
5e45c2a8
...
@@ -21,13 +21,14 @@
...
@@ -21,13 +21,14 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"0.15"
android:layout_weight=
"0.15"
android:layout_gravity=
"bottom"
android:layout_gravity=
"bottom"
tools:text=
"x1111111111111111111111111"
tools:text=
"x11111111111111111
0000
11111111"
android:gravity=
"right|center_vertical"
/>
android:gravity=
"right|center_vertical"
/>
<TextView
<TextView
android:id=
"@+id/tv_food_price"
android:id=
"@+id/tv_food_price"
style=
"@style/Print_text_style"
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
android:layout_width=
"0dp"
android:layout_weight=
"0.25"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"bottom"
android:layout_gravity=
"bottom"
android:layout_marginLeft=
"@dimen/dp_5"
android:layout_marginLeft=
"@dimen/dp_5"
...
...
base-module/src/main/res/values/colors.xml
View file @
5e45c2a8
...
@@ -467,7 +467,9 @@
...
@@ -467,7 +467,9 @@
<color
name=
"color_3b"
>
#3b3b3b
</color>
<color
name=
"color_3b"
>
#3b3b3b
</color>
<color
name=
"color_18"
>
#181818
</color>
<color
name=
"color_18"
>
#181818
</color>
<color
name=
"color_e8"
>
#e8e8e8
</color>
<color
name=
"color_e8"
>
#e8e8e8
</color>
<color
name=
"color_ea"
>
#EAEAEA
</color>
<color
name=
"tran_twenty_send_order_btn_bg_color"
>
#331196DB
</color>
<color
name=
"tran_fifty_order_state0_color"
>
#7F009788
</color>
<color
name=
"tran_fifty_order_state0_color"
>
#7F009788
</color>
<!-- 待確認背景色-->
<!-- 待確認背景色-->
<color
name=
"order_state0_color"
>
#009788
</color>
<color
name=
"order_state0_color"
>
#009788
</color>
...
...
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/contract/SendOrderContract.java
View file @
5e45c2a8
package
com
.
gingersoft
.
gsa
.
delivery_pick_mode
.
mvp
.
contract
;
package
com
.
gingersoft
.
gsa
.
delivery_pick_mode
.
mvp
.
contract
;
import
com.gingersoft.gsa.cloud.base.common.bean.BaseResult
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.model.MemberAddressInfoBean
;
import
com.jess.arms.mvp.IModel
;
import
com.jess.arms.mvp.IModel
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IView
;
import
java.util.Map
;
import
java.util.Map
;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
/**
/**
...
@@ -22,7 +25,7 @@ import io.reactivex.Observable;
...
@@ -22,7 +25,7 @@ import io.reactivex.Observable;
*/
*/
public
interface
SendOrderContract
{
public
interface
SendOrderContract
{
interface
View
extends
IView
{
interface
View
extends
IView
{
void
loadMemberInfo
(
MemberAddressInfoBean
.
DataBean
data
);
}
}
interface
Model
extends
IModel
{
interface
Model
extends
IModel
{
...
@@ -30,5 +33,9 @@ public interface SendOrderContract {
...
@@ -30,5 +33,9 @@ public interface SendOrderContract {
* 獲取配送信息
* 獲取配送信息
*/
*/
Observable
<
String
>
getConfirmTakeawayOrderData
(
Map
<
String
,
Object
>
map
);
Observable
<
String
>
getConfirmTakeawayOrderData
(
Map
<
String
,
Object
>
map
);
Observable
<
BaseResult
>
submitOrder
(
RequestBody
requestBody
);
Observable
<
MemberAddressInfoBean
>
getMemberAddressInfo
(
String
phone
);
}
}
}
}
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/model/MemberAddressInfoBean.java
0 → 100644
View file @
5e45c2a8
package
com
.
gingersoft
.
gsa
.
delivery_pick_mode
.
mvp
.
model
;
public
class
MemberAddressInfoBean
{
/**
* success : true
* sysTime : 1602675733309
* data : {"id":57172,"receiver":"王","sex":1,"phone":"18384840551","addressDetail":"455","currentAddress":"美丽华商场","isDefault":1}
*/
private
boolean
success
;
private
long
sysTime
;
private
String
errorMsg
;
private
DataBean
data
;
public
boolean
isSuccess
()
{
return
success
;
}
public
void
setSuccess
(
boolean
success
)
{
this
.
success
=
success
;
}
public
long
getSysTime
()
{
return
sysTime
;
}
public
void
setSysTime
(
long
sysTime
)
{
this
.
sysTime
=
sysTime
;
}
public
DataBean
getData
()
{
return
data
;
}
public
void
setData
(
DataBean
data
)
{
this
.
data
=
data
;
}
public
String
getErrorMsg
()
{
return
errorMsg
;
}
public
void
setErrorMsg
(
String
errorMsg
)
{
this
.
errorMsg
=
errorMsg
;
}
public
static
class
DataBean
{
/**
* id : 57172
* receiver : 王
* sex : 1
* phone : 18384840551
* addressDetail : 455
* currentAddress : 美丽华商场
* isDefault : 1
*/
private
int
id
;
private
String
receiver
;
private
int
sex
;
private
String
phone
;
private
String
addressDetail
;
private
String
currentAddress
;
private
int
isDefault
;
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
String
getReceiver
()
{
return
receiver
;
}
public
void
setReceiver
(
String
receiver
)
{
this
.
receiver
=
receiver
;
}
public
int
getSex
()
{
return
sex
;
}
public
void
setSex
(
int
sex
)
{
this
.
sex
=
sex
;
}
public
String
getPhone
()
{
return
phone
;
}
public
void
setPhone
(
String
phone
)
{
this
.
phone
=
phone
;
}
public
String
getAddressDetail
()
{
return
addressDetail
;
}
public
void
setAddressDetail
(
String
addressDetail
)
{
this
.
addressDetail
=
addressDetail
;
}
public
String
getCurrentAddress
()
{
return
currentAddress
;
}
public
void
setCurrentAddress
(
String
currentAddress
)
{
this
.
currentAddress
=
currentAddress
;
}
public
int
getIsDefault
()
{
return
isDefault
;
}
public
void
setIsDefault
(
int
isDefault
)
{
this
.
isDefault
=
isDefault
;
}
}
}
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/model/SendOrderModel.java
View file @
5e45c2a8
...
@@ -2,6 +2,7 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.model;
...
@@ -2,6 +2,7 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.model;
import
android.app.Application
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.base.common.bean.BaseResult
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.server.SendOrderServer
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.server.SendOrderServer
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
...
@@ -14,6 +15,7 @@ import java.util.Map;
...
@@ -14,6 +15,7 @@ import java.util.Map;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
/**
/**
...
@@ -52,4 +54,14 @@ public class SendOrderModel extends BaseModel implements SendOrderContract.Model
...
@@ -52,4 +54,14 @@ public class SendOrderModel extends BaseModel implements SendOrderContract.Model
public
Observable
<
String
>
getConfirmTakeawayOrderData
(
Map
<
String
,
Object
>
map
)
{
public
Observable
<
String
>
getConfirmTakeawayOrderData
(
Map
<
String
,
Object
>
map
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
SendOrderServer
.
class
).
getConfirmTakeawayOrderData
(
map
);
return
mRepositoryManager
.
obtainRetrofitService
(
SendOrderServer
.
class
).
getConfirmTakeawayOrderData
(
map
);
}
}
@Override
public
Observable
<
BaseResult
>
submitOrder
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
SendOrderServer
.
class
).
submitOrder
(
requestBody
);
}
@Override
public
Observable
<
MemberAddressInfoBean
>
getMemberAddressInfo
(
String
phone
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
SendOrderServer
.
class
).
getMemberAddressInfo
(
phone
);
}
}
}
\ No newline at end of file
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/presenter/SendOrderPresenter.java
View file @
5e45c2a8
...
@@ -2,22 +2,36 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter;
...
@@ -2,22 +2,36 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter;
import
android.app.Application
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
import
com.gingersoft.gsa.cloud.base.utils.other.TextUtil
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.model.MemberAddressInfoBean
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
org.json.JSONArray
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.schedulers.Schedulers
;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
okhttp3.FormBody
;
import
okhttp3.RequestBody
;
/**
/**
...
@@ -79,7 +93,149 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
...
@@ -79,7 +93,149 @@ public class SendOrderPresenter extends BasePresenter<SendOrderContract.Model, S
public
void
onNext
(
String
s
)
{
public
void
onNext
(
String
s
)
{
// https://hktest.ricepon.com:64377/member-web/api/member/getAddressAndResSetting?&pageSize=15&shopId=26&isdefault=1&pageIndex=1&price=0&memberId=515
// https://hktest.ricepon.com:64377/member-web/api/member/getAddressAndResSetting?&pageSize=15&shopId=26&isdefault=1&pageIndex=1&price=0&memberId=515
}
}
@Override
public
void
onError
(
Throwable
t
)
{
super
.
onError
(
t
);
}
});
}
public
void
getMemberAddressInfo
(
String
phone
)
{
mModel
.
getMemberAddressInfo
(
phone
)
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
"查詢會員信息..."
))
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSubscriber
<
MemberAddressInfoBean
>(
mErrorHandler
)
{
@Override
public
void
onNext
(
@NonNull
MemberAddressInfoBean
info
)
{
if
(
info
!=
null
)
{
if
(
info
.
isSuccess
()
&&
info
.
getData
()
!=
null
)
{
mRootView
.
loadMemberInfo
(
info
.
getData
());
}
else
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
info
.
getErrorMsg
()))
{
mRootView
.
showMessage
(
info
.
getErrorMsg
());
}
else
{
mRootView
.
showMessage
(
"會員信息獲取失敗"
);
}
}
else
{
mRootView
.
showMessage
(
"會員信息獲取失敗"
);
}
}
});
}
public
void
submitOrder
(
String
name
,
String
phone
,
String
address
)
{
RequestBody
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"order"
,
getOrderJson
(
name
,
phone
,
address
))
.
add
(
"apiversion"
,
"1"
)
.
build
();
mModel
.
submitOrder
(
requestBody
)
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
"正在創建訂單..."
))
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSubscriber
<
BaseResult
>(
mErrorHandler
)
{
@Override
public
void
onNext
(
@NonNull
BaseResult
info
)
{
}
@Override
public
void
onError
(
Throwable
t
)
{
super
.
onError
(
t
);
}
});
});
}
}
/**
* 订单提交
*/
private
String
getOrderJson
(
String
name
,
String
phone
,
String
address
)
{
JSONObject
json
;
json
=
new
JSONObject
();
try
{
json
.
put
(
"shopId"
,
GsaCloudApplication
.
getRestaurantId
());
json
.
put
(
"phone"
,
phone
);
json
.
put
(
"replenishmentType"
,
"1"
);
json
.
put
(
"transportationType"
,
"3"
);
json
.
put
(
"memberId"
,
GsaCloudApplication
.
getMemberId
());
json
.
put
(
"addressDetail"
,
address
);
json
.
put
(
"orderRemark"
,
""
);
json
.
put
(
"payType"
,
1
);
//原价
json
.
put
(
"originalAmount"
,
MyOrderManage
.
getInstance
().
getWholeAmount
());
json
.
put
(
"orderType"
,
8
);
//实际总价
json
.
put
(
"totalPrice"
,
MyOrderManage
.
getInstance
().
getTotalAmount
());
// json.put("waimaiSendTime", waimaiSendTime);//送单时间
JSONArray
array
=
new
JSONArray
();
List
<
OrderDetail
>
orderDetails
=
MyOrderManage
.
getInstance
().
getOrderFoodList
();
for
(
int
i
=
0
;
i
<
orderDetails
.
size
();
i
++)
{
OrderDetail
orderDetail
=
orderDetails
.
get
(
i
);
JSONObject
food
=
getFoodJson
(
orderDetail
);
if
(
i
+
1
<
orderDetails
.
size
()
&&
orderDetails
.
get
(
i
+
1
).
getParentId
()
==
orderDetail
.
getId
()
&&
orderDetails
.
get
(
i
+
1
).
getItemType
()
!=
0
)
{
//如果下一個食品的父級id是當前食品的id
JSONArray
foodArray
=
new
JSONArray
();
long
foodId
=
orderDetail
.
getId
();
for
(
int
j
=
i
+
1
;
j
<
orderDetails
.
size
();
j
++)
{
OrderDetail
secondOrderDetail
=
orderDetails
.
get
(
j
);
JSONObject
secondFood
=
getFoodJson
(
secondOrderDetail
);
JSONArray
secondArray
=
new
JSONArray
();
if
(
orderDetails
.
get
(
j
).
getParentId
()
==
foodId
)
{
secondArray
.
put
(
secondFood
);
long
secondFoodId
=
secondOrderDetail
.
getId
();
if
(
j
+
1
<
orderDetails
.
size
()
&&
orderDetails
.
get
(
j
+
1
).
getParentId
()
==
secondOrderDetail
.
getId
())
{
for
(
int
k
=
j
+
1
;
k
<
orderDetails
.
size
();
k
++)
{
JSONObject
thirdFood
=
getFoodJson
(
secondOrderDetail
);
JSONArray
thirdArray
=
new
JSONArray
();
if
(
orderDetails
.
get
(
k
).
getParentId
()
==
secondFoodId
)
{
thirdArray
.
put
(
getFoodJson
(
orderDetails
.
get
(
k
)));
}
else
{
thirdFood
.
put
(
"itemDetail"
,
thirdArray
);
secondArray
.
put
(
thirdFood
);
i
=
k
;
break
;
}
}
}
}
else
{
secondFood
.
put
(
"itemDetail"
,
secondArray
);
foodArray
.
put
(
secondFood
);
i
=
j
;
break
;
}
}
}
else
{
array
.
put
(
food
);
}
}
json
.
put
(
"foods"
,
array
);
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
}
return
json
.
toString
();
}
private
JSONObject
getFoodJson
(
OrderDetail
orderDetail
)
{
JSONObject
object
=
new
JSONObject
();
try
{
object
.
put
(
"posFid"
,
orderDetail
.
getParentId
());
object
.
put
(
"productId"
,
orderDetail
.
getId
());
object
.
put
(
"productName"
,
orderDetail
.
getProductName
());
object
.
put
(
"number"
,
orderDetail
.
getNumber
());
object
.
put
(
"price"
,
orderDetail
.
getPrice
());
object
.
put
(
"lunchboxPrice"
,
orderDetail
.
getLunchboxPrice
());
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
}
return
object
;
}
}
}
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/server/SendOrderServer.java
View file @
5e45c2a8
package
com
.
gingersoft
.
gsa
.
delivery_pick_mode
.
mvp
.
server
;
package
com
.
gingersoft
.
gsa
.
delivery_pick_mode
.
mvp
.
server
;
import
com.gingersoft.gsa.cloud.base.common.bean.BaseResult
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.model.MemberAddressInfoBean
;
import
java.util.Map
;
import
java.util.Map
;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
okhttp3.RequestBody
;
import
retrofit2.http.Body
;
import
retrofit2.http.GET
;
import
retrofit2.http.GET
;
import
retrofit2.http.Headers
;
import
retrofit2.http.Headers
;
import
retrofit2.http.POST
;
import
retrofit2.http.Query
;
import
retrofit2.http.QueryMap
;
import
retrofit2.http.QueryMap
;
public
interface
SendOrderServer
{
public
interface
SendOrderServer
{
...
@@ -14,4 +21,12 @@ public interface SendOrderServer {
...
@@ -14,4 +21,12 @@ public interface SendOrderServer {
@GET
(
"member/getAddressAndResSetting?"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
@GET
(
"member/getAddressAndResSetting?"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
String
>
getConfirmTakeawayOrderData
(
@QueryMap
Map
<
String
,
Object
>
map
);
Observable
<
String
>
getConfirmTakeawayOrderData
(
@QueryMap
Map
<
String
,
Object
>
map
);
@Headers
({
"Domain-Name: update_version"
})
@POST
(
"order/addOrder2"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
BaseResult
>
submitOrder
(
@Body
RequestBody
requestBody
);
@Headers
({
"Domain-Name: ricepon_member"
})
@GET
(
"member/getMemberAddressInfo"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
MemberAddressInfoBean
>
getMemberAddressInfo
(
@Query
(
"phone"
)
String
phone
);
}
}
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/mvp/ui/activity/SendOrderActivity.java
View file @
5e45c2a8
...
@@ -5,27 +5,36 @@ import android.os.Bundle;
...
@@ -5,27 +5,36 @@ import android.os.Bundle;
import
android.view.View
;
import
android.view.View
;
import
android.widget.EditText
;
import
android.widget.EditText
;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
import
android.widget.RadioGroup
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
androidx.constraintlayout.widget.Group
;
import
androidx.core.content.ContextCompat
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.
Grid
LayoutManager
;
import
androidx.recyclerview.widget.
Linear
LayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.base.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimePickerUtils
;
import
com.gingersoft.gsa.cloud.ui.adapter.ListSelectAdapter
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
;
import
com.gingersoft.gsa.delivery_pick_mode.R
;
import
com.gingersoft.gsa.delivery_pick_mode.R
;
import
com.gingersoft.gsa.delivery_pick_mode.R2
;
import
com.gingersoft.gsa.delivery_pick_mode.R2
;
import
com.gingersoft.gsa.delivery_pick_mode.di.component.DaggerSendOrderComponent
;
import
com.gingersoft.gsa.delivery_pick_mode.di.component.DaggerSendOrderComponent
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.contract.SendOrderContract
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.model.MemberAddressInfoBean
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.presenter.SendOrderPresenter
;
import
com.gingersoft.gsa.delivery_pick_mode.mvp.presenter.SendOrderPresenter
;
import
com.gingersoft.gsa.delivery_pick_mode.ui.adapter.DeliveryAdapter
;
import
com.jess.arms.base.BaseActivity
;
import
com.jess.arms.base.BaseActivity
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.qmuiteam.qmui.widget.popup.QMUIPopup
;
import
com.qmuiteam.qmui.widget.popup.QMUIPopups
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Calendar
;
import
java.util.List
;
import
java.util.List
;
import
butterknife.BindView
;
import
butterknife.BindView
;
...
@@ -38,8 +47,9 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
...
@@ -38,8 +47,9 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
*/
*/
public
class
SendOrderActivity
extends
BaseActivity
<
SendOrderPresenter
>
implements
SendOrderContract
.
View
,
View
.
OnClickListener
{
public
class
SendOrderActivity
extends
BaseActivity
<
SendOrderPresenter
>
implements
SendOrderContract
.
View
,
View
.
OnClickListener
{
@BindView
(
R2
.
id
.
send_order_top_bar
)
@BindView
(
R2
.
id
.
send_order_top_bar
)
QMUITopBar
t
opBar
;
QMUITopBar
sendOrderT
opBar
;
@BindView
(
R2
.
id
.
rv_send_order_foods
)
@BindView
(
R2
.
id
.
rv_send_order_foods
)
RecyclerView
rvSendOrderFoods
;
RecyclerView
rvSendOrderFoods
;
@BindView
(
R2
.
id
.
rv_send_order_bills
)
@BindView
(
R2
.
id
.
rv_send_order_bills
)
...
@@ -60,30 +70,36 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
...
@@ -60,30 +70,36 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
EditText
edSendOrderAddress
;
EditText
edSendOrderAddress
;
@BindView
(
R2
.
id
.
iv_select_address_arrow
)
@BindView
(
R2
.
id
.
iv_select_address_arrow
)
ImageView
ivSelectAddressArrow
;
ImageView
ivSelectAddressArrow
;
@BindView
(
R2
.
id
.
tv_send_order_label_text
)
TextView
tvSendOrderLabelText
;
@BindView
(
R2
.
id
.
rv_send_order_label
)
RecyclerView
rvSendOrderLabel
;
@BindView
(
R2
.
id
.
tv_send_order_distribution_mode_text
)
@BindView
(
R2
.
id
.
tv_send_order_distribution_mode_text
)
TextView
tvSendOrderDistributionModeText
;
TextView
tvSendOrderDistributionModeText
;
@BindView
(
R2
.
id
.
r
v
_send_order_distribution_mode
)
@BindView
(
R2
.
id
.
r
g
_send_order_distribution_mode
)
R
ecyclerView
rv
SendOrderDistributionMode
;
R
adioGroup
rg
SendOrderDistributionMode
;
@BindView
(
R2
.
id
.
tv_send_order_pay_mode_text
)
@BindView
(
R2
.
id
.
tv_send_order_pay_mode_text
)
TextView
tvSendOrderPayModeText
;
TextView
tvSendOrderPayModeText
;
@BindView
(
R2
.
id
.
r
v
_send_order_pay_mode
)
@BindView
(
R2
.
id
.
r
g
_send_order_pay_mode
)
R
ecyclerView
rv
SendOrderPayMode
;
R
adioGroup
rg
SendOrderPayMode
;
@BindView
(
R2
.
id
.
tv_send_order_delivery_time_text
)
@BindView
(
R2
.
id
.
tv_send_order_delivery_time_text
)
TextView
tvSendOrderDeliveryTimeText
;
TextView
tvSendOrderDeliveryTimeText
;
@BindView
(
R2
.
id
.
tv_delivery_time_type
)
@BindView
(
R2
.
id
.
tv_delivery_time_type
)
TextView
tvDeliveryTimeType
;
TextView
tvDeliveryTimeType
;
@BindView
(
R2
.
id
.
iv_select_delivery_time
)
ImageView
ivSelectDeliveryTime
;
@BindView
(
R2
.
id
.
tv_delivery_time_hour
)
TextView
tvDeliveryTimeHour
;
@BindView
(
R2
.
id
.
tv_delivery_time_colon
)
TextView
tvDeliveryTimeColon
;
@BindView
(
R2
.
id
.
tv_delivery_time_min
)
TextView
tvDeliveryTimeMin
;
@BindView
(
R2
.
id
.
tv_continue_add_food
)
@BindView
(
R2
.
id
.
tv_continue_add_food
)
TextView
tvContinueAddFood
;
TextView
tvContinueAddFood
;
@BindView
(
R2
.
id
.
tv_confirm_order
)
@BindView
(
R2
.
id
.
tv_confirm_order
)
TextView
tvConfirmOrder
;
TextView
tvConfirmOrder
;
@BindView
(
R2
.
id
.
layout_btn
)
private
List
<
String
>
labelStrings
=
Arrays
.
asList
(
"家"
,
"公司"
,
"學校"
,
"醫院"
);
LinearLayout
layoutBtn
;
private
List
<
String
>
distributionModes
=
Arrays
.
asList
(
"本店配送"
,
"物流配送"
);
@BindView
(
R2
.
id
.
view_delivery_time_mode_line
)
private
List
<
String
>
payTypes
=
Arrays
.
asList
(
"貨到付款"
,
"立即支付"
);
View
deliveryTimeLine
;
@BindView
(
R2
.
id
.
group_time
)
Group
timeGroup
;
@Override
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
...
@@ -102,17 +118,7 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
...
@@ -102,17 +118,7 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
@Override
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
mPresenter
.
getConfirmTakeawayOrderData
();
DeliveryAdapter
deliveryAdapter
=
new
DeliveryAdapter
(
labelStrings
);
rvSendOrderLabel
.
setLayoutManager
(
new
GridLayoutManager
(
mContext
,
4
));
rvSendOrderLabel
.
setAdapter
(
deliveryAdapter
);
rvSendOrderDistributionMode
.
setLayoutManager
(
new
GridLayoutManager
(
mContext
,
3
));
rvSendOrderDistributionMode
.
setAdapter
(
new
DeliveryAdapter
(
distributionModes
));
rvSendOrderPayMode
.
setLayoutManager
(
new
GridLayoutManager
(
mContext
,
3
));
rvSendOrderPayMode
.
setAdapter
(
new
DeliveryAdapter
(
payTypes
));
}
}
@Override
@Override
...
@@ -122,9 +128,9 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
...
@@ -122,9 +128,9 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
@Override
@Override
public
void
initTopBar
()
{
public
void
initTopBar
()
{
t
opBar
.
setTitle
(
"送單信息"
);
sendOrderT
opBar
.
setTitle
(
"送單信息"
);
t
opBar
.
setBackgroundColor
(
ContextCompat
.
getColor
(
this
,
R
.
color
.
theme_color
));
sendOrderT
opBar
.
setBackgroundColor
(
ContextCompat
.
getColor
(
this
,
R
.
color
.
theme_color
));
t
opBar
.
addLeftImageButton
(
R
.
drawable
.
icon_return
,
R
.
id
.
iv_left_back
).
setOnClickListener
(
v
->
killMyself
());
sendOrderT
opBar
.
addLeftImageButton
(
R
.
drawable
.
icon_return
,
R
.
id
.
iv_left_back
).
setOnClickListener
(
v
->
killMyself
());
}
}
@Override
@Override
...
@@ -173,12 +179,88 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
...
@@ -173,12 +179,88 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
finish
();
finish
();
}
}
@OnClick
()
private
QMUIPopup
popup
;
private
ListSelectAdapter
listSelectAdapter
;
private
int
select
=
0
;
private
List
<
String
>
deliveryTimes
=
Arrays
.
asList
(
"現在送出"
,
"其他時間"
);
@OnClick
({
R2
.
id
.
iv_send_order_search
,
R2
.
id
.
tv_delivery_time_hour
,
R2
.
id
.
tv_delivery_time_min
,
R2
.
id
.
tv_delivery_time_type
,
R2
.
id
.
iv_select_delivery_time
,
R2
.
id
.
tv_confirm_order
})
@Override
@Override
public
void
onClick
(
View
v
)
{
public
void
onClick
(
View
v
)
{
int
viewId
=
v
.
getId
();
int
viewId
=
v
.
getId
();
switch
(
viewId
){
if
(
viewId
==
R
.
id
.
tv_delivery_time_type
||
viewId
==
R
.
id
.
iv_select_delivery_time
)
{
switchDeliveryTimeMode
();
}
else
if
(
viewId
==
R
.
id
.
tv_confirm_order
)
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
edSendOrderName
))
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
edSendOrderPhone
))
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
edSendOrderAddress
))
{
mPresenter
.
submitOrder
(
edSendOrderName
.
getText
().
toString
(),
edSendOrderPhone
.
getText
().
toString
(),
edSendOrderAddress
.
getText
().
toString
());
}
else
{
showMessage
(
"請輸入送貨地址"
);
}
}
else
{
showMessage
(
"請輸入顧客電話"
);
}
}
else
{
showMessage
(
"請輸入顧客姓名"
);
}
}
else
if
(
viewId
==
R
.
id
.
tv_delivery_time_hour
||
viewId
==
R
.
id
.
tv_delivery_time_min
)
{
Calendar
startTime
=
Calendar
.
getInstance
();
TimePickerUtils
.
showTimePicker
(
mContext
,
startTime
,
(
date
,
v1
)
->
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
tvDeliveryTimeHour
.
setText
(
calendar
.
get
(
Calendar
.
HOUR
));
tvDeliveryTimeMin
.
setText
(
calendar
.
get
(
Calendar
.
MINUTE
));
});
}
else
if
(
viewId
==
R
.
id
.
iv_send_order_search
)
{
//搜索會員信息
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
edSendOrderPhone
))
{
mPresenter
.
getMemberAddressInfo
(
edSendOrderPhone
.
getText
().
toString
());
}
else
{
showMessage
(
"請輸入顧客電話"
);
}
}
}
}
}
private
void
switchDeliveryTimeMode
()
{
if
(
popup
==
null
)
{
//切換時間選擇
View
view
=
View
.
inflate
(
mContext
,
R
.
layout
.
recyclerview
,
null
);
RecyclerView
recyclerView
=
view
.
findViewById
(
R
.
id
.
ryview
);
recyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
mContext
));
listSelectAdapter
=
new
ListSelectAdapter
(
mContext
,
R
.
layout
.
item_list_string_select
,
deliveryTimes
)
.
setDefaultSelect
(
select
)
.
setPadding
(
30
,
24
,
30
,
24
)
.
setSelectBg
(
R
.
color
.
tran_twenty_send_order_btn_bg_color
)
.
setNormalBg
(
R
.
color
.
white
)
.
notifyAdapter
();
listSelectAdapter
.
setOnItemClickListener
((
adapter
,
view1
,
position
)
->
{
select
=
position
;
popup
.
dismiss
();
tvDeliveryTimeType
.
setText
(
deliveryTimes
.
get
(
position
));
timeGroup
.
setVisibility
(
position
==
0
?
View
.
GONE
:
View
.
VISIBLE
);
});
recyclerView
.
setAdapter
(
listSelectAdapter
);
popup
=
QMUIPopups
.
popup
(
mContext
)
.
preferredDirection
(
QMUIPopup
.
DIRECTION_BOTTOM
)
.
view
(
view
)
.
arrow
(
false
)
.
offsetYIfTop
(
0
)
.
radius
(
0
)
.
animStyle
(
QMUIPopup
.
ANIM_AUTO
)
.
show
(
deliveryTimeLine
);
}
else
{
listSelectAdapter
.
setDefaultSelect
(
select
).
notifyAdapter
();
popup
.
show
(
deliveryTimeLine
);
}
}
@Override
public
void
loadMemberInfo
(
MemberAddressInfoBean
.
DataBean
data
)
{
edSendOrderName
.
setText
(
data
.
getReceiver
());
edSendOrderPhone
.
setText
(
data
.
getPhone
().
toString
());
edSendOrderAddress
.
setText
(
data
.
getCurrentAddress
()
+
data
.
getAddressDetail
());
}
}
}
delivery_pick_module/src/main/res/layout/item_send_order_radio.xml
0 → 100644
View file @
5e45c2a8
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:id=
"@+id/layout_delivery_item"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
android:background=
"@drawable/shape_delivery_item_btn_normal"
android:gravity=
"center"
android:orientation=
"vertical"
android:padding=
"@dimen/dp_5"
android:layout_marginLeft=
"@dimen/dp_2"
android:layout_marginRight=
"@dimen/dp_2"
>
<TextView
android:id=
"@+id/tv_delivery_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textColor=
"@color/color_c8"
android:textSize=
"@dimen/dp_17"
/>
</LinearLayout>
\ No newline at end of file
delivery_pick_module/src/main/res/layout/other_order_activity_send_order.xml
View file @
5e45c2a8
...
@@ -44,79 +44,91 @@
...
@@ -44,79 +44,91 @@
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_above=
"@id/layout_btn"
android:layout_above=
"@id/layout_btn"
android:layout_below=
"@id/rv_send_order_bills"
android:layout_below=
"@id/rv_send_order_bills"
android:layout_height=
"wrap_content"
android:paddingLeft=
"@dimen/dp_10"
android:paddingLeft=
"@dimen/dp_10"
android:paddingRight=
"@dimen/dp_10"
android:paddingRight=
"@dimen/dp_10"
app:layout_constraintTop_toBottomOf=
"@id/rv_send_order_bills"
>
app:layout_constraintTop_toBottomOf=
"@id/rv_send_order_bills"
>
<TextView
<TextView
android:id=
"@+id/tv_send_order_
nam
e_text"
android:id=
"@+id/tv_send_order_
phon
e_text"
style=
"@style/otherOrderSendOrder_textStyle"
style=
"@style/otherOrderSendOrder_textStyle"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/customer_
nam
e"
android:text=
"@string/customer_
phon
e"
app:layout_constraintBottom_toBottomOf=
"@id/ed_send_order_name"
app:layout_constraintBottom_toBottomOf=
"@id/ed_send_order_name"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/ed_send_order_name"
/>
app:layout_constraintTop_toTopOf=
"@id/ed_send_order_name"
/>
<EditText
<EditText
android:id=
"@+id/ed_send_order_
nam
e"
android:id=
"@+id/ed_send_order_
phon
e"
style=
"@style/otherOrderSendOrder_textStyle"
style=
"@style/otherOrderSendOrder_textStyle"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@null"
android:background=
"@null"
android:gravity=
"right"
android:gravity=
"right"
android:hint=
"@string/please_input_
name_or_select_members
"
android:hint=
"@string/please_input_
phone
"
android:inputType=
"
text
"
android:inputType=
"
phone
"
android:labelFor=
"@id/tv_send_order_name_text"
android:labelFor=
"@id/tv_send_order_name_text"
android:padding=
"@dimen/edit_padding"
android:padding=
"@dimen/edit_padding"
app:layout_constraintLeft_toRightOf=
"@id/tv_send_order_name_text"
app:layout_constraintLeft_toRightOf=
"@id/tv_send_order_name_text"
app:layout_constraintRight_toLeftOf=
"@id/iv_se
lect_member_arrow
"
app:layout_constraintRight_toLeftOf=
"@id/iv_se
nd_order_search
"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
<ImageView
android:id=
"@+id/iv_se
lect_member_arrow
"
android:id=
"@+id/iv_se
nd_order_search
"
android:layout_width=
"
wrap_content
"
android:layout_width=
"
@dimen/dp_40
"
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:src=
"@drawable/ic_black_next_arrow"
android:padding=
"@dimen/dp_10"
app:layout_constraintBottom_toBottomOf=
"@id/ed_send_order_name"
android:src=
"@drawable/ic_search"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"@id/ed_send_order_phone"
app:layout_constraintTop_toTopOf=
"@id/ed_send_order_name"
/>
app:layout_constraintLeft_toRightOf=
"@id/ed_send_order_phone"
<View
android:layout_width=
"0dp"
android:layout_height=
"@dimen/dp_1"
android:background=
"@color/color_ccc"
app:layout_constraintLeft_toLeftOf=
"@id/ed_send_order_name"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_to
BottomOf=
"@id/ed_send_order_nam
e"
/>
app:layout_constraintTop_to
TopOf=
"@id/ed_send_order_phon
e"
/>
<TextView
<TextView
android:id=
"@+id/tv_send_order_
phon
e_text"
android:id=
"@+id/tv_send_order_
nam
e_text"
style=
"@style/otherOrderSendOrder_textStyle"
style=
"@style/otherOrderSendOrder_textStyle"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/customer_
phon
e"
android:text=
"@string/customer_
nam
e"
app:layout_constraintBottom_toBottomOf=
"@id/ed_send_order_phone"
app:layout_constraintBottom_toBottomOf=
"@id/ed_send_order_phone"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/ed_send_order_phone"
/>
app:layout_constraintTop_toTopOf=
"@id/ed_send_order_phone"
/>
<EditText
<EditText
android:id=
"@+id/ed_send_order_
phon
e"
android:id=
"@+id/ed_send_order_
nam
e"
style=
"@style/otherOrderSendOrder_textStyle"
style=
"@style/otherOrderSendOrder_textStyle"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@null"
android:background=
"@null"
android:gravity=
"right"
android:gravity=
"right"
android:hint=
"@string/please_input_
phone
"
android:hint=
"@string/please_input_
name_or_select_members
"
android:inputType=
"
phone
"
android:inputType=
"
text
"
android:labelFor=
"@id/tv_send_order_name_text"
android:labelFor=
"@id/tv_send_order_name_text"
android:padding=
"@dimen/edit_padding"
android:padding=
"@dimen/edit_padding"
app:layout_constraintLeft_toRightOf=
"@id/tv_send_order_
phon
e_text"
app:layout_constraintLeft_toRightOf=
"@id/tv_send_order_
nam
e_text"
app:layout_constraintRight_toLeftOf=
"@id/iv_select_member_arrow"
app:layout_constraintRight_toLeftOf=
"@id/iv_select_member_arrow"
app:layout_constraintTop_toBottomOf=
"@id/ed_send_order_phone"
/>
<ImageView
android:id=
"@+id/iv_select_member_arrow"
android:layout_width=
"wrap_content"
android:layout_height=
"0dp"
android:src=
"@drawable/ic_black_next_arrow"
app:layout_constraintBottom_toBottomOf=
"@id/ed_send_order_name"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/ed_send_order_name"
/>
<View
android:layout_width=
"0dp"
android:layout_height=
"@dimen/dp_1"
android:background=
"@color/color_ccc"
app:layout_constraintLeft_toLeftOf=
"@id/ed_send_order_name"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/ed_send_order_name"
/>
app:layout_constraintTop_toBottomOf=
"@id/ed_send_order_name"
/>
<View
<View
...
@@ -151,7 +163,7 @@
...
@@ -151,7 +163,7 @@
android:padding=
"@dimen/edit_padding"
android:padding=
"@dimen/edit_padding"
app:layout_constraintLeft_toRightOf=
"@id/tv_send_order_name_text"
app:layout_constraintLeft_toRightOf=
"@id/tv_send_order_name_text"
app:layout_constraintRight_toLeftOf=
"@id/iv_select_member_arrow"
app:layout_constraintRight_toLeftOf=
"@id/iv_select_member_arrow"
app:layout_constraintTop_toBottomOf=
"@id/ed_send_order_
phon
e"
/>
app:layout_constraintTop_toBottomOf=
"@id/ed_send_order_
nam
e"
/>
<ImageView
<ImageView
android:id=
"@+id/iv_select_address_arrow"
android:id=
"@+id/iv_select_address_arrow"
...
@@ -171,40 +183,55 @@
...
@@ -171,40 +183,55 @@
app:layout_constraintTop_toBottomOf=
"@id/ed_send_order_address"
/>
app:layout_constraintTop_toBottomOf=
"@id/ed_send_order_address"
/>
<TextView
<TextView
android:id=
"@+id/tv_send_order_label_text"
style=
"@style/otherOrderSendOrder_textStyle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/label"
app:layout_constraintBottom_toBottomOf=
"@id/rv_send_order_label"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/rv_send_order_label"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_send_order_label"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
app:layout_constraintLeft_toLeftOf=
"@id/ed_send_order_address"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/ed_send_order_address"
/>
<TextView
android:id=
"@+id/tv_send_order_distribution_mode_text"
android:id=
"@+id/tv_send_order_distribution_mode_text"
style=
"@style/otherOrderSendOrder_textStyle"
style=
"@style/otherOrderSendOrder_textStyle"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/distribution_mode"
android:text=
"@string/distribution_mode"
app:layout_constraintBottom_toBottomOf=
"@id/r
v
_send_order_distribution_mode"
app:layout_constraintBottom_toBottomOf=
"@id/r
g
_send_order_distribution_mode"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/r
v
_send_order_distribution_mode"
/>
app:layout_constraintTop_toTopOf=
"@id/r
g
_send_order_distribution_mode"
/>
<
androidx.recyclerview.widget.RecyclerView
<
RadioGroup
android:id=
"@+id/r
v
_send_order_distribution_mode"
android:id=
"@+id/r
g
_send_order_distribution_mode"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintLeft_toLeftOf=
"@id/rv_send_order_label"
android:layout_marginTop=
"@dimen/dp_16"
android:orientation=
"horizontal"
app:layout_constraintLeft_toLeftOf=
"@id/ed_send_order_address"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/rv_send_order_label"
/>
app:layout_constraintTop_toBottomOf=
"@id/ed_send_order_address"
>
<RadioButton
android:id=
"@+id/rb_delivery_shop"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginRight=
"@dimen/dp_9"
android:background=
"@drawable/s_tran_twenty_blue"
android:button=
"@null"
android:checked=
"true"
android:paddingLeft=
"@dimen/dp_13"
android:paddingTop=
"@dimen/dp_8"
android:paddingRight=
"@dimen/dp_13"
android:paddingBottom=
"@dimen/dp_8"
android:text=
"@string/delivery_shop"
android:textColor=
"@color/s_send_order_radio"
android:textSize=
"@dimen/dp_16"
/>
<RadioButton
android:id=
"@+id/rb_logistics_distribution"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@drawable/s_tran_twenty_blue"
android:button=
"@null"
android:paddingLeft=
"@dimen/dp_13"
android:paddingTop=
"@dimen/dp_8"
android:paddingRight=
"@dimen/dp_13"
android:paddingBottom=
"@dimen/dp_8"
android:text=
"@string/logistics_distribution"
android:textColor=
"@color/s_send_order_radio"
android:textSize=
"@dimen/dp_16"
/>
</RadioGroup>
<TextView
<TextView
android:id=
"@+id/tv_send_order_pay_mode_text"
android:id=
"@+id/tv_send_order_pay_mode_text"
...
@@ -212,17 +239,50 @@
...
@@ -212,17 +239,50 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/pay_mode"
android:text=
"@string/pay_mode"
app:layout_constraintBottom_toBottomOf=
"@id/r
v
_send_order_pay_mode"
app:layout_constraintBottom_toBottomOf=
"@id/r
g
_send_order_pay_mode"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/r
v
_send_order_pay_mode"
/>
app:layout_constraintTop_toTopOf=
"@id/r
g
_send_order_pay_mode"
/>
<
androidx.recyclerview.widget.RecyclerView
<
RadioGroup
android:id=
"@+id/r
v
_send_order_pay_mode"
android:id=
"@+id/r
g
_send_order_pay_mode"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintLeft_toLeftOf=
"@id/rv_send_order_distribution_mode"
android:layout_marginTop=
"@dimen/dp_10"
android:orientation=
"horizontal"
app:layout_constraintLeft_toLeftOf=
"@id/rg_send_order_distribution_mode"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/rv_send_order_distribution_mode"
/>
app:layout_constraintTop_toBottomOf=
"@id/rg_send_order_distribution_mode"
>
<RadioButton
android:id=
"@+id/rb_new_order_cash_on_delivery"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginRight=
"@dimen/dp_9"
android:background=
"@drawable/s_tran_twenty_blue"
android:button=
"@null"
android:checked=
"true"
android:paddingLeft=
"@dimen/dp_13"
android:paddingTop=
"@dimen/dp_8"
android:paddingRight=
"@dimen/dp_13"
android:paddingBottom=
"@dimen/dp_8"
android:text=
"貨到付款"
android:textColor=
"@color/s_send_order_radio"
android:textSize=
"@dimen/dp_16"
/>
<RadioButton
android:id=
"@+id/rb_new_order_immediately_pay"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@drawable/s_tran_twenty_blue"
android:button=
"@null"
android:paddingLeft=
"@dimen/dp_13"
android:paddingTop=
"@dimen/dp_8"
android:paddingRight=
"@dimen/dp_13"
android:paddingBottom=
"@dimen/dp_8"
android:text=
"立即支付"
android:textColor=
"@color/s_send_order_radio"
android:textSize=
"@dimen/dp_16"
/>
</RadioGroup>
<TextView
<TextView
android:id=
"@+id/tv_send_order_delivery_time_text"
android:id=
"@+id/tv_send_order_delivery_time_text"
...
@@ -236,26 +296,100 @@
...
@@ -236,26 +296,100 @@
<TextView
<TextView
android:id=
"@+id/tv_delivery_time_type"
android:id=
"@+id/tv_delivery_time_type"
android:layout_width=
"
0
dp"
android:layout_width=
"
67
dp"
android:layout_height=
"
wrap_content
"
android:layout_height=
"
25dp
"
android:layout_marginLeft=
"@dimen/dp_5"
android:layout_marginLeft=
"@dimen/dp_5"
android:layout_marginTop=
"@dimen/dp_10"
android:layout_marginTop=
"@dimen/dp_16"
android:layout_marginRight=
"@dimen/dp_2"
android:layout_weight=
"1"
android:layout_weight=
"1"
android:gravity=
"right"
android:gravity=
"right"
android:text=
"盡快送達"
android:paddingLeft=
"@dimen/dp_5"
android:text=
"現在送出"
android:textColor=
"@color/color_c9"
app:layout_constraintLeft_toRightOf=
"@id/tv_send_order_delivery_time_text"
app:layout_constraintLeft_toRightOf=
"@id/tv_send_order_delivery_time_text"
app:layout_constraintRight_toLeftOf=
"@id/iv_delivery_time_type"
app:layout_constraintTop_toBottomOf=
"@id/rg_send_order_pay_mode"
/>
app:layout_constraintTop_toBottomOf=
"@id/rv_send_order_pay_mode"
/>
<ImageView
<ImageView
android:id=
"@+id/iv_delivery_time_type"
android:id=
"@+id/iv_select_delivery_time"
android:layout_width=
"@dimen/dp_20"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_5"
android:src=
"@drawable/arrow_down_black"
app:layout_constraintBottom_toBottomOf=
"@id/tv_delivery_time_type"
app:layout_constraintLeft_toRightOf=
"@id/tv_delivery_time_type"
app:layout_constraintTop_toTopOf=
"@id/tv_delivery_time_type"
/>
<View
android:id=
"@+id/view_delivery_time_mode_line"
android:layout_width=
"0dp"
android:layout_height=
"@dimen/dp_1"
android:layout_marginTop=
"@dimen/dp_10"
android:background=
"@color/color_ccc"
app:layout_constraintLeft_toLeftOf=
"@id/tv_delivery_time_type"
app:layout_constraintRight_toRightOf=
"@id/iv_select_delivery_time"
app:layout_constraintTop_toBottomOf=
"@id/tv_delivery_time_type"
/>
<androidx.constraintlayout.widget.Group
android:id=
"@+id/group_time"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"0dp"
android:layout_height=
"wrap_content"
android:src=
"@drawable/ic_black_next_arrow"
android:visibility=
"gone"
app:constraint_referenced_ids=
"view_delivery_time_line,tv_delivery_time_min,tv_delivery_time_colon,tv_delivery_time_hour"
/>
<TextView
android:id=
"@+id/tv_delivery_time_hour"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_weight=
"1"
android:gravity=
"right"
android:text=
"00"
android:textColor=
"@color/color_c9"
app:layout_constraintBottom_toBottomOf=
"@id/tv_delivery_time_type"
app:layout_constraintLeft_toRightOf=
"@id/iv_select_delivery_time"
app:layout_constraintRight_toLeftOf=
"@id/tv_delivery_time_colon"
app:layout_constraintTop_toTopOf=
"@id/tv_delivery_time_type"
/>
<TextView
android:id=
"@+id/tv_delivery_time_colon"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_15"
android:layout_marginRight=
"@dimen/dp_15"
android:layout_weight=
"1"
android:gravity=
"right"
android:paddingLeft=
"@dimen/dp_5"
android:text=
":"
android:textColor=
"@color/color_c9"
app:layout_constraintBottom_toBottomOf=
"@id/tv_delivery_time_type"
app:layout_constraintLeft_toRightOf=
"@id/tv_delivery_time_hour"
app:layout_constraintRight_toLeftOf=
"@id/tv_delivery_time_min"
app:layout_constraintTop_toTopOf=
"@id/tv_delivery_time_type"
/>
<TextView
android:id=
"@+id/tv_delivery_time_min"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_5"
android:layout_marginRight=
"@dimen/dp_2"
android:layout_weight=
"1"
android:gravity=
"left"
android:paddingLeft=
"@dimen/dp_5"
android:text=
"00"
android:textColor=
"@color/color_c9"
app:layout_constraintBottom_toBottomOf=
"@id/tv_delivery_time_type"
app:layout_constraintBottom_toBottomOf=
"@id/tv_delivery_time_type"
app:layout_constraintLeft_toRightOf=
"@id/tv_delivery_time_colon"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/tv_delivery_time_type"
/>
app:layout_constraintTop_toTopOf=
"@id/tv_delivery_time_type"
/>
<View
android:id=
"@+id/view_delivery_time_line"
android:layout_width=
"0dp"
android:layout_height=
"@dimen/dp_1"
android:background=
"@color/color_ccc"
app:layout_constraintBottom_toBottomOf=
"@id/view_delivery_time_mode_line"
app:layout_constraintLeft_toLeftOf=
"@id/tv_delivery_time_hour"
app:layout_constraintRight_toRightOf=
"@id/tv_delivery_time_min"
app:layout_constraintTop_toTopOf=
"@id/view_delivery_time_mode_line"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
<LinearLayout
...
@@ -296,8 +430,6 @@
...
@@ -296,8 +430,6 @@
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toRightOf=
"@id/tv_continue_add_food"
app:layout_constraintLeft_toRightOf=
"@id/tv_continue_add_food"
app:layout_constraintRight_toRightOf=
"parent"
/>
app:layout_constraintRight_toRightOf=
"parent"
/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
</ScrollView>
\ No newline at end of file
delivery_pick_module/src/main/res/values/strings.xml
View file @
5e45c2a8
...
@@ -12,5 +12,7 @@
...
@@ -12,5 +12,7 @@
<string
name=
"distribution_mode"
>
配送方式:
</string>
<string
name=
"distribution_mode"
>
配送方式:
</string>
<string
name=
"pay_mode"
>
支付類型:
</string>
<string
name=
"pay_mode"
>
支付類型:
</string>
<string
name=
"delivery_time"
>
配送時間:
</string>
<string
name=
"delivery_time"
>
配送時間:
</string>
<string
name=
"delivery_shop"
>
本店派送
</string>
<string
name=
"logistics_distribution"
>
物流配送
</string>
</resources>
</resources>
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/contract/ExpandListContract.java
View file @
5e45c2a8
...
@@ -8,6 +8,7 @@ import com.jess.arms.mvp.IView;
...
@@ -8,6 +8,7 @@ import com.jess.arms.mvp.IView;
import
java.util.List
;
import
java.util.List
;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
public
interface
ExpandListContract
{
public
interface
ExpandListContract
{
...
@@ -19,5 +20,7 @@ public interface ExpandListContract {
...
@@ -19,5 +20,7 @@ public interface ExpandListContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
IModel
{
interface
Model
extends
IModel
{
Observable
<
BaseResult
>
getExpandList
(
int
restaurantId
);
Observable
<
BaseResult
>
getExpandList
(
int
restaurantId
);
Observable
<
BaseResult
>
updateExpandInfo
(
RequestBody
requestBody
);
}
}
}
}
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/model/ExpandListModel.java
View file @
5e45c2a8
...
@@ -4,7 +4,6 @@ import android.app.Application;
...
@@ -4,7 +4,6 @@ import android.app.Application;
import
com.gingersoft.gsa.cloud.base.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.base.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.main.mvp.contract.ExpandListContract
;
import
com.gingersoft.gsa.cloud.main.mvp.contract.ExpandListContract
;
import
com.gingersoft.gsa.cloud.main.mvp.model.bean.FunctionBean
;
import
com.gingersoft.gsa.cloud.main.mvp.model.service.ExpandListService
;
import
com.gingersoft.gsa.cloud.main.mvp.model.service.ExpandListService
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.di.scope.ActivityScope
;
...
@@ -14,6 +13,7 @@ import com.jess.arms.mvp.BaseModel;
...
@@ -14,6 +13,7 @@ import com.jess.arms.mvp.BaseModel;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
@ActivityScope
@ActivityScope
...
@@ -40,4 +40,9 @@ public class ExpandListModel extends BaseModel implements ExpandListContract.Mod
...
@@ -40,4 +40,9 @@ public class ExpandListModel extends BaseModel implements ExpandListContract.Mod
public
Observable
<
BaseResult
>
getExpandList
(
int
restaurantId
)
{
public
Observable
<
BaseResult
>
getExpandList
(
int
restaurantId
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
ExpandListService
.
class
).
getExpandList
(
restaurantId
);
return
mRepositoryManager
.
obtainRetrofitService
(
ExpandListService
.
class
).
getExpandList
(
restaurantId
);
}
}
@Override
public
Observable
<
BaseResult
>
updateExpandInfo
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
ExpandListService
.
class
).
updateExpandInfo
(
requestBody
);
}
}
}
\ No newline at end of file
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/model/service/ExpandListService.java
View file @
5e45c2a8
...
@@ -4,11 +4,20 @@ import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
...
@@ -4,11 +4,20 @@ import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
okhttp3.RequestBody
;
import
retrofit2.http.Body
;
import
retrofit2.http.GET
;
import
retrofit2.http.GET
;
import
retrofit2.http.Headers
;
import
retrofit2.http.POST
;
import
retrofit2.http.Query
;
import
retrofit2.http.Query
;
public
interface
ExpandListService
{
public
interface
ExpandListService
{
@GET
(
"restaurant/ext/list"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
@GET
(
"restaurant/ext/list"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
BaseResult
>
getExpandList
(
@Query
(
"restaurantId"
)
int
restaurantId
);
Observable
<
BaseResult
>
getExpandList
(
@Query
(
"restaurantId"
)
int
restaurantId
);
@Headers
({
"Domain-Name: system_url"
})
@POST
(
"restaurantExt/batchUpdate"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
BaseResult
>
updateExpandInfo
(
@Body
RequestBody
requestBody
);
}
}
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/presenter/ExpandListPresenter.java
View file @
5e45c2a8
...
@@ -5,6 +5,8 @@ import android.app.Application;
...
@@ -5,6 +5,8 @@ import android.app.Application;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.base.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.base.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.base.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.base.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.database.bean.ExpandInfo
;
import
com.gingersoft.gsa.cloud.database.bean.ExpandInfo
;
import
com.gingersoft.gsa.cloud.main.mvp.contract.ExpandListContract
;
import
com.gingersoft.gsa.cloud.main.mvp.contract.ExpandListContract
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.di.scope.ActivityScope
;
...
@@ -21,6 +23,8 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
...
@@ -21,6 +23,8 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import
io.reactivex.schedulers.Schedulers
;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
okhttp3.MediaType
;
import
okhttp3.RequestBody
;
@ActivityScope
@ActivityScope
...
@@ -63,11 +67,33 @@ public class ExpandListPresenter extends BasePresenter<ExpandListContract.Model,
...
@@ -63,11 +67,33 @@ public class ExpandListPresenter extends BasePresenter<ExpandListContract.Model,
if
(
result
.
getData
()
!=
null
)
{
if
(
result
.
getData
()
!=
null
)
{
List
<
ExpandInfo
>
expandInfoList
=
JsonUtils
.
parseArray
(
result
.
getData
(),
ExpandInfo
.
class
);
List
<
ExpandInfo
>
expandInfoList
=
JsonUtils
.
parseArray
(
result
.
getData
(),
ExpandInfo
.
class
);
mRootView
.
loadExpandList
(
expandInfoList
);
mRootView
.
loadExpandList
(
expandInfoList
);
}
}
}
});
}
}
public
void
updateExpandInfo
(
List
<
ExpandInfo
>
data
){
RequestBody
requestBody
=
RequestBody
.
create
(
MediaType
.
parse
(
"application/json"
),
GsonUtils
.
GsonString
(
data
));
mModel
.
updateExpandInfo
(
requestBody
)
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
""
))
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSubscriber
<
BaseResult
>(
mErrorHandler
)
{
@Override
public
void
onNext
(
BaseResult
result
)
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
result
.
getErrMsg
())){
mRootView
.
showMessage
(
result
.
getErrMsg
());
}
if
(
result
.
isSuccess
())
{
mRootView
.
killMyself
();
}
}
}
}
});
});
}
}
}
}
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/adapter/ExpandListAdapter.java
View file @
5e45c2a8
...
@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.adapter;
...
@@ -2,7 +2,6 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.adapter;
import
android.text.Editable
;
import
android.text.Editable
;
import
android.text.TextWatcher
;
import
android.text.TextWatcher
;
import
android.util.Log
;
import
android.view.View
;
import
android.view.View
;
import
android.view.inputmethod.EditorInfo
;
import
android.view.inputmethod.EditorInfo
;
import
android.widget.EditText
;
import
android.widget.EditText
;
...
@@ -18,7 +17,6 @@ import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
...
@@ -18,7 +17,6 @@ import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import
com.gingersoft.gsa.cloud.main.R
;
import
com.gingersoft.gsa.cloud.main.R
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
java.text.DateFormat
;
import
java.text.DateFormat
;
import
java.text.ParseException
;
import
java.text.ParseException
;
...
@@ -28,7 +26,7 @@ import java.util.List;
...
@@ -28,7 +26,7 @@ import java.util.List;
public
class
ExpandListAdapter
extends
BaseQuickAdapter
<
ExpandInfo
,
BaseViewHolder
>
{
public
class
ExpandListAdapter
extends
BaseQuickAdapter
<
ExpandInfo
,
BaseViewHolder
>
{
public
ExpandListAdapter
(
@Nullable
List
<
ExpandInfo
>
data
)
{
public
ExpandListAdapter
(
List
<
ExpandInfo
>
data
)
{
super
(
R
.
layout
.
main_expand_item
,
data
);
super
(
R
.
layout
.
main_expand_item
,
data
);
for
(
int
i
=
0
;
i
<
data
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
data
.
size
();
i
++)
{
data
.
get
(
i
).
setDataType
(
i
);
data
.
get
(
i
).
setDataType
(
i
);
...
@@ -37,7 +35,7 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
...
@@ -37,7 +35,7 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
@Override
@Override
protected
void
convert
(
@NotNull
BaseViewHolder
baseViewHolder
,
ExpandInfo
function
)
{
protected
void
convert
(
@NotNull
BaseViewHolder
baseViewHolder
,
ExpandInfo
function
)
{
baseViewHolder
.
setText
(
R
.
id
.
tv_expand_name
,
function
.
get
Remark
());
baseViewHolder
.
setText
(
R
.
id
.
tv_expand_name
,
function
.
get
ShowName
());
EditText
editText
=
baseViewHolder
.
getView
(
R
.
id
.
ed_expand_edit
);
EditText
editText
=
baseViewHolder
.
getView
(
R
.
id
.
ed_expand_edit
);
Switch
btn
=
baseViewHolder
.
getView
(
R
.
id
.
switch_expand_boolean
);
Switch
btn
=
baseViewHolder
.
getView
(
R
.
id
.
switch_expand_boolean
);
TextView
tvTime
=
baseViewHolder
.
getView
(
R
.
id
.
tv_expand_time
);
TextView
tvTime
=
baseViewHolder
.
getView
(
R
.
id
.
tv_expand_time
);
...
@@ -75,27 +73,29 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
...
@@ -75,27 +73,29 @@ public class ExpandListAdapter extends BaseQuickAdapter<ExpandInfo, BaseViewHold
tvTime
.
setVisibility
(
View
.
VISIBLE
);
tvTime
.
setVisibility
(
View
.
VISIBLE
);
Calendar
calendar
=
Calendar
.
getInstance
();
Calendar
calendar
=
Calendar
.
getInstance
();
try
{
if
(
function
.
getValueDatetime
()
!=
null
)
{
calendar
.
setTime
(
DateFormat
.
getDateTimeInstance
().
parse
(
function
.
getValueDatetime
()));
try
{
}
catch
(
ParseException
e
)
{
calendar
.
setTime
(
DateFormat
.
getDateTimeInstance
().
parse
(
function
.
getValueDatetime
()));
e
.
printStackTrace
();
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
tvTime
.
setText
(
TimeUtils
.
getStringByFormat
(
calendar
.
getTime
(),
TimeUtils
.
DATE_FORMAT_DATE
));
//Sep 11, 2020 6:10:42 PM
tvTime
.
setOnClickListener
(
v
->
{
//时间选择器
new
TimePickerView
.
Builder
(
getContext
(),
(
date
,
view
)
->
{
tvTime
.
setText
(
TimeUtils
.
parseDateToString
(
date
,
TimeUtils
.
DATE_FORMAT_DATE
));
function
.
setUpdate
(
true
);
})
.
setDate
(
calendar
)
.
setType
(
TimePickerView
.
Type
.
YEAR_MONTH_DAY
)
.
setContentSize
(
24
)
.
setLabel
(
""
,
""
,
""
,
""
,
""
,
""
)
.
build
()
.
show
();
});
}
}
tvTime
.
setText
(
TimeUtils
.
getStringByFormat
(
calendar
.
getTime
(),
TimeUtils
.
DATE_FORMAT_DATE
));
//Sep 11, 2020 6:10:42 PM
tvTime
.
setOnClickListener
(
v
->
{
//时间选择器
new
TimePickerView
.
Builder
(
getContext
(),
(
date
,
view
)
->
{
tvTime
.
setText
(
TimeUtils
.
parseDateToString
(
date
,
TimeUtils
.
DATE_FORMAT_DATE
));
function
.
setUpdate
(
true
);
})
.
setDate
(
calendar
)
.
setType
(
TimePickerView
.
Type
.
YEAR_MONTH_DAY
)
.
setContentSize
(
24
)
.
setLabel
(
""
,
""
,
""
,
""
,
""
,
""
)
.
build
()
.
show
();
});
}
else
{
}
else
{
btn
.
setVisibility
(
View
.
GONE
);
btn
.
setVisibility
(
View
.
GONE
);
tvTime
.
setVisibility
(
View
.
GONE
);
tvTime
.
setVisibility
(
View
.
GONE
);
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrintBill.java
View file @
5e45c2a8
...
@@ -2,10 +2,12 @@ package com.joe.print.mvp.print;
...
@@ -2,10 +2,12 @@ package com.joe.print.mvp.print;
import
android.content.Context
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.text.TextUtils
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
com.gingersoft.gsa.cloud.base.common.bean.BillingBean
;
import
com.gingersoft.gsa.cloud.base.common.bean.BillingBean
;
import
com.gingersoft.gsa.cloud.base.common.bean.MemberInfo
;
import
com.gingersoft.gsa.cloud.base.common.bean.MemberInfo
;
import
com.gingersoft.gsa.cloud.base.common.bean.PayMethod
;
import
com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney
;
import
com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
...
@@ -39,7 +41,49 @@ public class PrintBill extends PrinterRoot {
...
@@ -39,7 +41,49 @@ public class PrintBill extends PrinterRoot {
@Override
@Override
public
String
getPrintData
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
public
String
getPrintData
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
return
null
;
List
<
OrderDetail
>
foodList
=
MyOrderManage
.
getInstance
().
getOrderFoodList
();
TableBean
.
DataBean
tableBean
=
OpenTableManage
.
getDefault
().
getTableBean
();
StringBuilder
payInfo
=
new
StringBuilder
();
for
(
PayMethod
payMethod
:
MyOrderManage
.
getInstance
().
getBillMoney
())
{
payInfo
.
append
(
payMethod
.
getPayName
()
+
" "
).
append
(
payMethod
.
getPayMoney
());
}
StringBuilder
memberIntegerInfo
=
new
StringBuilder
();
OrderDetails
.
DataBean
data
=
getOrderMemberInfo
();
MyOrderManage
.
getInstance
().
getIntegralQrcode
();
if
(
data
.
getAddPoints
()
!=
0
||
data
.
getOldPoints
()
!=
0
||
data
.
getAddPoints
()
!=
0
)
{
memberIntegerInfo
.
append
(
getPLable
(
"本次積分:"
+
data
.
getAddPoints
(),
HTML_PRINT_GRAVITY_LEFT
))
.
append
(
getPLable
(
"結餘積分:"
+
data
.
getNowPoints
(),
HTML_PRINT_GRAVITY_LEFT
))
.
append
(
getPLable
(
"上次積分:"
+
data
.
getOldPoints
(),
HTML_PRINT_GRAVITY_LEFT
));
//名稱中間替換為*號
if
(
data
.
getMEMBER_NAME
()
!=
null
&&
data
.
getMEMBER_NAME
().
length
()
>
0
)
{
memberIntegerInfo
.
append
(
getPLable
(
"會員名稱:"
+
getReplaceAfter
(
data
.
getMEMBER_NAME
()),
HTML_PRINT_GRAVITY_LEFT
));
}
if
(
data
.
getPHONE
()
!=
null
&&
data
.
getPHONE
().
length
()
>
0
)
{
memberIntegerInfo
.
append
(
getPLable
(
"會員電話:"
+
getReplaceAfter
(
data
.
getPHONE
()),
HTML_PRINT_GRAVITY_LEFT
));
}
}
String
stringBuilder
=
"<html><body>"
+
getHtmlPrintHeadInfo
()
+
getHtmlPrintHeadOrderInfo
(
tableBean
)
+
generateFoodInfo
(
foodList
)
+
getHtmlBillInfo
()
+
getWholeLine
()
+
getPLable
(
payInfo
.
toString
(),
HTML_PRINT_GRAVITY_LEFT
)
+
getWholeLine
()
+
getPLable
(
memberIntegerInfo
.
toString
(),
HTML_PRINT_GRAVITY_LEFT
);
String
integralQrCode
=
MyOrderManage
.
getInstance
().
getIntegralQrcode
();
if
(!
TextUtils
.
isEmpty
(
integralQrCode
)
&&
(
boolean
)
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
ToPrintQRCode
,
false
))
{
stringBuilder
+=
getPLable
(
"請掃描二維碼"
,
HTML_PRINT_GRAVITY_CENTER
)
+
getHtmlQrCode
(
MyOrderManage
.
getInstance
().
getIntegralQrcode
())
+
getPLable
(
"《追加積分到個人賬戶》"
,
HTML_PRINT_GRAVITY_CENTER
);
}
stringBuilder
+=
"</body></html>"
;
return
stringBuilder
;
}
}
@Override
@Override
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrintOtherOrderClosing.java
View file @
5e45c2a8
...
@@ -6,6 +6,10 @@ import android.view.LayoutInflater;
...
@@ -6,6 +6,10 @@ import android.view.LayoutInflater;
import
android.view.View
;
import
android.view.View
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
...
@@ -25,9 +29,6 @@ import java.util.HashMap;
...
@@ -25,9 +29,6 @@ import java.util.HashMap;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
/**
/**
* 打印外賣接單 結賬單
* 打印外賣接單 結賬單
*/
*/
...
@@ -240,22 +241,4 @@ public class PrintOtherOrderClosing extends PrinterRoot {
...
@@ -240,22 +241,4 @@ public class PrintOtherOrderClosing extends PrinterRoot {
return
new
PrintBillBean
(
title
,
value
);
return
new
PrintBillBean
(
title
,
value
);
}
}
private
String
getReplaceAfter
(
String
str
)
{
if
(
str
!=
null
&&
str
.
length
()
>
0
)
{
int
replaceStrCount
=
str
.
length
()
/
2
;
StringBuilder
buffer
=
new
StringBuilder
();
if
(
replaceStrCount
>=
5
)
{
replaceStrCount
=
str
.
length
()
-
5
;
}
for
(
int
i
=
0
;
i
<
replaceStrCount
;
i
++)
{
buffer
.
append
(
"*"
);
}
String
header
=
str
.
substring
(
0
,
1
);
String
tail
=
str
.
substring
(
replaceStrCount
+
1
);
return
header
+
buffer
.
toString
()
+
tail
;
}
return
""
;
}
}
}
\ No newline at end of file
print-module/src/main/java/com/joe/print/mvp/print/PrintPrjKitchen.java
View file @
5e45c2a8
...
@@ -179,18 +179,18 @@ public class PrintPrjKitchen extends PrinterRoot {
...
@@ -179,18 +179,18 @@ public class PrintPrjKitchen extends PrinterRoot {
}
else
{
}
else
{
tvTakeTime
.
setVisibility
(
View
.
GONE
);
tvTakeTime
.
setVisibility
(
View
.
GONE
);
}
}
if
(
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
PrintFirstOrder
,
false
))
{
//
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintFirstOrder, false)) {
tvFirstOrder
.
setText
(
"<頭單>"
);
//
tvFirstOrder.setText("<頭單>");
tvFirstOrder
.
setVisibility
(
prjBean
.
getIsFirstSendOrder
()
==
1
?
View
.
VISIBLE
:
View
.
GONE
);
//
tvFirstOrder.setVisibility(prjBean.getIsFirstSendOrder() == 1 ? View.VISIBLE : View.GONE);
}
else
{
//
} else {
tvFirstOrder
.
setVisibility
(
View
.
GONE
);
//
tvFirstOrder.setVisibility(View.GONE);
}
//
}
//
if
(
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
PrintStatisticsAmount
,
false
))
{
//
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintStatisticsAmount, false)) {
tvPrintQuantity
.
setText
(
prjBean
.
getQuantity
()
+
""
);
//
tvPrintQuantity.setText(prjBean.getQuantity() + "");
}
else
{
//
} else {
tvPrintQuantity
.
setVisibility
(
View
.
GONE
);
//
tvPrintQuantity.setVisibility(View.GONE);
}
//
}
//開台時間
//開台時間
tvOpeningTime
.
setText
(
TimeUtils
.
parseTimeRepeat
(
prjBean
.
getOrderDetailsTime
(),
TimeUtils
.
DEFAULT_DATE_MDHM
));
tvOpeningTime
.
setText
(
TimeUtils
.
parseTimeRepeat
(
prjBean
.
getOrderDetailsTime
(),
TimeUtils
.
DEFAULT_DATE_MDHM
));
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrintServe.java
View file @
5e45c2a8
...
@@ -3,16 +3,8 @@ package com.joe.print.mvp.print;
...
@@ -3,16 +3,8 @@ package com.joe.print.mvp.print;
import
android.content.Context
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.view.Gravity
;
import
android.view.Gravity
;
import
android.view.View
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.common.bean.BillingBean
;
import
com.gingersoft.gsa.cloud.base.order.adapter.print.FoodAdapter
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage
;
...
@@ -43,7 +35,15 @@ public class PrintServe extends PrinterRoot {
...
@@ -43,7 +35,15 @@ public class PrintServe extends PrinterRoot {
@Override
@Override
public
String
getPrintData
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
public
String
getPrintData
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
return
null
;
List
<
OrderDetail
>
foodList
=
MyOrderManage
.
getInstance
().
getOrderFoodList
();
TableBean
.
DataBean
tableBean
=
OpenTableManage
.
getDefault
().
getTableBean
();
String
stringBuilder
=
"<html><body>"
+
getHtmlPrintHeadInfo
()
+
getHtmlPrintHeadOrderInfo
(
tableBean
)
+
generateFoodInfoTwoColumns
(
foodList
)
+
getWholeLine
()
+
getHtmlFooter
()
+
"</body></html>"
;
return
stringBuilder
;
}
}
@Override
@Override
...
@@ -52,69 +52,6 @@ public class PrintServe extends PrinterRoot {
...
@@ -52,69 +52,6 @@ public class PrintServe extends PrinterRoot {
}
}
private
Bitmap
getServeBitmap
(
Context
context
,
PrinterDeviceBean
printerDeviceBean
)
{
List
<
OrderDetail
>
foodList
=
MyOrderManage
.
getInstance
().
getNewFoodList
();
if
(
foodList
==
null
||
foodList
.
size
()
<=
0
)
{
return
null
;
}
View
view
=
LinearLayout
.
inflate
(
context
,
R
.
layout
.
print_layout_print
,
null
);
TextView
brandName
=
view
.
findViewById
(
R
.
id
.
tv_brand_name
);
TextView
restaurantName
=
view
.
findViewById
(
R
.
id
.
tv_restaurant_name
);
TextView
tableNum
=
view
.
findViewById
(
R
.
id
.
tv_dining_table_number
);
TextView
people
=
view
.
findViewById
(
R
.
id
.
tv_people
);
TextView
orderNum
=
view
.
findViewById
(
R
.
id
.
tv_order_num
);
TextView
orderData
=
view
.
findViewById
(
R
.
id
.
tv_date
);
RecyclerView
rvFood
=
view
.
findViewById
(
R
.
id
.
rv_food
);
RecyclerView
rvBillAmount
=
view
.
findViewById
(
R
.
id
.
rv_bill_amount
);
TextView
mTvTotalAmount
=
view
.
findViewById
(
R
.
id
.
tv_total_amount
);
TextView
checkOutTime
=
view
.
findViewById
(
R
.
id
.
tv_checkout_time
);
TextView
line_food_info
=
view
.
findViewById
(
R
.
id
.
line_food_info
);
TableBean
.
DataBean
tableBean
=
OpenTableManage
.
getDefault
().
getTableBean
();
brandName
.
setText
(
GsaCloudApplication
.
getBrandName
());
restaurantName
.
setText
(
GsaCloudApplication
.
getRestaurantName
());
tableNum
.
setText
(
"餐檯:"
+
tableBean
.
getTableName
());
people
.
setText
(
"人數:"
+
OpenTableManage
.
getDefault
().
getPeopleNumber
());
orderData
.
setText
(
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
));
checkOutTime
.
setText
(
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
));
FoodAdapter
foodAdapter
=
new
FoodAdapter
(
foodList
);
rvFood
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
rvFood
.
setAdapter
(
foodAdapter
);
List
<
BillingBean
>
billingBeans
=
new
ArrayList
<>();
// if (billingBeans.size() <= 0) {
line_food_info
.
setVisibility
(
View
.
GONE
);
rvBillAmount
.
setVisibility
(
View
.
GONE
);
view
.
findViewById
(
R
.
id
.
line_price_info
).
setVisibility
(
View
.
GONE
);
// } else {
// BillAdapter billAdapter = new BillAdapter(billingBeans);
// rvBillAmount.setLayoutManager(new LinearLayoutManager(context));
// rvBillAmount.setAdapter(billAdapter);
// }
if
(
OpenTableManage
.
getDefault
().
getTableBean
()
!=
null
)
{
tableNum
.
setText
(
OpenTableManage
.
getDefault
().
getTableBean
().
getTableName
());
people
.
setText
(
OpenTableManage
.
getDefault
().
getPeopleNumber
()
+
""
);
}
if
(
MyOrderManage
.
getInstance
().
getOrderId
()
!=
-
1
)
{
orderNum
.
setText
(
MyOrderManage
.
getInstance
().
getOrderId
()
+
""
);
}
// BigDecimal totalAmount = new BigDecimal(0);
// for (OrderDetail OrderDetail : foodList) {
// totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(OrderDetail.getPrice(), OrderDetail.getNumber()));
// }
//總金額
view
.
findViewById
(
R
.
id
.
tv_total_amount_text
).
setVisibility
(
View
.
GONE
);
mTvTotalAmount
.
setVisibility
(
View
.
GONE
);
mTvTotalAmount
.
setText
(
MyOrderManage
.
getInstance
().
getTotalAmount
()
+
""
);
//加载条形码
// ImageView ivBarCode = view.findViewById(R.id.iv_bar_code);
// ivBarCode.setImageBitmap(BitmapUtil.generateBitmap("12312112131", 2, 450, 150));
return
viewToZoomBitmap
(
context
,
view
,
printerDeviceBean
);
}
private
Bitmap
getBitmap
(
Context
mContext
,
PrinterDeviceBean
printerDeviceBean
)
{
private
Bitmap
getBitmap
(
Context
mContext
,
PrinterDeviceBean
printerDeviceBean
)
{
List
<
OrderDetail
>
foodList
=
MyOrderManage
.
getInstance
().
getOrderFoodList
();
List
<
OrderDetail
>
foodList
=
MyOrderManage
.
getInstance
().
getOrderFoodList
();
if
(
foodList
==
null
||
foodList
.
size
()
<=
0
)
{
if
(
foodList
==
null
||
foodList
.
size
()
<=
0
)
{
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrintSlip.java
View file @
5e45c2a8
...
@@ -5,7 +5,6 @@ import android.graphics.Bitmap;
...
@@ -5,7 +5,6 @@ import android.graphics.Bitmap;
import
android.view.Gravity
;
import
android.view.Gravity
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.common.bean.BillingBean
;
import
com.gingersoft.gsa.cloud.base.common.bean.BillingBean
;
import
com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney
;
import
com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
...
@@ -48,62 +47,16 @@ public class PrintSlip extends PrinterRoot {
...
@@ -48,62 +47,16 @@ public class PrintSlip extends PrinterRoot {
@Override
@Override
public
String
getPrintData
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
public
String
getPrintData
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
List
<
OrderDetail
>
foodList
=
MyOrderManage
.
getInstance
().
getOrderFoodList
();
List
<
OrderDetail
>
foodList
=
MyOrderManage
.
getInstance
().
getOrderFoodList
();
if
(
foodList
==
null
||
foodList
.
size
()
<=
0
)
{
return
null
;
}
TableBean
.
DataBean
tableBean
=
OpenTableManage
.
getDefault
().
getTableBean
();
TableBean
.
DataBean
tableBean
=
OpenTableManage
.
getDefault
().
getTableBean
();
StringBuilder
stringBuilder
=
new
StringBuilder
();
String
stringBuilder
=
"<html><body>"
+
stringBuilder
.
append
(
"<html><body>"
);
getHtmlPrintHeadInfo
()
+
stringBuilder
.
append
(
getPLable
(
GsaCloudApplication
.
getBrandName
()))
getHtmlPrintHeadOrderInfo
(
tableBean
)
+
.
append
(
getPLable
(
GsaCloudApplication
.
getRestaurantName
()))
generateFoodInfo
(
foodList
)
+
.
append
(
getLineLable
())
getHtmlBillInfo
()
+
.
append
(
getPLable
(
"餐檯:"
+
tableBean
.
getTableName
()))
getWholeLine
()
+
.
append
(
getPLable
(
"人數:"
+
OpenTableManage
.
getDefault
().
getPeopleNumber
()))
getHtmlFooter
()
+
"</body></html>"
;
.
append
(
getPLable
(
"單號:"
+
MyOrderManage
.
getInstance
().
getOrderId
()))
return
stringBuilder
;
.
append
(
getPLable
(
"日期:"
+
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
)))
.
append
(
getLineLable
())
.
append
(
"<p>\n"
+
"<div align=\"left\">Item 1 - WisePOS</div>\n"
+
"<div align=\"right\">$999</div>\n"
+
"<div align=\"left\">Item 2 - Printer</div>\n"
+
"<div align=\"right\">$299</div>\n"
+
"<div align=\"left\">Item 3 - Cup</div>\n"
+
"<div align=\"right\">$78</div> \n"
+
"<div align=\"left\">Item 4 - Data SIM</div>\n"
+
"<div align=\"right\">$99</div> \n"
+
"<div align=\"right\">____________</div>\n"
+
"<div align=\"right\">Total: $XXX</div>\n"
+
"</p>"
);
stringBuilder
.
append
(
"</body></html>"
);
//<h1>Heading 1</h1><br/>
//<h2>Heading 2</h2><br/>
//<h3>Heading 3</h3><br/>
//<h4>Heading 4</h4><br/>
//<p align="right">Right</p><div align="center">Center</div>
//<p align="left">Left</p><br/>
//<img src="https%3A%2F%2Fmedia.licdn.com%2Fdms%2Fimage%2FC510BAQFnb_2T7cLREw%2Fcomp
// any-logo_200_200%2F0%3Fe%3D2159024400%26v%3Dbeta%26t%3De21PjbFv5en9quafFnWxkwWiJh
// 3aAFqZHJJsoE81ggk"></img><br/>
// <ol start="10">
//<li>A</li>
//<li>B</li>
//</ol>
//<ul>
//<li>A</li>
//<li>B</li>
//</ul>
return
null
;
}
// private String getDiv(String content, String location) {
//
// }
private
String
getLineLable
()
{
return
"<br/>"
;
}
}
private
String
getPLable
(
String
content
)
{
private
String
getPLable
(
String
content
)
{
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrintUtils.java
View file @
5e45c2a8
package
com
.
joe
.
print
.
mvp
.
print
;
package
com
.
joe
.
print
.
mvp
.
print
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.view.View
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter
;
import
com.gingersoft.gsa.cloud.base.adapter.print.BillTypeAdapter
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.common.bean.BillingBean
;
import
com.gingersoft.gsa.cloud.base.common.bean.PayMethod
;
import
com.gingersoft.gsa.cloud.base.order.adapter.print.FoodAdapter
;
import
com.gingersoft.gsa.cloud.base.order.adapter.print.KitChenPrintFoodAdapter
;
import
com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage
;
import
com.gingersoft.gsa.cloud.base.table.bean.TableBean
;
import
com.gingersoft.gsa.cloud.base.utils.MoneyUtil
;
import
com.gingersoft.gsa.cloud.base.utils.PrintTransitUtils
;
import
com.gingersoft.gsa.cloud.base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.base.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.base.utils.view.ImageUtils
;
import
com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils
;
import
com.joe.print.R
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
/**
/**
* Created by Wyh on 2020/2/10.
* Created by Wyh on 2020/2/10.
...
@@ -41,390 +9,175 @@ import androidx.recyclerview.widget.RecyclerView;
...
@@ -41,390 +9,175 @@ import androidx.recyclerview.widget.RecyclerView;
*/
*/
public
class
PrintUtils
{
public
class
PrintUtils
{
private
static
final
String
TAG
=
"PrintUtils"
;
//一行42個 17.5
private
static
int
paperWidth
=
380
;
public
final
static
int
lineLength
=
42
;
private
static
int
foodNameSpace
=
20
;
private
static
int
foodNumSpace
=
8
;
private
static
int
foodAmountSpace
=
12
;
public
final
static
double
BBPOS_Chinese_Length
=
2.4
;
/**
/**
* @param mContext 上下文
* @param content 要顯示的內容
* @param type 打印類型 0:上菜紙
* @param maxLength 字符串最大長度
* * 1:印單
* @param chineseCharLength 一個中文字符所佔長度
* * 2:結賬單
* @return 按照maxLength長度分割後的string集合
* * 3:廚房單
* @param paperWidth 紙張寬度
* @return 返回需要打印的圖片
*/
*/
public
static
List
<
Bitmap
>
getPrintBitmap
(
Context
mContext
,
int
type
,
int
paperWidth
)
{
public
static
List
<
String
>
getFormatList
(
String
content
,
int
maxLength
,
double
chineseCharLength
)
{
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
String
chinese
=
"[\u4e00-\u9fa5]"
;
PrintUtils
.
paperWidth
=
paperWidth
;
List
<
String
>
stringList
=
new
ArrayList
<>();
if
(
type
==
-
1
)
{
int
length
=
0
;
//測試紙
int
startIndex
=
0
;
bitmaps
.
add
(
getTestPrintBitmap
(
mContext
));
for
(
int
i
=
0
;
i
<
content
.
length
();
i
++)
{
}
else
if
(
type
==
0
)
{
String
temp
=
content
.
substring
(
i
,
i
+
1
);
//上菜紙
//判斷中英文,累積長度
bitmaps
.
add
(
getPrintBitmap
(
mContext
,
MyOrderManage
.
getInstance
().
getNewFoodList
()));
if
(
temp
.
matches
(
chinese
))
{
}
else
if
(
type
==
1
)
{
length
+=
chineseCharLength
;
//印單,可能會有還未送單的食品,同時也要將未送單的食品以廚房單的格式打印出來
}
else
{
bitmaps
.
add
(
getPrintBitmap
(
mContext
));
length
+=
1
;
bitmaps
.
addAll
(
getKitchenBitmap
(
mContext
));
}
}
else
if
(
type
==
2
)
{
if
(
length
>
maxLength
)
{
//結賬單
i
-=
1
;
bitmaps
.
add
(
getPrintBillBitmap
(
mContext
));
}
}
else
if
(
type
==
3
)
{
//長度達到設定的值
//廚房單,需要切紙
if
(
length
>=
maxLength
)
{
bitmaps
.
addAll
(
getKitchenBitmap
(
mContext
));
String
headerStr
=
content
.
substring
(
startIndex
,
i
+
1
);
}
else
if
(
type
==
4
)
{
String
lastStr
=
headerStr
.
substring
(
headerStr
.
length
()
-
1
);
//清機報表
if
(!
lastStr
.
matches
(
chinese
))
{
bitmaps
.
add
(
getReportBitmap
(
mContext
));
//只要不是中文
}
if
(
headerStr
.
length
()
+
1
<=
content
.
length
())
{
return
bitmaps
;
String
nextFirstStr
=
content
.
substring
(
headerStr
.
length
(),
headerStr
.
length
()
+
1
);
}
if
(!
nextFirstStr
.
matches
(
chinese
))
{
//如果截取後最後一個字符是英文,則需要判斷下一個字符是不是英文
//是,那麼這是一整個單詞,需要截取整段換到下一行去
private
static
List
<
Bitmap
>
getKitchenBitmap
(
Context
mContext
)
{
for
(
int
j
=
headerStr
.
length
()
-
1
;
j
>=
0
;
j
--)
{
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
String
str
=
headerStr
.
charAt
(
j
)
+
""
;
// Map<String, List<Bitmap>> bitmapMaps = new HashMap<>();
if
(!
str
.
matches
(
chinese
))
{
//找到不是英文的
List
<
OrderDetail
>
orderDetails
=
MyOrderManage
.
getInstance
().
getNewFoodList
();
String
newHeaderStr
=
headerStr
.
substring
(
0
,
j
+
1
);
if
(
orderDetails
!=
null
)
{
stringList
.
add
(
newHeaderStr
);
//廚房單,可能會有多個IP打印
startIndex
=
i
-
(
headerStr
.
length
()
-
newHeaderStr
.
length
())
+
1
;
//獲得ip打印列表,
length
=
0
;
//再將食品數據根據打印位置分組。
i
=
startIndex
;
//打印一組之後,關閉連接,切換第二台打印機ip,如此循環
break
;
//打印完成之後,返回所有打印結果。
}
Map
<
String
,
List
<
OrderDetail
>>
foodMaps
=
new
HashMap
<>();
if
(
j
==
0
)
{
String
emptyPrintLocation
=
"null"
;
//部分食品沒有打印位置時設置為此key,比如這是第一個食品,沒有打印位置時
//循環完了都沒找到,就不管了
int
lastEmptyPrintLocationIndex
=
0
;
//上一次遍歷到第一個食品時都沒有打印位置時,開始的食品位置
stringList
.
add
(
headerStr
);
//將所有食品進行遍歷,分組
startIndex
=
i
+
1
;
for
(
int
i
=
0
;
i
<
orderDetails
.
size
();
i
++)
{
length
=
0
;
OrderDetail
food
=
orderDetails
.
get
(
i
);
if
(
TextUtil
.
isEmptyOrNullOrUndefined
(
food
.
getPrintseting
()))
{
//如果沒有打印位置,向上尋找
if
(
i
==
0
)
{
food
.
setPrintseting
(
emptyPrintLocation
);
addToMap
(
foodMaps
,
food
);
}
else
{
for
(
int
j
=
i
-
1
;
j
>=
lastEmptyPrintLocationIndex
;
j
--)
{
//一直遍歷,直到找到有打印位置的食品
// 如果所有食品都沒有打印位置的情況,為了避免多次遍歷
// 如果本次遍歷到第一個食品,都沒有打印位置,記錄下這一次開始遍歷的下標,下一次遍歷到這個位置就停止
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
orderDetails
.
get
(
j
).
getPrintseting
()))
{
//一直遍歷,直到找到有打印位置的食品
//判斷是否帶*號
if
(
orderDetails
.
get
(
j
).
getPrintseting
().
contains
(
"*"
))
{
//帶*號,則需要取得通過下標加去掉*號的標識來取得map中的集合,將i食品裝進去,這樣就能打印在一張紙上
//如果沒取得集合,則通過打印位置去map取得集合,將j食品從map中移除,將這個j食品的和i食品裝一起
// 生成新的key。為當前下標+去掉*的打印位置,不帶*的key取得的食品集合才能打印在一張紙上。
String
newKey
=
j
+
orderDetails
.
get
(
j
).
getPrintseting
().
replaceAll
(
"\\*"
,
""
);
//通過newKey取得map中的集合
List
<
OrderDetail
>
newKeyfoods
=
foodMaps
.
get
(
newKey
);
if
(
newKeyfoods
!=
null
)
{
newKeyfoods
.
add
(
food
);
}
else
{
List
<
OrderDetail
>
printsetingFoods
=
foodMaps
.
get
(
orderDetails
.
get
(
j
).
getPrintseting
());
if
(
printsetingFoods
!=
null
)
{
//理論上不會為空
printsetingFoods
.
remove
(
printsetingFoods
.
lastIndexOf
(
orderDetails
.
get
(
j
)));
//移除掉之後,put到newkey中
List
<
OrderDetail
>
newFoods
=
new
ArrayList
<>();
newFoods
.
add
(
orderDetails
.
get
(
j
));
newFoods
.
add
(
food
);
foodMaps
.
put
(
newKey
,
newFoods
);
}
}
break
;
break
;
}
else
{
//沒有*號,不需要做多餘的操作
food
.
setPrintseting
(
orderDetails
.
get
(
j
).
getPrintseting
());
addToMap
(
foodMaps
,
food
);
}
}
}
else
if
(
j
==
lastEmptyPrintLocationIndex
)
{
//從i到0的打印位置都沒有,記錄下i,下次只遍歷到i就停下來
lastEmptyPrintLocationIndex
=
i
;
//如果找到最初的那個食品,也沒有打印位置,設置打印位置為"null"
food
.
setPrintseting
(
emptyPrintLocation
);
addToMap
(
foodMaps
,
food
);
}
}
}
else
{
stringList
.
add
(
headerStr
);
startIndex
=
i
+
1
;
length
=
0
;
}
}
}
else
{
stringList
.
add
(
headerStr
);
startIndex
=
i
+
1
;
length
=
0
;
}
}
}
else
{
}
else
{
//有打印位置,
stringList
.
add
(
headerStr
);
//已經保存過這個位置的,
startIndex
=
i
+
1
;
addToMap
(
foodMaps
,
food
);
length
=
0
;
}
}
//通過打印位置生成多張用於打印的bitmap
for
(
Map
.
Entry
<
String
,
List
<
OrderDetail
>>
entry
:
foodMaps
.
entrySet
())
{
String
key
=
entry
.
getKey
();
// List<Bitmap> bitmaps1 = new ArrayList<>();
if
(
key
.
contains
(
"*"
))
{
//如果帶*號,這個集合就需要切紙,每個食品都需要單獨在一張廚房單上
for
(
OrderDetail
orderDetail
:
entry
.
getValue
())
{
List
<
OrderDetail
>
orders
=
new
ArrayList
<>();
//這裡new集合是因為下面的方法需要的參數是list集合
orders
.
add
(
orderDetail
);
bitmaps
.
add
(
PrintUtils
.
getKitChenPrintBitmap
(
mContext
,
orders
));
// bitmaps1.add(PrintUtils.getKitChenPrintBitmap(mContext, orders));
}
}
else
{
//不帶*號,所有同樣廚房位置的食品都在一張紙上
bitmaps
.
add
(
PrintUtils
.
getKitChenPrintBitmap
(
mContext
,
entry
.
getValue
()));
// bitmaps1.add(PrintUtils.getKitChenPrintBitmap(mContext, entry.getValue()));
}
}
// bitmapMaps.put(key, bitmaps1);
}
else
if
(
length
>
0
&&
i
==
content
.
length
()
-
1
)
{
stringList
.
add
(
content
.
substring
(
startIndex
));
}
}
}
}
//通過遍歷map進行打印
return
stringList
;
return
bitmaps
;
}
private
static
void
addToMap
(
Map
<
String
,
List
<
OrderDetail
>>
foodMaps
,
OrderDetail
food
)
{
if
(
foodMaps
.
get
(
food
.
getPrintseting
())
!=
null
)
{
Objects
.
requireNonNull
(
foodMaps
.
get
(
food
.
getPrintseting
())).
add
(
food
);
}
else
{
List
<
OrderDetail
>
newFoods
=
new
ArrayList
<>();
newFoods
.
add
(
food
);
foodMaps
.
put
(
food
.
getPrintseting
(),
newFoods
);
}
}
private
static
Bitmap
getPrintBitmap
(
Context
context
)
{
return
getPrintBitmap
(
context
,
MyOrderManage
.
getInstance
().
getOrderFoodList
());
}
}
/**
/**
* 獲取
"印單"圖片
* 獲取
縮進,通過文字和最大長度
*
*
* @param context
* @param text
* @param maxLength
* @return
* @return
*/
*/
private
static
Bitmap
getPrintBitmap
(
Context
context
,
List
<
OrderDetail
>
foodList
)
{
private
static
String
getSpaceByTextLength
(
String
text
,
int
maxLength
,
double
chineseCharLength
)
{
if
(
foodList
==
null
||
foodList
.
size
()
<=
0
)
{
int
spaceLength
=
(
int
)
Math
.
ceil
(
maxLength
-
getChineseValueLength
(
text
,
chineseCharLength
));
return
null
;
StringBuilder
space
=
new
StringBuilder
();
}
for
(
int
i
=
0
;
i
<
spaceLength
;
i
++)
{
View
view
=
LinearLayout
.
inflate
(
context
,
R
.
layout
.
print_layout_print
,
null
);
space
.
append
(
" "
);
TextView
brandName
=
view
.
findViewById
(
R
.
id
.
tv_brand_name
);
}
TextView
restaurantName
=
view
.
findViewById
(
R
.
id
.
tv_restaurant_name
);
space
.
append
(
text
);
TextView
tableNum
=
view
.
findViewById
(
R
.
id
.
tv_dining_table_number
);
return
space
.
toString
();
TextView
people
=
view
.
findViewById
(
R
.
id
.
tv_people
);
TextView
orderNum
=
view
.
findViewById
(
R
.
id
.
tv_order_num
);
TextView
orderData
=
view
.
findViewById
(
R
.
id
.
tv_date
);
RecyclerView
rvFood
=
view
.
findViewById
(
R
.
id
.
rv_food
);
RecyclerView
rvBillAmount
=
view
.
findViewById
(
R
.
id
.
rv_bill_amount
);
TextView
mTvTotalAmount
=
view
.
findViewById
(
R
.
id
.
tv_total_amount
);
TextView
checkOutTime
=
view
.
findViewById
(
R
.
id
.
tv_checkout_time
);
TextView
line_food_info
=
view
.
findViewById
(
R
.
id
.
line_food_info
);
// List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean
.
DataBean
tableBean
=
OpenTableManage
.
getDefault
().
getTableBean
();
tableNum
.
setText
(
tableBean
.
getTableName
());
people
.
setText
(
OpenTableManage
.
getDefault
().
getPeopleNumber
()
+
""
);
orderData
.
setText
(
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
));
checkOutTime
.
setText
(
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
));
FoodAdapter
foodAdapter
=
new
FoodAdapter
(
foodList
);
rvFood
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
rvFood
.
setAdapter
(
foodAdapter
);
List
<
BillingBean
>
billingBeans
=
new
ArrayList
<>();
if
(
MyOrderManage
.
getInstance
().
getOrderMoneyList
().
size
()
>
0
)
{
for
(
BillOrderMoney
item
:
MyOrderManage
.
getInstance
().
getOrderMoneyList
())
{
billingBeans
.
add
(
new
BillingBean
(
item
.
getTitle
(),
item
.
getMoney
()));
}
}
LogUtil
.
d
(
TAG
,
"getPrintBitmap OrderMoneyList size: "
+
MyOrderManage
.
getInstance
().
getOrderMoneyList
().
size
());
// billingBeans.add(new BillingBean("合計", 58.88));
billingBeans
.
add
(
new
BillingBean
(
"10%服務費"
,
5.08
));
// billingBeans.add(new BillingBean("賬單小數", -0.06));
if
(
billingBeans
.
size
()
<=
0
)
{
line_food_info
.
setVisibility
(
View
.
GONE
);
}
else
{
BillAdapter
billAdapter
=
new
BillAdapter
(
billingBeans
);
rvBillAmount
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
rvBillAmount
.
setAdapter
(
billAdapter
);
}
if
(
OpenTableManage
.
getDefault
().
getTableBean
()
!=
null
)
{
tableNum
.
setText
(
OpenTableManage
.
getDefault
().
getTableBean
().
getTableName
());
people
.
setText
(
OpenTableManage
.
getDefault
().
getPeopleNumber
()
+
""
);
}
if
(
MyOrderManage
.
getInstance
().
getOrderId
()
!=
-
1
)
{
orderNum
.
setText
(
MyOrderManage
.
getInstance
().
getOrderId
()
+
""
);
}
BigDecimal
totalAmount
=
new
BigDecimal
(
0
);
for
(
OrderDetail
OrderDetail
:
foodList
)
{
totalAmount
=
MoneyUtil
.
sum
(
totalAmount
,
MoneyUtil
.
priceCalculation
(
OrderDetail
.
getPrice
(),
OrderDetail
.
getNumber
()));
}
//總金額
mTvTotalAmount
.
setText
(
totalAmount
+
""
);
//加载条形码
// ImageView ivBarCode = view.findViewById(R.id.iv_bar_code);
// ivBarCode.setImageBitmap(BitmapUtil.generateBitmap("12312112131", 2, 450, 150));
return
viewToBitmap
(
context
,
view
);
}
/**
* 獲取"結賬單"圖片
*
* @param context
* @return
*/
private
static
Bitmap
getPrintBillBitmap
(
Context
context
)
{
List
<
OrderDetail
>
foodList
=
MyOrderManage
.
getInstance
().
getOrderFoodList
();
TableBean
.
DataBean
tableBean
=
OpenTableManage
.
getDefault
().
getTableBean
();
if
(
foodList
==
null
||
foodList
.
size
()
<=
0
||
tableBean
==
null
)
{
return
null
;
}
View
view
=
LinearLayout
.
inflate
(
context
,
R
.
layout
.
print_layout_print_bill
,
null
);
TextView
brandName
=
view
.
findViewById
(
R
.
id
.
tv_brand_name
);
TextView
restaurantName
=
view
.
findViewById
(
R
.
id
.
tv_restaurant_name
);
TextView
topOrderNum
=
view
.
findViewById
(
R
.
id
.
tv_print_bill_order_num
);
//頂部的訂單號
TextView
tableNum
=
view
.
findViewById
(
R
.
id
.
tv_dining_table_number
);
TextView
people
=
view
.
findViewById
(
R
.
id
.
tv_people
);
TextView
orderNum
=
view
.
findViewById
(
R
.
id
.
tv_order_num
);
TextView
orderData
=
view
.
findViewById
(
R
.
id
.
tv_date
);
RecyclerView
rvFood
=
view
.
findViewById
(
R
.
id
.
rv_food
);
RecyclerView
rvBillAmount
=
view
.
findViewById
(
R
.
id
.
rv_bill_amount
);
TextView
mTvTotalAmount
=
view
.
findViewById
(
R
.
id
.
tv_total_amount
);
TextView
checkOutTime
=
view
.
findViewById
(
R
.
id
.
tv_checkout_time
);
TextView
line_food_info
=
view
.
findViewById
(
R
.
id
.
line_food_info
);
RecyclerView
rvPayType
=
view
.
findViewById
(
R
.
id
.
rv_print_pay_type
);
//顯示支付方式
tableNum
.
setText
(
tableBean
.
getTableName
());
people
.
setText
(
OpenTableManage
.
getDefault
().
getPeopleNumber
()
+
""
);
orderData
.
setText
(
TimeUtils
.
parseTimeRepeat
(
tableBean
.
getCreateTime
(),
TimeUtils
.
DEFAULT_DATE_FORMAT
));
checkOutTime
.
setText
(
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
));
FoodAdapter
foodAdapter
=
new
FoodAdapter
(
foodList
);
rvFood
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
rvFood
.
setAdapter
(
foodAdapter
);
List
<
BillingBean
>
billingBeans
=
new
ArrayList
<>();
if
(
MyOrderManage
.
getInstance
().
getOrderMoneyList
().
size
()
>
0
)
{
for
(
BillOrderMoney
item
:
MyOrderManage
.
getInstance
().
getOrderMoneyList
())
{
billingBeans
.
add
(
new
BillingBean
(
item
.
getTitle
(),
item
.
getMoney
()));
}
}
// billingBeans.add(new BillingBean("合計", 58.88));
// billingBeans.add(new BillingBean("10%服務費", 5.08));
// billingBeans.add(new BillingBean("賬單小數", -0.06));
if
(
billingBeans
.
size
()
<=
0
)
{
line_food_info
.
setVisibility
(
View
.
GONE
);
}
else
{
BillAdapter
billAdapter
=
new
BillAdapter
(
billingBeans
);
rvBillAmount
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
rvBillAmount
.
setAdapter
(
billAdapter
);
}
if
(
OpenTableManage
.
getDefault
().
getTableBean
()
!=
null
)
{
tableNum
.
setText
(
OpenTableManage
.
getDefault
().
getTableBean
().
getTableName
());
people
.
setText
(
OpenTableManage
.
getDefault
().
getPeopleNumber
()
+
""
);
}
if
(
MyOrderManage
.
getInstance
().
getOrderId
()
!=
-
1
)
{
orderNum
.
setText
(
MyOrderManage
.
getInstance
().
getOrderId
()
+
""
);
}
BigDecimal
totalAmount
=
new
BigDecimal
(
0
);
for
(
OrderDetail
OrderDetail
:
MyOrderManage
.
getInstance
().
getOrderFoodList
())
{
totalAmount
=
MoneyUtil
.
sum
(
totalAmount
,
OrderDetail
.
getPrice
());
}
//總金額
mTvTotalAmount
.
setText
(
totalAmount
+
""
);
List
<
PayMethod
>
payBillMoneys
=
MyOrderManage
.
getInstance
().
getBillMoney
();
rvPayType
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
rvPayType
.
setAdapter
(
new
BillTypeAdapter
(
payBillMoneys
));
//加载条形码
// ImageView ivBarCode = view.findViewById(R.id.iv_bar_code);
// ivBarCode.setImageBitmap(BitmapUtil.generateBitmap("12312112131", 2, 450, 150));
return
viewToBitmap
(
context
,
view
);
}
}
/**
/**
*
獲取"廚房單"圖片
*
根據字符串獲取長度,中文長度為2,在那台針式打印機長度為1.5
*
*
* @param
context
* @param
value
* @return
* @return
*/
*/
private
static
Bitmap
getKitChenPrintBitmap
(
Context
context
,
List
<
OrderDetail
>
foodList
)
{
private
static
double
getChineseValueLength
(
String
value
,
double
chineseCharLength
)
{
if
(
foodList
==
null
||
foodList
.
size
()
<=
0
)
{
double
valueLength
=
0
;
return
null
;
String
chinese
=
"[\u4e00-\u9fa5]"
;
}
for
(
int
i
=
0
;
i
<
value
.
length
();
i
++)
{
View
view
=
LinearLayout
.
inflate
(
context
,
R
.
layout
.
print_kitchen
,
null
);
String
temp
=
value
.
substring
(
i
,
i
+
1
);
TextView
tvTableNumber
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_print_table_number
);
if
(
temp
.
matches
(
chinese
))
{
TextView
tvOrderNumber
=
view
.
findViewById
(
R
.
id
.
tv_order_num
);
valueLength
+=
chineseCharLength
;
TextView
tvOpeningTime
=
view
.
findViewById
(
R
.
id
.
tv_opening_time
);
TextView
tvOrderTime
=
view
.
findViewById
(
R
.
id
.
tv_order_time
);
TextView
tvKitChenLocation
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_location
);
TextView
tvPeople
=
view
.
findViewById
(
R
.
id
.
tv_people
);
TextView
tvOperator
=
view
.
findViewById
(
R
.
id
.
tv_operator
);
RecyclerView
rvFood
=
view
.
findViewById
(
R
.
id
.
rv_kitchen_food
);
TextView
tvTableNumber2
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_print_table_number2
);
if
(
foodList
.
size
()
>
0
&&
foodList
.
get
(
0
)
!=
null
)
{
KitChenPrintFoodAdapter
foodAdapter
=
new
KitChenPrintFoodAdapter
(
foodList
);
rvFood
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
rvFood
.
setAdapter
(
foodAdapter
);
//廚房位置
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
foodList
.
get
(
0
).
getPrintseting
()))
{
tvKitChenLocation
.
setText
(
foodList
.
get
(
0
).
getPrintseting
());
//.replace("*", "")
tvKitChenLocation
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
}
else
{
tvKitChenLocation
.
setVisibility
(
View
.
GONE
)
;
valueLength
+=
1
;
}
}
}
}
if
(
OpenTableManage
.
getDefault
().
getTableBean
()
!=
null
)
{
return
valueLength
;
// 台號
tvTableNumber
.
setText
(
OpenTableManage
.
getDefault
().
getTableBean
().
getTableName
()
+
""
);
tvTableNumber2
.
setText
(
OpenTableManage
.
getDefault
().
getTableBean
().
getTableName
()
+
""
);
//人數
tvPeople
.
setText
(
OpenTableManage
.
getDefault
().
getPeopleNumber
()
+
""
);
//訂單號
tvOrderNumber
.
setText
(
""
+
MyOrderManage
.
getInstance
().
getOrderId
());
//開台時間
tvOpeningTime
.
setText
(
TimeUtils
.
parseTimeRepeat
(
OpenTableManage
.
getDefault
().
getTableBean
().
getCreateTime
(),
TimeUtils
.
DEFAULT_DATE_FORMAT
));
}
//落單時間,為當前時間
tvOrderTime
.
setText
(
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
));
//操作人員
tvOperator
.
setText
(
GsaCloudApplication
.
userName
);
return
viewToBitmap
(
context
,
view
);
}
}
/**
/**
* 獲取測試打印bitmap
* @param name1 字符串一
*
* @param name2 字符串二
* @param context
* @param name3 字符串三
* @return
* @param chineseCharLength 中文字符所佔長度,BBPOS佔2.4,針式佔1.5
* @return 返回N行分割好的排版文字
*/
*/
private
static
Bitmap
getTestPrintBitmap
(
Context
context
)
{
public
static
String
getLineString
(
String
name1
,
String
name2
,
String
name3
,
double
chineseCharLength
)
{
View
view
=
LinearLayout
.
inflate
(
context
,
R
.
layout
.
print_test
,
null
);
List
<
String
>
name1s
=
getFormatList
(
name1
,
foodNameSpace
,
chineseCharLength
);
return
viewToBitmap
(
context
,
view
);
List
<
String
>
name2s
=
getFormatList
(
name2
,
foodNumSpace
,
chineseCharLength
);
List
<
String
>
name3s
=
getFormatList
(
name3
,
foodAmountSpace
,
chineseCharLength
);
int
maxLine
=
Math
.
max
(
Math
.
max
(
name1s
.
size
(),
name2s
.
size
()),
name3s
.
size
());
StringBuilder
stringBuilder
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
maxLine
;
i
++)
{
stringBuilder
.
append
(
"<p>"
);
putText
(
chineseCharLength
,
name1s
,
stringBuilder
,
i
,
foodNameSpace
);
putText
(
chineseCharLength
,
name2s
,
stringBuilder
,
i
,
foodNumSpace
);
putText
(
chineseCharLength
,
name3s
,
stringBuilder
,
i
,
foodAmountSpace
);
stringBuilder
.
append
(
"</p>"
);
}
return
stringBuilder
.
toString
();
}
}
/**
/**
*
獲取清機報表Bitmap
*
@param name1 字符串一
*
*
@param name2 字符串二
* @param
mContext
* @param
chineseCharLength 中文字符所佔長度,BBPOS佔2.4,針式佔1.5
* @return
* @return
返回N行分割好的排版文字
*/
*/
private
static
Bitmap
getReportBitmap
(
Context
mContext
)
{
public
static
String
getLineString
(
String
name1
,
String
name2
,
double
chineseCharLength
,
int
lineWidth
)
{
View
view
=
PrintTransitUtils
.
getInstance
().
getPrintView
();
List
<
String
>
name1s
=
getFormatList
(
name1
,
lineWidth
/
2
,
chineseCharLength
);
if
(
view
!=
null
)
{
List
<
String
>
name2s
=
getFormatList
(
name2
,
lineWidth
/
2
,
chineseCharLength
);
return
viewToBitmap
(
mContext
,
view
);
}
int
maxLine
=
Math
.
max
(
name1s
.
size
(),
name2s
.
size
());
return
null
;
StringBuilder
stringBuilder
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
maxLine
;
i
++)
{
stringBuilder
.
append
(
"<p>"
);
putText
(
chineseCharLength
,
name1s
,
stringBuilder
,
i
,
foodNameSpace
);
putText
(
chineseCharLength
,
name2s
,
stringBuilder
,
i
,
foodNumSpace
);
stringBuilder
.
append
(
"</p>"
);
}
return
stringBuilder
.
toString
();
}
}
private
static
void
putText
(
double
chineseCharLength
,
List
<
String
>
name1s
,
StringBuilder
stringBuilder
,
int
i
,
int
foodNameSpace
)
{
public
static
Bitmap
viewToBitmap
(
Context
context
,
View
view
)
{
if
(
i
<
name1s
.
size
())
{
LayoutToBitmapUtils
.
layoutView
(
context
,
view
);
//先测量view
stringBuilder
.
append
(
getSpaceByTextLength
(
name1s
.
get
(
i
),
foodNameSpace
,
chineseCharLength
));
//580為程序支持的打印紙最大寬度
}
else
{
return
ImageUtils
.
zoomDrawable
(
LayoutToBitmapUtils
.
loadBitmapFromView
(
view
),
paperWidth
);
//将view轉bitmap
stringBuilder
.
append
(
getSpaceByTextLength
(
""
,
foodNameSpace
,
chineseCharLength
));
}
}
}
}
}
print-module/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
View file @
5e45c2a8
...
@@ -9,14 +9,13 @@ import android.os.Build;
...
@@ -9,14 +9,13 @@ import android.os.Build;
import
android.os.IBinder
;
import
android.os.IBinder
;
import
android.os.RemoteException
;
import
android.os.RemoteException
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
android.util.Xml
;
import
android.view.Gravity
;
import
android.view.Gravity
;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
androidx.annotation.ColorRes
;
import
androidx.annotation.ColorRes
;
import
androidx.core.content.ContextCompat
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
...
@@ -31,17 +30,19 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
...
@@ -31,17 +30,19 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import
com.gingersoft.gsa.cloud.base.common.bean.BillingBean
;
import
com.gingersoft.gsa.cloud.base.common.bean.BillingBean
;
import
com.gingersoft.gsa.cloud.base.common.bean.PayMethod
;
import
com.gingersoft.gsa.cloud.base.common.bean.PayMethod
;
import
com.gingersoft.gsa.cloud.base.order.adapter.print.FoodAdapter
;
import
com.gingersoft.gsa.cloud.base.order.adapter.print.FoodAdapter
;
import
com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage
;
import
com.gingersoft.gsa.cloud.base.table.bean.TableBean
;
import
com.gingersoft.gsa.cloud.base.threadPool.ThreadPoolManager
;
import
com.gingersoft.gsa.cloud.base.threadPool.ThreadPoolManager
;
import
com.gingersoft.gsa.cloud.base.utils.AidlUtil
;
import
com.gingersoft.gsa.cloud.base.utils.AidlUtil
;
import
com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils
;
import
com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils
;
import
com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
;
import
com.gingersoft.gsa.cloud.base.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.base.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.base.utils.view.ImageUtils
;
import
com.gingersoft.gsa.cloud.base.utils.view.ImageUtils
;
import
com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils
;
import
com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils
;
import
com.gingersoft.gsa.cloud.base.utils.view.QRCodeUtil
;
import
com.gingersoft.gsa.cloud.base.utils.view.QRCodeUtil
;
import
com.gingersoft.gsa.cloud.bean.WiseposBean
;
import
com.gingersoft.gsa.cloud.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
...
@@ -62,16 +63,11 @@ import com.joe.print.mvp.print.usb.EscCommand;
...
@@ -62,16 +63,11 @@ import com.joe.print.mvp.print.usb.EscCommand;
import
com.joe.print.mvp.print.usb.UsbPrint
;
import
com.joe.print.mvp.print.usb.UsbPrint
;
import
com.joe.print.mvp.print.usb.UsbPrinter
;
import
com.joe.print.mvp.print.usb.UsbPrinter
;
import
com.joe.print.mvp.print.usb.UsbPrinterFinder
;
import
com.joe.print.mvp.print.usb.UsbPrinterFinder
;
import
com.joe.print.mvp.
ui.activity.PrintActivity
;
import
com.joe.print.mvp.
print.utils.BBposPrint
;
import
com.joe.print.mvp.ui.adapter.BillItemAdapter
;
import
com.joe.print.mvp.ui.adapter.BillItemAdapter
;
import
com.sunmi.peripheral.printer.InnerResultCallbcak
;
import
com.sunmi.peripheral.printer.InnerResultCallbcak
;
import
org.xmlpull.v1.XmlPullParser
;
import
org.xmlpull.v1.XmlPullParserException
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.net.ConnectException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.List
;
...
@@ -80,13 +76,6 @@ import java.util.Objects;
...
@@ -80,13 +76,6 @@ import java.util.Objects;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
androidx.annotation.ColorRes
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
io.reactivex.Observer
;
import
io.reactivex.disposables.Disposable
;
public
abstract
class
PrinterRoot
implements
PrintSocketHolder
.
OnStateChangedListener
,
PrintExecutor
.
OnPrintResultListener
,
ReceiveListener
{
public
abstract
class
PrinterRoot
implements
PrintSocketHolder
.
OnStateChangedListener
,
PrintExecutor
.
OnPrintResultListener
,
ReceiveListener
{
@Inject
@Inject
...
@@ -183,6 +172,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -183,6 +172,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
/**
/**
* 獲取打印內容
* 獲取打印內容
*
* @return BBPOS是HTMl格式
* @return BBPOS是HTMl格式
*/
*/
public
abstract
String
getPrintData
(
Context
mContext
,
PrinterDeviceBean
deviceBean
);
public
abstract
String
getPrintData
(
Context
mContext
,
PrinterDeviceBean
deviceBean
);
...
@@ -198,7 +188,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -198,7 +188,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
/**
/**
* 本機打印
* 本機打印
*/
*/
public
void
locationPrint
(
List
<
Bitmap
>
bitmaps
,
PrintListener
listener
)
{
public
void
locationPrint
(
List
<
Bitmap
>
bitmaps
,
String
printData
,
PrintListener
listener
)
{
//本機打印
//本機打印
String
model
=
Build
.
MODEL
;
String
model
=
Build
.
MODEL
;
if
(
PrintConstans
.
PRINT_MODEL_V2
.
contains
(
model
))
{
if
(
PrintConstans
.
PRINT_MODEL_V2
.
contains
(
model
))
{
...
@@ -209,81 +199,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -209,81 +199,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
}
else
if
(
PrintConstans
.
PRINT_MODEL_WISEPOS
.
contains
(
model
))
{
}
else
if
(
PrintConstans
.
PRINT_MODEL_WISEPOS
.
contains
(
model
))
{
//BBPOS Wisepos 打印 localhost 192.168.1.162
//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>
//打印結果示例:<?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>
WiseposBean
wiseposBean
=
new
WiseposBean
();
new
BBposPrint
().
print
(
printData
,
listener
);
OkHttp3Utils
.
get
(
"http://localhost:8080/pos?transactionType=PRINT&isExternal=false&apiVersion=21&printData=<html><body><H2>BBPOS test print</H2></body></html>"
).
subscribe
(
new
Observer
<
String
>()
{
@Override
public
void
onSubscribe
(
Disposable
d
)
{
}
@Override
public
void
onNext
(
String
s
)
{
XmlPullParser
xmlPullParser
=
Xml
.
newPullParser
();
try
{
xmlPullParser
.
setInput
(
new
ByteArrayInputStream
(
s
.
getBytes
()),
"utf-8"
);
int
eventType
=
xmlPullParser
.
getEventType
();
while
(
eventType
!=
XmlPullParser
.
END_DOCUMENT
)
{
switch
(
eventType
)
{
case
XmlPullParser
.
START_DOCUMENT
:
//開始解析
break
;
case
XmlPullParser
.
START_TAG
:
//解析到某一個節點
String
xmlName
=
xmlPullParser
.
getName
();
switch
(
xmlName
)
{
case
"status"
:
wiseposBean
.
setState
(
xmlPullParser
.
nextText
());
// if (wiseposBean.getState().equals("SUCCESS")) {
// listener.printSuccess();
// } else {
// listener.printFile("打印失敗");
// }
break
;
case
"ErrorMessage"
:
if
(
xmlPullParser
.
nextText
().
equals
(
"Please login first"
))
{
listener
.
printFile
(
"請先登錄WisePay"
);
}
break
;
case
"requestType"
:
wiseposBean
.
setRequestType
(
xmlPullParser
.
nextText
());
break
;
}
break
;
case
XmlPullParser
.
END_TAG
:
break
;
}
eventType
=
xmlPullParser
.
next
();
}
}
catch
(
XmlPullParserException
|
IOException
e
)
{
e
.
printStackTrace
();
}
}
@Override
public
void
onError
(
Throwable
e
)
{
e
.
printStackTrace
();
if
(
e
instanceof
ConnectException
)
{
listener
.
printFile
(
"無法連接打印,請檢查WisePay是否打開"
);
}
}
@Override
public
void
onComplete
()
{
//這個節點解析完成
if
(
wiseposBean
.
getState
()
!=
null
&&
wiseposBean
.
getState
().
equals
(
"SUCCESS"
))
{
listener
.
printSuccess
();
}
else
{
listener
.
printFile
(
"打印失敗"
);
}
Intent
intent
=
new
Intent
(
GsaCloudApplication
.
getAppContext
(),
PrintActivity
.
class
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_REORDER_TO_FRONT
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_PREVIOUS_IS_TOP
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
GsaCloudApplication
.
getAppContext
().
startActivity
(
intent
);
}
});
}
else
{
}
else
{
listener
.
printFile
(
"暫不支持本機型打印"
);
listener
.
printFile
(
"暫不支持本機型打印"
);
}
}
...
@@ -385,8 +301,8 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -385,8 +301,8 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
* ip設備打印
* ip設備打印
*/
*/
private
void
ipDevicePrint
(
PrinterDeviceBean
private
void
ipDevicePrint
(
PrinterDeviceBean
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
,
PrintSocketHolder
.
OnStateChangedListener
printerDeviceBean
,
List
<
Bitmap
>
bitmaps
,
PrintSocketHolder
.
OnStateChangedListener
stateChangedListener
,
PrintExecutor
.
OnPrintResultListener
resultListener
)
{
stateChangedListener
,
PrintExecutor
.
OnPrintResultListener
resultListener
)
{
//獲取打印機機型,如果是EPSON的打印機,調用EPSON的打印方法
//獲取打印機機型,如果是EPSON的打印機,調用EPSON的打印方法
if
((
printerDeviceBean
.
getPrinterName
()
!=
null
&&
printerDeviceBean
.
getPrinterName
().
toLowerCase
().
contains
(
"EPSON"
.
toLowerCase
()))
if
((
printerDeviceBean
.
getPrinterName
()
!=
null
&&
printerDeviceBean
.
getPrinterName
().
toLowerCase
().
contains
(
"EPSON"
.
toLowerCase
()))
&&
(
printerDeviceBean
.
getModel
()
!=
null
&&
printerDeviceBean
.
getModel
().
toLowerCase
().
contains
(
"TM-U220B"
.
toLowerCase
())))
{
&&
(
printerDeviceBean
.
getModel
()
!=
null
&&
printerDeviceBean
.
getModel
().
toLowerCase
().
contains
(
"TM-U220B"
.
toLowerCase
())))
{
...
@@ -444,8 +360,9 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -444,8 +360,9 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
bytes
.
add
(
esc
.
getPrintAndFeedLines
((
byte
)
8
));
bytes
.
add
(
esc
.
getPrintAndFeedLines
((
byte
)
8
));
bytes
.
add
(
esc
.
getCutPaper
());
bytes
.
add
(
esc
.
getCutPaper
());
bytes
.
add
(
esc
.
getCleanCache
());
bytes
.
add
(
esc
.
getCleanCache
());
if
(
usbPrinters
.
size
()
>
0
)
if
(
usbPrinters
.
size
()
>
0
)
{
usbPrint
.
sendPrintCommand
(
usbPrinters
.
get
(
0
),
bytes
);
usbPrint
.
sendPrintCommand
(
usbPrinters
.
get
(
0
),
bytes
);
}
}
}
}
else
{
}
else
{
boolean
hasPermission
=
new
Intent
().
getBooleanExtra
(
UsbManager
.
EXTRA_PERMISSION_GRANTED
,
false
);
boolean
hasPermission
=
new
Intent
().
getBooleanExtra
(
UsbManager
.
EXTRA_PERMISSION_GRANTED
,
false
);
...
@@ -694,7 +611,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -694,7 +611,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
}
}
//生成積分QRCode碼(飯糰APP掃碼獲得積分)
//生成積分QRCode碼(飯糰APP掃碼獲得積分)
if
(
TextUtils
.
isEmpty
(
integralQrcode
)
||
if
(
TextUtils
.
isEmpty
(
integralQrcode
)
||
(
boolean
)
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
ToPrintQRCode
,
false
)
==
false
)
{
(
boolean
)
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
ToPrintQRCode
,
false
)
==
false
)
{
llIntegralQrcode
.
setVisibility
(
View
.
GONE
);
llIntegralQrcode
.
setVisibility
(
View
.
GONE
);
}
else
{
}
else
{
llIntegralQrcode
.
setVisibility
(
View
.
VISIBLE
);
llIntegralQrcode
.
setVisibility
(
View
.
VISIBLE
);
...
@@ -739,7 +656,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -739,7 +656,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
return
view
;
return
view
;
}
}
pr
ivate
String
getReplaceAfter
(
String
str
)
{
pr
otected
String
getReplaceAfter
(
String
str
)
{
if
(
str
!=
null
&&
str
.
length
()
>
0
)
{
if
(
str
!=
null
&&
str
.
length
()
>
0
)
{
int
replaceStrCount
=
str
.
length
()
/
2
;
int
replaceStrCount
=
str
.
length
()
/
2
;
StringBuilder
buffer
=
new
StringBuilder
();
StringBuilder
buffer
=
new
StringBuilder
();
...
@@ -925,4 +842,129 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
...
@@ -925,4 +842,129 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
public
void
setIsShow
(
View
parentView
,
int
viewId
,
boolean
isShow
)
{
public
void
setIsShow
(
View
parentView
,
int
viewId
,
boolean
isShow
)
{
parentView
.
findViewById
(
viewId
).
setVisibility
(
isShow
?
View
.
VISIBLE
:
View
.
GONE
);
parentView
.
findViewById
(
viewId
).
setVisibility
(
isShow
?
View
.
VISIBLE
:
View
.
GONE
);
}
}
}
protected
String
getHtmlPrintHeadInfo
()
{
return
getPLable
(
GsaCloudApplication
.
getBrandName
(),
HTML_PRINT_GRAVITY_CENTER
)
+
getPLable
(
GsaCloudApplication
.
getRestaurantName
(),
HTML_PRINT_GRAVITY_CENTER
);
}
protected
String
getHtmlPrintHeadOrderInfo
(
TableBean
.
DataBean
tableBean
)
{
String
orderNum
=
"單號:"
;
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
MyOrderManage
.
getInstance
().
getOrderNo
()))
{
orderNum
=
"單號:"
+
MyOrderManage
.
getInstance
().
getOrderNo
();
}
return
getWholeLine
()
+
getPLable
(
"餐檯:"
+
tableBean
.
getTableName
(),
HTML_PRINT_GRAVITY_LEFT
)
+
getPLable
(
"人數:"
+
OpenTableManage
.
getDefault
().
getPeopleNumber
(),
HTML_PRINT_GRAVITY_LEFT
)
+
getPLable
(
orderNum
,
HTML_PRINT_GRAVITY_LEFT
)
+
getPLable
(
"日期:"
+
TimeUtils
.
parseTimeRepeat
(
tableBean
.
getCreateTime
(),
TimeUtils
.
DEFAULT_DATE_FORMAT
),
HTML_PRINT_GRAVITY_LEFT
)
+
getWholeLine
();
}
protected
String
getHtmlBillInfo
()
{
//添加合計項
StringBuilder
amountStr
=
new
StringBuilder
(
getPLable
(
"合計 "
+
MyOrderManage
.
getInstance
().
getWholeAmount
(),
HTML_PRINT_GRAVITY_RIGHT
));
//添加其他金額項
if
(
MyOrderManage
.
getInstance
().
getOrderMoneyList
().
size
()
>
0
)
{
for
(
BillOrderMoney
item
:
MyOrderManage
.
getInstance
().
getOrderMoneyList
())
{
amountStr
.
append
(
getPLable
(
item
.
getTitle
()
+
" "
+
item
.
getMoney
(),
HTML_PRINT_GRAVITY_RIGHT
));
}
}
amountStr
.
append
(
getLine
(
21
,
HTML_PRINT_GRAVITY_RIGHT
));
amountStr
.
append
(
"總金額 "
).
append
(
MyOrderManage
.
getInstance
().
getTotalAmount
());
return
getLine
(
21
,
HTML_PRINT_GRAVITY_RIGHT
)
+
amountStr
;
}
protected
String
getHtmlBillPayInfo
()
{
StringBuilder
payInfo
=
new
StringBuilder
();
for
(
PayMethod
payMethod
:
MyOrderManage
.
getInstance
().
getBillMoney
())
{
payInfo
.
append
(
getPLable
(
payMethod
.
getPayName
()
+
" $"
+
payMethod
.
getPayMoney
(),
HTML_PRINT_GRAVITY_LEFT
));
}
return
getWholeLine
()
+
payInfo
+
getWholeLine
();
}
protected
String
getHtmlFooter
()
{
return
getPLable
(
"Thank you!"
,
HTML_PRINT_GRAVITY_CENTER
)
+
getPLable
(
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
),
HTML_PRINT_GRAVITY_CENTER
);
}
public
final
int
HTML_PRINT_GRAVITY_LEFT
=
0
;
public
final
int
HTML_PRINT_GRAVITY_CENTER
=
1
;
public
final
int
HTML_PRINT_GRAVITY_RIGHT
=
2
;
protected
String
getPLable
(
String
content
,
int
gravity
)
{
if
(
gravity
==
HTML_PRINT_GRAVITY_CENTER
)
{
return
"<p align='center'>"
+
content
+
"</p>"
;
}
else
if
(
gravity
==
HTML_PRINT_GRAVITY_RIGHT
)
{
return
"<p align='right'>"
+
content
+
"</p>"
;
}
else
if
(
gravity
==
HTML_PRINT_GRAVITY_LEFT
)
{
return
"<p align='left'>"
+
content
+
"</p>"
;
}
else
{
return
"<p align='left'>"
+
content
+
"</p>"
;
}
}
protected
String
getHtmlQrCode
(
String
url
)
{
return
"<qrcode scale='1'>"
+
url
+
"</qrcode><br/>"
;
}
protected
String
getWholeLine
()
{
return
getLine
(
90
,
HTML_PRINT_GRAVITY_LEFT
);
}
protected
String
getLine
(
int
length
,
int
gravity
)
{
StringBuilder
content
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
content
.
append
(
"-"
);
}
return
getPLable
(
content
.
toString
(),
gravity
);
}
protected
String
generateFoodInfoTwoColumns
(
List
<
OrderDetail
>
foodList
)
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
foodList
.
size
();
i
++)
{
OrderDetail
orderDetail
=
foodList
.
get
(
i
);
String
foodName
;
if
(
orderDetail
.
getItemType
()
==
2
)
{
foodName
=
"---"
+
orderDetail
.
getProductName
();
}
else
if
(
orderDetail
.
getItemType
()
==
3
)
{
foodName
=
"-----"
+
orderDetail
.
getProductName
();
}
else
{
foodName
=
orderDetail
.
getProductName
();
}
stringBuilder
.
append
(
getBBPosLineString
(
foodName
,
"X"
+
orderDetail
.
getNumber
()));
}
return
stringBuilder
.
toString
();
}
protected
String
generateFoodInfo
(
List
<
OrderDetail
>
foodList
)
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
foodList
.
size
();
i
++)
{
OrderDetail
orderDetail
=
foodList
.
get
(
i
);
String
foodName
;
if
(
orderDetail
.
getItemType
()
==
2
)
{
foodName
=
"---"
+
orderDetail
.
getProductName
();
}
else
if
(
orderDetail
.
getItemType
()
==
3
)
{
foodName
=
"-----"
+
orderDetail
.
getProductName
();
}
else
{
foodName
=
orderDetail
.
getProductName
();
}
stringBuilder
.
append
(
getBBPosLineString
(
foodName
,
"X"
+
orderDetail
.
getNumber
(),
"$"
+
orderDetail
.
getPrice
()));
}
return
stringBuilder
.
toString
();
}
protected
String
getBBPosLineString
(
String
name1
,
String
name2
)
{
return
PrintUtils
.
getLineString
(
name1
,
name2
,
PrintUtils
.
BBPOS_Chinese_Length
,
PrintUtils
.
lineLength
);
}
protected
String
getBBPosLineString
(
String
name1
,
String
name2
,
String
name3
)
{
return
PrintUtils
.
getLineString
(
name1
,
name2
,
name3
,
PrintUtils
.
BBPOS_Chinese_Length
);
}
}
\ No newline at end of file
print-module/src/main/java/com/joe/print/mvp/print/service/PrjService.java
View file @
5e45c2a8
...
@@ -21,6 +21,7 @@ import com.gingersoft.gsa.cloud.base.utils.AidlUtil;
...
@@ -21,6 +21,7 @@ import com.gingersoft.gsa.cloud.base.utils.AidlUtil;
import
com.gingersoft.gsa.cloud.base.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.base.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
;
import
com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
;
import
com.gingersoft.gsa.cloud.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean
;
import
com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean
;
...
@@ -323,7 +324,7 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -323,7 +324,7 @@ public class PrjService extends Service implements ReceiveListener {
private
void
newPrint
(
String
json
)
{
private
void
newPrint
(
String
json
)
{
printDatas
.
clear
();
printDatas
.
clear
();
listMap
.
clear
();
listMap
.
clear
();
currentIndex
=
1
;
currentIndex
=
0
;
totalPrj
=
0
;
totalPrj
=
0
;
PrjBean
prjBean
=
JsonUtils
.
parseObject
(
json
,
PrjBean
.
class
);
PrjBean
prjBean
=
JsonUtils
.
parseObject
(
json
,
PrjBean
.
class
);
if
(
prjBean
==
null
||
prjBean
.
getData
()
==
null
)
{
if
(
prjBean
==
null
||
prjBean
.
getData
()
==
null
)
{
...
@@ -342,11 +343,24 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -342,11 +343,24 @@ public class PrjService extends Service implements ReceiveListener {
//最后就可以通过刚刚得到的key值去解析后面的json了
//最后就可以通过刚刚得到的key值去解析后面的json了
JSONArray
dataJson
=
(
JSONArray
)
jsonObject
.
get
(
key
);
JSONArray
dataJson
=
(
JSONArray
)
jsonObject
.
get
(
key
);
List
<
PrjBean
.
DataBean
.
Bean
>
datas
=
JsonUtils
.
parseArray
(
dataJson
.
toString
(),
PrjBean
.
DataBean
.
Bean
.
class
);
List
<
PrjBean
.
DataBean
.
Bean
>
datas
=
JsonUtils
.
parseArray
(
dataJson
.
toString
(),
PrjBean
.
DataBean
.
Bean
.
class
);
if
(
datas
==
null
||
datas
.
size
()
<=
0
)
{
if
(
datas
!=
null
&&
datas
.
size
()
>
0
)
{
return
;
//打印位置和需要打印的數據
listMap
.
put
(
key
,
datas
);
//有沒有不需要切紙的
boolean
isHasNoCut
=
false
;
for
(
PrjBean
.
DataBean
.
Bean
bean
:
datas
)
{
if
(
bean
.
getStatus
()
==
2
)
{
//需要切紙,prj總數就+1
totalPrj
++;
}
else
{
isHasNoCut
=
true
;
}
}
if
(
isHasNoCut
)
{
//有不需要切紙的食物,prj總數+1
totalPrj
++;
}
}
}
totalPrj
+=
datas
.
size
();
listMap
.
put
(
key
,
datas
);
//打印位置和需要打印的數據
// PrintPrjKitchen.getPrjMap().put(key, datas);
// PrintPrjKitchen.getPrjMap().put(key, datas);
// printDatas.addAll(datas);
// printDatas.addAll(datas);
}
}
...
@@ -355,10 +369,17 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -355,10 +369,17 @@ public class PrjService extends Service implements ReceiveListener {
}
}
for
(
Map
.
Entry
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
prjMap
:
listMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
List
<
PrjBean
.
DataBean
.
Bean
>>
prjMap
:
listMap
.
entrySet
())
{
for
(
PrjBean
.
DataBean
.
Bean
bean
:
prjMap
.
getValue
())
{
for
(
PrjBean
.
DataBean
.
Bean
bean
:
prjMap
.
getValue
())
{
bean
.
setCurrentIndex
(
currentIndex
);
bean
.
setTotalPrj
(
totalPrj
);
bean
.
setTotalPrj
(
totalPrj
);
currentIndex
++;
if
(
bean
.
getStatus
()
==
2
){
currentIndex
++;
}
else
{
if
(
currentIndex
==
0
){
currentIndex
=
1
;
}
}
bean
.
setCurrentIndex
(
currentIndex
);
}
}
currentIndex
++;
}
}
//讀取打印機和通用配置,可以優化
//讀取打印機和通用配置,可以優化
//獲取所有打印機
//獲取所有打印機
...
@@ -472,7 +493,13 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -472,7 +493,13 @@ public class PrjService extends Service implements ReceiveListener {
updatePrjFailure
(
EpsIds
);
updatePrjFailure
(
EpsIds
);
}
}
}
else
{
}
else
{
List
<
Map
<
String
,
Bitmap
>>
bitmapMaps
=
generatePrintMaps
(
key
,
beans
,
printerDeviceBean
);
List
<
Map
<
String
,
Bitmap
>>
bitmapMaps
=
null
;
if
(
printerDeviceBean
.
getPrinterDeviceType
()
==
2
&&
PrintConstans
.
PRINT_MODEL_WISEPOS
.
contains
(
Build
.
MODEL
))
{
//本機打印並且是BBPOS
}
else
{
bitmapMaps
=
generatePrintMaps
(
key
,
beans
,
printerDeviceBean
);
}
switch
(
printerDeviceBean
.
getPrinterDeviceType
())
{
switch
(
printerDeviceBean
.
getPrinterDeviceType
())
{
case
1
:
case
1
:
//IP打印
//IP打印
...
@@ -562,6 +589,9 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -562,6 +589,9 @@ public class PrjService extends Service implements ReceiveListener {
}
else
if
(
PrintConstans
.
PRINT_MODEL_N5
.
contains
(
model
))
{
}
else
if
(
PrintConstans
.
PRINT_MODEL_N5
.
contains
(
model
))
{
//N5打印
//N5打印
n5Print
(
bitmapMaps
);
n5Print
(
bitmapMaps
);
}
else
if
(
PrintConstans
.
PRINT_MODEL_WISEPOS
.
contains
(
model
))
{
//BBPOS,生成data
ToastUtils
.
show
(
this
,
"BBPOS不支持打印處方單"
);
}
else
{
}
else
{
updatePrjFailure
(
getPrintIds
(
bitmapMaps
));
updatePrjFailure
(
getPrintIds
(
bitmapMaps
));
}
}
...
@@ -665,12 +695,6 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -665,12 +695,6 @@ public class PrjService extends Service implements ReceiveListener {
* @param beans 打印的食品和其他的一些信息
* @param beans 打印的食品和其他的一些信息
*/
*/
private
List
<
Map
<
String
,
Bitmap
>>
generatePrintMaps
(
String
key
,
List
<
PrjBean
.
DataBean
.
Bean
>
beans
,
PrinterDeviceBean
printerDeviceBean
)
{
private
List
<
Map
<
String
,
Bitmap
>>
generatePrintMaps
(
String
key
,
List
<
PrjBean
.
DataBean
.
Bean
>
beans
,
PrinterDeviceBean
printerDeviceBean
)
{
// //食品合併
// for (PrjBean.DataBean.Bean bean : beans) {
// for (PrjBean.DataBean.Bean bean2 : beans) {
//
// }
// }
PrintPrjKitchen
printPrjKitchen
=
new
PrintPrjKitchen
();
PrintPrjKitchen
printPrjKitchen
=
new
PrintPrjKitchen
();
//這個Map的key是這張PRJ的所有PRJ記錄的id,然後會同時打印多張,所以是一個List集合
//這個Map的key是這張PRJ的所有PRJ記錄的id,然後會同時打印多張,所以是一個List集合
List
<
Map
<
String
,
Bitmap
>>
bitmapMaps
=
new
ArrayList
<>();
List
<
Map
<
String
,
Bitmap
>>
bitmapMaps
=
new
ArrayList
<>();
...
@@ -769,75 +793,12 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -769,75 +793,12 @@ public class PrjService extends Service implements ReceiveListener {
EpsIds
=
""
;
EpsIds
=
""
;
}
}
// @Override
// public void onStateChanged(int state, PrinterDeviceBean printerDeviceBean) {
// String tip = "加載中";
// switch (state) {
// case PrintSocketHolder.ERROR_0:
// tip = "打印成功";
// break;
// case PrintSocketHolder.ERROR_1:
// tip = "生成打印數據失敗";
// break;
// case PrintSocketHolder.ERROR_2:
// case PrintSocketHolder.ERROR_3:
// tip = "連接打印機失敗";
// break;
// case PrintSocketHolder.ERROR_4:
// tip = "寫入測試頁面數據失敗";
// break;
// case PrintSocketHolder.ERROR_5:
// tip = "必要的參數不能為空";
// break;
// case PrintSocketHolder.STATE_0:
// case PrintSocketHolder.STATE_1:
// tip = "開始創建連接";
// break;
// case PrintSocketHolder.STATE_2:
// tip = "創建連接成功,開始發送數據";
// break;
// case PrintSocketHolder.STATE_3:
// tip = "開始寫入數據";
// break;
// case PrintSocketHolder.STATE_4:
// tip = "關閉中";
// break;
// }
// Log.e(TAG, "打印機狀態:" + tip);
// }
//
// @Override
// public void onResult(int errorCode, PrinterDeviceBean printerDeviceBean) {
// switch (errorCode) {
// case PrintSocketHolder.ERROR_0:
// //更新狀態
// updatePrjState(3);
// Log.e(TAG, "打印成功");
// break;
// case PrintSocketHolder.ERROR_1:
// break;
// case PrintSocketHolder.ERROR_2:
// Log.e(TAG, "创建Socket失败");
// //再次打開輪詢
// updatePrjState(1);
// case PrintSocketHolder.ERROR_3:
// Log.e(TAG, "获取输出流失败");
// break;
// case PrintSocketHolder.ERROR_4:
// Log.e(TAG, "写入测试页面数据失败");
// break;
// case PrintSocketHolder.ERROR_5:
// Log.e(TAG, "必要参数不能为空");
// break;
// }
// }
@Override
@Override
public
void
onPtrReceive
(
Printer
printer
,
int
i
,
PrinterStatusInfo
printerStatusInfo
,
String
s
)
{
public
void
onPtrReceive
(
Printer
printer
,
int
i
,
PrinterStatusInfo
printerStatusInfo
,
String
s
)
{
//針式打印回調
//針式打印回調
if
(
i
==
0
)
{
if
(
i
==
0
)
{
//打印成功
//打印成功
updatePrj
Failure
(
EpsIds
);
updatePrj
Success
(
EpsIds
);
}
else
{
}
else
{
//打印失敗
//打印失敗
updatePrjFailure
(
EpsIds
);
updatePrjFailure
(
EpsIds
);
...
...
print-module/src/main/java/com/joe/print/mvp/print/utils/BBposPrint.java
0 → 100644
View file @
5e45c2a8
package
com
.
joe
.
print
.
mvp
.
print
.
utils
;
import
android.content.Intent
;
import
android.util.Xml
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
;
import
com.gingersoft.gsa.cloud.bean.WiseposBean
;
import
com.joe.print.mvp.print.PrintListener
;
import
com.joe.print.mvp.ui.activity.PrintActivity
;
import
org.xmlpull.v1.XmlPullParser
;
import
org.xmlpull.v1.XmlPullParserException
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.net.ConnectException
;
import
java.util.concurrent.TimeoutException
;
import
io.reactivex.Observer
;
import
io.reactivex.disposables.Disposable
;
public
class
BBposPrint
{
public
void
print
(
String
printData
,
PrintListener
listener
)
{
WiseposBean
wiseposBean
=
new
WiseposBean
();
OkHttp3Utils
.
get
(
"http://localhost:8080/pos?transactionType=PRINT&isExternal=false&apiVersion=21&printData="
+
printData
).
subscribe
(
new
Observer
<
String
>()
{
@Override
public
void
onSubscribe
(
Disposable
d
)
{
}
@Override
public
void
onNext
(
String
s
)
{
analysisPrintResult
(
s
,
wiseposBean
,
listener
);
}
@Override
public
void
onError
(
Throwable
e
)
{
e
.
printStackTrace
();
if
(
e
instanceof
ConnectException
)
{
listener
.
printFile
(
"無法連接打印,請檢查WisePay是否打開"
);
}
else
if
(
e
instanceof
TimeoutException
)
{
backPrintActivity
();
}
}
@Override
public
void
onComplete
()
{
//這個節點解析完成
if
(
wiseposBean
.
getState
()
!=
null
&&
wiseposBean
.
getState
().
equals
(
"SUCCESS"
))
{
listener
.
printSuccess
();
}
else
{
listener
.
printFile
(
"打印失敗"
);
}
backPrintActivity
();
}
private
void
backPrintActivity
()
{
Intent
intent
=
new
Intent
(
GsaCloudApplication
.
getAppContext
(),
PrintActivity
.
class
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_REORDER_TO_FRONT
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_PREVIOUS_IS_TOP
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
GsaCloudApplication
.
getAppContext
().
startActivity
(
intent
);
}
});
}
private
void
analysisPrintResult
(
String
s
,
WiseposBean
wiseposBean
,
PrintListener
listener
)
{
XmlPullParser
xmlPullParser
=
Xml
.
newPullParser
();
try
{
xmlPullParser
.
setInput
(
new
ByteArrayInputStream
(
s
.
getBytes
()),
"utf-8"
);
int
eventType
=
xmlPullParser
.
getEventType
();
while
(
eventType
!=
XmlPullParser
.
END_DOCUMENT
)
{
switch
(
eventType
)
{
case
XmlPullParser
.
START_DOCUMENT
:
//開始解析
break
;
case
XmlPullParser
.
START_TAG
:
//解析到某一個節點
String
xmlName
=
xmlPullParser
.
getName
();
switch
(
xmlName
)
{
case
"status"
:
wiseposBean
.
setState
(
xmlPullParser
.
nextText
());
break
;
case
"ErrorMessage"
:
if
(
xmlPullParser
.
nextText
().
equals
(
"Please login first"
))
{
listener
.
printFile
(
"請先登錄WisePay"
);
}
else
{
listener
.
printFile
(
""
+
xmlPullParser
.
nextText
());
}
break
;
case
"requestType"
:
wiseposBean
.
setRequestType
(
xmlPullParser
.
nextText
());
break
;
default
:
break
;
}
break
;
case
XmlPullParser
.
END_TAG
:
break
;
default
:
break
;
}
eventType
=
xmlPullParser
.
next
();
}
}
catch
(
XmlPullParserException
|
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintActivity.java
View file @
5e45c2a8
...
@@ -6,6 +6,7 @@ import android.content.Intent;
...
@@ -6,6 +6,7 @@ import android.content.Intent;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.graphics.Color
;
import
android.graphics.Color
;
import
android.graphics.drawable.ColorDrawable
;
import
android.graphics.drawable.ColorDrawable
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.MotionEvent
;
import
android.view.MotionEvent
;
...
@@ -230,37 +231,46 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
...
@@ -230,37 +231,46 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
if
(
isShowDialog
)
{
if
(
isShowDialog
)
{
initDialog
();
initDialog
();
}
}
// if (defaultPrint.getPrinterDeviceType() == 2 && PrintConstans.PRINT_MODEL_WISEPOS.contains(Build.MODEL)) {
Map
<
String
,
List
<
Bitmap
>>
listMap
=
null
;
// //本機打印並且是BBPOS
List
<
Bitmap
>
zoomBitmaps
=
null
;
//
//
String
printData
=
null
;
//
if
(
defaultPrint
.
getPrinterDeviceType
()
==
2
&&
PrintConstans
.
PRINT_MODEL_WISEPOS
.
contains
(
Build
.
MODEL
))
{
// } else {
//本機打印並且是BBPOS
//獲得對應的圖片
printData
=
printerInIt
.
getPrintData
(
mContext
,
defaultPrint
);
Map
<
String
,
List
<
Bitmap
>>
listMap
=
printerInIt
.
getPrintBitmapByCount
(
mContext
,
defaultPrint
);
if
(
printData
==
null
)
{
if
(
listMap
!=
null
)
{
printFile
(
"暫不支持打印此單"
);
List
<
Bitmap
>
zoomBitmaps
=
listMap
.
get
(
""
);
return
;
}
}
else
{
listMap
=
printerInIt
.
getPrintBitmapByCount
(
mContext
,
defaultPrint
);
if
(
listMap
!=
null
)
{
zoomBitmaps
=
listMap
.
get
(
""
);
}
else
{
printFile
(
"暫不支持打印此單"
);
return
;
}
if
(
zoomBitmaps
!=
null
&&
zoomBitmaps
.
size
()
>
0
)
{
if
(
zoomBitmaps
!=
null
&&
zoomBitmaps
.
size
()
>
0
)
{
if
(
defaultPrint
.
getPrinterDeviceType
()
==
1
)
{
//IP打印
printerInIt
.
ipDevicePrint
(
defaultPrint
,
zoomBitmaps
);
}
else
if
(
defaultPrint
.
getPrinterDeviceType
()
==
2
)
{
//本地N5或Sunmi打印
printerInIt
.
locationPrint
(
zoomBitmaps
,
this
);
}
else
if
(
defaultPrint
.
getPrinterDeviceType
()
==
3
)
{
//USB打印打印
printerInIt
.
usbPrint
(
mContext
,
zoomBitmaps
);
}
else
{
printFile
(
"未找到對應的打印類型"
);
}
}
else
{
}
else
{
//打印失敗
//打印失敗
printFile
(
"打印失敗,生成打印數據失敗"
);
printFile
(
"打印失敗,生成打印數據失敗"
);
}
}
}
//獲得對應的圖片
if
(
defaultPrint
.
getPrinterDeviceType
()
==
1
)
{
//IP打印
printerInIt
.
ipDevicePrint
(
defaultPrint
,
zoomBitmaps
);
}
else
if
(
defaultPrint
.
getPrinterDeviceType
()
==
2
)
{
//本地N5或Sunmi打印
printerInIt
.
locationPrint
(
zoomBitmaps
,
printData
,
this
);
}
else
if
(
defaultPrint
.
getPrinterDeviceType
()
==
3
)
{
//USB打印打印
printerInIt
.
usbPrint
(
mContext
,
zoomBitmaps
);
}
else
{
}
else
{
printFile
(
"
打印失敗,打印次數為0
"
);
printFile
(
"
未找到對應的打印類型
"
);
}
}
// }
}
}
}
}
...
...
print-module/src/main/java/com/joe/print/mvp/ui/activity/PrintTestActivity.java
View file @
5e45c2a8
...
@@ -10,7 +10,6 @@ import androidx.appcompat.app.AppCompatActivity;
...
@@ -10,7 +10,6 @@ import androidx.appcompat.app.AppCompatActivity;
import
com.epson.epos2.printer.Printer
;
import
com.epson.epos2.printer.Printer
;
import
com.epson.epos2.printer.PrinterStatusInfo
;
import
com.epson.epos2.printer.PrinterStatusInfo
;
import
com.epson.epos2.printer.ReceiveListener
;
import
com.epson.epos2.printer.ReceiveListener
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.bean.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
;
import
com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
;
...
@@ -34,7 +33,7 @@ import io.reactivex.disposables.Disposable;
...
@@ -34,7 +33,7 @@ import io.reactivex.disposables.Disposable;
public
class
PrintTestActivity
extends
AppCompatActivity
implements
PrintSocketHolder
.
OnStateChangedListener
,
PrintExecutor
.
OnPrintResultListener
,
ReceiveListener
{
public
class
PrintTestActivity
extends
AppCompatActivity
implements
PrintSocketHolder
.
OnStateChangedListener
,
PrintExecutor
.
OnPrintResultListener
,
ReceiveListener
{
private
int
lineLength
=
42
;
//一行42個
private
int
lineLength
=
42
;
//一行42個
17.5
private
static
int
foodNameSpace
=
16
;
private
static
int
foodNameSpace
=
16
;
private
static
int
foodNumSpace
=
8
;
private
static
int
foodNumSpace
=
8
;
private
static
int
foodAmountSpace
=
10
;
private
static
int
foodAmountSpace
=
10
;
...
@@ -50,7 +49,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
...
@@ -50,7 +49,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
int
spaceLength
=
(
int
)
Math
.
ceil
(
MaxLength
-
getChineseValueLength
(
text
));
int
spaceLength
=
(
int
)
Math
.
ceil
(
MaxLength
-
getChineseValueLength
(
text
));
StringBuilder
space
=
new
StringBuilder
();
StringBuilder
space
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
spaceLength
;
i
++)
{
for
(
int
i
=
0
;
i
<
spaceLength
;
i
++)
{
space
.
append
(
"
"
);
space
.
append
(
"
_
"
);
}
}
space
.
append
(
text
);
space
.
append
(
text
);
return
space
.
toString
();
return
space
.
toString
();
...
@@ -61,7 +60,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
...
@@ -61,7 +60,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
StringBuilder
space
=
new
StringBuilder
();
StringBuilder
space
=
new
StringBuilder
();
space
.
append
(
text
);
space
.
append
(
text
);
for
(
int
i
=
0
;
i
<
spaceLength
;
i
++)
{
for
(
int
i
=
0
;
i
<
spaceLength
;
i
++)
{
space
.
append
(
"
"
);
space
.
append
(
"
_
"
);
}
}
return
space
.
toString
();
return
space
.
toString
();
}
}
...
@@ -182,22 +181,16 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
...
@@ -182,22 +181,16 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
printerFinder
.
startFinder
();
printerFinder
.
startFinder
();
List
<
OrderDetail
>
foodList
=
new
ArrayList
<>();
List
<
OrderDetail
>
foodList
=
new
ArrayList
<>();
foodList
.
add
(
new
OrderDetail
(
"Thịt bò não trong nước sốt nâu"
,
5
,
0
));
foodList
.
add
(
new
OrderDetail
(
"牛肉拉麵"
,
10
,
1
));
foodList
.
add
(
new
OrderDetail
(
" 紅燒牛肉 拉麵"
,
10
,
1
));
foodList
.
add
(
new
OrderDetail
(
"紅燒牛肉拉麵"
,
200
,
2
));
foodList
.
add
(
new
OrderDetail
(
"เนื้อตุ๋น"
,
200
,
2
));
foodList
.
add
(
new
OrderDetail
(
"牛肉の角煮アスティフェン"
,
1000
,
30
));
findViewById
(
R
.
id
.
btn_test
).
setOnClickListener
(
view
->
{
findViewById
(
R
.
id
.
btn_test
).
setOnClickListener
(
view
->
{
//打印測試
//打印測試
String
stringBuilder
=
"<html><body>"
+
String
stringBuilder
=
"<html><body>"
+
getPLable
(
GsaCloudApplication
.
getBrandName
())
+
getPLable
(
"GingerSoft"
)
+
getPLable
(
GsaCloudApplication
.
getRestaurantName
())
+
getPLable
(
"Gs1"
)
+
getPLable
(
getLineChar
(
lineLength
,
"_"
))
+
getPLable
(
"開檯時間:"
+
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
))
+
getPLable
(
"餐檯: "
+
"111"
)
+
getPLable
(
getLineChar
(
lineLength
,
"_"
))
+
getPLable
(
"人數:23"
)
+
getPLable
(
"123456789123456789123456789123456789123456789"
)
+
getPLable
(
"日期:"
+
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
))
+
getPLable
(
getLineChar
(
lineLength
,
"_"
))
+
getPLable
(
getFoodListStr
(
foodList
))
+
getPLable
(
getFoodListStr
(
foodList
))
+
"</body></html>"
;
"</body></html>"
;
OkHttp3Utils
.
get
(
"http://localhost:8080/pos?transactionType=PRINT&isExternal=false&apiVersion=21&printData="
+
stringBuilder
).
subscribe
(
new
Observer
<
String
>()
{
OkHttp3Utils
.
get
(
"http://localhost:8080/pos?transactionType=PRINT&isExternal=false&apiVersion=21&printData="
+
stringBuilder
).
subscribe
(
new
Observer
<
String
>()
{
...
@@ -223,7 +216,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
...
@@ -223,7 +216,7 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
});
});
}
}
public
String
getLineChar
(
int
size
,
String
str
){
public
String
getLineChar
(
int
size
,
String
str
)
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
StringBuilder
stringBuilder
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
stringBuilder
.
append
(
str
);
stringBuilder
.
append
(
str
);
...
@@ -231,33 +224,12 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
...
@@ -231,33 +224,12 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
return
stringBuilder
.
toString
();
return
stringBuilder
.
toString
();
}
}
public
static
void
main
(
String
[]
args
)
{
List
<
OrderDetail
>
foodList
=
new
ArrayList
<>();
foodList
.
add
(
new
OrderDetail
(
"牛肉"
,
0.5
,
3
));
foodList
.
add
(
new
OrderDetail
(
"紅燒牛肉"
,
5
,
0
));
foodList
.
add
(
new
OrderDetail
(
" 紅燒牛肉 拉麵"
,
10
,
1
));
foodList
.
add
(
new
OrderDetail
(
"康師傅紅燒牛肉麵"
,
200
,
2
));
foodList
.
add
(
new
OrderDetail
(
"紅燒牛肉炒康師傅"
,
1000
,
30
));
System
.
out
.
print
(
getFoodListStr
(
foodList
));
}
public
static
String
getFoodListStr
(
List
<
OrderDetail
>
foodList
)
{
public
static
String
getFoodListStr
(
List
<
OrderDetail
>
foodList
)
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
StringBuilder
stringBuilder
=
new
StringBuilder
();
stringBuilder
.
append
(
"<strong>"
);
for
(
OrderDetail
detail
:
foodList
)
{
for
(
OrderDetail
detail
:
foodList
)
{
// stringBuilder.append(getLineFood(detail.getProductName(), detail.getNumber(), detail.getPrice()));
stringBuilder
.
append
(
getLineFood
(
detail
.
getProductName
(),
detail
.
getNumber
(),
detail
.
getPrice
()));
stringBuilder
.
append
(
"<div align=\"left\">"
)
stringBuilder
.
append
(
"<br/>"
);
.
append
(
detail
.
getProductName
())
.
append
(
"</div>"
);
stringBuilder
.
append
(
"<div align=\"right\">"
)
.
append
(
"X"
)
.
append
(
detail
.
getNumber
())
.
append
(
" $"
)
.
append
(
detail
.
getPrice
())
.
append
(
"</div>"
);
}
}
stringBuilder
.
append
(
"</strong>"
);
return
stringBuilder
.
toString
();
return
stringBuilder
.
toString
();
}
}
...
@@ -266,24 +238,16 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
...
@@ -266,24 +238,16 @@ public class PrintTestActivity extends AppCompatActivity implements PrintSocketH
StringBuilder
stringBuilder
=
new
StringBuilder
();
StringBuilder
stringBuilder
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
stringList
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
stringList
.
size
();
i
++)
{
if
(
i
==
0
)
{
if
(
i
==
0
)
{
stringBuilder
.
append
(
"<p>"
)
stringBuilder
.
append
(
getSpaceByTextLength2
(
stringList
.
get
(
i
),
foodNameSpace
));
.
append
(
getSpaceByTextLength2
(
stringList
.
get
(
i
),
foodNameSpace
))
String
foodNumStr
=
"X"
+
foodNum
;
.
append
(
getSpaceByTextLength
(
"X"
+
foodNum
,
foodNumSpace
))
stringBuilder
.
append
(
getSpaceByTextLength
(
foodNumStr
,
foodNumSpace
));
.
append
(
getSpaceByTextLength
(
"$"
+
foodAmount
,
foodAmountSpace
))
stringBuilder
.
append
(
getSpaceByTextLength
(
"$"
+
foodAmount
,
foodAmountSpace
));
.
append
(
"</p>"
);
// stringBuilder.append(getSpaceByTextLength2(stringList.get(i), foodNameSpace));
// String foodNumStr = "X" + foodNum;
// stringBuilder.append(getSpaceByTextLength(foodNumStr, foodNumSpace));
// stringBuilder.append(getSpaceByTextLength("$" + foodAmount, foodAmountSpace));
}
else
{
}
else
{
stringBuilder
.
append
(
"<p>"
)
stringBuilder
.
append
(
stringList
.
get
(
i
));
.
append
(
stringList
.
get
(
i
))
}
.
append
(
"</p>"
);
if
(
i
!=
stringList
.
size
()
-
1
)
{
stringBuilder
.
append
(
"<br/>"
);
}
}
// if (i != stringList.size() - 1) {
// stringBuilder.append("<br/>");
stringBuilder
.
append
(
"\n"
);
// }
}
}
return
stringBuilder
.
toString
();
return
stringBuilder
.
toString
();
}
}
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/bean/mvp/ui/activity/OrderContentActivity.java
View file @
5e45c2a8
...
@@ -15,6 +15,15 @@ import android.widget.Chronometer;
...
@@ -15,6 +15,15 @@ import android.widget.Chronometer;
import
android.widget.SimpleAdapter
;
import
android.widget.SimpleAdapter
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.content.ContextCompat
;
import
androidx.fragment.app.Fragment
;
import
androidx.recyclerview.widget.DefaultItemAnimator
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
androidx.viewpager.widget.ViewPager
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage
;
import
com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage
;
...
@@ -61,14 +70,6 @@ import java.util.Map;
...
@@ -61,14 +70,6 @@ import java.util.Map;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.content.ContextCompat
;
import
androidx.fragment.app.Fragment
;
import
androidx.recyclerview.widget.DefaultItemAnimator
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
androidx.viewpager.widget.ViewPager
;
import
butterknife.BindView
;
import
butterknife.BindView
;
import
butterknife.OnClick
;
import
butterknife.OnClick
;
...
@@ -178,7 +179,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
...
@@ -178,7 +179,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
@Override
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
initOrderDetail
();
initOrderDetail
();
initTopInfo
();
initTopInfo
();
mPresenter
.
initTopFunctionData
();
mPresenter
.
initTopFunctionData
();
...
...
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