Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jiujian
/
client-customer-order-api
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
wangyingyang
2024-12-13 16:23:03 +0800
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
cba10c69d74c822a7aba0352e79086625ab5d99f
cba10c69
2 parents
94d74b5c
db491baf
fix
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
21 deletions
src/main/java/com/infoloop/tianting/service/impl/SettlementServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/SettlementServiceImpl.java
View file @
cba10c6
...
...
@@ -12,7 +12,6 @@ import com.infoloop.tianting.exception.ErrorCodeEnum;
import
com.infoloop.tianting.menuservice.SingleMenuDetailRpcResponse
;
import
com.infoloop.tianting.menuservice.SingleMenuRpcResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto
;
import
com.infoloop.tianting.model.dto.SettlementDTO
;
import
com.infoloop.tianting.model.dto.SettlementDTO.SettlementDataByMealDto
;
import
com.infoloop.tianting.model.dto.SettlementDTO.SettlementDataDto
;
import
com.infoloop.tianting.model.dto.SettlementDTO.SettlementMenuMealDto
;
...
...
@@ -26,13 +25,8 @@ import com.infoloop.tianting.service.client.OrderServiceRpcClient;
import
com.infoloop.tianting.service.client.SkuServiceRpcClient
;
import
com.infoloop.tianting.setmealscheduleservice.SingleMealRpcResponse
;
import
com.infoloop.tianting.utils.DateUtil
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.temporal.ChronoUnit
;
import
java.util.Comparator
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.hpsf.Date
;
import
org.apache.poi.ss.usermodel.Cell
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.ss.usermodel.Sheet
;
...
...
@@ -44,11 +38,15 @@ import org.springframework.stereotype.Service;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.temporal.ChronoUnit
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
@Slf4j
...
...
@@ -71,7 +69,6 @@ public class SettlementServiceImpl implements SettlementService {
}
public
ByteArrayOutputStream
generateOrderSettlementExcelBySku
(
SettlementRequestDto
settlementRequest
)
{
final
var
startDate
=
settlementRequest
.
getTimeStart
().
plusHours
(
8
).
toLocalDate
().
atStartOfDay
();
final
var
endDate
=
settlementRequest
.
getTimeEnd
().
plusHours
(
8
).
toLocalDate
().
plusDays
(
1
).
atStartOfDay
();
final
var
operatorLoginInfo
=
LoginContextHolder
.
getLoginInfo
();
...
...
@@ -124,7 +121,7 @@ public class SettlementServiceImpl implements SettlementService {
// 找出当天所有的订单
final
var
curOrderList
=
orderList
.
stream
()
.
filter
(
o
->
DateUtil
.
formatDateOfUtc
(
o
.
getCreatedAt
(),
DateUtil
.
YYYY_MM_DD_UTC
).
equals
(
date
))
.
filter
(
o
->
Objects
.
equals
(
DateUtil
.
formatDateOfUtc
(
o
.
getCreatedAt
(),
DateUtil
.
YYYY_MM_DD_UTC
),
date
))
.
collect
(
Collectors
.
toList
());
final
var
curOrderIds
=
curOrderList
.
stream
()
.
map
(
SingleClientCustomerOrderRpcResponse:
:
getId
)
...
...
@@ -216,8 +213,7 @@ public class SettlementServiceImpl implements SettlementService {
.
build
();
try
{
final
var
bytes
=
writeToExcelBySku
(
settlementDataDto
);
return
bytes
;
return
writeToExcelBySku
(
settlementDataDto
);
}
catch
(
IOException
e
)
{
throw
BusinessException
.
build
(
ErrorCodeEnum
.
GENERATE_EXCEL_ERROR
);
}
...
...
@@ -259,7 +255,7 @@ public class SettlementServiceImpl implements SettlementService {
for
(
Map
.
Entry
<
String
,
Map
<
String
,
List
<
SettlementMenuSkuDto
>>>
outerEntry
:
classifyOrders
.
entrySet
())
{
String
orderDate
=
outerEntry
.
getKey
();
Map
<
String
,
List
<
SettlementMenuSkuDto
>>
innerMap
=
outerEntry
.
getValue
();
Integer
curDateTotalRow
=
0
;
int
curDateTotalRow
=
0
;
for
(
Map
.
Entry
<
String
,
List
<
SettlementMenuSkuDto
>>
innerEntry
:
innerMap
.
entrySet
())
{
curDateTotalRow
+=
innerEntry
.
getValue
().
size
();
}
...
...
@@ -331,8 +327,9 @@ public class SettlementServiceImpl implements SettlementService {
final
var
startDate
=
settlementRequest
.
getTimeStart
().
plusHours
(
8
).
toLocalDate
().
atStartOfDay
();
final
var
endDate
=
settlementRequest
.
getTimeEnd
().
plusHours
(
8
).
toLocalDate
().
plusDays
(
1
).
atStartOfDay
();
final
var
operatorLoginInfo
=
LoginContextHolder
.
getLoginInfo
();
final
int
enterpriseId
=
LoginContextHolder
.
hasLogin
()
?
operatorLoginInfo
.
getEnterpriseId
()
:
settlementRequest
.
getEnterpriseId
();
final
var
queryOrderDto
=
QueryOrderByConditionDto
.
builder
()
.
enterpriseId
(
LoginContextHolder
.
hasLogin
()
?
operatorLoginInfo
.
getEnterpriseId
()
:
settlementRequest
.
getEnterpriseId
()
)
.
enterpriseId
(
enterpriseId
)
.
shouldFilterCreatedAtTimeStart
(
true
)
.
createdAtTimeStart
(
startDate
)
.
shouldFilterCreatedAtTimeEnd
(
true
)
...
...
@@ -356,12 +353,12 @@ public class SettlementServiceImpl implements SettlementService {
SingleClientCustomerOrderRpcResponse:
:
getMenuId
).
distinct
()
.
collect
(
Collectors
.
toList
());
final
var
menuList
=
menuServiceRpcClient
.
getMenusByIds
(
operatorLoginInfo
.
getEnterpriseId
()
,
menuIds
)
.
getMenusByIds
(
enterpriseId
,
menuIds
)
.
getResponsesList
();
final
var
menuDetailList
=
menuServiceRpcClient
.
queryMenuDetailsByMenuIds
(
operatorLoginInfo
.
getEnterpriseId
()
,
menuIds
).
getResponsesList
();
enterpriseId
,
menuIds
).
getResponsesList
();
//获取到所有的餐别
final
var
allMeals
=
mealServiceRpcClient
.
getAllMeals
(
operatorLoginInfo
.
getEnterpriseId
()
).
getResponsesList
();
final
var
allMeals
=
mealServiceRpcClient
.
getAllMeals
(
enterpriseId
).
getResponsesList
();
Map
<
String
,
Map
<
String
,
Map
<
String
,
List
<
SettlementMenuMealDto
>>>>
classifyOrders
=
new
HashMap
<>();
for
(
SingleMenuRpcResponse
menu:
menuList
)
{
...
...
@@ -414,7 +411,7 @@ public class SettlementServiceImpl implements SettlementService {
final
var
curMealDateSkuList
=
mealsMap
.
get
(
date
);
//找出当天所有的order details
final
var
curMealDateOrderDetails
=
curMealOrderDetails
.
stream
()
.
filter
(
o
->
DateUtil
.
formatDateOfUtc
(
o
.
getCreatedAt
(),
DateUtil
.
YYYY_MM_DD_UTC
).
equals
(
date
))
.
filter
(
o
->
Objects
.
equals
(
DateUtil
.
formatDateOfUtc
(
o
.
getCreatedAt
(),
DateUtil
.
YYYY_MM_DD_UTC
),
date
))
.
collect
(
Collectors
.
toList
());
for
(
SingleClientCustomerOrderDetailRpcResponse
detail:
curMealDateOrderDetails
)
{
final
var
settlementOrderDetail
=
SettlementMenuMealDto
.
builder
()
...
...
@@ -428,7 +425,7 @@ public class SettlementServiceImpl implements SettlementService {
}
}
final
var
client
=
inventoryServiceRpcClient
.
getClientById
(
operatorLoginInfo
.
getEnterpriseId
()
,
final
var
client
=
inventoryServiceRpcClient
.
getClientById
(
enterpriseId
,
settlementRequest
.
getClientId
()).
getClient
();
final
var
settlementDataByMealDto
=
SettlementDataByMealDto
.
builder
()
.
classifyOrders
(
classifyOrders
)
...
...
@@ -437,8 +434,7 @@ public class SettlementServiceImpl implements SettlementService {
.
endTime
(
settlementRequest
.
getTimeEnd
().
plusHours
(
8
))
.
build
();
try
{
final
var
bytes
=
writeToExcelByMeal
(
settlementDataByMealDto
);
return
bytes
;
return
writeToExcelByMeal
(
settlementDataByMealDto
);
}
catch
(
IOException
e
)
{
throw
BusinessException
.
build
(
ErrorCodeEnum
.
GENERATE_EXCEL_ERROR
);
}
...
...
@@ -503,10 +499,10 @@ public class SettlementServiceImpl implements SettlementService {
mealCell
.
setCellValue
(
mealName
);
columnNum
=
2
;
Integer
totalPrice
=
0
;
int
totalPrice
=
0
;
for
(
String
date:
dates
)
{
final
var
toWriteDateSkuList
=
skuMap
.
get
(
date
);
Integer
price
=
0
;
int
price
=
0
;
if
(!
toWriteDateSkuList
.
isEmpty
())
{
for
(
SettlementMenuMealDto
settlementMenuMealDto:
toWriteDateSkuList
)
{
price
+=
settlementMenuMealDto
.
getPrice
()
*
settlementMenuMealDto
.
getCount
();
...
...
Please
register
or
login
to post a comment