提交 7ef33231 authored 作者: huyufan's avatar huyufan

Merge remote-tracking branch 'origin/v6.4_transportation_20231110' into…

Merge remote-tracking branch 'origin/v6.4_transportation_20231110' into v6.4_transportation_20231110
...@@ -12,8 +12,8 @@ public enum CollectTruckWaitEnum { ...@@ -12,8 +12,8 @@ public enum CollectTruckWaitEnum {
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum ReportType { public enum ReportType {
LOAD(1, "装车类型"), LOAD(1, "货源地排队"),
UNLOAD(2, "卸车类型"); UNLOAD(2, "目的地排队");
private final Integer code; private final Integer code;
private final String msg; private final String msg;
......
...@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@FeignClient(name = "clx-performance") @FeignClient(name = "clx-performance")
...@@ -20,4 +21,11 @@ public interface OrderChildFeign { ...@@ -20,4 +21,11 @@ public interface OrderChildFeign {
Result<OrderChildLineStatisticsVO> lineStatistics(@RequestParam @NotNull(message = "发货地址不可为空") Integer sendSystemAddressId, Result<OrderChildLineStatisticsVO> lineStatistics(@RequestParam @NotNull(message = "发货地址不可为空") Integer sendSystemAddressId,
@RequestParam @NotNull(message = "收货货地不可为空") Integer receiveSystemAddressId); @RequestParam @NotNull(message = "收货货地不可为空") Integer receiveSystemAddressId);
@RequestMapping(value = "clx-performance/feign/orderChild/syncLastTruck", method = RequestMethod.GET)
Result<?> syncLastTruck(@RequestParam("orderNo") @NotBlank(message = "订单编号不能为空") String orderNo);
} }
...@@ -3,10 +3,10 @@ package com.clx.performance.vo.pc; ...@@ -3,10 +3,10 @@ package com.clx.performance.vo.pc;
import com.clx.performance.util.NumberToChineseUtil; import com.clx.performance.util.NumberToChineseUtil;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.*;
import lombok.NoArgsConstructor;
import lombok.Setter; import java.util.Arrays;
import lombok.ToString; import java.util.List;
/** /**
* @Author: aiqinguo * @Author: aiqinguo
...@@ -58,4 +58,28 @@ public class IntegralTruckVO { ...@@ -58,4 +58,28 @@ public class IntegralTruckVO {
@ApiModelProperty(value = "信息上报积分", example = "1") @ApiModelProperty(value = "信息上报积分", example = "1")
private Integer reportIntegral=0; private Integer reportIntegral=0;
@ApiModelProperty(value = "信息上报积分", example = "1")
private List<IntegralItem> integralItemList;
public List<IntegralItem> getIntegralItemList() {
return Arrays.asList(
new IntegralItem("运单完成积分", orderChildCompleteIntegral),
new IntegralItem("平台补偿积分", platformCompensationIntegral),
new IntegralItem("运单取消积分", orderChildCancelIntegral),
new IntegralItem("运单超时积分", orderChildTimeoutIntegral),
new IntegralItem("信息上报积分", reportIntegral)
);
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public static class IntegralItem{
@ApiModelProperty(value = "名称", example = "1")
private String name;
@ApiModelProperty(value = "信息上报积分", example = "1")
private Integer integral;
}
} }
\ No newline at end of file
...@@ -30,4 +30,8 @@ public class OrderChildLineStatisticsVO { ...@@ -30,4 +30,8 @@ public class OrderChildLineStatisticsVO {
@ApiModelProperty("时长均值") @ApiModelProperty("时长均值")
private Integer timeAvg; private Integer timeAvg;
@ApiModelProperty("司机运费")
private BigDecimal driverFreight;
} }
...@@ -84,7 +84,7 @@ public class CollectTruckWaitVO { ...@@ -84,7 +84,7 @@ public class CollectTruckWaitVO {
@ApiModelProperty(value = "预计等待时长图片", example = "") @ApiModelProperty(value = "预计等待时长图片", example = "")
private List<String> stationImageList; private List<String> stationImageList;
public List<String> getStationImageList() { public List<String> getStationImageList() {
return StringUtils.isEmpty(stationOutImage)? new ArrayList<>() : JSON.parseArray(stationInImage, String.class); return StringUtils.isEmpty(stationInImage)? new ArrayList<>() : JSON.parseArray(stationInImage, String.class);
} }
@ApiModelProperty(value = "上报时间", example = "") @ApiModelProperty(value = "上报时间", example = "")
......
...@@ -2,6 +2,7 @@ package com.clx.performance.controller.feign; ...@@ -2,6 +2,7 @@ package com.clx.performance.controller.feign;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.service.LastTruckService;
import com.clx.performance.service.OrderChildService; import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.child.FeignOrderChildService; import com.clx.performance.service.child.FeignOrderChildService;
import com.clx.performance.vo.pc.child.OrderChildLineStatisticsVO; import com.clx.performance.vo.pc.child.OrderChildLineStatisticsVO;
...@@ -12,6 +13,7 @@ import lombok.AllArgsConstructor; ...@@ -12,6 +13,7 @@ import lombok.AllArgsConstructor;
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 javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
...@@ -26,6 +28,8 @@ public class OrderChildFeignController { ...@@ -26,6 +28,8 @@ public class OrderChildFeignController {
private final FeignOrderChildService feignOrderChildService; private final FeignOrderChildService feignOrderChildService;
private final LastTruckService lastTruckService;
@GetMapping({"/getOrderChildTotalByUserNo"}) @GetMapping({"/getOrderChildTotalByUserNo"})
Integer getTrucksByOrderGoodsNo(@RequestParam("userNo") @NotNull(message = "用户编号不可为空") Long userNo) { Integer getTrucksByOrderGoodsNo(@RequestParam("userNo") @NotNull(message = "用户编号不可为空") Long userNo) {
...@@ -58,4 +62,13 @@ public class OrderChildFeignController { ...@@ -58,4 +62,13 @@ public class OrderChildFeignController {
} }
@ApiOperation(value = "运单取消/到达最晚拉运时间 同步最后一车", notes = "<br>By:刘海泉")
@RequestMapping(value = "/syncLastTruck", method = RequestMethod.GET)
Result<?> syncLastTruck(@RequestParam("orderNo") @NotBlank(message = "订单编号不能为空") String orderNo){
return lastTruckService.syncLastTruckChild4OrderTrigger(orderNo);
}
} }
...@@ -11,7 +11,6 @@ import com.clx.performance.vo.app.OrderChildVO; ...@@ -11,7 +11,6 @@ import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO; import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO; import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.base.PageParam;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -152,4 +151,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -152,4 +151,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> selectInOrderChildNoList(List<String> childNoList); List<OrderChild> selectInOrderChildNoList(List<String> childNoList);
List<Double> getLossNet(OrderChildReportParam param); List<Double> getLossNet(OrderChildReportParam param);
BigDecimal getLastDriverFreightByTransportLine(Integer sendSystemAddressId, Integer receiveSystemAddressId);
OrderChild findLastTruckChildByCreateTime(String orderNo);
} }
...@@ -13,11 +13,9 @@ import com.clx.performance.param.app.PageOrderChildOfDriverParam; ...@@ -13,11 +13,9 @@ import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam; import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam;
import com.clx.performance.param.pc.*; import com.clx.performance.param.pc.*;
import com.clx.performance.vo.app.OrderChildVO; import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO; import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO; import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.base.PageParam;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -25,6 +23,7 @@ import org.springframework.stereotype.Repository; ...@@ -25,6 +23,7 @@ import org.springframework.stereotype.Repository;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* @Author: aiqinguo * @Author: aiqinguo
...@@ -452,4 +451,27 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -452,4 +451,27 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public List<Double> getLossNet(OrderChildReportParam param) { public List<Double> getLossNet(OrderChildReportParam param) {
return baseMapper.getLossNet(param); return baseMapper.getLossNet(param);
} }
@Override
public BigDecimal getLastDriverFreightByTransportLine(Integer sendSystemAddressId, Integer receiveSystemAddressId) {
LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper<>();
query.eq(OrderChild :: getSendSystemAddressId,sendSystemAddressId);
query.eq(OrderChild :: getReceiveSystemAddressId,receiveSystemAddressId);
query.orderByDesc(OrderChild :: getCreateTime);
query.last("limit 1");
OrderChild child = baseMapper.selectOne(query);
if(Objects.nonNull(child)){
return child.getFreight();
}
return BigDecimal.ZERO;
}
@Override
public OrderChild findLastTruckChildByCreateTime(String orderNo) {
LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper<>();
query.eq(OrderChild :: getOrderNo,orderNo);
query.orderByDesc(OrderChild ::getCreateTime);
query.last("limit 1");
return baseMapper.selectOne(query);
}
} }
...@@ -99,13 +99,7 @@ public class OrderChildDtsListener { ...@@ -99,13 +99,7 @@ public class OrderChildDtsListener {
if(after.getStatus() >= OrderChildEnum.Status.ARRIVE_RECEIVE.getCode() && after.getStatus() <= OrderChildEnum.Status.COMPLETE.getCode()){ if(after.getStatus() >= OrderChildEnum.Status.ARRIVE_RECEIVE.getCode() && after.getStatus() <= OrderChildEnum.Status.COMPLETE.getCode()){
OrderChild child = lastTruckService.getLastTruckChild(after.getOrderNo()); OrderChild child = lastTruckService.getLastTruckChild(after.getOrderNo());
if(Objects.nonNull(child)){ if(Objects.nonNull(child)){
OrderChildMessage message = orderChildStruct.convertMessage(child); lastTruckService.syncLastTruckChild(child);
message.setLastFlag(ResultStatusEnum.YES.getCode());
log.info("开始同步最后一车的运单,运单编号:{},运单信息:{}",child.getChildNo(),JSON.toJSONString(message));
OpenCallBackClient client2 = new OpenCallBackClient(mslAppConfig.getUrl(),mslAppConfig.getAppId(),mslAppConfig.getSecret());
Result<?> result2 = client2.encryptPost(JSON.toJSONString(message),message.topic());
log.info("结束同步最后一车的运单,运单编号:{},响应结果:{}",child.getChildNo(),JSON.toJSONString(result2));
} }
} }
} }
......
package com.clx.performance.service; package com.clx.performance.service;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.msl.common.result.Result;
public interface LastTruckService { public interface LastTruckService {
OrderChild getLastTruckChild(String orderNo); OrderChild getLastTruckChild(String orderNo);
Result<?> syncLastTruckChild(OrderChild child);
Result<?> syncLastTruckChild4OrderTrigger(String orderNo);
} }
package com.clx.performance.service.impl; package com.clx.performance.service.impl;
import com.alibaba.fastjson.JSON;
import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.callback.message.OrderChildMessage;
import com.clx.open.sdk.enums.ResultStatusEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.config.MslAppConfig;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.service.LastTruckService; import com.clx.performance.service.LastTruckService;
import com.clx.performance.struct.OrderChildStruct;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -26,6 +33,8 @@ public class LastTruckServiceImpl implements LastTruckService { ...@@ -26,6 +33,8 @@ public class LastTruckServiceImpl implements LastTruckService {
private final OrderFeign orderFeign; private final OrderFeign orderFeign;
private final OrderChildDao orderChildDao; private final OrderChildDao orderChildDao;
private final OrderChildStruct orderChildStruct;
private final MslAppConfig mslAppConfig;
/** /**
* @Author kavin * @Author kavin
* @Description 判断最后一车的逻辑 * @Description 判断最后一车的逻辑
...@@ -51,4 +60,36 @@ public class LastTruckServiceImpl implements LastTruckService { ...@@ -51,4 +60,36 @@ public class LastTruckServiceImpl implements LastTruckService {
} }
return null; return null;
} }
/**
* @Author kavin
* @Description 同步最后一车
* @Param [child]
* @return
**/
@Override
public Result<?> syncLastTruckChild(OrderChild child) {
OrderChildMessage message = orderChildStruct.convertMessage(child);
message.setLastFlag(ResultStatusEnum.YES.getCode());
log.info("开始同步最后一车的运单,运单编号:{},运单信息:{}",child.getChildNo(), JSON.toJSONString(message));
OpenCallBackClient client2 = new OpenCallBackClient(mslAppConfig.getUrl(),mslAppConfig.getAppId(),mslAppConfig.getSecret());
Result<?> result2 = client2.encryptPost(JSON.toJSONString(message),message.topic());
log.info("结束同步最后一车的运单,运单编号:{},响应结果:{}",child.getChildNo(),JSON.toJSONString(result2));
return result2;
}
/**
* @Author kavin
* @Description 订单取消、到达最晚拉运时间 同步最后一车
* @Param [orderNo]
* @return
**/
public Result<?> syncLastTruckChild4OrderTrigger(String orderNo) {
OrderChild child = orderChildDao.findLastTruckChildByCreateTime(orderNo);
log.info("订单取消/到达最晚拉运时间获取最后一车运单,订单号:{} ,获取到的最后一车的运单信息:{}",orderNo,JSON.toJSONString(child));
if(Objects.nonNull(child)){
return syncLastTruckChild(child);
}
return Result.ok("承运系统提示:承运系统未查询到该订单下的运单信息");
}
} }
...@@ -34,6 +34,8 @@ public class FeignOrderChildServiceImpl implements FeignOrderChildService { ...@@ -34,6 +34,8 @@ public class FeignOrderChildServiceImpl implements FeignOrderChildService {
vo.setPoundDifferenceRatioAvg(linePoundDifferenceRatioAvg==null? null:linePoundDifferenceRatioAvg.setScale(4, RoundingMode.HALF_UP).movePointRight(2)); vo.setPoundDifferenceRatioAvg(linePoundDifferenceRatioAvg==null? null:linePoundDifferenceRatioAvg.setScale(4, RoundingMode.HALF_UP).movePointRight(2));
vo.setTimeAvg(timeAvg==null? null : timeAvg/60); vo.setTimeAvg(timeAvg==null? null : timeAvg/60);
BigDecimal driverFreight = orderChildDao.getLastDriverFreightByTransportLine(sendSystemAddressId, receiveSystemAddressId);
vo.setDriverFreight(driverFreight);
return vo; return vo;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论