Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
441a8fe5
提交
441a8fe5
authored
8月 12, 2024
作者:
杨启发
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'refs/heads/v20.9_settlement_20240805' into dev
上级
b0635697
9b117437
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
118 行增加
和
26 行删除
+118
-26
ConfirmBatchInvoiceParam.java
.../performance/param/pc/owner/ConfirmBatchInvoiceParam.java
+21
-0
TransportVO.java
...in/java/com/clx/performance/vo/pc/broker/TransportVO.java
+1
-1
UploadBatchInvoiceFileResultVO.java
...ce/vo/pc/owner/settle/UploadBatchInvoiceFileResultVO.java
+7
-2
CarrierSettlementOwnerDetailController.java
...er/pc/carrier/CarrierSettlementOwnerDetailController.java
+9
-5
InvoiceData.java
.../main/java/com/clx/performance/dto/excel/InvoiceData.java
+8
-1
InvoiceDataListener.java
...m/clx/performance/listener/excel/InvoiceDataListener.java
+26
-1
OrderChildBrokerMqHandlerServiceImpl.java
...ice/impl/broker/OrderChildBrokerMqHandlerServiceImpl.java
+6
-0
SettlementMqHandlerServiceImpl.java
...e/service/impl/settle/SettlementMqHandlerServiceImpl.java
+1
-1
SettlementOwnerDetailServiceImpl.java
...service/impl/settle/SettlementOwnerDetailServiceImpl.java
+36
-15
SettlementOwnerDetailService.java
...formance/service/settle/SettlementOwnerDetailService.java
+3
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/param/pc/owner/ConfirmBatchInvoiceParam.java
0 → 100644
浏览文件 @
441a8fe5
package
com
.
clx
.
performance
.
param
.
pc
.
owner
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
import
javax.validation.constraints.NotEmpty
;
import
java.util.List
;
@Getter
@Setter
@NoArgsConstructor
@ToString
public
class
ConfirmBatchInvoiceParam
{
@NotEmpty
(
message
=
"运单号不能为空"
)
@ApiModelProperty
(
value
=
"运单号"
)
private
List
<
String
>
childNoList
;
}
performance-api/src/main/java/com/clx/performance/vo/pc/broker/TransportVO.java
浏览文件 @
441a8fe5
...
...
@@ -27,7 +27,7 @@ public class TransportVO {
@ApiModelProperty
(
value
=
"同步失败原因"
,
example
=
"1"
,
dataType
=
"String"
)
private
String
syncMsg
;
@ApiModelProperty
(
value
=
"结算状态 0 未结算 1 已结算 2结算中 "
,
example
=
"1234124"
,
dataType
=
"String"
)
@ApiModelProperty
(
value
=
"结算状态 0 未结算 1 已结算 2结算中
3结算失败
"
,
example
=
"1234124"
,
dataType
=
"String"
)
private
Integer
settleStatus
;
@ApiModelProperty
(
value
=
"结算方"
,
example
=
"1"
,
dataType
=
"String"
)
private
Integer
settleOrg
;
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/owner/settle/UploadBatchInvoiceFileResultVO.java
浏览文件 @
441a8fe5
...
...
@@ -7,6 +7,7 @@ import lombok.Setter;
import
lombok.ToString
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Getter
...
...
@@ -15,8 +16,8 @@ import java.math.BigDecimal;
@NoArgsConstructor
public
class
UploadBatchInvoiceFileResultVO
{
@ApiModelProperty
(
value
=
"校验结果,
0:数据无误,1
:数据有误"
)
private
Integer
verifyResult
;
@ApiModelProperty
(
value
=
"校验结果,
true:数据无误,false
:数据有误"
)
private
Boolean
verifyResult
;
@ApiModelProperty
(
value
=
"错误文件地址"
)
private
String
errorFileUrl
;
...
...
@@ -29,4 +30,7 @@ public class UploadBatchInvoiceFileResultVO {
@ApiModelProperty
(
value
=
"开票金额"
)
private
BigDecimal
invoiceFreightSum
;
@ApiModelProperty
(
value
=
"运单号"
)
private
List
<
String
>
childNoList
;
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/controller/pc/carrier/CarrierSettlementOwnerDetailController.java
浏览文件 @
441a8fe5
...
...
@@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.param.pc.carrier.CarrierSettlementOwnerDetailCompanyUpdateParam
;
import
com.clx.performance.param.pc.carrier.ExportBatchOwnerSettlementDetailParam
;
import
com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PageInvoiceOwnerSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.*
;
import
com.clx.performance.service.settle.SettlementOwnerDetailService
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO
;
...
...
@@ -86,10 +83,17 @@ public class CarrierSettlementOwnerDetailController {
@ApiOperation
(
value
=
"上传批量开票文件"
,
notes
=
"<br>By:杨启发"
)
@PostMapping
(
"/uploadBatchInvoiceFile"
)
public
Result
<
UploadBatchInvoiceFileResultVO
>
uploadBatchInvoiceFile
(
@RequestPar
am
(
"file"
)
MultipartFile
file
)
throws
IOException
{
public
Result
<
UploadBatchInvoiceFileResultVO
>
uploadBatchInvoiceFile
(
@RequestPar
t
(
"file"
)
MultipartFile
file
)
throws
IOException
{
return
Result
.
ok
(
settlementOwnerDetailService
.
uploadBatchInvoiceFile
(
file
));
}
@ApiOperation
(
value
=
"确认批量开票"
,
notes
=
"<br>By:杨启发"
)
@PostMapping
(
"/confirmBatchInvoice"
)
public
Result
<
Object
>
confirmBatchInvoice
(
@RequestBody
@Validated
ConfirmBatchInvoiceParam
param
)
{
settlementOwnerDetailService
.
confirmBatchInvoice
(
param
.
getChildNoList
());
return
Result
.
ok
();
}
@ApiOperation
(
value
=
"导出货主结算单运单明细"
,
notes
=
"<br>By:姜文业"
)
@PostMapping
(
"/exportOwnerSettlementOrderDetailList"
)
public
void
exportCarrierSettlementOwnerPageList
(
@RequestBody
@Validated
PageOwnerSettlementOwnerDetailParam
param
,
HttpServletResponse
response
)
throws
Exception
{
...
...
performance-web/src/main/java/com/clx/performance/dto/excel/InvoiceData.java
浏览文件 @
441a8fe5
...
...
@@ -3,6 +3,8 @@ package com.clx.performance.dto.excel;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
InvoiceData
{
...
...
@@ -13,9 +15,14 @@ public class InvoiceData {
private
String
invoiceType
;
@ExcelProperty
(
"开票金额"
)
private
Double
invoiceFreight
;
private
BigDecimal
invoiceFreight
;
@ExcelProperty
(
"备注"
)
private
String
remark
;
/**
* 装货净重(单位吨)
*/
private
BigDecimal
loadNet
;
}
performance-web/src/main/java/com/clx/performance/listener/excel/InvoiceDataListener.java
浏览文件 @
441a8fe5
...
...
@@ -2,20 +2,45 @@ package com.clx.performance.listener.excel;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.dao.settle.SettlementOwnerDetailDao
;
import
com.clx.performance.dto.excel.InvoiceData
;
import
com.clx.performance.model.settle.SettlementOwnerDetail
;
import
com.clx.performance.param.pc.owner.PageInvoiceOwnerSettlementOwnerDetailParam
;
import
lombok.AllArgsConstructor
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
static
com
.
clx
.
performance
.
enums
.
settle
.
SettlementOwnerDetailEnum
.
InvoiceStatus
.
NO
;
import
static
com
.
clx
.
performance
.
enums
.
settle
.
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
;
@AllArgsConstructor
public
class
InvoiceDataListener
extends
AnalysisEventListener
<
InvoiceData
>
{
private
final
List
<
InvoiceData
>
invoiceDataList
;
private
final
SettlementOwnerDetailDao
settlementOwnerDetailDao
;;
@Override
public
void
invoke
(
InvoiceData
invoiceData
,
AnalysisContext
context
)
{
// 每解析一行都会调用一次,逐行校验数据
PageInvoiceOwnerSettlementOwnerDetailParam
param
=
new
PageInvoiceOwnerSettlementOwnerDetailParam
();
param
.
setInvoiceStatus
(
NO
.
getCode
());
param
.
setChildNo
(
invoiceData
.
getChildNo
());
//param.setInvoiceType(ORDINARY.getCode());
IPage
<
SettlementOwnerDetail
>
page
=
settlementOwnerDetailDao
.
pageInvoiceOwnerSettlementOrderDetailList
(
param
);
List
<
SettlementOwnerDetail
>
records
=
page
.
getRecords
();
if
(
CollectionUtils
.
isEmpty
(
records
))
{
invoiceData
.
setRemark
(
"校验失败(运单编号不匹配)"
);
}
else
if
(!
ORDINARY
.
getCode
().
equals
(
records
.
get
(
0
).
getInvoiceType
())){
invoiceData
.
setRemark
(
"校验失败(开票标识非普通单)"
);
}
else
if
(
records
.
get
(
0
).
getInvoiceFreight
().
compareTo
(
invoiceData
.
getInvoiceFreight
().
multiply
(
new
BigDecimal
(
100
)))
!=
0
){
invoiceData
.
setRemark
(
"校验失败(开票金额不匹配)"
);
}
else
{
invoiceData
.
setRemark
(
"校验通过"
);
invoiceData
.
setLoadNet
(
records
.
get
(
0
).
getLoadNet
());
}
invoiceDataList
.
add
(
invoiceData
);
}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqHandlerServiceImpl.java
浏览文件 @
441a8fe5
...
...
@@ -19,6 +19,8 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Objects
;
@Slf4j
@Service
public
class
OrderChildBrokerMqHandlerServiceImpl
implements
OrderChildBrokerMqHandlerService
{
...
...
@@ -75,6 +77,10 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
SettlementDriverDetail
settlementDriverDetail
=
settlementDriverDetailDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
if
(
Objects
.
equals
(
settlementOwnerDetail
.
getReportFlag
(),
com
.
clx
.
order
.
enums
.
OrderEnum
.
ReportFlag
.
NO
.
getCode
())){
return
;
}
try
{
// 更新broker
orderChildBrokerService
.
orderChildUpdate
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java
浏览文件 @
441a8fe5
...
...
@@ -427,7 +427,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementMqService
.
settlementPlatformAutoConfirmUpdate
(
settlementOwnerDetail
.
getSettlementNo
());
}
else
{
else
if
(
Objects
.
equals
(
result
.
getSettleStatus
(),
3
)
)
{
SettlementOrderChildRisk
settlementOrderChildRisk
=
new
SettlementOrderChildRisk
();
settlementOrderChildRisk
.
setChildNo
(
orderChild
.
getChildNo
());
settlementOrderChildRisk
.
setTruckNo
(
orderChild
.
getTruckNo
());
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementOwnerDetailServiceImpl.java
浏览文件 @
441a8fe5
...
...
@@ -38,12 +38,8 @@ import com.clx.performance.vo.pc.owner.settle.CountOwnerSettlementOwnerDetailVO;
import
com.clx.performance.vo.pc.owner.settle.PageOwnerSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.owner.settle.UploadBatchInvoiceFileResultVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
...
...
@@ -52,6 +48,15 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
com.msl.common.result.Result
;
import
com.msl.document.api.feign.FileUploadFeign
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -84,6 +89,9 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
@Autowired
private
OrderChildBrokerMqService
orderChildBrokerMqService
;
@Autowired
private
FileUploadFeign
fileUploadFeign
;
@Override
...
...
@@ -681,20 +689,33 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
@Override
public
UploadBatchInvoiceFileResultVO
uploadBatchInvoiceFile
(
MultipartFile
file
)
throws
IOException
{
List
<
InvoiceData
>
invoiceDataList
=
new
ArrayList
<>();
EasyExcel
.
read
(
file
.
getInputStream
(),
InvoiceData
.
class
,
new
InvoiceDataListener
(
invoiceDataList
)).
sheet
().
doRead
();
// 解析上传的Excel文件
EasyExcel
.
read
(
file
.
getInputStream
(),
InvoiceData
.
class
,
new
InvoiceDataListener
(
invoiceDataList
,
settlementOwnerDetailDao
)).
sheet
().
doRead
();
boolean
verifyResult
=
invoiceDataList
.
stream
().
allMatch
(
item
->
"校验通过"
.
equals
(
item
.
getRemark
()));
Result
<
String
>
uploadResult
=
null
;
if
(!
verifyResult
)
{
// 将校验后的数据写入新的Excel文件
ByteArrayOutputStream
outputStream
=
new
ByteArrayOutputStream
();
EasyExcel
.
write
(
outputStream
,
InvoiceData
.
class
).
sheet
(
"校验结果"
).
doWrite
(
invoiceDataList
);
// 将文件上传到OSS
uploadResult
=
fileUploadFeign
.
uploadBytes
(
outputStream
.
toByteArray
(),
null
,
null
);
}
UploadBatchInvoiceFileResultVO
vo
=
new
UploadBatchInvoiceFileResultVO
();
vo
.
setVerifyResult
(
0
);
vo
.
setErrorFileUrl
(
""
);
vo
.
setOrderChildSum
(
0
);
vo
.
setLoadWeightSum
(
new
BigDecimal
(
"0"
));
vo
.
setInvoiceFreightSum
(
new
BigDecimal
(
"0"
));
List
<
String
>
childNoList
=
new
ArrayList
<>();
vo
.
setVerifyResult
(
verifyResult
);
vo
.
setErrorFileUrl
(
uploadResult
==
null
?
null
:
uploadResult
.
getData
());
vo
.
setOrderChildSum
(
invoiceDataList
.
size
());
vo
.
setLoadWeightSum
(
invoiceDataList
.
stream
().
map
(
InvoiceData:
:
getLoadNet
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
vo
.
setInvoiceFreightSum
(
invoiceDataList
.
stream
().
map
(
InvoiceData:
:
getInvoiceFreight
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
vo
.
setChildNoList
(
invoiceDataList
.
stream
().
map
(
InvoiceData:
:
getChildNo
).
collect
(
Collectors
.
toList
()));
return
vo
;
}
@Override
public
void
confirmBatchInvoice
(
List
<
String
>
childNoList
)
{
settlementOwnerDetailDao
.
updateSettlementByChildNoList
(
childNoList
);
// 发送mq (运单更新)
orderChildBrokerMqService
.
orderChildUpdate
(
childNoList
);
return
vo
;
}
}
performance-web/src/main/java/com/clx/performance/service/settle/SettlementOwnerDetailService.java
浏览文件 @
441a8fe5
...
...
@@ -20,6 +20,7 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
import
java.util.List
;
/**
* @author liruixin
...
...
@@ -55,4 +56,6 @@ public interface SettlementOwnerDetailService {
SXSSFWorkbook
exportInvoiceOwnerSettlementOrderDetail
(
PageInvoiceOwnerSettlementOwnerDetailParam
param
);
UploadBatchInvoiceFileResultVO
uploadBatchInvoiceFile
(
MultipartFile
file
)
throws
IOException
;
void
confirmBatchInvoice
(
List
<
String
>
childNoList
);
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论