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
|
public class ProductionProductInputServiceImpl extends ServiceImpl<ProductionProductInputMapper, ProductionProductInput> implements ProductionProductInputService {
|
@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(),
|
input.getStockLocation(),
|
2);
|
// 增加物料清单
|
ProductStructureRecord productStructureRecord = productStructureRecordMapper.selectById(input.getProductStructureRecordId());
|
if(productStructureRecord != null){
|
productStructureRecord.setCompletedQuantity(productStructureRecord.getCompletedQuantity().subtract(qty));
|
productStructureRecordMapper.updateById(productStructureRecord);
|
}
|
}
|
return "退料成功";
|
}
|
}
|