提交 90bdfe69 authored 作者: huyufan's avatar huyufan

逆向

上级 da2ed327
......@@ -152,7 +152,7 @@ public class GoodsOrderController {
}
@ApiOperation(value = "取消货单", notes = "<br>By:胡宇帆")
@GetMapping("/orderGoodsCancel")
@PostMapping("/orderGoodsCancel")
public Result<Object> orderGoodsCancel(@RequestBody OrderGoodsCancelParam param) {
orderGoodsService.orderGoodsCancel(param);
return Result.ok();
......@@ -164,6 +164,12 @@ public class GoodsOrderController {
return Result.ok(orderGoodsService.orderCancelResidueWeight(orderNo,optionType));
}
@ApiOperation(value = "获取当前货单可取消吨数", notes = "<br>By:胡宇帆")
@PostMapping("/orderGoodsCancelResidueWeight")
public Result<BigDecimal> orderGoodsCancelResidueWeight(@RequestBody OrderGoodsCancelParam goodsCancelParam) {
return Result.ok(orderGoodsService.orderGoodsCancelResidueWeight(goodsCancelParam));
}
@ApiOperation(value = "调整货单价格", notes = "<br>By:刘海泉")
@PostMapping("/updateOrderGoodsPrice")
@UnitCovert(result = false)
......
......@@ -95,4 +95,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
void batchUpdateOrderChildStatus(Integer status, List<Integer> ids);
List<OrderChild> selectOrderChildListByOrderGoodsNoAndStatusGE(String orderGoodsNo, Integer status);
}
......@@ -295,6 +295,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
baseMapper.updateOrderGoodsSetResidueWeight(status, ids);
}
@Override
public List<OrderChild> selectOrderChildListByOrderGoodsNoAndStatusGE(String orderGoodsNo, Integer status) {
return baseMapper.selectList(lQrWrapper().eq(OrderChild::getOrderGoodsNo, orderGoodsNo)
.ge(ObjectUtil.isNotNull(status),OrderChild::getStatus, status)
); }
@Override
public List<OrderChild> getOrderChildByOrderNo(String orderNo) {
LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper();
......
......@@ -65,5 +65,12 @@ public interface OrderGoodsService {
*/
void orderGoodsCancel(OrderGoodsCancelParam orderGoodsNo);
/**
* 查看货单可取消吨数
* @param goodsCancelParam
* @return
*/
BigDecimal orderGoodsCancelResidueWeight(OrderGoodsCancelParam goodsCancelParam);
List<String> getOrderChildTruckList(String orderGoodsNo);
}
......@@ -62,7 +62,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
}
log.info("执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
OrderCancelMqParam mqParam = new OrderCancelMqParam();
OrderCancelMqParam mqParam = new OrderCancelMqParam();
mqParam.setType("1");
mqParam.setOrderNo(orderNo);
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
......@@ -130,7 +130,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
log.info("执行平台订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
OrderCancelMqParam mqParam = new OrderCancelMqParam();
OrderCancelMqParam mqParam = new OrderCancelMqParam();
mqParam.setType("1");
mqParam.setOrderNo(orderNo);
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
......@@ -314,7 +314,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
throw new RuntimeException("货主取消订单失败,原因:远程调用取消订单失败");
}
log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
OrderCancelMqParam mqParam = new OrderCancelMqParam();
OrderCancelMqParam mqParam = new OrderCancelMqParam();
mqParam.setType("2");
mqParam.setOrderNo(orderNo);
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
......@@ -357,18 +357,18 @@ public class OrderCancelServiceImpl implements OrderCancelService {
//货单还有余量,是已完结
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
} else {
List<OrderChild> orderChildrenListComplete = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.COMPLETE.getCode());
List<OrderChild> orderChildrenListComplete = orderChildDao.selectOrderChildListByOrderGoodsNoAndStatusGE(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.ARRIVE_SEND.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);
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());
}
}
......@@ -382,7 +382,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
log.info("执行货主订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
OrderCancelMqParam mqParam = new OrderCancelMqParam();
OrderCancelMqParam mqParam = new OrderCancelMqParam();
mqParam.setType("2");
mqParam.setOrderNo(orderNo);
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
......
......@@ -389,6 +389,48 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
}
@Override
public BigDecimal orderGoodsCancelResidueWeight(OrderGoodsCancelParam goodsCancelParam) {
String orderGoodsNo = goodsCancelParam.getOrderGoodsNo();
Optional<OrderGoods> optional = orderGoodsDao.getByOrderGoodsNo(orderGoodsNo);
if (!optional.isPresent()) {
return null;
}
OrderGoods orderGoods = optional.get();
List<OrderChild> orderChildList = null;
BigDecimal residueWeight = null;
BigDecimal sum = BigDecimal.ZERO;
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
Integer cancelOperateType = goodsCancelParam.getCancelOperateType();
switch (cancelOperateType){
case 1:
case 2:
orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.ARRIVE_SEND.getCode());
if (CollectionUtils.isNotEmpty(orderChildList)) {
sum = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
residueWeight = orderGoods.getResidueTransportWeight().add(sum);
return residueWeight;
case 3:
orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.LOAD.getCode(), goodsCancelParam.getTruckList());
if (CollectionUtils.isNotEmpty(orderChildList)) {
sum = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
residueWeight = orderGoods.getResidueTransportWeight().add(sum);
return residueWeight;
default:
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "参数类型有误");
}
}
@Override
public List<String> getOrderChildTruckList(String orderGoodsNo) {
List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoodsNo, OrderChildEnum.Status.LOAD.getCode());
......
......@@ -52,17 +52,15 @@ public class JobTest {
@Test
public void test1() {
OrderCancelMqParam mqParam = new OrderCancelMqParam();
mqParam.setType("2");
mqParam.setOrderNo("123");
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
rabbitTemplate.send(
RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
);
//CX2023092600223 平台已承接的订单,没有产生货单
//CX2023101600386 truckDemand 类型是2,且有货单,有运单, 没有未到达货源地的运单
//PT2023092600207 类型都是1,且有运单
//orderCancelService.ownerCancelOrderPre("PT2023102700469");
// OrderCancelMqParam mqParam = new OrderCancelMqParam();
// mqParam.setType("2");
// mqParam.setOrderNo("123");
// Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build();
// rabbitTemplate.send(
// RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
// );
orderCancelService.ownerCancelOrderPre("PT2023102700473");
//orderCancelService.ownerCancelOrder("PT2023102600466");
System.out.println();
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论