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
2840ae43
Commit
2840ae43
authored
Jan 07, 2020
by
hanfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
开票
parent
7adc4a13
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
222 additions
and
68 deletions
+222
-68
AppStaffUserBiz.java
...om/github/wxiaoqi/security/admin/biz/AppStaffUserBiz.java
+1
-2
Invoice.java
...main/java/com/xxfc/platform/universal/entity/Invoice.java
+11
-5
OrderData.java
...in/java/com/xxfc/platform/universal/entity/OrderData.java
+0
-1
InvoiceVo.java
...java/com/xxfc/platform/universal/entity/vo/InvoiceVo.java
+1
-20
SnowflakeIdWorker.java
.../com/xxfc/platform/universal/utils/SnowflakeIdWorker.java
+133
-0
pom.xml
xx-universal/xx-universal-server/pom.xml
+6
-0
InvoiceController.java
...xxfc/platform/universal/controller/InvoiceController.java
+0
-8
InvoiceBiz.java
.../java/com/xxfc/platform/universal/service/InvoiceBiz.java
+61
-28
InvoiceDaoImpl.java
...atform/universal/service/invoice/impl/InvoiceDaoImpl.java
+9
-4
No files found.
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppStaffUserBiz.java
View file @
2840ae43
...
@@ -8,7 +8,6 @@ import com.github.wxiaoqi.security.admin.entity.ModifiedUsers;
...
@@ -8,7 +8,6 @@ import com.github.wxiaoqi.security.admin.entity.ModifiedUsers;
import
com.github.wxiaoqi.security.admin.mapper.AppStaffUserMapper
;
import
com.github.wxiaoqi.security.admin.mapper.AppStaffUserMapper
;
import
com.github.wxiaoqi.security.admin.vo.AppUserVo
;
import
com.github.wxiaoqi.security.admin.vo.AppUserVo
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.xxfc.platform.im.utils.StringUtil
;
import
com.xxfc.platform.im.utils.StringUtil
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -24,8 +23,8 @@ import java.util.List;
...
@@ -24,8 +23,8 @@ import java.util.List;
* @author Administrator
* @author Administrator
*/
*/
@Service
@Service
@RequiredArgsConstructor
(
onConstructor_
=
{
@Autowired
})
@Slf4j
@Slf4j
@RequiredArgsConstructor
(
onConstructor_
=
{
@Autowired
})
public
class
AppStaffUserBiz
extends
BaseBiz
<
AppStaffUserMapper
,
AppStaffUser
>
{
public
class
AppStaffUserBiz
extends
BaseBiz
<
AppStaffUserMapper
,
AppStaffUser
>
{
private
final
AppUserDetailBiz
appUserDetailBiz
;
private
final
AppUserDetailBiz
appUserDetailBiz
;
private
final
Integer
POSITION_ID
=
4
;
private
final
Integer
POSITION_ID
=
4
;
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/entity/Invoice.java
View file @
2840ae43
...
@@ -29,6 +29,12 @@ public class Invoice {
...
@@ -29,6 +29,12 @@ public class Invoice {
*/
*/
private
String
companyCode
;
private
String
companyCode
;
/**
* 发票订单号
*/
private
String
orderNo
;
/**
/**
* 机构代码
* 机构代码
*/
*/
...
@@ -150,10 +156,10 @@ public class Invoice {
...
@@ -150,10 +156,10 @@ public class Invoice {
* 开票人
* 开票人
*/
*/
private
String
issuer
;
private
String
issuer
;
/**
//
/**
* 发票状态
//
* 发票状态
*/
//
*/
private
Integer
invoiceStatus
;
//
private Integer invoiceStatus;
/**
/**
* 附件
* 附件
*/
*/
...
@@ -175,7 +181,7 @@ public class Invoice {
...
@@ -175,7 +181,7 @@ public class Invoice {
*/
*/
private
Integer
validState
;
private
Integer
validState
;
/**
/**
*
状态
*
开票状态 0:未开票;1:开票中;2:为开票成功;3:开票失败;
*/
*/
private
Integer
status
;
private
Integer
status
;
/**
/**
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/entity/OrderData.java
View file @
2840ae43
...
@@ -32,7 +32,6 @@ public class OrderData {
...
@@ -32,7 +32,6 @@ public class OrderData {
*/
*/
private
Double
taxRate
;
private
Double
taxRate
;
private
String
specType
;
/**
/**
* 单位
* 单位
*/
*/
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/entity/vo/InvoiceVo.java
View file @
2840ae43
...
@@ -20,31 +20,12 @@ public class InvoiceVo {
...
@@ -20,31 +20,12 @@ public class InvoiceVo {
*/
*/
private
Integer
invoiceCategory
=
10
;
private
Integer
invoiceCategory
=
10
;
// /**
// * 合计金额
// */
// private BigDecimal invoiceAmount;
//
// /**
// * 合计税额
// */
// private BigDecimal taxAmount;
//
// /**
// * 价税合计总额
// */
// private BigDecimal invoiceSummaryAmount;
//
// /**
// * 价税合计总额大写
// */
// private String invoiceSummaryAmountText;
/**
/**
* 订单id :多个以逗号隔开
* 订单id :多个以逗号隔开
*/
*/
private
String
orderId
;
private
String
orderId
;
/**
/**
* 备注
* 备注
*/
*/
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/utils/SnowflakeIdWorker.java
0 → 100644
View file @
2840ae43
package
com
.
xxfc
.
platform
.
universal
.
utils
;
public
class
SnowflakeIdWorker
{
// ==============================Fields==================
/** 开始时间截 (2019-01-07) */
private
final
long
twepoch
=
1578326400000L
;
/** 机器id所占的位数 */
private
final
long
workerIdBits
=
5L
;
/** 数据标识id所占的位数 */
private
final
long
datacenterIdBits
=
5L
;
/** 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) */
private
final
long
maxWorkerId
=
-
1L
^
(-
1L
<<
workerIdBits
);
/** 支持的最大数据标识id,结果是31 */
private
final
long
maxDatacenterId
=
-
1L
^
(-
1L
<<
datacenterIdBits
);
/** 序列在id中占的位数 */
private
final
long
sequenceBits
=
12L
;
/** 机器ID向左移12位 */
private
final
long
workerIdShift
=
sequenceBits
;
/** 数据标识id向左移17位(12+5) */
private
final
long
datacenterIdShift
=
sequenceBits
+
workerIdBits
;
/** 时间截向左移22位(5+5+12) */
private
final
long
timestampLeftShift
=
sequenceBits
+
workerIdBits
+
datacenterIdBits
;
/** 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095) */
private
final
long
sequenceMask
=
-
1L
^
(-
1L
<<
sequenceBits
);
/** 工作机器ID(0~31) */
private
long
workerId
;
/** 数据中心ID(0~31) */
private
long
datacenterId
;
/** 毫秒内序列(0~4095) */
private
long
sequence
=
0L
;
/** 上次生成ID的时间截 */
private
long
lastTimestamp
=
-
1L
;
//==============================Constructors====================
/**
* 构造函数
* @param workerId 工作ID (0~31)
* @param datacenterId 数据中心ID (0~31)
*/
public
SnowflakeIdWorker
(
long
workerId
,
long
datacenterId
)
{
if
(
workerId
>
maxWorkerId
||
workerId
<
0
)
{
throw
new
IllegalArgumentException
(
String
.
format
(
"worker Id can't be greater than %d or less than 0"
,
maxWorkerId
));
}
if
(
datacenterId
>
maxDatacenterId
||
datacenterId
<
0
)
{
throw
new
IllegalArgumentException
(
String
.
format
(
"datacenter Id can't be greater than %d or less than 0"
,
maxDatacenterId
));
}
this
.
workerId
=
workerId
;
this
.
datacenterId
=
datacenterId
;
}
// ==============================Methods=================================
/**
* 获得下一个ID (该方法是线程安全的)
* @return SnowflakeId
*/
public
synchronized
long
nextId
()
{
long
timestamp
=
timeGen
();
//如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常
if
(
timestamp
<
lastTimestamp
)
{
throw
new
RuntimeException
(
String
.
format
(
"Clock moved backwards. Refusing to generate id for %d milliseconds"
,
lastTimestamp
-
timestamp
));
}
//如果是同一时间生成的,则进行毫秒内序列
if
(
lastTimestamp
==
timestamp
)
{
sequence
=
(
sequence
+
1
)
&
sequenceMask
;
//毫秒内序列溢出
if
(
sequence
==
0
)
{
//阻塞到下一个毫秒,获得新的时间戳
timestamp
=
tilNextMillis
(
lastTimestamp
);
}
}
//时间戳改变,毫秒内序列重置
else
{
sequence
=
0L
;
}
//上次生成ID的时间截
lastTimestamp
=
timestamp
;
//移位并通过或运算拼到一起组成64位的ID
return
((
timestamp
-
twepoch
)
<<
timestampLeftShift
)
//
|
(
datacenterId
<<
datacenterIdShift
)
//
|
(
workerId
<<
workerIdShift
)
//
|
sequence
;
}
/**
* 阻塞到下一个毫秒,直到获得新的时间戳
* @param lastTimestamp 上次生成ID的时间截
* @return 当前时间戳
*/
protected
long
tilNextMillis
(
long
lastTimestamp
)
{
long
timestamp
=
timeGen
();
while
(
timestamp
<=
lastTimestamp
)
{
timestamp
=
timeGen
();
}
return
timestamp
;
}
/**
* 返回以毫秒为单位的当前时间
* @return 当前时间(毫秒)
*/
protected
long
timeGen
()
{
return
System
.
currentTimeMillis
();
}
//==============================Test=============================================
/** 测试 */
public
static
void
main
(
String
[]
args
)
{
SnowflakeIdWorker
idWorker
=
new
SnowflakeIdWorker
(
0
,
0
);
for
(
int
i
=
0
;
i
<
1000
;
i
++)
{
long
id
=
idWorker
.
nextId
();
System
.
out
.
println
(
Long
.
toBinaryString
(
id
));
System
.
out
.
println
(
id
);
}
}
}
\ No newline at end of file
xx-universal/xx-universal-server/pom.xml
View file @
2840ae43
...
@@ -111,6 +111,12 @@
...
@@ -111,6 +111,12 @@
<artifactId>
open-sdk
</artifactId>
<artifactId>
open-sdk
</artifactId>
<version>
1.0.3
</version>
<version>
1.0.3
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-order-api
</artifactId>
<version>
2.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/controller/InvoiceController.java
View file @
2840ae43
package
com
.
xxfc
.
platform
.
universal
.
controller
;
package
com
.
xxfc
.
platform
.
universal
.
controller
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil
;
import
com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.universal.entity.Invoice
;
import
com.xxfc.platform.universal.entity.Invoice
;
import
com.xxfc.platform.universal.entity.vo.InvoiceVo
;
import
com.xxfc.platform.universal.entity.vo.InvoiceVo
;
import
com.xxfc.platform.universal.service.InvoiceBiz
;
import
com.xxfc.platform.universal.service.InvoiceBiz
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.List
;
...
@@ -23,9 +17,7 @@ import java.util.Map;
...
@@ -23,9 +17,7 @@ import java.util.Map;
* @Description:
* @Description:
*/
*/
@RestController
@RestController
//@IgnoreUserToken
@RequestMapping
(
"/invoice"
)
@RequestMapping
(
"/invoice"
)
@RequiredArgsConstructor
(
onConstructor_
={
@Autowired
}
)
public
class
InvoiceController
extends
BaseController
<
InvoiceBiz
,
Invoice
>
{
public
class
InvoiceController
extends
BaseController
<
InvoiceBiz
,
Invoice
>
{
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/InvoiceBiz.java
View file @
2840ae43
...
@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
...
@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import
com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil
;
import
com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil
;
import
com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo
;
import
com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.xxfc.platform.order.feign.OrderFeign
;
import
com.xxfc.platform.universal.constant.InvoiceStatusEum
;
import
com.xxfc.platform.universal.constant.InvoiceStatusEum
;
import
com.xxfc.platform.universal.entity.Invoice
;
import
com.xxfc.platform.universal.entity.Invoice
;
import
com.xxfc.platform.universal.entity.OrderData
;
import
com.xxfc.platform.universal.entity.OrderData
;
...
@@ -13,8 +14,9 @@ import com.xxfc.platform.universal.entity.vo.InvoiceVo;
...
@@ -13,8 +14,9 @@ import com.xxfc.platform.universal.entity.vo.InvoiceVo;
import
com.xxfc.platform.universal.mapper.InvoiceMapper
;
import
com.xxfc.platform.universal.mapper.InvoiceMapper
;
import
com.xxfc.platform.universal.service.invoice.InvoiceDao
;
import
com.xxfc.platform.universal.service.invoice.InvoiceDao
;
import
com.xxfc.platform.universal.utils.NumberToCN
;
import
com.xxfc.platform.universal.utils.NumberToCN
;
import
com.xxfc.platform.universal.utils.SnowflakeIdWorker
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.lang3.concurrent.BasicThreadFactory
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
...
@@ -35,21 +37,28 @@ import java.util.concurrent.TimeUnit;
...
@@ -35,21 +37,28 @@ import java.util.concurrent.TimeUnit;
* @Description:
* @Description:
*/
*/
@Service
@Service
@RequiredArgsConstructor
(
onConstructor_
=
{
@Autowired
})
@Slf4j
@RequiredArgsConstructor
(
onConstructor
=
@_
({
@Autowired
}))
public
class
InvoiceBiz
extends
BaseBiz
<
InvoiceMapper
,
Invoice
>
{
public
class
InvoiceBiz
extends
BaseBiz
<
InvoiceMapper
,
Invoice
>
{
private
final
InvoiceDao
invoiceDao
;
private
final
InvoiceDao
invoiceDao
;
private
final
UserAuthConfig
userAuthConfig
;
private
final
UserAuthConfig
userAuthConfig
;
private
final
HttpServletRequest
request
;
private
final
HttpServletRequest
request
;
private
final
UserAuthUtil
userAuthUtil
;
private
final
UserAuthUtil
userAuthUtil
;
private
final
SnowflakeIdWorker
snowflakeIdWorker
=
new
SnowflakeIdWorker
(
0
,
0
);
private
final
ThreadPoolTaskExecutor
taskExecutor
;
private
final
ThreadPoolTaskExecutor
taskExecutor
;
private
final
OrderFeign
orderFeign
;
private
static
final
String
salerName
=
"欣新房车网络科技(广东)股份有限公司"
;
private
static
final
String
salerName
=
"欣新房车网络科技(广东)股份有限公司"
;
//正式
//正式
// private static final String salerTaxNum="91441900MA53C6713X";
// private static final String salerTaxNum="91441900MA53C6713X";
//测试
private
static
final
String
salerTaxNum
=
"339901999999142"
;
/**
* 测试
*/
private
static
final
String
salerTaxNum
=
"339901999999142"
;
private
static
final
String
salerTel
=
"13926892766"
;
private
static
final
String
salerTel
=
"13926892766"
;
private
static
final
String
salerAddress
=
"广东省东莞市松山湖园区科汇路1号1栋801室13926892766"
;
private
static
final
String
salerAddress
=
"广东省东莞市松山湖园区科汇路1号1栋801室13926892766"
;
private
static
final
String
salerAccount
=
"中国建设银行股份有限公司东莞虎门连升支行44050110140900000777"
;
private
static
final
String
salerAccount
=
"中国建设银行股份有限公司东莞虎门连升支行44050110140900000777"
;
...
@@ -59,9 +68,12 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -59,9 +68,12 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
private
static
final
String
checker
=
"邹冬梅"
;
private
static
final
String
checker
=
"邹冬梅"
;
//开票人
//开票人
private
static
final
String
clerk
=
"郑超"
;
private
static
final
String
clerk
=
"郑超"
;
// 推送方式:-1,不推送;0,邮箱;1,手机(默认);2,邮箱、手机
/**
* 推送方式:-1,不推送;0,邮箱;1,手机(默认);2,邮箱、手机
*/
private
static
final
Integer
pushMode
=
2
;
private
static
final
Integer
pushMode
=
2
;
private
static
final
ScheduledExecutorService
executorService
=
new
ScheduledThreadPoolExecutor
(
2
);
private
static
final
ScheduledExecutorService
executorService
=
new
ScheduledThreadPoolExecutor
(
8
);
public
String
getDutyParagraphByCode
(
String
code
)
{
public
String
getDutyParagraphByCode
(
String
code
)
{
return
invoiceDao
.
getDutyParagraphByCode
(
code
);
return
invoiceDao
.
getDutyParagraphByCode
(
code
);
...
@@ -73,8 +85,11 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -73,8 +85,11 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
public
String
Invoicing
(
InvoiceVo
invoiceVo
)
throws
Exception
{
public
String
Invoicing
(
InvoiceVo
invoiceVo
)
throws
Exception
{
IJWTInfo
infoFromToken
=
userAuthUtil
.
getInfoFromToken
(
userAuthConfig
.
getToken
(
request
));
IJWTInfo
infoFromToken
=
userAuthUtil
.
getInfoFromToken
(
userAuthConfig
.
getToken
(
request
));
Invoice
invoice
=
new
Invoice
();
Invoice
invoice
=
new
Invoice
();
long
on
=
snowflakeIdWorker
.
nextId
();
BeanUtils
.
copyProperties
(
invoiceVo
,
invoice
);
BeanUtils
.
copyProperties
(
invoiceVo
,
invoice
);
invoice
.
setOrderNo
(
String
.
valueOf
(
on
));
invoice
.
setSalerName
(
salerName
);
invoice
.
setSalerName
(
salerName
);
invoice
.
setSalerTaxCode
(
salerTaxNum
);
invoice
.
setSalerTaxCode
(
salerTaxNum
);
invoice
.
setSalerAddressPhone
(
salerAddress
);
invoice
.
setSalerAddressPhone
(
salerAddress
);
...
@@ -83,19 +98,26 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -83,19 +98,26 @@ 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
);
invoice
.
setInvoiceDate
(
new
Date
());
Date
invoiceDate
=
new
Date
();
invoice
.
setCreateTime
(
invoiceDate
);
invoice
.
setInvoiceDate
(
invoiceDate
);
invoice
.
setCreateBy
(
infoFromToken
.
getName
());
List
<
OrderData
>
orders
=
invoiceVo
.
getOrders
();
List
<
OrderData
>
orders
=
invoiceVo
.
getOrders
();
//调用第三方开票
//调用第三方开票
String
invoiceSerialNum
=
invoiceDao
.
Invoicing
(
invoice
,
orders
);
String
invoiceSerialNum
=
invoiceDao
.
Invoicing
(
invoice
,
orders
);
invoice
.
setInvoiceSerialNum
(
invoiceSerialNum
);
invoice
.
setInvoiceSerialNum
(
invoiceSerialNum
);
invoice
.
setUserId
(
Integer
.
valueOf
(
infoFromToken
.
getId
()));
invoice
.
setUserId
(
Integer
.
valueOf
(
infoFromToken
.
getId
()));
//保存到数据库
//保存到数据库
mapper
.
insert
(
invoice
);
mapper
.
insert
(
invoice
);
//异步查询开票结果
//异步查询开票结果
taskExecutor
.
execute
(()->{
executorService
.
schedule
(()
->
{
queryInvoiceResult
(
invoiceSerialNum
,
invoice
.
getId
(),
0
);
queryInvoiceResult
(
invoiceSerialNum
,
invoice
.
getId
(),
0
);
});
},
10
,
TimeUnit
.
SECONDS
);
return
invoiceSerialNum
;
return
invoiceSerialNum
;
}
}
...
@@ -103,26 +125,37 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
...
@@ -103,26 +125,37 @@ public class InvoiceBiz extends BaseBiz<InvoiceMapper, Invoice> {
return
invoiceDao
.
invoiceResult
(
invoiceSerialNum
);
return
invoiceDao
.
invoiceResult
(
invoiceSerialNum
);
}
}
public
void
queryInvoiceResult
(
String
invoiceSerialNum
,
Integer
id
,
Integer
type
)
{
public
void
queryInvoiceResult
(
String
invoiceSerialNum
,
Integer
id
,
Integer
type
)
{
String
result
=
invoiceResult
(
invoiceSerialNum
);
String
result
=
invoiceResult
(
invoiceSerialNum
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
result
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
result
);
Map
<
String
,
Object
>
data
=
(
Map
<
String
,
Object
>)
jsonObject
.
get
(
"data"
);
List
<
Map
<
String
,
Object
>>
mapList
=
(
List
<
Map
<
String
,
Object
>>)
jsonObject
.
get
(
"result"
);
Integer
status
=
(
Integer
)
data
.
get
(
"status"
);
Map
<
String
,
Object
>
data
=
mapList
.
get
(
0
);
if
(
InvoiceStatusEum
.
ONGOING
.
getCode
().
equals
(
status
)){
try
{
executorService
.
schedule
(()->{
Integer
status
=
(
Integer
)
data
.
get
(
"status"
);
queryInvoiceResult
(
invoiceSerialNum
,
id
,
1
);
// if (type == 0) {
},
2
,
TimeUnit
.
HOURS
);
// status = InvoiceStatusEum.ONGOING.getCode();
}
else
{
// }
Invoice
invoice
=
new
Invoice
();
if
(
InvoiceStatusEum
.
ONGOING
.
getCode
().
equals
(
status
)
&&
InvoiceStatusEum
.
ONGOING
.
getCode
().
equals
(
status
))
{
invoice
.
setId
(
id
);
executorService
.
schedule
(()
->
{
invoice
.
setInvoiceStatus
(
status
);
queryInvoiceResult
(
invoiceSerialNum
,
id
,
1
);
invoice
.
setInvoiceCode
(
String
.
valueOf
(
data
.
get
(
"invoiceCode"
)));
},
2
,
TimeUnit
.
HOURS
);
invoice
.
setInvoiceNo
(
String
.
valueOf
(
data
.
get
(
"invoiceNum"
)));
}
else
{
invoice
.
setInvoiceAmount
(
BigDecimal
.
valueOf
((
Double
)
data
.
get
(
"invoiceNum"
)));
Invoice
invoice
=
new
Invoice
();
invoice
.
setTaxAmount
(
BigDecimal
.
valueOf
((
Double
)
data
.
get
(
"taxIncludedAmount"
)).
subtract
(
BigDecimal
.
valueOf
((
Double
)
data
.
get
(
"invoiceNum"
))));
invoice
.
setId
(
id
);
invoice
.
setInvoiceSummaryAmount
(
BigDecimal
.
valueOf
((
Double
)
data
.
get
(
"taxIncludedAmount"
)));
invoice
.
setStatus
(
status
);
invoice
.
setInvoiceSummaryAmountText
(
NumberToCN
.
number2CNMontrayUnit
(
BigDecimal
.
valueOf
((
Double
)
data
.
get
(
"taxIncludedAmount"
))));
invoice
.
setInvoiceCode
(
String
.
valueOf
(
data
.
get
(
"invoiceCode"
)));
mapper
.
updateByPrimaryKeySelective
(
invoice
);
invoice
.
setInvoiceNo
(
String
.
valueOf
(
data
.
get
(
"invoiceNum"
)));
invoice
.
setInvoiceAmount
(
BigDecimal
.
valueOf
(
Double
.
valueOf
(
String
.
valueOf
(
data
.
get
(
"taxExcludedAmount"
)))));
invoice
.
setTaxAmount
(
BigDecimal
.
valueOf
(
Double
.
valueOf
(
String
.
valueOf
(
data
.
get
(
"taxIncludedAmount"
)))).
subtract
(
BigDecimal
.
valueOf
(
Double
.
valueOf
(
String
.
valueOf
(
data
.
get
(
"taxExcludedAmount"
))))));
invoice
.
setInvoiceSummaryAmount
(
BigDecimal
.
valueOf
(
Double
.
valueOf
(
String
.
valueOf
(
data
.
get
(
"taxIncludedAmount"
)))));
invoice
.
setInvoiceSummaryAmountText
(
NumberToCN
.
number2CNMontrayUnit
(
BigDecimal
.
valueOf
(
Double
.
valueOf
(
String
.
valueOf
(
data
.
get
(
"taxIncludedAmount"
))))));
invoice
.
setPictureUrl
(
String
.
valueOf
(
data
.
get
(
"invoiceFileUrl"
)));
invoice
.
setUpdateTime
(
new
Date
());
mapper
.
updateByPrimaryKeySelective
(
invoice
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"查询开票结果={}"
,
e
.
toString
());
e
.
printStackTrace
();
}
}
}
}
}
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/invoice/impl/InvoiceDaoImpl.java
View file @
2840ae43
...
@@ -133,7 +133,7 @@ public class InvoiceDaoImpl implements InvoiceDao {
...
@@ -133,7 +133,7 @@ public class InvoiceDaoImpl implements InvoiceDao {
map
.
put
(
"remark"
,
invoice
.
getRemark
());
map
.
put
(
"remark"
,
invoice
.
getRemark
());
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
//销方信息
//销方信息
map
.
put
(
"orderNo"
,
invoice
.
getOrder
Id
());
map
.
put
(
"orderNo"
,
invoice
.
getOrder
No
());
map
.
put
(
"invoiceDate"
,
dateFormat
.
format
(
invoice
.
getInvoiceDate
()));
map
.
put
(
"invoiceDate"
,
dateFormat
.
format
(
invoice
.
getInvoiceDate
()));
map
.
put
(
"salerName"
,
invoice
.
getSalerName
());
map
.
put
(
"salerName"
,
invoice
.
getSalerName
());
map
.
put
(
"salerTaxNum"
,
invoice
.
getSalerTaxCode
());
map
.
put
(
"salerTaxNum"
,
invoice
.
getSalerTaxCode
());
...
@@ -160,18 +160,23 @@ public class InvoiceDaoImpl implements InvoiceDao {
...
@@ -160,18 +160,23 @@ public class InvoiceDaoImpl implements InvoiceDao {
mx
.
put
(
"price"
,
String
.
valueOf
(
order
.
getPrice
()));
mx
.
put
(
"price"
,
String
.
valueOf
(
order
.
getPrice
()));
mx
.
put
(
"taxRate"
,
String
.
valueOf
(
order
.
getTaxRate
()));
mx
.
put
(
"taxRate"
,
String
.
valueOf
(
order
.
getTaxRate
()));
mx
.
put
(
"unit"
,
order
.
getUnit
());
mx
.
put
(
"unit"
,
order
.
getUnit
());
mx
.
put
(
"specType"
,
order
.
get
SpecTyp
e
());
mx
.
put
(
"specType"
,
order
.
get
OrderNam
e
());
arrayList
.
add
(
mx
);
arrayList
.
add
(
mx
);
}
}
String
token
=
getTokenFP
();
String
token
=
getTokenFP
();
String
jsonString
=
JSON
.
toJSONString
(
orderMap
);
String
jsonString
=
JSON
.
toJSONString
(
orderMap
);
//调用第三方接口
//调用第三方接口
String
result
=
sdk
.
sendPostSyncRequest
(
url
,
senid
,
appKey2
,
appSecret2
,
token
,
taxnum2
,
method
,
jsonString
);
String
result
=
sdk
.
sendPostSyncRequest
(
url
,
senid
,
appKey2
,
appSecret2
,
token
,
taxnum2
,
method
,
jsonString
);
System
.
out
.
println
(
result
);
log
.
info
(
"result={}"
,
result
);
//把字符串json数据转换为map
//把字符串json数据转换为map
JSONObject
jsonObject
=
JSON
.
parseObject
(
result
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
result
);
Map
<
String
,
String
>
data
=
(
Map
<
String
,
String
>)
jsonObject
.
get
(
"result"
);
Map
<
String
,
String
>
data
=
(
Map
<
String
,
String
>)
jsonObject
.
get
(
"result"
);
return
data
.
get
(
"invoiceSerialNum"
);
String
invoiceSerialNum
=
data
.
get
(
"invoiceSerialNum"
);
if
(
StringUtils
.
isBlank
(
invoiceSerialNum
)){
log
.
error
(
"失败原因={}"
,
result
);
throw
new
BaseException
(
"开票失败"
);
}
return
invoiceSerialNum
;
}
}
@Override
@Override
...
...
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