Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
c8f1af62
Commit
c8f1af62
authored
Jan 08, 2020
by
hanfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
开票
parent
f0606e79
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
122 additions
and
101 deletions
+122
-101
Invoice.java
...main/java/com/xxfc/platform/universal/entity/Invoice.java
+11
-2
InvoiceVo.java
...java/com/xxfc/platform/universal/entity/vo/InvoiceVo.java
+46
-42
InvoiceBiz.java
.../java/com/xxfc/platform/universal/service/InvoiceBiz.java
+65
-57
No files found.
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/entity/Invoice.java
View file @
c8f1af62
...
@@ -25,9 +25,11 @@ public class Invoice {
...
@@ -25,9 +25,11 @@ public class Invoice {
private
String
orderId
;
private
String
orderId
;
/**
/**
*
公司代码
*
发票订单表id
*/
*/
private
String
companyCode
;
private
Integer
orderInvoiceId
;
/**
/**
* 发票订单号
* 发票订单号
...
@@ -35,11 +37,18 @@ public class Invoice {
...
@@ -35,11 +37,18 @@ public class Invoice {
private
String
orderNo
;
private
String
orderNo
;
/**
* 公司代码
*/
private
String
companyCode
;
/**
/**
* 机构代码
* 机构代码
*/
*/
private
String
orgCode
;
private
String
orgCode
;
/**
/**
* 发票代码
* 发票代码
*/
*/
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/entity/vo/InvoiceVo.java
View file @
c8f1af62
...
@@ -18,13 +18,17 @@ public class InvoiceVo {
...
@@ -18,13 +18,17 @@ public class InvoiceVo {
* 发票分类:01 专票,02 货物运输业增值税专用发票,03 机动车销售统一发票,
* 发票分类:01 专票,02 货物运输业增值税专用发票,03 机动车销售统一发票,
* 04 增值税普通发票,10 增值税普通发票(电子),11 增值税普通发票(卷票),14 增值税普通发票(卷票)
* 04 增值税普通发票,10 增值税普通发票(电子),11 增值税普通发票(卷票),14 增值税普通发票(卷票)
*/
*/
private
Integer
invoiceCategory
=
10
;
private
Integer
invoiceCategory
=
10
;
/**
/**
* 订单id :多个以逗号隔开
* 订单id :多个以逗号隔开
*/
*/
private
String
orderId
;
private
String
orderId
;
/**
* 发票订单表id
*/
private
Integer
orderInvoiceId
;
/**
/**
* 备注
* 备注
...
@@ -56,13 +60,13 @@ public class InvoiceVo {
...
@@ -56,13 +60,13 @@ public class InvoiceVo {
* 开票内容
* 开票内容
*/
*/
private
String
content
;
private
String
content
;
/**
/**
* 购方手机
* 购方手机
*/
*/
private
String
purchaserPhone
;
private
String
purchaserPhone
;
private
List
<
OrderData
>
orders
;
private
List
<
OrderData
>
orders
;
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/InvoiceBiz.java
View file @
c8f1af62
...
@@ -82,7 +82,7 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -82,7 +82,7 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
* 推送方式:-1,不推送;0,邮箱;1,手机(默认);2,邮箱、手机
* 推送方式:-1,不推送;0,邮箱;1,手机(默认);2,邮箱、手机
*/
*/
@Value
(
"${invoice.pushMode}"
)
@Value
(
"${invoice.pushMode}"
)
private
Integer
pushMode
=
2
;
private
Integer
pushMode
;
private
static
final
ScheduledExecutorService
executorService
=
new
ScheduledThreadPoolExecutor
(
8
);
private
static
final
ScheduledExecutorService
executorService
=
new
ScheduledThreadPoolExecutor
(
8
);
/**
/**
...
@@ -113,6 +113,10 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -113,6 +113,10 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
* @throws Exception
* @throws Exception
*/
*/
public
String
Invoicing
(
InvoiceVo
invoiceVo
)
throws
Exception
{
public
String
Invoicing
(
InvoiceVo
invoiceVo
)
throws
Exception
{
//没有填写邮箱不需要进行推送
if
(
StringUtils
.
isBlank
(
invoiceVo
.
getPurchaserEmail
()))
{
pushMode
=
-
1
;
}
Invoice
invoice
=
new
Invoice
();
Invoice
invoice
=
new
Invoice
();
long
on
=
snowflakeIdWorker
.
nextId
();
long
on
=
snowflakeIdWorker
.
nextId
();
...
@@ -127,6 +131,7 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -127,6 +131,7 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
invoice
.
setReviewer
(
checker
);
invoice
.
setReviewer
(
checker
);
invoice
.
setIssuer
(
clerk
);
invoice
.
setIssuer
(
clerk
);
invoice
.
setPushMode
(
pushMode
);
invoice
.
setPushMode
(
pushMode
);
Date
invoiceDate
=
new
Date
();
Date
invoiceDate
=
new
Date
();
invoice
.
setCreateTime
(
invoiceDate
);
invoice
.
setCreateTime
(
invoiceDate
);
invoice
.
setInvoiceDate
(
invoiceDate
);
invoice
.
setInvoiceDate
(
invoiceDate
);
...
@@ -157,24 +162,24 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -157,24 +162,24 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
BigDecimal
taxExcludedAmount
=
BigDecimal
.
ZERO
;
BigDecimal
taxExcludedAmount
=
BigDecimal
.
ZERO
;
BigDecimal
taxIncludedAmount
=
BigDecimal
.
ZERO
;
BigDecimal
taxIncludedAmount
=
BigDecimal
.
ZERO
;
for
(
OrderData
order
:
orders
)
{
for
(
OrderData
order
:
orders
)
{
if
(
order
.
getWithTaxFlag
()==
1
)
{
if
(
order
.
getWithTaxFlag
()
==
1
)
{
//含价税合计
//含价税合计
BigDecimal
taxIncluded
=
order
.
getPrice
();
BigDecimal
taxIncluded
=
order
.
getPrice
();
//税率
//税率
BigDecimal
taxRate
=
order
.
getTaxRate
();
BigDecimal
taxRate
=
order
.
getTaxRate
();
//不含税单价
//不含税单价
BigDecimal
TaxFree
=
taxIncluded
.
divide
(
taxRate
.
add
(
new
BigDecimal
(
1
)),
2
,
BigDecimal
.
ROUND_HALF_UP
);
BigDecimal
TaxFree
=
taxIncluded
.
divide
(
taxRate
.
add
(
new
BigDecimal
(
1
)),
2
,
BigDecimal
.
ROUND_HALF_UP
);
taxExcludedAmount
=
taxExcludedAmount
.
add
(
TaxFree
);
taxExcludedAmount
=
taxExcludedAmount
.
add
(
TaxFree
);
taxIncludedAmount
=
taxIncludedAmount
.
add
(
taxIncluded
);
taxIncludedAmount
=
taxIncludedAmount
.
add
(
taxIncluded
);
}
else
{
}
else
{
//不含税单价
//不含税单价
BigDecimal
taxFree
=
order
.
getPrice
();
BigDecimal
taxFree
=
order
.
getPrice
();
//税率
//税率
BigDecimal
taxRate
=
order
.
getTaxRate
();
BigDecimal
taxRate
=
order
.
getTaxRate
();
//含税单价
//含税单价
BigDecimal
taxIncluded
=
taxFree
.
multiply
(
taxRate
.
add
(
new
BigDecimal
(
1
)));
BigDecimal
taxIncluded
=
taxFree
.
multiply
(
taxRate
.
add
(
new
BigDecimal
(
1
)));
taxExcludedAmount
=
taxExcludedAmount
.
add
(
taxFree
);
taxExcludedAmount
=
taxExcludedAmount
.
add
(
taxFree
);
taxIncludedAmount
=
taxIncludedAmount
.
add
(
taxIncluded
);
taxIncludedAmount
=
taxIncludedAmount
.
add
(
taxIncluded
);
}
}
}
}
invoice
.
setInvoiceAmount
(
taxExcludedAmount
);
invoice
.
setInvoiceAmount
(
taxExcludedAmount
);
...
@@ -186,21 +191,22 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -186,21 +191,22 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
mapper
.
insert
(
invoice
);
mapper
.
insert
(
invoice
);
//异步查询开票结果
//异步查询开票结果
schedule
(
invoiceSerialNum
,
invoice
.
getId
(),
invoice
.
getOrderId
(),
null
,
0
,
5
,
TimeUnit
.
SECONDS
);
schedule
(
invoiceSerialNum
,
invoice
.
getId
(),
invoice
.
getOrderId
(),
null
,
0
,
5
,
TimeUnit
.
SECONDS
);
}
}
/**
/**
* 或去查询结果
* 或去查询结果
*
* @param invoiceSerialNum 发票流水号
* @param invoiceSerialNum 发票流水号
* @param id 发票id
* @param id 发票id
* @param orderId 订单id
* @param orderId 订单id
* @param lastStatus 上一次产需到的开票状态
* @param lastStatus 上一次产需到的开票状态
* @param count 已经查询过的次数
* @param count 已经查询过的次数
*/
*/
public
void
queryInvoiceResult
(
String
invoiceSerialNum
,
Integer
id
,
String
orderId
,
Integer
lastStatus
,
Integer
count
)
{
public
void
queryInvoiceResult
(
String
invoiceSerialNum
,
Integer
id
,
String
orderId
,
Integer
lastStatus
,
Integer
count
)
{
if
(
count
==
2
)
{
if
(
count
==
2
)
{
InvoiceQueryError
invoiceQueryError
=
new
InvoiceQueryError
();
InvoiceQueryError
invoiceQueryError
=
new
InvoiceQueryError
();
invoiceQueryError
.
setInvoiceId
(
id
);
invoiceQueryError
.
setInvoiceId
(
id
);
invoiceQueryError
.
setInvoiceSerialNum
(
invoiceSerialNum
);
invoiceQueryError
.
setInvoiceSerialNum
(
invoiceSerialNum
);
...
@@ -211,24 +217,24 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -211,24 +217,24 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
}
}
List
<
Map
<
String
,
Object
>>
result
=
invoiceResult
(
invoiceSerialNum
);
List
<
Map
<
String
,
Object
>>
result
=
invoiceResult
(
invoiceSerialNum
);
if
(
result
==
null
)
{
if
(
result
==
null
)
{
schedule
(
invoiceSerialNum
,
id
,
orderId
,
null
,
++
count
,
2
,
TimeUnit
.
HOURS
);
schedule
(
invoiceSerialNum
,
id
,
orderId
,
null
,
++
count
,
2
,
TimeUnit
.
HOURS
);
return
;
return
;
}
}
log
.
info
(
"查询到的开票结果={}"
,
result
);
log
.
info
(
"查询到的开票结果={}"
,
result
);
Map
<
String
,
Object
>
data
=
result
.
get
(
0
);
Map
<
String
,
Object
>
data
=
result
.
get
(
0
);
Integer
status
=
(
Integer
)
data
.
get
(
"status"
);
Integer
status
=
(
Integer
)
data
.
get
(
"status"
);
String
invoiceFileUrl
=
(
String
)
data
.
get
(
"invoiceFileUrl"
);
String
invoiceFileUrl
=
(
String
)
data
.
get
(
"invoiceFileUrl"
);
String
invoiceCode
=
(
String
)
data
.
get
(
"invoiceCode"
);
String
invoiceCode
=
(
String
)
data
.
get
(
"invoiceCode"
);
String
invoiceNum
=
(
String
)
data
.
get
(
"invoiceNum"
);
String
invoiceNum
=
(
String
)
data
.
get
(
"invoiceNum"
);
String
taxIncludedAmountStr
=
String
.
valueOf
(
data
.
get
(
"taxIncludedAmount"
))
;
String
taxIncludedAmountStr
=
String
.
valueOf
(
data
.
get
(
"taxIncludedAmount"
));
String
taxExcludedAmountStr
=
String
.
valueOf
(
data
.
get
(
"taxExcludedAmount"
))
;
String
taxExcludedAmountStr
=
String
.
valueOf
(
data
.
get
(
"taxExcludedAmount"
));
Invoice
invoice
=
new
Invoice
();
Invoice
invoice
=
new
Invoice
();
invoice
.
setId
(
id
);
invoice
.
setId
(
id
);
invoice
.
setStatus
(
status
);
invoice
.
setStatus
(
status
);
invoice
.
setUpdateTime
(
new
Date
());
invoice
.
setUpdateTime
(
new
Date
());
if
(
StringUtils
.
isNotBlank
(
taxExcludedAmountStr
)
&&
StringUtils
.
isNotBlank
(
taxIncludedAmountStr
))
{
if
(
StringUtils
.
isNotBlank
(
taxExcludedAmountStr
)
&&
StringUtils
.
isNotBlank
(
taxIncludedAmountStr
))
{
BigDecimal
taxExcludedAmount
=
new
BigDecimal
(
taxExcludedAmountStr
);
BigDecimal
taxExcludedAmount
=
new
BigDecimal
(
taxExcludedAmountStr
);
BigDecimal
taxIncludedAmount
=
new
BigDecimal
(
taxIncludedAmountStr
);
BigDecimal
taxIncludedAmount
=
new
BigDecimal
(
taxIncludedAmountStr
);
invoice
.
setInvoiceAmount
(
taxExcludedAmount
);
invoice
.
setInvoiceAmount
(
taxExcludedAmount
);
...
@@ -237,15 +243,15 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -237,15 +243,15 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
invoice
.
setInvoiceSummaryAmountText
(
NumberToCN
.
number2CNMontrayUnit
(
taxIncludedAmount
));
invoice
.
setInvoiceSummaryAmountText
(
NumberToCN
.
number2CNMontrayUnit
(
taxIncludedAmount
));
}
}
if
(
InvoiceStatusEum
.
ONGOING
.
getCode
().
equals
(
status
)
||
InvoiceStatusEum
.
UNBILLED
.
getCode
().
equals
(
status
))
{
if
(
InvoiceStatusEum
.
ONGOING
.
getCode
().
equals
(
status
)
||
InvoiceStatusEum
.
UNBILLED
.
getCode
().
equals
(
status
))
{
schedule
(
invoiceSerialNum
,
id
,
orderId
,
status
,
++
count
,
2
,
TimeUnit
.
HOURS
);
schedule
(
invoiceSerialNum
,
id
,
orderId
,
status
,
++
count
,
2
,
TimeUnit
.
HOURS
);
}
else
if
(
InvoiceStatusEum
.
SUCCESS
.
getCode
().
equals
(
status
))
{
}
else
if
(
InvoiceStatusEum
.
SUCCESS
.
getCode
().
equals
(
status
))
{
invoice
.
setInvoiceCode
(
invoiceCode
);
invoice
.
setInvoiceCode
(
invoiceCode
);
invoice
.
setInvoiceNo
(
invoiceNum
);
invoice
.
setInvoiceNo
(
invoiceNum
);
invoice
.
setPictureUrl
(
invoiceFileUrl
);
invoice
.
setPictureUrl
(
invoiceFileUrl
);
setOrderInvoice
(
orderId
,
status
,
invoiceFileUrl
);
setOrderInvoice
(
orderId
,
status
,
invoiceFileUrl
);
}
else
{
}
else
{
setOrderInvoice
(
orderId
,
status
,
null
);
setOrderInvoice
(
orderId
,
status
,
null
);
}
}
mapper
.
updateByPrimaryKeySelective
(
invoice
);
mapper
.
updateByPrimaryKeySelective
(
invoice
);
...
@@ -253,6 +259,7 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -253,6 +259,7 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
/**
/**
* 设置订单发票表
* 设置订单发票表
*
* @param orderId 订单id
* @param orderId 订单id
* @param status 发票查询状态
* @param status 发票查询状态
* @param invoiceFileUrl 发票pdf地址
* @param invoiceFileUrl 发票pdf地址
...
@@ -268,6 +275,7 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -268,6 +275,7 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
/**
/**
* 再次查询开票结果
* 再次查询开票结果
*
* @param invoiceSerialNum
* @param invoiceSerialNum
* @param id
* @param id
* @param orderId
* @param orderId
...
@@ -276,9 +284,9 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -276,9 +284,9 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
* @param time
* @param time
* @param timeUnit
* @param timeUnit
*/
*/
public
void
schedule
(
String
invoiceSerialNum
,
Integer
id
,
String
orderId
,
Integer
lastStatus
,
int
count
,
int
time
,
TimeUnit
timeUnit
)
{
public
void
schedule
(
String
invoiceSerialNum
,
Integer
id
,
String
orderId
,
Integer
lastStatus
,
int
count
,
int
time
,
TimeUnit
timeUnit
)
{
executorService
.
schedule
(()
->
{
executorService
.
schedule
(()
->
{
queryInvoiceResult
(
invoiceSerialNum
,
id
,
orderId
,
lastStatus
,
count
);
queryInvoiceResult
(
invoiceSerialNum
,
id
,
orderId
,
lastStatus
,
count
);
},
time
,
timeUnit
);
},
time
,
timeUnit
);
}
}
...
...
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