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

逆向

上级 da2ed327
...@@ -152,7 +152,7 @@ public class GoodsOrderController { ...@@ -152,7 +152,7 @@ public class GoodsOrderController {
} }
@ApiOperation(value = "取消货单", notes = "<br>By:胡宇帆") @ApiOperation(value = "取消货单", notes = "<br>By:胡宇帆")
@GetMapping("/orderGoodsCancel") @PostMapping("/orderGoodsCancel")
public Result<Object> orderGoodsCancel(@RequestBody OrderGoodsCancelParam param) { public Result<Object> orderGoodsCancel(@RequestBody OrderGoodsCancelParam param) {
orderGoodsService.orderGoodsCancel(param); orderGoodsService.orderGoodsCancel(param);
return Result.ok(); return Result.ok();
...@@ -164,6 +164,12 @@ public class GoodsOrderController { ...@@ -164,6 +164,12 @@ public class GoodsOrderController {
return Result.ok(orderGoodsService.orderCancelResidueWeight(orderNo,optionType)); 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:刘海泉") @ApiOperation(value = "调整货单价格", notes = "<br>By:刘海泉")
@PostMapping("/updateOrderGoodsPrice") @PostMapping("/updateOrderGoodsPrice")
@UnitCovert(result = false) @UnitCovert(result = false)
......
...@@ -95,4 +95,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -95,4 +95,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
void batchUpdateOrderChildStatus(Integer status, List<Integer> ids); 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, ...@@ -295,6 +295,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
baseMapper.updateOrderGoodsSetResidueWeight(status, ids); 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 @Override
public List<OrderChild> getOrderChildByOrderNo(String orderNo) { public List<OrderChild> getOrderChildByOrderNo(String orderNo) {
LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper(); LambdaQueryWrapper<OrderChild> query = new LambdaQueryWrapper();
......
...@@ -65,5 +65,12 @@ public interface OrderGoodsService { ...@@ -65,5 +65,12 @@ public interface OrderGoodsService {
*/ */
void orderGoodsCancel(OrderGoodsCancelParam orderGoodsNo); void orderGoodsCancel(OrderGoodsCancelParam orderGoodsNo);
/**
* 查看货单可取消吨数
* @param goodsCancelParam
* @return
*/
BigDecimal orderGoodsCancelResidueWeight(OrderGoodsCancelParam goodsCancelParam);
List<String> getOrderChildTruckList(String orderGoodsNo); List<String> getOrderChildTruckList(String orderGoodsNo);
} }
...@@ -357,18 +357,18 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -357,18 +357,18 @@ public class OrderCancelServiceImpl implements OrderCancelService {
//货单还有余量,是已完结 //货单还有余量,是已完结
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
} else { } 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)) { 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 = orderChildrenListComplete.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal reduce = childList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
if (reduce.compareTo(orderGoods.getExtractWeight()) == 0) { if (reduce.compareTo(orderGoods.getExtractWeight()) == 0) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.SUCCESS.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.SUCCESS.getCode());
} else { } else {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
} }
} else {
//虽然没有余量,但是可以取消的运单都是未到达货源地的
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} }
} }
......
...@@ -389,6 +389,48 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -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 @Override
public List<String> getOrderChildTruckList(String orderGoodsNo) { public List<String> getOrderChildTruckList(String orderGoodsNo) {
List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoodsNo, OrderChildEnum.Status.LOAD.getCode()); List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoodsNo, OrderChildEnum.Status.LOAD.getCode());
......
...@@ -52,17 +52,15 @@ public class JobTest { ...@@ -52,17 +52,15 @@ public class JobTest {
@Test @Test
public void test1() { public void test1() {
OrderCancelMqParam mqParam = new OrderCancelMqParam(); // OrderCancelMqParam mqParam = new OrderCancelMqParam();
mqParam.setType("2"); // mqParam.setType("2");
mqParam.setOrderNo("123"); // mqParam.setOrderNo("123");
Message message = MessageBuilder.withBody(JSONUtil.parse(mqParam).toString().getBytes()).build(); // 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
); // );
//CX2023092600223 平台已承接的订单,没有产生货单
//CX2023101600386 truckDemand 类型是2,且有货单,有运单, 没有未到达货源地的运单 orderCancelService.ownerCancelOrderPre("PT2023102700473");
//PT2023092600207 类型都是1,且有运单
//orderCancelService.ownerCancelOrderPre("PT2023102700469");
//orderCancelService.ownerCancelOrder("PT2023102600466"); //orderCancelService.ownerCancelOrder("PT2023102600466");
System.out.println(); System.out.println();
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论