| | |
| | | @Resource |
| | | private ErpPurchaseOrderItemMapper purchaseOrderItemMapper; |
| | | |
| | | @Resource |
| | | private cn.iocoder.yudao.module.erp.dal.mysql.purchase.ErpPurchaseOrderMapper purchaseOrderMapper; |
| | | |
| | | @Override |
| | | public CommonResult<ErpPurchaseOrderRespDTO> getPurchaseOrder(Long id) { |
| | | ErpPurchaseOrderDO order = purchaseOrderService.getPurchaseOrder(id); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public CommonResult<Boolean> updateOrderItemReturnCount(Long orderItemId, BigDecimal returnCount) { |
| | | if (orderItemId == null || returnCount == null) { |
| | | return success(false); |
| | | } |
| | | ErpPurchaseOrderItemDO item = purchaseOrderItemMapper.selectById(orderItemId); |
| | | if (item == null) { |
| | | return success(false); |
| | | } |
| | | // 累加退货数量 |
| | | BigDecimal oldReturnCount = item.getReturnCount() != null ? item.getReturnCount() : BigDecimal.ZERO; |
| | | BigDecimal newReturnCount = oldReturnCount.add(returnCount); |
| | | purchaseOrderItemMapper.updateById(new ErpPurchaseOrderItemDO() |
| | | .setId(orderItemId) |
| | | .setReturnCount(newReturnCount)); |
| | | // 同步更新订单级退货数量:按订单下所有明细的退货数量求和,避免只传单条把其它行清零 |
| | | BigDecimal totalReturnCount = purchaseOrderItemMapper.selectListByOrderId(item.getOrderId()).stream() |
| | | .map(orderItem -> orderItem.getReturnCount() != null ? orderItem.getReturnCount() : BigDecimal.ZERO) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | purchaseOrderMapper.updateById(new ErpPurchaseOrderDO() |
| | | .setId(item.getOrderId()) |
| | | .setReturnCount(totalReturnCount)); |
| | | return success(true); |
| | | } |
| | | |
| | | @Override |
| | | public CommonResult<Boolean> updateOrderInStatus(Long orderId) { |
| | | if (orderId == null) { |
| | | return success(false); |