| | |
| | | package com.ruoyi.production.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.procurementrecord.utils.StockUtils; |
| | | import com.ruoyi.production.dto.ProductOrderDto; |
| | | import com.ruoyi.production.dto.ProductOrderSourceDto; |
| | | import com.ruoyi.production.dto.ProductStructureDto; |
| | | import com.ruoyi.production.enums.ProductOrderStatusEnum; |
| | | import com.ruoyi.production.mapper.*; |
| | |
| | | throw new RuntimeException("只有【待开始、已取消】状态的订单才可以删除"); |
| | | } |
| | | |
| | | // 是否已生产 |
| | | List<ProductWorkOrder> productWorkOrders = productWorkOrderMapper.selectList(Wrappers.<ProductWorkOrder>lambdaQuery().eq(ProductWorkOrder::getProductOrderId, id)); |
| | | |
| | | if (!productWorkOrders.isEmpty()) { |
| | | List<Long> workOrderIds = productWorkOrders.stream() |
| | | .map(ProductWorkOrder::getId) |
| | | .collect(Collectors.toList()); |
| | | |
| | | List<ProductionProductMain> productionProductMains = productionProductMainMapper.selectList(Wrappers.<ProductionProductMain>lambdaQuery().in(ProductionProductMain::getWorkOrderId, workOrderIds)); |
| | | if (!productionProductMains.isEmpty()) { |
| | | throw new RuntimeException("生产订单已经开始生产,不能删除"); |
| | | } |
| | | |
| | | // 删除工单 |
| | | productWorkOrderMapper.delete(Wrappers.<ProductWorkOrder>lambdaQuery().eq(ProductWorkOrder::getProductOrderId, id)); |
| | | // 是否有报工数据 |
| | | List<ProductionProductMain> productMains = productionProductMainMapper.selectList(new LambdaQueryWrapper<ProductionProductMain>().eq(ProductionProductMain::getProductOrderId, id)); |
| | | if (!productMains.isEmpty()) { |
| | | throw new RuntimeException("生产订单已经开始生产,不能删除"); |
| | | } |
| | | |
| | | // 回退生产计划 |
| | | List<ProductOrderPlan> productOrderPlans = productOrderPlanMapper.selectList(Wrappers.<ProductOrderPlan>lambdaQuery().eq(ProductOrderPlan::getProductOrderId, id)); |
| | | |
| | |
| | | return "SC" + datePrefix + String.format("%04d", sequence); |
| | | } |
| | | |
| | | @Override |
| | | public List<ProductOrderSourceDto> productOrderSource(Long orderId) { |
| | | if (orderId == null) { |
| | | throw new ServiceException("查询订单数据不能为空"); |
| | | } |
| | | ProductOrder productOrder = getById(orderId); |
| | | if (productOrder == null) { |
| | | throw new ServiceException("查询失败,生产订单不存在"); |
| | | } |
| | | |
| | | List<ProductOrderSourceDto> list = baseMapper.productOrderSource(orderId); |
| | | return list; |
| | | } |
| | | } |