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
771adf38
Commit
771adf38
authored
Mar 25, 2021
by
Wyh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化针式打印打印效果
parent
5a967b4e
Hide whitespace changes
Inline
Side-by-side
Showing
58 changed files
with
2069 additions
and
1031 deletions
+2069
-1031
component-print/src/main/java/com/joe/print/mvp/print/EpsonPrint.java
+13
-10
component-print/src/main/java/com/joe/print/mvp/print/PrintKitchen.java
+0
-201
component-print/src/main/java/com/joe/print/mvp/print/PrintPrjKitchen.java
+15
-64
component-print/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
+13
-7
component-print/src/main/java/com/joe/print/mvp/print/service/PrjService.java
+1
-1
component-print/src/main/res/layout/print_model_header.xml
+2
-2
component-print/src/main/res/values/styles.xml
+8
-1
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/OutboundOrderBean.java
+35
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/PurchaseFoodBean.java
+2
-2
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/WareHouseListBean.java
+4
-2
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/contract/BuyIngredientsContract.java
+1
-1
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/contract/WareHouseListContract.java
+1
-1
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/BuyIngredientsPresenter.java
+28
-4
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/WarehousingInventoryPresenter.java
+11
-1
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/BuyIngredientsAdapter.java
+9
-7
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/ConsumptionReasonAdapter.java
+3
-3
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/InventoryRecordAdapter.java
+11
-3
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/OutboundOrderAdapter.java
+31
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/PrintPdfAdapter.java
+180
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/SecondCategoryAdapter.java
+20
-4
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/WarehousingQueryAdapter.java
+3
-3
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/FunctionListFragment.java
+2
-2
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/food/BuyIngredientsFragment.java
+226
-27
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/order/PurchaseListFragment.java
+10
-7
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/warehouse/WareHouseListFragment.java
+8
-8
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/warehouse/WarehouseDetailsFragment.java
+157
-76
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/warehouse/WarehousingInventoryFragment.java
+34
-37
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/CenterLayoutManager.java
+67
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/InventoryConsumptionView.java
+20
-3
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/ScanSnView.java
+1
-1
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/ShowSecondCategoryPopup.java
+1
-1
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/TextPopup.java
+2
-1
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/TextSwitchCompat.java
+312
-0
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/utils/ViewUtils.java
+2
-2
component-supply-chain/src/main/res/layout/btn_gray_to_blue.xml
+24
-0
component-supply-chain/src/main/res/layout/fragment_buy_ingredients.xml
+55
-47
component-supply-chain/src/main/res/layout/fragment_warehouse_details.xml
+4
-2
component-supply-chain/src/main/res/layout/fragment_warehousing_inventory.xml
+19
-6
component-supply-chain/src/main/res/layout/item_buy_food_ingredient.xml
+10
-7
component-supply-chain/src/main/res/layout/item_consumption_reason.xml
+0
-18
component-supply-chain/src/main/res/layout/item_inventory_record.xml
+21
-10
component-supply-chain/src/main/res/layout/item_outbound_order.xml
+50
-0
component-supply-chain/src/main/res/layout/layout_inventory_consumption.xml
+114
-107
component-supply-chain/src/main/res/layout/layout_print_consume.xml
+70
-0
component-supply-chain/src/main/res/layout/layout_scan_sn.xml
+11
-6
component-supply-chain/src/main/res/layout/popup_text.xml
+2
-1
component-supply-chain/src/main/res/values/strings.xml
+6
-0
component-supply-chain/src/main/res/values/styles.xml
+10
-0
component-supply-chain/src/main/res/values/values.xml
+5
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/view/ImageUtils.java
+21
-1
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/view/LayoutToBitmapUtils.java
+8
-1
library-common/src/main/res/color/s_gray_blue.xml
+6
-0
library-common/src/main/res/drawable/selector_new_order_radio_bg.xml
+3
-2
library-common/src/main/res/values/styles.xml
+1
-1
library-print/src/main/java/com/gingersoft/gsa/cloud/print/bean/PrjBean.java
+1
-1
library-ui/src/main/res/layout/print_dot_matrix_kitchen.xml
+93
-135
library-ui/src/main/res/layout/print_kitchen.xml
+261
-204
library-ui/src/main/res/values/style.xml
+41
-0
No files found.
component-print/src/main/java/com/joe/print/mvp/print/EpsonPrint.java
View file @
771adf38
...
@@ -2,7 +2,6 @@ package com.joe.print.mvp.print;
...
@@ -2,7 +2,6 @@ package com.joe.print.mvp.print;
import
android.content.Context
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.os.Looper
;
import
android.util.Log
;
import
android.util.Log
;
import
com.epson.epos2.Epos2Exception
;
import
com.epson.epos2.Epos2Exception
;
...
@@ -113,20 +112,24 @@ public class EpsonPrint implements ReceiveListener {
...
@@ -113,20 +112,24 @@ public class EpsonPrint implements ReceiveListener {
*/
*/
private
boolean
createPrintData
(
Bitmap
bitmap
)
{
private
boolean
createPrintData
(
Bitmap
bitmap
)
{
try
{
try
{
mPrinter
.
addTextAlign
(
Printer
.
ALIGN_CENTER
);
//Printer.MODE_MONO单色(2个刻度)
//Printer.MODE_GRAY16多灰度(16刻度)
//Printer.MODE_MONO_HIGH_DENSITY 高密度单色(2个刻度),双倍密度
// 使用雙倍密度更清晰。但是寬度會被压窄一半,所以需要处理bitmap宽度为正常的两倍
//Printer.HALFTONE_DITHER 抖動(適用於打印圖形) 打印效果比較多一些噪點
//Printer.HALFTONE_ERROR_DIFFUSION 错误扩散(适合打印文本和图形) 打印效果比較多一些噪點
//Printer.HALFTONE_THRESHOLD 阈值(仅适用于打印文本) 打印效果更平滑
mPrinter
.
addImage
(
bitmap
,
0
,
0
,
mPrinter
.
addImage
(
bitmap
,
0
,
0
,
bitmap
.
getWidth
(),
bitmap
.
getWidth
(),
bitmap
.
getHeight
(),
bitmap
.
getHeight
(),
Printer
.
COLOR_
1
,
Printer
.
COLOR_
NONE
,
//顏色
Printer
.
MODE_MONO_HIGH_DENSITY
,
//
高
密度
Printer
.
MODE_MONO_HIGH_DENSITY
,
//密度
Printer
.
HALFTONE_
DITHER
,
//半
色調抖動
Printer
.
HALFTONE_
THRESHOLD
,
//
色調抖動
Printer
.
PARAM_DEFAULT
,
Printer
.
PARAM_DEFAULT
,
//亮度
Printer
.
COMPRESS_
NONE
);
//壓縮
Printer
.
COMPRESS_
AUTO
);
//壓縮
mPrinter
.
addCut
(
Printer
.
CUT_FEED
);
mPrinter
.
addCut
(
Printer
.
CUT_FEED
);
//COLOR_NONE 為普通顏色 COLOR_2為紅色
//COLOR_NONE 為普通顏色 COLOR_2為紅色
// mPrinter.addTextSize(2, 2);
// mPrinter.addTextStyle(0,0,1, Printer.COLOR_1);
// mPrinter.addText("炒爐打印測試\n");
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
mPrinter
.
clearCommandBuffer
();
mPrinter
.
clearCommandBuffer
();
...
...
component-print/src/main/java/com/joe/print/mvp/print/PrintKitchen.java
deleted
100644 → 0
View file @
5a967b4e
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
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.core.user.UserContext
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean
;
import
com.gingersoft.gsa.cloud.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.joe.print.R
;
import
com.joe.print.mvp.ui.adapter.KitChenPrintFoodAdapter
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
/**
* 廚房單打印
*/
public
class
PrintKitchen
extends
PrinterRoot
{
@Override
public
Map
<
String
,
List
<
Bitmap
>>
getPrintBitmap
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
Map
<
String
,
List
<
Bitmap
>>
bitmapMaps
=
new
HashMap
<>();
List
<
OrderDetail
>
orderDetails
=
DoshokuOrder
.
getInstance
().
getNewFoodList
();
if
(
orderDetails
!=
null
)
{
// for (int i = 0; i < orderDetails.size(); i++) {
// orderDetails.get(i).setPrintseting(printLocation[i % 2]);
// }
//廚房單,可能會有多個IP打印
//獲得ip打印列表,
//再將食品數據根據打印位置分組。
//打印一組之後,關閉連接,切換第二台打印機ip,如此循環
//打印完成之後,返回所有打印結果。
Map
<
String
,
List
<
OrderDetail
>>
foodMaps
=
new
HashMap
<>();
String
emptyPrintLocation
=
""
;
//部分食品沒有打印位置時設置為此key,比如這是第一個食品,沒有打印位置時
int
lastEmptyPrintLocationIndex
=
0
;
//上一次遍歷到第一個食品時都沒有打印位置時,開始的食品位置
//將所有食品進行遍歷,分組
for
(
int
i
=
0
;
i
<
orderDetails
.
size
();
i
++)
{
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
+
DELIMITER
+
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
;
}
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
{
//有打印位置,
//已經保存過這個位置的,
addToMap
(
foodMaps
,
food
);
}
}
//通過打印位置生成多張用於打印的bitmap
for
(
Map
.
Entry
<
String
,
List
<
OrderDetail
>>
entry
:
foodMaps
.
entrySet
())
{
String
key
=
entry
.
getKey
();
List
<
Bitmap
>
bitmaps
=
new
ArrayList
<>();
if
(
key
.
contains
(
"*"
))
{
//如果帶*號,這個集合就需要切紙,每個食品都需要單獨在一張廚房單上
for
(
OrderDetail
orderDetail
:
entry
.
getValue
())
{
List
<
OrderDetail
>
orders
=
new
ArrayList
<>();
//這裡new集合是因為下面的方法需要的參數是list集合
orders
.
add
(
orderDetail
);
Bitmap
bitmap
=
getKitChenPrintBitmap
(
mContext
,
orders
,
deviceBean
);
bitmaps
.
add
(
bitmap
);
}
}
else
{
Bitmap
bitmap
=
getKitChenPrintBitmap
(
mContext
,
entry
.
getValue
(),
deviceBean
);
//不帶*號,所有同樣廚房位置的食品都在一張紙上
bitmaps
.
add
(
bitmap
);
}
bitmapMaps
.
put
(
key
,
bitmaps
);
}
}
return
bitmapMaps
;
}
@Override
public
String
[]
getPrintDatas
(
Context
mContext
,
PrinterDeviceBean
deviceBean
)
{
return
null
;
}
@Override
public
int
getPrintCount
(
Context
context
)
{
return
1
;
}
private
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
);
}
}
/**
* 獲取"廚房單"圖片
*
* @param context
* @return
*/
private
Bitmap
getKitChenPrintBitmap
(
Context
context
,
List
<
OrderDetail
>
foodList
,
PrinterDeviceBean
printerDeviceBean
)
{
if
(
foodList
==
null
||
foodList
.
size
()
<=
0
)
{
return
null
;
}
DoshokuOrder
doshokuOrder
=
DoshokuOrder
.
getInstance
();
View
view
=
LinearLayout
.
inflate
(
context
,
R
.
layout
.
print_kitchen
,
null
);
TextView
tvTableNumber
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_print_table_number
);
TextView
tvOrderNumber
=
view
.
findViewById
(
R
.
id
.
tv_order_num
);
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
{
tvKitChenLocation
.
setVisibility
(
View
.
GONE
);
}
}
TableBean
.
DataBean
dataBean
=
doshokuOrder
.
getOpenTableInfo
();
if
(
dataBean
!=
null
)
{
//台號
tvTableNumber
.
setText
(
dataBean
.
getTableName
()
+
""
);
tvTableNumber2
.
setText
(
dataBean
.
getTableName
()
+
""
);
//人數
tvPeople
.
setText
(
dataBean
.
getPerson
()
+
""
);
//訂單號
tvOrderNumber
.
setText
(
""
+
dataBean
.
getOrderId
());
//開台時間
tvOpeningTime
.
setText
(
TimeUtils
.
parseTimeRepeat
(
dataBean
.
getCreateTime
(),
TimeUtils
.
DEFAULT_DATE_FORMAT
));
}
//落單時間,為當前時間
tvOrderTime
.
setText
(
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_FORMAT
));
//操作人員
tvOperator
.
setText
(
UserContext
.
newInstance
().
getMemberName
());
return
viewToZoomBitmap
(
context
,
view
,
printerDeviceBean
);
}
}
component-print/src/main/java/com/joe/print/mvp/print/PrintPrjKitchen.java
View file @
771adf38
...
@@ -7,9 +7,6 @@ import android.view.View;
...
@@ -7,9 +7,6 @@ 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.common.constans.OrderTypeConstans
;
import
com.gingersoft.gsa.cloud.common.constans.OrderTypeConstans
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
...
@@ -20,6 +17,7 @@ import com.gingersoft.gsa.cloud.print.bean.PrjBean;
...
@@ -20,6 +17,7 @@ import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import
com.joe.print.mvp.model.bean.HtmlLable
;
import
com.joe.print.mvp.model.bean.HtmlLable
;
import
com.joe.print.mvp.print.common.HtmlContract
;
import
com.joe.print.mvp.print.common.HtmlContract
;
import
com.joe.print.R
;
import
com.joe.print.R
;
import
com.joe.print.mvp.print.service.PrjService
;
import
com.joe.print.mvp.ui.view.KitChenPrjFoodView
;
import
com.joe.print.mvp.ui.view.KitChenPrjFoodView
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -254,7 +252,13 @@ public class PrintPrjKitchen extends PrinterRoot {
...
@@ -254,7 +252,13 @@ public class PrintPrjKitchen extends PrinterRoot {
return
null
;
return
null
;
}
}
setFoodItemType
(
data
);
setFoodItemType
(
data
);
View
view
=
LinearLayout
.
inflate
(
context
,
R
.
layout
.
print_kitchen2
,
null
);
View
view
;
if
(
PrjService
.
isPinPrinter
(
printerDeviceBean
))
{
//针式暂时用这个新的布局
view
=
LinearLayout
.
inflate
(
context
,
R
.
layout
.
print_dot_matrix_kitchen
,
null
);
}
else
{
view
=
LinearLayout
.
inflate
(
context
,
R
.
layout
.
print_kitchen
,
null
);
}
TextView
tvTableNumber
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_print_table_number
);
TextView
tvTableNumber
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_print_table_number
);
TextView
tvOrderNumberText
=
view
.
findViewById
(
R
.
id
.
tv_order_num_text
);
TextView
tvOrderNumberText
=
view
.
findViewById
(
R
.
id
.
tv_order_num_text
);
TextView
tvOrderNumber
=
view
.
findViewById
(
R
.
id
.
tv_order_num
);
TextView
tvOrderNumber
=
view
.
findViewById
(
R
.
id
.
tv_order_num
);
...
@@ -267,7 +271,6 @@ public class PrintPrjKitchen extends PrinterRoot {
...
@@ -267,7 +271,6 @@ public class PrintPrjKitchen extends PrinterRoot {
TextView
tvKitChenLocation
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_location
);
TextView
tvKitChenLocation
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_location
);
TextView
tvPeople
=
view
.
findViewById
(
R
.
id
.
tv_people
);
TextView
tvPeople
=
view
.
findViewById
(
R
.
id
.
tv_people
);
TextView
tvCurrentPageIndex
=
view
.
findViewById
(
R
.
id
.
tv_prj_page_index
);
TextView
tvCurrentPageIndex
=
view
.
findViewById
(
R
.
id
.
tv_prj_page_index
);
// RecyclerView rvFood = view.findViewById(R.id.rv_kitchen_food);
LinearLayout
foodLayout
=
view
.
findViewById
(
R
.
id
.
ll_kitchen_food
);
LinearLayout
foodLayout
=
view
.
findViewById
(
R
.
id
.
ll_kitchen_food
);
TextView
tvTableNumber2
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_print_table_number_bottom
);
TextView
tvTableNumber2
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_print_table_number_bottom
);
TextView
tvFirstOrder
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_print_first_order
);
TextView
tvFirstOrder
=
view
.
findViewById
(
R
.
id
.
tv_kitchen_print_first_order
);
...
@@ -281,15 +284,14 @@ public class PrintPrjKitchen extends PrinterRoot {
...
@@ -281,15 +284,14 @@ public class PrintPrjKitchen extends PrinterRoot {
LinearLayout
layoutOpenTableTime
=
view
.
findViewById
(
R
.
id
.
ll_opening_table_time
);
LinearLayout
layoutOpenTableTime
=
view
.
findViewById
(
R
.
id
.
ll_opening_table_time
);
foodLayout
.
addView
(
new
KitChenPrjFoodView
(
context
,
data
,
printerDeviceBean
));
foodLayout
.
addView
(
new
KitChenPrjFoodView
(
context
,
data
,
printerDeviceBean
));
// KitChenPrjPrintFoodAdapter foodAdapter = new KitChenPrjPrintFoodAdapter(data, printerDeviceBean);
// rvFood.setLayoutManager(new LinearLayoutManager(context));
// rvFood.setAdapter(foodAdapter);
//廚房位置
//廚房位置
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
key
)
&&
!
key
.
equals
(
"-1"
))
{
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
key
)
&&
!
key
.
equals
(
"-1"
))
{
tvKitChenLocationText
.
setVisibility
(
View
.
VISIBLE
);
tvKitChenLocationText
.
setVisibility
(
View
.
VISIBLE
);
tvKitChenLocation
.
setVisibility
(
View
.
VISIBLE
);
tvKitChenLocation
.
setText
(
key
);
tvKitChenLocation
.
setText
(
key
);
}
else
{
}
else
{
tvKitChenLocationText
.
setVisibility
(
View
.
GONE
);
tvKitChenLocationText
.
setVisibility
(
View
.
GONE
);
tvKitChenLocation
.
setVisibility
(
View
.
GONE
);
}
}
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
prjBean
.
getBillNo
()))
{
if
(!
TextUtil
.
isEmptyOrNullOrUndefined
(
prjBean
.
getBillNo
()))
{
...
@@ -307,11 +309,6 @@ public class PrintPrjKitchen extends PrinterRoot {
...
@@ -307,11 +309,6 @@ public class PrintPrjKitchen extends PrinterRoot {
tvTableNumber2
.
setText
(
"堂食"
);
tvTableNumber2
.
setText
(
"堂食"
);
tvTableNumber
.
setText
(
prjBean
.
getTableName
());
tvTableNumber
.
setText
(
prjBean
.
getTableName
());
tvTableNumber2
.
setText
(
prjBean
.
getTableName
());
tvTableNumber2
.
setText
(
prjBean
.
getTableName
());
// if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) {
// tvTakeCodeText.setVisibility(View.VISIBLE);
// tvTakeCode.setVisibility(View.VISIBLE);
// tvTakeCode.setText(prjBean.getTakeFoodCode());
// }
break
;
break
;
case
OrderTypeConstans
.
order_type_7
:
case
OrderTypeConstans
.
order_type_7
:
layoutOpenTableTime
.
setVisibility
(
View
.
GONE
);
layoutOpenTableTime
.
setVisibility
(
View
.
GONE
);
...
@@ -344,45 +341,12 @@ public class PrintPrjKitchen extends PrinterRoot {
...
@@ -344,45 +341,12 @@ public class PrintPrjKitchen extends PrinterRoot {
}
else
{
}
else
{
tvWaiter
.
setText
(
prjBean
.
getMemberName
());
tvWaiter
.
setText
(
prjBean
.
getMemberName
());
}
}
// if (TextUtil.isEmptyOrNullOrUndefined(prjBean.getTableName())) {
// layoutOpenTableTime.setVisibility(View.GONE);
// switch (prjBean.getOrderType()) {
// case 1:
// case 3:
// tvTableNumber.setText("堂食");
// tvTableNumber2.setText("堂食");
// if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) {
// tvTakeCodeText.setVisibility(View.VISIBLE);
// tvTakeCode.setVisibility(View.VISIBLE);
// tvTakeCode.setText(prjBean.getTakeFoodCode());
// }
// break;
// case 7:
// tvTableNumber.setText("自取");
// tvTableNumber2.setText("自取");
// if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) {
// tvTakeCodeText.setVisibility(View.VISIBLE);
// tvTakeCode.setVisibility(View.VISIBLE);
// tvTakeCode.setText(prjBean.getTakeFoodCode());
// }
// break;
// default:
// tvTableNumber.setText("外賣");
// tvTableNumber2.setText("外賣");
// tvOrderNumberText.setText("訂單碼:");
// tvOrderNumber.setText(prjBean.getTakeFoodCode());
// break;
// }
// } else {
// tvTableNumber.setText(prjBean.getTableName());
// tvTableNumber2.setText(prjBean.getTableName());
// }
//人數
//人數
if
(
prjBean
.
getPerson
()
!=
0
)
{
tvPeople
.
setText
(
prjBean
.
getPerson
()
+
""
);
tvPeople
.
setText
(
prjBean
.
getPerson
()
+
""
)
;
int
visibility
=
prjBean
.
getPerson
()
==
0
?
View
.
GONE
:
View
.
VISIBLE
;
view
.
findViewById
(
R
.
id
.
tv_people_text
).
setVisibility
(
View
.
VISIBLE
);
view
.
findViewById
(
R
.
id
.
tv_people_text
).
setVisibility
(
visibility
);
view
.
findViewById
(
R
.
id
.
tv_people
).
setVisibility
(
View
.
VISIBLE
);
tvPeople
.
setVisibility
(
visibility
);
}
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
prjBean
.
getTakeTime
()))
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
prjBean
.
getTakeTime
()))
{
tvTakeTime
.
setText
(
"取餐:"
+
prjBean
.
getTakeTime
());
tvTakeTime
.
setText
(
"取餐:"
+
prjBean
.
getTakeTime
());
}
else
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
prjBean
.
getSendTime
()))
{
}
else
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
prjBean
.
getSendTime
()))
{
...
@@ -404,18 +368,6 @@ public class PrintPrjKitchen extends PrinterRoot {
...
@@ -404,18 +368,6 @@ public class PrintPrjKitchen extends PrinterRoot {
}
}
//開台時間
//開台時間
tvOpeningTime
.
setText
(
TimeUtils
.
parseTimeRepeat
(
prjBean
.
getOrderDetailsTime
(),
TimeUtils
.
DEFAULT_DATE_MDHM
));
tvOpeningTime
.
setText
(
TimeUtils
.
parseTimeRepeat
(
prjBean
.
getOrderDetailsTime
(),
TimeUtils
.
DEFAULT_DATE_MDHM
));
// if (OpenTableManage.getDefault().getTableBean() != null) {
// //台號
// tvTableNumber.setText(prjBean.getTableName());
// tvTableNumber2.setText(prjBean.getTableName());
// //人數
// tvPeople.setText(prjBean.getPerson() + "");
// //訂單號
// tvOrderNumber.setText(prjBean.getOrderNo());
// //開台時間
// tvOpeningTime.setText(TimeUtils.parseTimeRepeat(prjBean.getOrderDetailsTime(), TimeUtils.DEFAULT_DATE_FORMAT));
// }
//落單時間,為當前時間
//落單時間,為當前時間
tvOrderTime
.
setText
(
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_MDHM
));
tvOrderTime
.
setText
(
TimeUtils
.
getCurrentTimeInString
(
TimeUtils
.
DEFAULT_DATE_MDHM
));
if
(
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
PrintPage
,
false
))
{
if
(
RestaurantExpandInfoUtils
.
getValue
(
ExpandConstant
.
PrintPage
,
false
))
{
...
@@ -423,7 +375,6 @@ public class PrintPrjKitchen extends PrinterRoot {
...
@@ -423,7 +375,6 @@ public class PrintPrjKitchen extends PrinterRoot {
tvCurrentPageIndex
.
setText
(
prjBean
.
getCurrentIndex
()
+
"/"
+
prjBean
.
getTotalPrj
());
tvCurrentPageIndex
.
setText
(
prjBean
.
getCurrentIndex
()
+
"/"
+
prjBean
.
getTotalPrj
());
}
}
}
}
return
viewToZoomBitmap
(
context
,
view
,
printerDeviceBean
);
return
viewToZoomBitmap
(
context
,
view
,
printerDeviceBean
);
}
}
...
...
component-print/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
View file @
771adf38
...
@@ -9,7 +9,6 @@ import android.os.Build;
...
@@ -9,7 +9,6 @@ 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.SparseArray
;
import
android.util.SparseArray
;
import
android.view.Gravity
;
import
android.view.Gravity
;
import
android.view.View
;
import
android.view.View
;
...
@@ -68,6 +67,7 @@ import com.joe.print.mvp.print.common.HtmlContract;
...
@@ -68,6 +67,7 @@ import com.joe.print.mvp.print.common.HtmlContract;
import
com.joe.print.mvp.print.common.PrinterFinderCallback
;
import
com.joe.print.mvp.print.common.PrinterFinderCallback
;
import
com.joe.print.mvp.print.common.SendResultCode
;
import
com.joe.print.mvp.print.common.SendResultCode
;
import
com.joe.print.mvp.print.maker.IpPrintMaker
;
import
com.joe.print.mvp.print.maker.IpPrintMaker
;
import
com.joe.print.mvp.print.service.PrjService
;
import
com.joe.print.mvp.print.usb.EscCommand
;
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
;
...
@@ -82,7 +82,6 @@ import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
...
@@ -82,7 +82,6 @@ import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import
com.xuexiang.rxutil2.rxjava.task.RxIOTask
;
import
com.xuexiang.rxutil2.rxjava.task.RxIOTask
;
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
;
...
@@ -454,6 +453,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
...
@@ -454,6 +453,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
*/
*/
final
Bitmap
viewToZoomBitmap
(
Context
context
,
View
view
,
PrinterDeviceBean
printerDeviceBean
)
{
final
Bitmap
viewToZoomBitmap
(
Context
context
,
View
view
,
PrinterDeviceBean
printerDeviceBean
)
{
LayoutToBitmapUtils
.
layoutView
(
context
,
view
);
//先测量view
LayoutToBitmapUtils
.
layoutView
(
context
,
view
);
//先测量view
// return LayoutToBitmapUtils.loadBitmapFromView(view);
//轉為bitmap
//轉為bitmap
return
zoomBitmap
(
printerDeviceBean
,
LayoutToBitmapUtils
.
loadBitmapFromView
(
view
));
return
zoomBitmap
(
printerDeviceBean
,
LayoutToBitmapUtils
.
loadBitmapFromView
(
view
));
}
}
...
@@ -467,11 +467,17 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
...
@@ -467,11 +467,17 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
*/
*/
private
Bitmap
zoomBitmap
(
PrinterDeviceBean
printerDeviceBean
,
Bitmap
bitmap
)
{
private
Bitmap
zoomBitmap
(
PrinterDeviceBean
printerDeviceBean
,
Bitmap
bitmap
)
{
int
printWidth
;
int
printWidth
;
if
(
printerDeviceBean
!=
null
&&
printerDeviceBean
.
getPaperSpecification
()
!=
null
)
{
if
(
PrjService
.
isPinPrinter
(
printerDeviceBean
))
{
printWidth
=
Double
.
valueOf
(
printerDeviceBean
.
getPaperSpecification
()).
intValue
();
//epson针式打印機
printWidth
=
200
;
return
ImageUtils
.
dotMatrixZoomDrawable
(
bitmap
,
printWidth
);
}
else
{
}
else
{
//如果打印機沒設置寬度
if
(
printerDeviceBean
!=
null
&&
printerDeviceBean
.
getPaperSpecification
()
!=
null
)
{
printWidth
=
480
;
printWidth
=
Double
.
valueOf
(
printerDeviceBean
.
getPaperSpecification
()).
intValue
();
}
else
{
//如果打印機沒設置寬度
printWidth
=
480
;
}
}
}
return
ImageUtils
.
zoomDrawable
(
bitmap
,
printWidth
);
return
ImageUtils
.
zoomDrawable
(
bitmap
,
printWidth
);
}
}
...
@@ -934,7 +940,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
...
@@ -934,7 +940,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintExecut
}
}
public
View
getAmountText
(
Context
mContext
,
String
text
)
{
public
View
getAmountText
(
Context
mContext
,
String
text
)
{
return
getTextView
(
mContext
,
text
,
Gravity
.
RIGHT
,
2
4
,
ContextCompat
.
getColor
(
mContext
,
R
.
color
.
black
));
return
getTextView
(
mContext
,
text
,
Gravity
.
RIGHT
,
2
8
,
ContextCompat
.
getColor
(
mContext
,
R
.
color
.
black
));
}
}
public
TextView
getTextView
(
Context
mContext
,
String
text
,
int
gravity
,
float
textSize
)
{
public
TextView
getTextView
(
Context
mContext
,
String
text
,
int
gravity
,
float
textSize
)
{
...
...
component-print/src/main/java/com/joe/print/mvp/print/service/PrjService.java
View file @
771adf38
...
@@ -1044,7 +1044,7 @@ public class PrjService extends Service implements ReceiveListener {
...
@@ -1044,7 +1044,7 @@ public class PrjService extends Service implements ReceiveListener {
* @param printerDeviceBean 打印機實體類
* @param printerDeviceBean 打印機實體類
* @return true是
* @return true是
*/
*/
p
rivate
boolean
isPinPrinter
(
PrinterDeviceBean
printerDeviceBean
)
{
p
ublic
static
boolean
isPinPrinter
(
PrinterDeviceBean
printerDeviceBean
)
{
return
(
printerDeviceBean
!=
null
&&
printerDeviceBean
.
getPrinterName
()
!=
null
&&
printerDeviceBean
.
getPrinterName
().
toLowerCase
().
contains
(
"EPSON"
.
toLowerCase
()))
return
(
printerDeviceBean
!=
null
&&
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
()));
}
}
...
...
component-print/src/main/res/layout/print_model_header.xml
View file @
771adf38
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
<TextView
<TextView
android:id=
"@+id/print_brand_name"
android:id=
"@+id/print_brand_name"
style=
"@style/Print_
text_s
tyle"
style=
"@style/Print_
header_textS
tyle"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
<TextView
<TextView
android:id=
"@+id/print_restaurant_name"
android:id=
"@+id/print_restaurant_name"
style=
"@style/Print_
text_s
tyle"
style=
"@style/Print_
header_textS
tyle"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
...
...
component-print/src/main/res/values/styles.xml
View file @
771adf38
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
<style
name=
"print_other_order_twenty_six_style"
>
<style
name=
"print_other_order_twenty_six_style"
>
<item
name=
"android:textColor"
>
@color/theme_333_color
</item>
<item
name=
"android:textColor"
>
@color/theme_333_color
</item>
<item
name=
"android:textSize"
>
@dimen/dp_2
6
</item>
<item
name=
"android:textSize"
>
@dimen/dp_2
8
</item>
</style>
</style>
<style
name=
"print_other_order_thirty_style"
>
<style
name=
"print_other_order_thirty_style"
>
...
@@ -58,4 +58,10 @@
...
@@ -58,4 +58,10 @@
<item
name=
"android:textSize"
>
@dimen/dp_16
</item>
<item
name=
"android:textSize"
>
@dimen/dp_16
</item>
<item
name=
"android:textColor"
>
@color/theme_color
</item>
<item
name=
"android:textColor"
>
@color/theme_color
</item>
</style>
</style>
<style
name=
"Print_header_textStyle"
>
<item
name=
"android:textSize"
>
@dimen/dp_26
</item>
<item
name=
"android:textColor"
>
@color/black
</item>
</style>
</resources>
</resources>
\ No newline at end of file
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/OutboundOrderBean.java
0 → 100644
View file @
771adf38
package
com
.
gingersoft
.
supply_chain
.
mvp
.
bean
;
/**
* @author 宇航.
* User: admin
* Date: 2021/3/19
* Time: 18:54
* Use:打印出庫單用
*/
public
class
OutboundOrderBean
{
private
String
name
;
private
String
value
;
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getValue
()
{
return
value
;
}
public
void
setValue
(
String
value
)
{
this
.
value
=
value
;
}
public
OutboundOrderBean
(
String
name
,
String
value
)
{
this
.
name
=
name
;
this
.
value
=
value
;
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/PurchaseFoodBean.java
View file @
771adf38
...
@@ -166,12 +166,12 @@ public class PurchaseFoodBean implements Serializable, QMUISection.Model<Purchas
...
@@ -166,12 +166,12 @@ public class PurchaseFoodBean implements Serializable, QMUISection.Model<Purchas
@Override
@Override
public
boolean
isSameItem
(
PurchaseFoodBean
other
)
{
public
boolean
isSameItem
(
PurchaseFoodBean
other
)
{
return
false
;
return
id
.
equals
(
other
.
id
)
;
}
}
@Override
@Override
public
boolean
isSameContent
(
PurchaseFoodBean
other
)
{
public
boolean
isSameContent
(
PurchaseFoodBean
other
)
{
return
f
alse
;
return
f
oodNo
.
equals
(
other
.
foodNo
)
;
}
}
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/bean/WareHouseListBean.java
View file @
771adf38
package
com
.
gingersoft
.
supply_chain
.
mvp
.
bean
;
package
com
.
gingersoft
.
supply_chain
.
mvp
.
bean
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.List
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -31,7 +32,7 @@ public class WareHouseListBean {
...
@@ -31,7 +32,7 @@ public class WareHouseListBean {
* purchaseWarehousingOrderDetailsVOS : [{"id":84,"name":"阿克苏苹果🍎","cateName":"特级水果","supplierName":"盒马生鲜","basicUnitName":"1","foodPrice":89,"foodNum":3,"foodAmount":267},{"id":67,"name":"大閘蟹","cateName":"海鮮","supplierName":"測試供應商1205","basicUnitName":"1","foodPrice":100,"foodNum":3,"foodAmount":300},{"id":66,"name":"澳洲龍蝦","cateName":"海鮮","supplierName":"測試供應商1205","basicUnitName":"1","foodPrice":100,"foodNum":3,"foodAmount":300},{"id":3,"name":"香蕉","cateName":"青菜","supplierName":"人民公社供應商","basicUnitName":"3","foodPrice":2,"foodNum":20,"foodAmount":200}]
* purchaseWarehousingOrderDetailsVOS : [{"id":84,"name":"阿克苏苹果🍎","cateName":"特级水果","supplierName":"盒马生鲜","basicUnitName":"1","foodPrice":89,"foodNum":3,"foodAmount":267},{"id":67,"name":"大閘蟹","cateName":"海鮮","supplierName":"測試供應商1205","basicUnitName":"1","foodPrice":100,"foodNum":3,"foodAmount":300},{"id":66,"name":"澳洲龍蝦","cateName":"海鮮","supplierName":"測試供應商1205","basicUnitName":"1","foodPrice":100,"foodNum":3,"foodAmount":300},{"id":3,"name":"香蕉","cateName":"青菜","supplierName":"人民公社供應商","basicUnitName":"3","foodPrice":2,"foodNum":20,"foodAmount":200}]
*/
*/
private
TotalBean
total
;
private
TotalBean
total
;
private
List
<
PurchaseWarehousingOrderDetailsVO
SBean
>
purchaseWarehousingOrderDetailsVOS
;
private
List
<
PurchaseWarehousingOrderDetailsVO
>
purchaseWarehousingOrderDetailsVOS
;
/**
/**
* 數量統計
* 數量統計
...
@@ -71,7 +72,7 @@ public class WareHouseListBean {
...
@@ -71,7 +72,7 @@ public class WareHouseListBean {
* 食品信息
* 食品信息
*/
*/
@Data
@Data
public
static
class
PurchaseWarehousingOrderDetailsVO
SBean
{
public
static
class
PurchaseWarehousingOrderDetailsVO
implements
Serializable
{
/**
/**
* id : 84
* id : 84
* name : 阿克苏苹果🍎
* name : 阿克苏苹果🍎
...
@@ -92,6 +93,7 @@ public class WareHouseListBean {
...
@@ -92,6 +93,7 @@ public class WareHouseListBean {
private
int
foodNum
;
private
int
foodNum
;
private
double
foodAmount
;
private
double
foodAmount
;
private
String
images
;
private
String
images
;
private
boolean
snFood
;
}
}
}
}
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/contract/BuyIngredientsContract.java
View file @
771adf38
...
@@ -52,7 +52,7 @@ public interface BuyIngredientsContract {
...
@@ -52,7 +52,7 @@ public interface BuyIngredientsContract {
* 加載食品
* 加載食品
* @param food
* @param food
*/
*/
void
loadFood
(
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>
food
);
void
loadFood
(
int
categoryId
,
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>
food
);
}
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/contract/WareHouseListContract.java
View file @
771adf38
...
@@ -28,7 +28,7 @@ public interface WareHouseListContract {
...
@@ -28,7 +28,7 @@ public interface WareHouseListContract {
interface
View
extends
IView
{
interface
View
extends
IView
{
void
loadWarehousingInfo
(
WareHouseListBean
.
WareHousingDataBean
data
);
void
loadWarehousingInfo
(
WareHouseListBean
.
WareHousingDataBean
data
);
void
loadListInfo
(
List
<
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
SBean
>
purchaseWarehousingOrderDetailsVos
);
void
loadListInfo
(
List
<
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
>
purchaseWarehousingOrderDetailsVos
);
void
finishLoad
();
void
finishLoad
();
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/BuyIngredientsPresenter.java
View file @
771adf38
...
@@ -65,6 +65,10 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
...
@@ -65,6 +65,10 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
private
List
<
CategoryFoodTreeBean
>
categoryFoodTreeBeans
;
private
List
<
CategoryFoodTreeBean
>
categoryFoodTreeBeans
;
private
Map
<
Integer
,
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>>
foodSectionMap
=
new
HashMap
<>();
private
Map
<
Integer
,
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>>
foodSectionMap
=
new
HashMap
<>();
/**
* 是否正在加載食品中
*/
private
boolean
isLoadFood
=
false
;
@Inject
@Inject
public
BuyIngredientsPresenter
(
BuyIngredientsContract
.
Model
model
,
BuyIngredientsContract
.
View
rootView
)
{
public
BuyIngredientsPresenter
(
BuyIngredientsContract
.
Model
model
,
BuyIngredientsContract
.
View
rootView
)
{
...
@@ -159,6 +163,17 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
...
@@ -159,6 +163,17 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
}
}
public
void
getFoodByCategoryId
()
{
public
void
getFoodByCategoryId
()
{
}
public
void
getFood
(
int
parentCategoryId
)
{
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>
foodSections
=
foodSectionMap
.
get
(
parentCategoryId
);
if
(
foodSections
==
null
)
{
getFoodByCategoryId
(
parentCategoryId
);
}
else
{
mRootView
.
loadFood
(
parentCategoryId
,
foodSections
);
}
}
}
/**
/**
...
@@ -166,7 +181,7 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
...
@@ -166,7 +181,7 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
*
*
* @param parentCategoryId 父分類id
* @param parentCategoryId 父分類id
*/
*/
p
ublic
void
getFoodByCategoryId
(
int
parentCategoryId
)
{
p
rivate
void
getFoodByCategoryId
(
int
parentCategoryId
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>(
5
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>(
5
);
map
.
put
(
"pageSize"
,
1000
);
map
.
put
(
"pageSize"
,
1000
);
map
.
put
(
"pageIndex"
,
0
);
map
.
put
(
"pageIndex"
,
0
);
...
@@ -191,7 +206,7 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
...
@@ -191,7 +206,7 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
//將食品和分類整合到一起,List<QMUISection<CategoryBean, PurchaseFoodBean>>
//將食品和分類整合到一起,List<QMUISection<CategoryBean, PurchaseFoodBean>>
val
sections
=
foodToList
(
info
.
getData
());
val
sections
=
foodToList
(
info
.
getData
());
foodSectionMap
.
put
(
parentCategoryId
,
sections
);
foodSectionMap
.
put
(
parentCategoryId
,
sections
);
mRootView
.
loadFood
(
sections
);
mRootView
.
loadFood
(
parentCategoryId
,
sections
);
// mRootView.loadRightFoodIngredients(filterThisCategoryFood(categoryId, info.getData()));
// mRootView.loadRightFoodIngredients(filterThisCategoryFood(categoryId, info.getData()));
}
else
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
info
.
getErrMsg
()))
{
}
else
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
info
.
getErrMsg
()))
{
mRootView
.
showMessage
(
info
.
getErrMsg
());
mRootView
.
showMessage
(
info
.
getErrMsg
());
...
@@ -235,7 +250,7 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
...
@@ -235,7 +250,7 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>
sections
=
new
ArrayList
<>();
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>
sections
=
new
ArrayList
<>();
CategoryBean
categoryBean
=
new
CategoryBean
();
CategoryBean
categoryBean
=
new
CategoryBean
();
List
<
PurchaseFoodBean
>
purchaseFoodBeans
=
new
ArrayList
<>();
List
<
PurchaseFoodBean
>
purchaseFoodBeans
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
data
.
size
();
i
++
)
{
for
(
int
i
=
data
.
size
()
-
1
;
i
>=
0
;
i
--
)
{
PurchaseFoodBean
purchaseFoodBean
=
data
.
get
(
i
);
PurchaseFoodBean
purchaseFoodBean
=
data
.
get
(
i
);
if
(
categoryBean
.
getId
()
==
null
)
{
if
(
categoryBean
.
getId
()
==
null
)
{
categoryBean
.
setId
(
purchaseFoodBean
.
getFoodCategoryId
());
categoryBean
.
setId
(
purchaseFoodBean
.
getFoodCategoryId
());
...
@@ -248,7 +263,7 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
...
@@ -248,7 +263,7 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
}
}
}
}
purchaseFoodBeans
.
add
(
purchaseFoodBean
);
purchaseFoodBeans
.
add
(
purchaseFoodBean
);
if
(
i
==
data
.
size
()
-
1
)
{
if
(
i
==
0
)
{
//最後一個食品
//最後一個食品
sections
.
add
(
new
QMUISection
<>(
categoryBean
,
purchaseFoodBeans
));
sections
.
add
(
new
QMUISection
<>(
categoryBean
,
purchaseFoodBeans
));
}
}
...
@@ -288,4 +303,13 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
...
@@ -288,4 +303,13 @@ public class BuyIngredientsPresenter extends BasePresenter<BuyIngredientsContrac
}
}
return
foods
;
return
foods
;
}
}
public
boolean
isLoadFood
()
{
return
isLoadFood
;
}
public
void
setLoadFood
(
boolean
loadFood
)
{
isLoadFood
=
loadFood
;
}
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/WarehousingInventoryPresenter.java
View file @
771adf38
...
@@ -23,6 +23,7 @@ import javax.inject.Inject;
...
@@ -23,6 +23,7 @@ import javax.inject.Inject;
import
com.gingersoft.supply_chain.mvp.contract.WarehousingInventoryContract
;
import
com.gingersoft.supply_chain.mvp.contract.WarehousingInventoryContract
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -51,6 +52,8 @@ public class WarehousingInventoryPresenter extends BasePresenter<WarehousingInve
...
@@ -51,6 +52,8 @@ public class WarehousingInventoryPresenter extends BasePresenter<WarehousingInve
@Inject
@Inject
AppManager
mAppManager
;
AppManager
mAppManager
;
private
List
<
InventoryRecordBean
>
inventoryRecordBeanList
;
@Inject
@Inject
public
WarehousingInventoryPresenter
(
WarehousingInventoryContract
.
Model
model
,
WarehousingInventoryContract
.
View
rootView
)
{
public
WarehousingInventoryPresenter
(
WarehousingInventoryContract
.
Model
model
,
WarehousingInventoryContract
.
View
rootView
)
{
super
(
model
,
rootView
);
super
(
model
,
rootView
);
...
@@ -122,7 +125,14 @@ public class WarehousingInventoryPresenter extends BasePresenter<WarehousingInve
...
@@ -122,7 +125,14 @@ public class WarehousingInventoryPresenter extends BasePresenter<WarehousingInve
public
void
onNext
(
BaseResult
baseResult
)
{
public
void
onNext
(
BaseResult
baseResult
)
{
if
(
baseResult
!=
null
&&
baseResult
.
isSuccess
())
{
if
(
baseResult
!=
null
&&
baseResult
.
isSuccess
())
{
List
<
InventoryRecordBean
>
inventoryRecordBeans
=
GsonUtils
.
jsonToList
(
baseResult
.
getData
(),
InventoryRecordBean
.
class
);
List
<
InventoryRecordBean
>
inventoryRecordBeans
=
GsonUtils
.
jsonToList
(
baseResult
.
getData
(),
InventoryRecordBean
.
class
);
mRootView
.
loadRecord
(
inventoryRecordBeans
);
if
(
inventoryRecordBeanList
==
null
)
{
inventoryRecordBeanList
=
new
ArrayList
<>();
}
if
(
pageIndex
==
0
)
{
inventoryRecordBeanList
.
clear
();
}
inventoryRecordBeanList
.
addAll
(
inventoryRecordBeans
);
mRootView
.
loadRecord
(
inventoryRecordBeanList
);
}
else
if
(
baseResult
!=
null
&&
TextUtil
.
isNotEmptyOrNullOrUndefined
(
baseResult
.
getErrMsg
()))
{
}
else
if
(
baseResult
!=
null
&&
TextUtil
.
isNotEmptyOrNullOrUndefined
(
baseResult
.
getErrMsg
()))
{
mRootView
.
showMessage
(
baseResult
.
getErrMsg
());
mRootView
.
showMessage
(
baseResult
.
getErrMsg
());
}
else
{
}
else
{
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/BuyIngredientsAdapter.java
View file @
771adf38
...
@@ -2,6 +2,7 @@ package com.gingersoft.supply_chain.mvp.ui.adapter;
...
@@ -2,6 +2,7 @@ package com.gingersoft.supply_chain.mvp.ui.adapter;
import
android.content.Context
;
import
android.content.Context
;
import
android.text.Editable
;
import
android.text.Editable
;
import
android.util.Log
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
...
@@ -40,13 +41,14 @@ import butterknife.ButterKnife;
...
@@ -40,13 +41,14 @@ import butterknife.ButterKnife;
public
class
BuyIngredientsAdapter
extends
QMUIDefaultStickySectionAdapter
<
CategoryBean
,
PurchaseFoodBean
>
{
public
class
BuyIngredientsAdapter
extends
QMUIDefaultStickySectionAdapter
<
CategoryBean
,
PurchaseFoodBean
>
{
private
Context
context
;
private
Context
context
;
private
boolean
isS
howDouble
=
fals
e
;
private
boolean
isS
inger
=
tru
e
;
public
BuyIngredientsAdapter
(
Context
context
,
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>
food
)
{
public
BuyIngredientsAdapter
(
Context
context
,
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>
food
)
{
this
.
context
=
context
;
this
.
context
=
context
;
setData
(
food
);
setData
(
food
);
}
}
@NonNull
@NonNull
@Override
@Override
protected
HeadViewHolder
onCreateSectionHeaderViewHolder
(
@NonNull
ViewGroup
viewGroup
)
{
protected
HeadViewHolder
onCreateSectionHeaderViewHolder
(
@NonNull
ViewGroup
viewGroup
)
{
...
@@ -54,14 +56,14 @@ public class BuyIngredientsAdapter extends QMUIDefaultStickySectionAdapter<Categ
...
@@ -54,14 +56,14 @@ public class BuyIngredientsAdapter extends QMUIDefaultStickySectionAdapter<Categ
}
}
public
int
getLayoutId
()
{
public
int
getLayoutId
()
{
if
(
isS
howDouble
)
{
if
(
isS
inger
)
{
return
R
.
layout
.
item_buy_food_ingredient
_double_row
;
return
R
.
layout
.
item_buy_food_ingredient
;
}
}
return
R
.
layout
.
item_buy_food_ingredient
;
return
R
.
layout
.
item_buy_food_ingredient
_double_row
;
}
}
public
void
setShow
Double
Row
(
boolean
showType
)
{
public
void
setShow
Singer
Row
(
boolean
showType
)
{
isS
howDouble
=
showType
;
isS
inger
=
showType
;
}
}
@NonNull
@NonNull
...
@@ -115,7 +117,7 @@ public class BuyIngredientsAdapter extends QMUIDefaultStickySectionAdapter<Categ
...
@@ -115,7 +117,7 @@ public class BuyIngredientsAdapter extends QMUIDefaultStickySectionAdapter<Categ
//食材數量增加
//食材數量增加
purchaseFoodBean
.
setFoodQuantity
(
purchaseFoodBean
.
getFoodQuantity
()
+
1
);
purchaseFoodBean
.
setFoodQuantity
(
purchaseFoodBean
.
getFoodQuantity
()
+
1
);
itemViewHolder
.
edFoodIngredientNumber
.
setText
(
String
.
valueOf
(
purchaseFoodBean
.
getFoodQuantity
()));
itemViewHolder
.
edFoodIngredientNumber
.
setText
(
String
.
valueOf
(
purchaseFoodBean
.
getFoodQuantity
()));
setSubAndNumShow
(
itemViewHolder
,
tru
e
);
setSubAndNumShow
(
itemViewHolder
,
fals
e
);
});
});
//輸入框焦點監聽
//輸入框焦點監聽
itemViewHolder
.
edFoodIngredientNumber
.
setOnFocusChangeListener
((
v
,
hasFocus
)
->
{
itemViewHolder
.
edFoodIngredientNumber
.
setOnFocusChangeListener
((
v
,
hasFocus
)
->
{
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/ConsumptionReasonAdapter.java
View file @
771adf38
...
@@ -22,13 +22,13 @@ public class ConsumptionReasonAdapter extends BaseQuickAdapter<ConsumeReasonBean
...
@@ -22,13 +22,13 @@ public class ConsumptionReasonAdapter extends BaseQuickAdapter<ConsumeReasonBean
private
int
selectIndex
=
0
;
private
int
selectIndex
=
0
;
public
ConsumptionReasonAdapter
(
List
<
ConsumeReasonBean
>
consumeReasonBeans
)
{
public
ConsumptionReasonAdapter
(
List
<
ConsumeReasonBean
>
consumeReasonBeans
)
{
super
(
R
.
layout
.
item_consumption_reason
,
consumeReasonBeans
);
super
(
R
.
layout
.
btn_gray_to_blue
,
consumeReasonBeans
);
addChildClickViewIds
(
R
.
id
.
cb_
consumption_reason
);
addChildClickViewIds
(
R
.
id
.
cb_
gray_to_blue
);
}
}
@Override
@Override
protected
void
convert
(
@NotNull
BaseViewHolder
viewHolder
,
ConsumeReasonBean
consumeReasonBean
)
{
protected
void
convert
(
@NotNull
BaseViewHolder
viewHolder
,
ConsumeReasonBean
consumeReasonBean
)
{
AppCompatCheckBox
compatCheckBox
=
viewHolder
.
getView
(
R
.
id
.
cb_
consumption_reason
);
AppCompatCheckBox
compatCheckBox
=
viewHolder
.
getView
(
R
.
id
.
cb_
gray_to_blue
);
compatCheckBox
.
setText
(
consumeReasonBean
.
getDescription
());
compatCheckBox
.
setText
(
consumeReasonBean
.
getDescription
());
compatCheckBox
.
setChecked
(
viewHolder
.
getAdapterPosition
()
==
selectIndex
);
compatCheckBox
.
setChecked
(
viewHolder
.
getAdapterPosition
()
==
selectIndex
);
}
}
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/InventoryRecordAdapter.java
View file @
771adf38
...
@@ -6,12 +6,14 @@ import androidx.core.content.ContextCompat;
...
@@ -6,12 +6,14 @@ import androidx.core.content.ContextCompat;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.supply_chain.R
;
import
com.gingersoft.supply_chain.R
;
import
com.gingersoft.supply_chain.mvp.bean.InventoryRecordBean
;
import
com.gingersoft.supply_chain.mvp.bean.InventoryRecordBean
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
org.jetbrains.annotations.Nullable
;
import
java.sql.Time
;
import
java.util.List
;
import
java.util.List
;
import
cn.bingoogolapple.baseadapter.BGABaseAdapterUtil
;
import
cn.bingoogolapple.baseadapter.BGABaseAdapterUtil
;
...
@@ -33,9 +35,9 @@ public class InventoryRecordAdapter extends BaseQuickAdapter<InventoryRecordBean
...
@@ -33,9 +35,9 @@ public class InventoryRecordAdapter extends BaseQuickAdapter<InventoryRecordBean
@Override
@Override
protected
void
convert
(
@NotNull
BaseViewHolder
viewHolder
,
InventoryRecordBean
inventoryRecordBean
)
{
protected
void
convert
(
@NotNull
BaseViewHolder
viewHolder
,
InventoryRecordBean
inventoryRecordBean
)
{
viewHolder
.
setText
(
R
.
id
.
tv_inventory_record_username
,
inventoryRecordBean
.
getUserName
());
viewHolder
.
setText
(
R
.
id
.
tv_inventory_record_username
,
inventoryRecordBean
.
getUserName
());
viewHolder
.
setText
(
R
.
id
.
tv_inventory_record_number
,
inventoryRecordBean
.
getUserName
(
));
viewHolder
.
setText
(
R
.
id
.
tv_inventory_record_number
,
String
.
valueOf
(
inventoryRecordBean
.
getRemainingQuantity
()
));
viewHolder
.
setText
(
R
.
id
.
tv_inventory_record_difference
,
inventoryRecordBean
.
getUserName
(
));
viewHolder
.
setText
(
R
.
id
.
tv_inventory_record_difference
,
String
.
valueOf
(
inventoryRecordBean
.
getConsumeQuantity
()
));
viewHolder
.
setText
(
R
.
id
.
tv_inventory_record_operating_data
,
inventoryRecordBean
.
getUserName
(
));
viewHolder
.
setText
(
R
.
id
.
tv_inventory_record_operating_data
,
TimeUtils
.
getTime
(
inventoryRecordBean
.
getCreateTime
(),
TimeUtils
.
DEFAULT_DATE_FORMAT
));
viewHolder
.
setTextColor
(
R
.
id
.
tv_inventory_record_username
,
ContextCompat
.
getColor
(
getContext
(),
R
.
color
.
color_3c
));
viewHolder
.
setTextColor
(
R
.
id
.
tv_inventory_record_username
,
ContextCompat
.
getColor
(
getContext
(),
R
.
color
.
color_3c
));
viewHolder
.
setTextColor
(
R
.
id
.
tv_inventory_record_number
,
ContextCompat
.
getColor
(
getContext
(),
R
.
color
.
color_3c
));
viewHolder
.
setTextColor
(
R
.
id
.
tv_inventory_record_number
,
ContextCompat
.
getColor
(
getContext
(),
R
.
color
.
color_3c
));
...
@@ -43,6 +45,12 @@ public class InventoryRecordAdapter extends BaseQuickAdapter<InventoryRecordBean
...
@@ -43,6 +45,12 @@ public class InventoryRecordAdapter extends BaseQuickAdapter<InventoryRecordBean
viewHolder
.
setTextColor
(
R
.
id
.
tv_inventory_record_operating_data
,
ContextCompat
.
getColor
(
getContext
(),
R
.
color
.
color_3c
));
viewHolder
.
setTextColor
(
R
.
id
.
tv_inventory_record_operating_data
,
ContextCompat
.
getColor
(
getContext
(),
R
.
color
.
color_3c
));
viewHolder
.
setBackgroundColor
(
R
.
id
.
layout_inventory_record
,
BGABaseAdapterUtil
.
getColor
(
colors
[
viewHolder
.
getAdapterPosition
()
%
2
]));
viewHolder
.
setBackgroundColor
(
R
.
id
.
layout_inventory_record
,
BGABaseAdapterUtil
.
getColor
(
colors
[
viewHolder
.
getAdapterPosition
()
%
2
]));
if
(
inventoryRecordBean
.
getConsumeQuantity
()
>
0
)
{
viewHolder
.
setTextColor
(
R
.
id
.
tv_inventory_record_difference
,
ContextCompat
.
getColor
(
getContext
(),
R
.
color
.
required_color
));
}
else
{
viewHolder
.
setTextColor
(
R
.
id
.
tv_inventory_record_difference
,
ContextCompat
.
getColor
(
getContext
(),
R
.
color
.
purchase_buy_again_color
));
}
}
}
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/OutboundOrderAdapter.java
0 → 100644
View file @
771adf38
package
com
.
gingersoft
.
supply_chain
.
mvp
.
ui
.
adapter
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.gingersoft.supply_chain.R
;
import
com.gingersoft.supply_chain.mvp.bean.OutboundOrderBean
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
java.util.List
;
/**
* @author 宇航.
* User: admin
* Date: 2021/3/19
* Time: 18:59
* Use:
*/
public
class
OutboundOrderAdapter
extends
BaseQuickAdapter
<
OutboundOrderBean
,
BaseViewHolder
>
{
public
OutboundOrderAdapter
(
@Nullable
List
<
OutboundOrderBean
>
data
)
{
super
(
R
.
layout
.
item_outbound_order
,
data
);
}
@Override
protected
void
convert
(
@NotNull
BaseViewHolder
viewHolder
,
OutboundOrderBean
outboundOrderBean
)
{
viewHolder
.
setText
(
R
.
id
.
tv_item_name
,
outboundOrderBean
.
getName
());
viewHolder
.
setText
(
R
.
id
.
tv_item_value
,
outboundOrderBean
.
getValue
());
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/PrintPdfAdapter.java
0 → 100644
View file @
771adf38
package
com
.
gingersoft
.
supply_chain
.
mvp
.
ui
.
adapter
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.Canvas
;
import
android.graphics.Matrix
;
import
android.graphics.Paint
;
import
android.graphics.pdf.PdfDocument
;
import
android.graphics.pdf.PdfRenderer
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.CancellationSignal
;
import
android.os.ParcelFileDescriptor
;
import
android.print.PageRange
;
import
android.print.PrintAttributes
;
import
android.print.PrintDocumentAdapter
;
import
android.print.PrintDocumentInfo
;
import
android.print.pdf.PrintedPdfDocument
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author 宇航.
* User: admin
* Date: 2021/3/19
* Time: 17:56
* Use:
*/
public
class
PrintPdfAdapter
extends
PrintDocumentAdapter
{
private
Context
context
;
private
int
pageHeight
;
private
int
pageWidth
;
private
PdfDocument
mPdfDocument
;
private
int
totalPages
=
1
;
private
String
pdfPath
;
private
List
<
Bitmap
>
mList
;
public
PrintPdfAdapter
(
Context
context
,
String
pdfPath
)
{
this
.
context
=
context
;
this
.
pdfPath
=
pdfPath
;
}
@Override
public
void
onLayout
(
PrintAttributes
oldAttributes
,
PrintAttributes
newAttributes
,
CancellationSignal
cancellationSignal
,
LayoutResultCallback
callback
,
Bundle
metadata
)
{
mPdfDocument
=
new
PrintedPdfDocument
(
context
,
newAttributes
);
//创建可打印PDF文档对象
pageHeight
=
PrintAttributes
.
MediaSize
.
ISO_A4
.
getHeightMils
()
*
72
/
1000
;
//设置尺寸
pageWidth
=
PrintAttributes
.
MediaSize
.
ISO_A4
.
getWidthMils
()
*
72
/
1000
;
if
(
cancellationSignal
.
isCanceled
())
{
callback
.
onLayoutCancelled
();
return
;
}
ParcelFileDescriptor
mFileDescriptor
;
PdfRenderer
pdfRender
=
null
;
PdfRenderer
.
Page
page
=
null
;
try
{
mFileDescriptor
=
ParcelFileDescriptor
.
open
(
new
File
(
pdfPath
),
ParcelFileDescriptor
.
MODE_READ_ONLY
);
if
(
mFileDescriptor
!=
null
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
LOLLIPOP
)
{
pdfRender
=
new
PdfRenderer
(
mFileDescriptor
);
}
}
mList
=
new
ArrayList
<>();
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
LOLLIPOP
)
{
if
(
pdfRender
!=
null
&&
pdfRender
.
getPageCount
()
>
0
)
{
totalPages
=
pdfRender
.
getPageCount
();
for
(
int
i
=
0
;
i
<
pdfRender
.
getPageCount
();
i
++)
{
if
(
null
!=
page
)
{
page
.
close
();
}
page
=
pdfRender
.
openPage
(
i
);
Bitmap
bmp
=
Bitmap
.
createBitmap
(
page
.
getWidth
()
*
2
,
page
.
getHeight
()
*
2
,
Bitmap
.
Config
.
ARGB_8888
);
page
.
render
(
bmp
,
null
,
null
,
PdfRenderer
.
Page
.
RENDER_MODE_FOR_DISPLAY
);
mList
.
add
(
bmp
);
}
}
}
if
(
null
!=
page
)
{
page
.
close
();
}
if
(
null
!=
mFileDescriptor
)
{
mFileDescriptor
.
close
();
}
if
(
null
!=
pdfRender
)
{
pdfRender
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
if
(
totalPages
>
0
)
{
PrintDocumentInfo
.
Builder
builder
=
new
PrintDocumentInfo
.
Builder
(
"快速入门.pdf"
)
.
setContentType
(
PrintDocumentInfo
.
CONTENT_TYPE_DOCUMENT
)
.
setPageCount
(
totalPages
);
//构建文档配置信息
PrintDocumentInfo
info
=
builder
.
build
();
callback
.
onLayoutFinished
(
info
,
true
);
}
else
{
callback
.
onLayoutFailed
(
"Page count is zero."
);
}
}
@Override
public
void
onWrite
(
final
PageRange
[]
pageRanges
,
final
ParcelFileDescriptor
destination
,
final
CancellationSignal
cancellationSignal
,
final
WriteResultCallback
callback
)
{
for
(
int
i
=
0
;
i
<
totalPages
;
i
++)
{
if
(
pageInRange
(
pageRanges
,
i
))
//保证页码正确
{
PdfDocument
.
PageInfo
newPage
=
new
PdfDocument
.
PageInfo
.
Builder
(
pageWidth
,
pageHeight
,
i
).
create
();
PdfDocument
.
Page
page
=
mPdfDocument
.
startPage
(
newPage
);
//创建新页面
if
(
cancellationSignal
.
isCanceled
())
{
//取消信号
callback
.
onWriteCancelled
();
mPdfDocument
.
close
();
mPdfDocument
=
null
;
return
;
}
drawPage
(
page
,
i
);
//将内容绘制到页面Canvas上
mPdfDocument
.
finishPage
(
page
);
}
}
try
{
mPdfDocument
.
writeTo
(
new
FileOutputStream
(
destination
.
getFileDescriptor
()));
}
catch
(
IOException
e
)
{
callback
.
onWriteFailed
(
e
.
toString
());
return
;
}
finally
{
mPdfDocument
.
close
();
mPdfDocument
=
null
;
}
callback
.
onWriteFinished
(
pageRanges
);
}
private
boolean
pageInRange
(
PageRange
[]
pageRanges
,
int
page
)
{
for
(
PageRange
pageRange
:
pageRanges
)
{
if
((
page
>=
pageRange
.
getStart
())
&&
(
page
<=
pageRange
.
getEnd
()))
{
return
true
;
}
}
return
false
;
}
/**
* 页面绘制(渲染)
*/
private
void
drawPage
(
PdfDocument
.
Page
page
,
int
pagenumber
)
{
Canvas
canvas
=
page
.
getCanvas
();
if
(
mList
!=
null
)
{
Paint
paint
=
new
Paint
();
Bitmap
bitmap
=
mList
.
get
(
pagenumber
);
int
bitmapWidth
=
bitmap
.
getWidth
();
int
bitmapHeight
=
bitmap
.
getHeight
();
// 计算缩放比例
float
scale
=
(
float
)
pageWidth
/
(
float
)
bitmapWidth
;
// 取得想要缩放的matrix参数
Matrix
matrix
=
new
Matrix
();
matrix
.
postScale
(
scale
,
scale
);
canvas
.
drawBitmap
(
bitmap
,
matrix
,
paint
);
}
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/SecondCategoryAdapter.java
View file @
771adf38
...
@@ -50,7 +50,11 @@ public class SecondCategoryAdapter extends BaseQuickAdapter<OrderCategoryBean.Fo
...
@@ -50,7 +50,11 @@ public class SecondCategoryAdapter extends BaseQuickAdapter<OrderCategoryBean.Fo
TextView
tvName
=
viewHolder
.
getView
(
R
.
id
.
tv_second_category_title
);
TextView
tvName
=
viewHolder
.
getView
(
R
.
id
.
tv_second_category_title
);
CardView
cardView
=
viewHolder
.
getView
(
R
.
id
.
card_purchase_category
);
CardView
cardView
=
viewHolder
.
getView
(
R
.
id
.
card_purchase_category
);
viewHolder
.
setVisible
(
R
.
id
.
tv_second_category_title
,
TextUtil
.
isNotEmptyOrNullOrUndefined
(
categoryBean
.
getName
()));
viewHolder
.
setVisible
(
R
.
id
.
tv_second_category_title
,
TextUtil
.
isNotEmptyOrNullOrUndefined
(
categoryBean
.
getName
()));
if
(
viewHolder
.
getAdapterPosition
()
==
selectIndex
)
{
notifyCheckState
(
viewHolder
.
getAdapterPosition
(),
tvName
,
cardView
);
}
private
void
notifyCheckState
(
@NotNull
int
position
,
TextView
tvName
,
CardView
cardView
)
{
if
(
position
==
selectIndex
)
{
cardView
.
setBackground
(
ContextCompat
.
getDrawable
(
getContext
(),
checkedBg
));
cardView
.
setBackground
(
ContextCompat
.
getDrawable
(
getContext
(),
checkedBg
));
tvName
.
setTextColor
(
checkedTextColor
);
tvName
.
setTextColor
(
checkedTextColor
);
}
else
{
}
else
{
...
@@ -59,6 +63,18 @@ public class SecondCategoryAdapter extends BaseQuickAdapter<OrderCategoryBean.Fo
...
@@ -59,6 +63,18 @@ public class SecondCategoryAdapter extends BaseQuickAdapter<OrderCategoryBean.Fo
}
}
}
}
public
static
final
int
UPDATE_STATE
=
101
;
@Override
public
void
onBindViewHolder
(
@NotNull
BaseViewHolder
holder
,
int
position
,
@NotNull
List
<
Object
>
payloads
)
{
//list为空时,必须调用两个参数的onBindViewHolder(@NonNull LabelHolder holder, int position)
if
(
payloads
.
isEmpty
())
{
onBindViewHolder
(
holder
,
position
);
}
else
{
notifyCheckState
(
position
,
holder
.
getView
(
R
.
id
.
tv_second_category_title
),
holder
.
getView
(
R
.
id
.
card_purchase_category
));
}
}
public
SecondCategoryAdapter
setCheckedBg
(
int
checkedBg
)
{
public
SecondCategoryAdapter
setCheckedBg
(
int
checkedBg
)
{
this
.
checkedBg
=
checkedBg
;
this
.
checkedBg
=
checkedBg
;
return
this
;
return
this
;
...
@@ -69,14 +85,14 @@ public class SecondCategoryAdapter extends BaseQuickAdapter<OrderCategoryBean.Fo
...
@@ -69,14 +85,14 @@ public class SecondCategoryAdapter extends BaseQuickAdapter<OrderCategoryBean.Fo
return
this
;
return
this
;
}
}
public
SecondCategoryAdapter
setSelectIndex
(
int
selectIndex
)
{
public
SecondCategoryAdapter
setSelect
ed
Index
(
int
selectIndex
)
{
int
lastIndex
=
this
.
selectIndex
;
int
lastIndex
=
this
.
selectIndex
;
this
.
selectIndex
=
selectIndex
;
this
.
selectIndex
=
selectIndex
;
if
(
lastIndex
>=
0
&&
lastIndex
<
getItemCount
())
{
if
(
lastIndex
>=
0
&&
lastIndex
<
getItemCount
())
{
notifyItemChanged
(
lastIndex
);
notifyItemChanged
(
lastIndex
,
UPDATE_STATE
);
}
}
if
(
this
.
selectIndex
>=
0
&&
this
.
selectIndex
<
getItemCount
())
{
if
(
this
.
selectIndex
>=
0
&&
this
.
selectIndex
<
getItemCount
())
{
notifyItemChanged
(
this
.
selectIndex
);
notifyItemChanged
(
this
.
selectIndex
,
UPDATE_STATE
);
}
}
return
this
;
return
this
;
}
}
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/adapter/WarehousingQueryAdapter.java
View file @
771adf38
...
@@ -20,19 +20,19 @@ import java.util.List;
...
@@ -20,19 +20,19 @@ import java.util.List;
* Time: 16:36
* Time: 16:36
* Use:庫存查詢的訂單列表
* Use:庫存查詢的訂單列表
*/
*/
public
class
WarehousingQueryAdapter
extends
BaseQuickAdapter
<
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
SBean
,
BaseViewHolder
>
{
public
class
WarehousingQueryAdapter
extends
BaseQuickAdapter
<
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
,
BaseViewHolder
>
{
private
Context
context
;
private
Context
context
;
private
int
[]
colors
=
new
int
[]{
R
.
color
.
color_f9
,
R
.
color
.
white
};
private
int
[]
colors
=
new
int
[]{
R
.
color
.
color_f9
,
R
.
color
.
white
};
public
WarehousingQueryAdapter
(
Context
context
,
List
<
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
SBean
>
purchaseWarehousingOrderDetailsVosBeans
)
{
public
WarehousingQueryAdapter
(
Context
context
,
List
<
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
>
purchaseWarehousingOrderDetailsVosBeans
)
{
super
(
R
.
layout
.
item_warehousing_query
,
purchaseWarehousingOrderDetailsVosBeans
);
super
(
R
.
layout
.
item_warehousing_query
,
purchaseWarehousingOrderDetailsVosBeans
);
addChildClickViewIds
(
R
.
id
.
tv_warehouse_item_inventory_quantity
);
addChildClickViewIds
(
R
.
id
.
tv_warehouse_item_inventory_quantity
);
this
.
context
=
context
;
this
.
context
=
context
;
}
}
@Override
@Override
protected
void
convert
(
@NotNull
BaseViewHolder
viewHolder
,
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
SBean
item
)
{
protected
void
convert
(
@NotNull
BaseViewHolder
viewHolder
,
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
item
)
{
viewHolder
.
setText
(
R
.
id
.
tv_warehouse_item_ingredients_name
,
item
.
getName
());
viewHolder
.
setText
(
R
.
id
.
tv_warehouse_item_ingredients_name
,
item
.
getName
());
viewHolder
.
setText
(
R
.
id
.
tv_warehouse_item_ingredients_species
,
item
.
getFoodCategoryName
());
viewHolder
.
setText
(
R
.
id
.
tv_warehouse_item_ingredients_species
,
item
.
getFoodCategoryName
());
viewHolder
.
setText
(
R
.
id
.
tv_warehouse_item_unit
,
item
.
getUnitName
());
viewHolder
.
setText
(
R
.
id
.
tv_warehouse_item_unit
,
item
.
getUnitName
());
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/FunctionListFragment.java
View file @
771adf38
...
@@ -113,8 +113,8 @@ public class FunctionListFragment extends BaseSupplyChainFragment<FunctionListPr
...
@@ -113,8 +113,8 @@ public class FunctionListFragment extends BaseSupplyChainFragment<FunctionListPr
start
(
SupplierListFragment
.
newInstance
(
false
,
null
));
start
(
SupplierListFragment
.
newInstance
(
false
,
null
));
break
;
break
;
case
"食材"
:
case
"食材"
:
start
(
FoodIngredientsFragment
.
newInstance
(
FOOD_INGREDIENTS
));
//
start(FoodIngredientsFragment.newInstance(FOOD_INGREDIENTS));
//
start(BuyIngredientsFragment.newInstance());
start
(
BuyIngredientsFragment
.
newInstance
());
break
;
break
;
case
"種類"
:
case
"種類"
:
start
(
CategoryFragment
.
newInstance
());
start
(
CategoryFragment
.
newInstance
());
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/food/BuyIngredientsFragment.java
View file @
771adf38
...
@@ -18,9 +18,11 @@ import androidx.recyclerview.widget.GridLayoutManager;
...
@@ -18,9 +18,11 @@ import androidx.recyclerview.widget.GridLayoutManager;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.listener.OnItemClickListener
;
import
com.chad.library.adapter.base.listener.OnItemClickListener
;
import
com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback
;
import
com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback
;
import
com.gingersoft.gsa.cloud.common.loadsir.ErrorCallback
;
import
com.gingersoft.gsa.cloud.common.loadsir.ErrorCallback
;
import
com.gingersoft.gsa.cloud.common.utils.CollectionUtils
;
import
com.gingersoft.gsa.cloud.ui.bean.view.CategoryBean
;
import
com.gingersoft.gsa.cloud.ui.bean.view.CategoryBean
;
import
com.gingersoft.supply_chain.R
;
import
com.gingersoft.supply_chain.R
;
import
com.gingersoft.supply_chain.R2
;
import
com.gingersoft.supply_chain.R2
;
...
@@ -33,6 +35,7 @@ import com.gingersoft.supply_chain.mvp.ui.adapter.BuyIngredientsAdapter;
...
@@ -33,6 +35,7 @@ import com.gingersoft.supply_chain.mvp.ui.adapter.BuyIngredientsAdapter;
import
com.gingersoft.supply_chain.mvp.ui.adapter.FirstLevelCategoryAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.FirstLevelCategoryAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.SecondCategoryAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.SecondCategoryAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment
;
import
com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment
;
import
com.gingersoft.supply_chain.mvp.ui.widget.CenterLayoutManager
;
import
com.gingersoft.supply_chain.mvp.ui.widget.ShowSecondCategoryPopup
;
import
com.gingersoft.supply_chain.mvp.ui.widget.ShowSecondCategoryPopup
;
import
com.gingersoft.supply_chain.mvp.utils.ViewUtils
;
import
com.gingersoft.supply_chain.mvp.utils.ViewUtils
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.di.component.AppComponent
;
...
@@ -46,7 +49,9 @@ import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
...
@@ -46,7 +49,9 @@ import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import
com.qmuiteam.qmui.alpha.QMUIAlphaTextView
;
import
com.qmuiteam.qmui.alpha.QMUIAlphaTextView
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.qmuiteam.qmui.widget.section.QMUISection
;
import
com.qmuiteam.qmui.widget.section.QMUISection
;
import
com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter
;
import
com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout
;
import
com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout
;
import
com.scwang.smartrefresh.layout.SmartRefreshLayout
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
...
@@ -76,8 +81,6 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
...
@@ -76,8 +81,6 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
RecyclerView
rvFirstCategory
;
RecyclerView
rvFirstCategory
;
private
FirstLevelCategoryAdapter
firstLevelCategoryAdapter
;
private
FirstLevelCategoryAdapter
firstLevelCategoryAdapter
;
@BindView
(
R2
.
id
.
layout_right_content
)
LinearLayout
layoutRightContent
;
@BindView
(
R2
.
id
.
layout_ingredients_left
)
@BindView
(
R2
.
id
.
layout_ingredients_left
)
LinearLayout
layoutIngredientsLeft
;
LinearLayout
layoutIngredientsLeft
;
@BindView
(
R2
.
id
.
rv_food_ingredients_second_category
)
@BindView
(
R2
.
id
.
rv_food_ingredients_second_category
)
...
@@ -112,6 +115,8 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
...
@@ -112,6 +115,8 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
@BindView
(
R2
.
id
.
tv_unfold_category
)
@BindView
(
R2
.
id
.
tv_unfold_category
)
TextView
tvUnfoldCategory
;
TextView
tvUnfoldCategory
;
TextView
tvShoppingCart
;
TextView
tvShoppingCart
;
@BindView
(
R2
.
id
.
refreshLayout
)
SmartRefreshLayout
refreshLayout
;
/**
/**
* 0單列
* 0單列
* 1雙列
* 1雙列
...
@@ -143,10 +148,36 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
...
@@ -143,10 +148,36 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
@Override
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
initTopBar
();
initTopBar
();
loadService
=
LoadSir
.
getDefault
().
register
(
layoutRightContent
,
(
Callback
.
OnReloadListener
)
v
->
{
//
loadService = LoadSir.getDefault().register(layoutRightContent, (Callback.OnReloadListener) v -> {
});
//
});
fullRegister
=
LoadSir
.
getDefault
().
register
(
layoutContent
,
(
Callback
.
OnReloadListener
)
v
->
{
fullRegister
=
LoadSir
.
getDefault
().
register
(
layoutContent
,
(
Callback
.
OnReloadListener
)
v
->
{
});
});
// refreshLayout.setEnableOverScrollBounce(false);
// refreshLayout.setEnableOverScrollDrag(false);
// refreshLayout.setEnablePureScrollMode(true);
// refreshLayout.resetNoMoreData();
refreshLayout
.
setEnableOverScrollBounce
(
false
)
.
setFooterTriggerRate
(
0.1f
);
// refreshLayout.setOnRefreshListener(refreshLayout -> {
// //在這裡不是刷新,而是獲取上一個分類的數據
// int i = firstLevelCategoryAdapter.getSelectedIndex() - 1;
// if (i >= 0) {
// firstLevelCategoryAdapter.getOnItemClickListener().onItemClick(firstLevelCategoryAdapter, null, i);
// } else {
// refreshLayout.finishRefreshWithNoMoreData();
// }
// });
// refreshLayout.setOnLoadMoreListener(refreshLayout -> {
// //加載下一個分類
// int itemCount = firstLevelCategoryAdapter.getItemCount();
// int i = firstLevelCategoryAdapter.getSelectedIndex() + 1;
// if (i < itemCount) {
// firstLevelCategoryAdapter.getOnItemClickListener().onItemClick(firstLevelCategoryAdapter, null, i);
// } else {
// refreshLayout.finishLoadMoreWithNoMoreData();
// }
// });
//獲取一級分類
//獲取一級分類
mPresenter
.
getCategoryTrees
();
mPresenter
.
getCategoryTrees
();
}
}
...
@@ -197,12 +228,141 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
...
@@ -197,12 +228,141 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
private
void
switchShowSingerOrDouble
()
{
private
void
switchShowSingerOrDouble
()
{
//切換單雙列
//切換單雙列
isSinger
=
!
isSinger
;
isSinger
=
!
isSinger
;
sectionFood
.
setLayoutManager
(
isSinger
?
new
LinearLayoutManager
(
requireContext
())
:
getDoubleRowManager
());
setLayoutManager
();
adapter
.
setShowDoubleRow
(
isSinger
);
adapter
.
setShowSingerRow
(
isSinger
);
btnSwitchRow
.
setImageResource
(
isSinger
?
R
.
drawable
.
ic_single_row
:
R
.
drawable
.
ic_double_row
);
btnSwitchRow
.
setImageResource
(
isSinger
?
R
.
drawable
.
ic_single_row
:
R
.
drawable
.
ic_double_row
);
sectionFood
.
setAdapter
(
adapter
);
sectionFood
.
setAdapter
(
adapter
);
}
}
private
int
lastIndex
=
0
;
/**
* 0為滑動到頂部
* 1為滑動到底部
* 2為用戶點擊加載
*/
private
int
isTailOrHead
=
0
;
private
boolean
isNextCategory
=
false
;
private
void
setLayoutManager
()
{
LinearLayoutManager
linearLayoutManager
=
isSinger
?
new
LinearLayoutManager
(
requireContext
())
:
getDoubleRowManager
();
sectionFood
.
setLayoutManager
(
linearLayoutManager
);
sectionFood
.
getRecyclerView
().
clearOnScrollListeners
();
sectionFood
.
getRecyclerView
().
addOnScrollListener
(
new
RecyclerView
.
OnScrollListener
()
{
@Override
public
void
onScrollStateChanged
(
@NonNull
RecyclerView
recyclerView
,
int
newState
)
{
super
.
onScrollStateChanged
(
recyclerView
,
newState
);
if
(
newState
==
RecyclerView
.
SCROLL_STATE_IDLE
)
{
int
firstVisibleItemPosition
=
linearLayoutManager
.
findFirstVisibleItemPosition
();
int
lastVisibleItemPosition
=
linearLayoutManager
.
findLastVisibleItemPosition
();
//手指往上滑動,獲取下一個分類數據
//記錄當前滑動到哪個header,如果和上次不一致,頂部的分類就切換選中
if
(!
mPresenter
.
isLoadFood
())
{
if
(
lastVisibleItemPosition
==
adapter
.
getItemCount
()
-
1
)
{
//最後一個,獲取下一個一級分類的數據
//當前一級分類不是最後一個
if
(
firstLevelCategoryAdapter
.
getSelectedIndex
()
!=
firstLevelCategoryAdapter
.
getItemCount
()
-
1
)
{
isTailOrHead
=
1
;
mPresenter
.
setLoadFood
(
true
);
mPresenter
.
getFood
(
firstLevelCategoryAdapter
.
getItem
(
firstLevelCategoryAdapter
.
getSelectedIndex
()
+
1
).
getId
());
}
}
else
if
(
firstVisibleItemPosition
==
0
)
{
//第一個,獲取上一個一級分類的數據
//當前一級分類不是第一個
if
(
firstLevelCategoryAdapter
.
getSelectedIndex
()
!=
0
)
{
isTailOrHead
=
0
;
mPresenter
.
setLoadFood
(
true
);
mPresenter
.
getFood
(
firstLevelCategoryAdapter
.
getItem
(
firstLevelCategoryAdapter
.
getSelectedIndex
()
-
1
).
getId
());
}
}
}
}
}
@Override
public
void
onScrolled
(
@NonNull
RecyclerView
recyclerView
,
int
dx
,
int
dy
)
{
super
.
onScrolled
(
recyclerView
,
dx
,
dy
);
int
firstVisibleItemPosition
=
linearLayoutManager
.
findFirstVisibleItemPosition
();
// int lastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition();
int
sectionIndex
=
adapter
.
getSectionIndex
(
firstVisibleItemPosition
);
// //手指往上滑動,獲取下一個分類數據
// //記錄當前滑動到哪個header,如果和上次不一致,頂部的分類就切換選中
// if (!mPresenter.isLoadFood()) {
// if (lastVisibleItemPosition == adapter.getItemCount() - 1) {
// //最後一個,獲取下一個一級分類的數據
// //當前一級分類不是最後一個
// if (firstLevelCategoryAdapter.getSelectedIndex() != firstLevelCategoryAdapter.getItemCount() - 1) {
// isTailOrHead = 1;
// mPresenter.setLoadFood(true);
// mPresenter.getFood(firstLevelCategoryAdapter.getItem(firstLevelCategoryAdapter.getSelectedIndex() + 1).getId());
// }
// } else if (firstVisibleItemPosition == 0) {
// //第一個,獲取上一個一級分類的數據
// //當前一級分類不是第一個
// if (firstLevelCategoryAdapter.getSelectedIndex() != 0) {
// isTailOrHead = 0;
// mPresenter.setLoadFood(true);
// mPresenter.getFood(firstLevelCategoryAdapter.getItem(firstLevelCategoryAdapter.getSelectedIndex() - 1).getId());
// }
// }
// }
if
(
sectionIndex
!=
lastIndex
)
{
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>
sectionDirectly
=
adapter
.
getSectionDirectly
(
sectionIndex
);
if
(
sectionDirectly
!=
null
&&
sectionDirectly
.
getHeader
()
!=
null
)
{
Integer
id
=
sectionDirectly
.
getHeader
().
getId
();
List
<
OrderCategoryBean
.
FoodCategoryTrees
>
data
=
secondCategoryAdapter
.
getData
();
for
(
int
i
=
lastIndex
;
i
<
data
.
size
();
i
=
dy
>
0
?
i
+
1
:
i
-
1
)
{
if
(
i
<
0
)
{
break
;
}
if
(
data
.
get
(
i
).
getId
()
==
id
)
{
secondCategoryAdapter
.
setSelectedIndex
(
i
);
CenterLayoutManager
layoutManager
=
(
CenterLayoutManager
)
rvSecondCategory
.
getLayoutManager
();
layoutManager
.
smoothScrollToPosition
(
rvSecondCategory
,
new
RecyclerView
.
State
(),
i
);
break
;
}
}
lastIndex
=
sectionIndex
;
}
}
}
});
}
private
void
switchCategory
(
BaseQuickAdapter
<
OrderCategoryBean
.
FoodCategoryTrees
,
?
extends
RecyclerView
.
ViewHolder
>
adapter
,
RecyclerView
recyclerView
,
Integer
id
)
{
List
<
OrderCategoryBean
.
FoodCategoryTrees
>
data
=
adapter
.
getData
();
for
(
int
i
=
0
;
i
<
data
.
size
();
i
++)
{
if
(
data
.
get
(
i
).
getId
()
==
id
)
{
if
(
adapter
instanceof
SecondCategoryAdapter
)
{
((
SecondCategoryAdapter
)
adapter
).
setSelectedIndex
(
i
);
}
else
if
(
adapter
instanceof
FirstLevelCategoryAdapter
)
{
((
FirstLevelCategoryAdapter
)
adapter
).
setSelectedIndex
(
i
);
}
CenterLayoutManager
layoutManager
=
(
CenterLayoutManager
)
recyclerView
.
getLayoutManager
();
layoutManager
.
smoothScrollToPosition
(
recyclerView
,
new
RecyclerView
.
State
(),
i
);
if
(
i
==
data
.
size
()
-
1
)
{
if
(
adapter
instanceof
FirstLevelCategoryAdapter
)
{
}
else
{
}
//現在是最後一個二級分類,這時候去獲取下一個一級分類的內容
if
(!
isNextCategory
)
{
isNextCategory
=
true
;
}
else
{
//是一級分類最後一個
refreshLayout
.
setNoMoreData
(
true
);
}
}
else
{
isNextCategory
=
false
;
}
return
;
}
}
}
/**
/**
* 切換顯示分類或供應商
* 切換顯示分類或供應商
*/
*/
...
@@ -221,7 +381,7 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
...
@@ -221,7 +381,7 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
.
atView
(
layoutCategory
)
.
atView
(
layoutCategory
)
.
hasShadowBg
(
false
)
.
hasShadowBg
(
false
)
.
popupPosition
(
PopupPosition
.
Bottom
)
.
popupPosition
(
PopupPosition
.
Bottom
)
.
asCustom
(
new
ShowSecondCategoryPopup
(
requireContext
(),
secondCategoryAdapter
.
getSelectIndex
(),
layoutCategory
.
getWidth
(),
secondCategoryAdapter
.
getData
(),
(
adapter
,
view
,
position
)
->
{
.
asCustom
(
new
ShowSecondCategoryPopup
(
requireContext
(),
secondCategoryAdapter
.
getSelectIndex
(),
layoutCategory
.
get
Measured
Width
(),
secondCategoryAdapter
.
getData
(),
(
adapter
,
view
,
position
)
->
{
//二級分類滾動顯示,當前彈窗顯示三級分類,顯示三級分類在popup內部處理
//二級分類滾動顯示,當前彈窗顯示三級分類,顯示三級分類在popup內部處理
secondCategoryAdapter
.
getOnItemClickListener
().
onItemClick
(
secondCategoryAdapter
,
view
,
position
);
secondCategoryAdapter
.
getOnItemClickListener
().
onItemClick
(
secondCategoryAdapter
,
view
,
position
);
}))
}))
...
@@ -239,7 +399,6 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
...
@@ -239,7 +399,6 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
public
void
loadCategory
(
List
<
OrderCategoryBean
.
FoodCategoryTrees
>
foodCategoryTrees
)
{
public
void
loadCategory
(
List
<
OrderCategoryBean
.
FoodCategoryTrees
>
foodCategoryTrees
)
{
if
(
foodCategoryTrees
.
size
()
>
0
)
{
if
(
foodCategoryTrees
.
size
()
>
0
)
{
fullRegister
.
showSuccess
();
fullRegister
.
showSuccess
();
loadService
.
showSuccess
();
if
(
firstLevelCategoryAdapter
==
null
)
{
if
(
firstLevelCategoryAdapter
==
null
)
{
firstLevelCategoryAdapter
=
new
FirstLevelCategoryAdapter
(
foodCategoryTrees
,
requireContext
());
firstLevelCategoryAdapter
=
new
FirstLevelCategoryAdapter
(
foodCategoryTrees
,
requireContext
());
rvFirstCategory
.
setAdapter
(
firstLevelCategoryAdapter
);
rvFirstCategory
.
setAdapter
(
firstLevelCategoryAdapter
);
...
@@ -249,7 +408,7 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
...
@@ -249,7 +408,7 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
ViewUtils
.
moveToCenterByVertical
(
rvFirstCategory
,
position
);
ViewUtils
.
moveToCenterByVertical
(
rvFirstCategory
,
position
);
loadSecondCategory
(
firstLevelCategoryAdapter
.
getData
().
get
(
position
).
getFoodCategoryTrees
());
loadSecondCategory
(
firstLevelCategoryAdapter
.
getData
().
get
(
position
).
getFoodCategoryTrees
());
//獲取當前分類所有食材
//獲取當前分類所有食材
mPresenter
.
getFood
ByCategoryId
(
firstLevelCategoryAdapter
.
getItem
(
position
).
getId
());
mPresenter
.
getFood
(
firstLevelCategoryAdapter
.
getItem
(
position
).
getId
());
});
});
//默認選中第0個分類
//默認選中第0個分類
firstLevelCategoryAdapter
.
getOnItemClickListener
().
onItemClick
(
firstLevelCategoryAdapter
,
null
,
0
);
firstLevelCategoryAdapter
.
getOnItemClickListener
().
onItemClick
(
firstLevelCategoryAdapter
,
null
,
0
);
...
@@ -270,7 +429,7 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
...
@@ -270,7 +429,7 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
@Override
@Override
public
void
loadFail
()
{
public
void
loadFail
()
{
loadService
.
showCallback
(
EmptyCallback
.
class
);
//
loadService.showCallback(EmptyCallback.class);
}
}
/**
/**
...
@@ -279,37 +438,77 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
...
@@ -279,37 +438,77 @@ public class BuyIngredientsFragment extends BaseSupplyChainFragment<BuyIngredien
* @param foodCategoryTrees
* @param foodCategoryTrees
*/
*/
private
void
loadSecondCategory
(
List
<
OrderCategoryBean
.
FoodCategoryTrees
>
foodCategoryTrees
)
{
private
void
loadSecondCategory
(
List
<
OrderCategoryBean
.
FoodCategoryTrees
>
foodCategoryTrees
)
{
secondCategoryAdapter
=
new
SecondCategoryAdapter
(
requireContext
(),
foodCategoryTrees
);
if
(
secondCategoryAdapter
==
null
)
{
rvSecondCategory
.
setLayoutManager
(
new
LinearLayoutManager
(
requireContext
(),
LinearLayoutManager
.
HORIZONTAL
,
false
));
secondCategoryAdapter
=
new
SecondCategoryAdapter
(
requireContext
(),
foodCategoryTrees
);
rvSecondCategory
.
setAdapter
(
secondCategoryAdapter
);
rvSecondCategory
.
setLayoutManager
(
new
CenterLayoutManager
(
requireContext
(),
LinearLayoutManager
.
HORIZONTAL
,
false
));
OnItemClickListener
onItemClickListener
=
(
adapter
,
view
,
position
)
->
{
rvSecondCategory
.
setAdapter
(
secondCategoryAdapter
);
secondCategoryAdapter
.
setSelectIndex
(
position
);
OnItemClickListener
onItemClickListener
=
(
adapter
,
view
,
position
)
->
{
ViewUtils
.
moveToCenterByHorizontal
(
rvSecondCategory
,
position
);
secondCategoryAdapter
.
setSelectedIndex
(
position
);
//加載當前分類下的食品
ViewUtils
.
moveToCenterByHorizontal
(
rvSecondCategory
,
position
);
//加載當前分類下的食品
};
secondCategoryAdapter
.
setOnItemClickListener
(
onItemClickListener
);
};
secondCategoryAdapter
.
setOnItemClickListener
(
onItemClickListener
);
}
else
{
secondCategoryAdapter
.
setNewInstance
(
foodCategoryTrees
);
}
//默認選中第0個
//默認選中第0個
if
(
foodCategoryTrees
!=
null
&&
foodCategoryTrees
.
size
()
>
0
)
{
if
(
foodCategoryTrees
!=
null
&&
foodCategoryTrees
.
size
()
>
0
)
{
onItemClickListener
.
onItemClick
(
secondCategoryAdapter
,
rvSecondCategory
,
0
);
secondCategoryAdapter
.
getOnItemClickListener
()
.
onItemClick
(
secondCategoryAdapter
,
rvSecondCategory
,
0
);
}
}
}
}
/**
* 加載食品,找到這些食品最近的上一個分類,將數據添加到這個分類下面,如果沒有,就添加到最頂部
*
* @param categoryId 當前分類id
* @param food 食品
*/
@Override
@Override
public
void
loadFood
(
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>
food
)
{
public
void
loadFood
(
int
categoryId
,
List
<
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>>
food
)
{
refreshLayout
.
finishRefresh
();
refreshLayout
.
finishLoadMore
();
food
.
addAll
(
food
);
food
.
addAll
(
food
);
if
(
adapter
==
null
)
{
if
(
adapter
==
null
)
{
adapter
=
new
BuyIngredientsAdapter
(
requireContext
(),
food
);
adapter
=
new
BuyIngredientsAdapter
(
requireContext
(),
food
);
adapter
.
setCallback
(
new
QMUIStickySectionAdapter
.
Callback
<
CategoryBean
,
PurchaseFoodBean
>()
{
@Override
public
void
loadMore
(
QMUISection
<
CategoryBean
,
PurchaseFoodBean
>
section
,
boolean
loadMoreBefore
)
{
}
@Override
public
void
onItemClick
(
QMUIStickySectionAdapter
.
ViewHolder
holder
,
int
position
)
{
}
@Override
public
boolean
onItemLongClick
(
QMUIStickySectionAdapter
.
ViewHolder
holder
,
int
position
)
{
return
false
;
}
});
sectionFood
.
setAdapter
(
adapter
);
sectionFood
.
setAdapter
(
adapter
);
setLayoutManager
();
// mPresenter.setLoadFood(false);
}
else
{
}
else
{
// if (isTailOrHead == 2) {
adapter
.
setData
(
food
);
adapter
.
setData
(
food
);
}
// } else {
if
(
isSinger
)
{
// List<QMUISection<CategoryBean, PurchaseFoodBean>> currentData = CollectionUtils.deepCopy(adapter.getCurrentData());
sectionFood
.
setLayoutManager
(
new
LinearLayoutManager
(
requireContext
()));
// if (isTailOrHead == 0) {
}
else
{
// currentData.addAll(0, food);
sectionFood
.
setLayoutManager
(
getDoubleRowManager
());
// } else {
// currentData.addAll(food);
// }
// adapter.setData(currentData);
// }
// mPresenter.setLoadFood(false);
}
}
}
}
@NotNull
@NotNull
private
GridLayoutManager
getDoubleRowManager
()
{
private
GridLayoutManager
getDoubleRowManager
()
{
val
gridLayoutManager
=
new
GridLayoutManager
(
requireContext
(),
2
);
val
gridLayoutManager
=
new
GridLayoutManager
(
requireContext
(),
2
);
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/order/PurchaseListFragment.java
View file @
771adf38
...
@@ -79,8 +79,7 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
...
@@ -79,8 +79,7 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
private
PurchaseOrderAdapter
purchaseOrderAdapter
;
private
PurchaseOrderAdapter
purchaseOrderAdapter
;
public
static
PurchaseListFragment
newInstance
()
{
public
static
PurchaseListFragment
newInstance
()
{
PurchaseListFragment
fragment
=
new
PurchaseListFragment
();
return
new
PurchaseListFragment
();
return
fragment
;
}
}
/**
/**
...
@@ -187,9 +186,12 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
...
@@ -187,9 +186,12 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
.
setOnSelectListener
((
popupPosition
,
text
)
->
{
.
setOnSelectListener
((
popupPosition
,
text
)
->
{
if
(
popupPosition
==
0
)
{
if
(
popupPosition
==
0
)
{
//刪除
//刪除
AppDialog
.
getInstance
().
showWaringDialog
(
mContext
,
"是否刪除訂單"
,
(
view1
,
dialog
)
->
{
if
(
purchaseOrderAdapter
.
getItem
(
position
).
getStatus
()
==
PurchaseOrderDetailsBean
.
WAIT_RECEIVED
)
{
mPresenter
.
deleteOrder
(
position
,
purchaseOrderAdapter
.
getData
().
get
(
position
).
getId
());
//只有待收貨可以刪除
});
AppDialog
.
getInstance
().
showWaringDialog
(
mContext
,
"是否刪除訂單"
,
(
view1
,
dialog
)
->
mPresenter
.
deleteOrder
(
position
,
purchaseOrderAdapter
.
getData
().
get
(
position
).
getId
()));
}
else
{
showMessage
(
"該訂單已有入庫食品,不可刪除!"
);
}
}
else
if
(
popupPosition
==
1
)
{
}
else
if
(
popupPosition
==
1
)
{
//發送採購單
//發送採購單
sendPurchase
(
position
);
sendPurchase
(
position
);
...
@@ -252,7 +254,7 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
...
@@ -252,7 +254,7 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
screenView
.
setVisibility
(
screenView
.
getVisibility
()
==
View
.
VISIBLE
?
View
.
GONE
:
View
.
VISIBLE
);
screenView
.
setVisibility
(
screenView
.
getVisibility
()
==
View
.
VISIBLE
?
View
.
GONE
:
View
.
VISIBLE
);
}
else
if
(
viewId
==
R
.
id
.
iv_purchase_list_search
)
{
}
else
if
(
viewId
==
R
.
id
.
iv_purchase_list_search
)
{
getOrderList
();
getOrderList
();
}
else
if
(
viewId
==
R
.
id
.
btn_save
)
{
}
else
if
(
viewId
==
R
.
id
.
btn_save
)
{
//跳轉到下單頁面
//跳轉到下單頁面
startForResult
(
FoodIngredientsFragment
.
newInstance
(
ADD_ORDER
),
REQUEST_ORDER_DETAILS_CODE
);
startForResult
(
FoodIngredientsFragment
.
newInstance
(
ADD_ORDER
),
REQUEST_ORDER_DETAILS_CODE
);
}
}
...
@@ -293,13 +295,14 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
...
@@ -293,13 +295,14 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
@Override
@Override
public
void
deleteOrder
(
int
position
)
{
public
void
deleteOrder
(
int
position
)
{
purchaseOrderAdapter
.
removeAt
(
position
);
purchaseOrderAdapter
.
removeAt
(
position
);
showMessage
(
"訂單已刪除,請打電話聯繫供應商訂單刪除!"
);
}
}
@Override
@Override
public
void
onFragmentResult
(
int
requestCode
,
int
resultCode
,
Bundle
data
)
{
public
void
onFragmentResult
(
int
requestCode
,
int
resultCode
,
Bundle
data
)
{
super
.
onFragmentResult
(
requestCode
,
resultCode
,
data
);
super
.
onFragmentResult
(
requestCode
,
resultCode
,
data
);
if
(
requestCode
==
REQUEST_ORDER_DETAILS_CODE
)
{
if
(
requestCode
==
REQUEST_ORDER_DETAILS_CODE
)
{
//
//用戶對訂單進行了操作,需要對列表進行刷新
//用戶對訂單進行了操作,需要對列表進行刷新
getOrderList
();
getOrderList
();
}
}
}
}
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/warehouse/WareHouseListFragment.java
View file @
771adf38
...
@@ -38,6 +38,8 @@ import butterknife.OnClick;
...
@@ -38,6 +38,8 @@ import butterknife.OnClick;
/**
/**
* 庫存查詢列表
* 庫存查詢列表
*
* @author admin
*/
*/
public
class
WareHouseListFragment
extends
BaseSupplyChainFragment
<
WareHouseListPresenter
>
implements
WareHouseListContract
.
View
{
public
class
WareHouseListFragment
extends
BaseSupplyChainFragment
<
WareHouseListPresenter
>
implements
WareHouseListContract
.
View
{
...
@@ -59,14 +61,13 @@ public class WareHouseListFragment extends BaseSupplyChainFragment<WareHouseList
...
@@ -59,14 +61,13 @@ public class WareHouseListFragment extends BaseSupplyChainFragment<WareHouseList
RecyclerView
rvWarehouseList
;
RecyclerView
rvWarehouseList
;
@BindView
(
R2
.
id
.
sl_warehousing_list
)
@BindView
(
R2
.
id
.
sl_warehousing_list
)
SmartRefreshLayout
smartRefreshLayout
;
SmartRefreshLayout
smartRefreshLayout
;
// @BindView(R2.id.hs_warehousing_list)
// HorizontalScrollView hsWarehousingList;
@BindView
(
R2
.
id
.
tv_warehouse_item_unit_price
)
@BindView
(
R2
.
id
.
tv_warehouse_item_unit_price
)
TextView
tvUnitPrice
;
TextView
tvUnitPrice
;
@BindView
(
R2
.
id
.
tv_warehouse_item_inventory_quantity
)
@BindView
(
R2
.
id
.
tv_warehouse_item_inventory_quantity
)
TextView
tvWarehousingQuantity
;
TextView
tvWarehousingQuantity
;
@BindView
(
R2
.
id
.
tv_warehouse_item_total_amount
)
@BindView
(
R2
.
id
.
tv_warehouse_item_total_amount
)
TextView
tvTotalAmount
;
TextView
tvTotalAmount
;
private
int
SORT_TYPE
=
0
;
private
int
SORT_TYPE
=
0
;
/**
/**
* 升序或降序
* 升序或降序
...
@@ -80,8 +81,7 @@ public class WareHouseListFragment extends BaseSupplyChainFragment<WareHouseList
...
@@ -80,8 +81,7 @@ public class WareHouseListFragment extends BaseSupplyChainFragment<WareHouseList
private
WarehousingQueryAdapter
warehousingQueryAdapter
;
private
WarehousingQueryAdapter
warehousingQueryAdapter
;
public
static
WareHouseListFragment
newInstance
()
{
public
static
WareHouseListFragment
newInstance
()
{
WareHouseListFragment
fragment
=
new
WareHouseListFragment
();
return
new
WareHouseListFragment
();
return
fragment
;
}
}
@Override
@Override
...
@@ -151,9 +151,9 @@ public class WareHouseListFragment extends BaseSupplyChainFragment<WareHouseList
...
@@ -151,9 +151,9 @@ public class WareHouseListFragment extends BaseSupplyChainFragment<WareHouseList
@Override
@Override
public
void
loadWarehousingInfo
(
WareHouseListBean
.
WareHousingDataBean
data
)
{
public
void
loadWarehousingInfo
(
WareHouseListBean
.
WareHousingDataBean
data
)
{
WareHouseListBean
.
WareHousingDataBean
.
TotalBean
total
=
data
.
getTotal
();
WareHouseListBean
.
WareHousingDataBean
.
TotalBean
total
=
data
.
getTotal
();
tvOverdueFoodNum
.
setText
(
total
.
getOverdue
()
+
""
);
tvOverdueFoodNum
.
setText
(
String
.
valueOf
(
total
.
getOverdue
())
);
tvExpiringSoonFoodNum
.
setText
(
total
.
getAboutExpire
()
+
""
);
tvExpiringSoonFoodNum
.
setText
(
String
.
valueOf
(
total
.
getAboutExpire
())
);
tvLowInventoryFoodNum
.
setText
(
total
.
getOutStock
()
+
""
);
tvLowInventoryFoodNum
.
setText
(
String
.
valueOf
(
total
.
getOutStock
())
);
tvIngredientsCostInventory
.
setText
(
String
.
format
(
getString
(
R
.
string
.
amount_string
),
total
.
getCost
()));
tvIngredientsCostInventory
.
setText
(
String
.
format
(
getString
(
R
.
string
.
amount_string
),
total
.
getCost
()));
loadListInfo
(
data
.
getPurchaseWarehousingOrderDetailsVOS
());
loadListInfo
(
data
.
getPurchaseWarehousingOrderDetailsVOS
());
}
}
...
@@ -171,7 +171,7 @@ public class WareHouseListFragment extends BaseSupplyChainFragment<WareHouseList
...
@@ -171,7 +171,7 @@ public class WareHouseListFragment extends BaseSupplyChainFragment<WareHouseList
}
}
@Override
@Override
public
void
loadListInfo
(
List
<
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
SBean
>
purchaseWarehousingOrderDetailsVos
)
{
public
void
loadListInfo
(
List
<
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
>
purchaseWarehousingOrderDetailsVos
)
{
if
(
purchaseWarehousingOrderDetailsVos
==
null
||
purchaseWarehousingOrderDetailsVos
.
size
()
<=
0
)
{
if
(
purchaseWarehousingOrderDetailsVos
==
null
||
purchaseWarehousingOrderDetailsVos
.
size
()
<=
0
)
{
loadService
.
showCallback
(
EmptyCallback
.
class
);
loadService
.
showCallback
(
EmptyCallback
.
class
);
return
;
return
;
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/warehouse/WarehouseDetailsFragment.java
View file @
771adf38
package
com
.
gingersoft
.
supply_chain
.
mvp
.
ui
.
fragment
.
warehouse
;
package
com
.
gingersoft
.
supply_chain
.
mvp
.
ui
.
fragment
.
warehouse
;
import
android.animation.LayoutTransition
;
import
android.graphics.Bitmap
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
...
@@ -12,19 +14,28 @@ import android.widget.TextView;
...
@@ -12,19 +14,28 @@ import android.widget.TextView;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
androidx.core.content.ContextCompat
;
import
androidx.core.content.ContextCompat
;
import
androidx.print.PrintHelper
;
import
androidx.recyclerview.widget.RecyclerView
;
import
androidx.viewpager2.widget.ViewPager2
;
import
androidx.viewpager2.widget.ViewPager2
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.common.core.user.UserContext
;
import
com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback
;
import
com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback
;
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
;
import
com.gingersoft.gsa.cloud.common.utils.glide.GlideUtils
;
import
com.gingersoft.gsa.cloud.common.utils.glide.GlideUtils
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.other.TextUtil
;
import
com.gingersoft.gsa.cloud.common.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.common.utils.view.LayoutToBitmapUtils
;
import
com.gingersoft.supply_chain.R
;
import
com.gingersoft.supply_chain.R
;
import
com.gingersoft.supply_chain.R2
;
import
com.gingersoft.supply_chain.R2
;
import
com.gingersoft.supply_chain.di.component.DaggerWarehouseDetailsComponent
;
import
com.gingersoft.supply_chain.di.component.DaggerWarehouseDetailsComponent
;
import
com.gingersoft.supply_chain.mvp.bean.ConsumeReasonBean
;
import
com.gingersoft.supply_chain.mvp.bean.ConsumeReasonBean
;
import
com.gingersoft.supply_chain.mvp.bean.OutboundOrderBean
;
import
com.gingersoft.supply_chain.mvp.bean.WareHouseListBean
;
import
com.gingersoft.supply_chain.mvp.bean.WareHouseListBean
;
import
com.gingersoft.supply_chain.mvp.bean.WarehouseDetailsBean
;
import
com.gingersoft.supply_chain.mvp.bean.WarehouseDetailsBean
;
import
com.gingersoft.supply_chain.mvp.contract.WarehouseDetailsContract
;
import
com.gingersoft.supply_chain.mvp.contract.WarehouseDetailsContract
;
import
com.gingersoft.supply_chain.mvp.presenter.WarehouseDetailsPresenter
;
import
com.gingersoft.supply_chain.mvp.presenter.WarehouseDetailsPresenter
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.OutboundOrderAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.PurchasePageAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.PurchasePageAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.WareHousingDetailsAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.WareHousingDetailsAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment
;
import
com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment
;
...
@@ -44,6 +55,8 @@ import butterknife.OnClick;
...
@@ -44,6 +55,8 @@ import butterknife.OnClick;
/**
/**
* Description: 入庫詳情
* Description: 入庫詳情
*
* @author admin
*/
*/
public
class
WarehouseDetailsFragment
extends
BaseSupplyChainFragment
<
WarehouseDetailsPresenter
>
implements
WarehouseDetailsContract
.
View
,
View
.
OnClickListener
{
public
class
WarehouseDetailsFragment
extends
BaseSupplyChainFragment
<
WarehouseDetailsPresenter
>
implements
WarehouseDetailsContract
.
View
,
View
.
OnClickListener
{
...
@@ -74,25 +87,19 @@ public class WarehouseDetailsFragment extends BaseSupplyChainFragment<WarehouseD
...
@@ -74,25 +87,19 @@ public class WarehouseDetailsFragment extends BaseSupplyChainFragment<WarehouseD
@BindView
(
R2
.
id
.
layout_warehousing_title
)
@BindView
(
R2
.
id
.
layout_warehousing_title
)
LinearLayout
layoutTitle
;
LinearLayout
layoutTitle
;
//庫存消耗view
/**
* 庫存消耗view
*/
private
InventoryConsumptionView
inventoryConsumptionView
;
private
InventoryConsumptionView
inventoryConsumptionView
;
//掃碼sn碼view
/**
* 掃碼sn碼view
*/
private
ScanSnView
scanSnView
;
private
ScanSnView
scanSnView
;
private
WareHousingDetailsAdapter
wareHousingDetailsAdapter
;
private
WareHousingDetailsAdapter
wareHousingDetailsAdapter
;
private
PurchasePageAdapter
adapter
;
private
PurchasePageAdapter
adapter
;
private
int
foodId
;
private
String
foodNo
;
public
final
static
String
FOOD_INFO_KEY
=
"purchaseWarehousingBean"
;
private
String
foodName
;
private
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
purchaseWarehousingOrderDetailsVO
;
private
String
foodUnit
;
private
int
wareHousingNum
;
public
final
static
String
FOOD_NAME_KEY
=
"foodNameKey"
;
public
final
static
String
FOOD_ID_KEY
=
"foodIdKey"
;
public
final
static
String
FOOD_NO_KEY
=
"foodNoKey"
;
public
final
static
String
FOOD_UNIT_KEY
=
"foodUnitKey"
;
public
final
static
String
FOOD_NUM_KEY
=
"foodNumKey"
;
public
final
static
String
FOOD_UNIT_PRICE_KEY
=
"foodUnitPriceKey"
;
public
final
static
String
FOOD_TOTAL_AMOUNT_KEY
=
"foodTotalAmountKey"
;
public
final
static
String
FOOD_IMAGE_KEY
=
"foodImageKey"
;
/**
/**
* 入庫
* 入庫
*/
*/
...
@@ -102,17 +109,10 @@ public class WarehouseDetailsFragment extends BaseSupplyChainFragment<WarehouseD
...
@@ -102,17 +109,10 @@ public class WarehouseDetailsFragment extends BaseSupplyChainFragment<WarehouseD
*/
*/
public
final
static
int
OUT_STOCK_TYPE
=
1
;
public
final
static
int
OUT_STOCK_TYPE
=
1
;
public
static
WarehouseDetailsFragment
newInstance
(
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
SBean
purchaseWarehousingOrderDetailsVosBean
)
{
public
static
WarehouseDetailsFragment
newInstance
(
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
purchaseWarehousingOrderDetailsVosBean
)
{
WarehouseDetailsFragment
fragment
=
new
WarehouseDetailsFragment
();
WarehouseDetailsFragment
fragment
=
new
WarehouseDetailsFragment
();
Bundle
bundle
=
new
Bundle
();
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
FOOD_NAME_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getName
());
bundle
.
putSerializable
(
FOOD_INFO_KEY
,
purchaseWarehousingOrderDetailsVosBean
);
bundle
.
putInt
(
FOOD_ID_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getId
());
bundle
.
putString
(
FOOD_UNIT_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getUnitName
());
bundle
.
putInt
(
FOOD_NUM_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getFoodNum
());
bundle
.
putDouble
(
FOOD_UNIT_PRICE_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getFoodPrice
());
bundle
.
putDouble
(
FOOD_TOTAL_AMOUNT_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getFoodAmount
());
bundle
.
putString
(
FOOD_NO_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getFoodNo
());
bundle
.
putString
(
FOOD_IMAGE_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getImages
());
fragment
.
setArguments
(
bundle
);
fragment
.
setArguments
(
bundle
);
return
fragment
;
return
fragment
;
}
}
...
@@ -139,31 +139,31 @@ public class WarehouseDetailsFragment extends BaseSupplyChainFragment<WarehouseD
...
@@ -139,31 +139,31 @@ public class WarehouseDetailsFragment extends BaseSupplyChainFragment<WarehouseD
loadService
=
LoadSir
.
getDefault
().
register
(
smartRefreshLayout
);
loadService
=
LoadSir
.
getDefault
().
register
(
smartRefreshLayout
);
// smartRefreshLayout.setEnableHeaderTranslationContent(false).
// smartRefreshLayout.setEnableHeaderTranslationContent(false).
// setEnableFooterTranslationContent(false);
// setEnableFooterTranslationContent(false);
LayoutTransition
layoutTransition
=
new
LayoutTransition
();
layoutTransition
.
enableTransitionType
(
LayoutTransition
.
CHANGING
);
layoutRoot
.
setLayoutTransition
(
layoutTransition
);
smartRefreshLayout
.
setOnRefreshListener
(
refreshLayout
->
getPageInfo
());
smartRefreshLayout
.
setOnRefreshListener
(
refreshLayout
->
getPageInfo
());
if
(
arguments
!=
null
)
{
if
(
arguments
!=
null
)
{
foodName
=
arguments
.
getString
(
FOOD_NAME_KEY
);
purchaseWarehousingOrderDetailsVO
=
(
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
)
arguments
.
getSerializable
(
FOOD_INFO_KEY
);
initTopBar
(
supplyTopBar
,
foodName
);
if
(
purchaseWarehousingOrderDetailsVO
==
null
)
{
foodId
=
arguments
.
getInt
(
FOOD_ID_KEY
);
killMyself
();
foodNo
=
arguments
.
getString
(
FOOD_NO_KEY
);
showMessage
(
"食材信息獲取失敗,請稍候重試"
);
foodUnit
=
arguments
.
getString
(
FOOD_UNIT_KEY
);
wareHousingNum
=
arguments
.
getInt
(
FOOD_NUM_KEY
);
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
foodUnit
))
{
tvUnit
.
setText
(
foodUnit
);
}
}
String
foodImageUrl
=
arguments
.
getString
(
FOOD_IMAGE_KEY
);
initTopBar
(
supplyTopBar
,
purchaseWarehousingOrderDetailsVO
.
getName
());
tvUnit
.
setText
(
purchaseWarehousingOrderDetailsVO
.
getUnitName
());
String
foodImageUrl
=
arguments
.
getString
(
purchaseWarehousingOrderDetailsVO
.
getImages
());
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
foodImageUrl
))
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
foodImageUrl
))
{
GlideUtils
.
display
(
requireContext
(),
ivFoodImg
,
foodImageUrl
);
GlideUtils
.
display
(
requireContext
(),
ivFoodImg
,
foodImageUrl
);
}
else
{
}
else
{
ivFoodImg
.
setImageResource
(
R
.
drawable
.
img_small_default
);
ivFoodImg
.
setImageResource
(
R
.
drawable
.
img_small_default
);
}
}
double
unitPrice
=
arguments
.
getDouble
(
FOOD_UNIT_PRICE_KEY
);
tvWarehouseInventoryNumber
.
setText
(
String
.
valueOf
(
purchaseWarehousingOrderDetailsVO
.
getFoodNum
()));
double
totalAmount
=
arguments
.
getDouble
(
FOOD_TOTAL_AMOUNT_KEY
);
tvWarehouseUnitPrice
.
setText
(
String
.
format
(
getString
(
R
.
string
.
str_latest_unit_price_colon
),
purchaseWarehousingOrderDetailsVO
.
getFoodPrice
()));
tvWarehouseInventoryNumber
.
setText
(
String
.
valueOf
(
wareHousingNum
));
tvWarehouseTotalAmount
.
setText
(
String
.
format
(
getString
(
R
.
string
.
str_total_amount_colon
),
purchaseWarehousingOrderDetailsVO
.
getFoodAmount
()));
tvWarehouseUnitPrice
.
setText
(
String
.
format
(
getString
(
R
.
string
.
str_latest_unit_price_colon
),
unitPrice
));
tvWarehouseSpecifications
.
setText
(
purchaseWarehousingOrderDetailsVO
.
getUnitName
());
tvWarehouseTotalAmount
.
setText
(
String
.
format
(
getString
(
R
.
string
.
str_total_amount_colon
),
totalAmount
));
tvWarehouseSpecifications
.
setText
(
foodUnit
);
getWarehouseDetails
();
getWarehouseDetails
();
if
(
wareHousingNum
>
0
)
{
if
(
purchaseWarehousingOrderDetailsVO
.
getFoodNum
()
>
0
)
{
//獲取庫存消耗的原因列表
//獲取庫存消耗的原因列表
mPresenter
.
getWarehouseInventoryReason
();
mPresenter
.
getWarehouseInventoryReason
();
}
}
...
@@ -175,14 +175,14 @@ public class WarehouseDetailsFragment extends BaseSupplyChainFragment<WarehouseD
...
@@ -175,14 +175,14 @@ public class WarehouseDetailsFragment extends BaseSupplyChainFragment<WarehouseD
* 獲取入庫詳情
* 獲取入庫詳情
*/
*/
private
void
getWarehouseDetails
()
{
private
void
getWarehouseDetails
()
{
mPresenter
.
getWarehousingOrderDetails
(
foodNo
);
mPresenter
.
getWarehousingOrderDetails
(
purchaseWarehousingOrderDetailsVO
.
getFoodNo
()
);
}
}
/**
/**
* 獲取出庫詳情
* 獲取出庫詳情
*/
*/
private
void
getOutStockDetails
()
{
private
void
getOutStockDetails
()
{
mPresenter
.
getOutStockDetails
(
foodNo
);
mPresenter
.
getOutStockDetails
(
purchaseWarehousingOrderDetailsVO
.
getFoodNo
()
);
}
}
private
void
initViewPager
()
{
private
void
initViewPager
()
{
...
@@ -255,44 +255,125 @@ public class WarehouseDetailsFragment extends BaseSupplyChainFragment<WarehouseD
...
@@ -255,44 +255,125 @@ public class WarehouseDetailsFragment extends BaseSupplyChainFragment<WarehouseD
public
void
loadConsumeReason
(
List
<
ConsumeReasonBean
>
consumeReasonBeans
)
{
public
void
loadConsumeReason
(
List
<
ConsumeReasonBean
>
consumeReasonBeans
)
{
Button
button
=
supplyTopBar
.
addRightTextButton
(
R
.
string
.
str_inventory_consumption
,
R
.
id
.
id_inventory_consumption
);
Button
button
=
supplyTopBar
.
addRightTextButton
(
R
.
string
.
str_inventory_consumption
,
R
.
id
.
id_inventory_consumption
);
button
.
setTextColor
(
ContextCompat
.
getColor
(
requireContext
(),
R
.
color
.
white
));
button
.
setTextColor
(
ContextCompat
.
getColor
(
requireContext
(),
R
.
color
.
white
));
button
.
setOnClickListener
(
v
->
{
button
.
setOnClickListener
(
v
->
showInventory
(
consumeReasonBeans
));
//庫存消耗
}
// InventoryConsumptionPopup inventoryConsumptionPopup = new InventoryConsumptionPopup(requireContext(), consumeReasonBeans, wareHousingNum);
// inventoryConsumptionPopup.setOnConfirmClickListener((consumptionNum, reasonIndex, remarks) -> {
// inventoryConsumptionPopup.dismiss();
// mPresenter.consumeWareHousing(foodNo, consumptionNum, consumeReasonBeans.get(reasonIndex).getId(), remarks);
// setFragmentResult(RESULT_OK, null);
// });
// inventoryConsumptionPopup.setTitleContent(getString(R.string.str_consumption_inventory), getString(R.string.str_remark_colon), getString(R.string.str_manual_input));
// new XPopup.Builder(requireContext())
// .asCustom(inventoryConsumptionPopup).show();
smartRefreshLayout
.
setVisibility
(
View
.
GONE
);
layoutTitle
.
setVisibility
(
View
.
GONE
);
loadService
.
getLoadLayout
().
setVisibility
(
View
.
GONE
);
inventoryConsumptionView
=
new
InventoryConsumptionView
(
requireContext
(),
consumeReasonBeans
,
wareHousingNum
);
layoutRoot
.
addView
(
inventoryConsumptionView
);
scanSnView
=
new
ScanSnView
(
this
,
null
,
scanResult
->
{
/**
smartRefreshLayout
.
setVisibility
(
View
.
VISIBLE
);
* 顯示庫存消耗
layoutTitle
.
setVisibility
(
View
.
VISIBLE
);
*
loadService
.
getLoadLayout
().
setVisibility
(
View
.
VISIBLE
);
* @param consumeReasonBeans 庫存消耗原因
//獲取用戶輸入的消耗數量
*/
int
consumptionNum
=
inventoryConsumptionView
.
getConsumptionNum
();
private
void
showInventory
(
List
<
ConsumeReasonBean
>
consumeReasonBeans
)
{
if
(
consumptionNum
==
-
1
)
{
if
(
smartRefreshLayout
.
getVisibility
()
==
View
.
VISIBLE
)
{
return
;
//隱藏庫存消耗記錄列表
}
showList
(
View
.
GONE
);
mPresenter
.
consumeWareHousing
(
foodNo
,
consumptionNum
,
consumeReasonBeans
.
get
(
inventoryConsumptionView
.
getReasonIndex
()).
getId
(),
inventoryConsumptionView
.
getRemark
());
//移除掉
setFragmentResult
(
RESULT_OK
,
null
);
if
(
inventoryConsumptionView
!=
null
)
{
}).
setOnCancelListener
(()
->
{
layoutRoot
.
removeView
(
inventoryConsumptionView
);
layoutRoot
.
removeView
(
scanSnView
);
}
//初始化消耗view
inventoryConsumptionView
=
new
InventoryConsumptionView
(
requireContext
(),
consumeReasonBeans
,
purchaseWarehousingOrderDetailsVO
.
getFoodNum
());
layoutRoot
.
addView
(
inventoryConsumptionView
);
//如果不是sn食材
if
(!
purchaseWarehousingOrderDetailsVO
.
isSnFood
())
{
inventoryConsumptionView
.
setShowBtn
();
inventoryConsumptionView
.
setOnConfirmClickListener
((
consumptionNum
,
reasonIndex
,
remarks
)
->
inventory
(
consumeReasonBeans
))
.
setOnCancelListener
(()
->
showList
(
View
.
VISIBLE
));
return
;
}
//初始化掃碼view
scanSnView
=
new
ScanSnView
(
this
,
null
,
scanResult
->
inventory
(
consumeReasonBeans
)).
setOnCancelListener
(()
->
{
//取消
//取消
smartRefreshLayout
.
setVisibility
(
View
.
VISIBLE
);
showList
(
View
.
VISIBLE
);
layoutTitle
.
setVisibility
(
View
.
VISIBLE
);
});
loadService
.
getLoadLayout
().
setVisibility
(
View
.
VISIBLE
);
//設置LayoutParam
LinearLayout
.
LayoutParams
layoutParams
=
new
LinearLayout
.
LayoutParams
(
LinearLayout
.
LayoutParams
.
MATCH_PARENT
,
LinearLayout
.
LayoutParams
.
MATCH_PARENT
);
int
dimensionPixelOffset
=
requireContext
().
getResources
().
getDimensionPixelOffset
(
R
.
dimen
.
dp_10
);
layoutParams
.
leftMargin
=
dimensionPixelOffset
;
layoutParams
.
rightMargin
=
dimensionPixelOffset
;
layoutParams
.
bottomMargin
=
dimensionPixelOffset
;
scanSnView
.
setBackground
(
ContextCompat
.
getDrawable
(
requireContext
(),
R
.
drawable
.
shape_white_eight_corners_bg
));
layoutRoot
.
addView
(
scanSnView
,
layoutParams
);
}
else
{
showList
(
View
.
VISIBLE
);
}
}
private
void
inventory
(
List
<
ConsumeReasonBean
>
consumeReasonBeans
)
{
//掃完碼,點擊確認
showList
(
View
.
VISIBLE
);
//獲取用戶輸入的消耗數量
int
consumptionNum
=
inventoryConsumptionView
.
getConsumptionNum
();
if
(
consumptionNum
==
-
1
)
{
return
;
}
//調用消耗接口
mPresenter
.
consumeWareHousing
(
purchaseWarehousingOrderDetailsVO
.
getFoodNo
(),
consumptionNum
,
consumeReasonBeans
.
get
(
inventoryConsumptionView
.
getReasonIndex
()).
getId
(),
inventoryConsumptionView
.
getRemark
());
setFragmentResult
(
RESULT_OK
,
null
);
if
(
inventoryConsumptionView
.
getIsPrint
())
{
//打印
onPrintPdf
(
consumeReasonBeans
.
get
(
inventoryConsumptionView
.
getReasonIndex
()).
getDescription
(),
inventoryConsumptionView
.
getRemark
(),
consumptionNum
);
}
}
private
void
onPrintPdf
(
String
consumptionReason
,
String
remarks
,
int
foodNum
)
{
PrintHelper
printHelper
=
new
PrintHelper
(
requireContext
());
boolean
b
=
PrintHelper
.
systemSupportsPrint
();
if
(
b
)
{
//設置縮放模式
printHelper
.
setScaleMode
(
PrintHelper
.
SCALE_MODE_FIT
);
//設置打印方向
//橫向 PrintHelper.ORIENTATION_LANDSCAPE
//縱向 PrintHelper.ORIENTATION_PORTRAIT
printHelper
.
setOrientation
(
PrintHelper
.
ORIENTATION_LANDSCAPE
);
//設置打印顏色
printHelper
.
setColorMode
(
PrintHelper
.
COLOR_MODE_MONOCHROME
);
printHelper
.
printBitmap
(
String
.
format
(
getString
(
R
.
string
.
str_restaurant_outbound_order
),
purchaseWarehousingOrderDetailsVO
.
getName
()),
generatePrintBitmap
(
consumptionReason
,
remarks
,
foodNum
),
()
->
{
//打印完成回調
});
});
layoutRoot
.
addView
(
scanSnView
);
}
else
{
});
//不支持打印
showMessage
(
getString
(
R
.
string
.
str_device_not_print
));
}
}
private
Bitmap
generatePrintBitmap
(
String
consumptionReason
,
String
remarks
,
int
foodNum
)
{
View
view
=
LayoutInflater
.
from
(
requireContext
()).
inflate
(
R
.
layout
.
layout_print_consume
,
null
);
TextView
restaurantName
=
view
.
findViewById
(
R
.
id
.
tv_print_consume_restaurant_name
);
TextView
tvDate
=
view
.
findViewById
(
R
.
id
.
tv_print_consume_date
);
TextView
tvFoodNo
=
view
.
findViewById
(
R
.
id
.
tv_print_consume_no
);
RecyclerView
rvInfo
=
view
.
findViewById
(
R
.
id
.
rv_print_consume_info
);
TextView
tvUserName
=
view
.
findViewById
(
R
.
id
.
tv_print_consume_user_name
);
restaurantName
.
setText
(
String
.
format
(
getString
(
R
.
string
.
str_restaurant_outbound_order
),
RestaurantInfoManager
.
newInstance
().
getRestaurantName
()));
tvDate
.
setText
(
TimeUtils
.
getCurrentDate
(
TimeUtils
.
DEFAULT_DATE_FORMAT_YMDHM
));
tvFoodNo
.
setText
(
String
.
format
(
getString
(
R
.
string
.
str_no
),
purchaseWarehousingOrderDetailsVO
.
getFoodNo
()));
tvUserName
.
setText
(
String
.
format
(
getString
(
R
.
string
.
str_prepared
),
UserContext
.
newInstance
().
getMemberName
()));
List
<
OutboundOrderBean
>
outboundOrderBeans
=
new
ArrayList
<>();
outboundOrderBeans
.
add
(
new
OutboundOrderBean
(
"品名"
,
purchaseWarehousingOrderDetailsVO
.
getName
()));
outboundOrderBeans
.
add
(
new
OutboundOrderBean
(
"單位"
,
purchaseWarehousingOrderDetailsVO
.
getUnitName
()));
outboundOrderBeans
.
add
(
new
OutboundOrderBean
(
"數量"
,
String
.
valueOf
(
foodNum
)));
outboundOrderBeans
.
add
(
new
OutboundOrderBean
(
"單價"
,
String
.
valueOf
(
purchaseWarehousingOrderDetailsVO
.
getFoodPrice
())));
outboundOrderBeans
.
add
(
new
OutboundOrderBean
(
"金額"
,
String
.
valueOf
(
MoneyUtil
.
priceCalculation
(
purchaseWarehousingOrderDetailsVO
.
getFoodPrice
(),
foodNum
))));
outboundOrderBeans
.
add
(
new
OutboundOrderBean
(
"消耗原因"
,
consumptionReason
));
outboundOrderBeans
.
add
(
new
OutboundOrderBean
(
"備註"
,
remarks
));
OutboundOrderAdapter
outboundOrderAdapter
=
new
OutboundOrderAdapter
(
outboundOrderBeans
);
rvInfo
.
setAdapter
(
outboundOrderAdapter
);
return
LayoutToBitmapUtils
.
getBitmapByView
(
requireContext
(),
view
);
}
/**
* 顯示消耗列表
*
* @param visible 是否顯示
*/
private
void
showList
(
int
visible
)
{
smartRefreshLayout
.
setVisibility
(
visible
);
layoutTitle
.
setVisibility
(
visible
);
loadService
.
getLoadLayout
().
setVisibility
(
visible
);
}
}
@Override
@Override
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/warehouse/WarehousingInventoryFragment.java
View file @
771adf38
...
@@ -13,7 +13,6 @@ import android.widget.TextView;
...
@@ -13,7 +13,6 @@ import android.widget.TextView;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.RecyclerView
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.common.utils.glide.GlideUtils
;
import
com.gingersoft.gsa.cloud.common.utils.glide.GlideUtils
;
...
@@ -28,11 +27,11 @@ import com.gingersoft.supply_chain.mvp.presenter.WarehousingInventoryPresenter;
...
@@ -28,11 +27,11 @@ import com.gingersoft.supply_chain.mvp.presenter.WarehousingInventoryPresenter;
import
com.gingersoft.supply_chain.mvp.ui.adapter.InventoryRecordAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.adapter.InventoryRecordAdapter
;
import
com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment
;
import
com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.di.component.AppComponent
;
import
com.qmuiteam.qmui.util.QMUIDisplayHelper
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.zhy.autolayout.utils.ScreenUtils
;
import
com.scwang.smartrefresh.layout.SmartRefreshLayout
;
import
com.scwang.smartrefresh.layout.api.RefreshLayout
;
import
org.w3c.dom.Text
;
import
com.scwang.smartrefresh.layout.listener.OnLoadMoreListener
;
import
com.scwang.smartrefresh.layout.listener.OnRefreshListener
;
import
java.util.List
;
import
java.util.List
;
...
@@ -57,22 +56,16 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
...
@@ -57,22 +56,16 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
@BindView
(
R2
.
id
.
rv_warehouse_inventory_record
)
@BindView
(
R2
.
id
.
rv_warehouse_inventory_record
)
RecyclerView
rvRecord
;
RecyclerView
rvRecord
;
private
InventoryRecordAdapter
adapter
;
private
InventoryRecordAdapter
adapter
;
/**
@BindView
(
R2
.
id
.
smart_inventory_record
)
* 食品總庫存
SmartRefreshLayout
smartRefreshLayout
;
*/
private
int
foodNum
;
private
String
foodNo
;
private
int
pageIndex
;
private
int
pageIndex
;
public
static
WarehousingInventoryFragment
newInstance
(
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVOSBean
purchaseWarehousingOrderDetailsVosBean
)
{
private
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
purchaseWarehousingOrderDetailsVo
;
public
static
WarehousingInventoryFragment
newInstance
(
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
purchaseWarehousingOrderDetailsVo
)
{
WarehousingInventoryFragment
fragment
=
new
WarehousingInventoryFragment
();
WarehousingInventoryFragment
fragment
=
new
WarehousingInventoryFragment
();
Bundle
bundle
=
new
Bundle
();
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
WarehouseDetailsFragment
.
FOOD_NAME_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getName
());
bundle
.
putSerializable
(
WarehouseDetailsFragment
.
FOOD_INFO_KEY
,
purchaseWarehousingOrderDetailsVo
);
bundle
.
putInt
(
WarehouseDetailsFragment
.
FOOD_ID_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getId
());
bundle
.
putInt
(
WarehouseDetailsFragment
.
FOOD_NUM_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getFoodNum
());
bundle
.
putString
(
WarehouseDetailsFragment
.
FOOD_NO_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getFoodNo
());
bundle
.
putString
(
WarehouseDetailsFragment
.
FOOD_IMAGE_KEY
,
purchaseWarehousingOrderDetailsVosBean
.
getImages
());
fragment
.
setArguments
(
bundle
);
fragment
.
setArguments
(
bundle
);
return
fragment
;
return
fragment
;
}
}
...
@@ -96,34 +89,38 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
...
@@ -96,34 +89,38 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
Bundle
arguments
=
getArguments
();
Bundle
arguments
=
getArguments
();
if
(
arguments
!=
null
)
{
if
(
arguments
!=
null
)
{
int
foodId
=
arguments
.
getInt
(
WarehouseDetailsFragment
.
FOOD_ID_KEY
);
purchaseWarehousingOrderDetailsVo
=
(
WareHouseListBean
.
WareHousingDataBean
.
PurchaseWarehousingOrderDetailsVO
)
arguments
.
getSerializable
(
WarehouseDetailsFragment
.
FOOD_INFO_KEY
);
//食品編號
foodNo
=
arguments
.
getString
(
WarehouseDetailsFragment
.
FOOD_NO_KEY
);
//食品庫存總數
foodNum
=
arguments
.
getInt
(
WarehouseDetailsFragment
.
FOOD_NUM_KEY
);
//獲取庫存盤點記錄
//獲取庫存盤點記錄
getWarehousingRecord
();
getWarehousingRecord
();
//加載食品圖片
//加載食品圖片
loadFoodImage
(
arguments
);
loadFoodImage
();
//初始化標題
//初始化標題
initTopBar
(
arguments
);
initTopBar
(
purchaseWarehousingOrderDetailsVo
.
getName
()
);
//初始化數量和編輯監聽
//初始化數量和編輯監聽
initEdit
();
initEdit
();
}
else
{
}
else
{
showMessage
(
"獲取食材信息失敗,請稍候重試"
);
showMessage
(
"獲取食材信息失敗,請稍候重試"
);
killMyself
();
killMyself
();
}
}
smartRefreshLayout
.
setOnRefreshListener
(
refreshLayout
->
{
pageIndex
=
0
;
getWarehousingRecord
();
});
smartRefreshLayout
.
setOnLoadMoreListener
(
refreshLayout
->
{
pageIndex
++;
getWarehousingRecord
();
});
}
}
private
void
getWarehousingRecord
()
{
private
void
getWarehousingRecord
()
{
mPresenter
.
getWarehousingRecord
(
foodNo
,
pageIndex
);
mPresenter
.
getWarehousingRecord
(
purchaseWarehousingOrderDetailsVo
.
getFoodNo
()
,
pageIndex
);
}
}
private
void
initEdit
()
{
private
void
initEdit
()
{
//庫存數量
//庫存數量
tvWarehouseTotal
.
setText
(
String
.
valueOf
(
foodNum
));
tvWarehouseTotal
.
setText
(
String
.
valueOf
(
purchaseWarehousingOrderDetailsVo
.
getFoodNum
()
));
//庫存差異
//庫存差異
tvWarehouseDifference
.
setText
(
String
.
valueOf
(
foodNum
));
tvWarehouseDifference
.
setText
(
String
.
valueOf
(
purchaseWarehousingOrderDetailsVo
.
getFoodNum
()
));
edWarehouseLoss
.
setOnFocusChangeListener
((
v
,
hasFocus
)
->
{
edWarehouseLoss
.
setOnFocusChangeListener
((
v
,
hasFocus
)
->
{
//當輸入框獲得焦點時,數量為0,去掉0
//當輸入框獲得焦點時,數量為0,去掉0
if
(
hasFocus
&&
edWarehouseLoss
.
getText
().
toString
().
equals
(
"0"
))
{
if
(
hasFocus
&&
edWarehouseLoss
.
getText
().
toString
().
equals
(
"0"
))
{
...
@@ -152,16 +149,15 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
...
@@ -152,16 +149,15 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
// edWarehouseLoss.setText(String.valueOf(foodNum));
// edWarehouseLoss.setText(String.valueOf(foodNum));
// edWarehouseLoss.setSelection(edWarehouseLoss.getText().length());
// edWarehouseLoss.setSelection(edWarehouseLoss.getText().length());
// }
// }
tvWarehouseDifference
.
setText
(
String
.
valueOf
(
Math
.
abs
(
foodNum
-
inventoryNum
)));
tvWarehouseDifference
.
setText
(
String
.
valueOf
(
Math
.
abs
(
purchaseWarehousingOrderDetailsVo
.
getFoodNum
()
-
inventoryNum
)));
}
else
{
}
else
{
tvWarehouseDifference
.
setText
(
String
.
valueOf
(
foodNum
));
tvWarehouseDifference
.
setText
(
String
.
valueOf
(
purchaseWarehousingOrderDetailsVo
.
getFoodNum
()
));
}
}
}
}
});
});
}
}
private
void
initTopBar
(
Bundle
arguments
)
{
private
void
initTopBar
(
String
foodName
)
{
String
foodName
=
arguments
.
getString
(
WarehouseDetailsFragment
.
FOOD_NAME_KEY
);
//初始化標題
//初始化標題
initTopBar
(
supplyTopBar
,
foodName
);
initTopBar
(
supplyTopBar
,
foodName
);
//添加保存按鈕
//添加保存按鈕
...
@@ -170,10 +166,9 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
...
@@ -170,10 +166,9 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
btnSave
.
setOnClickListener
(
mOnClickListener
);
btnSave
.
setOnClickListener
(
mOnClickListener
);
}
}
private
void
loadFoodImage
(
Bundle
arguments
)
{
private
void
loadFoodImage
()
{
String
foodImageUrl
=
arguments
.
getString
(
WarehouseDetailsFragment
.
FOOD_IMAGE_KEY
);
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
purchaseWarehousingOrderDetailsVo
.
getImages
()))
{
if
(
TextUtil
.
isNotEmptyOrNullOrUndefined
(
foodImageUrl
))
{
GlideUtils
.
display
(
requireContext
(),
ivWarehouseImg
,
purchaseWarehousingOrderDetailsVo
.
getImages
());
GlideUtils
.
display
(
requireContext
(),
ivWarehouseImg
,
foodImageUrl
);
}
else
{
}
else
{
ivWarehouseImg
.
setImageResource
(
R
.
drawable
.
img_small_default
);
ivWarehouseImg
.
setImageResource
(
R
.
drawable
.
img_small_default
);
}
}
...
@@ -192,8 +187,8 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
...
@@ -192,8 +187,8 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
showMessage
(
"請輸入盤點庫存數量"
);
showMessage
(
"請輸入盤點庫存數量"
);
edWarehouseLoss
.
requestFocus
();
edWarehouseLoss
.
requestFocus
();
}
else
{
}
else
{
int
remainingAmount
=
foodNum
-
inventoryNum
;
int
remainingAmount
=
purchaseWarehousingOrderDetailsVo
.
getFoodNum
()
-
inventoryNum
;
mPresenter
.
consumeWareHousing
(
foodNo
,
remainingAmount
);
mPresenter
.
consumeWareHousing
(
purchaseWarehousingOrderDetailsVo
.
getFoodNo
()
,
remainingAmount
);
}
}
}
}
}
}
...
@@ -206,6 +201,8 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
...
@@ -206,6 +201,8 @@ public class WarehousingInventoryFragment extends BaseSupplyChainFragment<Wareho
@Override
@Override
public
void
loadRecord
(
List
<
InventoryRecordBean
>
inventoryRecordBeans
)
{
public
void
loadRecord
(
List
<
InventoryRecordBean
>
inventoryRecordBeans
)
{
smartRefreshLayout
.
finishLoadMore
();
smartRefreshLayout
.
finishRefresh
();
//加載盤點記錄
//加載盤點記錄
if
(
adapter
==
null
)
{
if
(
adapter
==
null
)
{
adapter
=
new
InventoryRecordAdapter
(
inventoryRecordBeans
);
adapter
=
new
InventoryRecordAdapter
(
inventoryRecordBeans
);
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/CenterLayoutManager.java
0 → 100644
View file @
771adf38
package
com
.
gingersoft
.
supply_chain
.
mvp
.
ui
.
widget
;
import
android.content.Context
;
import
android.util.AttributeSet
;
import
android.util.DisplayMetrics
;
import
android.util.Log
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.LinearSmoothScroller
;
import
androidx.recyclerview.widget.RecyclerView
;
/**
* @author 宇航.
* User: admin
* Date: 2021/3/23
* Time: 15:38
* Use:
*/
public
class
CenterLayoutManager
extends
LinearLayoutManager
{
public
CenterLayoutManager
(
Context
context
)
{
super
(
context
);
}
public
CenterLayoutManager
(
Context
context
,
int
orientation
,
boolean
reverseLayout
)
{
super
(
context
,
orientation
,
reverseLayout
);
}
public
CenterLayoutManager
(
Context
context
,
AttributeSet
attrs
,
int
defStyleAttr
,
int
defStyleRes
)
{
super
(
context
,
attrs
,
defStyleAttr
,
defStyleRes
);
}
@Override
public
void
smoothScrollToPosition
(
RecyclerView
recyclerView
,
RecyclerView
.
State
state
,
int
position
)
{
RecyclerView
.
SmoothScroller
smoothScroller
=
new
CenterSmoothScroller
(
recyclerView
.
getContext
());
smoothScroller
.
setTargetPosition
(
position
);
startSmoothScroll
(
smoothScroller
);
}
private
static
class
CenterSmoothScroller
extends
LinearSmoothScroller
{
public
CenterSmoothScroller
(
Context
context
)
{
super
(
context
);
}
/**
*
* @param viewStart view起點
* @param viewEnd view重點
* @param boxStart 整個recyclerview的起點
* @param boxEnd 整個recyclerview的終點
* @param snapPreference 未知
* @return 滑動到哪個位置
*/
@Override
public
int
calculateDtToFit
(
int
viewStart
,
int
viewEnd
,
int
boxStart
,
int
boxEnd
,
int
snapPreference
)
{
return
(
boxStart
+
(
boxEnd
-
boxStart
)
/
2
)
-
(
viewStart
+
(
viewEnd
-
viewStart
)
/
2
);
}
/**
* 滑動速度
*/
@Override
protected
float
calculateSpeedPerPixel
(
DisplayMetrics
displayMetrics
)
{
return
100
f
/
displayMetrics
.
densityDpi
;
}
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/InventoryConsumptionView.java
View file @
771adf38
...
@@ -52,21 +52,24 @@ public class InventoryConsumptionView extends FrameLayout {
...
@@ -52,21 +52,24 @@ public class InventoryConsumptionView extends FrameLayout {
QMUIAlphaTextView
tvConfirm
;
QMUIAlphaTextView
tvConfirm
;
@BindView
(
R2
.
id
.
tv_cancel
)
@BindView
(
R2
.
id
.
tv_cancel
)
QMUIAlphaTextView
tvCancel
;
QMUIAlphaTextView
tvCancel
;
@BindView
(
R2
.
id
.
layout_inventory_btn
)
LinearLayout
layoutBtn
;
private
OnConfirmClickListener
onConfirmClickListener
;
private
OnConfirmClickListener
onConfirmClickListener
;
private
ScanSnView
.
OnCancelListener
onCancelListener
;
private
ConsumptionReasonAdapter
consumptionReasonAdapter
;
private
ConsumptionReasonAdapter
consumptionReasonAdapter
;
public
InventoryConsumptionView
(
@NonNull
Context
context
,
List
<
ConsumeReasonBean
>
consumeReasonBeans
,
int
maxConsumption
)
{
public
InventoryConsumptionView
(
@NonNull
Context
context
,
List
<
ConsumeReasonBean
>
consumeReasonBeans
,
int
maxConsumption
)
{
super
(
context
);
super
(
context
);
View
rootView
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
layout_inventory_consumption
,
null
,
false
);
View
rootView
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
layout_inventory_consumption
,
null
,
false
);
ButterKnife
.
bind
(
this
,
rootView
);
ButterKnife
.
bind
(
this
,
rootView
);
addView
(
rootView
);
addView
(
rootView
);
this
.
maxConsumption
=
maxConsumption
;
this
.
maxConsumption
=
maxConsumption
;
edRemarks
.
setFilters
(
new
InputFilter
[]{
InputFilterUtils
.
getLengthFilter
(
getContext
(),
RemarkProvider
.
REMARK_TEXT_LENGTH
),
InputFilterUtils
.
getChAndEnAndNumAndPtInputFilter
(
getContext
())});
edRemarks
.
setFilters
(
new
InputFilter
[]{
InputFilterUtils
.
getLengthFilter
(
getContext
(),
RemarkProvider
.
REMARK_TEXT_LENGTH
),
InputFilterUtils
.
getChAndEnAndNumAndPtInputFilter
(
getContext
())});
consumptionReasonAdapter
=
new
ConsumptionReasonAdapter
(
consumeReasonBeans
);
consumptionReasonAdapter
=
new
ConsumptionReasonAdapter
(
consumeReasonBeans
);
consumptionReasonAdapter
.
setOnItemChildClickListener
((
adapter
,
view
,
position
)
->
consumptionReasonAdapter
.
setSelectIndex
(
position
));
consumptionReasonAdapter
.
setOnItemChildClickListener
((
adapter
,
view
,
position
)
->
consumptionReasonAdapter
.
setSelectIndex
(
position
));
rvConsumptionReason
.
setLayoutManager
(
new
GridLayoutManager
(
getContext
(),
2
));
rvConsumptionReason
.
setLayoutManager
(
new
GridLayoutManager
(
getContext
(),
3
));
rvConsumptionReason
.
setAdapter
(
consumptionReasonAdapter
);
rvConsumptionReason
.
setAdapter
(
consumptionReasonAdapter
);
tvCancel
.
setOnClickListener
(
v
->
onCancelListener
.
onCancel
());
tvConfirm
.
setOnClickListener
(
v
->
{
tvConfirm
.
setOnClickListener
(
v
->
{
if
(
onConfirmClickListener
!=
null
)
{
if
(
onConfirmClickListener
!=
null
)
{
String
s
=
edInput
.
getText
().
toString
();
String
s
=
edInput
.
getText
().
toString
();
...
@@ -119,6 +122,16 @@ public class InventoryConsumptionView extends FrameLayout {
...
@@ -119,6 +122,16 @@ public class InventoryConsumptionView extends FrameLayout {
return
this
;
return
this
;
}
}
public
InventoryConsumptionView
setOnCancelListener
(
ScanSnView
.
OnCancelListener
onCancelListener
)
{
this
.
onCancelListener
=
onCancelListener
;
return
this
;
}
public
InventoryConsumptionView
setShowBtn
()
{
layoutBtn
.
setVisibility
(
VISIBLE
);
return
this
;
}
public
String
getRemark
()
{
public
String
getRemark
()
{
return
edRemarks
.
getText
().
toString
();
return
edRemarks
.
getText
().
toString
();
}
}
...
@@ -132,6 +145,10 @@ public class InventoryConsumptionView extends FrameLayout {
...
@@ -132,6 +145,10 @@ public class InventoryConsumptionView extends FrameLayout {
return
consumptionReasonAdapter
.
getSelectIndex
();
return
consumptionReasonAdapter
.
getSelectIndex
();
}
}
public
boolean
getIsPrint
()
{
return
switchMultiBooleanState
.
isChecked
();
}
/**
/**
* 獲取消耗數量
* 獲取消耗數量
*
*
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/ScanSnView.java
View file @
771adf38
...
@@ -85,7 +85,7 @@ public class ScanSnView extends FrameLayout {
...
@@ -85,7 +85,7 @@ public class ScanSnView extends FrameLayout {
}
}
private
void
init
()
{
private
void
init
()
{
View
rootView
=
LayoutInflater
.
from
(
getContext
()).
inflate
(
R
.
layout
.
layout_scan_sn
,
null
,
false
);
View
rootView
=
LayoutInflater
.
from
(
getContext
()).
inflate
(
R
.
layout
.
layout_scan_sn
,
this
,
false
);
ButterKnife
.
bind
(
this
,
rootView
);
ButterKnife
.
bind
(
this
,
rootView
);
//初始化adapter
//初始化adapter
SnCodeAdapter
adapter
=
new
SnCodeAdapter
(
R
.
layout
.
item_sn_code
,
snCodes
);
SnCodeAdapter
adapter
=
new
SnCodeAdapter
(
R
.
layout
.
item_sn_code
,
snCodes
);
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/ShowSecondCategoryPopup.java
View file @
771adf38
...
@@ -57,7 +57,7 @@ public class ShowSecondCategoryPopup extends AttachPopupView {
...
@@ -57,7 +57,7 @@ public class ShowSecondCategoryPopup extends AttachPopupView {
flexboxLayoutManager
.
setFlexWrap
(
FlexWrap
.
WRAP
);
flexboxLayoutManager
.
setFlexWrap
(
FlexWrap
.
WRAP
);
recyclerView
.
setLayoutManager
(
flexboxLayoutManager
);
recyclerView
.
setLayoutManager
(
flexboxLayoutManager
);
SecondCategoryAdapter
secondCategoryAdapter
=
new
SecondCategoryAdapter
(
getContext
(),
foodCategoryTreesList
);
SecondCategoryAdapter
secondCategoryAdapter
=
new
SecondCategoryAdapter
(
getContext
(),
foodCategoryTreesList
);
secondCategoryAdapter
.
setSelectIndex
(
defaultSelect
);
secondCategoryAdapter
.
setSelect
ed
Index
(
defaultSelect
);
secondCategoryAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
secondCategoryAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
if
(!
showThirdCategory
)
{
if
(!
showThirdCategory
)
{
//三級分類就不回調
//三級分類就不回調
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/TextPopup.java
View file @
771adf38
...
@@ -35,8 +35,9 @@ public class TextPopup extends CenterPopupView {
...
@@ -35,8 +35,9 @@ public class TextPopup extends CenterPopupView {
protected
void
onCreate
()
{
protected
void
onCreate
()
{
super
.
onCreate
();
super
.
onCreate
();
TextView
tvTitle
=
findViewById
(
R
.
id
.
tv_title
);
TextView
tvTitle
=
findViewById
(
R
.
id
.
tv_title
);
tvTitle
.
setText
(
title
);
tvTitle
.
setText
(
title
);
TextView
tvContent
=
findViewById
(
R
.
id
.
tv_content
);
TextView
tvContent
=
findViewById
(
R
.
id
.
tv_content
);
tvContent
.
setText
(
content
);
tvContent
.
setText
(
content
.
replace
(
"\\n"
,
"\n"
)
);
}
}
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/widget/TextSwitchCompat.java
0 → 100644
View file @
771adf38
//package com.gingersoft.supply_chain.mvp.ui.widget;
//
//import android.content.Context;
//import android.content.res.ColorStateList;
//import android.content.res.TypedArray;
//import android.graphics.Canvas;
//import android.graphics.Paint;
//import android.graphics.Rect;
//import android.graphics.Region;
//import android.graphics.drawable.Drawable;
//import android.text.Layout;
//import android.text.StaticLayout;
//import android.text.TextPaint;
//import android.util.AttributeSet;
//import android.util.Log;
//import android.view.Gravity;
//
//import androidx.annotation.NonNull;
//import androidx.annotation.Nullable;
//import androidx.appcompat.text.AllCapsTransformationMethod;
//import androidx.appcompat.widget.DrawableUtils;
//import androidx.appcompat.widget.SwitchCompat;
//import androidx.appcompat.widget.TintTypedArray;
//import androidx.appcompat.widget.ViewUtils;
//import androidx.core.graphics.drawable.DrawableCompat;
//
//import com.gingersoft.supply_chain.R;
//
//import java.lang.reflect.Field;
//import java.lang.reflect.InvocationTargetException;
//import java.lang.reflect.Method;
//
///**
// * @author 宇航.
// * User: admin
// * Date: 2021/3/19
// * Time: 14:41
// * Use:
// */
//public class TextSwitchCompat extends SwitchCompat {
//
//
// public TextSwitchCompat(@NonNull Context context) {
// super(context);
// }
//
// public TextSwitchCompat(@NonNull Context context, @Nullable AttributeSet attrs) {
// super(context, attrs);
// }
//
// public TextSwitchCompat(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
// super(context, attrs, defStyleAttr);
// }
//
// private int mThumbTextPadding;
// private int mSwitchMinWidth;
// private int mSwitchPadding;
//
// private Layout mOnLayout;
// private Layout mOffLayout;
// private int mSwitchWidth;
// private int mSwitchHeight;
//
// private int mThumbWidth;
//
// private int mSwitchLeft;
// private int mSwitchTop;
// private int mSwitchBottom;
// private int mSwitchRight;
//
//
// private final Rect padding = new Rect();
//
// @Override
// public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// if (getShowText()) {
// if (mOnLayout == null) {
// mOnLayout = makeLayout(getTextOn());
// }
//
// if (mOffLayout == null) {
// mOffLayout = makeLayout(getTextOff());
// }
// }
// //拿到按鈕
// Drawable mThumbDrawable = getThumbDrawable();
// mThumbDrawable.getPadding(padding);
//
// mThumbWidth = mThumbDrawable.getIntrinsicWidth() - padding.left - padding.right;
// int thumbHeight = mThumbDrawable.getIntrinsicHeight();
// //獲取開和關文字最寬的值
// int maxTextWidth = Math.max(mOnLayout.getWidth(), mOffLayout.getWidth())
// + getThumbTextPadding() * 2;
// //拿文字最寬值和按鈕最寬值比較,決定了按鈕的寬度
//// int mThumbWidth = Math.max(maxTextWidth, thumbWidth);
//
//
// //獲得按鈕的軌道
// Drawable mTrackDrawable = getTrackDrawable();
// mTrackDrawable.getPadding(padding);
// int trackHeight = mTrackDrawable.getIntrinsicHeight();
//
// int paddingLeft = padding.left;
// int paddingRight = padding.right;
// //軌跡的寬度為 按鈕的寬度+文字的寬度
// final int switchWidth = Math.max(getSwitchMinWidth(),
// 2 * mThumbWidth + paddingLeft + paddingRight + maxTextWidth);
// final int switchHeight = Math.max(trackHeight, thumbHeight);
// mSwitchWidth = switchWidth;
// mSwitchHeight = switchHeight;
//// final int measuredHeight = getMeasuredHeight();
//// if (measuredHeight < switchHeight) {
// setMeasuredDimension(switchWidth, switchHeight);
//// }
// }
//
// private final Rect mTempRect = new Rect();
//
// @Override
// protected void onDraw(Canvas canvas) {
//// super.onDraw(canvas);
// Log.e("eee", "onDraw");
//
// final Rect padding = mTempRect;
// final Drawable trackDrawable = getTrackDrawable();
// if (trackDrawable != null) {
// trackDrawable.getPadding(padding);
// } else {
// padding.setEmpty();
// }
//
// final int switchTop = (getPaddingTop() + getHeight() - getPaddingBottom()) / 2 -
// getHeight() / 2;
// final int switchBottom = switchTop + getHeight();
// final int switchInnerTop = switchTop + padding.top;
// final int switchInnerBottom = switchBottom - padding.bottom;
//
// final Drawable thumbDrawable = getThumbDrawable();
// if (trackDrawable != null) {
// trackDrawable.draw(canvas);
// }
//
// final int saveCount = canvas.save();
// if (thumbDrawable != null) {
// thumbDrawable.draw(canvas);
// }
//
// Class<?> switchCompatClass = getClass().getSuperclass();
// Method method = null;
// try {
// method = switchCompatClass.getDeclaredMethod("getTargetCheckedState");
// } catch (NoSuchMethodException e) {
// e.printStackTrace();
// }
// method.setAccessible(true);
// boolean state = false;
// try {
// state = (boolean) method.invoke(this);
// } catch (IllegalAccessException | InvocationTargetException e) {
// e.printStackTrace();
// }
//
// final Layout switchText = state ? mOnLayout : mOffLayout;
// if (switchText != null) {
// final int[] drawableState = getDrawableState();
// ColorStateList textColors = getTextColors();
// if (textColors != null) {
// getPaint().setColor(textColors.getColorForState(drawableState, 0));
// }
// getPaint().drawableState = drawableState;
//
// final int cX;
// final int left;
// if (thumbDrawable != null) {
// final Rect bounds = thumbDrawable.getBounds();
// cX = bounds.left + bounds.right;
// left = state ? (bounds.left - getLeft() - switchText.getWidth()) / 2 : bounds.right + ((getRight() - bounds.right) - switchText.getWidth()) / 2;
// } else {
// cX = getWidth();
// left = cX / 2 - switchText.getWidth() / 2;
// }
//// final int left = cX / 2 - switchText.getWidth() / 2;
//// final int top = (switchInnerTop + switchInnerBottom) / 2 - switchText.getHeight() / 2;
// final int top = (getHeight() - switchText.getHeight()) / 2;
// canvas.translate(left, top);
// switchText.draw(canvas);
// }
//
// canvas.restoreToCount(saveCount);
// }
//
// @Override
// protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
// super.onLayout(changed, left, top, right, bottom);
// Log.e("eee", "onLayout");
//
// int opticalInsetLeft = 0;
// int opticalInsetRight = 0;
// Drawable mThumbDrawable = getThumbDrawable();
// Drawable mTrackDrawable = getTrackDrawable();
// if (mThumbDrawable != null) {
// final Rect trackPadding = mTempRect;
// if (mTrackDrawable != null) {
// mTrackDrawable.getPadding(trackPadding);
// } else {
// trackPadding.setEmpty();
// }
//
// opticalInsetLeft = trackPadding.left;
// opticalInsetRight = trackPadding.right;
// }
//
// final int switchLeft = getPaddingLeft() + opticalInsetLeft;
// final int switchRight = switchLeft + mSwitchWidth - opticalInsetLeft - opticalInsetRight;
//
// final int switchTop;
// final int switchBottom;
// switch (getGravity() & Gravity.VERTICAL_GRAVITY_MASK) {
// default:
// case Gravity.TOP:
// switchTop = getPaddingTop();
// switchBottom = switchTop + mSwitchHeight;
// break;
//
// case Gravity.CENTER_VERTICAL:
// switchTop = (getPaddingTop() + getHeight() - getPaddingBottom()) / 2 -
// mSwitchHeight / 2;
// switchBottom = switchTop + mSwitchHeight;
// break;
//
// case Gravity.BOTTOM:
// switchBottom = getHeight() - getPaddingBottom();
// switchTop = switchBottom - mSwitchHeight;
// break;
// }
//
// mSwitchLeft = switchLeft;
// mSwitchTop = switchTop;
// mSwitchBottom = switchBottom;
// mSwitchRight = switchRight;
// }
//
// @Override
// public void draw(Canvas c) {
// Log.e("eee", "draw");
// final Rect padding = mTempRect;
// final int switchLeft = mSwitchLeft;
// final int switchTop = mSwitchTop;
// final int switchRight = mSwitchRight;
// final int switchBottom = mSwitchBottom;
//
// int thumbInitialLeft = switchLeft;
// Drawable mThumbDrawable = getThumbDrawable();
// Drawable mTrackDrawable = getTrackDrawable();
// final Rect thumbInsets;
// thumbInsets = DrawableUtils.INSETS_NONE;
// // Layout the track.
// if (mTrackDrawable != null) {
// mTrackDrawable.getPadding(padding);
//
// // Adjust thumb position for track padding.
// thumbInitialLeft += padding.left;
//
// // If necessary, offset by the optical insets of the thumb asset.
// int trackLeft = switchLeft;
// int trackTop = switchTop;
// int trackRight = switchRight;
// int trackBottom = switchBottom;
// if (thumbInsets != null) {
// if (thumbInsets.left > padding.left) {
// trackLeft += thumbInsets.left - padding.left;
// }
// if (thumbInsets.top > padding.top) {
// trackTop += thumbInsets.top - padding.top;
// }
// if (thumbInsets.right > padding.right) {
// trackRight -= thumbInsets.right - padding.right;
// }
// if (thumbInsets.bottom > padding.bottom) {
// trackBottom -= thumbInsets.bottom - padding.bottom;
// }
// }
// mTrackDrawable.setBounds(trackLeft, trackTop, trackRight, trackBottom);
// }
//
// // Layout the thumb.
// if (mThumbDrawable != null) {
// mThumbDrawable.getPadding(padding);
//
// final int thumbLeft = thumbInitialLeft - padding.left;
// final int thumbRight = thumbInitialLeft + mThumbWidth + padding.right;
// mThumbDrawable.setBounds(thumbLeft, switchTop, thumbRight, switchBottom);
//
// final Drawable background = getBackground();
// if (background != null) {
// DrawableCompat.setHotspotBounds(background, thumbLeft, switchTop,
// thumbRight, switchBottom);
// }
// }
// super.draw(c);
// }
//
// private Layout makeLayout(CharSequence text) {
// return new StaticLayout(text, getPaint(),
// text != null ?
// (int) Math.ceil(Layout.getDesiredWidth(text, getPaint())) : 0,
// Layout.Alignment.ALIGN_NORMAL, 1.f, 0, true);
// }
//
//
//}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/utils/ViewUtils.java
View file @
771adf38
...
@@ -26,7 +26,7 @@ public class ViewUtils {
...
@@ -26,7 +26,7 @@ public class ViewUtils {
int
halfLeftRvHeight
=
recyclerView
.
getHeight
()
/
2
;
int
halfLeftRvHeight
=
recyclerView
.
getHeight
()
/
2
;
if
(
childAt
!=
null
)
{
if
(
childAt
!=
null
)
{
//中間位置那個item減去一半的高度等於中間item一半顯示在列表中間
//中間位置那個item減去一半的高度等於中間item一半顯示在列表中間
int
y
=
(
int
)
(
childAt
.
getTop
()
-
halfLeftRvHeight
)
;
int
y
=
childAt
.
getTop
()
-
halfLeftRvHeight
;
recyclerView
.
smoothScrollBy
(
0
,
y
);
recyclerView
.
smoothScrollBy
(
0
,
y
);
}
}
}
}
...
@@ -42,7 +42,7 @@ public class ViewUtils {
...
@@ -42,7 +42,7 @@ public class ViewUtils {
int
halfLeftRvHeight
=
recyclerView
.
getWidth
()
/
2
;
int
halfLeftRvHeight
=
recyclerView
.
getWidth
()
/
2
;
if
(
childAt
!=
null
)
{
if
(
childAt
!=
null
)
{
//中間位置那個item減去一半的高度等於中間item一半顯示在列表中間
//中間位置那個item減去一半的高度等於中間item一半顯示在列表中間
int
x
=
(
int
)
(
childAt
.
getLeft
()
-
halfLeftRvHeight
)
;
int
x
=
childAt
.
getLeft
()
-
halfLeftRvHeight
;
recyclerView
.
smoothScrollBy
(
x
,
0
);
recyclerView
.
smoothScrollBy
(
x
,
0
);
}
}
}
}
...
...
component-supply-chain/src/main/res/layout/btn_gray_to_blue.xml
0 → 100644
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<androidx.appcompat.widget.AppCompatCheckBox
android:id=
"@+id/cb_gray_to_blue"
android:layout_width=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_2"
android:layout_marginRight=
"@dimen/dp_2"
android:layout_marginBottom=
"@dimen/dp_15"
android:background=
"@drawable/selector_new_order_radio_bg"
android:button=
"@null"
android:paddingLeft=
"@dimen/dp_10"
android:paddingTop=
"@dimen/dp_5"
android:paddingRight=
"@dimen/dp_10"
android:paddingBottom=
"@dimen/dp_5"
android:textColor=
"@color/s_gray_blue"
android:textSize=
"@dimen/dp_15"
tools:text=
"正常消耗"
/>
</FrameLayout>
component-supply-chain/src/main/res/layout/fragment_buy_ingredients.xml
View file @
771adf38
...
@@ -105,66 +105,72 @@
...
@@ -105,66 +105,72 @@
</LinearLayout>
</LinearLayout>
<LinearLayout
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id=
"@+id/layout_right_content"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:layout_weight=
"4"
android:layout_weight=
"4"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<!-- 二級分類 -->
<com.google.android.material.appbar.AppBarLayout
<LinearLayout
android:id=
"@+id/layout_category"
android:id=
"@+id/layout_category"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:layout_marginBottom=
"@dimen/dp_5"
android:orientation=
"horizontal"
>
android:background=
"@color/white"
>
<!-- 二級分類 -->
<androidx.recyclerview.widget.RecyclerView
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id=
"@+id/rv_food_ingredients_second_category"
android:layout_width=
"match_parent"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
a
ndroid:layout_weight=
"1"
/
>
a
pp:layout_scrollFlags=
"scroll|enterAlways"
>
<androidx.cardview.widget.CardView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/card_show_more_category"
android:id=
"@+id/rv_food_ingredients_second_category"
android:layout_width=
"wrap_content"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:layout_marginRight=
"@dimen/dp_58"
/>
app:cardElevation=
"@dimen/dp_10"
>
<LinearLayout
<androidx.cardview.widget.CardView
android:id=
"@+id/card_show_more_category"
android:layout_width=
"@dimen/dp_58"
android:layout_width=
"@dimen/dp_58"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"right"
android:background=
"@color/white"
android:background=
"@color/white"
android:gravity=
"center"
>
app:cardElevation=
"@dimen/dp_10"
>
<ImageView
<LinearLayout
android:id=
"@+id/iv_unfold_arrow"
android:layout_width=
"match_parent"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:src=
"@drawable/ic_inverted_triangle_66"
/>
android:gravity=
"center"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_unfold_category"
<ImageView
android:layout_width=
"wrap_content"
android:id=
"@+id/iv_unfold_arrow"
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_3"
android:layout_height=
"wrap_content"
android:text=
"展開"
android:src=
"@drawable/ic_inverted_triangle_66"
/>
android:textColor=
"@color/color_3c"
android:textSize=
"@dimen/dp_12"
/>
<TextView
android:id=
"@+id/tv_unfold_category"
</LinearLayout>
android:layout_width=
"wrap_content"
</androidx.cardview.widget.CardView>
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_3"
</LinearLayout>
android:text=
"展開"
android:textColor=
"@color/color_3c"
android:textSize=
"@dimen/dp_12"
/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
<!-- 食材 -->
<!-- 食材 -->
<com.scwang.smartrefresh.layout.SmartRefreshLayout
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id=
"@+id/refreshLayout"
android:id=
"@+id/refreshLayout"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
a
ndroid:layout_marginTop=
"@dimen/dp_5
"
>
a
pp:layout_behavior=
"@string/appbar_scrolling_view_behavior
"
>
<com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout
<com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout
android:id=
"@+id/section_food_ingredients"
android:id=
"@+id/section_food_ingredients"
...
@@ -173,13 +179,15 @@
...
@@ -173,13 +179,15 @@
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- android:id="@+id/rv_food_ingredients"-->
<!-- android:id="@+id/rv_food_ingredients"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_marginTop="@dimen/dp_5"-->
<!-- android:layout_marginTop="@dimen/dp_5"-->
<!-- app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />-->
<!-- app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />-->
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
<LinearLayout
...
...
component-supply-chain/src/main/res/layout/fragment_warehouse_details.xml
View file @
771adf38
...
@@ -13,7 +13,9 @@
...
@@ -13,7 +13,9 @@
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_margin=
"@dimen/dp_10"
android:layout_marginTop=
"@dimen/dp_10"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:background=
"@drawable/shape_white_eight_corners_bg"
android:background=
"@drawable/shape_white_eight_corners_bg"
android:orientation=
"horizontal"
android:orientation=
"horizontal"
android:paddingTop=
"@dimen/dp_10"
android:paddingTop=
"@dimen/dp_10"
...
@@ -100,6 +102,7 @@
...
@@ -100,6 +102,7 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_marginTop=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
>
...
@@ -128,7 +131,6 @@
...
@@ -128,7 +131,6 @@
android:text=
"出庫流水"
android:text=
"出庫流水"
android:textColor=
"@color/color_3c"
android:textColor=
"@color/color_3c"
android:textSize=
"@dimen/dp_17"
/>
android:textSize=
"@dimen/dp_17"
/>
</LinearLayout>
</LinearLayout>
<com.scwang.smartrefresh.layout.SmartRefreshLayout
<com.scwang.smartrefresh.layout.SmartRefreshLayout
...
...
component-supply-chain/src/main/res/layout/fragment_warehousing_inventory.xml
View file @
771adf38
...
@@ -122,13 +122,25 @@
...
@@ -122,13 +122,25 @@
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<include
layout=
"@layout/item_inventory_record"
/>
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id=
"@+id/smart_inventory_record"
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_warehouse_inventory_record"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
>
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginTop=
"@dimen/dp_1"
android:orientation=
"vertical"
>
<include
layout=
"@layout/item_inventory_record"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_warehouse_inventory_record"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
/>
</LinearLayout>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
component-supply-chain/src/main/res/layout/item_buy_food_ingredient.xml
View file @
771adf38
...
@@ -2,8 +2,8 @@
...
@@ -2,8 +2,8 @@
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_
marginBottom=
"@dimen/dp_1
"
android:layout_
height=
"wrap_content
"
android:layout_
height=
"wrap_content
"
>
android:layout_
marginBottom=
"@dimen/dp_1
"
>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -33,24 +33,27 @@
...
@@ -33,24 +33,27 @@
<TextView
<TextView
android:id=
"@+id/tv_food_item_no"
android:id=
"@+id/tv_food_item_no"
android:layout_width=
"
0dp
"
android:layout_width=
"
wrap_content
"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginRight=
"@dimen/dp_10"
android:layout_marginRight=
"@dimen/dp_10"
android:layout_weight=
"1"
android:ellipsize=
"end"
android:ellipsize=
"end"
android:maxLines=
"1"
android:maxLines=
"1"
android:textColor=
"@color/color_3c"
android:textColor=
"@color/color_3c"
android:textSize=
"@dimen/dp_12"
android:textSize=
"@dimen/dp_12"
tools:text=
"SP001"
/>
tools:text=
"SP001"
/>
<View
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_weight=
"1"
/>
<TextView
<TextView
android:id=
"@+id/tv_food_item_supplier_name"
android:id=
"@+id/tv_food_item_supplier_name"
android:layout_width=
"
0dp
"
android:layout_width=
"
wrap_content
"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:ellipsize=
"end"
android:ellipsize=
"end"
android:maxLines=
"2"
android:gravity=
"right"
android:gravity=
"right"
android:maxLines=
"2"
android:textColor=
"@color/black"
android:textColor=
"@color/black"
android:textSize=
"@dimen/dp_13"
android:textSize=
"@dimen/dp_13"
android:textStyle=
"bold"
android:textStyle=
"bold"
...
...
component-supply-chain/src/main/res/layout/item_consumption_reason.xml
deleted
100644 → 0
View file @
5a967b4e
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<androidx.appcompat.widget.AppCompatCheckBox
android:id=
"@+id/cb_consumption_reason"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:checked=
"true"
android:textColor=
"@color/color_3c"
android:layout_marginTop=
"@dimen/dp_10"
android:text=
"正常消耗"
/>
</LinearLayout>
\ No newline at end of file
component-supply-chain/src/main/res/layout/item_inventory_record.xml
View file @
771adf38
...
@@ -9,40 +9,50 @@
...
@@ -9,40 +9,50 @@
<TextView
<TextView
android:id=
"@+id/tv_inventory_record_username"
android:id=
"@+id/tv_inventory_record_username"
style=
"@style/
WareHouse_item_TextS
tyle"
style=
"@style/
Inventory_Record_s
tyle"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"20"
android:layout_weight=
"20"
android:paddingLeft=
"@dimen/dp_2"
android:paddingTop=
"@dimen/dp_10"
android:paddingRight=
"@dimen/dp_2"
android:paddingBottom=
"@dimen/dp_10"
android:text=
"用戶名"
/>
android:text=
"用戶名"
/>
<include
layout=
"@layout/include_vertical_color_
white
_dividing_line"
/>
<include
layout=
"@layout/include_vertical_color_
e8
_dividing_line"
/>
<TextView
<TextView
android:id=
"@+id/tv_inventory_record_number"
android:id=
"@+id/tv_inventory_record_number"
style=
"@style/
WareHouse_item_TextS
tyle"
style=
"@style/
Inventory_Record_s
tyle"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"
wrap_cont
ent"
android:layout_height=
"
match_par
ent"
android:layout_weight=
"17"
android:layout_weight=
"17"
android:paddingLeft=
"@dimen/dp_2"
android:paddingRight=
"@dimen/dp_2"
android:text=
"盤點"
/>
android:text=
"盤點"
/>
<include
layout=
"@layout/include_vertical_color_
white
_dividing_line"
/>
<include
layout=
"@layout/include_vertical_color_
e8
_dividing_line"
/>
<TextView
<TextView
android:id=
"@+id/tv_inventory_record_difference"
android:id=
"@+id/tv_inventory_record_difference"
style=
"@style/
WareHouse_item_TextS
tyle"
style=
"@style/
Inventory_Record_s
tyle"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"
wrap_cont
ent"
android:layout_height=
"
match_par
ent"
android:layout_weight=
"23"
android:layout_weight=
"23"
android:paddingLeft=
"@dimen/dp_2"
android:paddingRight=
"@dimen/dp_2"
android:text=
"差異數"
/>
android:text=
"差異數"
/>
<include
layout=
"@layout/include_vertical_color_
white
_dividing_line"
/>
<include
layout=
"@layout/include_vertical_color_
e8
_dividing_line"
/>
<TextView
<TextView
android:id=
"@+id/tv_inventory_record_operating_data"
android:id=
"@+id/tv_inventory_record_operating_data"
style=
"@style/
WareHouse_item_TextS
tyle"
style=
"@style/
Inventory_Record_s
tyle"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"
wrap_cont
ent"
android:layout_height=
"
match_par
ent"
android:layout_weight=
"39"
android:layout_weight=
"39"
android:paddingLeft=
"@dimen/dp_2"
android:paddingRight=
"@dimen/dp_2"
android:text=
"操作日期"
/>
android:text=
"操作日期"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
component-supply-chain/src/main/res/layout/item_outbound_order.xml
0 → 100644
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_item_name"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"0.18"
android:background=
"#D9E1F2"
android:gravity=
"center"
android:paddingLeft=
"@dimen/dp_10"
android:paddingTop=
"@dimen/dp_5"
android:paddingRight=
"@dimen/dp_10"
android:paddingBottom=
"@dimen/dp_5"
tools:text=
"品名"
/>
<View
android:layout_width=
"@dimen/dp_1"
android:layout_height=
"match_parent"
android:background=
"#BAC5D3"
/>
<TextView
android:id=
"@+id/tv_item_value"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"0.82"
android:gravity=
"center_vertical"
android:paddingLeft=
"@dimen/dp_10"
android:paddingTop=
"@dimen/dp_5"
android:paddingRight=
"@dimen/dp_10"
android:paddingBottom=
"@dimen/dp_5"
tools:text=
"巴西肥牛"
/>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_1"
android:background=
"#BAC5D3"
/>
</LinearLayout>
component-supply-chain/src/main/res/layout/layout_inventory_consumption.xml
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
Linear
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
Frame
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_500"
android:layout_height=
"wrap_content"
>
android:layout_margin=
"@dimen/dp_10"
android:background=
"@drawable/shape_white_eight_corners_bg"
android:orientation=
"vertical"
android:paddingLeft=
"@dimen/dp_10"
android:paddingRight=
"@dimen/dp_10"
android:paddingBottom=
"@dimen/dp_17"
>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_16"
android:layout_margin=
"@dimen/dp_10"
android:gravity=
"center_vertical"
android:background=
"@drawable/shape_white_eight_corners_bg"
android:orientation=
"horizontal"
>
android:orientation=
"vertical"
android:paddingLeft=
"@dimen/dp_10"
android:paddingRight=
"@dimen/dp_10"
android:paddingBottom=
"@dimen/dp_17"
>
<TextView
<LinearLayout
android:id=
"@+id/tv_title"
android:layout_width=
"match_parent"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:
text=
"消耗庫存:
"
android:
layout_marginTop=
"@dimen/dp_16
"
android:
textColor=
"@color/color_3c
"
android:
gravity=
"center_vertical
"
android:
textSize=
"@dimen/dp_15"
/
>
android:
orientation=
"horizontal"
>
<EditText
<TextView
android:id=
"@+id/et_input"
android:id=
"@+id/tv_title"
android:layout_width=
"0dp"
android:layout_width=
"wrap_content"
android:layout_height=
"@dimen/dp_38"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:text=
"消耗庫存:"
android:background=
"@drawable/selector_edit_48_aaa_bg"
android:textColor=
"@color/color_3c"
android:inputType=
"number"
android:textSize=
"@dimen/dp_15"
/>
android:maxLines=
"1"
android:paddingLeft=
"@dimen/dp_5"
android:paddingTop=
"@dimen/dp_2"
android:paddingRight=
"@dimen/dp_5"
android:paddingBottom=
"@dimen/dp_2"
android:text=
""
android:textColor=
"@color/color_3c"
android:textCursorDrawable=
"@drawable/cursor_theme"
android:textSize=
"@dimen/sp_16"
/>
<androidx.constraintlayout.widget.ConstraintLayout
<EditText
android:layout_width=
"wrap_content"
android:id=
"@+id/et_input"
android:layout_height=
"match_parent"
>
android:layout_width=
"0dp"
android:layout_height=
"@dimen/dp_38"
android:layout_weight=
"1"
android:background=
"@drawable/selector_edit_48_aaa_bg"
android:inputType=
"number"
android:maxLines=
"1"
android:paddingLeft=
"@dimen/dp_5"
android:paddingTop=
"@dimen/dp_2"
android:paddingRight=
"@dimen/dp_5"
android:paddingBottom=
"@dimen/dp_2"
android:text=
""
android:textColor=
"@color/color_3c"
android:textCursorDrawable=
"@drawable/cursor_theme"
android:textSize=
"@dimen/sp_16"
/>
<androidx.appcompat.widget.SwitchCompat
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/switch_multi_boolean_state"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"match_parent"
>
android:layout_marginLeft=
"@dimen/dp_5"
android:shadowColor=
"@color/trans"
android:thumb=
"@drawable/shape_thumb_on"
android:track=
"@drawable/selector_switch_track"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:switchPadding=
"@dimen/dp_5"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<TextView
<androidx.appcompat.widget.SwitchCompat
android:id=
"@+id/tv_update_reason"
android:id=
"@+id/switch_multi_boolean_state"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_15"
android:layout_marginLeft=
"@dimen/dp_5"
android:text=
"更新原因:"
android:shadowColor=
"@color/trans"
android:textColor=
"@color/color_3c"
android:text=
"打印:"
android:textSize=
"@dimen/dp_15"
/>
android:thumb=
"@drawable/shape_thumb_on"
android:track=
"@drawable/selector_switch_track"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:switchPadding=
"@dimen/dp_5"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_inventory_consumption_reason"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
/>
<LinearLayout
</androidx.constraintlayout.widget.ConstraintLayout>
android:layout_width=
"match_parent"
</LinearLayout>
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_20"
android:orientation=
"horizontal"
>
<TextView
<TextView
android:id=
"@+id/tv_
content
"
android:id=
"@+id/tv_
update_reason
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/str_remark_colon"
android:layout_marginTop=
"@dimen/dp_15"
android:text=
"更新原因:"
android:textColor=
"@color/color_3c"
android:textColor=
"@color/color_3c"
android:textSize=
"@dimen/dp_1
7
"
/>
android:textSize=
"@dimen/dp_1
5
"
/>
<EditText
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/ed_inventory_consumption_remark"
android:id=
"@+id/rv_inventory_consumption_reason"
style=
"@style/Remark_editStyle"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:hint=
"手動輸入"
android:layout_marginTop=
"@dimen/dp_10"
/>
android:text=
""
/>
</LinearLayout>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_20"
android:orientation=
"horizontal"
android:visibility=
"gone"
>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/tv_confirm"
style=
"@style/app_btn_style"
android:layout_width=
"@dimen/dp_0"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_marginTop=
"@dimen/dp_20"
android:gravity=
"center"
android:orientation=
"horizontal"
>
android:paddingTop=
"@dimen/dp_12"
android:paddingBottom=
"@dimen/dp_12"
<TextView
android:text=
"@string/str_determine"
/>
android:id=
"@+id/tv_content"
android:layout_width=
"wrap_content"
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:layout_height=
"wrap_content"
android:id=
"@+id/tv_cancel"
android:text=
"@string/str_remark_colon"
style=
"@style/Cancel_Btn_Style"
android:textColor=
"@color/color_3c"
android:layout_width=
"@dimen/dp_0"
android:textSize=
"@dimen/dp_17"
/>
<EditText
android:id=
"@+id/ed_inventory_consumption_remark"
style=
"@style/Remark_editStyle"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:hint=
"手動輸入"
android:text=
""
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/layout_inventory_btn"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_13"
android:layout_marginTop=
"@dimen/dp_20"
android:layout_weight=
"1"
android:orientation=
"horizontal"
android:gravity=
"center"
android:visibility=
"gone"
>
android:paddingTop=
"@dimen/dp_12"
android:paddingBottom=
"@dimen/dp_12"
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:text=
"@string/str_cancel"
/>
android:id=
"@+id/tv_confirm"
style=
"@style/app_btn_style"
android:layout_width=
"@dimen/dp_0"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:paddingTop=
"@dimen/dp_12"
android:paddingBottom=
"@dimen/dp_12"
android:text=
"@string/str_determine"
/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/tv_cancel"
style=
"@style/Cancel_Btn_Style"
android:layout_width=
"@dimen/dp_0"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_13"
android:layout_weight=
"1"
android:gravity=
"center"
android:paddingTop=
"@dimen/dp_12"
android:paddingBottom=
"@dimen/dp_12"
android:text=
"@string/str_cancel"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</
Linear
Layout>
</
Frame
Layout>
component-supply-chain/src/main/res/layout/layout_print_consume.xml
0 → 100644
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<TextView
android:id=
"@+id/tv_print_consume_restaurant_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_16"
android:textStyle=
"bold"
tools:text=
"餐廳名"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
android:orientation=
"horizontal"
android:paddingLeft=
"@dimen/dp_10"
android:paddingRight=
"@dimen/dp_10"
>
<TextView
android:id=
"@+id/tv_print_consume_date"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_14"
tools:text=
"日期:"
/>
<TextView
android:id=
"@+id/tv_print_consume_no"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"end"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_14"
tools:text=
"編號"
/>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_marginTop=
"@dimen/dp_5"
android:layout_height=
"@dimen/dp_1"
android:background=
"@color/theme_333_color"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_print_consume_info"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
/>
<TextView
android:id=
"@+id/tv_print_consume_user_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
android:layout_marginLeft=
"@dimen/dp_5"
android:text=
"製單人:"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_14"
/>
</LinearLayout>
\ No newline at end of file
component-supply-chain/src/main/res/layout/layout_scan_sn.xml
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<LinearLayout
<LinearLayout
...
@@ -67,12 +67,17 @@
...
@@ -67,12 +67,17 @@
<include
layout=
"@layout/item_sn_code"
/>
<include
layout=
"@layout/item_sn_code"
/>
<androidx.recyclerview.widget.RecyclerView
<FrameLayout
android:id=
"@+id/rv_sn_code"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:layout_weight=
"1"
/>
android:layout_weight=
"1"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_sn_code"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
/>
</FrameLayout>
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
...
component-supply-chain/src/main/res/layout/popup_text.xml
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@+id/centerPopupContainer"
android:id=
"@+id/centerPopupContainer"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
...
@@ -27,7 +28,7 @@
...
@@ -27,7 +28,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
android:layout_marginTop=
"@dimen/dp_10"
android:text=
"標題
"
tools:text=
"內存\n阿薩德好看熬好久是
"
android:textColor=
"@color/theme_333_color"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_14"
/>
android:textSize=
"@dimen/dp_14"
/>
</LinearLayout>
</LinearLayout>
...
...
component-supply-chain/src/main/res/values/strings.xml
View file @
771adf38
...
@@ -28,4 +28,9 @@
...
@@ -28,4 +28,9 @@
<string
name=
"str_Inbound_quantity"
>
入庫數量:
</string>
<string
name=
"str_Inbound_quantity"
>
入庫數量:
</string>
<string
name=
"str_enter_scan_sn"
>
輸入/掃描SN碼:
</string>
<string
name=
"str_enter_scan_sn"
>
輸入/掃描SN碼:
</string>
<string
name=
"str_sn_code"
>
SN碼
</string>
<string
name=
"str_sn_code"
>
SN碼
</string>
<string
name=
"str_restaurant_outbound_order"
>
%1$s-出庫單
</string>
<string
name=
"str_no"
>
NO:%1$s
</string>
<string
name=
"str_prepared"
>
製單人:%1$s
</string>
<string
name=
"str_device_not_print"
>
您的設備不支持打印
</string>
</resources>
</resources>
\ No newline at end of file
component-supply-chain/src/main/res/values/styles.xml
View file @
771adf38
...
@@ -59,6 +59,7 @@
...
@@ -59,6 +59,7 @@
<item
name=
"android:textSize"
>
@dimen/dp_14
</item>
<item
name=
"android:textSize"
>
@dimen/dp_14
</item>
<item
name=
"android:textColor"
>
@color/color_3c
</item>
<item
name=
"android:textColor"
>
@color/color_3c
</item>
</style>
</style>
<style
name=
"Remark_editStyle"
>
<style
name=
"Remark_editStyle"
>
<item
name=
"android:textColorHint"
>
@color/color_c9
</item>
<item
name=
"android:textColorHint"
>
@color/color_c9
</item>
<item
name=
"android:textSize"
>
@dimen/dp_16
</item>
<item
name=
"android:textSize"
>
@dimen/dp_16
</item>
...
@@ -77,4 +78,12 @@
...
@@ -77,4 +78,12 @@
<item
name=
"android:textColorHint"
>
@color/color_b8
</item>
<item
name=
"android:textColorHint"
>
@color/color_b8
</item>
<item
name=
"android:textSize"
>
@dimen/dp_16
</item>
<item
name=
"android:textSize"
>
@dimen/dp_16
</item>
</style>
</style>
<style
name=
"Inventory_Record_style"
>
<item
name=
"android:textSize"
>
@dimen/dp_14
</item>
<item
name=
"android:textColor"
>
@color/white
</item>
<item
name=
"android:ellipsize"
>
end
</item>
<item
name=
"android:maxLines"
>
1
</item>
<item
name=
"android:gravity"
>
center
</item>
</style>
</resources>
</resources>
\ No newline at end of file
component-supply-chain/src/main/res/values/values.xml
0 → 100644
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>
\ No newline at end of file
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/view/ImageUtils.java
View file @
771adf38
...
@@ -110,17 +110,37 @@ public class ImageUtils {
...
@@ -110,17 +110,37 @@ public class ImageUtils {
int
height
=
oldbmp
.
getHeight
();
int
height
=
oldbmp
.
getHeight
();
Matrix
matrix
=
new
Matrix
();
Matrix
matrix
=
new
Matrix
();
float
scaleWidth
=
((
float
)
w
/
width
);
float
scaleWidth
=
((
float
)
w
/
width
);
// float scaleWidth = ((float) w / (width / 2f));//0.37
// float scaleHeight = scaleWidth / 2;
matrix
.
postScale
(
scaleWidth
,
scaleWidth
);
matrix
.
postScale
(
scaleWidth
,
scaleWidth
);
return
Bitmap
.
createBitmap
(
oldbmp
,
0
,
0
,
width
,
height
,
return
Bitmap
.
createBitmap
(
oldbmp
,
0
,
0
,
width
,
height
,
matrix
,
true
);
matrix
,
true
);
}
}
/**
* 針式打印機用,因為是高密度模式,打印出來寬度會少一半,所以需要除以2
*
* @param oldbmp 圖片
* @param w 打印紙寬度
* @return 縮放後的圖片
*/
public
static
Bitmap
dotMatrixZoomDrawable
(
Bitmap
oldbmp
,
int
w
)
{
int
width
=
oldbmp
.
getWidth
();
int
height
=
oldbmp
.
getHeight
();
Matrix
matrix
=
new
Matrix
();
float
scaleWidth
=
((
float
)
w
/
(
width
/
2
f
));
float
scaleHeight
=
scaleWidth
/
2
;
matrix
.
postScale
(
scaleWidth
,
scaleHeight
);
return
Bitmap
.
createBitmap
(
oldbmp
,
0
,
0
,
width
,
height
,
matrix
,
true
);
}
public
static
Bitmap
zoomDrawable
(
Bitmap
oldbmp
,
int
w
,
double
heightMultiple
)
{
public
static
Bitmap
zoomDrawable
(
Bitmap
oldbmp
,
int
w
,
double
heightMultiple
)
{
int
width
=
oldbmp
.
getWidth
();
int
width
=
oldbmp
.
getWidth
();
int
height
=
oldbmp
.
getHeight
();
int
height
=
oldbmp
.
getHeight
();
Matrix
matrix
=
new
Matrix
();
Matrix
matrix
=
new
Matrix
();
float
scaleWidth
=
((
float
)
w
/
width
);
float
scaleWidth
=
((
float
)
w
/
width
);
float
scaleHeight
=
(
float
)
(
scaleWidth
/
heightMultiple
);
float
scaleHeight
=
(
float
)
(
scaleWidth
/
heightMultiple
);
matrix
.
postScale
(
scaleWidth
,
scaleHeight
);
matrix
.
postScale
(
scaleWidth
,
scaleHeight
);
return
Bitmap
.
createBitmap
(
oldbmp
,
0
,
0
,
width
,
height
,
return
Bitmap
.
createBitmap
(
oldbmp
,
0
,
0
,
width
,
height
,
matrix
,
true
);
matrix
,
true
);
...
...
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/view/LayoutToBitmapUtils.java
View file @
771adf38
...
@@ -5,6 +5,8 @@ import android.graphics.Bitmap;
...
@@ -5,6 +5,8 @@ import android.graphics.Bitmap;
import
android.graphics.Canvas
;
import
android.graphics.Canvas
;
import
android.graphics.Color
;
import
android.graphics.Color
;
import
android.graphics.Matrix
;
import
android.graphics.Matrix
;
import
android.graphics.Paint
;
import
android.graphics.PaintFlagsDrawFilter
;
import
android.os.Environment
;
import
android.os.Environment
;
import
android.util.Log
;
import
android.util.Log
;
import
android.view.View
;
import
android.view.View
;
...
@@ -171,12 +173,17 @@ public class LayoutToBitmapUtils {
...
@@ -171,12 +173,17 @@ public class LayoutToBitmapUtils {
c
.
drawColor
(
Color
.
WHITE
);
c
.
drawColor
(
Color
.
WHITE
);
/** 如果不设置canvas画布为白色,则生成透明 */
/** 如果不设置canvas画布为白色,则生成透明 */
c
.
setDrawFilter
(
new
PaintFlagsDrawFilter
(
Paint
.
ANTI_ALIAS_FLAG
,
Paint
.
FILTER_BITMAP_FLAG
));
v
.
layout
(
0
,
0
,
w
,
h
);
v
.
layout
(
0
,
0
,
w
,
h
);
v
.
draw
(
c
);
v
.
draw
(
c
);
return
bmp
;
return
bmp
;
}
}
public
static
Bitmap
getBitmapByView
(
Context
context
,
View
v
){
layoutView
(
context
,
v
);
return
loadBitmapFromView
(
v
);
}
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//然后View和其内部的子View都具有了实际大小,也就是完成了布局,相当与添加到了界面上。接着就可以创建位图并在上面绘制了:
//然后View和其内部的子View都具有了实际大小,也就是完成了布局,相当与添加到了界面上。接着就可以创建位图并在上面绘制了:
...
...
library-common/src/main/res/color/s_gray_blue.xml
0 → 100644
View file @
771adf38
<?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_c8"
/>
</selector>
\ No newline at end of file
library-common/src/main/res/drawable/selector_new_order_radio_bg.xml
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<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_border_bg"
android:state_checked=
"true"
/>
<item
android:drawable=
"@drawable/shape_delivery_item_btn_normal"
/>
<item
android:drawable=
"@drawable/shape_delivery_item_btn_normal"
/>
</selector>
</selector>
\ No newline at end of file
library-common/src/main/res/values/styles.xml
View file @
771adf38
...
@@ -295,7 +295,7 @@
...
@@ -295,7 +295,7 @@
<style
name=
"Print_text_style"
>
<style
name=
"Print_text_style"
>
<item
name=
"android:textColor"
>
@color/black
</item>
<item
name=
"android:textColor"
>
@color/black
</item>
<item
name=
"android:textSize"
>
@dimen/sp_2
4
</item>
<item
name=
"android:textSize"
>
@dimen/sp_2
8
</item>
</style>
</style>
<!-- 廚房單菜品名字體樣式-->
<!-- 廚房單菜品名字體樣式-->
...
...
library-print/src/main/java/com/gingersoft/gsa/cloud/print/bean/PrjBean.java
View file @
771adf38
...
@@ -44,7 +44,7 @@ public class PrjBean implements Serializable {
...
@@ -44,7 +44,7 @@ public class PrjBean implements Serializable {
private
String
tableName
;
private
String
tableName
;
private
String
orderNo
;
private
String
orderNo
;
private
int
orderTime
;
private
String
orderTime
;
private
int
person
;
private
int
person
;
private
String
orderDetailsTime
;
private
String
orderDetailsTime
;
private
int
orderDetailsId
;
private
int
orderDetailsId
;
...
...
library-ui/src/main/res/layout/print_
kitchen2
.xml
→
library-ui/src/main/res/layout/print_
dot_matrix_kitchen
.xml
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
androidx.constraintlayout.widget.Constraint
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
Linear
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -14,72 +14,88 @@
...
@@ -14,72 +14,88 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:text=
"頭單"
tools:text=
"頭單"
/>
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<!-- 台號-->
<LinearLayout
<TextView
android:layout_width=
"match_parent"
android:id=
"@+id/tv_kitchen_print_table_number"
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"外賣19"
android:orientation=
"horizontal"
>
android:textStyle=
"bold"
<!-- 台號-->
android:textSize=
"@dimen/sp_42"
<TextView
app:layout_constraintStart_toStartOf=
"parent"
android:id=
"@+id/tv_kitchen_print_table_number"
app:layout_constraintTop_toBottomOf=
"@+id/tv_kitchen_print_first_order"
/>
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"@dimen/sp_42"
android:textStyle=
"bold"
tools:text=
"外賣19"
/>
<!--預留-->
<View
<TextView
android:layout_width=
"0dp"
android:id=
"@+id/tv_order_reserved"
android:layout_height=
"match_parent"
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_weight=
"1"
/>
<!--預留-->
<TextView
android:id=
"@+id/tv_order_reserved"
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textStyle=
"bold"
android:visibility=
"visible"
tools:text=
"預存"
/>
</LinearLayout>
<!--單號-->
<LinearLayout
android:id=
"@+id/ll_order"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:textStyle=
"bold"
android:orientation=
"horizontal"
>
android:text=
"預存"
android:visibility=
"gone"
<TextView
app:layout_constraintEnd_toEndOf=
"parent"
android:id=
"@+id/tv_order_num_text"
app:layout_constraintTop_toBottomOf=
"@+id/tv_kitchen_print_first_order"
/>
style=
"@style/Print_dot_matrix_normal"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"單號:"
/>
<TextView
android:id=
"@+id/tv_order_num"
style=
"@style/Print_forty_two_text"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:textStyle=
"bold"
tools:text=
"AE86"
/>
</LinearLayout>
<TextView
<TextView
android:id=
"@+id/tv_food_time"
android:id=
"@+id/tv_food_time"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"@dimen/sp_18"
android:visibility=
"visible"
android:visibility=
"visible"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tv_kitchen_print_table_number"
tools:text=
"盡快送達"
/>
tools:text=
"盡快送達"
/>
<!--落單時間-->
<!--落單時間-->
<LinearLayout
<LinearLayout
android:id=
"@+id/ll_order_time"
android:id=
"@+id/ll_order_time"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:orientation=
"horizontal"
>
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tv_food_time"
>
<TextView
<TextView
android:id=
"@+id/tv_order_time_text"
android:id=
"@+id/tv_order_time_text"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"落單:"
android:text=
"落單:"
/>
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_18"
/>
<TextView
<TextView
android:id=
"@+id/tv_order_time"
android:id=
"@+id/tv_order_time"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"01-04 19:32"
tools:text=
"01-04 19:32"
/>
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_18"
/>
</LinearLayout>
</LinearLayout>
<!--開台時間-->
<!--開台時間-->
...
@@ -87,27 +103,21 @@
...
@@ -87,27 +103,21 @@
android:id=
"@+id/ll_opening_table_time"
android:id=
"@+id/ll_opening_table_time"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:orientation=
"horizontal"
>
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/ll_order_time"
>
<TextView
<TextView
android:id=
"@+id/tv_opening_time_text"
android:id=
"@+id/tv_opening_time_text"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"開檯:"
android:text=
"開檯:"
/>
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_18"
/>
<TextView
<TextView
android:id=
"@+id/tv_opening_time"
android:id=
"@+id/tv_opening_time"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"01-20 12:00"
tools:text=
"01-20 12:00"
/>
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_18"
/>
</LinearLayout>
</LinearLayout>
<!--人數,廚房-->
<!--人數,廚房-->
...
@@ -116,93 +126,56 @@
...
@@ -116,93 +126,56 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_5"
android:layout_marginTop=
"@dimen/dp_5"
android:orientation=
"horizontal"
android:orientation=
"horizontal"
>
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/ll_opening_table_time"
>
<TextView
<TextView
android:id=
"@+id/tv_people_text"
android:id=
"@+id/tv_people_text"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"人數:"
android:text=
"人數:"
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_18"
android:visibility=
"visible"
/>
android:visibility=
"visible"
/>
<TextView
<TextView
android:id=
"@+id/tv_people"
android:id=
"@+id/tv_people"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:textColor=
"@color/black"
android:layout_marginRight=
"@dimen/dp_20"
android:textSize=
"@dimen/sp_18"
android:visibility=
"visible"
android:text=
"0"
tools:text=
"0"
/>
android:visibility=
"visible"
/>
<TextView
<TextView
android:id=
"@+id/tv_kitchen_location_text"
android:id=
"@+id/tv_kitchen_location_text"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_20"
android:text=
"廚房:"
android:text=
"廚房:"
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_18"
android:visibility=
"visible"
/>
android:visibility=
"visible"
/>
<TextView
<TextView
android:id=
"@+id/tv_kitchen_location"
android:id=
"@+id/tv_kitchen_location"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
""
android:visibility=
"visible"
android:textColor=
"@color/black"
tools:text=
"K1"
/>
android:textSize=
"@dimen/sp_18"
android:visibility=
"visible"
/>
</LinearLayout>
</LinearLayout>
<!--單號-->
<LinearLayout
android:id=
"@+id/ll_order"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/ll_order_time"
>
<TextView
android:id=
"@+id/tv_order_num_text"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"單號:"
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_18"
/>
<TextView
android:id=
"@+id/tv_order_num"
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"AE86"
android:textSize=
"@dimen/sp_42"
/>
</LinearLayout>
<!--自取取餐碼-->
<!--自取取餐碼-->
<LinearLayout
<LinearLayout
android:id=
"@+id/ll_take_code"
android:id=
"@+id/ll_take_code"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:orientation=
"horizontal"
>
app:layout_constraintLeft_toLeftOf=
"@+id/ll_order"
app:layout_constraintTop_toBottomOf=
"@+id/ll_order"
>
<TextView
<TextView
android:id=
"@+id/tv_take_code_text"
android:id=
"@+id/tv_take_code_text"
style=
"@style/Print_text_style"
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"取餐碼
:
"
android:text=
"取餐碼
:
"
android:textSize=
"@dimen/sp_18"
android:textSize=
"@dimen/sp_18"
android:visibility=
"gone"
/>
android:visibility=
"gone"
/>
...
@@ -220,40 +193,31 @@
...
@@ -220,40 +193,31 @@
android:id=
"@+id/ll_waiter"
android:id=
"@+id/ll_waiter"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
android:orientation=
"horizontal"
>
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/ll_take_code"
>
<TextView
<TextView
android:id=
"@+id/tv_waiter_text"
android:id=
"@+id/tv_waiter_text"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"服務員:"
android:text=
"服務員:"
/>
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_18"
/>
<TextView
<TextView
android:id=
"@+id/tv_waiter"
android:id=
"@+id/tv_waiter"
style=
"@style/Print_
text_style
"
style=
"@style/Print_
dot_matrix_normal
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"GSPOS"
tools:text=
"GSPOS"
/>
android:textColor=
"@color/black"
android:textSize=
"@dimen/sp_18"
/>
</LinearLayout>
</LinearLayout>
<TextView
<TextView
android:id=
"@+id/line_kitchen_info"
android:id=
"@+id/line_kitchen_info"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_
12
"
android:layout_marginTop=
"@dimen/dp_
5
"
android:maxLines=
"1"
android:maxLines=
"1"
android:text=
"————————————————————————————————————————————"
android:text=
"————————————————————————————————————————————"
android:textSize=
"@dimen/sp_18"
android:textSize=
"@dimen/sp_18"
/>
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/ll_waiter"
/>
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- android:id="@+id/rv_kitchen_food"-->
<!-- android:id="@+id/rv_kitchen_food"-->
...
@@ -267,7 +231,6 @@
...
@@ -267,7 +231,6 @@
android:id=
"@+id/ll_kitchen_food"
android:id=
"@+id/ll_kitchen_food"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
android:orientation=
"vertical"
android:orientation=
"vertical"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/line_kitchen_info"
/>
app:layout_constraintTop_toBottomOf=
"@+id/line_kitchen_info"
/>
...
@@ -276,7 +239,6 @@
...
@@ -276,7 +239,6 @@
android:id=
"@+id/tv_kitchen_food_end_line"
android:id=
"@+id/tv_kitchen_food_end_line"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_5"
android:maxLines=
"1"
android:maxLines=
"1"
android:text=
"————————————————————————————————————————————"
android:text=
"————————————————————————————————————————————"
android:textSize=
"@dimen/sp_18"
android:textSize=
"@dimen/sp_18"
...
@@ -297,11 +259,7 @@
...
@@ -297,11 +259,7 @@
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_20"
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tv_kitchen_food_end_line"
>
<TextView
<TextView
android:id=
"@+id/tv_prj_page_index"
android:id=
"@+id/tv_prj_page_index"
...
@@ -319,9 +277,9 @@
...
@@ -319,9 +277,9 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
android:gravity=
"center"
android:gravity=
"center"
android:text
=
"外賣19
"
android:text
Size=
"@dimen/sp_42
"
android:textStyle=
"bold"
android:textStyle=
"bold"
android:textSize=
"@dimen/sp_42"
/>
tools:text=
"外賣19"
/>
<TextView
<TextView
android:id=
"@+id/tv_kitchen_print_quantity"
android:id=
"@+id/tv_kitchen_print_quantity"
...
@@ -359,7 +317,7 @@
...
@@ -359,7 +317,7 @@
<!-- style="@style/Print_text_style"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="落單時間
:
"-->
<!-- android:text="落單時間
:
"-->
<!-- android:textColor="@color/black"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18" />-->
<!-- android:textSize="@dimen/sp_18" />-->
...
@@ -382,7 +340,7 @@
...
@@ -382,7 +340,7 @@
<!-- android:id="@+id/tv_order_num_text"-->
<!-- android:id="@+id/tv_order_num_text"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="單號
:
"-->
<!-- android:text="單號
:
"-->
<!-- android:textColor="@color/black"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18" />-->
<!-- android:textSize="@dimen/sp_18" />-->
...
@@ -406,7 +364,7 @@
...
@@ -406,7 +364,7 @@
<!-- style="@style/Print_text_style"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="取餐碼
:
"-->
<!-- android:text="取餐碼
:
"-->
<!-- android:textSize="@dimen/dp_20"-->
<!-- android:textSize="@dimen/dp_20"-->
<!-- android:visibility="gone" />-->
<!-- android:visibility="gone" />-->
...
@@ -429,7 +387,7 @@
...
@@ -429,7 +387,7 @@
<!-- style="@style/Print_text_style"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="落單時間
:
"-->
<!-- android:text="落單時間
:
"-->
<!-- android:textColor="@color/black"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18" />-->
<!-- android:textSize="@dimen/sp_18" />-->
...
@@ -462,7 +420,7 @@
...
@@ -462,7 +420,7 @@
<!-- style="@style/Print_text_style"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="開檯時間
:
"-->
<!-- android:text="開檯時間
:
"-->
<!-- android:textColor="@color/black"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18" />-->
<!-- android:textSize="@dimen/sp_18" />-->
...
@@ -508,7 +466,7 @@
...
@@ -508,7 +466,7 @@
<!-- style="@style/Print_text_style"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="人數
:
"-->
<!-- android:text="人數
:
"-->
<!-- android:textColor="@color/black"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18"-->
<!-- android:textSize="@dimen/sp_18"-->
<!-- android:visibility="visible" />-->
<!-- android:visibility="visible" />-->
...
@@ -582,4 +540,4 @@
...
@@ -582,4 +540,4 @@
<!-- tools:text="統計數量" />-->
<!-- tools:text="統計數量" />-->
<!-- </RelativeLayout>-->
<!-- </RelativeLayout>-->
<!-- </LinearLayout>-->
<!-- </LinearLayout>-->
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
\ No newline at end of file
\ No newline at end of file
library-ui/src/main/res/layout/print_kitchen.xml
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
Linear
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
androidx.constraintlayout.widget.Constraint
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<!--廚房單-->
<!--廚房單-->
<!-- 台號-->
<!-- 頭單-->
<TextView
android:id=
"@+id/tv_kitchen_print_first_order"
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:text=
"頭單"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<!-- 台號-->
<TextView
<TextView
android:id=
"@+id/tv_kitchen_print_table_number"
android:id=
"@+id/tv_kitchen_print_table_number"
style=
"@style/Print_kitchen_table_number_text_style"
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"19"
android:text=
"外賣19"
android:textSize=
"@dimen/dp_48"
android:textSize=
"@dimen/sp_42"
android:textStyle=
"bold"
/>
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tv_kitchen_print_first_order"
/>
<!--預留-->
<TextView
<TextView
android:id=
"@+id/tv_
kitchen_print_first_order
"
android:id=
"@+id/tv_
order_reserved
"
style=
"@style/Print_kitchen_table_number_text_style"
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
tools:text=
"預存"
android:textSize=
"@dimen/dp_40"
/>
android:textStyle=
"bold"
android:visibility=
"gone"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tv_kitchen_print_first_order"
/>
<TextView
android:id=
"@+id/tv_food_time"
style=
"@style/Print_eighteen_text"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:visibility=
"visible"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tv_kitchen_print_table_number"
tools:text=
"盡快送達"
/>
<!--落單時間-->
<LinearLayout
<LinearLayout
android:layout_width=
"match_parent"
android:id=
"@+id/ll_order_time"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
android:orientation=
"horizontal"
android:paddingBottom=
"@dimen/dp_10"
>
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tv_food_time"
>
<LinearLayout
android:layout_width=
"match_parent"
<TextView
android:layout_height=
"wrap_content"
android:id=
"@+id/tv_order_time_text"
android:orientation=
"horizontal"
>
style=
"@style/Print_eighteen_text"
android:layout_width=
"wrap_content"
<TextView
android:layout_height=
"wrap_content"
android:id=
"@+id/tv_order_num_text"
android:text=
"落單:"
/>
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
<TextView
android:layout_height=
"wrap_content"
android:id=
"@+id/tv_order_time"
android:text=
"單號:"
/>
style=
"@style/Print_eighteen_text"
android:layout_width=
"wrap_content"
<TextView
android:layout_height=
"wrap_content"
android:id=
"@+id/tv_order_num"
android:text=
"01-04 19:32"
/>
style=
"@style/Print_text_style"
</LinearLayout>
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
<!--開台時間-->
android:text=
"AE86"
<LinearLayout
android:textSize=
"@dimen/dp_40"
/>
android:id=
"@+id/ll_opening_table_time"
android:layout_width=
"wrap_content"
</LinearLayout>
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
<LinearLayout
app:layout_constraintStart_toStartOf=
"parent"
android:id=
"@+id/layout_take_code"
app:layout_constraintTop_toBottomOf=
"@+id/ll_order_time"
>
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
<TextView
android:orientation=
"horizontal"
>
android:id=
"@+id/tv_opening_time_text"
style=
"@style/Print_eighteen_text"
<TextView
android:layout_width=
"wrap_content"
android:id=
"@+id/tv_take_code_text"
android:layout_height=
"wrap_content"
style=
"@style/Print_text_style"
android:text=
"開檯:"
/>
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
<TextView
android:text=
"取餐碼:"
android:id=
"@+id/tv_opening_time"
android:textSize=
"@dimen/dp_20"
style=
"@style/Print_eighteen_text"
android:visibility=
"visible"
/>
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
<TextView
android:text=
"01-20 12:00"
/>
android:id=
"@+id/tv_take_code"
</LinearLayout>
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
<!--人數,廚房-->
android:layout_height=
"wrap_content"
<LinearLayout
android:textSize=
"@dimen/dp_20"
android:id=
"@+id/ll_people_and_kitchen"
android:visibility=
"visible"
/>
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
</LinearLayout>
android:layout_marginTop=
"@dimen/dp_5"
android:orientation=
"horizontal"
<LinearLayout
app:layout_constraintStart_toStartOf=
"parent"
android:layout_width=
"match_parent"
app:layout_constraintTop_toBottomOf=
"@+id/ll_opening_table_time"
>
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_people_text"
<TextView
style=
"@style/Print_eighteen_text"
android:id=
"@+id/tv_order_time_text"
android:layout_width=
"wrap_content"
style=
"@style/Print_text_style"
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:text=
"人數:"
android:layout_height=
"wrap_content"
android:visibility=
"visible"
/>
android:text=
"落單時間:"
android:textSize=
"@dimen/dp_28"
/>
<TextView
android:id=
"@+id/tv_people"
<TextView
style=
"@style/Print_eighteen_text"
android:id=
"@+id/tv_order_time"
android:layout_width=
"wrap_content"
style=
"@style/Print_text_style"
android:layout_height=
"wrap_content"
android:layout_width=
"wrap_content"
android:text=
"0"
android:layout_height=
"wrap_content"
android:visibility=
"visible"
/>
android:text=
"01-04 19:32"
android:textSize=
"@dimen/dp_28"
/>
<TextView
</LinearLayout>
android:id=
"@+id/tv_kitchen_location_text"
style=
"@style/Print_eighteen_text"
<TextView
android:layout_width=
"wrap_content"
android:id=
"@+id/tv_food_time"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_20"
android:text=
"廚房:"
android:visibility=
"visible"
/>
<TextView
android:id=
"@+id/tv_kitchen_location"
style=
"@style/Print_eighteen_text"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
""
android:visibility=
"visible"
/>
</LinearLayout>
<!--單號-->
<LinearLayout
android:id=
"@+id/ll_order"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/ll_order_time"
>
<TextView
android:id=
"@+id/tv_order_num_text"
style=
"@style/Print_eighteen_text"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"單號:"
/>
<TextView
android:id=
"@+id/tv_order_num"
style=
"@style/Print_text_style"
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"@dimen/dp_28"
android:text=
"AE86"
tools:text=
"盡快送達"
/>
android:textSize=
"@dimen/sp_42"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/layout_opening_table_time"
<!--自取取餐碼-->
android:layout_width=
"match_parent"
<LinearLayout
android:layout_height=
"wrap_content"
android:id=
"@+id/ll_take_code"
android:orientation=
"horizontal"
>
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
<TextView
android:orientation=
"horizontal"
android:id=
"@+id/tv_opening_time_text"
app:layout_constraintLeft_toLeftOf=
"@+id/ll_order"
style=
"@style/Print_text_style"
app:layout_constraintTop_toBottomOf=
"@+id/ll_order"
>
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
<TextView
android:text=
"開檯時間:"
android:id=
"@+id/tv_take_code_text"
android:textSize=
"@dimen/dp_20"
/>
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
<TextView
android:layout_height=
"wrap_content"
android:id=
"@+id/tv_opening_time"
android:text=
"取餐碼:"
style=
"@style/Print_text_style"
android:textSize=
"@dimen/sp_18"
android:layout_width=
"wrap_content"
android:visibility=
"gone"
/>
android:layout_height=
"wrap_content"
android:textSize=
"@dimen/dp_20"
/>
<TextView
</LinearLayout>
android:id=
"@+id/tv_take_code"
style=
"@style/Print_text_style"
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"@dimen/sp_18"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_kitchen_location"
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginRight=
"@dimen/dp_20"
android:text=
"K1 廚房"
/>
<TextView
android:id=
"@+id/tv_operator"
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"gsadmin"
/>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/tv_people_text"
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"人數:"
android:visibility=
"gone"
/>
<TextView
android:id=
"@+id/tv_people"
style=
"@style/Print_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"1000"
android:visibility=
"gone"
/>
</LinearLayout>
<TextView
android:id=
"@+id/line_kitchen_info"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:maxLines=
"1"
android:text=
"——————————————————————————————————————————————————"
app:layout_constraintTop_toBottomOf=
"@id/tv_operator"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_kitchen_food"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
android:visibility=
"gone"
/>
android:visibility=
"gone"
/>
</LinearLayout>
<!--服務員-->
<LinearLayout
android:id=
"@+id/ll_waiter"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/ll_take_code"
>
<TextView
android:id=
"@+id/tv_waiter_text"
style=
"@style/Print_eighteen_text"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"服務員:"
/>
<LinearLayout
<TextView
android:id=
"@+id/layout_kitchen_food"
android:id=
"@+id/tv_waiter"
android:layout_width=
"match_parent"
style=
"@style/Print_eighteen_text"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
android:text=
"GSPOS"
/>
android:orientation=
"vertical"
/>
</LinearLayout>
<TextView
android:id=
"@+id/line_kitchen_info"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_5"
android:maxLines=
"1"
android:text=
"————————————————————————————————————————————"
android:textSize=
"@dimen/sp_18"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/ll_waiter"
/>
<LinearLayout
android:id=
"@+id/ll_kitchen_food"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_10"
android:orientation=
"vertical"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/line_kitchen_info"
/>
<TextView
android:id=
"@+id/tv_kitchen_food_end_line"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_5"
android:maxLines=
"1"
android:text=
"————————————————————————————————————————————"
android:textSize=
"@dimen/sp_18"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/ll_kitchen_food"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/dp_20"
android:orientation=
"horizontal"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/tv_kitchen_food_end_line"
>
<TextView
<TextView
android:id=
"@+id/tv_
kitchen_print_table_number2
"
android:id=
"@+id/tv_
prj_page_index
"
style=
"@style/Print_kitchen_table_number_text_style"
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_vertical"
android:text=
"19"
android:textSize=
"@dimen/sp_28"
android:textSize=
"@dimen/dp_48"
tools:text=
"1/2"
/>
android:textStyle=
"bold"
/>
<RelativeLayout
<TextView
android:layout_width=
"match_parent"
android:id=
"@+id/tv_kitchen_print_table_number_bottom"
android:layout_height=
"wrap_content"
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_marginTop=
"@dimen/dp_20"
android:layout_width=
"0dp"
android:orientation=
"horizontal"
>
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
<TextView
android:gravity=
"center"
android:id=
"@+id/tv_prj_page_index"
android:text=
"外賣19"
style=
"@style/Print_kitchen_table_number_text_style"
android:textSize=
"@dimen/sp_42"
android:layout_width=
"wrap_content"
android:textStyle=
"bold"
/>
android:layout_height=
"wrap_content"
android:layout_centerInParent=
"true"
android:layout_gravity=
"center_horizontal"
android:textSize=
"@dimen/dp_28"
tools:text=
"1/2"
/>
<TextView
android:id=
"@+id/tv_kitchen_print_quantity"
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:textSize=
"@dimen/dp_30"
tools:text=
"統計數量"
/>
</RelativeLayout>
<TextView
android:id=
"@+id/tv_kitchen_print_quantity"
style=
"@style/Print_kitchen_table_number_text_style"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:textSize=
"@dimen/sp_28"
tools:text=
"統計數量"
/>
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
\ No newline at end of file
\ No newline at end of file
library-ui/src/main/res/values/style.xml
0 → 100644
View file @
771adf38
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style
name=
"Print_eighteen_text"
>
<item
name=
"android:textSize"
>
@dimen/dp_18
</item>
<item
name=
"android:textColor"
>
@color/black
</item>
<item
name=
"android:includeFontPadding"
>
false
</item>
</style>
<style
name=
"Print_twenty_four_text"
>
<item
name=
"android:textSize"
>
@dimen/dp_24
</item>
<item
name=
"android:textColor"
>
@color/black
</item>
<item
name=
"android:includeFontPadding"
>
false
</item>
</style>
<style
name=
"Print_twenty_six_text"
>
<item
name=
"android:textSize"
>
@dimen/dp_26
</item>
<item
name=
"android:textColor"
>
@color/black
</item>
<item
name=
"android:includeFontPadding"
>
false
</item>
</style>
<style
name=
"Print_twenty_eight_text"
>
<item
name=
"android:textSize"
>
@dimen/dp_28
</item>
<item
name=
"android:textColor"
>
@color/black
</item>
<item
name=
"android:includeFontPadding"
>
false
</item>
</style>
<style
name=
"Print_thirty_two_text"
>
<item
name=
"android:textSize"
>
@dimen/dp_32
</item>
<item
name=
"android:textColor"
>
@color/black
</item>
<item
name=
"android:includeFontPadding"
>
false
</item>
</style>
<style
name=
"Print_forty_two_text"
>
<item
name=
"android:textSize"
>
@dimen/dp_42
</item>
<item
name=
"android:textColor"
>
@color/black
</item>
<item
name=
"android:includeFontPadding"
>
false
</item>
</style>
<style
name=
"Print_dot_matrix_normal"
parent=
"@style/Print_twenty_six_text"
/>
</resources>
\ No newline at end of file
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