From e2c5017787d7fc5eea2afb8bc84bca0db054ad8c Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期三, 09 四月 2025 17:46:36 +0800
Subject: [PATCH] Merge branch 'radio_frequency' of http://114.132.189.42:9002/r/lims-ruoyi-after into radio_frequency
---
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java | 222 +++++++++++++++++++++++++++++++++++--------------------
1 files changed, 140 insertions(+), 82 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..316c627 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
@@ -542,15 +600,19 @@
List<StructureTestObject> testObjects = new ArrayList<>();
for (FactoryDto factoryDto : list) {
for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) {
- List<SampleTypeDto> children = laboratoryDto.getChildren();
- int sort = 0;
- // 寰幆绗笁灞�
- for (SampleTypeDto child : children) {
- StructureTestObject structureTestObject = new StructureTestObject();
- structureTestObject.setSort(sort);
- structureTestObject.setId(child.getSampleTypeId());
- testObjects.add(structureTestObject);
- sort++;
+ for (ObjectTypeDto objectTypeDto : laboratoryDto.getChildren()) {
+ for (WorkShopNameDto workShopNameDto:objectTypeDto.getChildren()) {
+ List<SampleTypeDto> children = workShopNameDto.getChildren();
+ int sort = 0;
+
+ for (SampleTypeDto child : children) {
+ StructureTestObject structureTestObject = new StructureTestObject();
+ structureTestObject.setSort(sort);
+ structureTestObject.setId(child.getSampleTypeId());
+ testObjects.add(structureTestObject);
+ sort++;
+ }
+ }
}
}
}
@@ -561,44 +623,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