Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
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
order-group-application
order-group
Commits
9bd2415e
Commit
9bd2415e
authored
Sep 18, 2021
by
陈斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单开票
parent
b7bebd44
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
8 deletions
+14
-8
order-application-service/src/main/java/cn/freemud/adapter/OrderInvoiceAdapter.java
+13
-8
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
No files found.
order-application-service/src/main/java/cn/freemud/adapter/OrderInvoiceAdapter.java
View file @
9bd2415e
...
@@ -11,12 +11,14 @@ import cn.freemud.enums.ResponseResult;
...
@@ -11,12 +11,14 @@ import cn.freemud.enums.ResponseResult;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.NewOrderStatus
;
import
com.freemud.application.sdk.api.ordercenter.enums.NewOrderStatus
;
import
org.apache.commons.collections4.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
java.util.UUID
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
public
class
OrderInvoiceAdapter
{
public
class
OrderInvoiceAdapter
{
...
@@ -46,25 +48,28 @@ public class OrderInvoiceAdapter {
...
@@ -46,25 +48,28 @@ public class OrderInvoiceAdapter {
if
(
orders
.
size
()
>
ORDER_INVOICE_NUM_LIMIT
){
if
(
orders
.
size
()
>
ORDER_INVOICE_NUM_LIMIT
){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_INVOINVE_LIMIT_30
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_INVOINVE_LIMIT_30
);
}
}
Long
totalActualPayAmount
=
orders
.
stream
()
// 【3】 过滤订单状态&&实付金额是否符合开票原则
.
filter
(
x
->
canOpenOrderInvoiceStatus
.
contains
(
x
.
getStatus
()))
List
<
OrderBeanV1
>
orderBeanV1List
=
orders
.
stream
().
filter
(
x
->
canOpenOrderInvoiceStatus
.
contains
(
x
.
getStatusV2
()))
.
filter
(
x
->
x
.
getActualPayAmount
()
!=
null
)
.
filter
(
x
->
x
.
getActualPayAmount
()
!=
null
).
collect
(
Collectors
.
toList
());
.
map
(
e
->
e
.
getActualPayAmount
()).
reduce
(
Long:
:
sum
).
get
();
if
(
CollectionUtils
.
isEmpty
(
orderBeanV1List
)){
// 【3】 实际支付金额为0,不能开票
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_INVOICE_OPEN_ERR
);
}
Long
totalActualPayAmount
=
orderBeanV1List
.
stream
().
map
(
e
->
e
.
getActualPayAmount
()).
reduce
(
Long:
:
sum
).
get
();
// 【4】 实际支付金额为0,不能开票
if
(
null
==
totalActualPayAmount
||
totalActualPayAmount
==
0
){
if
(
null
==
totalActualPayAmount
||
totalActualPayAmount
==
0
){
return
ResponseUtil
.
error
(
ResponseResult
.
ACTUALPAYAMOUNT_IS_ZERO
);
return
ResponseUtil
.
error
(
ResponseResult
.
ACTUALPAYAMOUNT_IS_ZERO
);
}
}
// 【
4
】 将前端传的实际支付金额和服务端查出订单【可开票状态】实际支付金额对比,如果不相等,不予开票
// 【
5
】 将前端传的实际支付金额和服务端查出订单【可开票状态】实际支付金额对比,如果不相等,不予开票
if
(
totalActualPayAmount
!=
request
.
getTotalActualPayAmount
()){
if
(
totalActualPayAmount
!=
request
.
getTotalActualPayAmount
()){
return
ResponseUtil
.
error
(
ResponseResult
.
ACTUALPAYAMOUNT_IS_ERROR
);
return
ResponseUtil
.
error
(
ResponseResult
.
ACTUALPAYAMOUNT_IS_ERROR
);
}
}
// 【
5
】 单张发票最大限制1000元,超过最大限额不能开票
// 【
6
】 单张发票最大限制1000元,超过最大限额不能开票
double
actualPayAmount2yuan
=
new
BigDecimal
(
totalActualPayAmount
)
double
actualPayAmount2yuan
=
new
BigDecimal
(
totalActualPayAmount
)
.
divide
(
new
BigDecimal
(
100
),
2
,
BigDecimal
.
ROUND_HALF_UP
).
doubleValue
();
.
divide
(
new
BigDecimal
(
100
),
2
,
BigDecimal
.
ROUND_HALF_UP
).
doubleValue
();
if
(
actualPayAmount2yuan
>
CommonsConstant
.
CONSTANTS_ONE_THOUSAND
){
if
(
actualPayAmount2yuan
>
CommonsConstant
.
CONSTANTS_ONE_THOUSAND
){
return
ResponseUtil
.
error
(
ResponseResult
.
ACTUALPAYAMOUNT_OUT_OF_ONE_THOUSAND
);
return
ResponseUtil
.
error
(
ResponseResult
.
ACTUALPAYAMOUNT_OUT_OF_ONE_THOUSAND
);
}
}
// 【
6
】 单张发票金额最小限制???元,低于最小限制不能开票
// 【
7
】 单张发票金额最小限制???元,低于最小限制不能开票
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
...
...
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
9bd2415e
...
@@ -185,6 +185,7 @@ public enum ResponseResult {
...
@@ -185,6 +185,7 @@ public enum ResponseResult {
ORDER_INVOINVE_LIMIT_30
(
"45078"
,
"单张发票限制30个订单,超过限额不能开票"
,
""
),
ORDER_INVOINVE_LIMIT_30
(
"45078"
,
"单张发票限制30个订单,超过限额不能开票"
,
""
),
ACTUALPAYAMOUNT_IS_ERROR
(
"45079"
,
"实际支付金额有误,不予开票"
,
""
),
ACTUALPAYAMOUNT_IS_ERROR
(
"45079"
,
"实际支付金额有误,不予开票"
,
""
),
ORDER_QUERY_ANY_ERR
(
"45080"
,
"部分订单查询失败"
,
""
),
ORDER_QUERY_ANY_ERR
(
"45080"
,
"部分订单查询失败"
,
""
),
ORDER_INVOICE_OPEN_ERR
(
"45081"
,
"订单状态不符合开票原则"
,
""
),
/**
/**
* 售后单
* 售后单
...
...
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