| | |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.dto.SimplePersonDto; |
| | | import com.ruoyi.production.dto.*; |
| | | import com.ruoyi.production.mapper.ProductOrderMapper; |
| | | import com.ruoyi.production.mapper.ProductionPrintOrderMapper; |
| | | import com.ruoyi.production.pojo.ProductOrder; |
| | | import com.ruoyi.production.pojo.ProductionPrintOrder; |
| | | import com.ruoyi.production.mapper.*; |
| | | import com.ruoyi.production.pojo.*; |
| | | import com.ruoyi.production.service.ProductBomService; |
| | | import com.ruoyi.production.service.ProductProcessRouteService; |
| | | import com.ruoyi.production.service.ProductProcessService; |
| | | import com.ruoyi.production.service.ProductionPrintOrderService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.jetbrains.annotations.Nullable; |
| | |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | private final ProductOrderMapper productOrderMapper; |
| | | private final ProcessRouteServiceImpl processRouteService; |
| | | private final ProductionPrintOrderExcel productionPrintOrderExcel; |
| | | private final ProductWorkOrderMapper productWorkOrderMapper; |
| | | private final ProductProcessRouteService productProcessRouteService; |
| | | private final ProductBomService productBomService; |
| | | |
| | | private final CustomerFollowUpFileService customerFollowUpFileService; |
| | | private final ProductProcessMapper productProcessMapper; |
| | | private final ProductProcessService productProcessService; |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void save(SaveProductionPrintOrderDto dto) { |
| | | Assert.isFalse(CollUtil.isEmpty(dto.getProcessContent()),"情至少添加一条工序信息"); |
| | | ProductionPrintOrder productionPrintOrder = BeanUtil.copyProperties(dto, ProductionPrintOrder.class); |
| | | |
| | | if(dto.getProductOrderId() != null){ |
| | | // 先删除生产工单数据 |
| | | LambdaQueryWrapper<ProductWorkOrder> l1 = new LambdaQueryWrapper<>(); |
| | | l1.eq(ProductWorkOrder::getProductOrderId,dto.getProductOrderId()); |
| | | productWorkOrderMapper.delete(l1); |
| | | LambdaQueryWrapper<ProductProcessRoute> l2 = new LambdaQueryWrapper<>(); |
| | | l2.eq(ProductProcessRoute::getProductOrderId,dto.getProductOrderId()); |
| | | List<ProductProcessRoute> needDeleteRoute = productProcessRouteService.list(l2); |
| | | List<Long> needDeleteRouteIds = needDeleteRoute.stream().map(ProductProcessRoute::getId).collect(Collectors.toList()); |
| | | if(CollUtil.isNotEmpty(needDeleteRouteIds)){ |
| | | productProcessRouteService.removeBatchByIds(needDeleteRouteIds); |
| | | List<Integer> needDeleteBom = needDeleteRoute.stream().map(ProductProcessRoute::getBomId).collect(Collectors.toList()); |
| | | productProcessRouteService.removeByIds(needDeleteBom); |
| | | } |
| | | } |
| | | List<ProcessContentDto> processContentDtoList = productionPrintOrder.getProcessContent(); |
| | | // 给没有id的信息设置uuid |
| | | processContentDtoList.forEach(processContentDto -> { |
| | |
| | | }); |
| | | MaterialInfoDto materialInfoDtoFirst = dto.getMaterialInfo().get(0); |
| | | // 调用工序方增 函数 |
| | | // 查询工序信息 |
| | | List<Long> processIds = dto.getProcessContent().stream().map(ProcessContentDto::getProcessId).collect(Collectors.toList()); |
| | | Map<Long, ProductProcess> productProcessMap = productProcessService.listByIds(processIds).stream().collect(Collectors.toMap(ProductProcess::getId, productProcess -> productProcess)); |
| | | List<ProcessRouteAnticlockwiseDto> processRouteAnticlockwiseDtos = processContentDtoList.stream().map(it -> { |
| | | ProcessRouteAnticlockwiseDto pdto = new ProcessRouteAnticlockwiseDto(); |
| | | pdto.setProcessId(it.getProcessId()); |
| | |
| | | pdto.setUserNames(it.getReportWorkerList().stream().map(SimplePersonDto::getUserName).collect(Collectors.joining(","))); |
| | | pdto.setDeviceId(it.getDeviceId()); |
| | | pdto.setUuid(it.getId()); |
| | | pdto.setProductProcess(productProcessMap.get(it.getProcessId())); |
| | | return pdto; |
| | | }).collect(Collectors.toList()); |
| | | |
| | |
| | | productOrder.setId(dto.getProductOrderId()); |
| | | productOrder.setRemark(remark); |
| | | productOrderMapper.updateById(productOrder); |
| | | int i = dto.getId() == null ? productionPrintOrderMapper.insert(productionPrintOrder) : productionPrintOrderMapper.updateById(productionPrintOrder); |
| | | |
| | | LambdaQueryWrapper<ProductionPrintOrder> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(ProductionPrintOrder::getProductOrderId,dto.getProductOrderId()); |
| | | queryWrapper.last("limit 1"); |
| | | ProductionPrintOrder ifExitPrint = productionPrintOrderMapper.selectOne(queryWrapper); |
| | | if (ifExitPrint == null) { |
| | | productionPrintOrder.setId(null); |
| | | productionPrintOrderMapper.insert(productionPrintOrder); |
| | | }else { |
| | | productionPrintOrder.setId(ifExitPrint.getId()); |
| | | productionPrintOrderMapper.updateById(productionPrintOrder); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |