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;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author 芯导软件(江苏)有限公司
|
* @since 2026-03-11 03:02:58
|
*/
|
@Service
|
public class ProductOrderPlanServiceImpl extends ServiceImpl<ProductOrderPlanMapper, ProductOrderPlan> 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<OrderDto> orderDtos = listByApplyNo(productionPlanDto);
|
trackDto.setOrderDtoList(orderDtos);
|
return trackDto;
|
}
|
|
private List<OrderDto> listByApplyNo(ProductionPlanDto productionPlanDto) {
|
List<OrderDto> orderDtos = new ArrayList<>();
|
//1.先查询该生产计划下所有关联的生产订单
|
List<ProductOrderPlan> productOrderPlans = productOrderPlanMapper.selectList(Wrappers.<ProductOrderPlan>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<ProductionProductMain> productionProductMains = productionProductMainMapper.selectList(Wrappers.<ProductionProductMain>lambdaQuery()
|
.eq(ProductionProductMain::getProductOrderId, productOrderPlan.getProductOrderId())
|
.orderByAsc(ProductionProductMain::getReportingTime));
|
orderDto.setProductionProductMains(productionProductMains);
|
orderDtos.add(orderDto);
|
});
|
return orderDtos;
|
}
|
}
|