5 天以前 d3a5c4420a7daf89bc9832f22ca8ed9d7e1adaf9
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -6,6 +6,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.ProductModelMapper;
import com.ruoyi.basic.pojo.ProductModel;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
@@ -18,6 +20,7 @@
import com.ruoyi.production.dto.ProductStructureDto;
import com.ruoyi.production.mapper.*;
import com.ruoyi.production.pojo.*;
import com.ruoyi.production.service.impl.ProductBomServiceImpl;
import com.ruoyi.production.service.impl.ProductOrderServiceImpl;
import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
import com.ruoyi.purchase.pojo.PurchaseLedger;
@@ -36,6 +39,7 @@
import com.ruoyi.stock.mapper.StockInventoryMapper;
import com.ruoyi.stock.pojo.StockInventory;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -103,6 +107,12 @@
    private StockInventoryMapper stockInventoryMapper;
    @Autowired
    private ProductOrderServiceImpl productOrderServiceImpl;
    @Autowired
    private ProductModelMapper productModelMapper;
    @Autowired
    private ProductBomMapper productBomMapper;
    @Autowired
    private ProductBomServiceImpl productBomServiceImpl;
    @Override
    public SalesLedgerProduct selectSalesLedgerProductById(Long id) {
@@ -283,12 +293,11 @@
        productOrder.setQuantity(salesLedgerProduct.getQuantity());//需求数量
        productOrder.setCompleteQuantity(BigDecimal.ZERO);//完成数量
        productOrderMapper.insert(productOrder);
        List<ProcessRoute> processRoutes = processRouteMapper.selectList(new QueryWrapper<ProcessRoute>().lambda()
                .eq(ProcessRoute::getProductModelId, salesLedgerProduct.getProductModelId())
                .orderByDesc(ProcessRoute::getCreateTime));
        if (processRoutes.size()>0){
            ProcessRoute processRoute = processRoutes.get(0);
        // 查询工艺路线id
        ProductModel productModel = productModelMapper.selectById(salesLedgerProduct.getProductModelId());
        if (productModel != null) {
            ProcessRoute processRoute = processRouteMapper.selectById(productModel.getRouteId());
            if (processRoute != null) {
            //新增生产订单工艺路线主表
            ProductProcessRoute productProcessRoute = new ProductProcessRoute();
            productProcessRoute.setProductModelId(processRoute.getProductModelId());
@@ -296,13 +305,34 @@
            productProcessRoute.setProductOrderId(productOrder.getId());
            productProcessRoute.setBomId(processRoute.getBomId());
            productProcessRouteMapper.insert(productProcessRoute);
                // 绑定生产bom清单
                List<ProductBom> productBoms = productBomMapper.selectList(new LambdaQueryWrapper<ProductBom>()
                        .eq(ProductBom::getProductModelId, processRoute.getProductModelId())
                        .orderByDesc(ProductBom::getId));
                if(com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(productBoms)){
                    ProductBom productBom = productBoms.get(0);
                    // 获取bom子表信息
                    List<ProductStructure> productStructures = productStructureMapper.selectList(new LambdaQueryWrapper<ProductStructure>()
                            .eq(ProductStructure::getBomId, productBom.getId()));
                    if(com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(productStructures)){
                        productStructures.forEach(item ->{
                            ProductStructureRecord item1 = new ProductStructureRecord();
                            BeanUtils.copyProperties(item, item1);
                            item1.setProductOrderId(productOrder.getId());
                            item1.setDemandedQuantity(item.getUnitQuantity().add(productOrder.getQuantity()));
                            item1.setBomId(Long.valueOf(productBom.getId()));
                            productStructureRecordMapper.insert(item1);
                        });
                    }
                }
            //新增生产订单工艺路线子表
            List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(new QueryWrapper<ProcessRouteItem>().lambda().eq(ProcessRouteItem::getRouteId, processRoute.getId()));
            // 生成当前日期的前缀:年月日
            String datePrefix = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
            for (ProcessRouteItem processRouteItem : processRouteItems) {
                ProductProcessRouteItem productProcessRouteItem = new ProductProcessRouteItem();
                productProcessRouteItem.setProductModelId(processRouteItem.getProductModelId());
                    productProcessRouteItem.setProductModelId(productOrder.getProductModelId());
                productProcessRouteItem.setProcessId(processRouteItem.getProcessId());
                productProcessRouteItem.setProductOrderId(productOrder.getId());
                productProcessRouteItem.setProductRouteId(productProcessRoute.getId());
@@ -331,7 +361,7 @@
                    productWorkOrder.setPlanQuantity(salesLedgerProduct.getQuantity());
                    productWorkOrder.setWorkOrderNo(workOrderNoStr);
                    productWorkOrder.setStatus(1);
                        productWorkOrder.setUserPower(productProcessRouteItem.getUserPower());
                    productWorkOrderMapper.insert(productWorkOrder);
                }
@@ -341,6 +371,8 @@
        }
    }
    }
    /**
     * 删除生产数据
     */