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-11-26 16:52:38 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
d1ab696976bd7f59086d747012bb3dbf9357d741
d1ab6969
1 parent
a98c1084
add kds
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
436 additions
and
56 deletions
src/main/java/com/infoloop/tianting/config/GrpcConfig.java
src/main/java/com/infoloop/tianting/config/SwaggerConfig.java
src/main/java/com/infoloop/tianting/constant/ConfigConstants.java
src/main/java/com/infoloop/tianting/controller/KdsController.java
src/main/java/com/infoloop/tianting/controller/OrderController.java
src/main/java/com/infoloop/tianting/model/common/OrderPageResult.java
src/main/java/com/infoloop/tianting/model/dto/KdsDTO.java
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
src/main/java/com/infoloop/tianting/model/dto/SettlementDTO.java
src/main/java/com/infoloop/tianting/service/KdsService.java
src/main/java/com/infoloop/tianting/service/client/EnterpriseResourceServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/impl/KdsServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/SettlementServiceImpl.java
src/main/java/com/infoloop/tianting/controller/SettlementController.java → src/main/java/com/infoloop/tianting/streamController/SettlementController.java
src/main/java/com/infoloop/tianting/utils/PageUtil.java
src/main/resources/application.properties
src/main/java/com/infoloop/tianting/config/GrpcConfig.java
View file @
d1ab696
...
...
@@ -9,6 +9,7 @@ import com.infoloop.tianting.clientcustomerorderservice.ClientCustomerOrderServi
import
com.infoloop.tianting.clientcustomerservice.ClientCustomerServiceRpcGrpc
;
import
com.infoloop.tianting.clientinventoryservice.TiantingClientInventoryServiceRpcGrpc
;
import
com.infoloop.tianting.deliveryruleservice.TiantingDeliveryRuleServiceRpcGrpc
;
import
com.infoloop.tianting.enterpriseresourcetagservice.EnterpriseResourceTagServiceRpcGrpc
;
import
com.infoloop.tianting.menuservice.MenuServiceRpcGrpc
;
import
com.infoloop.tianting.setmealscheduleservice.SetMealScheduleServiceRpcGrpc
;
import
com.tianting.infoloop.grpc.exampleservice.ExampleServiceRpcGrpc
;
...
...
@@ -39,6 +40,9 @@ import static com.infoloop.tianting.constant.ConfigConstants.CLIENT_INVENTORY_SE
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
DELIVERY_SERVICE_CHANNEL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
DELIVERY_SERVICE_RPC_PORT
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
DELIVERY_SERVICE_RPC_URL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
ENTERPRISE_RESOURCE_SERVICE_CHANNEL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
ENTERPRISE_RESOURCE_SERVICE_RPC_PORT
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
ENTERPRISE_RESOURCE_SERVICE_RPC_URL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
EXAMPLE_SERVICE_CHANNEL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
EXAMPLE_SERVICE_RPC_PORT
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
EXAMPLE_SERVICE_RPC_URL
;
...
...
@@ -256,6 +260,23 @@ public class GrpcConfig {
return
WOperatorServiceProtoRpcGrpc
.
newBlockingStub
(
channel
);
}
@Bean
(
ENTERPRISE_RESOURCE_SERVICE_CHANNEL
)
public
ManagedChannel
enterpriseResourceServiceChannel
(
@Value
(
ENTERPRISE_RESOURCE_SERVICE_RPC_URL
)
final
String
url
,
@Value
(
ENTERPRISE_RESOURCE_SERVICE_RPC_PORT
)
final
int
port
,
@Autowired
final
ClientInterceptor
clientInterceptor
)
{
return
NettyChannelBuilder
.
forAddress
(
url
,
port
)
.
idleTimeout
(
DEFAULT_TIMEOUT_DAYS
,
TimeUnit
.
DAYS
)
.
intercept
(
clientInterceptor
)
.
usePlaintext
()
.
maxInboundMessageSize
(
Integer
.
MAX_VALUE
)
.
build
();
}
@Bean
public
EnterpriseResourceTagServiceRpcGrpc
.
EnterpriseResourceTagServiceRpcBlockingStub
enterpriseResourceRpcBlockingStub
(
@Autowired
@Qualifier
(
ENTERPRISE_RESOURCE_SERVICE_CHANNEL
)
final
ManagedChannel
channel
)
{
return
EnterpriseResourceTagServiceRpcGrpc
.
newBlockingStub
(
channel
);
}
@Bean
(
MEIZHONGYIHE_SERVICE_CHANNEL
)
public
ManagedChannel
meiZhongYiHeServiceChannel
(
@Value
(
MEIZHONGYIHE_SERVICE_RPC_URL
)
final
String
url
,
@Value
(
MEIZHONGYIHE_SERVICE_RPC_PORT
)
final
int
port
,
...
...
src/main/java/com/infoloop/tianting/config/SwaggerConfig.java
View file @
d1ab696
package
com
.
infoloop
.
tianting
.
config
;
import
static
springfox
.
documentation
.
builders
.
RequestHandlerSelectors
.
basePackage
;
import
com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j
;
import
com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver
;
import
com.infoloop.tianting.constant.CommonConstants
;
...
...
@@ -59,7 +61,7 @@ public class SwaggerConfig {
.
apiInfo
(
apiInfo
())
.
groupName
(
groupName
)
.
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"com.infoloop.tianting.controller"
))
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"com.infoloop.tianting.controller"
)
.
or
(
RequestHandlerSelectors
.
basePackage
(
"com.infoloop.tianting.streamController"
))
)
.
paths
(
PathSelectors
.
any
())
.
build
()
//赋予插件体系
...
...
src/main/java/com/infoloop/tianting/constant/ConfigConstants.java
View file @
d1ab696
...
...
@@ -68,6 +68,10 @@ public interface ConfigConstants {
String
WOPERATOR_SERVICE_RPC_PORT
=
"${grpc.woperator-service.port}"
;
String
WOPERATOR_SERVICE_CHANNEL
=
"woperator-service-channel"
;
String
ENTERPRISE_RESOURCE_SERVICE_RPC_URL
=
"${grpc.enterprise-resource-service.url}"
;
String
ENTERPRISE_RESOURCE_SERVICE_RPC_PORT
=
"${grpc.enterprise-resource-service.port}"
;
String
ENTERPRISE_RESOURCE_SERVICE_CHANNEL
=
"enterprise-resource-service-channel"
;
String
MEIZHONGYIHE_SERVICE_RPC_URL
=
"${grpc.meizhongyihe-service.url}"
;
String
MEIZHONGYIHE_SERVICE_RPC_PORT
=
"${grpc.meizhongyihe-service.port}"
;
String
MEIZHONGYIHE_SERVICE_CHANNEL
=
"meizhongyihe-service-channel"
;
...
...
src/main/java/com/infoloop/tianting/controller/KdsController.java
View file @
d1ab696
package
com
.
infoloop
.
tianting
.
controller
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.dto.ClientLabelDTO
;
import
com.infoloop.tianting.model.dto.ClientLabelDTO.LabelDto
;
import
com.infoloop.tianting.model.dto.KdsDTO
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDto
;
import
com.infoloop.tianting.service.KdsService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
java.util.List
;
import
javax.validation.Valid
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.ResponseStatus
;
import
org.springframework.web.bind.annotation.RestController
;
@Api
(
tags
=
"KDS"
)
...
...
@@ -16,5 +29,20 @@ import org.springframework.web.bind.annotation.RestController;
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
KdsController
{
private
final
KdsService
kdsService
;
@ApiOperation
(
value
=
"kds按照菜品获取订单明细"
)
@PostMapping
(
"/kds/orderDetails/bySku"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
List
<
KdsOrderSkuDto
>
getOrderDetailBySku
(
@Valid
@RequestBody
KdsDTO
.
KdsOrderSkuQueryDto
queryDto
)
{
return
kdsService
.
getOrderDetailBySku
(
queryDto
);
}
@ApiOperation
(
value
=
"kds按照就餐点获取订单明细"
)
@PostMapping
(
"/kds/orderDetails/byLocation"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
List
<
KdsOrderLocationDto
>
getOrderDetailByLocation
(
@Valid
@RequestBody
KdsDTO
.
KdsOrderLocationQueryDto
queryDto
)
{
return
kdsService
.
getOrderDetailByLocation
(
queryDto
);
}
}
...
...
src/main/java/com/infoloop/tianting/controller/OrderController.java
View file @
d1ab696
...
...
@@ -40,7 +40,6 @@ import org.springframework.web.bind.annotation.RestController;
public
class
OrderController
{
private
final
OrderService
orderService
;
@SaIgnore
@ApiOperation
(
value
=
"根据customerId获取用户订单"
)
@GetMapping
(
"/orders/{customerId}"
)
@ResponseStatus
(
HttpStatus
.
OK
)
...
...
@@ -60,7 +59,6 @@ public class OrderController {
.
build
());
}
@SaIgnore
@ApiOperation
(
value
=
"根据orderId获取订单详情"
)
@GetMapping
(
"/orderDetails/{orderId}"
)
@ResponseStatus
(
HttpStatus
.
OK
)
...
...
src/main/java/com/infoloop/tianting/model/common/OrderPageResult.java
0 → 100644
View file @
d1ab696
package
com
.
infoloop
.
tianting
.
model
.
common
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderCountByStatusDto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
lombok.ToString
;
import
java.io.Serializable
;
import
java.util.List
;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@ApiModel
(
description
=
"订单分页返回参数"
)
public
final
class
OrderPageResult
<
T
>
extends
PageInfo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
6287755207385079404L
;
@ApiModelProperty
(
"总条数"
)
private
long
totalCount
;
@ApiModelProperty
(
"总页数"
)
private
long
totalPage
;
@ApiModelProperty
(
"数据结果集"
)
private
List
<
T
>
dataList
;
@ApiModelProperty
(
"不同状态的订单数量"
)
private
OrderCountByStatusDto
countByStatus
;
}
src/main/java/com/infoloop/tianting/model/dto/KdsDTO.java
View file @
d1ab696
package
com
.
infoloop
.
tianting
.
model
.
dto
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.ServeStatusEnum
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CustomerNotice
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.models.auth.In
;
import
java.util.List
;
...
...
@@ -16,14 +19,29 @@ public class KdsDTO {
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
description
=
"KdsOrderDto"
)
public
static
class
KdsOrderDto
{
@ApiModel
(
description
=
"KdsOrder
SkuDetail
Dto"
)
public
static
class
KdsOrder
SkuDetail
Dto
{
private
Integer
orderId
;
private
Integer
orderDetailId
;
private
String
tableCode
;
private
Integer
count
;
private
String
roomNo
;
private
String
remark
;
private
CustomerNotice
customerNotice
;
private
String
adjustSkuRemark
;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
description
=
"KdsOrderLocationDetailDto"
)
public
static
class
KdsOrderLocationDetailDto
{
private
Integer
orderDetailId
;
private
Integer
count
;
private
String
showName
;
private
String
adjustSkuRemark
;
private
ServeStatusEnum
serveStatus
;
}
@Data
...
...
@@ -34,6 +52,41 @@ public class KdsDTO {
public
static
class
KdsOrderSkuDto
{
private
String
showName
;
private
Integer
totalCount
;
private
List
<
KdsOrderDto
>
orderList
;
private
List
<
KdsOrderSkuDetailDto
>
orderList
;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
description
=
"KdsOrderLocationDto"
)
public
static
class
KdsOrderLocationDto
{
private
Integer
orderId
;
private
String
roomNo
;
private
String
tableCode
;
private
Integer
totalCount
;
private
String
remark
;
private
CustomerNotice
customerNotice
;
private
List
<
KdsOrderLocationDetailDto
>
orderDetailList
;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
description
=
"KdsOrderSkuDto"
)
public
static
class
KdsOrderSkuQueryDto
{
private
ServeStatusEnum
serveStatus
;
private
Integer
categoryId
;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
description
=
"KdsOrderLocationQueryDto"
)
public
static
class
KdsOrderLocationQueryDto
{
private
OrderStatusEnum
orderStatus
;
private
Integer
categoryId
;
}
}
...
...
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
View file @
d1ab696
...
...
@@ -61,6 +61,24 @@ public class OrderDbDTO {
private
String
keyword
;
}
// enum OrderStatusEnum {
// UNKNOWN_STATUS = 0;
// TO_PREPARE = 1;
// PREPARING = 2;
// PARTIAL_SERVED = 3;
// ALL_SERVED = 4;
// ORDER_CANCELED = 5;
// }
@Data
@Builder
@ApiModel
(
description
=
"订单不同状态的数量Dto"
)
public
static
class
OrderCountByStatusDto
{
private
Integer
toPrepareCount
;
private
Integer
preparingCount
;
private
Integer
allServedCount
;
private
Integer
canceledCount
;
}
@Data
@Builder
@ApiModel
(
description
=
"查询订单Dto"
)
...
...
@@ -90,6 +108,18 @@ public class OrderDbDTO {
private
Boolean
shouldFilterCreatedAtTimeEnd
=
false
;
@Builder
.
Default
private
LocalDateTime
createdAtTimeEnd
=
LocalDateTime
.
now
();
@Builder
.
Default
private
Boolean
shouldFilterClientIds
=
false
;
@Builder
.
Default
private
List
<
Integer
>
clientIds
=
new
ArrayList
<>();
@Builder
.
Default
private
Boolean
shouldFilterStallIds
=
false
;
@Builder
.
Default
private
List
<
Integer
>
stallIds
=
new
ArrayList
<>();
@Builder
.
Default
private
Boolean
shouldFilterStatus
=
false
;
@Builder
.
Default
private
OrderStatusEnum
status
=
OrderStatusEnum
.
UNKNOWN_STATUS
;
}
@Data
...
...
src/main/java/com/infoloop/tianting/model/dto/SettlementDTO.java
View file @
d1ab696
...
...
@@ -27,6 +27,7 @@ public class SettlementDTO {
@ApiModel
(
description
=
"SettlementRequestDto"
)
public
static
class
SettlementMenuSkuDto
{
private
String
skuCode
;
private
String
showName
;
private
Integer
count
;
private
Integer
price
;
...
...
src/main/java/com/infoloop/tianting/service/KdsService.java
View file @
d1ab696
package
com
.
infoloop
.
tianting
.
service
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationQueryDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuQueryDto
;
import
java.util.List
;
public
interface
KdsService
{
List
<
KdsOrderSkuDto
>
getOrderDetailBySku
(
KdsOrderSkuQueryDto
queryDto
);
List
<
KdsOrderLocationDto
>
getOrderDetailByLocation
(
KdsOrderLocationQueryDto
queryDto
);
}
...
...
src/main/java/com/infoloop/tianting/service/client/EnterpriseResourceServiceRpcClient.java
0 → 100644
View file @
d1ab696
package
com
.
infoloop
.
tianting
.
service
.
client
;
import
com.infoloop.tianting.enterpriseresourcetagservice.EnterpriseResourceTagServiceRpcGrpc
;
import
com.infoloop.tianting.enterpriseresourcetagservice.UserTagsAndResourcesGetRequest
;
import
com.infoloop.tianting.enterpriseresourcetagservice.UserTagsAndResourcesGetResponse
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
EnterpriseResourceServiceRpcClient
{
private
final
EnterpriseResourceTagServiceRpcGrpc
.
EnterpriseResourceTagServiceRpcBlockingStub
enterpriseResourceTagServiceRpcBlockingStub
;
public
UserTagsAndResourcesGetResponse
getUserResources
(
Integer
enterpriseId
,
Integer
userId
)
{
final
var
request
=
UserTagsAndResourcesGetRequest
.
newBuilder
()
.
setSubjectId
(
enterpriseId
)
.
setUserId
(
userId
)
.
build
();
return
enterpriseResourceTagServiceRpcBlockingStub
.
getUserResources
(
request
);
}
}
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
View file @
d1ab696
...
...
@@ -75,6 +75,12 @@ public class OrderServiceRpcClient {
.
setCreatedAtStart
(
queryOrderDto
.
getCreatedAtTimeStart
().
toInstant
(
ZoneOffset
.
UTC
).
toEpochMilli
())
.
setShouldFilterCreatedAtStart
(
queryOrderDto
.
getShouldFilterCreatedAtTimeEnd
())
.
setCreatedAtEnd
(
queryOrderDto
.
getCreatedAtTimeEnd
().
toInstant
(
ZoneOffset
.
UTC
).
toEpochMilli
())
.
setShouldFilterClientIds
(
queryOrderDto
.
getShouldFilterClientIds
())
.
addAllClientIds
(
queryOrderDto
.
getClientIds
())
.
setShouldFilterStallIds
(
queryOrderDto
.
getShouldFilterStallIds
())
.
addAllStallIds
(
queryOrderDto
.
getStallIds
())
.
setShouldFilterStatus
(
queryOrderDto
.
getShouldFilterStatus
())
.
setStatus
(
queryOrderDto
.
getStatus
())
.
build
();
return
orderServiceRpcBlockingStub
.
queryClientCustomerOrdersByCondition
(
request
).
getResponsesList
();
}
...
...
src/main/java/com/infoloop/tianting/service/impl/KdsServiceImpl.java
View file @
d1ab696
...
...
@@ -3,10 +3,16 @@ package com.infoloop.tianting.service.impl;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderDetailRpcResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse
;
import
com.infoloop.tianting.context.LoginContextHolder
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDetailDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationQueryDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDetailDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuQueryDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CustomerNotice
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto
;
import
com.infoloop.tianting.service.KdsService
;
import
com.infoloop.tianting.service.client.EnterpriseResourceServiceRpcClient
;
import
com.infoloop.tianting.service.client.MenuServiceRpcClient
;
import
com.infoloop.tianting.service.client.OrderServiceRpcClient
;
import
java.time.LocalDate
;
...
...
@@ -16,7 +22,6 @@ import java.util.List;
import
java.util.stream.Collectors
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.hssf.record.DVALRecord
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -27,8 +32,10 @@ public class KdsServiceImpl implements KdsService {
private
final
OrderServiceRpcClient
orderServiceRpcClient
;
private
final
MenuServiceRpcClient
menuServiceRpcClient
;
private
final
EnterpriseResourceServiceRpcClient
enterpriseResourceServiceRpcClient
;
public
void
getOrderDetailBySku
()
{
@Override
public
List
<
KdsOrderSkuDto
>
getOrderDetailBySku
(
KdsOrderSkuQueryDto
queryDto
)
{
// 获取当日所有的订单 和 订单明细
LocalDate
today
=
LocalDate
.
now
();
...
...
@@ -37,8 +44,16 @@ public class KdsServiceImpl implements KdsService {
LocalDateTime
tomorrowZero
=
tomorrow
.
atStartOfDay
();
final
var
operatorLoginInfo
=
LoginContextHolder
.
getLoginInfo
();
final
var
userResource
=
enterpriseResourceServiceRpcClient
.
getUserResources
(
operatorLoginInfo
.
getEnterpriseId
(),
operatorLoginInfo
.
getId
());
final
var
queryOrderDto
=
QueryOrderByConditionDto
.
builder
()
.
enterpriseId
(
operatorLoginInfo
.
getEnterpriseId
())
.
shouldFilterClientIds
(
true
)
.
clientIds
(
userResource
.
getClientIdsList
())
.
shouldFilterStallIds
(
true
)
.
stallIds
(
userResource
.
getStallIdsList
())
.
shouldFilterCreatedAtTimeStart
(
true
)
.
createdAtTimeStart
(
todayZero
)
.
shouldFilterCreatedAtTimeEnd
(
true
)
...
...
@@ -50,22 +65,25 @@ public class KdsServiceImpl implements KdsService {
.
distinct
()
.
collect
(
Collectors
.
toList
());
final
var
orderDetailList
=
orderServiceRpcClient
.
getOrderDetailsByOrderIds
(
orderIds
);
final
var
filteredOrderDetailList
=
orderDetailList
.
stream
()
.
filter
(
od
->
od
.
getServeStatus
()
==
queryDto
.
getServeStatus
()
&&
od
.
getCategoryId
()
==
queryDto
.
getCategoryId
())
.
collect
(
Collectors
.
toList
());
//在所有的orderDetail里找出所有所有不同的menuDetailId,然后根据menuDetailId进行分类
final
var
menuDetailIds
=
o
rderDetailList
.
stream
()
final
var
menuDetailIds
=
filteredO
rderDetailList
.
stream
()
.
map
(
SingleClientCustomerOrderDetailRpcResponse:
:
getMenuDetailId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
List
<
KdsOrderSkuDto
>
kdsOrderSkuList
=
new
ArrayList
<>();
for
(
Integer
menuDetailId:
menuDetailIds
)
{
// 找出该menuDetailId 的所有orderDetail
final
var
curOrderDetails
=
o
rderDetailList
.
stream
()
final
var
curOrderDetails
=
filteredO
rderDetailList
.
stream
()
.
filter
(
d
->
d
.
getMenuDetailId
()
==
menuDetailId
)
.
collect
(
Collectors
.
toList
());
final
var
totalCount
=
curOrderDetails
.
stream
()
.
mapToInt
(
SingleClientCustomerOrderDetailRpcResponse:
:
getCount
)
.
sum
();
List
<
KdsOrderDto
>
kdsOrders
=
new
ArrayList
<>();
List
<
KdsOrder
SkuDetail
Dto
>
kdsOrders
=
new
ArrayList
<>();
for
(
SingleClientCustomerOrderDetailRpcResponse
detail:
curOrderDetails
)
{
final
var
order
=
orderList
.
stream
()
.
filter
(
o
->
o
.
getId
()
==
detail
.
getOrderId
())
...
...
@@ -73,13 +91,18 @@ public class KdsServiceImpl implements KdsService {
if
(
order
.
isEmpty
())
{
continue
;
}
final
var
kdsOrder
=
KdsOrderDto
.
builder
()
final
var
kdsOrder
=
KdsOrder
SkuDetail
Dto
.
builder
()
.
count
(
detail
.
getCount
())
.
orderDetailId
(
detail
.
getId
())
.
remark
(
order
.
get
().
getRemark
())
.
orderId
(
order
.
get
().
getId
())
.
roomNo
(
order
.
get
().
getRoomNo
())
.
tableCode
(
order
.
get
().
getTableCode
())
.
customerNotice
(
CustomerNotice
.
builder
()
.
doctors
(
order
.
get
().
getCustomerNoticeJson
().
getDoctorsList
())
.
avoids
(
order
.
get
().
getCustomerNoticeJson
().
getAvoidsList
())
.
build
())
.
adjustSkuRemark
(
detail
.
getAdjustSkuRemark
())
.
build
();
kdsOrders
.
add
(
kdsOrder
);
}
...
...
@@ -93,9 +116,82 @@ public class KdsServiceImpl implements KdsService {
}
return
kdsOrderSkuList
;
}
public
List
<
KdsOrderLocationDto
>
getOrderDetailByLocation
(
KdsOrderLocationQueryDto
queryDto
)
{
// 获取当日所有的订单 和 订单明细
LocalDate
today
=
LocalDate
.
now
();
LocalDateTime
todayZero
=
today
.
atStartOfDay
();
LocalDate
tomorrow
=
today
.
plusDays
(
1
);
LocalDateTime
tomorrowZero
=
tomorrow
.
atStartOfDay
();
final
var
operatorLoginInfo
=
LoginContextHolder
.
getLoginInfo
();
final
var
userResource
=
enterpriseResourceServiceRpcClient
.
getUserResources
(
operatorLoginInfo
.
getEnterpriseId
(),
operatorLoginInfo
.
getId
());
final
var
queryOrderDto
=
QueryOrderByConditionDto
.
builder
()
.
enterpriseId
(
operatorLoginInfo
.
getEnterpriseId
())
.
shouldFilterClientIds
(
true
)
.
clientIds
(
userResource
.
getClientIdsList
())
.
shouldFilterStallIds
(
true
)
.
stallIds
(
userResource
.
getStallIdsList
())
.
shouldFilterCreatedAtTimeStart
(
true
)
.
createdAtTimeStart
(
todayZero
)
.
shouldFilterCreatedAtTimeEnd
(
true
)
.
createdAtTimeEnd
(
tomorrowZero
)
.
shouldFilterStatus
(
true
)
.
status
(
queryDto
.
getOrderStatus
())
.
build
();
final
var
orderList
=
orderServiceRpcClient
.
getOrdersByCondition
(
queryOrderDto
);
List
<
Integer
>
orderIds
=
orderList
.
stream
()
.
map
(
SingleClientCustomerOrderRpcResponse:
:
getId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
final
var
orderDetailList
=
orderServiceRpcClient
.
getOrderDetailsByOrderIds
(
orderIds
);
final
var
filteredOrderDetailList
=
orderDetailList
.
stream
()
.
filter
(
od
->
od
.
getCategoryId
()
==
queryDto
.
getCategoryId
())
.
collect
(
Collectors
.
toList
());
//在所有的orderDetail里找出所有所有不同的menuDetailId,然后根据menuDetailId进行分类
final
var
menuDetailIds
=
filteredOrderDetailList
.
stream
()
.
map
(
SingleClientCustomerOrderDetailRpcResponse:
:
getMenuDetailId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
List
<
KdsOrderLocationDto
>
kdsOrderLocationList
=
new
ArrayList
<>();
for
(
SingleClientCustomerOrderRpcResponse
order:
orderList
)
{
final
var
curOrderDetails
=
filteredOrderDetailList
.
stream
()
.
filter
(
d
->
d
.
getOrderId
()
==
order
.
getId
())
.
collect
(
Collectors
.
toList
());
final
var
kdsOrderDetails
=
curOrderDetails
.
stream
().
map
(
od
->
KdsOrderLocationDetailDto
.
builder
()
.
adjustSkuRemark
(
od
.
getAdjustSkuRemark
())
.
count
(
od
.
getCount
())
.
orderDetailId
(
od
.
getId
())
.
serveStatus
(
od
.
getServeStatus
())
.
showName
(
od
.
getShowName
())
.
build
()
).
collect
(
Collectors
.
toList
());
final
var
kdsOrder
=
KdsOrderLocationDto
.
builder
()
.
totalCount
(
order
.
getTotalNum
())
.
remark
(
order
.
getRemark
())
.
orderId
(
order
.
getId
())
.
roomNo
(
order
.
getRoomNo
())
.
tableCode
(
order
.
getTableCode
())
.
customerNotice
(
CustomerNotice
.
builder
()
.
doctors
(
order
.
getCustomerNoticeJson
().
getDoctorsList
())
.
avoids
(
order
.
getCustomerNoticeJson
().
getAvoidsList
())
.
build
())
.
orderDetailList
(
kdsOrderDetails
)
.
build
();
kdsOrderLocationList
.
add
(
kdsOrder
);
}
return
kdsOrderLocationList
;
}
...
...
src/main/java/com/infoloop/tianting/service/impl/SettlementServiceImpl.java
View file @
d1ab696
...
...
@@ -7,6 +7,7 @@ import com.infoloop.tianting.exception.ClientEndExceptions.BusinessException;
import
com.infoloop.tianting.exception.ErrorCodeEnum
;
import
com.infoloop.tianting.menuservice.SingleMenuDetailRpcResponse
;
import
com.infoloop.tianting.menuservice.SingleMenuRpcResponse
;
import
com.infoloop.tianting.model.common.ResponseResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto
;
import
com.infoloop.tianting.model.dto.SettlementDTO.SettlementMenuSkuDto
;
import
com.infoloop.tianting.model.dto.SettlementDTO.SettlementRequestDto
;
...
...
@@ -14,6 +15,7 @@ import com.infoloop.tianting.service.OrderService;
import
com.infoloop.tianting.service.SettlementService
;
import
com.infoloop.tianting.service.client.MenuServiceRpcClient
;
import
com.infoloop.tianting.service.client.OrderServiceRpcClient
;
import
com.infoloop.tianting.service.client.SkuServiceRpcClient
;
import
com.infoloop.tianting.utils.DateUtil
;
import
java.io.ByteArrayOutputStream
;
import
java.io.FileOutputStream
;
...
...
@@ -41,6 +43,7 @@ import org.springframework.stereotype.Service;
public
class
SettlementServiceImpl
implements
SettlementService
{
private
final
OrderServiceRpcClient
orderServiceRpcClient
;
private
final
MenuServiceRpcClient
menuServiceRpcClient
;
private
final
SkuServiceRpcClient
skuServiceRpcClient
;
@Override
public
ByteArrayOutputStream
generateOrderSettlementExcel
(
SettlementRequestDto
settlementRequest
)
{
...
...
@@ -58,18 +61,27 @@ public class SettlementServiceImpl implements SettlementService {
SingleClientCustomerOrderRpcResponse:
:
getId
).
distinct
()
.
collect
(
Collectors
.
toList
());
final
var
orderDetailList
=
orderServiceRpcClient
.
getOrderDetailsByOrderIds
(
orderIds
);
List
<
Integer
>
skuIds
=
orderDetailList
.
stream
()
.
map
(
SingleClientCustomerOrderDetailRpcResponse:
:
getSkuId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
final
var
skus
=
skuServiceRpcClient
.
getDishSkusByIds
(
skuIds
).
getResponseList
();
List
<
Integer
>
menuIds
=
orderList
.
stream
().
map
(
SingleClientCustomerOrderRpcResponse:
:
getMenuId
).
distinct
()
.
collect
(
Collectors
.
toList
());
final
var
menuList
=
menuServiceRpcClient
.
getMenusByIds
(
operatorLoginInfo
.
getEnterpriseId
(),
menuIds
);
final
var
menuList
=
menuServiceRpcClient
.
getMenusByIds
(
operatorLoginInfo
.
getEnterpriseId
(),
menuIds
)
.
getResponsesList
();
final
var
menuDetailList
=
menuServiceRpcClient
.
queryMenuDetailsByMenuIds
(
operatorLoginInfo
.
getEnterpriseId
(),
menuIds
).
getResponsesList
();
Map
<
String
,
Map
<
Integer
,
List
<
SettlementMenuSkuDto
>>>
classifyOrders
=
new
HashMap
<>();
Map
<
String
,
Map
<
String
,
List
<
SettlementMenuSkuDto
>>>
classifyOrders
=
new
HashMap
<>();
//找出所有需要的日期
final
var
dates
=
orderList
.
stream
()
.
map
(
o
->
DateUtil
.
formatDate
(
o
.
getCreatedAt
(),
DateUtil
.
YYYY_MM_DD
))
.
distinct
()
.
collect
(
Collectors
.
toList
());
for
(
String
date:
dates
)
{
...
...
@@ -89,10 +101,16 @@ public class SettlementServiceImpl implements SettlementService {
// 找出当天已点的所有餐单
final
var
curMenuIds
=
curOrderList
.
stream
()
.
map
(
SingleClientCustomerOrderRpcResponse:
:
getMenuId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
for
(
Integer
curMenuId:
curMenuIds
)
{
if
(!
menusMap
.
containsKey
(
curMenuId
))
{
menusMap
.
put
(
curMenuId
,
new
ArrayList
<>());
final
var
curMenu
=
menuList
.
stream
().
filter
(
m
->
m
.
getId
()
==
curMenuId
).
findFirst
();
if
(
curMenu
.
isEmpty
())
{
continue
;
}
final
var
curMenuName
=
curMenu
.
get
().
getName
();
if
(!
menusMap
.
containsKey
(
curMenuName
))
{
menusMap
.
put
(
curMenuName
,
new
ArrayList
<>());
}
final
var
menuSkuList
=
new
ArrayList
<
SettlementMenuSkuDto
>();
// 找出当天餐单所有的菜品
...
...
@@ -118,7 +136,17 @@ public class SettlementServiceImpl implements SettlementService {
.
map
(
SingleClientCustomerOrderDetailRpcResponse:
:
getCount
)
.
collect
(
Collectors
.
toList
());
int
countTotal
=
countList
.
stream
().
mapToInt
(
Integer:
:
intValue
).
sum
();
if
(
countTotal
<=
0
)
{
continue
;
}
// 找出该sku的code
final
var
curSku
=
skus
.
stream
().
filter
(
s
->
s
.
getId
()
==
m
.
getSkuId
()).
findFirst
();
String
skuCode
=
""
;
if
(
curSku
.
isPresent
())
{
skuCode
=
curSku
.
get
().
getCode
();
}
final
var
settlementMenuSku
=
SettlementMenuSkuDto
.
builder
()
.
skuCode
(
skuCode
)
.
count
(
countTotal
)
.
showName
(
m
.
getShowName
())
.
price
(
m
.
getPrice
())
...
...
@@ -127,8 +155,7 @@ public class SettlementServiceImpl implements SettlementService {
menuSkuList
.
add
(
settlementMenuSku
);
}
menusMap
.
get
(
curMenuId
).
addAll
(
menuSkuList
);
menusMap
.
get
(
curMenuName
).
addAll
(
menuSkuList
);
}
}
...
...
@@ -142,60 +169,88 @@ public class SettlementServiceImpl implements SettlementService {
}
public
static
ByteArrayOutputStream
writeToExcel
(
Map
<
String
,
Map
<
Integer
,
List
<
SettlementMenuSkuDto
>>>
classifyOrders
)
public
static
ByteArrayOutputStream
writeToExcel
(
Map
<
String
,
Map
<
String
,
List
<
SettlementMenuSkuDto
>>>
classifyOrders
)
throws
IOException
{
Workbook
workbook
=
new
XSSFWorkbook
();
Sheet
sheet
=
workbook
.
createSheet
(
"订单数据"
);
int
rowNum
=
0
;
for
(
Map
.
Entry
<
String
,
Map
<
Integer
,
List
<
SettlementMenuSkuDto
>>>
outerEntry
:
classifyOrders
.
entrySet
())
{
Row
titleRow
=
sheet
.
createRow
(
rowNum
++);
Cell
dateTitleCell
=
titleRow
.
createCell
(
0
);
dateTitleCell
.
setCellValue
(
"点餐日期"
);
Cell
menuTitleCell
=
titleRow
.
createCell
(
1
);
menuTitleCell
.
setCellValue
(
"餐单名称"
);
Cell
skuCodeTitleCell
=
titleRow
.
createCell
(
2
);
skuCodeTitleCell
.
setCellValue
(
"菜品编号"
);
Cell
skuNameTitleCell
=
titleRow
.
createCell
(
3
);
skuNameTitleCell
.
setCellValue
(
"菜品名称"
);
Cell
skuPriceTitleCell
=
titleRow
.
createCell
(
4
);
skuPriceTitleCell
.
setCellValue
(
"单价"
);
Cell
skuCountTitleCell
=
titleRow
.
createCell
(
5
);
skuCountTitleCell
.
setCellValue
(
"数量"
);
Cell
skuTotalPriceTitleCell
=
titleRow
.
createCell
(
6
);
skuTotalPriceTitleCell
.
setCellValue
(
"合计金额"
);
for
(
Map
.
Entry
<
String
,
Map
<
String
,
List
<
SettlementMenuSkuDto
>>>
outerEntry
:
classifyOrders
.
entrySet
())
{
String
orderDate
=
outerEntry
.
getKey
();
Map
<
Integer
,
List
<
SettlementMenuSkuDto
>>
innerMap
=
outerEntry
.
getValue
();
Map
<
String
,
List
<
SettlementMenuSkuDto
>>
innerMap
=
outerEntry
.
getValue
();
Integer
curDateTotalRow
=
0
;
for
(
Map
.
Entry
<
String
,
List
<
SettlementMenuSkuDto
>>
innerEntry
:
innerMap
.
entrySet
())
{
curDateTotalRow
+=
innerEntry
.
getValue
().
size
();
}
// 写入日期列并合并单元格
int
startRowForDate
=
rowNum
;
for
(
int
i
=
0
;
i
<
innerMap
.
size
()
*
2
;
i
++)
{
for
(
int
i
=
0
;
i
<
curDateTotalRow
;
i
++)
{
Row
dateRow
=
sheet
.
createRow
(
rowNum
++);
Cell
dateCell
=
dateRow
.
createCell
(
0
);
dateCell
.
setCellValue
(
orderDate
);
}
int
endRowForDate
=
rowNum
-
1
;
if
(
endRowForDate
>
=
startRowForDate
)
{
CellRangeAddress
r
egion
=
new
CellRangeAddress
(
startRowForDate
,
endRowForDate
,
0
,
0
);
sheet
.
addMergedRegion
(
r
egion
);
if
(
endRowForDate
>
startRowForDate
)
{
CellRangeAddress
dateR
egion
=
new
CellRangeAddress
(
startRowForDate
,
endRowForDate
,
0
,
0
);
sheet
.
addMergedRegion
(
dateR
egion
);
}
for
(
Map
.
Entry
<
Integer
,
List
<
SettlementMenuSkuDto
>>
innerEntry
:
innerMap
.
entrySet
())
{
int
menuId
=
innerEntry
.
getKey
();
rowNum
=
startRowForDate
;
for
(
Map
.
Entry
<
String
,
List
<
SettlementMenuSkuDto
>>
innerEntry
:
innerMap
.
entrySet
())
{
String
menuName
=
innerEntry
.
getKey
();
List
<
SettlementMenuSkuDto
>
skuList
=
innerEntry
.
getValue
();
// 写入菜单ID列并合并单元格
int
startRowForMenu
=
rowNum
;
for
(
int
i
=
0
;
i
<
skuList
.
size
();
i
++)
{
Row
menuRow
=
sheet
.
create
Row
(
rowNum
++);
Row
menuRow
=
sheet
.
get
Row
(
rowNum
++);
Cell
menuCell
=
menuRow
.
createCell
(
1
);
menuCell
.
setCellValue
(
menu
Id
);
menuCell
.
setCellValue
(
menu
Name
);
}
int
endRowForMenu
=
rowNum
-
1
;
if
(
endRowForMenu
>
=
startRowForMenu
)
{
CellRangeAddress
r
egion
=
new
CellRangeAddress
(
startRowForMenu
,
endRowForMenu
,
1
,
1
);
sheet
.
addMergedRegion
(
r
egion
);
if
(
endRowForMenu
>
startRowForMenu
)
{
CellRangeAddress
menuR
egion
=
new
CellRangeAddress
(
startRowForMenu
,
endRowForMenu
,
1
,
1
);
sheet
.
addMergedRegion
(
menuR
egion
);
}
// 写入SKU列
rowNum
=
startRowForMenu
;
for
(
SettlementMenuSkuDto
skuDto
:
skuList
)
{
Row
skuRow
=
sheet
.
createRow
(
rowNum
++);
Cell
skuCell
=
skuRow
.
createCell
(
2
);
skuCell
.
setCellValue
(
skuDto
.
getShowName
());
skuCell
.
setCellValue
(
skuDto
.
getPrice
());
skuCell
.
setCellValue
(
skuDto
.
getCount
());
skuCell
.
setCellValue
(
skuDto
.
getTotalPrice
());
Row
skuRow
=
sheet
.
getRow
(
rowNum
++);
Cell
skuCodeCell
=
skuRow
.
createCell
(
2
);
skuCodeCell
.
setCellValue
(
skuDto
.
getSkuCode
());
Cell
showNameCell
=
skuRow
.
createCell
(
3
);
showNameCell
.
setCellValue
(
skuDto
.
getShowName
());
Cell
priceCell
=
skuRow
.
createCell
(
4
);
priceCell
.
setCellValue
((
double
)
skuDto
.
getPrice
()/
100
);
Cell
countCell
=
skuRow
.
createCell
(
5
);
countCell
.
setCellValue
(
skuDto
.
getCount
());
Cell
totalPriceCell
=
skuRow
.
createCell
(
6
);
totalPriceCell
.
setCellValue
((
double
)
skuDto
.
getTotalPrice
()/
100
);
}
}
}
// 自动调整列宽
for
(
int
i
=
0
;
i
<
6
;
i
++)
{
for
(
int
i
=
0
;
i
<
7
;
i
++)
{
sheet
.
autoSizeColumn
(
i
);
}
...
...
src/main/java/com/infoloop/tianting/
c
ontroller/SettlementController.java
→
src/main/java/com/infoloop/tianting/
streamC
ontroller/SettlementController.java
View file @
d1ab696
package
com
.
infoloop
.
tianting
.
c
ontroller
;
package
com
.
infoloop
.
tianting
.
streamC
ontroller
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.common.ResponseResult
;
import
com.infoloop.tianting.model.dto.SettlementDTO.SettlementRequestDto
;
import
com.infoloop.tianting.service.SettlementService
;
import
io.swagger.annotations.Api
;
...
...
@@ -30,20 +31,19 @@ import org.springframework.web.bind.annotation.RestController;
public
class
SettlementController
{
private
final
SettlementService
settlementService
;
@ApiOperation
(
value
=
"结算账单生成excel"
)
@PostMapping
(
"/settlement/generate-excel"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
ResponseEntity
<
byte
[]>
settlementGenerateExcel
(
@Valid
@RequestBody
SettlementRequestDto
settlementRequestDto
)
{
ByteArrayOutputStream
outputStream
=
settlementService
.
generateOrderSettlementExcel
(
settlementRequestDto
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_OCTET_STREAM
);
headers
.
setContentDispositionFormData
(
"attachment"
,
"订单数据.xlsx"
);
return
ResponseEntity
.
ok
()
.
headers
(
headers
)
.
body
(
outputStream
.
toByteArray
());
}
@ApiOperation
(
value
=
"结算账单生成excel"
)
@PostMapping
(
"/settlement/generate-excel"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
ResponseEntity
<
byte
[]>
settlementGenerateExcel
(
@Valid
@RequestBody
SettlementRequestDto
settlementRequestDto
)
{
ByteArrayOutputStream
outputStream
=
settlementService
.
generateOrderSettlementExcel
(
settlementRequestDto
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_OCTET_STREAM
);
headers
.
setContentDispositionFormData
(
"attachment"
,
"订单数据.xlsx"
);
return
ResponseEntity
.
ok
()
.
headers
(
headers
)
.
body
(
outputStream
.
toByteArray
());
}
}
...
...
src/main/java/com/infoloop/tianting/utils/PageUtil.java
View file @
d1ab696
package
com
.
infoloop
.
tianting
.
utils
;
import
com.infoloop.tianting.model.common.OrderPageResult
;
import
com.infoloop.tianting.model.common.PageResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderCountByStatusDto
;
import
java.util.LinkedList
;
import
java.util.List
;
...
...
@@ -42,4 +44,15 @@ public class PageUtil {
pageRet
.
setTotalPage
(
pages
);
return
pageRet
;
}
public
static
<
T
>
OrderPageResult
<
T
>
from
(
List
<
T
>
list
,
long
totalCount
,
long
pages
,
int
pageNo
,
int
pageSize
,
OrderCountByStatusDto
countByStatus
)
{
OrderPageResult
<
T
>
pageRet
=
new
OrderPageResult
<
T
>();
pageRet
.
setTotalCount
(
totalCount
);
pageRet
.
setDataList
(
list
);
pageRet
.
setPageNo
(
pageNo
);
pageRet
.
setPageSize
(
pageSize
);
pageRet
.
setTotalPage
(
pages
);
pageRet
.
setCountByStatus
(
countByStatus
);
return
pageRet
;
}
}
...
...
src/main/resources/application.properties
View file @
d1ab696
...
...
@@ -67,6 +67,9 @@ grpc.operator-service.port=3031
grpc.woperator-
service.url
=
47.101.193.136
grpc.woperator-
service.port
=
3028
grpc.enterprise-resource-
service.url
=
47.101.193.136
grpc.enterprise-resource-
service.port
=
3028
grpc.meizhongyihe-
service.url
=
47.101.193.136
grpc.meizhongyihe-
service.port
=
3040
...
...
Please
register
or
login
to post a comment