Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
10010c2b
提交
10010c2b
authored
8月 12, 2024
作者:
刘海泉
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/dev' into dev
上级
9b15e38e
6ef5617a
全部展开
显示空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
407 行增加
和
19 行删除
+407
-19
OrderChildEnum.java
...c/main/java/com/clx/performance/enums/OrderChildEnum.java
+2
-2
ConfirmBatchInvoiceParam.java
.../performance/param/pc/owner/ConfirmBatchInvoiceParam.java
+21
-0
OpenOrderChildDTO.java
...a/com/clx/performance/vo/pc/broker/OpenOrderChildDTO.java
+3
-0
TransportVO.java
...in/java/com/clx/performance/vo/pc/broker/TransportVO.java
+1
-1
UploadBatchInvoiceFileResultVO.java
...ce/vo/pc/owner/settle/UploadBatchInvoiceFileResultVO.java
+37
-0
CarrierSettlementOwnerDetailController.java
...er/pc/carrier/CarrierSettlementOwnerDetailController.java
+17
-4
InvoiceData.java
.../main/java/com/clx/performance/dto/excel/InvoiceData.java
+28
-0
InvoiceDataListener.java
...m/clx/performance/listener/excel/InvoiceDataListener.java
+53
-0
OrderChildBrokerMqService.java
...performance/service/broker/OrderChildBrokerMqService.java
+5
-0
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+8
-2
OrderChildBrokerMqHandlerServiceImpl.java
...ice/impl/broker/OrderChildBrokerMqHandlerServiceImpl.java
+6
-0
OrderChildBrokerMqServiceImpl.java
...ce/service/impl/broker/OrderChildBrokerMqServiceImpl.java
+11
-0
OrderChildBrokerServiceImpl.java
...ance/service/impl/broker/OrderChildBrokerServiceImpl.java
+5
-7
SettlementMqHandlerServiceImpl.java
...e/service/impl/settle/SettlementMqHandlerServiceImpl.java
+6
-3
SettlementOwnerDetailServiceImpl.java
...service/impl/settle/SettlementOwnerDetailServiceImpl.java
+52
-0
SettlementOwnerDetailService.java
...formance/service/settle/SettlementOwnerDetailService.java
+9
-0
OrderChildServiceImpl2Test.java
.../performance/service/impl/OrderChildServiceImpl2Test.java
+0
-0
OrderChildServiceImpl3Test.java
.../performance/service/impl/OrderChildServiceImpl3Test.java
+143
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/enums/OrderChildEnum.java
浏览文件 @
10010c2b
...
@@ -260,8 +260,8 @@ public enum OrderChildEnum {
...
@@ -260,8 +260,8 @@ public enum OrderChildEnum {
@AllArgsConstructor
@AllArgsConstructor
public
enum
ExitNoticeStatus
{
public
enum
ExitNoticeStatus
{
NOT_NOTIFIED
(
0
,
"
到达货源地
"
),
NOT_NOTIFIED
(
0
,
"
未通知
"
),
NOTIFIED
(
1
,
"
驶入
"
);
NOTIFIED
(
1
,
"
已通知
"
);
private
final
Integer
code
;
private
final
Integer
code
;
private
final
String
name
;
private
final
String
name
;
...
...
performance-api/src/main/java/com/clx/performance/param/pc/owner/ConfirmBatchInvoiceParam.java
0 → 100644
浏览文件 @
10010c2b
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/OpenOrderChildDTO.java
浏览文件 @
10010c2b
...
@@ -70,4 +70,7 @@ public class OpenOrderChildDTO {
...
@@ -70,4 +70,7 @@ public class OpenOrderChildDTO {
@ApiModelProperty
(
value
=
"线下平台"
,
example
=
"华祥"
,
required
=
true
,
dataType
=
"String"
)
@ApiModelProperty
(
value
=
"线下平台"
,
example
=
"华祥"
,
required
=
true
,
dataType
=
"String"
)
private
String
invoicePlatform
;
private
String
invoicePlatform
;
@ApiModelProperty
(
value
=
"开票状态 0 未开票 1 已开票 "
,
example
=
"1"
)
private
Integer
invoiceStatus
;
}
}
performance-api/src/main/java/com/clx/performance/vo/pc/broker/TransportVO.java
浏览文件 @
10010c2b
...
@@ -27,7 +27,7 @@ public class TransportVO {
...
@@ -27,7 +27,7 @@ public class TransportVO {
@ApiModelProperty
(
value
=
"同步失败原因"
,
example
=
"1"
,
dataType
=
"String"
)
@ApiModelProperty
(
value
=
"同步失败原因"
,
example
=
"1"
,
dataType
=
"String"
)
private
String
syncMsg
;
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
;
private
Integer
settleStatus
;
@ApiModelProperty
(
value
=
"结算方"
,
example
=
"1"
,
dataType
=
"String"
)
@ApiModelProperty
(
value
=
"结算方"
,
example
=
"1"
,
dataType
=
"String"
)
private
Integer
settleOrg
;
private
Integer
settleOrg
;
...
...
performance-api/src/main/java/com/clx/performance/vo/pc/owner/settle/UploadBatchInvoiceFileResultVO.java
0 → 100644
浏览文件 @
10010c2b
package
com
.
clx
.
performance
.
vo
.
pc
.
owner
.
settle
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Getter
@Setter
@ToString
@NoArgsConstructor
public
class
UploadBatchInvoiceFileResultVO
{
@ApiModelProperty
(
value
=
"校验结果,true:数据无误,false:数据有误"
)
private
Boolean
verifyResult
;
@ApiModelProperty
(
value
=
"错误文件地址"
)
private
String
errorFileUrl
;
@ApiModelProperty
(
value
=
"运单数"
)
private
Integer
orderChildSum
;
@ApiModelProperty
(
"装车吨数"
)
private
BigDecimal
loadWeightSum
;
@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
浏览文件 @
10010c2b
...
@@ -5,15 +5,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
...
@@ -5,15 +5,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.param.pc.carrier.CarrierSettlementOwnerDetailCompanyUpdateParam
;
import
com.clx.performance.param.pc.carrier.CarrierSettlementOwnerDetailCompanyUpdateParam
;
import
com.clx.performance.param.pc.carrier.ExportBatchOwnerSettlementDetailParam
;
import
com.clx.performance.param.pc.carrier.ExportBatchOwnerSettlementDetailParam
;
import
com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.*
;
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.service.settle.SettlementOwnerDetailService
;
import
com.clx.performance.service.settle.SettlementOwnerDetailService
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.owner.settle.CountOwnerSettlementOwnerDetailVO
;
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.PageOwnerSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.owner.settle.UploadBatchInvoiceFileResultVO
;
import
com.msl.common.base.PageData
;
import
com.msl.common.base.PageData
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.convertor.aspect.UnitCovert
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
...
@@ -27,8 +25,10 @@ import org.springframework.http.HttpHeaders;
...
@@ -27,8 +25,10 @@ import org.springframework.http.HttpHeaders;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
@Slf4j
@Slf4j
@RestController
@RestController
...
@@ -81,6 +81,19 @@ public class CarrierSettlementOwnerDetailController {
...
@@ -81,6 +81,19 @@ public class CarrierSettlementOwnerDetailController {
}
}
}
}
@ApiOperation
(
value
=
"上传批量开票文件"
,
notes
=
"<br>By:杨启发"
)
@PostMapping
(
"/uploadBatchInvoiceFile"
)
public
Result
<
UploadBatchInvoiceFileResultVO
>
uploadBatchInvoiceFile
(
@RequestPart
(
"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:姜文业"
)
@ApiOperation
(
value
=
"导出货主结算单运单明细"
,
notes
=
"<br>By:姜文业"
)
@PostMapping
(
"/exportOwnerSettlementOrderDetailList"
)
@PostMapping
(
"/exportOwnerSettlementOrderDetailList"
)
public
void
exportCarrierSettlementOwnerPageList
(
@RequestBody
@Validated
PageOwnerSettlementOwnerDetailParam
param
,
HttpServletResponse
response
)
throws
Exception
{
public
void
exportCarrierSettlementOwnerPageList
(
@RequestBody
@Validated
PageOwnerSettlementOwnerDetailParam
param
,
HttpServletResponse
response
)
throws
Exception
{
...
...
performance-web/src/main/java/com/clx/performance/dto/excel/InvoiceData.java
0 → 100644
浏览文件 @
10010c2b
package
com
.
clx
.
performance
.
dto
.
excel
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
InvoiceData
{
@ExcelProperty
(
"运单编号"
)
private
String
childNo
;
@ExcelProperty
(
"开票标识"
)
private
String
invoiceType
;
@ExcelProperty
(
"开票金额"
)
private
BigDecimal
invoiceFreight
;
@ExcelProperty
(
"备注"
)
private
String
remark
;
/**
* 装货净重(单位吨)
*/
private
BigDecimal
loadNet
;
}
performance-web/src/main/java/com/clx/performance/listener/excel/InvoiceDataListener.java
0 → 100644
浏览文件 @
10010c2b
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
);
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
// 解析完成后调用
// 可在此进行后续操作,如保存数据到数据库
}
}
performance-web/src/main/java/com/clx/performance/service/broker/OrderChildBrokerMqService.java
浏览文件 @
10010c2b
package
com
.
clx
.
performance
.
service
.
broker
;
package
com
.
clx
.
performance
.
service
.
broker
;
import
java.util.List
;
public
interface
OrderChildBrokerMqService
{
public
interface
OrderChildBrokerMqService
{
void
orderChildSync
(
String
childNo
);
void
orderChildSync
(
String
childNo
);
void
orderChildUpdate
(
String
childNo
);
void
orderChildUpdate
(
String
childNo
);
void
orderChildUpdate
(
List
<
String
>
childNoList
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
10010c2b
...
@@ -3211,8 +3211,11 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -3211,8 +3211,11 @@ public class OrderChildServiceImpl implements OrderChildService {
if
(
orderChild
==
null
)
{
if
(
orderChild
==
null
)
{
return
new
OrderChildLoadRangeCheckResultVO
(
OrderChildEnum
.
NeedAlertEnum
.
FAIL
.
getCode
(),
ORDER_CHILD_NO_FOUND
.
getCode
(),
ORDER_CHILD_NO_FOUND
.
getMsg
());
return
new
OrderChildLoadRangeCheckResultVO
(
OrderChildEnum
.
NeedAlertEnum
.
FAIL
.
getCode
(),
ORDER_CHILD_NO_FOUND
.
getCode
(),
ORDER_CHILD_NO_FOUND
.
getMsg
());
}
}
//如果运单已经解除装车限制,则直接返回成功
if
(
Objects
.
equals
(
orderChild
.
getRemoveLoadLimitStatus
(),
OrderChildEnum
.
RemoveLoadLimitStatus
.
REMOVED
.
getCode
()))
{
return
new
OrderChildLoadRangeCheckResultVO
(
OrderChildEnum
.
NeedAlertEnum
.
OK
.
getCode
(),
OrderChildEnum
.
NeedAlertEnum
.
OK
.
getCode
(),
"验证通过"
);
}
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
get
();
OrderGoods
orderGoods
=
orderGoodsDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
get
();
//todo 解除装车限制
// 发货地址纬度
// 发货地址纬度
BigDecimal
sendLatitude
=
orderGoods
.
getSendLatitude
();
BigDecimal
sendLatitude
=
orderGoods
.
getSendLatitude
();
// 发货地经度
// 发货地经度
...
@@ -3297,6 +3300,7 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -3297,6 +3300,7 @@ public class OrderChildServiceImpl implements OrderChildService {
//超出货源地x公里范围了,且通知状态为未通知
//超出货源地x公里范围了,且通知状态为未通知
// 到达货源地
// 到达货源地
if
(
Objects
.
equals
(
child
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
()))
{
if
(
Objects
.
equals
(
child
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
()))
{
log
.
info
(
"{}超出货源地x公里范围了,运单{}为到达货源地状态,发送短信"
,
truckNo
,
childNo
);
sendLoadSms
(
child
.
getDriverMobile
(),
child
.
getTruckNo
(),
child
.
getChildNo
());
sendLoadSms
(
child
.
getDriverMobile
(),
child
.
getTruckNo
(),
child
.
getChildNo
());
}
}
// 已装货
// 已装货
...
@@ -3309,6 +3313,7 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -3309,6 +3313,7 @@ public class OrderChildServiceImpl implements OrderChildService {
// 修改 通知状态 为已通知
// 修改 通知状态 为已通知
child
.
setExitNoticeStatus
(
OrderChildEnum
.
ExitNoticeStatus
.
NOTIFIED
.
getCode
());
child
.
setExitNoticeStatus
(
OrderChildEnum
.
ExitNoticeStatus
.
NOTIFIED
.
getCode
());
child
.
setEnterExitSendStatus
(
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_OUT
.
getCode
());
child
.
setEnterExitSendStatus
(
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_OUT
.
getCode
());
orderChildDao
.
updateEntityByKey
(
child
);
}
}
}
else
{
}
else
{
...
@@ -3320,6 +3325,7 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -3320,6 +3325,7 @@ public class OrderChildServiceImpl implements OrderChildService {
child
.
setExitNoticeStatus
(
OrderChildEnum
.
ExitNoticeStatus
.
NOT_NOTIFIED
.
getCode
());
child
.
setExitNoticeStatus
(
OrderChildEnum
.
ExitNoticeStatus
.
NOT_NOTIFIED
.
getCode
());
// 状态改为驶入货源地
// 状态改为驶入货源地
child
.
setEnterExitSendStatus
(
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_IN
.
getCode
());
child
.
setEnterExitSendStatus
(
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_IN
.
getCode
());
orderChildDao
.
updateEntityByKey
(
child
);
}
}
}
}
}
}
...
@@ -3337,7 +3343,7 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -3337,7 +3343,7 @@ public class OrderChildServiceImpl implements OrderChildService {
* @param truckNo 当前运单关联车牌号
* @param truckNo 当前运单关联车牌号
* @param childNo 运单单号
* @param childNo 运单单号
*/
*/
pr
ivate
void
sendLoadSms
(
String
mobile
,
String
truckNo
,
String
childNo
)
{
pr
otected
void
sendLoadSms
(
String
mobile
,
String
truckNo
,
String
childNo
)
{
AliSmsMessageReq
req
=
new
AliSmsMessageReq
();
AliSmsMessageReq
req
=
new
AliSmsMessageReq
();
// 模板CODE
// 模板CODE
//SMS_470795021
//SMS_470795021
...
...
performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqHandlerServiceImpl.java
浏览文件 @
10010c2b
...
@@ -19,6 +19,8 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
...
@@ -19,6 +19,8 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Objects
;
@Slf4j
@Slf4j
@Service
@Service
public
class
OrderChildBrokerMqHandlerServiceImpl
implements
OrderChildBrokerMqHandlerService
{
public
class
OrderChildBrokerMqHandlerServiceImpl
implements
OrderChildBrokerMqHandlerService
{
...
@@ -75,6 +77,10 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
...
@@ -75,6 +77,10 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
SettlementDriverDetail
settlementDriverDetail
=
settlementDriverDetailDao
SettlementDriverDetail
settlementDriverDetail
=
settlementDriverDetailDao
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
.
getByChildNo
(
orderChild
.
getChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);
if
(
Objects
.
equals
(
settlementOwnerDetail
.
getReportFlag
(),
com
.
clx
.
order
.
enums
.
OrderEnum
.
ReportFlag
.
NO
.
getCode
())){
return
;
}
try
{
try
{
// 更新broker
// 更新broker
orderChildBrokerService
.
orderChildUpdate
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
orderChildBrokerService
.
orderChildUpdate
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerMqServiceImpl.java
浏览文件 @
10010c2b
...
@@ -14,6 +14,8 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
...
@@ -14,6 +14,8 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
@Slf4j
@Slf4j
@Service
@Service
public
class
OrderChildBrokerMqServiceImpl
implements
OrderChildBrokerMqService
{
public
class
OrderChildBrokerMqServiceImpl
implements
OrderChildBrokerMqService
{
...
@@ -47,4 +49,13 @@ public class OrderChildBrokerMqServiceImpl implements OrderChildBrokerMqService
...
@@ -47,4 +49,13 @@ public class OrderChildBrokerMqServiceImpl implements OrderChildBrokerMqService
rabbitTemplate
.
send
(
RabbitKeyBrokerConstants
.
DEFAULT_EXCHANGE
,
rabbitTemplate
.
send
(
RabbitKeyBrokerConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyBrokerConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
RabbitKeyBrokerConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
}
@Override
public
void
orderChildUpdate
(
List
<
String
>
childNoList
)
{
for
(
String
childNo
:
childNoList
)
{
orderChildUpdate
(
childNo
);
}
}
}
}
performance-web/src/main/java/com/clx/performance/service/impl/broker/OrderChildBrokerServiceImpl.java
浏览文件 @
10010c2b
...
@@ -66,7 +66,7 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
...
@@ -66,7 +66,7 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
TransportParam
transportParam
=
buildParam
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
TransportParam
transportParam
=
buildParam
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
//
更新状态
//
运单同步
settlementOwnerDetail
.
setInvoiceTypeStatus
(
SettlementOwnerDetailEnum
.
InvoiceTypeStatus
.
PROCESSING
.
getCode
());
settlementOwnerDetail
.
setInvoiceTypeStatus
(
SettlementOwnerDetailEnum
.
InvoiceTypeStatus
.
PROCESSING
.
getCode
());
settlementOwnerDetailDao
.
updateInvoiceTypeStatus
(
settlementOwnerDetail
);
settlementOwnerDetailDao
.
updateInvoiceTypeStatus
(
settlementOwnerDetail
);
...
@@ -77,12 +77,8 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
...
@@ -77,12 +77,8 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
public
void
orderChildUpdate
(
OrderChild
orderChild
,
OrderGoods
orderGoods
,
SettlementOwnerDetail
settlementOwnerDetail
,
SettlementDriverDetail
settlementDriverDetail
)
{
public
void
orderChildUpdate
(
OrderChild
orderChild
,
OrderGoods
orderGoods
,
SettlementOwnerDetail
settlementOwnerDetail
,
SettlementDriverDetail
settlementDriverDetail
)
{
TransportParam
transportParam
=
buildParam
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
TransportParam
transportParam
=
buildParam
(
orderChild
,
orderGoods
,
settlementOwnerDetail
,
settlementDriverDetail
);
// 更新状态
// 运单更新
settlementOwnerDetail
.
setInvoiceTypeStatus
(
SettlementOwnerDetailEnum
.
InvoiceTypeStatus
.
PROCESSING
.
getCode
());
brokerService
.
orderChildUpdate
(
transportParam
);
settlementOwnerDetailDao
.
updateInvoiceTypeStatus
(
settlementOwnerDetail
);
brokerService
.
orderChildSync
(
transportParam
);
brokerService
.
orderChildSync
(
transportParam
);
}
}
private
TransportParam
buildParam
(
OrderChild
orderChild
,
OrderGoods
orderGoods
,
SettlementOwnerDetail
settlementOwnerDetail
,
private
TransportParam
buildParam
(
OrderChild
orderChild
,
OrderGoods
orderGoods
,
SettlementOwnerDetail
settlementOwnerDetail
,
...
@@ -278,6 +274,8 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
...
@@ -278,6 +274,8 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
orderChildInfo
.
setReceiveNet
(
orderChild
.
getUnloadNet
());
orderChildInfo
.
setReceiveNet
(
orderChild
.
getUnloadNet
());
orderChildInfo
.
setInvoiceFlag
(
settlementOwnerDetail
.
getInvoiceType
());
orderChildInfo
.
setInvoiceFlag
(
settlementOwnerDetail
.
getInvoiceType
());
orderChildInfo
.
setInvoicePlatform
(
settlementOwnerDetail
.
getInvoicingCompanyShorterName
());
orderChildInfo
.
setInvoicePlatform
(
settlementOwnerDetail
.
getInvoicingCompanyShorterName
());
orderChildInfo
.
setInvoiceStatus
(
Objects
.
equals
(
settlementOwnerDetail
.
getInvoiceStatus
(),
SettlementOwnerDetailEnum
.
InvoiceStatus
.
YES
.
getCode
())?
1
:
0
);
transportParam
.
setOrder
(
orderInfo
);
transportParam
.
setOrder
(
orderInfo
);
transportParam
.
setOrderChildImage
(
imageList
);
transportParam
.
setOrderChildImage
(
imageList
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementMqHandlerServiceImpl.java
浏览文件 @
10010c2b
...
@@ -427,7 +427,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
...
@@ -427,7 +427,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementMqService
.
settlementPlatformAutoConfirmUpdate
(
settlementOwnerDetail
.
getSettlementNo
());
settlementMqService
.
settlementPlatformAutoConfirmUpdate
(
settlementOwnerDetail
.
getSettlementNo
());
}
}
else
{
else
if
(
Objects
.
equals
(
result
.
getSettleStatus
(),
3
)
)
{
SettlementOrderChildRisk
settlementOrderChildRisk
=
new
SettlementOrderChildRisk
();
SettlementOrderChildRisk
settlementOrderChildRisk
=
new
SettlementOrderChildRisk
();
settlementOrderChildRisk
.
setChildNo
(
orderChild
.
getChildNo
());
settlementOrderChildRisk
.
setChildNo
(
orderChild
.
getChildNo
());
settlementOrderChildRisk
.
setTruckNo
(
orderChild
.
getTruckNo
());
settlementOrderChildRisk
.
setTruckNo
(
orderChild
.
getTruckNo
());
...
@@ -481,8 +481,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
...
@@ -481,8 +481,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
// 预付运费判断
// 预付运费判断
if
(
settlementDriverDetail
.
getSettlementFreight
().
compareTo
(
BigDecimal
.
ZERO
)
<=
0
)
{
if
(
settlementDriverDetail
.
getSettlementFreight
().
compareTo
(
BigDecimal
.
ZERO
)
<=
0
)
{
// 转普通单
//
// 转普通单
settlementOwnerDetail
.
setInvoiceType
(
SettlementOwnerEnum
.
InvoiceType
.
ORDINARY
.
getCode
());
//
settlementOwnerDetail.setInvoiceType(SettlementOwnerEnum.InvoiceType.ORDINARY.getCode());
settlementOwnerDetail
.
setInvoicingCompanyId
(
null
);
settlementOwnerDetail
.
setInvoicingCompanyId
(
null
);
settlementOwnerDetail
.
setInvoicingCompanyShorterName
(
null
);
settlementOwnerDetail
.
setInvoicingCompanyShorterName
(
null
);
settlementOwnerDetail
.
setInvoicingCompanyGroupCode
(
null
);
settlementOwnerDetail
.
setInvoicingCompanyGroupCode
(
null
);
...
@@ -497,6 +497,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
...
@@ -497,6 +497,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetailDao
.
updatePreFreight
(
settlementOwnerDetail
);
settlementOwnerDetailDao
.
updatePreFreight
(
settlementOwnerDetail
);
settlementDriverDetailDao
.
updatePreFreight
(
settlementDriverDetail
);
settlementDriverDetailDao
.
updatePreFreight
(
settlementDriverDetail
);
// 发送mq (更新无车承运)
orderChildBrokerMqService
.
orderChildSync
(
orderChild
.
getChildNo
());
}
else
{
}
else
{
if
(
Objects
.
equals
(
settlementOwnerDetail
.
getReportFlag
(),
com
.
clx
.
order
.
enums
.
OrderEnum
.
ReportFlag
.
NO
.
getCode
())){
if
(
Objects
.
equals
(
settlementOwnerDetail
.
getReportFlag
(),
com
.
clx
.
order
.
enums
.
OrderEnum
.
ReportFlag
.
NO
.
getCode
())){
...
...
performance-web/src/main/java/com/clx/performance/service/impl/settle/SettlementOwnerDetailServiceImpl.java
浏览文件 @
10010c2b
package
com
.
clx
.
performance
.
service
.
impl
.
settle
;
package
com
.
clx
.
performance
.
service
.
impl
.
settle
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.settle.SettlementDriverDetailDao
;
import
com.clx.performance.dao.settle.SettlementDriverDetailDao
;
import
com.clx.performance.dao.settle.SettlementOwnerDetailDao
;
import
com.clx.performance.dao.settle.SettlementOwnerDetailDao
;
import
com.clx.performance.dto.excel.InvoiceData
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.enums.settle.SettlementOwnerDetailEnum
;
import
com.clx.performance.enums.settle.SettlementOwnerDetailEnum
;
import
com.clx.performance.enums.settle.SettlementOwnerEnum
;
import
com.clx.performance.enums.settle.SettlementOwnerEnum
;
import
com.clx.performance.enums.settle.SettlementWayEnum
;
import
com.clx.performance.enums.settle.SettlementWayEnum
;
import
com.clx.performance.listener.excel.InvoiceDataListener
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
import
com.clx.performance.model.settle.SettlementDriverDetail
;
...
@@ -20,6 +23,7 @@ import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam;
...
@@ -20,6 +23,7 @@ import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam;
import
com.clx.performance.param.pc.owner.PageInvoiceOwnerSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PageInvoiceOwnerSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam
;
import
com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam
;
import
com.clx.performance.service.broker.OrderChildBrokerMqService
;
import
com.clx.performance.service.settle.SettlementCommonService
;
import
com.clx.performance.service.settle.SettlementCommonService
;
import
com.clx.performance.service.settle.SettlementOwnerDetailService
;
import
com.clx.performance.service.settle.SettlementOwnerDetailService
;
import
com.clx.performance.service.settle.SettlementPostService
;
import
com.clx.performance.service.settle.SettlementPostService
;
...
@@ -32,7 +36,11 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwne
...
@@ -32,7 +36,11 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwne
import
com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.owner.settle.CountOwnerSettlementOwnerDetailVO
;
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.PageOwnerSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.owner.settle.UploadBatchInvoiceFileResultVO
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.math.RoundingMode
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
...
@@ -40,10 +48,16 @@ import java.util.ArrayList;
...
@@ -40,10 +48,16 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.Optional
;
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
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
/**
/**
...
@@ -73,6 +87,11 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
...
@@ -73,6 +87,11 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
@Autowired
@Autowired
private
SettlementPostService
settlementPostService
;
private
SettlementPostService
settlementPostService
;
@Autowired
private
OrderChildBrokerMqService
orderChildBrokerMqService
;
@Autowired
private
FileUploadFeign
fileUploadFeign
;
@Override
@Override
...
@@ -666,4 +685,37 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
...
@@ -666,4 +685,37 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
//创建excel
//创建excel
return
ExcelUtil
.
create
(
excelSheet
);
return
ExcelUtil
.
create
(
excelSheet
);
}
}
@Override
public
UploadBatchInvoiceFileResultVO
uploadBatchInvoiceFile
(
MultipartFile
file
)
throws
IOException
{
List
<
InvoiceData
>
invoiceDataList
=
new
ArrayList
<>();
// 解析上传的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
(
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
);
}
}
}
performance-web/src/main/java/com/clx/performance/service/settle/SettlementOwnerDetailService.java
浏览文件 @
10010c2b
...
@@ -15,7 +15,12 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwne
...
@@ -15,7 +15,12 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwne
import
com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.owner.settle.CountOwnerSettlementOwnerDetailVO
;
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.PageOwnerSettlementOwnerDetailVO
;
import
com.clx.performance.vo.pc.owner.settle.UploadBatchInvoiceFileResultVO
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
import
java.util.List
;
/**
/**
* @author liruixin
* @author liruixin
...
@@ -49,4 +54,8 @@ public interface SettlementOwnerDetailService {
...
@@ -49,4 +54,8 @@ public interface SettlementOwnerDetailService {
SXSSFWorkbook
exportBatchSettlementOwnerDetail
(
ExportBatchOwnerSettlementDetailParam
param
);
SXSSFWorkbook
exportBatchSettlementOwnerDetail
(
ExportBatchOwnerSettlementDetailParam
param
);
SXSSFWorkbook
exportInvoiceOwnerSettlementOrderDetail
(
PageInvoiceOwnerSettlementOwnerDetailParam
param
);
SXSSFWorkbook
exportInvoiceOwnerSettlementOrderDetail
(
PageInvoiceOwnerSettlementOwnerDetailParam
param
);
UploadBatchInvoiceFileResultVO
uploadBatchInvoiceFile
(
MultipartFile
file
)
throws
IOException
;
void
confirmBatchInvoice
(
List
<
String
>
childNoList
);
}
}
performance-web/src/test/java/com/clx/performance/service/impl/OrderChildServiceImpl2Test.java
浏览文件 @
10010c2b
差异被折叠。
点击展开。
performance-web/src/test/java/com/clx/performance/service/impl/OrderChildServiceImpl3Test.java
0 → 100644
浏览文件 @
10010c2b
package
com
.
clx
.
performance
.
service
.
impl
;
import
com.clx.performance.dao.OrderChildDao
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.dto.gd.GdRouteDTO
;
import
com.clx.performance.enums.EnabledStatusEnum
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.enums.PerformanceResultEnum
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.param.app.OrderChildLoadRangeCheckParam
;
import
com.clx.performance.service.OrderChildOperateLimitConfigService
;
import
com.clx.performance.utils.gd.GdService
;
import
com.clx.performance.vo.app.OrderChildLoadRangeCheckResultVO
;
import
com.clx.performance.vo.pc.OrderChildOperateLimitConfigVO
;
import
com.msl.common.base.Optional
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.extension.ExtendWith
;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.junit.jupiter.MockitoExtension
;
import
org.mockito.junit.jupiter.MockitoSettings
;
import
org.mockito.quality.Strictness
;
import
java.math.BigDecimal
;
import
java.util.Collections
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertEquals
;
import
static
org
.
mockito
.
Mockito
.*;
@ExtendWith
(
MockitoExtension
.
class
)
@MockitoSettings
(
strictness
=
Strictness
.
LENIENT
)
class
OrderChildServiceImpl3Test
{
@Mock
private
OrderGoodsDao
orderGoodsDao
;
@Mock
private
OrderChildDao
orderChildDao
;
@Mock
private
GdService
gdService
;
@Mock
private
OrderChildOperateLimitConfigService
orderChildOperateLimitConfigService
;
@InjectMocks
private
OrderChildServiceImpl
orderChildService
;
private
OrderChildLoadRangeCheckParam
param
;
@BeforeEach
void
setUp
()
{
param
=
new
OrderChildLoadRangeCheckParam
();
param
.
setChildNo
(
"testChildNo"
);
param
.
setLatitude
(
BigDecimal
.
TEN
);
param
.
setLongitude
(
BigDecimal
.
TEN
);
}
/**
* 无配置情况
*/
@Test
void
loadRangeCheck_whenConfigIsNull_shouldReturnError
()
{
when
(
orderChildDao
.
getByChildNo
(
param
.
getChildNo
())).
thenReturn
(
Optional
.
of
(
new
OrderChild
()));
when
(
orderGoodsDao
.
getByOrderGoodsNo
(
anyString
())).
thenReturn
(
Optional
.
of
(
new
OrderGoods
()));
OrderChildLoadRangeCheckResultVO
result
=
orderChildService
.
loadRangeCheck
(
param
);
assertEquals
(
PerformanceResultEnum
.
ORDER_CHILD_LOAD_LIMIT_CONFIG_ERROR
.
getCode
(),
result
.
getCode
());
}
@Test
void
loadRangeCheck_whenConfigIsDisabled_shouldReturnDisabled
()
{
OrderChildOperateLimitConfigVO
config
=
new
OrderChildOperateLimitConfigVO
();
config
.
setStatus
(
EnabledStatusEnum
.
DISABLE
.
getCode
());
// 限制装车距离为1.5
config
.
setAllowUploadDistance
(
new
BigDecimal
(
"1.5"
));
OrderChild
orderChild
=
new
OrderChild
();
orderChild
.
setOrderGoodsNo
(
"ordergoodsno"
);
orderChild
.
setOrderNo
(
"orderno"
);
orderChild
.
setChildNo
(
"orderno"
);
orderChild
.
setStatus
(
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
());
OrderGoods
orderGoods
=
new
OrderGoods
();
when
(
orderChildOperateLimitConfigService
.
listConfig
()).
thenReturn
(
config
);
when
(
orderChildDao
.
getByChildNo
(
param
.
getChildNo
())).
thenReturn
(
Optional
.
of
(
orderChild
));
when
(
orderGoodsDao
.
getByOrderGoodsNo
(
anyString
())).
thenReturn
(
Optional
.
of
(
orderGoods
));
GdRouteDTO
route
=
new
GdRouteDTO
();
route
.
setDistance
(
2000
);
when
(
gdService
.
getRoute
(
any
(),
any
(),
any
(),
any
())).
thenReturn
(
Collections
.
singletonList
(
route
));
OrderChildLoadRangeCheckResultVO
result
=
orderChildService
.
loadRangeCheck
(
param
);
assertEquals
(
PerformanceResultEnum
.
ORDER_CHILD_LOAD_LIMIT_CONFIG_DISABLED
.
getCode
(),
result
.
getCode
());
}
/**
* 在装车范围内,不进行提示
*/
@Test
void
loadRangeCheck_ok
()
{
OrderChildOperateLimitConfigVO
config
=
new
OrderChildOperateLimitConfigVO
();
config
.
setStatus
(
EnabledStatusEnum
.
ENABLE
.
getCode
());
// 限制装车距离为1.5
config
.
setAllowUploadDistance
(
new
BigDecimal
(
"1.5"
));
OrderChild
orderChild
=
new
OrderChild
();
orderChild
.
setOrderGoodsNo
(
"ordergoodsno"
);
orderChild
.
setOrderNo
(
"orderno"
);
orderChild
.
setChildNo
(
"orderno"
);
orderChild
.
setStatus
(
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
());
OrderGoods
orderGoods
=
new
OrderGoods
();
when
(
orderChildOperateLimitConfigService
.
listConfig
()).
thenReturn
(
config
);
when
(
orderChildDao
.
getByChildNo
(
param
.
getChildNo
())).
thenReturn
(
Optional
.
of
(
orderChild
));
when
(
orderGoodsDao
.
getByOrderGoodsNo
(
anyString
())).
thenReturn
(
Optional
.
of
(
orderGoods
));
GdRouteDTO
route
=
new
GdRouteDTO
();
//距离装车距离为1000
route
.
setDistance
(
1000
);
when
(
gdService
.
getRoute
(
any
(),
any
(),
any
(),
any
())).
thenReturn
(
Collections
.
singletonList
(
route
));
OrderChildLoadRangeCheckResultVO
result
=
orderChildService
.
loadRangeCheck
(
param
);
assertEquals
(
OrderChildEnum
.
NeedAlertEnum
.
OK
.
getCode
(),
result
.
getCode
());
}
/**
* 运单不存在
*/
@Test
void
loadRangeCheck_whenOrderChildNotFound_shouldReturnNotFound
()
{
OrderChildOperateLimitConfigVO
config
=
new
OrderChildOperateLimitConfigVO
();
config
.
setStatus
(
EnabledStatusEnum
.
ENABLE
.
getCode
());
// 限制装车距离为1.5
config
.
setAllowUploadDistance
(
new
BigDecimal
(
"1.5"
));
when
(
orderChildOperateLimitConfigService
.
listConfig
()).
thenReturn
(
config
);
when
(
orderChildDao
.
getByChildNo
(
param
.
getChildNo
())).
thenReturn
(
new
Optional
<>());
OrderChildLoadRangeCheckResultVO
result
=
orderChildService
.
loadRangeCheck
(
param
);
assertEquals
(
PerformanceResultEnum
.
ORDER_CHILD_NO_FOUND
.
getCode
(),
result
.
getCode
());
assertEquals
(
OrderChildEnum
.
NeedAlertEnum
.
FAIL
.
getCode
(),
result
.
getNeedAlert
());
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论