提交 af2a1ea8 authored 作者: huyufan's avatar huyufan

取消接口

上级 a2abf0cc
package com.clx.performance.feign; package com.clx.performance.feign;
import com.clx.performance.param.pc.OrderCancelParam;
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;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
...@@ -49,4 +52,9 @@ public interface PerformanceFeign { ...@@ -49,4 +52,9 @@ public interface PerformanceFeign {
Result<List<String>> getPrivateTruckList(@RequestParam("orderGoodsNo") @NotBlank(message = "货单编号不可为空") String orderGoodsNo, Result<List<String>> getPrivateTruckList(@RequestParam("orderGoodsNo") @NotBlank(message = "货单编号不可为空") String orderGoodsNo,
@RequestParam("userNo") @NotNull(message = "用户编号不可为空") Long userNo); @RequestParam("userNo") @NotNull(message = "用户编号不可为空") Long userNo);
@PostMapping(value = {"clx-performance/feign/order/orderCancel"})
Result<Object> orderCancel(@RequestBody OrderCancelParam 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 OrderCancelParam {
@NotNull(message = "订单编号不能为空")
@ApiModelProperty("订单编号")
private String orderNo;
}
...@@ -144,4 +144,30 @@ public class RabbitBeanConfig { ...@@ -144,4 +144,30 @@ public class RabbitBeanConfig {
public Binding orderGoodsDeadExchangeBind() { public Binding orderGoodsDeadExchangeBind() {
return BindingBuilder.bind(orderGoodsOnDeadQueue()).to(orderGoodsOnDeadExchange()).with(RabbitKeyConstants.ORDER_GOODS_ON_DEAD_ROUTE_KEY); return BindingBuilder.bind(orderGoodsOnDeadQueue()).to(orderGoodsOnDeadExchange()).with(RabbitKeyConstants.ORDER_GOODS_ON_DEAD_ROUTE_KEY);
} }
/**
* 订单取消队列
* @return
*/
@Bean
public Queue orderCancelQueue() {
return new Queue(RabbitKeyConstants.ORDER_CANCEL_QUEUE, true, false, false, params);
}
/**
* 订单取消队列交换机
**/
@Bean
public DirectExchange orderCancelExchange() {
return new DirectExchange(RabbitKeyConstants.ORDER_CANCEL_EXCHANGE);
}
/**
* 订单取消队列绑定
*/
@Bean
public Binding orderCancelExchangeBind() {
return BindingBuilder.bind(orderCancelQueue()).to(orderCancelExchange()).with(RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY);
}
} }
...@@ -52,4 +52,10 @@ public class RabbitKeyConstants { ...@@ -52,4 +52,10 @@ public class RabbitKeyConstants {
public static final String ORDER_GOODS_ON_DEAD_ROUTE_KEY ="clx-order.order.goods.on.dead.route.key"; public static final String ORDER_GOODS_ON_DEAD_ROUTE_KEY ="clx-order.order.goods.on.dead.route.key";
public static final String ORDER_CANCEL_QUEUE ="clx-order.order.cancel.queue";
public static final String ORDER_CANCEL_EXCHANGE ="clx-order.order.cancel.exchange";
public static final String ORDER_CANCEL_ROUTE_KEY ="clx-order.order.cancel.route.key";
} }
package com.clx.performance.controller.feign;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.service.OrderCancelService;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/feign/order")
@Validated
@AllArgsConstructor
@Api(tags = "PC-订单取消")
public class OrderCancelFeignController {
private final OrderCancelService orderCancelService;
@ApiOperation(value = "查看货单列表", notes = "<br>By:胡宇帆")
@PostMapping("/orderCancel")
public Result<Object> orderCancel(@RequestBody OrderCancelParam param) {
orderCancelService.ownerCancelOrderPre(param.getOrderNo());
return Result.ok();
}
}
...@@ -260,7 +260,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -260,7 +260,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
@Override @Override
public List<OrderChild> selectResidueWeight(String orderNo) { public List<OrderChild> selectResidueWeight(String orderNo) {
return baseMapper.selectList(lambdaQuery().eq(OrderChild::getOrderNo,orderNo) return baseMapper.selectList(lQrWrapper().eq(OrderChild::getOrderNo,orderNo)
.lt(OrderChild::getStatus, OrderChildEnum.Status.ARRIVE_SEND.getCode()) .lt(OrderChild::getStatus, OrderChildEnum.Status.ARRIVE_SEND.getCode())
); );
} }
......
package com.clx.performance.listener;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.IntegralMqService;
import com.clx.performance.service.OrderCancelService;
import com.msl.common.base.Optional;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 处理货单取消吨数回填
*/
@Slf4j
@Component
public class OrderCancelHandler {
@Autowired
private OrderCancelService orderCancelService;
@RabbitListener(queues = RabbitKeyConstants.ORDER_GOODS_ON_DEAD_QUEUE)
public void onMessage(String message) {
log.info("处理订单取消监听器执行,订单No为{}", message);
if (StringUtils.isBlank(message)) {
return;
}
orderCancelService.ownerCancelOrder(message);
}
}
package com.clx.performance.service; package com.clx.performance.service;
public interface OrderCancelService { public interface OrderCancelService {
void ownerCancelOrderPre(String orderNo);
void ownerCancelOrder(String orderNo);
} }
...@@ -5,6 +5,7 @@ import com.clx.order.enums.OrderEnum; ...@@ -5,6 +5,7 @@ import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.UpdateOrderInfoResidueWeightParam; 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.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;
...@@ -16,6 +17,9 @@ import com.clx.performance.service.OrderCancelService; ...@@ -16,6 +17,9 @@ import com.clx.performance.service.OrderCancelService;
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;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -37,7 +41,10 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -37,7 +41,10 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private final OrderGoodsDao orderGoodsDao; private final OrderGoodsDao orderGoodsDao;
private final RabbitTemplate rabbitTemplate;
@Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void ownerCancelOrderPre(String orderNo) { public void ownerCancelOrderPre(String orderNo) {
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
...@@ -87,11 +94,18 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -87,11 +94,18 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} }
} }
} log.info("执行订单取消前置:更改相关状态完毕,开始执行吨数回填,发送MQ消息,订单No {}", orderNo);
Message message = MessageBuilder.withBody(orderNo.getBytes()).build();
rabbitTemplate.send(
RabbitKeyConstants.ORDER_CANCEL_EXCHANGE, RabbitKeyConstants.ORDER_CANCEL_ROUTE_KEY, message
);
}
@Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void ownerCancelOrder(String orderNo) { public void ownerCancelOrder(String orderNo) {
log.info("开始执行订单取消吨数回填");
FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo);
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo); List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
......
...@@ -218,7 +218,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -218,7 +218,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
} else { } else {
String residueWeight = orderInfoFeign.getResidueWeight(); String residueWeight = orderInfoFeign.getResidueWeight();
List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(orderNo); List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(orderNo);
BigDecimal childResidueWeight = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal::add).get(); BigDecimal childResidueWeight = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal orderGoodsResidueWeight = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo).stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal::add).get(); BigDecimal orderGoodsResidueWeight = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo).stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal::add).get();
return childResidueWeight.add(new BigDecimal(residueWeight)).add(orderGoodsResidueWeight); return childResidueWeight.add(new BigDecimal(residueWeight)).add(orderGoodsResidueWeight);
......
...@@ -5,6 +5,7 @@ import com.clx.order.vo.feign.OrderOwnTruckVo; ...@@ -5,6 +5,7 @@ import com.clx.order.vo.feign.OrderOwnTruckVo;
import com.clx.performance.component.GoodsOrderTruckRecordComponent; import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderGoodsStatusLazyComponent; import com.clx.performance.component.OrderGoodsStatusLazyComponent;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.service.OrderCancelService;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
...@@ -40,13 +41,16 @@ public class JobTest { ...@@ -40,13 +41,16 @@ public class JobTest {
@Autowired @Autowired
private GoodsOrderTruckRecordComponent recordComponent; private GoodsOrderTruckRecordComponent recordComponent;
@Autowired
private OrderCancelService orderCancelService;
@Test @Test
public void test1() { public void test1() {
List<String> list = new ArrayList<>(); //CX2023092600223 平台已承接的订单,没有产生货单
list.add("晋A99999"); //CX2023101600386 truckDemand 类型是2,且有货单,有运单, 没有未到达货源地的运单
//PT2023092600207 类型都是1,且有运单
recordComponent.saveTruckRecord("123", list); //orderCancelService.ownerCancelOrderPre("PT2023102600466");
recordComponent.getPrivateTruckList("123", 1001183036834771013L); orderCancelService.ownerCancelOrder("PT2023102600466");
System.out.println(); System.out.println();
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论