feat: 查询出库单详情

This commit is contained in:
DataCall 2024-08-04 15:58:38 +08:00
parent 70005a113c
commit 82a92caabd
6 changed files with 47 additions and 8 deletions

View file

@ -78,7 +78,6 @@ public class ShipmentOrderController extends BaseController {
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ShipmentOrderBo bo) {
bo.setShipmentOrderStatus(ServiceConstants.ShipmentOrderStatus.PENDING);
shipmentOrderService.insertByBo(bo);
return R.ok();
}
@ -91,7 +90,6 @@ public class ShipmentOrderController extends BaseController {
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ShipmentOrderBo bo) {
bo.setShipmentOrderStatus(ServiceConstants.ShipmentOrderStatus.PENDING);
shipmentOrderService.updateByBo(bo);
return R.ok();
}

View file

@ -105,4 +105,14 @@ public class ShipmentOrderDetailController extends BaseController {
shipmentOrderDetailService.deleteByIds(List.of(ids));
return R.ok();
}
/**
* 获取出库单详情详细信息
*
*/
@SaCheckPermission("wms:shipmentOrderDetail:query")
@GetMapping("/list/{shipmentOrderId}")
public R<List<ShipmentOrderDetailVo>> listByShipmentOrderId(@NotNull @PathVariable Long shipmentOrderId) {
return R.ok(shipmentOrderDetailService.queryByShipmentOrderId(shipmentOrderId));
}
}

View file

@ -74,5 +74,7 @@ public class ShipmentOrderDetailVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
private ItemSkuVo itemSku;
private BigDecimal maxQuantity;
}

View file

@ -13,6 +13,7 @@ import io.github.linpeilie.annotations.AutoMapper;
import java.io.Serializable;
import java.io.Serial;
import java.util.List;
/**
* 出库单视图对象 wms_shipment_order
@ -94,5 +95,5 @@ public class ShipmentOrderVo extends BaseEntity implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
List<ShipmentOrderDetailVo> details;
}

View file

@ -9,6 +9,8 @@ import com.ruoyi.common.core.utils.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.wms.domain.vo.ItemSkuVo;
import com.ruoyi.wms.domain.vo.ReceiptOrderDetailVo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.wms.domain.bo.ShipmentOrderDetailBo;
@ -17,9 +19,9 @@ import com.ruoyi.wms.domain.entity.ShipmentOrderDetail;
import com.ruoyi.wms.mapper.ShipmentOrderDetailMapper;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 出库单详情Service业务层处理
@ -32,6 +34,7 @@ import java.util.Collection;
public class ShipmentOrderDetailService extends ServiceImpl<ShipmentOrderDetailMapper, ShipmentOrderDetail> {
private final ShipmentOrderDetailMapper shipmentOrderDetailMapper;
private final ItemSkuService itemSkuService;
/**
* 查询出库单详情
@ -99,4 +102,22 @@ public class ShipmentOrderDetailService extends ServiceImpl<ShipmentOrderDetailM
}
saveOrUpdateBatch(list);
}
public List<ShipmentOrderDetailVo> queryByShipmentOrderId(Long shipmentOrderId) {
ShipmentOrderDetailBo bo = new ShipmentOrderDetailBo();
bo.setShipmentOrderId(shipmentOrderId);
List<ShipmentOrderDetailVo> details = queryList(bo);
if (CollUtil.isEmpty(details)) {
return Collections.EMPTY_LIST;
}
Set<Long> skuIds = details
.stream()
.map(ShipmentOrderDetailVo::getSkuId)
.collect(Collectors.toSet());
Map<Long, ItemSkuVo> itemSkuMap = itemSkuService.queryVosByIds(skuIds)
.stream()
.collect(Collectors.toMap(ItemSkuVo::getId, Function.identity()));
details.forEach(detail -> detail.setItemSku(itemSkuMap.get(detail.getSkuId())));
return details;
}
}

View file

@ -9,6 +9,7 @@ import com.ruoyi.common.core.constant.ServiceConstants;
import com.ruoyi.common.core.exception.base.BaseException;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.common.satoken.utils.LoginHelper;
@ -46,7 +47,12 @@ public class ShipmentOrderService {
* 查询出库单
*/
public ShipmentOrderVo queryById(Long id){
return shipmentOrderMapper.selectVoById(id);
ShipmentOrderVo shipmentOrderVo = shipmentOrderMapper.selectVoById(id);
if (shipmentOrderVo == null) {
throw new BaseException("出库单不存在");
}
shipmentOrderVo.setDetails(shipmentOrderDetailService.queryByShipmentOrderId(shipmentOrderVo.getId()));
return shipmentOrderVo;
}
/**
@ -76,6 +82,7 @@ public class ShipmentOrderService {
lqw.eq(bo.getReceivableAmount() != null, ShipmentOrder::getReceivableAmount, bo.getReceivableAmount());
lqw.eq(bo.getTotalQuantity() != null, ShipmentOrder::getTotalQuantity, bo.getTotalQuantity());
lqw.eq(bo.getShipmentOrderStatus() != null, ShipmentOrder::getShipmentOrderStatus, bo.getShipmentOrderStatus());
lqw.orderByDesc(BaseEntity::getCreateTime);
return lqw;
}