| | |
| | | /** |
| | | * ERP 采购订单 API 实现类 |
| | | * |
| | | * @author 芋道源码 |
| | | * @author 超级管理员 |
| | | */ |
| | | @RestController |
| | | @RequestMapping(ErpPurchaseOrderApi.PREFIX) |
| | |
| | | |
| | | @Resource |
| | | private ErpPurchaseOrderItemMapper purchaseOrderItemMapper; |
| | | |
| | | @Resource |
| | | private cn.iocoder.yudao.module.erp.dal.mysql.purchase.ErpPurchaseOrderMapper purchaseOrderMapper; |
| | | |
| | | @Override |
| | | public CommonResult<ErpPurchaseOrderRespDTO> getPurchaseOrder(Long 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); |
| | |
| | | |
| | | @Override |
| | | public CommonResult<Long> createPurchaseOrder(ErpPurchaseOrderCreateReqDTO createReqDTO) { |
| | | return success(purchaseOrderService.createPurchaseOrder(buildSaveReqVO(createReqDTO))); |
| | | } |
| | | |
| | | @Override |
| | | public CommonResult<Long> createPurchaseOrderDraft(ErpPurchaseOrderCreateReqDTO createReqDTO) { |
| | | return success(purchaseOrderService.createPurchaseOrder(buildSaveReqVO(createReqDTO), false)); |
| | | } |
| | | |
| | | private ErpPurchaseOrderSaveReqVO buildSaveReqVO(ErpPurchaseOrderCreateReqDTO createReqDTO) { |
| | | ErpPurchaseOrderSaveReqVO saveReqVO = BeanUtils.toBean(createReqDTO, ErpPurchaseOrderSaveReqVO.class); |
| | | if (createReqDTO.getItems() != null) { |
| | | saveReqVO.setItems(BeanUtils.toBean(createReqDTO.getItems(), ErpPurchaseOrderSaveReqVO.Item.class)); |
| | | } |
| | | return success(purchaseOrderService.createPurchaseOrder(saveReqVO)); |
| | | return saveReqVO; |
| | | } |
| | | |
| | | @Override |