package com.ruoyi.productionPlan.service.impl; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.production.dto.ProductOrderDto; import com.ruoyi.production.mapper.ProductOrderMapper; import com.ruoyi.production.mapper.ProductionOrderRouteMapper; import com.ruoyi.production.mapper.ProductionProductMainMapper; import com.ruoyi.production.pojo.ProductionProductMain; import com.ruoyi.productionPlan.dto.OrderDto; import com.ruoyi.productionPlan.dto.ProductionPlanDto; import com.ruoyi.productionPlan.dto.TrackDto; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.productionPlan.mapper.ProductionPlanMapper; import com.ruoyi.productionPlan.pojo.ProductOrderPlan; import com.ruoyi.productionPlan.mapper.ProductOrderPlanMapper; import com.ruoyi.productionPlan.service.ProductOrderPlanService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** *

* 服务实现类 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-03-11 03:02:58 */ @Service public class ProductOrderPlanServiceImpl extends ServiceImpl implements ProductOrderPlanService { @Autowired private ProductOrderPlanMapper productOrderPlanMapper; @Autowired private ProductionPlanMapper productionPlanMapper; @Autowired private ProductOrderMapper productOrderMapper; @Autowired private ProductionProductMainMapper productionProductMainMapper; @Override public TrackDto trackProgressByNo(String applyNo) { TrackDto trackDto = new TrackDto(); //生产计划数据 ProductionPlanDto planDto = new ProductionPlanDto(); planDto.setApplyNo(applyNo); ProductionPlanDto productionPlanDto = productionPlanMapper.listPage(new Page(1, -1), planDto).getRecords().get(0); trackDto.setProductionPlanDto(productionPlanDto); //生产订单数据 List orderDtos = listByApplyNo(productionPlanDto); trackDto.setOrderDtoList(orderDtos); return trackDto; } private List listByApplyNo(ProductionPlanDto productionPlanDto) { List orderDtos = new ArrayList<>(); //1.先查询该生产计划下所有关联的生产订单 List productOrderPlans = productOrderPlanMapper.selectList(Wrappers.lambdaQuery() .eq(ProductOrderPlan::getProductionPlanId, productionPlanDto.getId())); if (CollectionUtils.isEmpty(productOrderPlans)){ return null; } productOrderPlans.forEach(productOrderPlan -> { OrderDto orderDto = new OrderDto(); //生产订单信息 ProductOrderDto productOrderDto=productOrderMapper.getProductOrderDto(productOrderPlan.getProductOrderId()); orderDto.setProductOrderDto(productOrderDto); //报工详情 List productionProductMains = productionProductMainMapper.selectList(Wrappers.lambdaQuery() .eq(ProductionProductMain::getProductOrderId, productOrderPlan.getProductOrderId()) .orderByAsc(ProductionProductMain::getReportingTime)); orderDto.setProductionProductMains(productionProductMains); orderDtos.add(orderDto); }); return orderDtos; } }