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.dto.ProductionProductMainDto;
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(Long productionPlanId) {
TrackDto trackDto = new TrackDto();
//生产计划数据
ProductionPlanDto productionPlanDto=productionPlanMapper.selectProductionPlanDtoById(productionPlanId);
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 productionProductMainDtos = productionProductMainMapper.selectProductionProductMainDto(productOrderPlan.getProductOrderId());
orderDto.setProductionProductMainDtos(productionProductMainDtos);
orderDtos.add(orderDto);
});
return orderDtos;
}
}