|
@@ -98,7 +98,7 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void edit(OrderDTO orderDTO) {
|
|
|
if (OrderTypeEnum.TO_C.equals(orderDTO.getType())) {
|
|
|
- if (ObjectUtil.isNull(orderDTO.getStartTime()) || ObjectUtil.isNull(orderDTO.getEndTime())) {
|
|
|
+ if (ObjectUtil.isNull(orderDTO.getStartTime())) {
|
|
|
throw new ServiceException("租用时间不能为空");
|
|
|
}
|
|
|
}
|
|
@@ -128,9 +128,6 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
|
|
|
ProductVO productVO = BeanUtil.copyProperties(productDOList.stream().filter(item -> item.getId().equals(dto.getProductId())).findFirst().get(), ProductVO.class);
|
|
|
dto.setProductVO(productVO);
|
|
|
GoodsVO goodsVO = BeanUtil.copyProperties(goodsMapper.selectById(productVO.getGoodsId()), GoodsVO.class);
|
|
|
- // 商品图标
|
|
|
- List<GoodsGalleryDO> gallerySmallList = goodsGalleryManager.list(id + 99);
|
|
|
- goodsVO.setImageSmallList(gallerySmallList);
|
|
|
dto.setGoodsVO(goodsVO);
|
|
|
dto.setUsableStock(productStockManager.getById(dto.getProductStockId()).getUsableStock());
|
|
|
|
|
@@ -257,8 +254,11 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
|
|
|
//根据订单查找到这个订单的所有货物扣减库存
|
|
|
List<OrderSendItemVO> list = orderSendDO.getOrderItemVOS();
|
|
|
List<OrderSendItemDO> selectList = orderSendItemManager.list(new LambdaQueryWrapper<OrderSendItemDO>().eq(OrderSendItemDO::getSendOrderId, sendOrderId));
|
|
|
+ if (list.size() != selectList.size()){
|
|
|
+ throw new ServiceException("发货商品不能修改");
|
|
|
+ }
|
|
|
for (OrderSendItemDO itemDO : selectList) {
|
|
|
- Optional<OrderSendItemVO> first = list.stream().filter(item -> item.getId().equals(itemDO.getId())).findFirst();
|
|
|
+ Optional<OrderSendItemVO> first = list.stream().filter(item -> item.getProductId().equals(itemDO.getProductId())).findFirst();
|
|
|
if (!first.isPresent()) {
|
|
|
throw new ServiceException("发货商品不能修改");
|
|
|
}
|
|
@@ -290,13 +290,14 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
|
|
|
outDO.setOrderId(aDo.getOrderId());
|
|
|
outDO.setHasSubmit("Y");
|
|
|
outDO.setWarehouseId(aDo.getWarehouseId());
|
|
|
- outDO.setNotes("发货单生成的出货单");
|
|
|
+ outDO.setNotes("发货单生成的出库单");
|
|
|
outDO.setSn(noGenerateManager.generate(NoBusinessTypeEnum.WarehouseOut, 66L));
|
|
|
warehouseOutMapper.insert(outDO);
|
|
|
List<ItemSnCodeDO> itemSnCodeDOS = new ArrayList<>();
|
|
|
//保存出库单明细
|
|
|
List<WarehouseOutItemDO> beanList = BeanUtils.toBean(list, WarehouseOutItemDO.class);
|
|
|
//保存发货单明细和序列号的关系
|
|
|
+ List<GoodsSnDO> snDOS = new ArrayList<>();
|
|
|
for (OrderSendItemVO sendItemVO : list) {
|
|
|
//判断发货数量是不是和明细数量一致,不一样不让保存
|
|
|
ProductDO byId = productManager.getById(sendItemVO.getProductId());
|
|
@@ -310,6 +311,7 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
|
|
|
}
|
|
|
|
|
|
if (CollUtil.isNotEmpty(sendItemVO.getSnCodeList())) {
|
|
|
+ snDOS.addAll(sendItemVO.getSnCodeList());
|
|
|
for (GoodsSnDO snDO : sendItemVO.getSnCodeList()) {
|
|
|
//出库明细和序列号的关系
|
|
|
ItemSnCodeDO itemSnCodeDO = new ItemSnCodeDO();
|
|
@@ -321,6 +323,15 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //更改序列号的状态
|
|
|
+ if (CollUtil.isNotEmpty(snDOS)) {
|
|
|
+ //更爱序列号状态
|
|
|
+ for (GoodsSnDO snDO : snDOS) {
|
|
|
+ snDO.setStatus(SnCodeStatusEnum.OUT_WAREHOUSE);
|
|
|
+ snDO.setOutHouseId(outDO.getId());
|
|
|
+ }
|
|
|
+ goodsSnManager.updateBatchById(snDOS);
|
|
|
+ }
|
|
|
//保存出库单明细和序列号的关系
|
|
|
beanList.forEach(item -> {
|
|
|
item.setWarehouseOutId(outDO.getId());
|
|
@@ -382,12 +393,25 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
|
|
|
if (ObjectUtil.isNull(orderDO)) {
|
|
|
throw new ServiceException("请录入正确的订单号");
|
|
|
}
|
|
|
- if (!OrderTypeEnum.TO_C.equals(orderDO.getType())) {
|
|
|
- throw new ServiceException("只有租赁订单才可做入库单");
|
|
|
+ OrderVO orderVO = BeanUtil.copyProperties(orderDO, OrderVO.class);
|
|
|
+
|
|
|
+ if (SaleOrderStatusEnum.SALE_AFTER_ING.equals(orderDO.getStatus()) ||
|
|
|
+ SaleOrderStatusEnum.SALE_AFTER_END.equals(orderDO.getStatus()) ||
|
|
|
+ SaleOrderStatusEnum.SALE_AFTER_CANCEL.equals(orderDO.getStatus()) ){
|
|
|
+ orderVO.setScanOrderType("saleAfter");
|
|
|
+ scanOrder(orderVO);
|
|
|
}
|
|
|
|
|
|
- OrderVO orderVO = BeanUtil.copyProperties(orderDO, OrderVO.class);
|
|
|
- List<OrderItemDO> list = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderDO.getId()));
|
|
|
+ if (OrderTypeEnum.TO_C.equals(orderDO.getType()) && SaleOrderStatusEnum.SENDING.equals(orderDO.getStatus())) {
|
|
|
+ orderVO.setScanOrderType("return");
|
|
|
+ scanOrder(orderVO);
|
|
|
+ }
|
|
|
+ return orderVO;
|
|
|
+ }
|
|
|
+ private void scanOrder(OrderVO orderVO){
|
|
|
+ List<OrderItemDO> list = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>()
|
|
|
+ .eq(OrderItemDO::getOrderId, orderVO.getId())
|
|
|
+ .eq(orderVO.getScanOrderType().equals("saleAfter"),OrderItemDO::getHasSaleAfter,true));
|
|
|
List<Long> goodIdlist = list.stream().map(OrderItemDO::getProductId).collect(Collectors.toList());
|
|
|
// 查询订单项
|
|
|
List<OrderItemDTO> itemList = BeanUtils.toBean(list, OrderItemDTO.class);
|
|
@@ -401,9 +425,10 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
|
|
|
dto.setUsableStock(productStockManager.getById(dto.getProductStockId()).getUsableStock());
|
|
|
}
|
|
|
orderVO.setItemList(itemList);
|
|
|
- return orderVO;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void extension(Long orderId, OrderDTO orderDTO) {
|