From 54f3f9d6c99f6890c39ff05b1e251a555709341a Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期二, 08 四月 2025 11:55:36 +0800 Subject: [PATCH] 1.原辅料下单 2.检验对象选择 --- basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java | 200 +++++++++++++++++++++++++++++++------------------ 1 files changed, 127 insertions(+), 73 deletions(-) diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java index 2752eb5..d8f0dea 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java +++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java @@ -81,21 +81,21 @@ basicTreeDto.setValue(String.valueOf(model.getId())); basicTreeDto.setLabel(model.getModelName()); basicTreeDto.setChildren(null); - if(model.getProductId() != null) { - if(CollectionUtils.isEmpty(productModelMap.get(model.getProductId()))){ + if (model.getProductId() != null) { + if (CollectionUtils.isEmpty(productModelMap.get(model.getProductId()))) { List<BasicTreeDto> basicTreeDtoList = new ArrayList<>(); basicTreeDtoList.add(basicTreeDto); - productModelMap.put(model.getProductId(),basicTreeDtoList); - }else { + productModelMap.put(model.getProductId(), basicTreeDtoList); + } else { productModelMap.get(model.getProductId()).add(basicTreeDto); } } - if(model.getStructureTestObjectId() != null) { - if(CollectionUtils.isEmpty(productModelMap.get(model.getStructureTestObjectId()))){ + if (model.getStructureTestObjectId() != null) { + if (CollectionUtils.isEmpty(testObjectModelMap.get(model.getStructureTestObjectId()))) { List<BasicTreeDto> basicTreeDtoList = new ArrayList<>(); basicTreeDtoList.add(basicTreeDto); - testObjectModelMap.put(model.getStructureTestObjectId(),basicTreeDtoList); - }else { + testObjectModelMap.put(model.getStructureTestObjectId(), basicTreeDtoList); + } else { testObjectModelMap.get(model.getStructureTestObjectId()).add(basicTreeDto); } } @@ -122,15 +122,15 @@ StructureTestObjectDto structureTestObjectDto = new StructureTestObjectDto(); BeanUtils.copyProperties(structureTestObject, structureTestObjectDto); List<BasicTreeDto> children = new ArrayList<>(); - if(!CollectionUtils.isEmpty(productMap.get(structureTestObject.getId()))){ + if (!CollectionUtils.isEmpty(productMap.get(structureTestObject.getId()))) { children.addAll(productMap.get(structureTestObject.getId())); } - if(!CollectionUtils.isEmpty(testObjectModelMap.get(structureTestObject.getId()))){ + if (!CollectionUtils.isEmpty(testObjectModelMap.get(structureTestObject.getId()))) { children.addAll(testObjectModelMap.get(structureTestObject.getId())); } structureTestObjectDto.setChildren(children); return structureTestObjectDto; - },Collectors.toList()) + }, Collectors.toList()) ) ) ); @@ -152,13 +152,13 @@ BasicTreeDto objectTypeBasicTreeDto = new BasicTreeDto(); objectTypeBasicTreeDto.setValue(objectType); objectTypeBasicTreeDto.setLevel(BasicTreeEnums.MATERIAL_TYPE.getCode()); - objectTypeBasicTreeDto.setLabel(TestPorjectTypeEnums.getNameByCode(objectType)); + objectTypeBasicTreeDto.setLabel(objectType); List<StructureTestObjectDto> structureTestObjectTypeList = objectTypeMap.get(objectType); if (CollectionUtils.isEmpty(structureTestObjectTypeList)) { continue; } // 灏佽杞﹂棿鏍� - if (objectType.equals("1") || objectType.equals("5")) { + if (objectType.equals(TestPorjectTypeEnums.RAW_MATERIALS.getName()) || objectType.equals(TestPorjectTypeEnums.PACKAGING_MATERIALS.getName())) { List<BasicTreeDto> workShopTreeDtoList = new ArrayList<>(); for (WorkShop workShop : workShopList) { BasicTreeDto workShopTreeDto = new BasicTreeDto(); @@ -178,14 +178,14 @@ } } workShopTreeDto.setChildren(testObjectChildren); - if(!CollectionUtils.isEmpty(testObjectChildren)){ + if (!CollectionUtils.isEmpty(testObjectChildren)) { workShopTreeDtoList.add(workShopTreeDto); } } objectTypeBasicTreeDto.setChildren(workShopTreeDtoList); } // 灏佽妫�娴嬪璞℃爲 - if (objectType.equals("2") || objectType.equals("3") || objectType.equals("4")) { + if (objectType.equals(TestPorjectTypeEnums.FINISHED_PRODUCT.getName()) || objectType.equals(TestPorjectTypeEnums.SEMI_FINISHED_PRODUCT.getName()) || objectType.equals(TestPorjectTypeEnums.PURCHASED_PART.getName())) { objectTypeBasicTreeDto.setChildren(structureTestObjectTypeList.stream().map(structureTestObjectDto -> { BasicTreeDto testObjectBasicTreeDto = new BasicTreeDto(BasicTreeEnums.STRUCTURE_TEST_OBJECT_TYPE.getCode(), structureTestObjectDto.getSpecimenName(), @@ -201,8 +201,8 @@ return laboratoryTreeDto; }).collect(Collectors.toList()); List<BasicTreeDto> factoryList = new ArrayList<>(); - factoryList.add(new BasicTreeDto(BasicTreeEnums.FACTORY_TYPE.getCode(),"涓ぉ绉戞妧","1",laboratoryTreeDtoList)); - return laboratoryTreeDtoList; + factoryList.add(new BasicTreeDto(BasicTreeEnums.FACTORY_TYPE.getCode(), "涓ぉ绉戞妧", "1", laboratoryTreeDtoList)); + return factoryList; } @@ -210,25 +210,27 @@ @Transactional(rollbackFor = Exception.class) public int addStandardTree(ModelAddDto modelAddDto) { // 鏍¢獙 - if(StringUtils.isEmpty(modelAddDto.getParentId())){ + if (StringUtils.isEmpty(modelAddDto.getParentId())) { throw new RuntimeException("缂哄皯鐖跺眰绾х粦瀹氬叧绯�"); } Model model = new Model(); String parentLevel = modelAddDto.getParentLevel(); - if(BasicTreeEnums.PRODUCT_TYPE.getCode().equals(parentLevel)){ - model.setProductId(Integer.valueOf(parentLevel)); - }else if(BasicTreeEnums.STRUCTURE_TEST_OBJECT_TYPE.getCode().equals(parentLevel)){ - model.setStructureTestObjectId(Integer.valueOf(parentLevel)); - }else { + // 鍚嶇О閲嶅鎬ф�ф牎楠� + QueryWrapper<Model> modelQueryWrapper = new QueryWrapper<>(); + if (BasicTreeEnums.PRODUCT_TYPE.getCode().equals(parentLevel)) { + model.setProductId(Integer.valueOf(modelAddDto.getParentId())); + modelQueryWrapper.eq("product_id", model.getProductId()); + } else if (BasicTreeEnums.STRUCTURE_TEST_OBJECT_TYPE.getCode().equals(parentLevel)) { + model.setStructureTestObjectId(Integer.valueOf(modelAddDto.getParentId())); + modelQueryWrapper.eq("structure_test_object_id", model.getStructureTestObjectId()); + } else { throw new RuntimeException("鍨嬪彿鍙兘缁戝畾瀵硅薄鍜屼骇鍝�"); } - // 鍚嶇О閲嶈鎬ф牎楠� - QueryWrapper<Model> modelQueryWrapper = new QueryWrapper<>(); - modelQueryWrapper.eq("product_id", model.getProductId()); - modelQueryWrapper.eq("structure_test_object_id", model.getStructureTestObjectId()); + model.setModelName(modelAddDto.getModelName()); modelQueryWrapper.eq("model_name", model.getModelName()); Model modelResult = modelMapper.selectOne(modelQueryWrapper); - if(ObjectUtils.isNotEmpty(modelResult)){ + + if (ObjectUtils.isNotEmpty(modelResult)) { throw new RuntimeException("璇峰嬁娣诲姞閲嶅鍨嬪彿"); } return modelMapper.insert(model); @@ -236,23 +238,78 @@ @Override @Transactional(rollbackFor = Exception.class) - public int delStandardTree(String tree) { - String[] trees = tree.split(" - "); - switch (trees.length) { - case 5: - if (trees[3].equals("null")) { - standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).isNull(StandardTree::getSample).eq(StandardTree::getModel, trees[4])); - } else { - standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]).eq(StandardTree::getModel, trees[4])); - } - break; + public int delStandardTree(String level, String id) { + if (BasicTreeEnums.MODEL_TYPE.getCode().equals(level)) { + modelMapper.deleteById(id); } return 1; } @Override - public List<SampleTypeDto> getStandardTree2() { - return standardTreeMapper.getStandardTree2(); + public List<BasicTreeDto> getStandardTree2() { + // 鏌ヨ鎵�鏈夋鏌ュ璞� + List<StructureTestObject> structureTestObjectList = structureTestObjectMapper.selectList(new QueryWrapper<StructureTestObject>()); + // 鏌ヨ鎵�鏈変骇鍝� + List<Product> productList = productMapper.selectList(new LambdaQueryWrapper<Product>()); + // 鏌ヨ鎵�鏈夊瀷鍙� + List<Model> modelList = modelMapper.selectList(new QueryWrapper<Model>()); + // 鎸夌収褰掑睘浜у搧id杩樻槸褰掑睘妫�娴嬪璞d灏嗗瀷鍙峰垎缁勫苟缁勮鎴怋asicTreeDto + Map<Integer, List<BasicTreeDto>> productModelMap = new HashMap<>(); + Map<Integer, List<BasicTreeDto>> testObjectModelMap = new HashMap<>(); + for (Model model : modelList) { + BasicTreeDto basicTreeDto = new BasicTreeDto(); + basicTreeDto.setLevel(BasicTreeEnums.MODEL_TYPE.getCode()); + basicTreeDto.setValue(model.getModelName()); + basicTreeDto.setLabel(model.getModelName()); + basicTreeDto.setChildren(null); + if (model.getProductId() != null) { + if (CollectionUtils.isEmpty(productModelMap.get(model.getProductId()))) { + List<BasicTreeDto> basicTreeDtoList = new ArrayList<>(); + basicTreeDtoList.add(basicTreeDto); + productModelMap.put(model.getProductId(), basicTreeDtoList); + } else { + productModelMap.get(model.getProductId()).add(basicTreeDto); + } + } + if (model.getStructureTestObjectId() != null) { + if (CollectionUtils.isEmpty(testObjectModelMap.get(model.getStructureTestObjectId()))) { + List<BasicTreeDto> basicTreeDtoList = new ArrayList<>(); + basicTreeDtoList.add(basicTreeDto); + testObjectModelMap.put(model.getStructureTestObjectId(), basicTreeDtoList); + } else { + testObjectModelMap.get(model.getStructureTestObjectId()).add(basicTreeDto); + } + } + } + // 鎸夌収妫�娴嬪璞d灏嗕骇鍝佸垎缁勫苟缁勮鎴怋asicTreeDto + Map<Integer, List<BasicTreeDto>> productMap = productList.stream().collect(Collectors.groupingBy( + Product::getObjectId, + Collectors.mapping(product -> { + BasicTreeDto basicTreeDto = new BasicTreeDto(); + basicTreeDto.setValue(product.getName()); + basicTreeDto.setLabel(product.getName()); + basicTreeDto.setLevel(BasicTreeEnums.PRODUCT_TYPE.getCode()); + basicTreeDto.setChildren(productModelMap.get(product.getId())); + return basicTreeDto; + }, Collectors.toList()) + )); + // 瀵规娴嬪璞″厛鎸夌収瀹為獙瀹ゅ湪鎸夌収妫�鏌ュ璞$被鍒垎绫� + List<BasicTreeDto> testProjectBasicTreeList = structureTestObjectList.stream().map(structureTestObject -> { + BasicTreeDto basicTreeDto = new BasicTreeDto(); + basicTreeDto.setValue(structureTestObject.getSpecimenName()); + basicTreeDto.setLabel(structureTestObject.getSpecimenName() + "(" + structureTestObject.getObjectType() + ")"); + basicTreeDto.setLevel(BasicTreeEnums.STRUCTURE_TEST_OBJECT_TYPE.getCode()); + List<BasicTreeDto> children = new ArrayList<>(); + if (!CollectionUtils.isEmpty(productMap.get(structureTestObject.getId()))) { + children.addAll(productMap.get(structureTestObject.getId())); + } + if (!CollectionUtils.isEmpty(testObjectModelMap.get(structureTestObject.getId()))) { + children.addAll(testObjectModelMap.get(structureTestObject.getId())); + } + basicTreeDto.setChildren(children); + return basicTreeDto; + }).collect(Collectors.toList()); + return testProjectBasicTreeList; } @Override @@ -282,6 +339,7 @@ /** * 娌冲彛妫�娴嬩腑蹇冨鍏� + * * @param file */ @Override @@ -561,44 +619,40 @@ /** * 淇敼鏍囧噯鏁� - * @param standardTree + * + * @param modelAddDto * @return */ @Override - public int updateStandardTree(StandardTree standardTree) { - // 淇敼鍚嶇О鍖归厤鐨勬爣鍑嗘爲涓嬬殑妫�楠岄」鐩� - // 鏌ヨ鎵�鏈夊璞�+鍚嶇О鐨勬爲 - - List<StandardProductList> standardProductLists = standardProductListService.list(Wrappers.<StandardProductList>lambdaUpdate() - .eq(StandardProductList::getSample, standardTree.getSample()) - .eq(StandardProductList::getSampleType, standardTree.getSampleType()) - .eq(StandardProductList::getModel, standardTree.getOldModel())); - if (!CollectionUtils.isEmpty(standardProductLists)) { - for (StandardProductList standardProductList : standardProductLists) { - // 淇敼鏍峰搧鍚嶇О - standardProductList.setModel(standardTree.getModel()); - // 淇敼鏍戝悕绉� - // 闇�瑕佹埅鍙栫鍥涚骇, 閬垮厤涓夊洓绾у悕绉颁竴鏍蜂慨鏀归敊璇� - String[] trees = standardProductList.getTree().split(" - "); - trees[4] = standardTree.getModel(); - List<String> list = CollUtil.newArrayList(trees); - String newName = CollUtil.join(list, " - "); - standardProductList.setTree(newName); + public int updateStandardTree(ModelAddDto modelAddDto) { + if (modelAddDto.getId() == null) { + throw new RuntimeException("缂哄皯鍨嬪彿涓婚敭"); + } + Model model = modelMapper.selectById(modelAddDto.getId()); + if (ObjectUtils.isEmpty(model)) { + throw new RuntimeException("鍨嬪彿鏌ユ壘澶辫触"); + } + QueryWrapper<Model> modelQueryWrapper = new QueryWrapper<>(); + if (model.getStructureTestObjectId() != null) { + modelQueryWrapper.eq("structure_test_object_id", model.getStructureTestObjectId()); + } + if (model.getProductId() != null) { + modelQueryWrapper.eq("product_id", model.getProductId()); + } + modelQueryWrapper.eq("model_name", modelAddDto.getModelName()); + model.setModelName(modelAddDto.getModelName()); + List<Model> modelList = modelMapper.selectList(modelQueryWrapper); + if (CollectionUtils.isEmpty(modelList)) { + return modelMapper.updateById(model); + } else if (modelList.size() == 1) { + if (!model.getId().equals(modelList.get(0).getId())) { + throw new RuntimeException("鍨嬪彿鍚嶇О閲嶅"); + } else { + return modelMapper.updateById(model); } - standardProductListService.updateBatchById(standardProductLists); + } else { + throw new RuntimeException("鍨嬪彿鍚嶇О閲嶅"); } - - // 淇敼鏍囧噯鏁版楠岄」鐩� - LambdaUpdateWrapper<StandardTree> wrapper = Wrappers.<StandardTree>lambdaUpdate() - .eq(StandardTree::getFactory, standardTree.getFactory()) - .eq(StandardTree::getLaboratory, standardTree.getLaboratory()) - .eq(StandardTree::getSampleType, standardTree.getSampleType()) - .eq(StandardTree::getModel, standardTree.getOldModel()) - .set(StandardTree::getModel, standardTree.getModel()); - if (StringUtils.isNotBlank(standardTree.getSample())) { - wrapper.eq(StandardTree::getSample, standardTree.getSample()); - } - return standardTreeMapper.update(null, wrapper); } @Override -- Gitblit v1.9.3