提交 86c1543e authored 作者: liuhaiquan's avatar liuhaiquan

Merge remote-tracking branch 'origin/v5.7_break_contract_reverse_20231020' into…

Merge remote-tracking branch 'origin/v5.7_break_contract_reverse_20231020' into v5.7_break_contract_reverse_20231020
...@@ -13,7 +13,7 @@ public enum BreakContractSettlementOwnerEnum { ...@@ -13,7 +13,7 @@ public enum BreakContractSettlementOwnerEnum {
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum Status { public enum Status {
TO_BE_LOCKED(10, "待锁定"), TO_BE_ACCOUNT(10, "待对账"),
OWNER_TO_BE_CONFIRMED(20, "待货主确认"), OWNER_TO_BE_CONFIRMED(20, "待货主确认"),
SHIPPER_TO_PAYMENT (30, "待货主付款"), SHIPPER_TO_PAYMENT (30, "待货主付款"),
PLATFORM_CONFIRMED_OWNER_PAYMENT(40, "待平台确认付款"), PLATFORM_CONFIRMED_OWNER_PAYMENT(40, "待平台确认付款"),
......
package com.clx.performance.feign; package com.clx.performance.feign;
import com.clx.performance.param.pc.OrderCancelParam; import com.clx.performance.param.pc.OrderCancelFeignParam;
import com.clx.performance.vo.feign.OrderGoodsFeignVO; import com.clx.performance.vo.feign.OrderGoodsFeignVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
...@@ -54,7 +54,7 @@ public interface PerformanceFeign { ...@@ -54,7 +54,7 @@ public interface PerformanceFeign {
@PostMapping(value = {"clx-performance/feign/order/orderCancel"}) @PostMapping(value = {"clx-performance/feign/order/orderCancel"})
Result<Object> orderCancel(@RequestBody OrderCancelParam param); Result<Object> orderCancel(@RequestBody OrderCancelFeignParam param);
/** /**
......
package com.clx.performance.param.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
@Getter
@Setter
public class OrderCancelFeignParam {
@NotNull(message = "订单编号不能为空")
@ApiModelProperty("订单编号")
private String orderNo;
}
package com.clx.performance.param.pc; package com.clx.performance.param.pc;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Data;
import lombok.Setter;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@Data
@Getter
@Setter
public class OrderCancelParam { public class OrderCancelParam {
@NotNull(message = "订单编号不能为空") @NotNull(message = "订单编号不能为空")
@ApiModelProperty("订单编号") @ApiModelProperty("订单编号")
private String orderNo; private String orderNo;
@ApiModelProperty("1:弹窗1 2:弹窗取消未拉运吨数 3:取消未拉运+已到达货源地之前的吨数")
private Integer cancelType;
@ApiModelProperty("1:平台 2:货主")
private Integer createByType;
} }
...@@ -20,6 +20,9 @@ public class PageCarrierBreakContractSettlementDriverDetailParam extends PagePar ...@@ -20,6 +20,9 @@ public class PageCarrierBreakContractSettlementDriverDetailParam extends PagePar
@ApiModelProperty(value="车主编号",example = "201457878") @ApiModelProperty(value="车主编号",example = "201457878")
private Long truckOwnUserNo; private Long truckOwnUserNo;
@ApiModelProperty("车主名称")
private String truckOwnName;
@ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1") @ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1")
private Integer breakContractPartyType; private Integer breakContractPartyType;
......
...@@ -20,6 +20,9 @@ public class PageCarrierBreakContractSettlementOwnerDetailParam extends PagePara ...@@ -20,6 +20,9 @@ public class PageCarrierBreakContractSettlementOwnerDetailParam extends PagePara
@ApiModelProperty(value="货主编号",example = "201457878") @ApiModelProperty(value="货主编号",example = "201457878")
private Long ownerUserNo; private Long ownerUserNo;
@ApiModelProperty("货主名称")
private String ownerName;
@ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1") @ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1")
private Integer breakContractPartyType; private Integer breakContractPartyType;
......
...@@ -28,7 +28,7 @@ public class PageCarrierBreakContractSettlementOwnerParam extends PageParam { ...@@ -28,7 +28,7 @@ public class PageCarrierBreakContractSettlementOwnerParam extends PageParam {
@ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1") @ApiModelProperty(value = "违约方类型:1平台 2货主 3车主", example = "1")
private Integer breakContractPartyType; private Integer breakContractPartyType;
@ApiModelProperty(value = "状态:10-待锁定,20-待货主确认,30-待货主付款,40-待平台确认付款,50-待平台付款,60-待货主确认付款,70-已完结,80-已取消", example = "1") @ApiModelProperty(value = "状态:10-待对账,20-待货主确认,30-待货主付款,40-待平台确认付款,50-待平台付款,60-待货主确认付款,70-已完结,80-已取消", example = "1")
private Integer status; private Integer status;
@ApiModelProperty(value="开始时间",example = "2012-01-01 00:00:00") @ApiModelProperty(value="开始时间",example = "2012-01-01 00:00:00")
......
package com.clx.performance.controller.feign; package com.clx.performance.controller.feign;
import com.clx.performance.param.pc.OrderCancelFeignParam;
import com.clx.performance.param.pc.OrderCancelParam; import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.service.OrderCancelService; import com.clx.performance.service.OrderCancelService;
import com.msl.common.result.Result; import com.msl.common.result.Result;
...@@ -27,8 +28,12 @@ public class OrderCancelFeignController { ...@@ -27,8 +28,12 @@ public class OrderCancelFeignController {
@ApiOperation(value = "货主端订单取消", notes = "<br>By:胡宇帆") @ApiOperation(value = "货主端订单取消", notes = "<br>By:胡宇帆")
@PostMapping("/orderCancel") @PostMapping("/orderCancel")
public Result<Object> orderCancel(@RequestBody OrderCancelParam param) { public Result<Object> orderCancel(@RequestBody OrderCancelFeignParam param) {
orderCancelService.ownerCancelOrderPre(param.getOrderNo()); OrderCancelParam cancelParam = new OrderCancelParam();
cancelParam.setOrderNo(param.getOrderNo());
cancelParam.setCancelType(3);
cancelParam.setCreateByType(1);
orderCancelService.platformCancelOrderPrePC(cancelParam);
return Result.ok(); return Result.ok();
} }
} }
package com.clx.performance.controller.pc; package com.clx.performance.controller.pc;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.service.OrderCancelService; import com.clx.performance.service.OrderCancelService;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -19,23 +18,23 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -19,23 +18,23 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping(value="/pc/order/") @RequestMapping(value="/pc/order/")
@Validated @Validated
@Api(tags = "PC-订单取消取消") @Api(tags = "PC-订单取消")
@AllArgsConstructor @AllArgsConstructor
public class OrderCancelController { public class OrderCancelController {
private final OrderCancelService orderCancelService; private final OrderCancelService orderCancelService;
@ApiOperation(value = "承运端取消订单", notes = "<br>By:胡宇帆") @ApiOperation(value = "承运端取消订单", notes = "<br>By:胡宇帆")
@GetMapping("/platformCancelOrderPre") @PostMapping("/platformCancelOrderPre")
public Result<Object> platformCancelOrderPre(@RequestParam String orderNo) { public Result<Object> platformCancelOrderPre(@RequestParam OrderCancelParam param) {
orderCancelService.platformCancelOrderPre(orderNo); orderCancelService.platformCancelOrderPrePC(param);
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "货主端取消订单", notes = "<br>By:胡宇帆") @ApiOperation(value = "货主端取消订单", notes = "<br>By:胡宇帆")
@GetMapping("/ownCancelOrderPre") @PostMapping("/ownCancelOrderPre")
public Result<Object> ownCancelOrderPre(@RequestParam String orderNo) { public Result<Object> ownCancelOrderPre(@RequestParam OrderCancelParam param) {
orderCancelService.ownerCancelOrderPre(orderNo); orderCancelService.ownerCancelOrderPrePC(param);
return Result.ok(); return Result.ok();
} }
} }
...@@ -28,6 +28,7 @@ public class BreakContractSettlementDriverDetailDaoImpl extends BaseDaoImpl<Brea ...@@ -28,6 +28,7 @@ public class BreakContractSettlementDriverDetailDaoImpl extends BaseDaoImpl<Brea
LambdaQueryWrapper<BreakContractSettlementDriverDetail> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BreakContractSettlementDriverDetail> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getChildNo()),BreakContractSettlementDriverDetail :: getChildNo,param.getChildNo()); query.eq(StringUtils.isNotBlank(param.getChildNo()),BreakContractSettlementDriverDetail :: getChildNo,param.getChildNo());
query.eq(Objects.nonNull(param.getTruckOwnUserNo()),BreakContractSettlementDriverDetail :: getTruckOwnUserNo,param.getTruckOwnUserNo()); query.eq(Objects.nonNull(param.getTruckOwnUserNo()),BreakContractSettlementDriverDetail :: getTruckOwnUserNo,param.getTruckOwnUserNo());
query.eq(StringUtils.isNotBlank(param.getTruckOwnName()),BreakContractSettlementDriverDetail :: getTruckOwnName,param.getTruckOwnName());
query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementDriverDetail :: getBreakContractPartyType,param.getBreakContractPartyType()); query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementDriverDetail :: getBreakContractPartyType,param.getBreakContractPartyType());
query.orderByDesc(BreakContractSettlementDriverDetail::getId); query.orderByDesc(BreakContractSettlementDriverDetail::getId);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query); return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
......
...@@ -30,6 +30,7 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra ...@@ -30,6 +30,7 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra
LambdaQueryWrapper<BreakContractSettlementOwner> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BreakContractSettlementOwner> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractSettlementOwner :: getOrderNo,param.getOrderNo()); query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractSettlementOwner :: getOrderNo,param.getOrderNo());
query.eq(Objects.nonNull(param.getOwnerUserNo()),BreakContractSettlementOwner :: getOwnerUserNo,param.getOwnerUserNo()); query.eq(Objects.nonNull(param.getOwnerUserNo()),BreakContractSettlementOwner :: getOwnerUserNo,param.getOwnerUserNo());
query.eq(Objects.nonNull(param.getStatus()),BreakContractSettlementOwner :: getStatus,param.getStatus());
query.eq(StringUtils.isNotBlank(param.getOwnerName()),BreakContractSettlementOwner ::getOwnerName ,param.getOwnerName()); query.eq(StringUtils.isNotBlank(param.getOwnerName()),BreakContractSettlementOwner ::getOwnerName ,param.getOwnerName());
query.eq(StringUtils.isNotBlank(param.getSettlementNo()),BreakContractSettlementOwner ::getSettlementNo ,param.getSettlementNo()); query.eq(StringUtils.isNotBlank(param.getSettlementNo()),BreakContractSettlementOwner ::getSettlementNo ,param.getSettlementNo());
query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementOwner :: getBreakContractPartyType,param.getBreakContractPartyType()); query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementOwner :: getBreakContractPartyType,param.getBreakContractPartyType());
...@@ -43,7 +44,7 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra ...@@ -43,7 +44,7 @@ public class BreakContractSettlementOwnerDaoImpl extends BaseDaoImpl<BreakContra
public boolean uploadInvoiceImg(Integer id, String invoiceImg) { public boolean uploadInvoiceImg(Integer id, String invoiceImg) {
return update(lUdWrapper() return update(lUdWrapper()
.eq(BreakContractSettlementOwner::getId, id) .eq(BreakContractSettlementOwner::getId, id)
.eq(BreakContractSettlementOwner::getStatus, BreakContractSettlementOwnerEnum.Status.TO_BE_LOCKED.getCode()) .eq(BreakContractSettlementOwner::getStatus, BreakContractSettlementOwnerEnum.Status.TO_BE_ACCOUNT.getCode())
.set(BreakContractSettlementOwner::getInvoiceImg, invoiceImg) .set(BreakContractSettlementOwner::getInvoiceImg, invoiceImg)
.set(BreakContractSettlementOwner::getStatus, BreakContractSettlementOwnerEnum.Status.OWNER_TO_BE_CONFIRMED.getCode()) .set(BreakContractSettlementOwner::getStatus, BreakContractSettlementOwnerEnum.Status.OWNER_TO_BE_CONFIRMED.getCode())
); );
......
...@@ -26,6 +26,7 @@ public class BreakContractSettlementOwnerDetailDaoImpl extends BaseDaoImpl<Break ...@@ -26,6 +26,7 @@ public class BreakContractSettlementOwnerDetailDaoImpl extends BaseDaoImpl<Break
LambdaQueryWrapper<BreakContractSettlementOwnerDetail> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BreakContractSettlementOwnerDetail> query = new LambdaQueryWrapper<>();
query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractSettlementOwnerDetail :: getOrderNo,param.getOrderNo()); query.eq(StringUtils.isNotBlank(param.getOrderNo()),BreakContractSettlementOwnerDetail :: getOrderNo,param.getOrderNo());
query.eq(Objects.nonNull(param.getOwnerUserNo()),BreakContractSettlementOwnerDetail ::getOwnerUserNo ,param.getOwnerUserNo()); query.eq(Objects.nonNull(param.getOwnerUserNo()),BreakContractSettlementOwnerDetail ::getOwnerUserNo ,param.getOwnerUserNo());
query.eq(StringUtils.isNotBlank(param.getOwnerName()),BreakContractSettlementOwnerDetail :: getOwnerName,param.getOwnerName());
query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementOwnerDetail :: getBreakContractPartyType,param.getBreakContractPartyType()); query.eq(Objects.nonNull(param.getBreakContractPartyType()),BreakContractSettlementOwnerDetail :: getBreakContractPartyType,param.getBreakContractPartyType());
query.orderByDesc(BreakContractSettlementOwnerDetail::getId); query.orderByDesc(BreakContractSettlementOwnerDetail::getId);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query); return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
......
package com.clx.performance.listener; package com.clx.performance.listener;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.mq.OrderCancelMqParam;
import com.clx.performance.service.IntegralMqService;
import com.clx.performance.service.OrderCancelService; import com.clx.performance.service.OrderCancelService;
import com.msl.common.base.Optional;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -28,16 +23,12 @@ public class OrderCancelHandler { ...@@ -28,16 +23,12 @@ public class OrderCancelHandler {
@RabbitListener(queues = RabbitKeyConstants.ORDER_CANCEL_QUEUE) @RabbitListener(queues = RabbitKeyConstants.ORDER_CANCEL_QUEUE)
public void onMessage(String message) { public void onMessage(String message) {
log.info("处理订单取消监听器执行,订单No为{}", message); log.info("处理订单取消监听器执行,订单No为{}", message);
OrderCancelMqParam param = JSONUtil.toBean(message, OrderCancelMqParam.class); OrderCancelParam param = JSONUtil.toBean(message, OrderCancelParam.class);
if (StringUtils.equals(param.getType(), "1")) { if (ObjectUtil.equals(param.getCancelType(), 1)) {
orderCancelService.platformCancelOrder(param.getOrderNo()); orderCancelService.ownerCancelOrderPrePCMQ(param);
} else { } else {
orderCancelService.ownerCancelOrder(param.getOrderNo()); orderCancelService.ownerCancelOrderPrePCMQ(param);
} }
return;
// if (StringUtils.isBlank(message)) {
// return;
// }
// orderCancelService.ownerCancelOrder(message);
} }
} }
package com.clx.performance.service; package com.clx.performance.service;
import com.clx.performance.param.pc.OrderCancelParam;
public interface OrderCancelService { public interface OrderCancelService {
void platformCancelOrderPre(String orderNo); // void platformCancelOrderPre(String orderNo);
//
// void platformCancelOrder(String orderNo);
//
// void ownerCancelOrderPre(String orderNo);
//
// void ownerCancelOrder(String orderNo);
void platformCancelOrder(String orderNo); void ownerCancelOrderPrePC(OrderCancelParam param);
void ownerCancelOrderPre(String orderNo); void platformCancelOrderPrePC(OrderCancelParam param);
void ownerCancelOrder(String orderNo); void ownerCancelOrderPrePCMQ(OrderCancelParam param);
} }
package com.clx.performance.service.impl; package com.clx.performance.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.clx.order.enums.OrderEnum; import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.RollbackOrderWeightParam; import com.clx.order.param.feign.RollbackOrderWeightParam;
import com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.OrderGoodsStatusEnum; import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.TruckDemandEnum; import com.clx.performance.enums.TruckDemandEnum;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.mq.OrderCancelMqParam; import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.service.OrderCancelService; import com.clx.performance.service.OrderCancelService;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -47,508 +47,900 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -47,508 +47,900 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private final RabbitTemplate rabbitTemplate; private final RabbitTemplate rabbitTemplate;
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void platformCancelOrderPre(String orderNo) {
//// FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
//// BigDecimal orderTransportWeight = new BigDecimal(orderInfoFeign.getTransportWeight());
//
// List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
// if (CollectionUtil.isEmpty(orderGoodsList)) {
// //未产生货单
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
// log.info("执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
// mqParam.setType("1");
// mqParam.setOrderNo(orderNo);
// Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
// rabbitTemplate.send(
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
// );
// return;
// }
//
// List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, null);
//
// if (CollectionUtil.isEmpty(orderChildrenList)) {
// //说明此刻未产生运单
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
//
// for (OrderGoods orderGoods : orderGoodsList) {
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
//
// } else {
//
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
// for (OrderGoods orderGoods : orderGoodsList) {
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// List<OrderChild> orderChildren = orderChildMap.get(orderGoods.getOrderGoodsNo());
// if (CollectionUtil.isEmpty(orderChildren)) {
// //没有运单,直接是取消
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// } else {
// if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) != 0) {
// //货单还有余量,是已完结
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// } else {
// List<OrderChild> orderChildrenListComplete = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.COMPLETE.getCode());
// if (CollectionUtil.isNotEmpty(orderChildrenListComplete)) {
// Map<String, List<OrderChild>> orderChildCompleteMap = orderChildrenListComplete.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
// //没有余量,需要判断已完成的运单量是不等于货单的全部提取量,等于则是已完成,否则是已完结
// List<OrderChild> childList = orderChildCompleteMap.get(orderGoods.getOrderGoodsNo());
// BigDecimal reduce = childList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// if (reduce.compareTo(orderGoods.getExtractWeight()) == 0) {
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.SUCCESS.getCode());
// } else {
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// }
// }
//
// }
// }
// orderGoodsDao.updateEntityByKey(update);
// }
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.COMPLETED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
// }
//
// log.info("执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
// mqParam.setType("1");
// mqParam.setOrderNo(orderNo);
// Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
// rabbitTemplate.send(
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
// );
//
// }
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void platformCancelOrder(String orderNo) {
// log.info("开始执行平台订单取消吨数回填");
// FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo);
//
// List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
// Map<Integer, BigDecimal> truckDemandMap = new HashMap<>();
// truckDemandMap.put(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode(), BigDecimal.ZERO);
// truckDemandMap.put(TruckDemandEnum.TruckType.OWNER_CAR.getCode(), BigDecimal.ZERO);
//
// //非部分平台车辆拉运
// if (!TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode().equals(orderInfoFeignVO.getTruckDemand())) {
// if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已完结
// List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
//
// for (OrderChild orderChild : orderChildrenList) {
// OrderChild update = new OrderChild();
// update.setId(orderChild.getId());
// update.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
// //TODO 补充批量更新接口 关闭运单状态
// orderChildDao.updateEntityByKey(update);
// }
// Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
// .collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
//
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
// for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
// String orderGoodsNo = entry.getKey();
// OrderGoods orderGoods = entry.getValue().get(0);
// List<OrderChild> orderChildren = orderChildMap.get(orderGoodsNo);
// BigDecimal sum = BigDecimal.ZERO;
// if (CollectionUtil.isNotEmpty(orderChildren)) {
// sum = orderChildren.stream()
// .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// }
// truckDemandMap.put(orderGoods.getTruckDemand(),
// truckDemandMap.get(orderGoods.getTruckDemand())
// .add(orderGoods.getResidueTransportWeight().add(sum)));
//
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态 注意判断货单是已完结还是已完成
// update.setResidueTransportWeight(BigDecimal.ZERO);
//// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
//
// } else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已取消
// for (OrderGoods orderGoods : orderGoodsList) {
// truckDemandMap.put(orderGoods.getTruckDemand(),
// truckDemandMap.get(orderGoods.getTruckDemand())
// .add(orderGoods.getResidueTransportWeight()));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
//// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
// }
//
// Integer truckDemand = orderInfoFeignVO.getTruckDemand();
// BigDecimal residueWeight = truckDemandMap.get(truckDemand);
// if (residueWeight.compareTo(BigDecimal.ZERO) == 0) {
// log.info("当前订单对应的货单无需吨数回填,订单编号{}", orderNo);
// return;
// }
//
// //归还吨数
// RollbackOrderWeightParam param = new RollbackOrderWeightParam();
// param.setOrderNo(orderInfoFeignVO.getOrderNo());
// if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
// param.setResidueWeight(residueWeight);
// param.setOwnResidueCarryWeight(BigDecimal.ZERO);
// param.setPlatformResidueCarryWeight(residueWeight);
// }
// if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
// param.setResidueWeight(residueWeight);
// param.setOwnResidueCarryWeight(residueWeight);
// param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
// }
// orderFeign.rollbackOrderWeight(param);
//
// } else {
// Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>();
// if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已完结
// List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
//
// for (OrderChild orderChild : orderChildrenList) {
// OrderChild update = new OrderChild();
// update.setId(orderChild.getId());
// update.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
// //TODO 补充批量更新接口 关闭运单状态
// orderChildDao.updateEntityByKey(update);
// }
// //货单
// Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
// .collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
// //运单
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
//
// for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
// String orderGoodsNo = entry.getKey();
// OrderGoods orderGoods = entry.getValue().get(0);
//
// BigDecimal sum = BigDecimal.ZERO;
// if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoodsNo))) {
// sum = orderChildMap.get(orderGoodsNo).stream()
// .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// }
// vehicleUsageMap.put(orderGoods.getVehicleUsage(),
// vehicleUsageMap.get(orderGoods.getVehicleUsage())
// .add(orderGoods.getResidueTransportWeight().add(sum)));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
// //update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
//
// }
//
// } else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已取消
// for (OrderGoods orderGoods : orderGoodsList) {
// vehicleUsageMap.put(orderGoods.getVehicleUsage(),
// vehicleUsageMap.get(orderGoods.getVehicleUsage())
// .add(orderGoods.getResidueTransportWeight()));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
// //update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
// }
//
// //归还吨数
// BigDecimal platformResidueSum = vehicleUsageMap.get(1);
// BigDecimal ownResidueSum = vehicleUsageMap.get(2);
// BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
// RollbackOrderWeightParam param = new RollbackOrderWeightParam();
// param.setOrderNo(orderInfoFeignVO.getOrderNo());
// param.setResidueWeight(residueSum);
// param.setPlatformResidueCarryWeight(platformResidueSum);
// param.setOwnResidueCarryWeight(ownResidueSum);
// orderFeign.rollbackOrderWeight(param);
// }
//
//
// }
//
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void ownerCancelOrderPre(String orderNo) {
// //FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
//
// List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
// if (CollectionUtil.isEmpty(orderGoodsList)) {
// //未产生货单
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
// log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
// mqParam.setType("2");
// mqParam.setOrderNo(orderNo);
// Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
// rabbitTemplate.send(
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
// );
// return;
// }
//
// List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, null);
//
// if (CollectionUtil.isEmpty(orderChildrenList)) {
// //说明此刻未产生运单
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
//
// for (OrderGoods orderGoods : orderGoodsList) {
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
//
// } else {
//
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
// for (OrderGoods orderGoods : orderGoodsList) {
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// List<OrderChild> orderChildren = orderChildMap.get(orderGoods.getOrderGoodsNo());
// if (CollectionUtil.isEmpty(orderChildren)) {
// //没有运单,直接是取消
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// } else {
// if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) != 0) {
// //货单还有余量,是已完结
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// } else {
// List<OrderChild> orderChildrenListComplete = orderChildDao.selectOrderChildListByOrderGoodsNoAndStatusGE(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.ARRIVE_SEND.getCode());
// if (CollectionUtil.isNotEmpty(orderChildrenListComplete)) {
// //没有余量,需要判断已完成的运单量是不等于货单的全部提取量,等于则是已完成,否则是已完结
// BigDecimal reduce = orderChildrenListComplete.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// if (reduce.compareTo(orderGoods.getExtractWeight()) == 0) {
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.SUCCESS.getCode());
// } else {
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// }
// } else {
// //虽然没有余量,但是可以取消的运单都是未到达货源地的
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// }
//
// }
// }
// orderGoodsDao.updateEntityByKey(update);
// }
// Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.COMPLETED.getCode());
// if (!result.succeed()) {
// throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
// }
// }
//
// log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
// mqParam.setType("2");
// mqParam.setOrderNo(orderNo);
// Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
// rabbitTemplate.send(
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
// );
//
// }
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void ownerCancelOrder(String orderNo) {
// log.info("开始执行订单取消吨数回填");
// FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo);
//
// List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
// Map<Integer, BigDecimal> truckDemandMap = new HashMap<>();
// truckDemandMap.put(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode(), BigDecimal.ZERO);
// truckDemandMap.put(TruckDemandEnum.TruckType.OWNER_CAR.getCode(), BigDecimal.ZERO);
// if (!TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode().equals(orderInfoFeignVO.getTruckDemand())) {
// if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已完结
// List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
//
// for (OrderChild orderChild : orderChildrenList) {
// OrderChild update = new OrderChild();
// update.setId(orderChild.getId());
// update.setStatus(OrderChildEnum.Status.OWNER_CANCEL.getCode());
// //TODO 补充批量更新接口 关闭运单状态
// orderChildDao.updateEntityByKey(update);
// }
// Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
// .collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
//
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
// for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
// String orderGoodsNo = entry.getKey();
// OrderGoods orderGoods = entry.getValue().get(0);
// List<OrderChild> orderChildren = orderChildMap.get(orderGoodsNo);
// BigDecimal sum = BigDecimal.ZERO;
// if (CollectionUtil.isNotEmpty(orderChildren)) {
// sum = orderChildren.stream()
// .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// }
// truckDemandMap.put(orderGoods.getTruckDemand(),
// truckDemandMap.get(orderGoods.getTruckDemand())
// .add(orderGoods.getResidueTransportWeight().add(sum)));
//
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态 注意判断货单是已完结还是已完成
// update.setResidueTransportWeight(BigDecimal.ZERO);
//// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
//
// } else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已取消
// for (OrderGoods orderGoods : orderGoodsList) {
// truckDemandMap.put(orderGoods.getTruckDemand(),
// truckDemandMap.get(orderGoods.getTruckDemand())
// .add(orderGoods.getResidueTransportWeight()));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
//// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
// }
//
// Integer truckDemand = orderInfoFeignVO.getTruckDemand();
// BigDecimal residueWeight = truckDemandMap.get(truckDemand);
// if (residueWeight.compareTo(BigDecimal.ZERO) == 0) {
// log.info("当前订单对应的货单无需吨数回填,订单编号{}", orderNo);
// return;
// }
//
// //归还吨数
// RollbackOrderWeightParam param = new RollbackOrderWeightParam();
// param.setOrderNo(orderInfoFeignVO.getOrderNo());
// if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
// param.setResidueWeight(residueWeight);
// param.setOwnResidueCarryWeight(BigDecimal.ZERO);
// param.setPlatformResidueCarryWeight(residueWeight);
// }
// if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
// param.setResidueWeight(residueWeight);
// param.setOwnResidueCarryWeight(residueWeight);
// param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
// }
// orderFeign.rollbackOrderWeight(param);
//
// } else {
// Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>();
// vehicleUsageMap.put(1, BigDecimal.ZERO);
// vehicleUsageMap.put(2, BigDecimal.ZERO);
// if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已完结
// List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
//
// for (OrderChild orderChild : orderChildrenList) {
// OrderChild update = new OrderChild();
// update.setId(orderChild.getId());
// update.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
// //TODO 补充批量更新接口 关闭运单状态
// orderChildDao.updateEntityByKey(update);
// }
// //货单
// Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
// .collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
// //运单
// Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
// .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
//
//
// for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
// String orderGoodsNo = entry.getKey();
// OrderGoods orderGoods = entry.getValue().get(0);
//
// BigDecimal sum = BigDecimal.ZERO;
// if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoodsNo))) {
// sum = orderChildMap.get(orderGoodsNo).stream()
// .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
// }
// vehicleUsageMap.put(orderGoods.getVehicleUsage(),
// vehicleUsageMap.get(orderGoods.getVehicleUsage())
// .add(orderGoods.getResidueTransportWeight().add(sum)));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
// //update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
//
// }
//
// } else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
// //已取消
// for (OrderGoods orderGoods : orderGoodsList) {
// vehicleUsageMap.put(orderGoods.getVehicleUsage(),
// vehicleUsageMap.get(orderGoods.getVehicleUsage())
// .add(orderGoods.getResidueTransportWeight()));
// OrderGoods update = new OrderGoods();
// update.setId(orderGoods.getId());
// //TODO 补充批量更新接口 关闭货单状态
// update.setResidueTransportWeight(BigDecimal.ZERO);
// //update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
// orderGoodsDao.updateEntityByKey(update);
// }
// }
//
// //归还吨数
// BigDecimal platformResidueSum = vehicleUsageMap.get(1);
// BigDecimal ownResidueSum = vehicleUsageMap.get(2);
// BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
// RollbackOrderWeightParam param = new RollbackOrderWeightParam();
// param.setOrderNo(orderInfoFeignVO.getOrderNo());
// param.setResidueWeight(residueSum);
// param.setPlatformResidueCarryWeight(platformResidueSum);
// param.setOwnResidueCarryWeight(ownResidueSum);
// orderFeign.rollbackOrderWeight(param);
// }
//
//
// }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void platformCancelOrderPre(String orderNo) { public void ownerCancelOrderPrePC(OrderCancelParam param) {
// FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo); String orderNo = param.getOrderNo();
// BigDecimal orderTransportWeight = new BigDecimal(orderInfoFeign.getTransportWeight()); List<OrderGoods> orderGoodsList = null;
Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode();
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
if (CollectionUtil.isEmpty(orderGoodsList)) { switch (param.getCancelType()) {
//未产生货单 case 1: //单纯取消订单
Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()); if (CollectionUtil.isNotEmpty(orderChildDao.getOrderChildByOrderNo(orderNo))) {
if (!result.succeed()) { throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败"); }
} Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
log.info("执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo); if (!result.succeed()) {
OrderCancelMqParam mqParam = new OrderCancelMqParam(); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
mqParam.setType("1"); }
mqParam.setOrderNo(orderNo); orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
rabbitTemplate.send(
RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
);
return;
}
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, null);
if (CollectionUtil.isEmpty(orderChildrenList)) { for (OrderGoods orderGoods : orderGoodsList) {
//说明此刻未产生运单 OrderGoods update = new OrderGoods();
Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()); update.setId(orderGoods.getId());
if (!result.succeed()) { update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败"); orderGoodsDao.updateEntityByKey(update);
} }
break;
case 2: //取消未拉运吨数的货单
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
for (OrderGoods orderGoods : orderGoodsList) { for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods(); OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId()); update.setId(orderGoods.getId());
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); if (orderGoods.getResidueTransportWeight().compareTo(orderGoods.getExtractWeight()) == 0) {
orderGoodsDao.updateEntityByKey(update); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} } else {
orderStatusCode = OrderEnum.Status.COMPLETED.getCode();
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
}
orderGoodsDao.updateEntityByKey(update);
}
} else { if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream() }
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo)); break;
for (OrderGoods orderGoods : orderGoodsList) { case 3: //取消未拉运+未到达货源地吨数
OrderGoods update = new OrderGoods(); List<OrderChild> orderChildren = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
update.setId(orderGoods.getId());
List<OrderChild> orderChildren = orderChildMap.get(orderGoods.getOrderGoodsNo());
if (CollectionUtil.isEmpty(orderChildren)) { if (CollectionUtil.isEmpty(orderChildren)) {
//没有运单,直接是取消 throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); }
} else { if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) != 0) { throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
//货单还有余量,是已完结 }
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); List<Integer> ids = orderChildren.stream().map(OrderChild::getId).collect(Collectors.toList());
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.OWNER_CANCEL.getCode(), ids);
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<String, List<OrderChild>> orderChildMap = orderChildren.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
if (CollectionUtil.isEmpty(orderChildMap.get(orderGoods.getOrderGoodsNo()))) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else { } else {
List<OrderChild> orderChildrenListComplete = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.COMPLETE.getCode()); BigDecimal reduce = orderChildMap.get(orderGoods.getOrderGoodsNo())
if (CollectionUtil.isNotEmpty(orderChildrenListComplete)) { .stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
Map<String, List<OrderChild>> orderChildCompleteMap = orderChildrenListComplete.stream() if (orderGoods.getExtractWeight().compareTo(orderGoods.getResidueTransportWeight().add(reduce)) == 0) {
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo)); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
//没有余量,需要判断已完成的运单量是不等于货单的全部提取量,等于则是已完成,否则是已完结 } else {
List<OrderChild> childList = orderChildCompleteMap.get(orderGoods.getOrderGoodsNo()); orderStatusCode = OrderEnum.Status.COMPLETED.getCode();
BigDecimal reduce = childList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
if (reduce.compareTo(orderGoods.getExtractWeight()) == 0) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.SUCCESS.getCode());
} else {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
}
} }
} }
orderGoodsDao.updateEntityByKey(update);
}
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
} }
orderGoodsDao.updateEntityByKey(update); break;
}
Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.COMPLETED.getCode()); default:
if (!result.succeed()) { throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "参数有误");
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
}
} }
log.info("执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo); log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
OrderCancelMqParam mqParam = new OrderCancelMqParam();
mqParam.setType("1"); Message message = MessageBuilder.withBody(JSONUtil.parse(param).toString().getBytes()).build();
mqParam.setOrderNo(orderNo);
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
rabbitTemplate.send( rabbitTemplate.send(
RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
); );
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void platformCancelOrder(String orderNo) { public void platformCancelOrderPrePC(OrderCancelParam param) {
log.info("开始执行平台订单取消吨数回填"); String orderNo = param.getOrderNo();
FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo); List<OrderGoods> orderGoodsList = null;
Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode();
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<Integer, BigDecimal> truckDemandMap = new HashMap<>(); switch (param.getCancelType()) {
truckDemandMap.put(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode(), BigDecimal.ZERO); case 1: //单纯取消订单
truckDemandMap.put(TruckDemandEnum.TruckType.OWNER_CAR.getCode(), BigDecimal.ZERO); if (CollectionUtil.isNotEmpty(orderChildDao.getOrderChildByOrderNo(orderNo))) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
//非部分平台车辆拉运
if (!TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode().equals(orderInfoFeignVO.getTruckDemand())) {
if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已完结
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
for (OrderChild orderChild : orderChildrenList) {
OrderChild update = new OrderChild();
update.setId(orderChild.getId());
update.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
//TODO 补充批量更新接口 关闭运单状态
orderChildDao.updateEntityByKey(update);
} }
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream() Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo)); if (!result.succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream() }
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo)); orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
String orderGoodsNo = entry.getKey();
OrderGoods orderGoods = entry.getValue().get(0);
List<OrderChild> orderChildren = orderChildMap.get(orderGoodsNo);
BigDecimal sum = BigDecimal.ZERO;
if (CollectionUtil.isNotEmpty(orderChildren)) {
sum = orderChildren.stream()
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight().add(sum)));
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods(); OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId()); update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态 注意判断货单是已完结还是已完成 update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
update.setResidueTransportWeight(BigDecimal.ZERO);
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsDao.updateEntityByKey(update); orderGoodsDao.updateEntityByKey(update);
} }
break;
case 2: //取消未拉运吨数的货单
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已取消
for (OrderGoods orderGoods : orderGoodsList) { for (OrderGoods orderGoods : orderGoodsList) {
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight()));
OrderGoods update = new OrderGoods(); OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId()); update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态 if (orderGoods.getResidueTransportWeight().compareTo(orderGoods.getExtractWeight()) == 0) {
update.setResidueTransportWeight(BigDecimal.ZERO); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); } else {
orderStatusCode = OrderEnum.Status.COMPLETED.getCode();
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
}
orderGoodsDao.updateEntityByKey(update); orderGoodsDao.updateEntityByKey(update);
} }
}
Integer truckDemand = orderInfoFeignVO.getTruckDemand();
BigDecimal residueWeight = truckDemandMap.get(truckDemand);
if (residueWeight.compareTo(BigDecimal.ZERO) == 0) {
log.info("当前订单对应的货单无需吨数回填,订单编号{}", orderNo);
return;
}
//归还吨数
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
param.setOrderNo(orderInfoFeignVO.getOrderNo());
if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
param.setResidueWeight(residueWeight);
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
param.setPlatformResidueCarryWeight(residueWeight);
}
if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
param.setResidueWeight(residueWeight);
param.setOwnResidueCarryWeight(residueWeight);
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
orderFeign.rollbackOrderWeight(param);
} else {
Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>();
if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已完结
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
for (OrderChild orderChild : orderChildrenList) {
OrderChild update = new OrderChild();
update.setId(orderChild.getId());
update.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
//TODO 补充批量更新接口 关闭运单状态
orderChildDao.updateEntityByKey(update);
}
//货单
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
//运单
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) { if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) {
String orderGoodsNo = entry.getKey(); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
OrderGoods orderGoods = entry.getValue().get(0);
BigDecimal sum = BigDecimal.ZERO; }
if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoodsNo))) { break;
sum = orderChildMap.get(orderGoodsNo).stream()
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight().add(sum)));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态
update.setResidueTransportWeight(BigDecimal.ZERO);
//update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsDao.updateEntityByKey(update);
case 3: //取消未拉运+未到达货源地吨数
List<OrderChild> orderChildren = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
if (CollectionUtil.isEmpty(orderChildren)) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
} }
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode()).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
}
List<Integer> ids = orderChildren.stream().map(OrderChild::getId).collect(Collectors.toList());
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), ids);
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<String, List<OrderChild>> orderChildMap = orderChildren.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已取消
for (OrderGoods orderGoods : orderGoodsList) { for (OrderGoods orderGoods : orderGoodsList) {
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight()));
OrderGoods update = new OrderGoods(); OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId()); update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态 if (CollectionUtil.isEmpty(orderChildMap.get(orderGoods.getOrderGoodsNo()))) {
update.setResidueTransportWeight(BigDecimal.ZERO); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
//update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); } else {
BigDecimal reduce = orderChildMap.get(orderGoods.getOrderGoodsNo())
.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
if (orderGoods.getExtractWeight().compareTo(orderGoods.getResidueTransportWeight().add(reduce)) == 0) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else {
orderStatusCode = OrderEnum.Status.COMPLETED.getCode();
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
}
}
orderGoodsDao.updateEntityByKey(update); orderGoodsDao.updateEntityByKey(update);
} }
} if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
//归还吨数
BigDecimal platformResidueSum = vehicleUsageMap.get(1);
BigDecimal ownResidueSum = vehicleUsageMap.get(2);
BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
param.setOrderNo(orderInfoFeignVO.getOrderNo());
param.setResidueWeight(residueSum);
param.setPlatformResidueCarryWeight(platformResidueSum);
param.setOwnResidueCarryWeight(ownResidueSum);
orderFeign.rollbackOrderWeight(param);
}
} }
break;
default:
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "参数有误");
@Override
@Transactional(rollbackFor = Exception.class)
public void ownerCancelOrderPre(String orderNo) {
//FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
if (CollectionUtil.isEmpty(orderGoodsList)) {
//未产生货单
Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
if (!result.succeed()) {
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
}
log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
OrderCancelMqParam mqParam = new OrderCancelMqParam();
mqParam.setType("2");
mqParam.setOrderNo(orderNo);
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
rabbitTemplate.send(
RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
);
return;
} }
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, null); log.info("执行承运端订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
if (CollectionUtil.isEmpty(orderChildrenList)) {
//说明此刻未产生运单
Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.CANCELED.getCode());
if (!result.succeed()) {
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
}
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
orderGoodsDao.updateEntityByKey(update);
}
} else {
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
List<OrderChild> orderChildren = orderChildMap.get(orderGoods.getOrderGoodsNo());
if (CollectionUtil.isEmpty(orderChildren)) {
//没有运单,直接是取消
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else {
if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) != 0) {
//货单还有余量,是已完结
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
} else {
List<OrderChild> orderChildrenListComplete = orderChildDao.selectOrderChildListByOrderGoodsNoAndStatusGE(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.ARRIVE_SEND.getCode());
if (CollectionUtil.isNotEmpty(orderChildrenListComplete)) {
//没有余量,需要判断已完成的运单量是不等于货单的全部提取量,等于则是已完成,否则是已完结
BigDecimal reduce = orderChildrenListComplete.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
if (reduce.compareTo(orderGoods.getExtractWeight()) == 0) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.SUCCESS.getCode());
} else {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
}
} else {
//虽然没有余量,但是可以取消的运单都是未到达货源地的
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
}
} Message message = MessageBuilder.withBody(JSONUtil.parse(param).toString().getBytes()).build();
}
orderGoodsDao.updateEntityByKey(update);
}
Result<Object> result = orderFeign.updateOrderStatusByOrderNo(orderNo, OrderEnum.Status.COMPLETED.getCode());
if (!result.succeed()) {
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
}
}
log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
OrderCancelMqParam mqParam = new OrderCancelMqParam();
mqParam.setType("2");
mqParam.setOrderNo(orderNo);
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
rabbitTemplate.send( rabbitTemplate.send(
RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
); );
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void ownerCancelOrder(String orderNo) { public void ownerCancelOrderPrePCMQ(OrderCancelParam param) {
log.info("开始执行订单取消吨数回填");
FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo);
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<Integer, BigDecimal> truckDemandMap = new HashMap<>(); Map<Integer, BigDecimal> truckDemandMap = new HashMap<>();
truckDemandMap.put(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode(), BigDecimal.ZERO); truckDemandMap.put(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode(), BigDecimal.ZERO);
truckDemandMap.put(TruckDemandEnum.TruckType.OWNER_CAR.getCode(), BigDecimal.ZERO); truckDemandMap.put(TruckDemandEnum.TruckType.OWNER_CAR.getCode(), BigDecimal.ZERO);
if (!TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode().equals(orderInfoFeignVO.getTruckDemand())) { Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>();
if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) { vehicleUsageMap.put(1, BigDecimal.ZERO);
//已完结 vehicleUsageMap.put(2, BigDecimal.ZERO);
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode()); RollbackOrderWeightParam rollbackOrderWeightParam = new RollbackOrderWeightParam();
for (OrderChild orderChild : orderChildrenList) { String orderNo = param.getOrderNo();
OrderChild update = new OrderChild(); FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
update.setId(orderChild.getId()); Integer truckDemand = orderInfoFeign.getTruckDemand();
update.setStatus(OrderChildEnum.Status.OWNER_CANCEL.getCode()); List<OrderGoods> orderGoodsList = null;
//TODO 补充批量更新接口 关闭运单状态 switch (param.getCancelType()) {
orderChildDao.updateEntityByKey(update); case 1: //单纯取消订单
} orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream() if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo)); for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods();
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream() update.setId(orderGoods.getId());
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo)); truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) { .add(orderGoods.getResidueTransportWeight()));
String orderGoodsNo = entry.getKey(); update.setResidueTransportWeight(BigDecimal.ZERO);
OrderGoods orderGoods = entry.getValue().get(0); orderGoodsDao.updateEntityByKey(update);
List<OrderChild> orderChildren = orderChildMap.get(orderGoodsNo); }
BigDecimal sum = BigDecimal.ZERO; } else {
if (CollectionUtil.isNotEmpty(orderChildren)) { for (OrderGoods orderGoods : orderGoodsList) {
sum = orderChildren.stream() OrderGoods update = new OrderGoods();
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); update.setId(orderGoods.getId());
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight()));
update.setResidueTransportWeight(BigDecimal.ZERO);
orderGoodsDao.updateEntityByKey(update);
} }
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight().add(sum)));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态 注意判断货单是已完结还是已完成
update.setResidueTransportWeight(BigDecimal.ZERO);
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsDao.updateEntityByKey(update);
} }
//归还吨数
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) { if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
//已取消 rollbackOrderWeightParam.setOrderNo(orderNo);
for (OrderGoods orderGoods : orderGoodsList) { if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
truckDemandMap.put(orderGoods.getTruckDemand(), rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
truckDemandMap.get(orderGoods.getTruckDemand()) rollbackOrderWeightParam.setOwnResidueCarryWeight(BigDecimal.ZERO);
.add(orderGoods.getResidueTransportWeight())); rollbackOrderWeightParam.setPlatformResidueCarryWeight(truckDemandMap.get(truckDemand));
OrderGoods update = new OrderGoods(); }
update.setId(orderGoods.getId()); if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
//TODO 补充批量更新接口 关闭货单状态 rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
update.setResidueTransportWeight(BigDecimal.ZERO); rollbackOrderWeightParam.setOwnResidueCarryWeight(truckDemandMap.get(truckDemand));
// update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); rollbackOrderWeightParam.setPlatformResidueCarryWeight(BigDecimal.ZERO);
orderGoodsDao.updateEntityByKey(update); }
} else {
BigDecimal platformResidueSum = vehicleUsageMap.get(1);
BigDecimal ownResidueSum = vehicleUsageMap.get(2);
BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
rollbackOrderWeightParam.setOrderNo(orderNo);
rollbackOrderWeightParam.setResidueWeight(residueSum);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(platformResidueSum);
rollbackOrderWeightParam.setOwnResidueCarryWeight(ownResidueSum);
} }
} orderFeign.rollbackOrderWeight(rollbackOrderWeightParam);
Integer truckDemand = orderInfoFeignVO.getTruckDemand();
BigDecimal residueWeight = truckDemandMap.get(truckDemand);
if (residueWeight.compareTo(BigDecimal.ZERO) == 0) {
log.info("当前订单对应的货单无需吨数回填,订单编号{}", orderNo);
return; return;
} case 2: //取消未拉运吨数的货单
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
//归还吨数
RollbackOrderWeightParam param = new RollbackOrderWeightParam(); if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
param.setOrderNo(orderInfoFeignVO.getOrderNo()); for (OrderGoods orderGoods : orderGoodsList) {
if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) { OrderGoods update = new OrderGoods();
param.setResidueWeight(residueWeight); update.setId(orderGoods.getId());
param.setOwnResidueCarryWeight(BigDecimal.ZERO); truckDemandMap.put(orderGoods.getTruckDemand(),
param.setPlatformResidueCarryWeight(residueWeight); truckDemandMap.get(orderGoods.getTruckDemand())
} .add(orderGoods.getResidueTransportWeight()));
if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) { update.setResidueTransportWeight(BigDecimal.ZERO);
param.setResidueWeight(residueWeight); orderGoodsDao.updateEntityByKey(update);
param.setOwnResidueCarryWeight(residueWeight); }
param.setPlatformResidueCarryWeight(BigDecimal.ZERO); } else {
} for (OrderGoods orderGoods : orderGoodsList) {
orderFeign.rollbackOrderWeight(param); OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
} else { vehicleUsageMap.put(orderGoods.getVehicleUsage(),
Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>(); vehicleUsageMap.get(orderGoods.getVehicleUsage())
vehicleUsageMap.put(1, BigDecimal.ZERO); .add(orderGoods.getResidueTransportWeight()));
vehicleUsageMap.put(2, BigDecimal.ZERO); update.setResidueTransportWeight(BigDecimal.ZERO);
if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) { orderGoodsDao.updateEntityByKey(update);
//已完结 }
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
for (OrderChild orderChild : orderChildrenList) {
OrderChild update = new OrderChild();
update.setId(orderChild.getId());
update.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
//TODO 补充批量更新接口 关闭运单状态
orderChildDao.updateEntityByKey(update);
} }
//货单 //归还吨数
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream() if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo)); rollbackOrderWeightParam.setOrderNo(orderNo);
//运单 if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream() rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo)); rollbackOrderWeightParam.setOwnResidueCarryWeight(BigDecimal.ZERO);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(truckDemandMap.get(truckDemand));
}
if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setOwnResidueCarryWeight(truckDemandMap.get(truckDemand));
rollbackOrderWeightParam.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
} else {
BigDecimal platformResidueSum = vehicleUsageMap.get(1);
BigDecimal ownResidueSum = vehicleUsageMap.get(2);
BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
rollbackOrderWeightParam.setOrderNo(orderNo);
rollbackOrderWeightParam.setResidueWeight(residueSum);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(platformResidueSum);
rollbackOrderWeightParam.setOwnResidueCarryWeight(ownResidueSum);
}
orderFeign.rollbackOrderWeight(rollbackOrderWeightParam);
return;
for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) { case 3: //取消未拉运+未到达货源地吨数
String orderGoodsNo = entry.getKey(); List<OrderChild> orderChildren = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
OrderGoods orderGoods = entry.getValue().get(0); orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<String, List<OrderChild>> orderChildMap = orderChildren.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight()));
update.setResidueTransportWeight(BigDecimal.ZERO);
if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoods.getOrderGoodsNo()))) {
BigDecimal childSum = orderChildMap.get(orderGoods.getOrderGoodsNo()).stream()
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
update.setAlreadyTransportWeight(
update.getAlreadyTransportWeight()
.subtract(
childSum
)
);
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(childSum));
}
BigDecimal sum = BigDecimal.ZERO; orderGoodsDao.updateEntityByKey(update);
if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoodsNo))) { }
sum = orderChildMap.get(orderGoodsNo).stream() } else {
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight()));
update.setResidueTransportWeight(BigDecimal.ZERO);
if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoods.getOrderGoodsNo()))) {
BigDecimal childSum = orderChildMap.get(orderGoods.getOrderGoodsNo()).stream()
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
update.setAlreadyTransportWeight(
update.getAlreadyTransportWeight()
.subtract(
childSum
)
);
vehicleUsageMap.put(orderGoods.getTruckDemand(),
vehicleUsageMap.get(orderGoods.getTruckDemand())
.add(childSum));
}
orderGoodsDao.updateEntityByKey(update);
} }
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight().add(sum)));
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
//TODO 补充批量更新接口 关闭货单状态
update.setResidueTransportWeight(BigDecimal.ZERO);
//update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsDao.updateEntityByKey(update);
} }
//归还吨数
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) { if (!orderInfoFeign.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
//已取消 rollbackOrderWeightParam.setOrderNo(orderNo);
for (OrderGoods orderGoods : orderGoodsList) { if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
vehicleUsageMap.put(orderGoods.getVehicleUsage(), rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
vehicleUsageMap.get(orderGoods.getVehicleUsage()) rollbackOrderWeightParam.setOwnResidueCarryWeight(BigDecimal.ZERO);
.add(orderGoods.getResidueTransportWeight())); rollbackOrderWeightParam.setPlatformResidueCarryWeight(truckDemandMap.get(truckDemand));
OrderGoods update = new OrderGoods(); }
update.setId(orderGoods.getId()); if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
//TODO 补充批量更新接口 关闭货单状态 rollbackOrderWeightParam.setResidueWeight(truckDemandMap.get(truckDemand));
update.setResidueTransportWeight(BigDecimal.ZERO); rollbackOrderWeightParam.setOwnResidueCarryWeight(truckDemandMap.get(truckDemand));
//update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); rollbackOrderWeightParam.setPlatformResidueCarryWeight(BigDecimal.ZERO);
orderGoodsDao.updateEntityByKey(update); }
} else {
BigDecimal platformResidueSum = vehicleUsageMap.get(1);
BigDecimal ownResidueSum = vehicleUsageMap.get(2);
BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
rollbackOrderWeightParam.setOrderNo(orderNo);
rollbackOrderWeightParam.setResidueWeight(residueSum);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(platformResidueSum);
rollbackOrderWeightParam.setOwnResidueCarryWeight(ownResidueSum);
} }
} orderFeign.rollbackOrderWeight(rollbackOrderWeightParam);
return;
//归还吨数
BigDecimal platformResidueSum = vehicleUsageMap.get(1);
BigDecimal ownResidueSum = vehicleUsageMap.get(2);
BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
param.setOrderNo(orderInfoFeignVO.getOrderNo());
param.setResidueWeight(residueSum);
param.setPlatformResidueCarryWeight(platformResidueSum);
param.setOwnResidueCarryWeight(ownResidueSum);
orderFeign.rollbackOrderWeight(param);
}
}
} }
} }
\ No newline at end of file
...@@ -100,7 +100,7 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR ...@@ -100,7 +100,7 @@ public class BreakContractOwnerRecordServiceImpl implements BreakContractOwnerR
//货主违约结算单 //货主违约结算单
BreakContractSettlementOwner breakOwner = breakContractSettlementOwnerStruct.convert(breakOwnerDetail); BreakContractSettlementOwner breakOwner = breakContractSettlementOwnerStruct.convert(breakOwnerDetail);
breakOwner.setStatus(BreakContractSettlementOwnerEnum.Status.TO_BE_LOCKED.getCode()); breakOwner.setStatus(BreakContractSettlementOwnerEnum.Status.TO_BE_ACCOUNT.getCode());
record.setSettlementNo(settlementNo); record.setSettlementNo(settlementNo);
//保存违约记录 //保存违约记录
......
...@@ -131,7 +131,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -131,7 +131,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
public void uploadInvoiceImg(CarrierUploadInvoiceImgParam param) { public void uploadInvoiceImg(CarrierUploadInvoiceImgParam param) {
BreakContractSettlementOwner settlementOwner = breakContractSettlementOwnerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); BreakContractSettlementOwner settlementOwner = breakContractSettlementOwnerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if(!Objects.equals(settlementOwner.getStatus(), BreakContractSettlementOwnerEnum.Status.TO_BE_LOCKED.getCode())){ if(!Objects.equals(settlementOwner.getStatus(), BreakContractSettlementOwnerEnum.Status.TO_BE_ACCOUNT.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED); throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED);
} }
breakContractSettlementOwnerDao.uploadInvoiceImg(param.getId(),param.getInvoiceImg()); breakContractSettlementOwnerDao.uploadInvoiceImg(param.getId(),param.getInvoiceImg());
...@@ -147,11 +147,11 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -147,11 +147,11 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateCancelSettlement(CarrierCancelSettlementParam param) { public void updateCancelSettlement(CarrierCancelSettlementParam param) {
BreakContractSettlementOwner settlementOwner = breakContractSettlementOwnerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); BreakContractSettlementOwner settlementOwner = breakContractSettlementOwnerDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if(!Objects.equals(settlementOwner.getStatus(), BreakContractSettlementOwnerEnum.Status.TO_BE_LOCKED.getCode())){ if(!Objects.equals(settlementOwner.getStatus(), BreakContractSettlementOwnerEnum.Status.TO_BE_ACCOUNT.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED); throw new ServiceSystemException(PerformanceResultEnum.STATUS_CHANGED);
} }
breakContractSettlementOwnerDao.updateStatus(param.getId(),BreakContractSettlementOwnerEnum.Status.TO_BE_LOCKED.getCode(),BreakContractSettlementOwnerEnum.Status.CANCEL.getCode()); breakContractSettlementOwnerDao.updateStatus(param.getId(),BreakContractSettlementOwnerEnum.Status.TO_BE_ACCOUNT.getCode(),BreakContractSettlementOwnerEnum.Status.CANCEL.getCode());
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志----取消结算单 //保存结算单日志----取消结算单
......
...@@ -60,7 +60,7 @@ public class JobTest { ...@@ -60,7 +60,7 @@ public class JobTest {
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message // RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
// ); // );
orderCancelService.ownerCancelOrderPre("PT2023102700473"); //orderCancelService.ownerCancelOrderPre("PT2023102700473");
//orderCancelService.ownerCancelOrder("PT2023102600466"); //orderCancelService.ownerCancelOrder("PT2023102600466");
System.out.println(); System.out.println();
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论