Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
8369c643
提交
8369c643
authored
8月 09, 2024
作者:
jiangwujie
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'v21.1_jianzhuang_20240807' into dev
上级
dd1dcd5d
f9d5b676
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
310 行增加
和
21 行删除
+310
-21
NeedAlertSuperviseInfoParam.java
...lx/performance/param/app/NeedAlertSuperviseInfoParam.java
+9
-4
ClxMessageConfig.java
...ain/java/com/clx/performance/config/ClxMessageConfig.java
+8
-0
LoadAppConfig.java
...c/main/java/com/clx/performance/config/LoadAppConfig.java
+5
-5
AppDriverOrderChildController.java
...ormance/controller/app/AppDriverOrderChildController.java
+1
-2
OrderCancelController.java
.../clx/performance/controller/pc/OrderCancelController.java
+1
-1
OrderCancelService.java
.../java/com/clx/performance/service/OrderCancelService.java
+7
-0
OrderChildService.java
...n/java/com/clx/performance/service/OrderChildService.java
+3
-0
OrderCancelServiceImpl.java
.../clx/performance/service/impl/OrderCancelServiceImpl.java
+66
-0
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+157
-9
OrderChildServiceImpl2Test.java
.../performance/service/impl/OrderChildServiceImpl2Test.java
+53
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/param/app/NeedAlertSuperviseInfoParam.java
浏览文件 @
8369c643
...
@@ -15,12 +15,17 @@ import javax.validation.constraints.NotBlank;
...
@@ -15,12 +15,17 @@ import javax.validation.constraints.NotBlank;
@NoArgsConstructor
@NoArgsConstructor
public
class
NeedAlertSuperviseInfoParam
{
public
class
NeedAlertSuperviseInfoParam
{
@ApiModelProperty
(
value
=
"货单编号"
,
example
=
"100000000"
)
@NotBlank
(
message
=
"货单编号不能为空"
)
private
String
orderGoodsNo
;
@ApiModelProperty
(
value
=
"运单编号"
,
example
=
"100000000"
)
@ApiModelProperty
(
value
=
"运单编号"
,
example
=
"100000000"
)
@NotBlank
(
message
=
"运单编号不能为空"
)
@NotBlank
(
message
=
"运单编号不能为空"
)
private
String
childNo
;
private
String
childNo
;
@ApiModelProperty
(
value
=
"订单编号"
,
example
=
"100000000"
)
@NotBlank
(
message
=
"订单编号不能为空"
)
private
String
orderNo
;
@ApiModelProperty
(
value
=
"类型 1-监装 2-监卸"
,
example
=
"1"
)
@NotBlank
(
message
=
"类型不能为空"
)
private
Integer
type
;
}
}
performance-web/src/main/java/com/clx/performance/config/ClxMessageConfig.java
浏览文件 @
8369c643
...
@@ -35,5 +35,13 @@ public class ClxMessageConfig {
...
@@ -35,5 +35,13 @@ public class ClxMessageConfig {
private
Integer
vehicleWarnChannelId
;
private
Integer
vehicleWarnChannelId
;
//线路报警短信模板
//线路报警短信模板
private
String
lineWarnTemplateCode
;
private
String
lineWarnTemplateCode
;
/**
* 上传装货信息短信模板
*/
private
String
uploadLoadInfo
;
/**
* 提示监装信息短信模板
*/
private
String
noticeSupervision
;
}
}
performance-web/src/main/java/com/clx/performance/config/LoadAppConfig.java
浏览文件 @
8369c643
...
@@ -15,18 +15,18 @@ import org.springframework.stereotype.Component;
...
@@ -15,18 +15,18 @@ import org.springframework.stereotype.Component;
public
class
LoadAppConfig
{
public
class
LoadAppConfig
{
private
App
a
pp
;
private
App
purchaseManageA
pp
;
@Autowired
@Autowired
private
AppDao
appDao
;
private
AppDao
appDao
;
public
App
getApp
()
{
public
App
get
PurchaseManage
App
()
{
if
(
a
pp
==
null
)
{
if
(
purchaseManageA
pp
==
null
)
{
a
pp
=
appDao
.
getOneByField
(
App:
:
getUniqueIdentifier
,
AppEnum
.
UniqueIdentifier
.
PURCHASE_MANAGE
.
getCode
()).
orElseThrow
(
purchaseManageA
pp
=
appDao
.
getOneByField
(
App:
:
getUniqueIdentifier
,
AppEnum
.
UniqueIdentifier
.
PURCHASE_MANAGE
.
getCode
()).
orElseThrow
(
PerformanceResultEnum
.
DATA_NOT_FIND
);;
PerformanceResultEnum
.
DATA_NOT_FIND
);;
}
}
return
a
pp
;
return
purchaseManageA
pp
;
}
}
}
}
performance-web/src/main/java/com/clx/performance/controller/app/AppDriverOrderChildController.java
浏览文件 @
8369c643
...
@@ -203,8 +203,7 @@ public class AppDriverOrderChildController {
...
@@ -203,8 +203,7 @@ public class AppDriverOrderChildController {
@ApiOperation
(
value
=
"是否需要弹出监装信息"
,
notes
=
"<br>By:姜武杰"
)
@ApiOperation
(
value
=
"是否需要弹出监装信息"
,
notes
=
"<br>By:姜武杰"
)
@PostMapping
(
"/needAlertSuperviseInfo"
)
@PostMapping
(
"/needAlertSuperviseInfo"
)
public
Result
<
NeedAlertSuperviseInfoResultVO
>
needAlertSuperviseInfo
(
@RequestBody
@Validated
NeedAlertSuperviseInfoParam
param
)
{
public
Result
<
NeedAlertSuperviseInfoResultVO
>
needAlertSuperviseInfo
(
@RequestBody
@Validated
NeedAlertSuperviseInfoParam
param
)
{
// TODO 待实现
return
Result
.
ok
(
orderChildService
.
needAlertSuperviseInfo
(
param
));
return
Result
.
ok
();
}
}
}
}
performance-web/src/main/java/com/clx/performance/controller/pc/OrderCancelController.java
浏览文件 @
8369c643
...
@@ -75,7 +75,7 @@ public class OrderCancelController {
...
@@ -75,7 +75,7 @@ public class OrderCancelController {
@ApiOperation
(
value
=
"客服解除装车限制"
,
notes
=
"<br>By:姜武杰"
)
@ApiOperation
(
value
=
"客服解除装车限制"
,
notes
=
"<br>By:姜武杰"
)
@PostMapping
(
"/artificialRemoveLoadLimit"
)
@PostMapping
(
"/artificialRemoveLoadLimit"
)
public
Result
<
Object
>
artificialRemoveLoadLimit
(
@RequestBody
ArtificialCancelOrderParam
param
)
{
public
Result
<
Object
>
artificialRemoveLoadLimit
(
@RequestBody
ArtificialCancelOrderParam
param
)
{
// TODO 待实现
orderCancelService
.
removeLoadLimit
(
param
);
return
Result
.
ok
();
return
Result
.
ok
();
}
}
...
...
performance-web/src/main/java/com/clx/performance/service/OrderCancelService.java
浏览文件 @
8369c643
package
com
.
clx
.
performance
.
service
;
package
com
.
clx
.
performance
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.param.pc.ArtificialCancelOrderParam
;
import
com.clx.performance.param.pc.ArtificialCancelOrderQueryParam
;
import
com.clx.performance.param.pc.ArtificialCancelOrderQueryParam
;
import
com.clx.performance.param.pc.OrderCancelParam
;
import
com.clx.performance.param.pc.OrderCancelParam
;
import
com.clx.performance.param.pc.OrderChildCancelRecordParam
;
import
com.clx.performance.param.pc.OrderChildCancelRecordParam
;
...
@@ -56,4 +57,10 @@ public interface OrderCancelService {
...
@@ -56,4 +57,10 @@ public interface OrderCancelService {
* @return
* @return
*/
*/
IPage
<
OrderChildOperateRecordVO
>
orderChildOperateRecord
(
OrderChildCancelRecordParam
param
);
IPage
<
OrderChildOperateRecordVO
>
orderChildOperateRecord
(
OrderChildCancelRecordParam
param
);
/**
* 客服移除监装限制
* @param param
*/
void
removeLoadLimit
(
ArtificialCancelOrderParam
param
);
}
}
performance-web/src/main/java/com/clx/performance/service/OrderChildService.java
浏览文件 @
8369c643
...
@@ -116,4 +116,7 @@ public interface OrderChildService {
...
@@ -116,4 +116,7 @@ public interface OrderChildService {
OrderChildLoadRangeCheckResultVO
loadRangeCheck
(
OrderChildLoadRangeCheckParam
param
);
OrderChildLoadRangeCheckResultVO
loadRangeCheck
(
OrderChildLoadRangeCheckParam
param
);
void
orderChildMessageNotice
();
void
orderChildMessageNotice
();
NeedAlertSuperviseInfoResultVO
needAlertSuperviseInfo
(
NeedAlertSuperviseInfoParam
param
);
}
}
performance-web/src/main/java/com/clx/performance/service/impl/OrderCancelServiceImpl.java
浏览文件 @
8369c643
...
@@ -23,7 +23,9 @@ import com.clx.performance.enums.*;
...
@@ -23,7 +23,9 @@ import com.clx.performance.enums.*;
import
com.clx.performance.extranal.user.DriverService
;
import
com.clx.performance.extranal.user.DriverService
;
import
com.clx.performance.extranal.user.OwnerInfoService
;
import
com.clx.performance.extranal.user.OwnerInfoService
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.model.OrderChildOperateRecord
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.param.pc.ArtificialCancelOrderParam
;
import
com.clx.performance.param.pc.ArtificialCancelOrderQueryParam
;
import
com.clx.performance.param.pc.ArtificialCancelOrderQueryParam
;
import
com.clx.performance.param.pc.OrderCancelParam
;
import
com.clx.performance.param.pc.OrderCancelParam
;
import
com.clx.performance.param.pc.OrderChildCancelRecordParam
;
import
com.clx.performance.param.pc.OrderChildCancelRecordParam
;
...
@@ -599,6 +601,16 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -599,6 +601,16 @@ public class OrderCancelServiceImpl implements OrderCancelService {
public
void
artificialCancelOrder
(
String
orderChildNo
,
String
remark
)
{
public
void
artificialCancelOrder
(
String
orderChildNo
,
String
remark
)
{
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
now
=
LocalDateTime
.
now
();
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
orderChildNo
).
orElseThrow
(
PerformanceResultEnum
.
ORDER_CHILD_NO_FOUND
);
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
orderChildNo
).
orElseThrow
(
PerformanceResultEnum
.
ORDER_CHILD_NO_FOUND
);
//运单状态不在【装车成功】【前往目的地】【到达目的地】【收货待确认】范围中,不允许取消
if
(!
Arrays
.
asList
(
OrderChildEnum
.
Status
.
LOAD
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
UNLOAD
.
getCode
())
.
contains
(
orderChild
.
getStatus
()))
{
log
.
error
(
"运单:{} 状态:{}不在【装车成功】【前往目的地】【到达目的地】【收货待确认】范围中,不允许取消"
,
orderChildNo
,
orderChild
.
getStatus
());
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_CANCEL_FORBID
,
"不可操作"
);
}
OrderChild
update
=
new
OrderChild
();
OrderChild
update
=
new
OrderChild
();
update
.
setId
(
orderChild
.
getId
());
update
.
setId
(
orderChild
.
getId
());
update
.
setStatus
(
OrderChildEnum
.
Status
.
ARTIFICIAL_CANCEL
.
getCode
());
update
.
setStatus
(
OrderChildEnum
.
Status
.
ARTIFICIAL_CANCEL
.
getCode
());
...
@@ -614,10 +626,14 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -614,10 +626,14 @@ public class OrderCancelServiceImpl implements OrderCancelService {
// 运单取消
// 运单取消
orderChildPostService
.
orderChildCancelByArtificial
(
orderChildNo
);
orderChildPostService
.
orderChildCancelByArtificial
(
orderChildNo
);
// 保存操作记录
orderChildLogService
.
saveOrderChildLog
(
orderChild
.
getChildNo
(),
orderChildLogService
.
saveOrderChildLog
(
orderChild
.
getChildNo
(),
OrderChildEnum
.
Status
.
ARTIFICIAL_CANCEL
.
getCode
(),
OrderChildEnum
.
Status
.
ARTIFICIAL_CANCEL
.
getName
(),
OrderChildEnum
.
Status
.
ARTIFICIAL_CANCEL
.
getCode
(),
OrderChildEnum
.
Status
.
ARTIFICIAL_CANCEL
.
getName
(),
OrderChildLogEnum
.
CreateType
.
ARTIFICIAL
.
getCode
(),
0L
,
OrderChildLogEnum
.
CreateType
.
ARTIFICIAL
.
getMsg
()
OrderChildLogEnum
.
CreateType
.
ARTIFICIAL
.
getCode
(),
0L
,
OrderChildLogEnum
.
CreateType
.
ARTIFICIAL
.
getMsg
()
);
);
// 保存运单处理记录
saveOrderChildOperateRecord
(
orderChild
,
OrderChildEnum
.
OperateRecordType
.
CANCEL_ORDER
,
remark
);
}
}
@Override
@Override
...
@@ -653,5 +669,54 @@ public class OrderCancelServiceImpl implements OrderCancelService {
...
@@ -653,5 +669,54 @@ public class OrderCancelServiceImpl implements OrderCancelService {
return
orderChildOperateRecordDao
.
orderChildOperateRecord
(
param
);
return
orderChildOperateRecordDao
.
orderChildOperateRecord
(
param
);
}
}
@Override
public
void
removeLoadLimit
(
ArtificialCancelOrderParam
param
)
{
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
param
.
getOrderChildNo
()).
orElseThrow
(
PerformanceResultEnum
.
ORDER_CHILD_NO_FOUND
);
//判断运单状态【已接单】【前往货源地】【到达货源地】时可对该运单解除装车限制,否则toast:不可操作
if
(!
Arrays
.
asList
(
OrderChildEnum
.
Status
.
CREATED
.
getCode
(),
OrderChildEnum
.
Status
.
GO_TO_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
())
.
contains
(
orderChild
.
getStatus
()))
{
log
.
error
(
"运单:{} 状态:{}不在【已接单】【前往货源地】【到达货源地】范围中,不允许解除装车限制"
,
param
.
getOrderChildNo
(),
orderChild
.
getStatus
());
throw
new
ServiceSystemException
(
PerformanceResultEnum
.
ORDER_CHILD_CANCEL_FORBID
,
"不可操作"
);
}
OrderChild
update
=
new
OrderChild
();
update
.
setId
(
orderChild
.
getId
());
update
.
setRemoveLoadLimitStatus
(
OrderChildEnum
.
RemoveLoadLimitStatus
.
REMOVED
.
getCode
());
orderChildDao
.
updateEntityByKey
(
update
);
//保存运单处理记录
saveOrderChildOperateRecord
(
orderChild
,
OrderChildEnum
.
OperateRecordType
.
REMOVE_LIMIT
,
param
.
getRemark
());
//保存运单操作记录
orderChildLogService
.
saveOrderChildLog
(
orderChild
.
getChildNo
(),
orderChild
.
getStatus
(),
OrderChildEnum
.
OperateRecordType
.
REMOVE_LIMIT
.
getMsg
(),
OrderChildLogEnum
.
CreateType
.
ARTIFICIAL
.
getCode
(),
0L
,
OrderChildLogEnum
.
CreateType
.
ARTIFICIAL
.
getMsg
()
);
}
private
void
saveOrderChildOperateRecord
(
OrderChild
orderChild
,
OrderChildEnum
.
OperateRecordType
type
,
String
remark
)
{
OrderChildOperateRecord
record
=
new
OrderChildOperateRecord
();
record
.
setChildNo
(
orderChild
.
getChildNo
());
record
.
setType
(
type
.
getCode
());
record
.
setTruckNo
(
orderChild
.
getTruckNo
());
record
.
setDriverName
(
orderChild
.
getDriverName
());
record
.
setDriverMobile
(
orderChild
.
getDriverMobile
());
record
.
setSendAddress
(
orderChild
.
getSendAddress
());
record
.
setReceiveAddress
(
orderChild
.
getReceiveAddress
());
FeignOrderVO
orderInfoFeign
=
orderFeign
.
getOrderInfoFeign
(
orderChild
.
getOrderNo
());
if
(
orderInfoFeign
!=
null
)
{
record
.
setGoodTypeName
(
orderInfoFeign
.
getGoodsTypeName
());
}
record
.
setRemark
(
remark
);
record
.
setOperateTime
(
LocalDateTime
.
now
());
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
record
.
setOperator
(
loginUserInfo
.
getUserName
());
record
.
setCreatedTime
(
LocalDateTime
.
now
());
record
.
setModifiedTime
(
LocalDateTime
.
now
());
orderChildOperateRecordDao
.
saveEntity
(
record
);
}
}
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
8369c643
package
com
.
clx
.
performance
.
service
.
impl
;
package
com
.
clx
.
performance
.
service
.
impl
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
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.message.feign.ClxMessageOpenapiFeign
;
import
com.clx.message.req.message.AliSmsMessageReq
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.order.enums.ResultEnum
;
import
com.clx.order.enums.ResultEnum
;
import
com.clx.order.enums.*
;
import
com.clx.order.enums.*
;
...
@@ -15,6 +18,8 @@ import com.clx.order.vo.pc.carrier.InvoicingCompanyVO;
...
@@ -15,6 +18,8 @@ import com.clx.order.vo.pc.carrier.InvoicingCompanyVO;
import
com.clx.order.vo.pc.owner.OwnerQuotationDetailVO
;
import
com.clx.order.vo.pc.owner.OwnerQuotationDetailVO
;
import
com.clx.performance.component.GoodsOrderTruckRecordComponent
;
import
com.clx.performance.component.GoodsOrderTruckRecordComponent
;
import
com.clx.performance.component.OrderChildLoanComponent
;
import
com.clx.performance.component.OrderChildLoanComponent
;
import
com.clx.performance.config.ClxMessageConfig
;
import
com.clx.performance.config.LoadAppConfig
;
import
com.clx.performance.config.TencentCloudApiOcrConfig
;
import
com.clx.performance.config.TencentCloudApiOcrConfig
;
import
com.clx.performance.constant.RedisConstants
;
import
com.clx.performance.constant.RedisConstants
;
import
com.clx.performance.constant.RedissonConstants
;
import
com.clx.performance.constant.RedissonConstants
;
...
@@ -78,12 +83,18 @@ import com.msl.common.base.Optional;
...
@@ -78,12 +83,18 @@ import com.msl.common.base.Optional;
import
com.msl.common.base.PageParam
;
import
com.msl.common.base.PageParam
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.enums.ResultCodeEnum
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.exception.ServiceSystemException
;
import
com.msl.common.open.OpenClient
;
import
com.msl.common.open.RequestConfig
;
import
com.msl.common.result.Result
;
import
com.msl.common.result.Result
;
import
com.msl.common.utils.DateUtils
;
import
com.msl.common.utils.DateUtils
;
import
com.msl.common.utils.LocalDateTimeUtils
;
import
com.msl.common.utils.LocalDateTimeUtils
;
import
com.msl.common.utils.gps.GpsUtil
;
import
com.msl.common.utils.gps.GpsUtil
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.data.UserSessionData
;
import
com.msl.user.utils.TokenUtil
;
import
com.msl.user.utils.TokenUtil
;
import
com.purchase.manage.action.SupplyChainSupervisionLoadAction
;
import
com.purchase.manage.action.SupplyChainSupervisionLoadTruckAction
;
import
com.purchase.manage.dto.SupervisionLoadInfoDto
;
import
com.purchase.manage.dto.SupervisionLoadTruckInfoDto
;
import
com.tencentcloudapi.common.Credential
;
import
com.tencentcloudapi.common.Credential
;
import
com.tencentcloudapi.common.exception.TencentCloudSDKException
;
import
com.tencentcloudapi.common.exception.TencentCloudSDKException
;
import
com.tencentcloudapi.ocr.v20181119.OcrClient
;
import
com.tencentcloudapi.ocr.v20181119.OcrClient
;
...
@@ -245,7 +256,13 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -245,7 +256,13 @@ public class OrderChildServiceImpl implements OrderChildService {
@Autowired
@Autowired
private
OrderChildOperateLimitConfigService
orderChildOperateLimitConfigService
;
private
OrderChildOperateLimitConfigService
orderChildOperateLimitConfigService
;
@Autowired
@Autowired
private
LoadAppConfig
appConfig
;
@Autowired
private
DriverNoticeConfigService
driverNoticeConfigService
;
private
DriverNoticeConfigService
driverNoticeConfigService
;
@Autowired
private
ClxMessageOpenapiFeign
clxMessageOpenapiFeign
;
@Autowired
private
ClxMessageConfig
messageConfig
;
@PostConstruct
@PostConstruct
public
void
init
(){
public
void
init
(){
...
@@ -3198,8 +3215,8 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -3198,8 +3215,8 @@ public class OrderChildServiceImpl implements OrderChildService {
//查询平台车辆的定位信息
//查询平台车辆的定位信息
Map
<
String
,
TruckTraceDTO
>
truckTraceMap
=
redisTemplate
.
opsForHash
().
entries
(
Map
<
String
,
TruckTraceDTO
>
truckTraceMap
=
redisTemplate
.
opsForHash
().
entries
(
RedisConstants
.
ZJXL_TRUCK_TRACE_LIST
);
RedisConstants
.
ZJXL_TRUCK_TRACE_LIST
);
//查询平台
到达货源地
的订单
//查询平台
(到达货源地、已装货)
的订单
List
<
Integer
>
list
=
Collections
.
singletonList
(
OrderChildEnum
.
Status
.
ARRIVE_SEN
D
.
getCode
());
List
<
Integer
>
list
=
Arrays
.
asList
(
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
(),
OrderChildEnum
.
Status
.
LOA
D
.
getCode
());
LocalDateTime
endTime
=
LocalDateTime
.
now
();
LocalDateTime
endTime
=
LocalDateTime
.
now
();
LocalDateTime
startTime
=
endTime
.
minusMonths
(
1
);
LocalDateTime
startTime
=
endTime
.
minusMonths
(
1
);
List
<
OrderChild
>
orderChildList
=
orderChildDao
.
listOrderChild
(
list
,
startTime
,
endTime
);
List
<
OrderChild
>
orderChildList
=
orderChildDao
.
listOrderChild
(
list
,
startTime
,
endTime
);
...
@@ -3235,21 +3252,97 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -3235,21 +3252,97 @@ public class OrderChildServiceImpl implements OrderChildService {
}
}
//距离
//距离
Integer
distance
=
route
.
getDistance
();
Integer
distance
=
route
.
getDistance
();
//超出货源地x公里范围了,且通知状态为未通知
// 超出货源地+通知触发距离
if
(
distance
>=
driverNoticeConfigVO
.
getNoticeTriggerDistanceMeter
())
{
if
(
distance
>
driverNoticeConfigVO
.
getNoticeTriggerDistanceMeter
())
{
if
(
Objects
.
equals
(
child
.
getEnterExitSendStatus
(),
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_OUT
.
getCode
())
if
(
Objects
.
equals
(
child
.
getExitNoticeStatus
(),
OrderChildEnum
.
ExitNoticeStatus
.
NOT_NOTIFIED
.
getCode
())
&&
Objects
.
equals
(
child
.
getExitNoticeStatus
(),
OrderChildEnum
.
ExitNoticeStatus
.
NOT_NOTIFIED
.
getCode
())
)
{
)
{
//超出货源地x公里范围了,且通知状态为未通知
// 到达货源地
if
(
Objects
.
equals
(
child
.
getStatus
(),
OrderChildEnum
.
Status
.
ARRIVE_SEND
.
getCode
()))
{
sendLoadSms
(
child
.
getDriverMobile
(),
child
.
getTruckNo
(),
child
.
getChildNo
());
}
// todo 监装位置
String
supervisionAddress
=
""
;
// 已装货
if
(
Objects
.
equals
(
child
.
getStatus
(),
OrderChildEnum
.
Status
.
LOAD
.
getCode
()))
{
sendSupervisionSms
(
child
.
getDriverMobile
(),
child
.
getTruckNo
(),
child
.
getChildNo
(),
supervisionAddress
);
}
// 修改 通知状态 为已通知
child
.
setExitNoticeStatus
(
OrderChildEnum
.
ExitNoticeStatus
.
NOTIFIED
.
getCode
());
child
.
setEnterExitSendStatus
(
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_OUT
.
getCode
());
}
}
// orderChild.getExitNoticeStatus(OrderChildEnum.ExitNoticeStatus.NOT_NOTICE.getCode());
}
else
{
// 未超出货源地+通知触发距离
// 驶入货源地+通知触发距离范围内了
if
(
Objects
.
equals
(
child
.
getEnterExitSendStatus
(),
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_OUT
.
getCode
()))
{
//驶入货源地x公里范围了,且通知状态为已通知
// 修改 通知状态 为未通知
child
.
setExitNoticeStatus
(
OrderChildEnum
.
ExitNoticeStatus
.
NOT_NOTIFIED
.
getCode
());
// 状态改为驶入货源地
child
.
setEnterExitSendStatus
(
OrderChildEnum
.
EnterExitSendStatus
.
DRIVE_IN
.
getCode
());
}
}
}
}
}
}
}
}
}
/**
* 发送上传装货信息短信
* ①判断运单是否装车完成,如未完成,发送短信给运单关联司机,
* 【当前车牌号${truckNo},运单${childNo}未上传装车信息,请上传后再驶离货源地,如需帮助请联系客服。】
* truckNo:当前运单关联车牌号
* childNo:运单单号
*
* @param mobile 手机号
* @param truckNo 当前运单关联车牌号
* @param childNo 运单单号
*/
private
void
sendLoadSms
(
String
mobile
,
String
truckNo
,
String
childNo
)
{
AliSmsMessageReq
req
=
new
AliSmsMessageReq
();
// 模板CODE
//SMS_470795021
req
.
setTemplateCode
(
messageConfig
.
getUploadLoadInfo
());
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
set
(
"truckNo"
,
truckNo
);
jsonObject
.
set
(
"childNo"
,
childNo
);
req
.
setChannelId
(
messageConfig
.
getChannelId
());
req
.
setAppId
(
messageConfig
.
getAppId
().
toString
());
req
.
setMobile
(
mobile
);
req
.
setContent
(
jsonObject
.
toString
());
req
.
setExpire
(
300L
);
clxMessageOpenapiFeign
.
sendAliSms
(
req
);
}
/**
* 发送监装提示信息
* ②判断如运单装车完成,且运单有监装任务(未取消),如该监装任务(任务类型为【监装任务】)中该车辆未完成监装,发送短信给对应司机,
* 【当前车牌号${truckNo},运单${childNo}需要进行现场监装,请您前往${supervision_address}进行配合,如需帮助请联系客服。】
* truckNo:当前运单关联车牌号
* childNo:运单单号
* supervision_address:监装地址(取运单关联的监装【任务地址】)
*
* @param mobile 手机号
* @param truckNo 当前运单关联车牌号
* @param childNo 运单单号
*/
private
void
sendSupervisionSms
(
String
mobile
,
String
truckNo
,
String
childNo
,
String
supervisionAddress
)
{
AliSmsMessageReq
req
=
new
AliSmsMessageReq
();
//模板CODE
//SMS_470740013
req
.
setTemplateCode
(
messageConfig
.
getNoticeSupervision
());
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
set
(
"truckNo"
,
truckNo
);
jsonObject
.
set
(
"childNo"
,
childNo
);
jsonObject
.
set
(
"supervision_address"
,
supervisionAddress
);
req
.
setChannelId
(
messageConfig
.
getChannelId
());
req
.
setAppId
(
messageConfig
.
getAppId
().
toString
());
req
.
setMobile
(
mobile
);
req
.
setContent
(
jsonObject
.
toString
());
req
.
setExpire
(
300L
);
clxMessageOpenapiFeign
.
sendAliSms
(
req
);
}
private
BigDecimal
[]
getTruckLocation
(
String
truckNo
,
BigDecimal
longitude
,
BigDecimal
latitude
)
{
private
BigDecimal
[]
getTruckLocation
(
String
truckNo
,
BigDecimal
longitude
,
BigDecimal
latitude
)
{
TruckLocationDTO
truckLocationDTO
=
null
;
TruckLocationDTO
truckLocationDTO
=
null
;
try
{
try
{
...
@@ -3474,4 +3567,59 @@ public class OrderChildServiceImpl implements OrderChildService {
...
@@ -3474,4 +3567,59 @@ public class OrderChildServiceImpl implements OrderChildService {
orderGoodsTruckBindDao
.
batchCancelTruckList
(
updateList
);
orderGoodsTruckBindDao
.
batchCancelTruckList
(
updateList
);
}
}
}
}
@Override
public
NeedAlertSuperviseInfoResultVO
needAlertSuperviseInfo
(
NeedAlertSuperviseInfoParam
param
)
{
//返回对象
NeedAlertSuperviseInfoResultVO
result
=
new
NeedAlertSuperviseInfoResultVO
();
App
app
=
appConfig
.
getPurchaseManageApp
();
//对接马上来供应链配置信息
//组装配置信息
RequestConfig
config
=
new
RequestConfig
()
.
setAppId
(
app
.
getAppNo
())
.
setAppKey
(
app
.
getAppKey
())
.
setGatewayUrl
(
app
.
getCallback
());
//通过订单号查询监装监卸信息
SupplyChainSupervisionLoadAction
action
=
new
SupplyChainSupervisionLoadAction
();
action
.
setOrderNo
(
param
.
getOrderNo
());
action
.
setType
(
param
.
getType
());
log
.
info
(
"请求获取监装监卸信息参数,{}"
,
action
);
Result
<
SupervisionLoadInfoDto
>
supervisionLoadInfoDto
=
OpenClient
.
doAction
(
config
,
action
);
if
(!
supervisionLoadInfoDto
.
succeed
()){
//接口调用失败
result
.
setNeedAlert
(
0
);
return
result
;
//throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "获取监装监卸信息失败");
}
SupervisionLoadInfoDto
supervisionLoadInfo
=
supervisionLoadInfoDto
.
getData
();
//监装信息
if
(
Objects
.
nonNull
(
supervisionLoadInfo
)){
//有监装信息
//通过运单号查询监装监卸子任务状态
SupplyChainSupervisionLoadTruckAction
truckAction
=
new
SupplyChainSupervisionLoadTruckAction
();
truckAction
.
setChildNo
(
param
.
getChildNo
());
truckAction
.
setType
(
param
.
getType
());
log
.
info
(
"请求获取监装监卸子任务信息参数,{}"
,
truckAction
);
Result
<
SupervisionLoadTruckInfoDto
>
supervisionLoadTruckInfoDto
=
OpenClient
.
doAction
(
config
,
truckAction
);
if
(!
supervisionLoadTruckInfoDto
.
succeed
()){
//接口调用失败
result
.
setNeedAlert
(
0
);
return
result
;
//throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "获取监装监卸信息子任务失败");
}
SupervisionLoadTruckInfoDto
supervisionLoadTruckInfo
=
supervisionLoadTruckInfoDto
.
getData
();
if
(
Objects
.
nonNull
(
supervisionLoadTruckInfo
)){
if
(
supervisionLoadTruckInfo
.
getLoadStatus
()){
result
.
setNeedAlert
(
1
);
result
.
setLocation
(
supervisionLoadInfo
.
getTaskAddress
());
result
.
setMobile
(
supervisionLoadInfo
.
getTaskMobile
());
result
.
setSupervisor
(
supervisionLoadInfo
.
getTaskContracts
());
return
result
;
}
}
}
result
.
setNeedAlert
(
0
);
return
result
;
}
}
}
performance-web/src/test/java/com/clx/performance/service/impl/OrderChildServiceImpl2Test.java
0 → 100644
浏览文件 @
8369c643
package
com
.
clx
.
performance
.
service
.
impl
;
import
com.clx.performance.service.DriverNoticeConfigService
;
import
com.clx.performance.vo.pc.DriverNoticeConfigVO
;
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.springframework.data.redis.core.RedisTemplate
;
import
java.math.BigDecimal
;
import
static
org
.
mockito
.
Mockito
.
when
;
@ExtendWith
(
MockitoExtension
.
class
)
public
class
OrderChildServiceImpl2Test
{
@Mock
private
RedisTemplate
redisTemplate
;
@Mock
private
DriverNoticeConfigService
driverNoticeConfigService
;
@InjectMocks
private
OrderChildServiceImpl
orderChildService
;
@BeforeEach
void
setUp
()
{
// Setup common mock interactions here if any
}
@Test
void
testOrderChildMessageNotice
()
{
orderChildService
.
orderChildMessageNotice
();
}
@Test
void
testOrderChildMessageNoticeListConfigDisabled
()
{
// Arrange
DriverNoticeConfigVO
configVO
=
new
DriverNoticeConfigVO
();
configVO
.
setStatus
(
0
);
configVO
.
setNoticeTriggerDistance
(
BigDecimal
.
valueOf
(
5000
));
when
(
driverNoticeConfigService
.
listConfig
()).
thenReturn
(
configVO
);
orderChildService
.
orderChildMessageNotice
();
}
}
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论