package com.ruoyi.production.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; import com.ruoyi.procurementrecord.utils.StockUtils; import com.ruoyi.production.dto.ProductStructureDto; import com.ruoyi.production.mapper.ProductStructureMapper; import com.ruoyi.production.mapper.ProductionProductInputMapper; import com.ruoyi.production.pojo.ProductStructureRecord; import com.ruoyi.production.mapper.ProductStructureRecordMapper; import com.ruoyi.production.pojo.ProductionProductInput; import com.ruoyi.production.service.ProductStructureRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; /** *

* 生产订单-物料清单表 服务实现类 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-03-26 10:34:23 */ @Service public class ProductStructureRecordServiceImpl extends ServiceImpl implements ProductStructureRecordService { @Autowired private ProductStructureRecordMapper productStructureRecordMapper; @Autowired private ProductStructureMapper productStructureMapper; @Autowired private StockUtils stockUtils; @Autowired private ProductionProductInputMapper productionProductInputMapper; @Override public IPage listPage(Page page, ProductStructureRecord productStructureRecord) { return productStructureRecordMapper.listPage(page,productStructureRecord); } @Override public String pick(List productionProductInputs) { if (CollectionUtils.isEmpty(productionProductInputs)) { return "请选择要领的料"; } for (ProductionProductInput productionProductInput : productionProductInputs) { productionProductInputMapper.insert(productionProductInput); stockUtils.substractStock(productionProductInput.getProductModelId(), productionProductInput.getQuantity(), StockOutQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_OUT.getCode(), productionProductInput.getProductOrderId()); // 扣除物料清单 ProductStructureRecord productStructureRecord = productStructureRecordMapper.selectById(productionProductInput.getProductStructureRecordId()); if(productStructureRecord != null){ productStructureRecord.setCompletedQuantity(productStructureRecord.getCompletedQuantity().add(productionProductInput.getQuantity())); productStructureRecordMapper.updateById(productStructureRecord); } } return "领料成功"; } }