提交 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 {
@Getter
@AllArgsConstructor
public enum ReportType {
LOAD(1, "装车类型"),
UNLOAD(2, "卸车类型");
LOAD(1, "货源地排队"),
UNLOAD(2, "目的地排队");
private final Integer code;
private final String msg;
......
......@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@FeignClient(name = "clx-performance")
......@@ -20,4 +21,11 @@ public interface OrderChildFeign {
Result<OrderChildLineStatisticsVO> lineStatistics(@RequestParam @NotNull(message = "发货地址不可为空") Integer sendSystemAddressId,
@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;
import com.clx.performance.util.NumberToChineseUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.*;
import java.util.Arrays;
import java.util.List;
/**
* @Author: aiqinguo
......@@ -58,4 +58,28 @@ public class IntegralTruckVO {
@ApiModelProperty(value = "信息上报积分", example = "1")
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 {
@ApiModelProperty("时长均值")
private Integer timeAvg;
@ApiModelProperty("司机运费")
private BigDecimal driverFreight;
}
......@@ -84,7 +84,7 @@ public class CollectTruckWaitVO {
@ApiModelProperty(value = "预计等待时长图片", example = "")
private List<String> stationImageList;
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 = "")
......
......@@ -2,6 +2,7 @@ package com.clx.performance.controller.feign;
import cn.hutool.core.collection.CollectionUtil;
import com.clx.performance.model.OrderChild;
import com.clx.performance.service.LastTruckService;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.child.FeignOrderChildService;
import com.clx.performance.vo.pc.child.OrderChildLineStatisticsVO;
......@@ -12,6 +13,7 @@ import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
......@@ -26,6 +28,8 @@ public class OrderChildFeignController {
private final FeignOrderChildService feignOrderChildService;
private final LastTruckService lastTruckService;
@GetMapping({"/getOrderChildTotalByUserNo"})
Integer getTrucksByOrderGoodsNo(@RequestParam("userNo") @NotNull(message = "用户编号不可为空") Long userNo) {
......@@ -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;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.msl.common.base.Optional;
import com.msl.common.base.PageParam;
import com.msl.common.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
......@@ -152,4 +151,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> selectInOrderChildNoList(List<String> childNoList);
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;
import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam;
import com.clx.performance.param.pc.*;
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.PageOrderChildPoundAuditVO;
import com.msl.common.base.Optional;
import com.msl.common.base.PageParam;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
......@@ -25,6 +23,7 @@ import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
/**
* @Author: aiqinguo
......@@ -452,4 +451,27 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public List<Double> getLossNet(OrderChildReportParam 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 {
if(after.getStatus() >= OrderChildEnum.Status.ARRIVE_RECEIVE.getCode() && after.getStatus() <= OrderChildEnum.Status.COMPLETE.getCode()){
OrderChild child = lastTruckService.getLastTruckChild(after.getOrderNo());
if(Objects.nonNull(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));
lastTruckService.syncLastTruckChild(child);
}
}
}
......
package com.clx.performance.service;
import com.clx.performance.model.OrderChild;
import com.msl.common.result.Result;
public interface LastTruckService {
OrderChild getLastTruckChild(String orderNo);
Result<?> syncLastTruckChild(OrderChild child);
Result<?> syncLastTruckChild4OrderTrigger(String orderNo);
}
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.vo.feign.FeignOrderVO;
import com.clx.performance.config.MslAppConfig;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.model.OrderChild;
import com.clx.performance.service.LastTruckService;
import com.clx.performance.struct.OrderChildStruct;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......@@ -26,6 +33,8 @@ public class LastTruckServiceImpl implements LastTruckService {
private final OrderFeign orderFeign;
private final OrderChildDao orderChildDao;
private final OrderChildStruct orderChildStruct;
private final MslAppConfig mslAppConfig;
/**
* @Author kavin
* @Description 判断最后一车的逻辑
......@@ -51,4 +60,36 @@ public class LastTruckServiceImpl implements LastTruckService {
}
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 {
vo.setPoundDifferenceRatioAvg(linePoundDifferenceRatioAvg==null? null:linePoundDifferenceRatioAvg.setScale(4, RoundingMode.HALF_UP).movePointRight(2));
vo.setTimeAvg(timeAvg==null? null : timeAvg/60);
BigDecimal driverFreight = orderChildDao.getLastDriverFreightByTransportLine(sendSystemAddressId, receiveSystemAddressId);
vo.setDriverFreight(driverFreight);
return vo;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论