提交 8369c643 authored 作者: jiangwujie's avatar jiangwujie

Merge branch 'v21.1_jianzhuang_20240807' into dev

...@@ -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;
} }
...@@ -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;
} }
...@@ -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 app; private App purchaseManageApp;
@Autowired @Autowired
private AppDao appDao; private AppDao appDao;
public App getApp() { public App getPurchaseManageApp() {
if (app == null) { if (purchaseManageApp == null) {
app = appDao.getOneByField(App::getUniqueIdentifier, AppEnum.UniqueIdentifier.PURCHASE_MANAGE.getCode()).orElseThrow( purchaseManageApp = appDao.getOneByField(App::getUniqueIdentifier, AppEnum.UniqueIdentifier.PURCHASE_MANAGE.getCode()).orElseThrow(
PerformanceResultEnum.DATA_NOT_FIND);; PerformanceResultEnum.DATA_NOT_FIND);;
} }
return app; return purchaseManageApp;
} }
} }
...@@ -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();
} }
} }
...@@ -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();
} }
......
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);
} }
...@@ -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);
} }
...@@ -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
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_SEND.getCode()); List<Integer> list = Arrays.asList(OrderChildEnum.Status.ARRIVE_SEND.getCode(), OrderChildEnum.Status.LOAD.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;
}
} }
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论