| | |
| | | package com.ruoyi.production.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; |
| | | import com.ruoyi.procurementrecord.utils.StockUtils; |
| | | import com.ruoyi.production.dto.ProductionProductInputDto; |
| | | import com.ruoyi.production.mapper.ProductStructureRecordMapper; |
| | | import com.ruoyi.production.mapper.ProductionProductInputMapper; |
| | | import com.ruoyi.production.pojo.ProductStructureRecord; |
| | | import com.ruoyi.production.pojo.ProductionProductInput; |
| | | import com.ruoyi.production.service.ProductionProductInputService; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | @Service |
| | | @AllArgsConstructor |
| | |
| | | @Autowired |
| | | private ProductionProductInputMapper productionProductInputMapper; |
| | | |
| | | @Autowired |
| | | private StockUtils stockUtils; |
| | | |
| | | @Autowired |
| | | private ProductStructureRecordMapper productStructureRecordMapper; |
| | | |
| | | @Override |
| | | public IPage<ProductionProductInputDto> listPageProductionProductInputDto(Page page, ProductionProductInputDto productionProductInputDto) { |
| | | return productionProductInputMapper.listPageProductionProductInputDto(page, productionProductInputDto); |
| | | } |
| | | |
| | | @Override |
| | | public Object returnMaterial(List<ProductionProductInput> productionProductInput) { |
| | | if(CollectionUtils.isEmpty(productionProductInput)){ |
| | | return "请选择要退料的数据"; |
| | | } |
| | | for (ProductionProductInput input : productionProductInput) { |
| | | ProductionProductInput productionProductInput1 = productionProductInputMapper.selectById(input.getId()); |
| | | BigDecimal qty = input.getReturnQuantity() == null ? BigDecimal.ZERO : input.getReturnQuantity(); |
| | | BigDecimal qty1 = productionProductInput1.getReturnQuantity() == null ? BigDecimal.ZERO : productionProductInput1.getReturnQuantity(); |
| | | productionProductInput1.setReturnQuantity(qty.add(qty1)); |
| | | productionProductInputMapper.updateById(productionProductInput1); |
| | | // 退料入库 |
| | | stockUtils.addStock(input.getProductModelId(), input.getReturnQuantity(), StockInQualifiedRecordTypeEnum.RETURN_MATERIAL_IN.getCode(), input.getId()); |
| | | // 增加物料清单 |
| | | ProductStructureRecord productStructureRecord = productStructureRecordMapper.selectById(input.getProductStructureRecordId()); |
| | | if(productStructureRecord != null){ |
| | | productStructureRecord.setCompletedQuantity(productStructureRecord.getCompletedQuantity().subtract(qty)); |
| | | productStructureRecordMapper.updateById(productStructureRecord); |
| | | } |
| | | } |
| | | return "退料成功"; |
| | | } |
| | | } |