| | |
| | | if(isSplitOrder){ |
| | | ifsInventoryQuantity.setIsSplitOrder(1); |
| | | } |
| | | //todo:不清楚用途,暂时屏蔽掉 |
| | | // 查询产业链检测数据 |
| | | // String industryChainAttrFields = IndustryChainUtils.getIndustryChainAttrFields(ifsInventoryQuantity.getOrderNo(), |
| | | // ifsInventoryQuantity.getLineNo(), |
| | | // ifsInventoryQuantity.getReleaseNo()); |
| | | // ifsInventoryQuantity.setIndustryChain(industryChainAttrFields); |
| | | |
| | | ifsInventoryQuantityMapper.insert(ifsInventoryQuantity); |
| | | } |
| | | } |
| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Boolean updateInsOrder(InsOrderUpdateDto insOrderUpdateDto) { |
| | | InsOrder currentOrder = insOrderMapper.selectById(insOrderUpdateDto.getInsOrder().getId()); |
| | | if (currentOrder == null || !Objects.equals(currentOrder.getState(), 2)) { |
| | | throw new ErrorException("只有退回的检验单可以修改"); |
| | | } |
| | | boolean hasSelectedProduct = CollectionUtils.isNotEmpty(insOrderUpdateDto.getSampleProduct()) |
| | | && insOrderUpdateDto.getSampleProduct().stream() |
| | | .filter(sample -> CollectionUtils.isNotEmpty(sample.getInsProduct())) |
| | | .flatMap(sample -> sample.getInsProduct().stream()) |
| | | .anyMatch(product -> Objects.equals(product.getState(), 1)); |
| | | if (!hasSelectedProduct) { |
| | | throw new ErrorException("请至少选择一个检验项"); |
| | | } |
| | | |
| | | // 修改订单 |
| | | insOrderUpdateDto.getInsOrder().setState(0); |
| | | insOrderUpdateDto.getInsOrder().setTell(""); |
| | |
| | | |
| | | // 修改检验项 |
| | | for (SampleProductDto sampleProductDto : insOrderUpdateDto.getSampleProduct()) { |
| | | Long sampleCount = insSampleMapper.selectCount(Wrappers.<InsSample>lambdaQuery() |
| | | .eq(InsSample::getId, sampleProductDto.getId()) |
| | | .eq(InsSample::getInsOrderId, insOrderUpdateDto.getInsOrder().getId())); |
| | | if (sampleCount == 0) { |
| | | throw new ErrorException("检验样品数据异常"); |
| | | } |
| | | |
| | | insSampleService.update(Wrappers.<InsSample>lambdaUpdate() |
| | | .eq(InsSample::getId, sampleProductDto.getId()) |
| | | .set(InsSample::getSpecialStandardMethod, sampleProductDto.getSpecialStandardMethod())); |
| | | |
| | | insProductService.updateBatchById(sampleProductDto.getInsProduct()); |
| | | List<InsProduct> products = sampleProductDto.getInsProduct(); |
| | | if (CollectionUtils.isEmpty(products)) { |
| | | continue; |
| | | } |
| | | |
| | | Set<Integer> productIds = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() |
| | | .eq(InsProduct::getInsSampleId, sampleProductDto.getId())) |
| | | .stream() |
| | | .map(InsProduct::getId) |
| | | .collect(Collectors.toSet()); |
| | | if (products.stream().anyMatch(product -> product.getId() != null && !productIds.contains(product.getId()))) { |
| | | throw new ErrorException("检验项数据异常"); |
| | | } |
| | | |
| | | List<Integer> removedIds = products.stream() |
| | | .filter(product -> product.getId() != null && !Objects.equals(product.getState(), 1)) |
| | | .map(InsProduct::getId) |
| | | .collect(Collectors.toList()); |
| | | if (CollectionUtils.isNotEmpty(removedIds)) { |
| | | insProductService.removeByIds(removedIds); |
| | | } |
| | | |
| | | List<InsProduct> existingProducts = products.stream() |
| | | .filter(product -> product.getId() != null && Objects.equals(product.getState(), 1)) |
| | | .collect(Collectors.toList()); |
| | | if (CollectionUtils.isNotEmpty(existingProducts)) { |
| | | insProductService.updateBatchById(existingProducts); |
| | | } |
| | | |
| | | List<InsProduct> newProducts = products.stream() |
| | | .filter(product -> product.getId() == null && Objects.equals(product.getState(), 1)) |
| | | .collect(Collectors.toList()); |
| | | addInsProductMethod(sampleProductDto.getId(), newProducts); |
| | | } |
| | | |
| | | return true; |