package cn.iocoder.yudao.module.erp.api.purchase; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderItemRespDTO; import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderRespDTO; import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO; import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseOrderItemDO; import cn.iocoder.yudao.module.erp.dal.mysql.purchase.ErpPurchaseOrderItemMapper; import cn.iocoder.yudao.module.erp.enums.ErpAuditStatus; import cn.iocoder.yudao.module.erp.service.purchase.ErpPurchaseOrderService; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.Collections; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; /** * ERP 采购订单 API 实现类 * * @author 芋道源码 */ @RestController @RequestMapping(ErpPurchaseOrderApi.PREFIX) @Validated public class ErpPurchaseOrderApiImpl implements ErpPurchaseOrderApi { @Resource private ErpPurchaseOrderService purchaseOrderService; @Resource private ErpPurchaseOrderItemMapper purchaseOrderItemMapper; @Override public CommonResult getPurchaseOrder(Long id) { ErpPurchaseOrderDO order = purchaseOrderService.getPurchaseOrder(id); return success(BeanUtils.toBean(order, ErpPurchaseOrderRespDTO.class)); } @Override public CommonResult> getPurchaseOrderListBySupplierId(Long supplierId) { if (supplierId == null) { return success(Collections.emptyList()); } // 查询已审核状态的采购订单 List orders = purchaseOrderService.getPurchaseOrderListBySupplierIdAndStatus( supplierId, ErpAuditStatus.APPROVE.getStatus()); return success(BeanUtils.toBean(orders, ErpPurchaseOrderRespDTO.class)); } @Override public CommonResult> getPurchaseOrderList(List ids) { if (ids == null || ids.isEmpty()) { return success(Collections.emptyList()); } List orders = purchaseOrderService.getPurchaseOrderList(ids); return success(BeanUtils.toBean(orders, ErpPurchaseOrderRespDTO.class)); } @Override public CommonResult> getPurchaseOrderItemList(Long orderId) { if (orderId == null) { return success(Collections.emptyList()); } List items = purchaseOrderService.getPurchaseOrderItemListByOrderId(orderId); return success(BeanUtils.toBean(items, ErpPurchaseOrderItemRespDTO.class)); } @Override public CommonResult getPurchaseOrderItem(Long id) { if (id == null) { return success(null); } ErpPurchaseOrderItemDO item = purchaseOrderItemMapper.selectById(id); return success(BeanUtils.toBean(item, ErpPurchaseOrderItemRespDTO.class)); } @Override public CommonResult updateOrderItemInCount(Long orderItemId, BigDecimal inCount) { if (orderItemId == null || inCount == null) { return success(false); } ErpPurchaseOrderItemDO item = purchaseOrderItemMapper.selectById(orderItemId); if (item == null) { return success(false); } // 累加入库数量 BigDecimal newInCount = (item.getInCount() != null ? item.getInCount() : BigDecimal.ZERO).add(inCount); ErpPurchaseOrderItemDO updateItem = new ErpPurchaseOrderItemDO(); updateItem.setId(orderItemId); updateItem.setInCount(newInCount); purchaseOrderItemMapper.updateById(updateItem); return success(true); } @Override public CommonResult updateOrderInStatus(Long orderId) { if (orderId == null) { return success(false); } purchaseOrderService.updatePurchaseOrderInStatus(orderId); return success(true); } }