提交 b5d05bb4 authored 作者: 刘海泉's avatar 刘海泉

Merge remote-tracking branch 'origin/v30.2_break_contract_20241021' into dev_jdk17

# Conflicts: # clx-performance-web/src/main/java/com/clx/performance/controller/feign/PerformanceSdkFeignController.java # clx-performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java # clx-performance-web/src/main/java/com/clx/performance/dao/OrderGoodsDao.java # clx-performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java # clx-performance-web/src/main/java/com/clx/performance/dao/impl/OrderGoodsDaoImpl.java
...@@ -57,4 +57,7 @@ public class RedisConstants { ...@@ -57,4 +57,7 @@ public class RedisConstants {
*/ */
public static final String ORDER_LAST_TRUCK_CHILD = "clx-performance:order:last:truck:child:"; public static final String ORDER_LAST_TRUCK_CHILD = "clx-performance:order:last:truck:child:";
//异常上报编号
public static final String EXCEPTION_REPORT_CACHE_KEY = "clx-performance:exception:report:cache:key:";
} }
package com.clx.performance.controller;
import com.clx.performance.param.pc.DealExceptionReportParam;
import com.clx.performance.service.OrderChildExceptionReportService;
import com.msl.common.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping(value="/pc/carrier/exceptionReport")
@Validated
@Tag(name = "承运端-异常上报")
@AllArgsConstructor
public class OrderChildExceptionReportController {
private final OrderChildExceptionReportService orderChildExceptionReportService;
@Deprecated
@Operation(summary = "异常上报处理", description = "<br>By:刘海泉")
public Result<?> updateDealExceptionReport(@RequestBody @Validated DealExceptionReportParam param) {
orderChildExceptionReportService.updateDealExceptionReport(param);
return Result.ok();
}
}
...@@ -4,6 +4,8 @@ import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction; ...@@ -4,6 +4,8 @@ import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressAction; import com.clx.open.sdk.request.action.QueryPerformanceProgressAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction; import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO; import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
import com.alibaba.fastjson.JSON;
import com.clx.open.sdk.request.action.*;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO; import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO; import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO; import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
...@@ -19,16 +21,16 @@ import com.clx.performance.vo.pc.PerformanceProgressVO; ...@@ -19,16 +21,16 @@ import com.clx.performance.vo.pc.PerformanceProgressVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
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 jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -59,6 +61,8 @@ public class PerformanceSdkFeignController { ...@@ -59,6 +61,8 @@ public class PerformanceSdkFeignController {
private final OrderService orderService; private final OrderService orderService;
private final OrderChildExceptionReportService orderChildExceptionReportService;
@Operation(summary = "货主端取消订单", description = "<br>By:胡宇帆") @Operation(summary = "货主端取消订单", description = "<br>By:胡宇帆")
@PostMapping("/ownCancelOrderPre") @PostMapping("/ownCancelOrderPre")
...@@ -144,4 +148,53 @@ public class PerformanceSdkFeignController { ...@@ -144,4 +148,53 @@ public class PerformanceSdkFeignController {
} }
//数媒宝同步异常上报信息
@PostMapping("clx-performance/feign/sdk/smbSyncExceptionReportInfo")
Result<String> smbSyncExceptionReportInfo(@RequestBody @Validated SmbSyncExceptionReportInfoAction action){
log.info("数媒宝同步异常上报信息开始,请求参数:{}", JSON.toJSONString(action));
Result<String> result = orderChildExceptionReportService.smbSyncExceptionReportInfo(action);
log.info("数媒宝同步异常上报信息结束,响应结果:{}", result);
return result;
}
//数媒宝同步异常上报结果
@PostMapping("clx-performance/feign/sdk/smbSyncExceptionReportResult")
Result<Object> smbSyncExceptionReportResult(@RequestBody @Validated SmbSyncExceptionReportResultAction action){
log.info("数媒宝同步异常上报结果开始,请求参数:{}", JSON.toJSONString(action));
return orderChildExceptionReportService.smbSyncExceptionReportResult(action);
}
//数媒宝撤销异常上报
@PostMapping("clx-performance/feign/sdk/smbWithdrawExceptionReport")
Result<Object> smbWithdrawExceptionReport(@RequestBody @Validated SmbWithdrawExceptionReportAction action){
log.info("数媒宝撤销异常上报开始,请求参数:{}", JSON.toJSONString(action));
return orderChildExceptionReportService.smbWithdrawExceptionReport(action);
}
//马上来供应链同步异常上报信息
@PostMapping("clx-performance/feign/sdk/mslSyncExceptionReportInfo")
Result<String> mslSyncExceptionReportInfo(@RequestBody @Validated MslSyncExceptionReportInfoAction action){
log.info("马上来供应链同步异常上报信息开始,请求参数:{}", JSON.toJSONString(action));
Result<String> result = orderChildExceptionReportService.mslSyncExceptionReportInfo(action);
log.info("马上来供应链同步异常上报信息结束,响应结果:{}", result);
return result;
}
//马上来供应链同步异常上报结果
@PostMapping("clx-performance/feign/sdk/mslSyncExceptionReportResult")
Result<Object> mslSyncExceptionReportResult(@RequestBody @Validated MslSyncExceptionReportResultAction action){
log.info("马上来供应链同步异常上报结果开始,请求参数:{}", JSON.toJSONString(action));
return orderChildExceptionReportService.mslSyncExceptionReportResult(action);
}
//马上来供应链撤销异常上报
@PostMapping("clx-performance/feign/sdk/mslWithdrawExceptionReport")
Result<Object> mslWithdrawExceptionReport(@RequestBody @Validated MslWithdrawExceptionReportAction action){
log.info("马上来供应链撤销异常上报开始,请求参数:{}", JSON.toJSONString(action));
return orderChildExceptionReportService.mslWithdrawExceptionReport(action);
}
} }
...@@ -224,4 +224,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -224,4 +224,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> listNoCancelOrderChild(String orderNo); List<OrderChild> listNoCancelOrderChild(String orderNo);
OrderGoodsTodaySumDTO countTodayOrderGoodsSumByUserNo(Long userNo); OrderGoodsTodaySumDTO countTodayOrderGoodsSumByUserNo(Long userNo);
Long countNotCancelOrderChild(List<String> cancelOrderGoodsNo);
Long queryNoCancelChildByOrderGoodsNo(String orderGoodsNo, Integer code);
} }
package com.clx.performance.dao;
import com.msl.common.dao.BaseDao;
import com.clx.performance.mapper.OrderChildExceptionReportMapper;
import com.clx.performance.model.OrderChildExceptionReport;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
public interface OrderChildExceptionReportDao extends BaseDao<OrderChildExceptionReportMapper, OrderChildExceptionReport, Integer> {
OrderChildExceptionReport findByThirdReportNoAndSource(Integer source, String thirdReportNo);
}
package com.clx.performance.dao;
import com.msl.common.dao.BaseDao;
import com.clx.performance.mapper.OrderChildExceptionReportDealLogMapper;
import com.clx.performance.model.OrderChildExceptionReportDealLog;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
public interface OrderChildExceptionReportDealLogDao extends BaseDao<OrderChildExceptionReportDealLogMapper, OrderChildExceptionReportDealLog, Integer> {
}
...@@ -108,6 +108,8 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -108,6 +108,8 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
List<OrderGoods> listAfterCreatedByOrderNo(String orderNo); List<OrderGoods> listAfterCreatedByOrderNo(String orderNo);
List<OrderGoods> listAllByOrderNo(String orderNo);
void batchUpdateOrderGoodsPaying(List<OrderGoods> updateOrderGoods); void batchUpdateOrderGoodsPaying(List<OrderGoods> updateOrderGoods);
void batchCancelOrderGoodsWeight(List<OrderGoodsCancelWeightDTO> cancelOrderGoodsList); void batchCancelOrderGoodsWeight(List<OrderGoodsCancelWeightDTO> cancelOrderGoodsList);
...@@ -115,4 +117,5 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -115,4 +117,5 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
OrderGoods queryLineNewestPendingFreight(Integer sendAddressId,Integer receiveAddressId); OrderGoods queryLineNewestPendingFreight(Integer sendAddressId,Integer receiveAddressId);
List<OrderGoods> queryLineAvgPendingFreight(Integer sendAddressId, Integer receiveAddressId,LocalDateTime begin,LocalDateTime end); List<OrderGoods> queryLineAvgPendingFreight(Integer sendAddressId, Integer receiveAddressId,LocalDateTime begin,LocalDateTime end);
boolean updateExtractWeightAndNeedTruckNum(String orderGoodsNo, BigDecimal extractWeight, Integer needTruckNum);
} }
...@@ -736,4 +736,19 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -736,4 +736,19 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public OrderGoodsTodaySumDTO countTodayOrderGoodsSumByUserNo(Long userNo) { public OrderGoodsTodaySumDTO countTodayOrderGoodsSumByUserNo(Long userNo) {
return baseMapper.countTodayOrderGoodsSumByUserNo(userNo); return baseMapper.countTodayOrderGoodsSumByUserNo(userNo);
} }
@Override
public Long countNotCancelOrderChild(List<String> cancelOrderGoodsNo) {
LambdaQueryWrapper<OrderChild> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(OrderChild :: getOrderGoodsNo,cancelOrderGoodsNo);
queryWrapper.le(OrderChild :: getStatus,OrderChildEnum.Status.COMPLETE.getCode());
return baseMapper.selectCount(queryWrapper);
}
@Override
public Long queryNoCancelChildByOrderGoodsNo(String orderGoodsNo, Integer status) {
return baseMapper.selectCount(lQrWrapper().eq(OrderChild::getOrderGoodsNo,orderGoodsNo)
.lt(ObjectUtil.isNotEmpty(status),OrderChild::getStatus, status)
);
}
} }
package com.clx.performance.dao.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.msl.common.dao.impl.BaseDaoImpl;
import com.clx.performance.dao.OrderChildExceptionReportDao;
import com.clx.performance.mapper.OrderChildExceptionReportMapper;
import com.clx.performance.model.OrderChildExceptionReport;
import org.springframework.stereotype.Repository;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
@Repository
public class OrderChildExceptionReportDaoImpl extends BaseDaoImpl<OrderChildExceptionReportMapper, OrderChildExceptionReport, Integer> implements OrderChildExceptionReportDao {
@Override
public OrderChildExceptionReport findByThirdReportNoAndSource(Integer source, String thirdReportNo) {
LambdaQueryWrapper<OrderChildExceptionReport> query = new LambdaQueryWrapper<>();
query.eq(OrderChildExceptionReport :: getSource,source);
query.eq(OrderChildExceptionReport ::getThirdReportNo,thirdReportNo);
return baseMapper.selectOne(query);
}
}
package com.clx.performance.dao.impl;
import com.msl.common.dao.impl.BaseDaoImpl;
import com.clx.performance.dao.OrderChildExceptionReportDealLogDao;
import com.clx.performance.mapper.OrderChildExceptionReportDealLogMapper;
import com.clx.performance.model.OrderChildExceptionReportDealLog;
import org.springframework.stereotype.Repository;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
@Repository
public class OrderChildExceptionReportDealLogDaoImpl extends BaseDaoImpl<OrderChildExceptionReportDealLogMapper, OrderChildExceptionReportDealLog, Integer> implements OrderChildExceptionReportDealLogDao {
}
...@@ -294,6 +294,15 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -294,6 +294,15 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
); );
} }
@Override
public List<OrderGoods> listAllByOrderNo(String orderNo) {
return baseMapper.selectList(lQrWrapper().eq(OrderGoods::getOrderNo, orderNo)
.ne(OrderGoods::getOrderGoodsStatus,OrderGoodsStatusEnum.Status.CREATED.getCode())
.orderByDesc(OrderGoods :: getPendingOrderTime)
);
}
@Override @Override
public void batchUpdateOrderGoodsPaying(List<OrderGoods> updateOrderGoods) { public void batchUpdateOrderGoodsPaying(List<OrderGoods> updateOrderGoods) {
baseMapper.batchUpdateOrderGoodsPaying(updateOrderGoods); baseMapper.batchUpdateOrderGoodsPaying(updateOrderGoods);
...@@ -325,4 +334,14 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -325,4 +334,14 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
query.le(OrderGoods :: getCreateTime,end); query.le(OrderGoods :: getCreateTime,end);
return baseMapper.selectList(query); return baseMapper.selectList(query);
} }
@Override
public boolean updateExtractWeightAndNeedTruckNum(String orderGoodsNo, BigDecimal extractWeight,
Integer needTruckNum) {
return update(lUdWrapper()
.in(OrderGoods::getOrderGoodsNo, orderGoodsNo)
.set(OrderGoods::getExtractWeight, extractWeight)
.set(OrderGoods :: getNeedTruckNum,needTruckNum)
);
}
} }
...@@ -67,7 +67,6 @@ public class OrderGoodsDtsListener { ...@@ -67,7 +67,6 @@ public class OrderGoodsDtsListener {
public void syncPerformanceProgress(OrderGoods before,OrderGoods after, Integer updateType) { public void syncPerformanceProgress(OrderGoods before,OrderGoods after, Integer updateType) {
boolean isSend = false; boolean isSend = false;
if(after.getOrderGoodsStatus() >= OrderGoodsStatusEnum.Status.PAYING.getCode()){
if(Objects.equals(updateType,DtsOperationTypeEnum.INSERT.getCode())){ if(Objects.equals(updateType,DtsOperationTypeEnum.INSERT.getCode())){
isSend = true; isSend = true;
} }
...@@ -76,6 +75,7 @@ public class OrderGoodsDtsListener { ...@@ -76,6 +75,7 @@ public class OrderGoodsDtsListener {
|| !Objects.equals(before.getSeniorLogisticsManagerId(),after.getSeniorLogisticsManagerId()) || !Objects.equals(before.getSeniorLogisticsManagerId(),after.getSeniorLogisticsManagerId())
|| !Objects.equals(before.getExtractWeight(),after.getExtractWeight()) || !Objects.equals(before.getExtractWeight(),after.getExtractWeight())
|| !Objects.equals(before.getPendingOrderFreight(),after.getPendingOrderFreight()) || !Objects.equals(before.getPendingOrderFreight(),after.getPendingOrderFreight())
|| !Objects.equals(before.getNeedTruckNum(),after.getNeedTruckNum())
)){ )){
isSend = true; isSend = true;
} }
...@@ -87,7 +87,6 @@ public class OrderGoodsDtsListener { ...@@ -87,7 +87,6 @@ public class OrderGoodsDtsListener {
log.info("结束发送同步履约进度表消息,订单号:{},货单号:{}", after.getOrderNo(),after.getOrderGoodsNo()); log.info("结束发送同步履约进度表消息,订单号:{},货单号:{}", after.getOrderNo(),after.getOrderGoodsNo());
} }
} }
}
//同步挂单运费 //同步挂单运费
public void syncPendingFreight(OrderGoods before,OrderGoods after, Integer updateType) { public void syncPendingFreight(OrderGoods before,OrderGoods after, Integer updateType) {
......
package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.OrderChildExceptionReportDealLog;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
public interface OrderChildExceptionReportDealLogMapper extends BaseMapper<OrderChildExceptionReportDealLog> {
}
package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.OrderChildExceptionReport;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
public interface OrderChildExceptionReportMapper extends BaseMapper<OrderChildExceptionReport> {
}
...@@ -39,7 +39,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> { ...@@ -39,7 +39,6 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@Update(" update order_goods set " + @Update(" update order_goods set " +
" already_transport_weight = already_transport_weight - #{residueWeight}," + " already_transport_weight = already_transport_weight - #{residueWeight}," +
" extract_weight = already_transport_weight," +
"order_goods_status = #{orderGoodsStatus} " + "order_goods_status = #{orderGoodsStatus} " +
" where id = #{id}") " where id = #{id}")
void updateOrderGoodsWeightAlreadyAndStatus(@Param("id") Integer id, @Param("residueWeight") BigDecimal residueWeight, @Param("orderGoodsStatus") Integer orderGoodsStatus); void updateOrderGoodsWeightAlreadyAndStatus(@Param("id") Integer id, @Param("residueWeight") BigDecimal residueWeight, @Param("orderGoodsStatus") Integer orderGoodsStatus);
......
package com.clx.performance.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("order_child_exception_report")
public class OrderChildExceptionReport implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("report_no")
@Schema(description="异常上报编号")
private String reportNo;
@TableField("third_report_no")
@Schema(description="三方异常上报编号")
private String thirdReportNo;
@TableField("source")
@Schema(description="来源")
private Integer source;
@TableField("exception_category")
@Schema(description="异常类别")
private String exceptionCategory;
@TableField("exception_type")
@Schema(description="异常类型")
private String exceptionType;
@TableField("truck_no_or_mobile")
@Schema(description="车牌号/手机号")
private String truckNoOrMobile;
@TableField("child_no")
@Schema(description="运单编号")
private String childNo;
@TableField("status")
@Schema(description="状态:1:待处理 2:申诉中 3:已处理 4:已撤回")
private Integer status;
@TableField("deduction_amount")
@Schema(description="扣罚金额")
private BigDecimal deductionAmount;
@TableField("report_time")
@Schema(description="异常上报时间")
private LocalDateTime reportTime;
@TableField("deal_user_code")
@Schema(description="处理人用户编码")
private Long dealUserCode;
@TableField("deal_user")
@Schema(description="处理人用户姓名")
private String dealUser;
@TableField("deal_time")
@Schema(description="处理时间")
private LocalDateTime dealTime;
@TableField("deal_result")
@Schema(description="处理结果")
private String dealResult;
@TableField("transfer_driver_break_contract")
@Schema(description="是否转司机违约 1:是")
private Integer transferDriverBreakContract;
@TableField("create_time")
@Schema(description="创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@Schema(description="修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("order_child_exception_report_deal_log")
public class OrderChildExceptionReportDealLog implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("report_no")
@Schema(description="异常上报编号")
private String reportNo;
@TableField("deal_way")
@Schema(description="处理方式 1:同意扣罚 2:申诉")
private Integer dealWay;
@TableField("appeal_reason")
@Schema(description="申诉原因")
private String appealReason;
@TableField("picture_url")
@Schema(description="图片")
private String pictureUrl;
@TableField("video_url")
@Schema(description="视频")
private String videoUrl;
@TableField("create_time")
@Schema(description="创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@Schema(description="修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
...@@ -97,6 +97,12 @@ public class PerformanceProgress implements HasKey<Integer> { ...@@ -97,6 +97,12 @@ public class PerformanceProgress implements HasKey<Integer> {
@Schema(description="挂单吨数") @Schema(description="挂单吨数")
private BigDecimal pendingWeight; private BigDecimal pendingWeight;
@TableField("pending_truck")
@Schema(description="挂单车数")
private Integer pendingTruck;
@TableField("ordered_truck_num") @TableField("ordered_truck_num")
@Schema(description="接单车数") @Schema(description="接单车数")
private Integer orderedTruckNum; private Integer orderedTruckNum;
......
package com.clx.performance.service;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
public interface OrderChildExceptionReportDealLogService {
}
package com.clx.performance.service;
import com.clx.open.sdk.request.action.*;
import com.clx.performance.param.pc.DealExceptionReportParam;
import com.msl.common.result.Result;
/**
* @author kavin
* Date 2024-10-22
* Time 10:38
*/
public interface OrderChildExceptionReportService {
Result<String> smbSyncExceptionReportInfo(SmbSyncExceptionReportInfoAction action);
Result<Object> smbSyncExceptionReportResult(SmbSyncExceptionReportResultAction action);
Result<Object> smbWithdrawExceptionReport(SmbWithdrawExceptionReportAction action);
Result<String> mslSyncExceptionReportInfo(MslSyncExceptionReportInfoAction action);
Result<Object> mslSyncExceptionReportResult(MslSyncExceptionReportResultAction action);
Result<Object> mslWithdrawExceptionReport(MslWithdrawExceptionReportAction action);
void updateDealExceptionReport(DealExceptionReportParam param);
}
package com.clx.performance.service.impl;
import com.clx.performance.service.OrderChildExceptionReportDealLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @author kavin
* Date 2024-10-22
* Time 11:08
*/
@Service
@Slf4j
public class OrderChildExceptionReportDealLogServiceImpl implements OrderChildExceptionReportDealLogService {
}
...@@ -2591,29 +2591,31 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2591,29 +2591,31 @@ public class OrderChildServiceImpl implements OrderChildService {
// 组装表头 // 组装表头
List<ExcelField> fieldList = new ArrayList<>(); List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "序号", "index", 2000)); fieldList.add(new ExcelField(0, "序号", "index", 2000));
fieldList.add(new ExcelField(1, "运单编号", "childNo", 5000)); fieldList.add(new ExcelField(1, "发货地址", "sendAddress", 10000));
fieldList.add(new ExcelField(2, "车牌号", "truckNo", 5000)); fieldList.add(new ExcelField(2, "收货地址", "receiveAddress", 10000));
fieldList.add(new ExcelField(3, "运单状态", "status", 5000));
fieldList.add(new ExcelField(4, "货单编号", "goodsOrderNo", 5000)); fieldList.add(new ExcelField(3, "运单编号", "childNo", 5000));
fieldList.add(new ExcelField(4, "车牌号", "truckNo", 5000));
fieldList.add(new ExcelField(5, "货物名称", "goodsName", 5000)); fieldList.add(new ExcelField(5, "运单状态", "status", 5000));
fieldList.add(new ExcelField(6, "司机姓名", "driverName", 5000)); fieldList.add(new ExcelField(6, "货单编号", "goodsOrderNo", 5000));
fieldList.add(new ExcelField(7, "手机号", "phone", 5000));
fieldList.add(new ExcelField(8, "运费单价", "frightPrice", 5000)); fieldList.add(new ExcelField(7, "货物名称", "goodsName", 5000));
fieldList.add(new ExcelField(8, "司机姓名", "driverName", 5000));
fieldList.add(new ExcelField(9, "装车毛重", "loadRough", 5000)); fieldList.add(new ExcelField(9, "手机号", "phone", 5000));
fieldList.add(new ExcelField(10, "装车皮重", "loadTare", 5000)); fieldList.add(new ExcelField(10, "运费单价", "frightPrice", 5000));
fieldList.add(new ExcelField(11, "装车净重", "loadNet", 5000));
fieldList.add(new ExcelField(12, "卸车毛重", "loadRough", 5000)); fieldList.add(new ExcelField(11, "装车毛重", "loadRough", 5000));
fieldList.add(new ExcelField(13, "卸车皮重", "loadTare", 5000)); fieldList.add(new ExcelField(12, "装车皮重", "loadTare", 5000));
fieldList.add(new ExcelField(14, "卸车净重", "unloadNet", 5000)); fieldList.add(new ExcelField(13, "装车净重", "loadNet", 5000));
fieldList.add(new ExcelField(14, "卸车毛重", "loadRough", 5000));
fieldList.add(new ExcelField(15, "卸车皮重", "loadTare", 5000));
fieldList.add(new ExcelField(15, "接单时间", "payTime", 5000)); fieldList.add(new ExcelField(16, "卸车净重", "unloadNet", 5000));
fieldList.add(new ExcelField(16, "完成时间", "finishTime", 5000));
fieldList.add(new ExcelField(17, "磅单审核通过时间", "poundAuditTime", 5000));
fieldList.add(new ExcelField(18, "发货地址", "sendAddress", 10000)); fieldList.add(new ExcelField(17, "接单时间", "payTime", 5000));
fieldList.add(new ExcelField(19, "收货地址", "receiveAddress", 10000)); fieldList.add(new ExcelField(18, "完成时间", "finishTime", 5000));
fieldList.add(new ExcelField(19, "磅单审核通过时间", "poundAuditTime", 5000));
fieldList.add(new ExcelField(20, "订单编号", "orderNo", 10000)); fieldList.add(new ExcelField(20, "订单编号", "orderNo", 10000));
fieldList.add(new ExcelField(21, "订单来源", "orderSourceMsg", 10000)); fieldList.add(new ExcelField(21, "订单来源", "orderSourceMsg", 10000));
...@@ -2626,6 +2628,8 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2626,6 +2628,8 @@ public class OrderChildServiceImpl implements OrderChildService {
List<ExcelData> rowData = new ArrayList<>(); List<ExcelData> rowData = new ArrayList<>();
rowData.add(new ExcelData(i+1)); rowData.add(new ExcelData(i+1));
rowData.add(new ExcelData(dto.getSendAddress()));
rowData.add(new ExcelData(dto.getReceiveAddress()));
rowData.add(new ExcelData(dto.getChildNo())); rowData.add(new ExcelData(dto.getChildNo()));
rowData.add(new ExcelData(dto.getTruckNo())); rowData.add(new ExcelData(dto.getTruckNo()));
if(Objects.isNull(dto.getStatus())){ if(Objects.isNull(dto.getStatus())){
...@@ -2650,8 +2654,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2650,8 +2654,7 @@ public class OrderChildServiceImpl implements OrderChildService {
rowData.add(new ExcelData(dto.getPayTime())); rowData.add(new ExcelData(dto.getPayTime()));
rowData.add(new ExcelData(dto.getFinishTime())); rowData.add(new ExcelData(dto.getFinishTime()));
rowData.add(new ExcelData(dto.getPoundAuditTime())); rowData.add(new ExcelData(dto.getPoundAuditTime()));
rowData.add(new ExcelData(dto.getSendAddress()));
rowData.add(new ExcelData(dto.getReceiveAddress()));
rowData.add(new ExcelData(dto.getOrderNo())); rowData.add(new ExcelData(dto.getOrderNo()));
rowData.add(new ExcelData(dto.getOrderSourceMsg(), "-")); rowData.add(new ExcelData(dto.getOrderSourceMsg(), "-"));
...@@ -2736,6 +2739,8 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2736,6 +2739,8 @@ public class OrderChildServiceImpl implements OrderChildService {
carrierOrderChildDetailVO.setSendDetailAddress(sendAddress.getAddress()); carrierOrderChildDetailVO.setSendDetailAddress(sendAddress.getAddress());
carrierOrderChildDetailVO.setReceiveDetailAddress(receiveAddress.getAddress()); carrierOrderChildDetailVO.setReceiveDetailAddress(receiveAddress.getAddress());
Result<FeignOrderInfoVO> result = orderFeign.getOrderInfo(orderChild.getOrderNo());
carrierOrderChildDetailVO.setCooperativeCompaniesName(result.getData().getCooperativeCompaniesName());
return carrierOrderChildDetailVO; return carrierOrderChildDetailVO;
} }
......
...@@ -160,6 +160,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -160,6 +160,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
orderGoodsVO.setReveiveAddressAll(orderInfoFeign.getReveiveAddressAll()); orderGoodsVO.setReveiveAddressAll(orderInfoFeign.getReveiveAddressAll());
orderGoodsVO.setSendAddressAll(orderInfoFeign.getSendAddressAll()); orderGoodsVO.setSendAddressAll(orderInfoFeign.getSendAddressAll());
orderGoodsVO.setDispatchedOrders(truckList.size()); orderGoodsVO.setDispatchedOrders(truckList.size());
orderGoodsVO.setCooperativeCompaniesName(orderInfoFeign.getCooperativeCompaniesName());
return orderGoodsVO; return orderGoodsVO;
} }
...@@ -722,9 +723,14 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -722,9 +723,14 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
OrderGoods orderGoods = dto.getOrderGoods(); OrderGoods orderGoods = dto.getOrderGoods();
List<String> childNoList = dto.getChildNoList(); List<String> childNoList = dto.getChildNoList();
//查询该货单下未取消的运单数量
Long noCancelChildCount = orderChildDao.queryNoCancelChildByOrderGoodsNo(orderGoods.getOrderGoodsNo(),
OrderChildEnum.Status.DRIVER_CANCEL.getCode());
List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(),
OrderChildEnum.Status.DRIVER_CANCEL.getCode(), dto.getOrderGoodsCancelParam().getTruckList()); OrderChildEnum.Status.DRIVER_CANCEL.getCode(), dto.getOrderGoodsCancelParam().getTruckList());
Long needTruckNum = 0L;
if (CollectionUtils.isNotEmpty(orderChildList)) { if (CollectionUtils.isNotEmpty(orderChildList)) {
List<OrderChild> filterOrderChildList = orderChildList.stream(). List<OrderChild> filterOrderChildList = orderChildList.stream().
filter(item -> item.getStatus() < OrderChildEnum.Status.LOAD.getCode()).collect(Collectors.toList()); filter(item -> item.getStatus() < OrderChildEnum.Status.LOAD.getCode()).collect(Collectors.toList());
...@@ -743,16 +749,32 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -743,16 +749,32 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
OrderChildEnum.Status.PLATFORM_CANCEL.getCode(),"系统取消", OrderChildEnum.Status.PLATFORM_CANCEL.getCode(),"系统取消",
now, now, childNoList); now, now, childNoList);
orderChildList.removeAll(filterOrderChildList); orderChildList.removeAll(filterOrderChildList);
if (CollectionUtil.isNotEmpty(orderChildList)) { //此次不能取消的运单不为空 || 货单下的未取消的运单数 大于 已经取消的运单数
if (CollectionUtil.isNotEmpty(orderChildList) || noCancelChildCount > filterOrderChildList.size()) {
dto.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); dto.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
} }
needTruckNum = noCancelChildCount-filterOrderChildList.size();
} }
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.CANCEL.getCode()); orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
orderGoodsDao.updateOrderGoodsSetAlreadyWeightAndStatus(sum, dto.getOrderGoodsStatus(), orderGoods.getId()); orderGoodsDao.updateOrderGoodsSetAlreadyWeightAndStatus(sum, dto.getOrderGoodsStatus(), orderGoods.getId());
if(Objects.equals(dto.getOrderGoodsStatus(),OrderGoodsStatusEnum.Status.COMPLETED.getCode())){
updateCompleteNeedTruck(orderGoods.getOrderGoodsNo(),
orderGoods.getAlreadyTransportWeight().subtract(sum),needTruckNum.intValue());
}
} }
//更新取消变成完结的货单的需要车辆数和提取量
public void updateCompleteNeedTruck(String orderGoodsNo,BigDecimal extractWeight,Integer needTruckNum){
log.info("更新货单的需要车辆数和提取量,货单号:{},提取吨数:{},需要车数:{}",orderGoodsNo,extractWeight,needTruckNum);
boolean flag = orderGoodsDao.updateExtractWeightAndNeedTruckNum(orderGoodsNo,extractWeight,needTruckNum);
log.info("更新货单的需要车辆数和提取量,货单号:{},更新结果:{}",orderGoodsNo,flag);
}
private void cancelOperateTwoTypeStrategy(OrderGoodsCancelDTO dto) { private void cancelOperateTwoTypeStrategy(OrderGoodsCancelDTO dto) {
String now = DateUtils.formatDateTime(LocalDateTime.now()).get(); String now = DateUtils.formatDateTime(LocalDateTime.now()).get();
OrderGoods orderGoods = dto.getOrderGoods(); OrderGoods orderGoods = dto.getOrderGoods();
...@@ -761,6 +783,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -761,6 +783,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
BigDecimal childResidueWeight = BigDecimal.ZERO; BigDecimal childResidueWeight = BigDecimal.ZERO;
int needTruckNum = 0;
if (CollectionUtils.isNotEmpty(orderChildList)) { if (CollectionUtils.isNotEmpty(orderChildList)) {
List<OrderChild> filterOrderChildList = orderChildList.stream().filter(item -> item.getStatus() < OrderChildEnum.Status.ARRIVE_SEND.getCode()).collect(Collectors.toList()); List<OrderChild> filterOrderChildList = orderChildList.stream().filter(item -> item.getStatus() < OrderChildEnum.Status.ARRIVE_SEND.getCode()).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(filterOrderChildList)) { if (CollectionUtils.isNotEmpty(filterOrderChildList)) {
...@@ -780,11 +803,16 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -780,11 +803,16 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
} }
orderChildList.removeAll(filterOrderChildList); orderChildList.removeAll(filterOrderChildList);
if (CollectionUtil.isNotEmpty(orderChildList)) { if (CollectionUtil.isNotEmpty(orderChildList)) {
needTruckNum = orderChildList.size();
dto.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); dto.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
} }
} }
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.CANCEL.getCode()); orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
orderGoodsDao.updateOrderGoodsWeightAlreadyAndStatus(orderGoods.getId(),childResidueWeight,OrderGoodsStatusEnum.Status.COMPLETED.getCode()); orderGoodsDao.updateOrderGoodsWeightAlreadyAndStatus(orderGoods.getId(),childResidueWeight,dto.getOrderGoodsStatus());
if(Objects.equals(dto.getOrderGoodsStatus(),OrderGoodsStatusEnum.Status.COMPLETED.getCode())){
updateCompleteNeedTruck(orderGoods.getOrderGoodsNo(),
orderGoods.getAlreadyTransportWeight().subtract(childResidueWeight),needTruckNum);
}
} }
private void cancelOperateOneTypeStrategy(OrderGoodsCancelDTO dto) { private void cancelOperateOneTypeStrategy(OrderGoodsCancelDTO dto) {
......
...@@ -461,7 +461,7 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -461,7 +461,7 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
throw new ServiceSystemException(ResultEnum.DATA_NOT_FIND); throw new ServiceSystemException(ResultEnum.DATA_NOT_FIND);
} }
//根据挂单时间倒序排序 //根据挂单时间倒序排序
List<OrderGoods> orderGoods = orderGoodsDao.listAfterCreatedByOrderNo(data.getOrderNo()); List<OrderGoods> orderGoods = orderGoodsDao.listAllByOrderNo(data.getOrderNo());
if(CollectionUtils.isEmpty(orderGoods)){ if(CollectionUtils.isEmpty(orderGoods)){
return; return;
} }
...@@ -469,7 +469,13 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -469,7 +469,13 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
BigDecimal pendingOrderFreight = null; //最新的货单的司机运费,取消的也算 BigDecimal pendingOrderFreight = null; //最新的货单的司机运费,取消的也算
LocalDateTime firstPendingTime = null; //挂单时间,取消的也算 LocalDateTime firstPendingTime = null; //挂单时间,取消的也算
BigDecimal pendingWeight = BigDecimal.ZERO; BigDecimal pendingWeight = BigDecimal.ZERO;
Integer pendingTruck = calcPendingTruck(orderGoods);
for(OrderGoods item : orderGoods){ for(OrderGoods item : orderGoods){
//只有挂单车数统计所有货单的
if(Objects.equals(item.getOrderGoodsStatus(),OrderGoodsStatusEnum.Status.CREATED.getCode())){
continue;
}
seniorLogisticsManagerNameSet.add(item.getSeniorLogisticsManagerName()); seniorLogisticsManagerNameSet.add(item.getSeniorLogisticsManagerName());
if(Objects.isNull(pendingOrderFreight)){ if(Objects.isNull(pendingOrderFreight)){
pendingOrderFreight = item.getPendingOrderFreight(); pendingOrderFreight = item.getPendingOrderFreight();
...@@ -486,9 +492,22 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -486,9 +492,22 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
update.setDriverFreightPrice(pendingOrderFreight); update.setDriverFreightPrice(pendingOrderFreight);
update.setPendingTime(firstPendingTime); update.setPendingTime(firstPendingTime);
update.setPendingWeight(pendingWeight); update.setPendingWeight(pendingWeight);
update.setPendingTruck(pendingTruck);
performanceProgressDao.updateEntityByKey(update); performanceProgressDao.updateEntityByKey(update);
} }
//统计挂单车数
public Integer calcPendingTruck(List<OrderGoods> orderGoods){
int totalNeedTruck = 0;
for (OrderGoods item : orderGoods) {
if(!Objects.equals(item.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.CANCEL.getCode())){
totalNeedTruck = totalNeedTruck + item.getNeedTruckNum();
}
}
return totalNeedTruck;
}
//计算履约进度表货单的挂单吨数 //计算履约进度表货单的挂单吨数
@Override @Override
public BigDecimal calcPendingWeight(OrderGoods item){ public BigDecimal calcPendingWeight(OrderGoods item){
...@@ -627,6 +646,8 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -627,6 +646,8 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
rowData.add(new ExcelData(vo.getTaskWeight())); rowData.add(new ExcelData(vo.getTaskWeight()));
} else if (item.getCode().equals("pendingWeight")) { } else if (item.getCode().equals("pendingWeight")) {
rowData.add(new ExcelData(vo.getPendingWeight())); rowData.add(new ExcelData(vo.getPendingWeight()));
}else if (item.getCode().equals("pendingTruck")) {
rowData.add(new ExcelData(vo.getPendingTruck()));
} }
else if (item.getCode().equals("orderedTruckNum")) { else if (item.getCode().equals("orderedTruckNum")) {
......
package com.clx.performance.struct;
import com.clx.open.sdk.request.action.MslSyncExceptionReportInfoAction;
import com.clx.open.sdk.request.action.SmbSyncExceptionReportInfoAction;
import com.clx.performance.model.OrderChildExceptionReport;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildExceptionReportStruct {
OrderChildExceptionReport convertInfoSmbAction(SmbSyncExceptionReportInfoAction action);
OrderChildExceptionReport convertInfoMslAction(MslSyncExceptionReportInfoAction action);
}
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum CarrierExceptionReportEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
//:1:待处理 2:申诉中 3:已处理 4:已撤回
WAIT_DEAL(1, "待处理"),
APPEAL_IN_PROGRESS(2, "申诉中"),
PROCESSED(3, "已处理"),
WITHDRAWN(4, "已撤回"),
;
private final Integer code;
private final String name;
public static Optional<Status> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code.equals(code)).findFirst();
}
public static String getMsgByCode(Integer code) {
if (code == null) {return null;}
return getByCode(code).map(Status::getName).orElse(null);
}
}
}
package com.clx.performance.feign; package com.clx.performance.feign;
import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction; import com.clx.open.sdk.request.action.*;
import com.clx.open.sdk.request.action.QueryPerformanceProgressAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO; import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO; import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO; import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
...@@ -13,13 +11,14 @@ import com.clx.performance.vo.pc.PerformanceProgressOperationLogVO; ...@@ -13,13 +11,14 @@ import com.clx.performance.vo.pc.PerformanceProgressOperationLogVO;
import com.clx.performance.vo.pc.PerformanceProgressVO; import com.clx.performance.vo.pc.PerformanceProgressVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import jakarta.validation.constraints.NotEmpty;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import jakarta.validation.constraints.NotEmpty;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -75,4 +74,34 @@ public interface PerformanceSDKFeign { ...@@ -75,4 +74,34 @@ public interface PerformanceSDKFeign {
@GetMapping("clx-performance/feign/sdk/queryOrderStatistics") @GetMapping("clx-performance/feign/sdk/queryOrderStatistics")
Result<BatchOrderStatisticsDTO> queryOrderStatistics(@RequestParam("orderNoList") Result<BatchOrderStatisticsDTO> queryOrderStatistics(@RequestParam("orderNoList")
@NotEmpty(message = "订单编号集合不能为空") List<String> orderNoList); @NotEmpty(message = "订单编号集合不能为空") List<String> orderNoList);
@PostMapping("clx-performance/feign/sdk/smbSyncExceptionReportInfo")
Result<String> smbSyncExceptionReportInfo(@RequestBody @Validated SmbSyncExceptionReportInfoAction action);
@PostMapping("clx-performance/feign/sdk/smbSyncExceptionReportResult")
Result<Object> smbSyncExceptionReportResult(@RequestBody @Validated SmbSyncExceptionReportResultAction action);
@PostMapping("clx-performance/feign/sdk/smbWithdrawExceptionReport")
Result<Object> smbWithdrawExceptionReport(@RequestBody @Validated SmbWithdrawExceptionReportAction action);
@PostMapping("clx-performance/feign/sdk/mslSyncExceptionReportInfo")
Result<String> mslSyncExceptionReportInfo(@RequestBody @Validated MslSyncExceptionReportInfoAction action);
@PostMapping("clx-performance/feign/sdk/mslSyncExceptionReportResult")
Result<Object> mslSyncExceptionReportResult(@RequestBody @Validated MslSyncExceptionReportResultAction action);
@PostMapping("clx-performance/feign/sdk/mslWithdrawExceptionReport")
Result<Object> mslWithdrawExceptionReport(@RequestBody @Validated MslWithdrawExceptionReportAction action);
} }
package com.clx.performance.param.pc;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @ClassName DealExceptionReportParam
* @Description
* @Author kavin
* @Date 2024/10/22 20:07
* @Version 1.0
*/
@Getter
@Setter
public class DealExceptionReportParam {
@NotNull(message = "异常上报ID不能为空")
@Schema(description="异常上报ID")
private Integer id;
@NotNull(message = "处理方式不能为空")
@Schema(description="处理方式 1:同意扣罚 2:申诉" ,example = "枚举 ExceptionReportEnum.DealWay ")
private Integer dealWay;
@Schema(description="申诉原因")
private String appealReason;
@Schema(description="图片")
private List<String> pictureUrl;
@Schema(description="视频")
private List<String> videoUrl;
}
...@@ -133,6 +133,9 @@ public class CarrierOrderChildDetailVO { ...@@ -133,6 +133,9 @@ public class CarrierOrderChildDetailVO {
@Schema(description = "目的地详细地址") @Schema(description = "目的地详细地址")
private String receiveDetailAddress; private String receiveDetailAddress;
@Schema(description = "贸易商名称")
private String cooperativeCompaniesName;
@Schema(description = "订单来源") @Schema(description = "订单来源")
private Integer orderSource; private Integer orderSource;
private String orderSourceMsg; private String orderSourceMsg;
......
...@@ -242,4 +242,8 @@ public class OrderGoodsVO { ...@@ -242,4 +242,8 @@ public class OrderGoodsVO {
@Schema(description="已拉运车数") @Schema(description="已拉运车数")
private Integer alreadyTransportTruckAmount; private Integer alreadyTransportTruckAmount;
@Schema(description = "贸易商名称")
private String cooperativeCompaniesName;
} }
\ No newline at end of file
...@@ -95,6 +95,9 @@ public class PerformanceProgressVO{ ...@@ -95,6 +95,9 @@ public class PerformanceProgressVO{
@Schema(description="挂单吨数") @Schema(description="挂单吨数")
private BigDecimal pendingWeight; private BigDecimal pendingWeight;
@Schema(description="挂单车数")
private Integer pendingTruck;
@Schema(description="接单车数") @Schema(description="接单车数")
private Integer orderedTruckNum; private Integer orderedTruckNum;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论