Commit aa361efc authored by liuzeheng's avatar liuzeheng

Merge branch 'master' into dev

parents 8dcfef09 4a10d8c0
......@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.service.IService;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.module.order.dal.dataobject.order.OrderDO;
import cn.iocoder.yudao.module.shipment.dal.dataobject.boxOrderCheckInfo.BoxOrderCheckInfoDO;
import cn.iocoder.yudao.module.shipment.dto.OrderCheckInfoDto;
import cn.iocoder.yudao.module.shipment.vo.box.BoxOrderSearchVO;
......@@ -83,4 +84,6 @@ public interface BoxOrderCheckInfoService extends IService<BoxOrderCheckInfoDO>
void batchRemove(BoxOrderCheckInfoRemoveReqVO removeReqVO);
void orderTally(Collection<Long> orderIdList, Long shipmentId);
List<String> getOrderTagList(OrderDO orderDO) ;
}
......@@ -182,7 +182,7 @@ public class BoxOrderCheckInfoServiceImpl extends AbstractService<BoxOrderCheckI
List<BoxPkgOrderDO> boxPkgOrderDOS = boxPkgOrderService.selectList(BoxPkgOrderDO::getPkgId, createReqVO.getPkgId());
orderIdList = boxPkgOrderDOS.stream().map(BoxPkgOrderDO::getOrderId).collect(Collectors.toSet());
if(orderIdList.isEmpty() || CollectionUtil.isEmpty(orderIdList)){
throw exception(ErrorCodeConstants.ORDER_IS_NOT_PRE_INSTALLED);
throw exception(ORDER_CASE_NUM_NOT_EXIST);
}
orderDOList = orderQueryService.getOrderList(orderIdList);
boolean isParentOrder = false;
......@@ -686,7 +686,7 @@ public class BoxOrderCheckInfoServiceImpl extends AbstractService<BoxOrderCheckI
return orderList.get(0);
}
private List<String> getOrderTagList(OrderDO orderDO) {
public List<String> getOrderTagList(OrderDO orderDO) {
//从OrderLabel里面查找订单的箱号
Long orderId = orderDO.getOrderId();
OrderLabelQueryVO queryVO = new OrderLabelQueryVO();
......
......@@ -15,14 +15,19 @@ import cn.iocoder.yudao.module.shipment.convert.BoxPkgOrderConvert;
import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxDO;
import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxMergePkgDO;
import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxPkgOrderDO;
import cn.iocoder.yudao.module.shipment.dal.dataobject.BoxPreloadGoodsDO;
import cn.iocoder.yudao.module.shipment.dal.dataobject.boxOrderCheckInfo.BoxOrderCheckInfoDO;
import cn.iocoder.yudao.module.shipment.dal.mysql.BoxPkgOrderMapper;
import cn.iocoder.yudao.module.shipment.dal.mysql.BoxPreloadGoodsMapper;
import cn.iocoder.yudao.module.shipment.dal.mysql.boxOrderCheckInfo.BoxOrderCheckInfoMapper;
import cn.iocoder.yudao.module.shipment.enums.AirShipmentStatusEnum;
import cn.iocoder.yudao.module.shipment.enums.MergePkgStatusEnum;
import cn.iocoder.yudao.module.shipment.enums.OrderShipmentLog;
import cn.iocoder.yudao.module.shipment.service.box.BoxService;
import cn.iocoder.yudao.module.shipment.service.boxMergePkg.BoxMergePkgService;
import cn.iocoder.yudao.module.shipment.service.boxOrderCheckInfo.BoxOrderCheckInfoService;
import cn.iocoder.yudao.module.shipment.service.boxPreloadGoods.BoxPreloadGoodsService;
import cn.iocoder.yudao.module.shipment.vo.boxOrderCheckInfo.BoxOrderCheckInfoCreateReqVO;
import cn.iocoder.yudao.module.shipment.vo.boxPkgOrder.BoxPkgOrderCreateReqVO;
import cn.iocoder.yudao.module.shipment.vo.boxPkgOrder.BoxPkgOrderQueryVO;
import cn.iocoder.yudao.module.shipment.vo.boxPkgOrder.BoxPkgOrderScanCodeVO;
......@@ -40,8 +45,7 @@ import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.order.enums.ErrorCodeConstants.ORDER_IS_PRE_INSTALLED;
import static cn.iocoder.yudao.module.shipment.enums.ErrorCodeConstants.BOX_PKG_ORDER_NOT_EXISTS;
import static cn.iocoder.yudao.module.shipment.enums.ErrorCodeConstants.MERGE_PKG_IS_FINISH;
import static cn.iocoder.yudao.module.shipment.enums.ErrorCodeConstants.*;
/**
* 合包订单 Service 实现类
......@@ -73,6 +77,12 @@ public class BoxPkgOrderServiceImpl extends AbstractService<BoxPkgOrderMapper, B
private OrderService orderService ;
@Resource
private BoxPreloadGoodsMapper boxPreloadGoodsMapper ;
@Resource
private BoxOrderCheckInfoMapper boxOrderCheckInfoMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public String createBoxPkgOrder(BoxPkgOrderCreateReqVO createReqVO) {
......@@ -88,35 +98,184 @@ public class BoxPkgOrderServiceImpl extends AbstractService<BoxPkgOrderMapper, B
String orderNumCode = createReqVO.getOrderNo();
int position = orderNumCode.lastIndexOf("-");
if(position >= 0) {
String orderNumber = orderNumCode.substring(0, position);
Long orderId = orderService.getOrderIdByOrderNo(orderNumber);
vo.setOrderId(orderId);
BoxMergePkgDO boxMergePkgDO = boxMergePkgService.selectOne(new LambdaQueryWrapperX<BoxMergePkgDO>().eq(BoxMergePkgDO::getPkgNum,createReqVO.getPkgNum()));
vo.setPkgId(boxMergePkgDO.getId()) ;
BoxPkgOrderDO pkgOrderDO = boxPkgOrderMapper.selectOne(new LambdaQueryWrapperX<BoxPkgOrderDO>().eq(BoxPkgOrderDO::getOrderId,orderId).eq(BoxPkgOrderDO::getPkgId,boxMergePkgDO.getId()));
if(pkgOrderDO!=null){
throw exception(ORDER_IS_PRE_INSTALLED);
if(orderNumCode.contains("A") && orderNumCode.startsWith("A")){
return this.scanCodeByOrderNo(orderNumCode,vo,createReqVO);
}
if(vo.getOrderId()!=null && vo.getPkgId()!=null){//订单和包裹id 不为空,调用装箱方法
this.create(vo);
BoxMergePkgDO boxMergePkgDO = boxMergePkgService.selectOne(new LambdaQueryWrapper<BoxMergePkgDO>()
.eq(BoxMergePkgDO::getShipmentId, createReqVO.getShipmentId())
.eq(BoxMergePkgDO::getPkgNum, orderNumber));
if(boxMergePkgDO!=null){
List<BoxPreloadGoodsDO> goodsDOS = boxPreloadGoodsMapper.selectList(new LambdaQueryWrapperX<BoxPreloadGoodsDO>().eq(BoxPreloadGoodsDO::getShipmentId,createReqVO.getShipmentId()).eq(BoxPreloadGoodsDO::getDeleted,0));
if (CollectionUtil.isNotEmpty(goodsDOS)) {
List<Long> orderIds = goodsDOS.stream().map(BoxPreloadGoodsDO::getOrderId).collect(Collectors.toList());
List<OrderDO> orderDOS = orderService.selectList(OrderDO::getOrderId, orderIds);
if(CollectionUtil.isNotEmpty(orderDOS)){
orderDOS.forEach(order->{
BoxPkgOrderCreateReqVO boxPkgOrderCreateReqVO = new BoxPkgOrderCreateReqVO();
boxPkgOrderCreateReqVO.setOrderId(order.getOrderId());
boxPkgOrderCreateReqVO.setPkgId(boxMergePkgDO.getId());
this.create(boxPkgOrderCreateReqVO);
Long orderId = order.getOrderId();
//删除以装柜的编号
// boxOrderCheckInfoMapper.delete(new LambdaQueryWrapper<BoxOrderCheckInfoDO>()
// .eq(BoxOrderCheckInfoDO::getOrderId, orderId)
// .eq(boxMergePkgDO.getId() != null && boxMergePkgDO.getId().longValue() > 0L,BoxOrderCheckInfoDO::getPkgId,boxMergePkgDO.getId())
// .eq(BoxOrderCheckInfoDO::getShipmentId, createReqVO.getShipmentId())
// .eq(BoxOrderCheckInfoDO::getType,1)
// );
//找到这个订单所有需要装柜的编号
List<String> tagList = boxOrderCheckInfoService.getOrderTagList(order);
List<BoxOrderCheckInfoDO> boxOrderCheckInfoDOS = new ArrayList<>();
for (int i = 0; i < tagList.size(); i++) {
String tag = tagList.get(i);
BoxOrderCheckInfoDO boxOrderCheckInfoDO = new BoxOrderCheckInfoDO();
boxOrderCheckInfoDO.setOrderId(orderId);
boxOrderCheckInfoDO.setPkgId(boxMergePkgDO.getId());
boxOrderCheckInfoDO.setOrderNumCode(tag);
boxOrderCheckInfoDO.setShipmentId(createReqVO.getShipmentId());
boxOrderCheckInfoDO.setType(1);
boxOrderCheckInfoDO.setDeleted(false);
boxOrderCheckInfoDOS.add(boxOrderCheckInfoDO);
}
boxOrderCheckInfoService.saveBatch(boxOrderCheckInfoDOS);
});
}
}
}else{
throw exception(ORDER_CASE_NUM_NOT_EXIST);
}
// Long orderId = orderService.getOrderIdByOrderNo(orderNumber);
// vo.setOrderId(orderId);
// BoxMergePkgDO boxMergePkgDO = boxMergePkgService.selectOne(new LambdaQueryWrapperX<BoxMergePkgDO>().eq(BoxMergePkgDO::getPkgNum,createReqVO.getPkgNum()));
// vo.setPkgId(boxMergePkgDO.getId()) ;
// BoxPkgOrderDO pkgOrderDO = boxPkgOrderMapper.selectOne(new LambdaQueryWrapperX<BoxPkgOrderDO>().eq(BoxPkgOrderDO::getOrderId,orderId).eq(BoxPkgOrderDO::getPkgId,boxMergePkgDO.getId()));
// if(pkgOrderDO!=null){
// throw exception(ORDER_IS_PRE_INSTALLED);
// }
// if(vo.getOrderId()!=null && vo.getPkgId()!=null){//订单和包裹id 不为空,调用装箱方法
// this.create(vo);
// }
}else if(!createReqVO.getOrderNo().contains("-")){
Long orderId = orderService.getOrderIdByOrderNo(createReqVO.getOrderNo());
BoxMergePkgDO boxMergePkgDO = boxMergePkgService.selectOne(new LambdaQueryWrapper<BoxMergePkgDO>()
.eq(BoxMergePkgDO::getShipmentId, createReqVO.getShipmentId())
.eq(BoxMergePkgDO::getPkgNum, orderNumCode));
if(boxMergePkgDO!=null){
List<BoxPreloadGoodsDO> goodsDOS = boxPreloadGoodsMapper.selectList(new LambdaQueryWrapperX<BoxPreloadGoodsDO>().eq(BoxPreloadGoodsDO::getShipmentId,createReqVO.getShipmentId()).eq(BoxPreloadGoodsDO::getDeleted,0));
if (CollectionUtil.isNotEmpty(goodsDOS)) {
List<Long> orderIds = goodsDOS.stream().map(BoxPreloadGoodsDO::getOrderId).collect(Collectors.toList());
List<OrderDO> orderDOS = orderService.selectList(OrderDO::getOrderId, orderIds);
if(CollectionUtil.isNotEmpty(orderDOS)){
orderDOS.forEach(order->{
BoxPkgOrderCreateReqVO boxPkgOrderCreateReqVO = new BoxPkgOrderCreateReqVO();
boxPkgOrderCreateReqVO.setOrderId(order.getOrderId());
boxPkgOrderCreateReqVO.setPkgId(boxMergePkgDO.getId());
this.create(boxPkgOrderCreateReqVO);
Long orderId = order.getOrderId();
//删除以装柜的编号
// boxOrderCheckInfoMapper.delete(new LambdaQueryWrapper<BoxOrderCheckInfoDO>()
// .eq(BoxOrderCheckInfoDO::getOrderId, orderId)
// .eq(boxMergePkgDO.getId() != null && boxMergePkgDO.getId().longValue() > 0L,BoxOrderCheckInfoDO::getPkgId,boxMergePkgDO.getId())
// .eq(BoxOrderCheckInfoDO::getShipmentId, createReqVO.getShipmentId())
// .eq(BoxOrderCheckInfoDO::getType,1)
// );
//找到这个订单所有需要装柜的编号
List<String> tagList = boxOrderCheckInfoService.getOrderTagList(order);
List<BoxOrderCheckInfoDO> boxOrderCheckInfoDOS = new ArrayList<>();
for (int i = 0; i < tagList.size(); i++) {
String tag = tagList.get(i);
BoxOrderCheckInfoDO boxOrderCheckInfoDO = new BoxOrderCheckInfoDO();
boxOrderCheckInfoDO.setOrderId(orderId);
boxOrderCheckInfoDO.setPkgId(boxMergePkgDO.getId());
boxOrderCheckInfoDO.setOrderNumCode(tag);
boxOrderCheckInfoDO.setShipmentId(createReqVO.getShipmentId());
boxOrderCheckInfoDO.setType(1);
boxOrderCheckInfoDO.setDeleted(false);
boxOrderCheckInfoDOS.add(boxOrderCheckInfoDO);
}
boxOrderCheckInfoService.saveBatch(boxOrderCheckInfoDOS);
});
}
}
}else {
throw exception(ORDER_CASE_NUM_NOT_EXIST);
}
}
// 返回
return "success";
}
private String scanCodeByOrderNo(String orderNumCode ,BoxPkgOrderCreateReqVO vo, BoxPkgOrderScanCodeVO createReqVO){
int position = orderNumCode.lastIndexOf("-");
String orderNumber = orderNumCode.substring(0, position);
Long orderId = orderService.getOrderIdByOrderNo(orderNumber);
if(Objects.isNull(orderId)){
throw exception(ORDER_NOT_IN_BOX);
}
OrderDO order = orderService.getById(orderId);
vo.setOrderId(orderId);
BoxMergePkgDO boxMergePkgDO = boxMergePkgService.selectOne(new LambdaQueryWrapperX<BoxMergePkgDO>().eq(BoxMergePkgDO::getPkgNum,createReqVO.getPkgNum()));
vo.setPkgId(boxMergePkgDO.getId()) ;
BoxPkgOrderDO pkgOrderDO = boxPkgOrderMapper.selectOne(new LambdaQueryWrapperX<BoxPkgOrderDO>().eq(BoxPkgOrderDO::getOrderId,orderId).eq(BoxPkgOrderDO::getPkgId,boxMergePkgDO.getId()));
if(pkgOrderDO!=null){
List<BoxPkgOrderDO> pkgOrderDO = boxPkgOrderMapper.selectList(new LambdaQueryWrapperX<BoxPkgOrderDO>().eq(BoxPkgOrderDO::getOrderId,orderId).eq(BoxPkgOrderDO::getPkgId,boxMergePkgDO.getId()));
if(CollectionUtil.isNotEmpty(pkgOrderDO)){
throw exception(ORDER_IS_PRE_INSTALLED);
}
if(vo.getOrderId()!=null && vo.getPkgId()!=null){//订单和包裹id 不为空,调用装箱方法
this.create(vo);
}
}
// 返回
return "success";
//删除以装柜的编号
// boxOrderCheckInfoMapper.delete(new LambdaQueryWrapper<BoxOrderCheckInfoDO>()
// .eq(BoxOrderCheckInfoDO::getOrderId, orderId)
// .eq(boxMergePkgDO.getId() != null && boxMergePkgDO.getId().longValue() > 0L,BoxOrderCheckInfoDO::getPkgId,boxMergePkgDO.getId())
// .eq(BoxOrderCheckInfoDO::getShipmentId, createReqVO.getShipmentId())
// .eq(BoxOrderCheckInfoDO::getType,1)
// );
//找到这个订单所有需要装柜的编号
List<String> tagList = boxOrderCheckInfoService.getOrderTagList(order);
List<BoxOrderCheckInfoDO> boxOrderCheckInfoDOS = new ArrayList<>();
if(tagList.contains(orderNumCode) ){
String tag = orderNumCode ;
BoxOrderCheckInfoDO boxOrderCheckInfoDO = new BoxOrderCheckInfoDO();
boxOrderCheckInfoDO.setOrderId(orderId);
boxOrderCheckInfoDO.setPkgId(boxMergePkgDO.getId());
boxOrderCheckInfoDO.setOrderNumCode(tag);
boxOrderCheckInfoDO.setShipmentId(createReqVO.getShipmentId());
boxOrderCheckInfoDO.setType(1);
boxOrderCheckInfoDO.setDeleted(false);
boxOrderCheckInfoDOS.add(boxOrderCheckInfoDO);
}
// for (int i = 0; i < tagList.size(); i++) {
// String tag = tagList.get(i);
// BoxOrderCheckInfoDO boxOrderCheckInfoDO = new BoxOrderCheckInfoDO();
// boxOrderCheckInfoDO.setOrderId(orderId);
// boxOrderCheckInfoDO.setPkgId(boxMergePkgDO.getId());
// boxOrderCheckInfoDO.setOrderNumCode(tag);
// boxOrderCheckInfoDO.setShipmentId(createReqVO.getShipmentId());
// boxOrderCheckInfoDO.setType(1);
// boxOrderCheckInfoDO.setDeleted(false);
// boxOrderCheckInfoDOS.add(boxOrderCheckInfoDO);
// }
boxOrderCheckInfoService.saveBatch(boxOrderCheckInfoDOS);
}
return "success" ;
}
......
......@@ -19,4 +19,10 @@ public class BoxPkgOrderScanCodeVO {
@ApiModelProperty("合宝箱编号")
private String pkgNum ;
/**
* 出货id
*/
@ApiModelProperty("出货id")
private Long shipmentId;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment