package cn.iocoder.yudao.module.erp.api.purchase; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.ErpPurchaseRequestRespDTO; import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestDO; import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestItemDO; import cn.iocoder.yudao.module.erp.dal.mysql.purchase.ErpPurchaseRequestItemMapper; import cn.iocoder.yudao.module.erp.dal.mysql.purchase.ErpPurchaseRequestMapper; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; /** * ERP 采购申请 API 实现类 * * 供 SRM 询价比价模块读取采购申请、回写询价单与采购台账关联。 */ @Service @Validated @Slf4j public class ErpPurchaseRequestApiImpl implements ErpPurchaseRequestApi { @Resource private ErpPurchaseRequestMapper purchaseRequestMapper; @Resource private ErpPurchaseRequestItemMapper purchaseRequestItemMapper; @Override public CommonResult getPurchaseRequest(Long id) { ErpPurchaseRequestDO request = purchaseRequestMapper.selectById(id); if (request == null) { return success(null); } List items = purchaseRequestItemMapper.selectListByRequestId(id); return success(BeanUtils.toBean(request, ErpPurchaseRequestRespDTO.class, resp -> resp .setItems(BeanUtils.toBean(items, ErpPurchaseRequestRespDTO.Item.class)))); } @Override public CommonResult updatePurchaseRequestInquiry(Long id, Long inquiryId, String inquiryNo) { purchaseRequestMapper.updateById(new ErpPurchaseRequestDO() .setId(id) .setInquiryId(inquiryId) .setInquiryNo(inquiryNo)); return success(true); } @Override public CommonResult clearPurchaseRequestInquiry(Long id) { purchaseRequestMapper.update(null, new LambdaUpdateWrapper() .eq(ErpPurchaseRequestDO::getId, id) .set(ErpPurchaseRequestDO::getInquiryId, null) .set(ErpPurchaseRequestDO::getInquiryNo, null)); return success(true); } @Override public CommonResult updatePurchaseRequestOrder(Long id, Long orderId, String orderNo) { purchaseRequestMapper.updateById(new ErpPurchaseRequestDO() .setId(id) .setOrderId(orderId) .setOrderNo(orderNo)); return success(true); } }