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
fda07180
Commit
fda07180
authored
Oct 12, 2021
by
陈斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单发票二期
parent
083f9b96
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
140 additions
and
20 deletions
+140
-20
order-application-service/src/main/java/cn/freemud/adapter/OrderInvoiceAdapter.java
+20
-16
order-application-service/src/main/java/cn/freemud/entities/dto/openplatform/QueryInvoiceConfigRequest.java
+12
-0
order-application-service/src/main/java/cn/freemud/entities/dto/order/OrderInvoiceResponse.java
+60
-0
order-application-service/src/main/java/cn/freemud/enums/InvoiceTypeCodeEnum.java
+27
-0
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+20
-4
No files found.
order-application-service/src/main/java/cn/freemud/adapter/OrderInvoiceAdapter.java
View file @
fda07180
package
cn
.
freemud
.
adapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.CommonsConstant
;
import
cn.freemud.entities.dto.order.InvoiceCreateResponse
;
import
cn.freemud.entities.dto.order.OrderInvoiceResponse
;
import
cn.freemud.entities.dto.order.QueryInvoiceByCodesResponse
;
import
cn.freemud.entities.dto.pay.InvoiceCreateRequest
;
import
cn.freemud.entities.dto.pay.InvoiceProductDetailRequest
;
...
...
@@ -24,7 +24,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
@Component
...
...
@@ -33,11 +36,11 @@ public class OrderInvoiceAdapter {
@Autowired
OrderServiceClient
orderServiceClient
;
// 开票参数
public
static
final
String
INVOICE_PRODUCTCODE
=
"3070401000000000000"
;
public
static
final
String
INVOICE_PRODUCTNAME
=
"餐饮类商品"
;
public
static
final
String
INVOICE_TAXRATE
=
"0.06"
;
public
static
final
String
INVOICE_CONTENT
=
"非码订单开票"
;
// 开票参数
从B端后台查询,根据商户自己建的配置开票
//
public static final String INVOICE_PRODUCTCODE = "3070401000000000000";
//
public static final String INVOICE_PRODUCTNAME = "餐饮类商品";
//
public static final String INVOICE_TAXRATE = "0.06";
//
public static final String INVOICE_CONTENT = "非码订单开票";
// 单张发票订单数量限制
public
static
final
Integer
ORDER_INVOICE_NUM_LIMIT
=
30
;
...
...
@@ -120,13 +123,14 @@ public class OrderInvoiceAdapter {
}
public
InvoiceCreateRequest
convert2InvoiceCreateRequest
(
List
<
OrderBeanV1
>
orders
,
CreateOrderInvoiceRequest
createRequest
){
public
InvoiceCreateRequest
convert2InvoiceCreateRequest
(
List
<
OrderBeanV1
>
orders
,
CreateOrderInvoiceRequest
createRequest
,
OrderInvoiceResponse
orderInvoiceConfig
){
InvoiceCreateRequest
request
=
new
InvoiceCreateRequest
();
request
.
setPartnerId
(
createRequest
.
getPartnerId
());
request
.
setInvoiceTerminalCode
(
CommonsConstant
.
CONSTANTS_TWO_STRING
);
request
.
setOrgCode
(
null
);
request
.
setPushChannelType
(
null
);
request
.
setInvoiceTypeCode
(
InvoiceTypeCodeEnum
.
ELECTRONIC_INVOICE
.
getBwType
(
));
request
.
setInvoiceTypeCode
(
InvoiceTypeCodeEnum
.
getBwType
(
orderInvoiceConfig
.
getInvoiceType
()
));
request
.
setInvoiceNo
(
UUID
.
randomUUID
().
toString
().
replaceAll
(
"-"
,
""
));
request
.
setDrawer
(
createRequest
.
getDrawer
());
request
.
setPriceTaxMark
(
CommonsConstant
.
CONSTANTS_ONE_STRING
);
//含税标记
...
...
@@ -144,14 +148,14 @@ public class OrderInvoiceAdapter {
BigDecimal
actualPayAmount2yuan
=
actualPayAmount
.
divide
(
new
BigDecimal
(
100
),
2
,
BigDecimal
.
ROUND_HALF_UP
);
InvoiceProductDetailRequest
invoiceDetailRequest
=
new
InvoiceProductDetailRequest
();
invoiceDetailRequest
.
setProductCode
(
INVOICE_PRODUCTCODE
);
invoiceDetailRequest
.
setProductName
(
INVOICE_PRODUCTNAME
);
invoiceDetailRequest
.
setProductCode
(
orderInvoiceConfig
.
getProductCode
()
);
invoiceDetailRequest
.
setProductName
(
orderInvoiceConfig
.
getProductName
()
);
invoiceDetailRequest
.
setProductSpecification
(
""
);
invoiceDetailRequest
.
setGoodsUnit
(
""
);
invoiceDetailRequest
.
setGoodsQuantity
(
CommonsConstant
.
CONSTANTS_ONE_INTEGER
);
invoiceDetailRequest
.
setGoodsPrice
(
actualPayAmount2yuan
);
invoiceDetailRequest
.
setGoodsTotalPrice
(
actualPayAmount2yuan
);
invoiceDetailRequest
.
setGoodsTaxRate
(
new
BigDecimal
(
INVOICE_TAXRATE
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
invoiceDetailRequest
.
setGoodsTaxRate
(
new
BigDecimal
(
orderInvoiceConfig
.
getTaxRate
()
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
BigDecimal
goodsTotalTax
=
invoiceDetailRequest
.
getGoodsTotalPrice
()
.
multiply
(
invoiceDetailRequest
.
getGoodsTaxRate
()).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
invoiceDetailRequest
.
setGoodsTotalTax
(
goodsTotalTax
);
...
...
@@ -161,16 +165,16 @@ public class OrderInvoiceAdapter {
}
public
OrderInvoiceRequest
convert2OrderInvoiceRequest
(
InvoiceCreateRequest
invoiceCreateRequest
,
InvoiceCreateResponse
invoiceData
,
List
<
String
>
orderCodes
,
String
memberId
){
,
OrderInvoiceResponse
orderInvoiceConfig
,
List
<
String
>
orderCodes
,
String
memberId
){
OrderInvoiceRequest
request
=
new
OrderInvoiceRequest
();
request
.
setPartnerId
(
invoiceCreateRequest
.
getPartnerId
());
request
.
setInvoiceType
(
InvoiceTypeCodeEnum
.
ELECTRONIC_INVOICE
.
getFm
Type
());
request
.
setContent
(
INVOICE_CONTENT
);
request
.
setInvoiceType
(
orderInvoiceConfig
.
getInvoice
Type
());
request
.
setContent
(
orderInvoiceConfig
.
getContent
()
);
request
.
setAmount
(
invoiceCreateRequest
.
getProductDetailList
().
get
(
0
).
getGoodsTotalPrice
().
multiply
(
new
BigDecimal
(
100
)).
intValue
());
request
.
setInvoiceUrl
(
invoiceData
.
getScanUrl
());
request
.
setUserId
(
memberId
);
request
.
setInvoiceNo
(
invoiceCreateRequest
.
getInvoiceNo
());
request
.
setTaxRate
(
INVOICE_TAXRATE
);
request
.
setTaxRate
(
orderInvoiceConfig
.
getTaxRate
()
);
request
.
setPickUpNo
(
invoiceData
.
getCode
());
request
.
setEndingDate
(
DateUtils
.
convert2Date
(
invoiceData
.
getEndingDate
()));
request
.
setOrderCodes
(
orderCodes
);
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/openplatform/QueryInvoiceConfigRequest.java
0 → 100644
View file @
fda07180
package
cn
.
freemud
.
entities
.
dto
.
openplatform
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
public
class
QueryInvoiceConfigRequest
{
@ApiModelProperty
(
"商户号"
)
private
String
partnerId
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/order/OrderInvoiceResponse.java
0 → 100644
View file @
fda07180
package
cn
.
freemud
.
entities
.
dto
.
order
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
public
class
OrderInvoiceResponse
{
@ApiModelProperty
(
"主键"
)
private
Integer
id
;
@ApiModelProperty
(
"商户号"
)
private
String
partnerId
;
@ApiModelProperty
(
"渠道类型"
)
private
String
channelType
;
@ApiModelProperty
(
"渠道名称"
)
private
String
channelName
;
@ApiModelProperty
(
"税号"
)
private
String
taxNo
;
@ApiModelProperty
(
"发票类型,{4-增值税专用发票,7-增值税普通发票,26-增值税电子发票,25-增值税卷式发票,28-增值税专用电子发票}"
)
private
Integer
invoiceType
;
@ApiModelProperty
(
"appKey"
)
private
String
appKey
;
@ApiModelProperty
(
"appSercret"
)
private
String
appSercret
;
@ApiModelProperty
(
"token"
)
private
String
token
;
@ApiModelProperty
(
"userName"
)
private
String
userName
;
@ApiModelProperty
(
"盐值,加密盐"
)
private
String
salt
;
@ApiModelProperty
(
"发票说明"
)
private
String
remark
;
@ApiModelProperty
(
"状态 0启用 1禁用"
)
private
Integer
state
;
@ApiModelProperty
(
value
=
"税收分类编码"
)
private
String
productCode
;
@ApiModelProperty
(
value
=
"商品名称"
)
private
String
productName
;
@ApiModelProperty
(
"税率"
)
private
String
taxRate
;
@ApiModelProperty
(
"发票内容"
)
private
String
content
;
}
order-application-service/src/main/java/cn/freemud/enums/InvoiceTypeCodeEnum.java
View file @
fda07180
...
...
@@ -27,4 +27,31 @@ public enum InvoiceTypeCodeEnum {
private
String
bwType
;
private
String
desc
;
/**
* 根据fmType获取bwType
* @param fmType
* @return
*/
public
static
String
getBwType
(
Integer
fmType
){
for
(
InvoiceTypeCodeEnum
value
:
InvoiceTypeCodeEnum
.
values
())
{
if
(
value
.
getFmType
().
equals
(
fmType
))
{
return
value
.
getBwType
();
}
}
return
null
;
}
/**
* 根据fmType获取bwType
* @param bwType
* @return
*/
public
static
Integer
getFmType
(
String
bwType
){
for
(
InvoiceTypeCodeEnum
value
:
InvoiceTypeCodeEnum
.
values
())
{
if
(
value
.
getBwType
().
equals
(
bwType
))
{
return
value
.
getFmType
();
}
}
return
null
;
}
}
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
fda07180
...
...
@@ -189,6 +189,7 @@ public enum ResponseResult {
ORDER_INVOICE_QUERY_ERROR
(
"45082"
,
"订单发票查询失败"
,
""
),
ORDER_INVOICE_IS_OPENED
(
"45083"
,
"存在选中的订单已开过发票,请重新选择订单"
,
""
),
ORDER_CODES_REPEAT
(
"45084"
,
"同一次开票,选中的订单不能重复,请重新选择订单"
,
""
),
ORDER_INVOICE_CONFIG_IS_NULL
(
"45085"
,
"发票配置信息为空,不可开票"
,
""
),
/**
* 售后单
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
fda07180
...
...
@@ -30,6 +30,7 @@ import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj;
import
cn.freemud.entities.dto.activity.PayGitCheckAndJoinRequestDto
;
import
cn.freemud.entities.dto.delivery.*
;
import
cn.freemud.entities.dto.ecology.SendMessageRequest
;
import
cn.freemud.entities.dto.openplatform.QueryInvoiceConfigRequest
;
import
cn.freemud.entities.dto.order.*
;
import
cn.freemud.entities.dto.pay.*
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto
;
...
...
@@ -94,8 +95,8 @@ import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderC
import
com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderCountResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
...
...
@@ -338,6 +339,9 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
private
OrderClient
orderClient
;
@Autowired
private
MicroOpenplatformClient
microOpenplatformClient
;
@Override
public
BaseResponse
checkBeforeCreateOrder
(
CheckBeforeCreateOrderRequestVo
requestVo
)
{
...
...
@@ -4446,8 +4450,20 @@ public class OrderServiceImpl implements Orderservice {
return
checkResponse
;
}
// 【3】. 调用支付接口开订单发票,非码支付系统内部再调用三方-百望系统开票
InvoiceCreateRequest
invoiceCreateRequest
=
orderInvoiceAdapter
.
convert2InvoiceCreateRequest
(
dataBean
.
getOrders
(),
request
);
// 【3.1】. 查询开票配置数据
QueryInvoiceConfigRequest
configRequest
=
new
QueryInvoiceConfigRequest
();
configRequest
.
setPartnerId
(
request
.
getPartnerId
());
BaseResponse
<
OrderInvoiceResponse
>
orderInvoiceConfigResponse
=
microOpenplatformClient
.
QueryInvoiceConfigByPartnerId
(
configRequest
);
if
(!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
,
orderInvoiceConfigResponse
.
getCode
())){
return
ResponseUtil
.
error
(
orderInvoiceConfigResponse
.
getCode
(),
orderInvoiceConfigResponse
.
getMessage
());
}
OrderInvoiceResponse
orderInvoiceConfig
=
orderInvoiceConfigResponse
.
getResult
();
if
(
null
==
orderInvoiceConfig
){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_INVOICE_CONFIG_IS_NULL
);
}
// 【3.2】. 调用支付接口开订单发票,非码支付系统内部再调用三方-百望系统开票
InvoiceCreateRequest
invoiceCreateRequest
=
orderInvoiceAdapter
.
convert2InvoiceCreateRequest
(
dataBean
.
getOrders
(),
request
,
orderInvoiceConfig
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
InvoiceCreateResponse
>
invoiceResponse
=
paymentNewClient
.
createInvoice
(
invoiceCreateRequest
);
if
(!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
,
invoiceResponse
.
getCode
())
||
null
==
invoiceResponse
.
getData
())
{
return
ResponseUtil
.
error
(
invoiceResponse
.
getCode
(),
invoiceResponse
.
getMessage
());
...
...
@@ -4459,7 +4475,7 @@ public class OrderServiceImpl implements Orderservice {
// 【4】. 录入发票记录,修改订单发票状态
OrderInvoiceRequest
orderInvoiceRequest
=
orderInvoiceAdapter
.
convert2OrderInvoiceRequest
(
invoiceCreateRequest
,
invoiceData
,
request
.
getOrderCodes
(),
userLoginInfoDto
.
getMemberId
());
orderInvoiceConfig
,
request
.
getOrderCodes
(),
userLoginInfoDto
.
getMemberId
());
BaseResponse
orderInvoiceResponse
=
orderServiceClient
.
createInvoice
(
orderInvoiceRequest
);
if
(!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
,
orderInvoiceResponse
.
getCode
()))
{
return
orderInvoiceResponse
;
...
...
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