| | |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | |
| | | private final FileUtil fileUtil; |
| | | |
| | | @Override |
| | | public com.baomidou.mybatisplus.core.metadata.IPage<ProductionOrderVo> pageProductionOrder(Page<ProductionOrderDto> page, ProductionOrderDto dto) { |
| | | public IPage<ProductionOrderVo> pageProductionOrder(Page<ProductionOrderDto> page, ProductionOrderDto dto) { |
| | | Page<ProductionOrderVo> result = (Page<ProductionOrderVo>) baseMapper.pageProductionOrder(page, dto); |
| | | fillProductImages(result.getRecords()); |
| | | return result; |
| | |
| | | if (defaultDecimal(productionOrder.getQuantity()).compareTo(BigDecimal.ZERO) <= 0) { |
| | | throw new ServiceException("quantity must be greater than 0"); |
| | | } |
| | | if (productionOrder.getTechnologyRoutingId() == null) { |
| | | // 未显式指定工艺路线时,按产品规格选最新一条工艺作为默认路线。 |
| | | TechnologyRouting technologyRouting = technologyRoutingMapper.selectOne( |
| | | Wrappers.<TechnologyRouting>lambdaQuery() |
| | | .eq(TechnologyRouting::getProductModelId, productionOrder.getProductModelId()) |
| | | .orderByDesc(TechnologyRouting::getId) |
| | | .last("limit 1")); |
| | | if (technologyRouting == null) { |
| | | throw new ServiceException("No technology routing found for the product model"); |
| | | } |
| | | productionOrder.setTechnologyRoutingId(technologyRouting.getId()); |
| | | } |
| | | // if (productionOrder.getTechnologyRoutingId() == null) { |
| | | // // 未显式指定工艺路线时,按产品规格选最新一条工艺作为默认路线。 |
| | | // TechnologyRouting technologyRouting = technologyRoutingMapper.selectOne( |
| | | // Wrappers.<TechnologyRouting>lambdaQuery() |
| | | // .eq(TechnologyRouting::getProductModelId, productionOrder.getProductModelId()) |
| | | // .orderByDesc(TechnologyRouting::getId) |
| | | // .last("limit 1")); |
| | | // if (technologyRouting == null) { |
| | | // throw new ServiceException("No technology routing found for the product model"); |
| | | // } |
| | | // productionOrder.setTechnologyRoutingId(technologyRouting.getId()); |
| | | // } |
| | | if (oldOrder != null && ProductOrderStatusEnum.isStarted(oldOrder.getStatus())) { |
| | | // 开工后只允许修正非核心字段,核心生产依据锁定。 |
| | | if (!Objects.equals(oldOrder.getProductModelId(), productionOrder.getProductModelId()) |