From b999398ae9b2719d2db15716dd353f7a3855d59e Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期一, 07 四月 2025 17:33:55 +0800
Subject: [PATCH] Merge branch 'radio_frequency' of http://114.132.189.42:9002/r/lims-ruoyi-after into radio_frequency
---
ruoyi-admin/src/main/resources/application-test.yml | 16 ++--
basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java | 8 +-
ruoyi-system/src/main/resources/mapper/system/UserMapper.xml | 3
basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml | 58 +++++++++-----
basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java | 30 ++++++
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java | 80 ++++++++++---------
6 files changed, 119 insertions(+), 76 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java b/basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java
index 298b820..e425cb6 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java
@@ -18,9 +18,7 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@@ -37,6 +35,9 @@
private final StandardTemplateService standardTemplateService;
+ // 鏂板锛氬唴瀛樺幓閲嶉泦鍚堬紙璁板綍鍞竴閿級
+ private Set<String> uniqueKeys = new HashSet<>();
+
public MultiSheetImportListener(StructureItemParameterService parameterService, StandardTemplateService standardTemplateService,
ISysDictTypeService dictTypeService) {
this.parameterService = parameterService;
@@ -47,6 +48,18 @@
@Override
public void invoke(StructureItemParameter data, AnalysisContext context) {
+
+ String uniqueKey = buildUniqueKey(data);
+ if (uniqueKeys.contains(uniqueKey)) {
+ log.warn("鍙戠幇閲嶅鏁版嵁锛屽凡璺宠繃: {} (Sheet: {}, 琛屽彿: {})",
+ uniqueKey,
+ currentSheetName,
+ context.readRowHolder().getRowIndex() + 1
+ );
+ return;
+ }
+ uniqueKeys.add(uniqueKey);
+
data.setId(null);
// 娴嬭瘯瀵硅薄
if (data.getSample() == null) {
@@ -217,4 +230,15 @@
// 鎵撳嵃瀹屾暣閿欒鍫嗘爤锛堣皟璇曟椂寮�鍚級
log.error("Sheet[{}] 绗瑊}琛岀{}鍒楄В鏋愬け璐�: {}", sheetName, rowIndex, columnIndex, errorMsg);
}
+
+ private String buildUniqueKey(StructureItemParameter data) {
+ return String.join("|",
+ ObjectUtils.defaultIfNull(data.getInspectionItem(), ""),
+ ObjectUtils.defaultIfNull(data.getInspectionItemEn(),""),
+ ObjectUtils.defaultIfNull(data.getProduct(),""),
+ ObjectUtils.defaultIfNull(data.getInspectionItemSubclass(), ""),
+ ObjectUtils.defaultIfNull(data.getSample(), ""),
+ ObjectUtils.defaultIfNull(data.getInspectionItemClass(), "")
+ );
+ }
}
\ No newline at end of file
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
index c8b730b..3490bf4 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
@@ -197,12 +197,12 @@
@Override
public List<Model> getProductTypes(ModelDto modelDto) {
- return modelMapper.selectList(Wrappers.<Model>lambdaQuery().eq(Model::getProductId,modelDto.getProductId()));
+ return modelMapper.selectList(Wrappers.<Model>lambdaQuery().eq(Model::getProductId, modelDto.getProductId()));
}
@Override
public List<ProductPart> getPartNoList(ProductPartDto productPartDto) {
- return productPartMapper.selectList(Wrappers.<ProductPart>lambdaQuery().eq(ProductPart::getProductId,productPartDto.getProductId()));
+ return productPartMapper.selectList(Wrappers.<ProductPart>lambdaQuery().eq(ProductPart::getProductId, productPartDto.getProductId()));
}
@Transactional(rollbackFor = Exception.class)
@@ -379,7 +379,7 @@
List<StructureTestObject> insertedObjects) {
insertedObjects.forEach(obj -> {
- String key = obj.getSpecimenName() + "|" + obj.getSpecimenNameEn()+ "|" + obj.getObjectType();
+ String key = obj.getSpecimenName() + "|" + obj.getSpecimenNameEn() + "|" + obj.getObjectType();
existStructureTestObjects.get(key).setId(obj.getId()); // 鏇存柊缂撳瓨涓殑ID
});
}
@@ -393,7 +393,7 @@
// 闃舵5鍘熸湁浜у搧澶勭悊閫昏緫杩佺Щ鑷虫
pendingProducts.forEach(i -> {
- String specimenKey = i.getSpecimenName() + "|" + i.getSpecimenNameEn()+ "|" + i.getObjectType();
+ String specimenKey = i.getSpecimenName() + "|" + i.getSpecimenNameEn() + "|" + i.getObjectType();
StructureTestObject sto = structureTestObjectCache.get(specimenKey);
processProductData(
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 3f60b21..ffab8ea 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(testObjectModelMap.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())
)
)
);
@@ -178,7 +178,7 @@
}
}
workShopTreeDto.setChildren(testObjectChildren);
- if(!CollectionUtils.isEmpty(testObjectChildren)){
+ if (!CollectionUtils.isEmpty(testObjectChildren)) {
workShopTreeDtoList.add(workShopTreeDto);
}
}
@@ -201,7 +201,7 @@
return laboratoryTreeDto;
}).collect(Collectors.toList());
List<BasicTreeDto> factoryList = new ArrayList<>();
- factoryList.add(new BasicTreeDto(BasicTreeEnums.FACTORY_TYPE.getCode(),"涓ぉ绉戞妧","1",laboratoryTreeDtoList));
+ factoryList.add(new BasicTreeDto(BasicTreeEnums.FACTORY_TYPE.getCode(), "涓ぉ绉戞妧", "1", laboratoryTreeDtoList));
return factoryList;
}
@@ -210,27 +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();
// 鍚嶇О閲嶅鎬ф�ф牎楠�
QueryWrapper<Model> modelQueryWrapper = new QueryWrapper<>();
- if(BasicTreeEnums.PRODUCT_TYPE.getCode().equals(parentLevel)){
+ 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)){
+ } 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 {
+ } else {
throw new RuntimeException("鍨嬪彿鍙兘缁戝畾瀵硅薄鍜屼骇鍝�");
}
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);
@@ -238,8 +238,8 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public int delStandardTree(String level,String id) {
- if(BasicTreeEnums.MODEL_TYPE.getCode().equals(level)){
+ public int delStandardTree(String level, String id) {
+ if (BasicTreeEnums.MODEL_TYPE.getCode().equals(level)) {
modelMapper.deleteById(id);
}
return 1;
@@ -262,21 +262,21 @@
basicTreeDto.setValue(model.getModelName());
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(testObjectModelMap.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);
}
}
@@ -296,8 +296,8 @@
// 瀵规娴嬪璞″厛鎸夌収瀹為獙瀹ゅ湪鎸夌収妫�鏌ュ璞$被鍒垎绫�
List<BasicTreeDto> testProjectBasicTreeList = structureTestObjectList.stream().map(structureTestObject -> {
BasicTreeDto basicTreeDto = new BasicTreeDto();
- basicTreeDto.setValue(structureTestObject.getSpecimenName());
- basicTreeDto.setLabel(structureTestObject.getSpecimenName());
+ basicTreeDto.setValue(structureTestObject.getSpecimenName() + "(" + structureTestObject.getObjectType() + ")");
+ 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()))) {
@@ -339,6 +339,7 @@
/**
* 娌冲彛妫�娴嬩腑蹇冨鍏�
+ *
* @param file
*/
@Override
@@ -618,37 +619,38 @@
/**
* 淇敼鏍囧噯鏁�
+ *
* @param modelAddDto
* @return
*/
@Override
public int updateStandardTree(ModelAddDto modelAddDto) {
- if(modelAddDto.getId() == null){
+ if (modelAddDto.getId() == null) {
throw new RuntimeException("缂哄皯鍨嬪彿涓婚敭");
}
Model model = modelMapper.selectById(modelAddDto.getId());
- if(ObjectUtils.isEmpty(model)){
+ if (ObjectUtils.isEmpty(model)) {
throw new RuntimeException("鍨嬪彿鏌ユ壘澶辫触");
}
QueryWrapper<Model> modelQueryWrapper = new QueryWrapper<>();
- if(model.getStructureTestObjectId() != null){
+ if (model.getStructureTestObjectId() != null) {
modelQueryWrapper.eq("structure_test_object_id", model.getStructureTestObjectId());
}
- if(model.getProductId() != null){
+ 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)){
+ if (CollectionUtils.isEmpty(modelList)) {
return modelMapper.updateById(model);
- }else if (modelList.size() == 1) {
- if( !model.getId().equals(modelList.get(0).getId())){
+ } else if (modelList.size() == 1) {
+ if (!model.getId().equals(modelList.get(0).getId())) {
throw new RuntimeException("鍨嬪彿鍚嶇О閲嶅");
- }else {
+ } else {
return modelMapper.updateById(model);
}
- }else {
+ } else {
throw new RuntimeException("鍨嬪彿鍚嶇О閲嶅");
}
}
diff --git a/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml b/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
index ae4ba83..bf8a74d 100644
--- a/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
+++ b/basic-server/src/main/resources/mapper/StructureItemParameterMapper.xml
@@ -145,28 +145,46 @@
<result property="name" column="subclass"/>
</resultMap>
<select id="getInsProduction" resultMap="getInsProductions">
- select distinct id,
- CASE
- WHEN INSTR(sample, ',') > 0 THEN
- SUBSTRING_INDEX(SUBSTRING_INDEX(sample, '","', 1), '"', -1)
- when sample = '[""]' then '*'
- ELSE
- TRIM(BOTH '["]' FROM SUBSTRING_INDEX(REPLACE(sample, '[["', ''), '"]]', 1))
- END
- as sample,
- inspection_item,
- case
- when inspection_item_subclass is null or inspection_item_subclass = '' then inspection_item
- else inspection_item_subclass end as subclass,
- case
- when inspection_item_class is null or inspection_item_class = '' then inspection_item
- else inspection_item_class end as item_class
- from structure_item_parameter
+ SELECT DISTINCT
+ id,
+ CASE
+ WHEN INSTR(sample, ',') > 0 THEN
+ TRIM(BOTH '"' FROM SUBSTRING_INDEX(SUBSTRING_INDEX(sample, '","', - 1), '"]]', 1))
+ WHEN sample = '[""]' THEN
+ '*'
+ ELSE
+ TRIM(BOTH '["]' FROM SUBSTRING_INDEX(REPLACE(sample, '[["', ''), '"]]', 1))
+ END AS sample,
+ inspection_item,
+ CASE
+ WHEN inspection_item_subclass IS NULL
+ OR TRIM(inspection_item_subclass) = '' THEN
+ inspection_item
+ ELSE
+ inspection_item_subclass
+ END AS subclass,
+ CASE
+ WHEN inspection_item_class IS NULL
+ OR TRIM(inspection_item_class) = '' THEN
+ inspection_item
+ ELSE
+ inspection_item_class
+ END AS item_class
+ FROM
+ structure_item_parameter;
</select>
<select id="getItemTree" resultMap="itemDto">
- select sto.id sId, sto.specimen_name sName, p.id pId, p.name pName
- from structure_test_object sto
- left join product p on p.object_id = sto.id
+ SELECT
+ sto.id AS sId,
+ CONCAT(sto.specimen_name, ' (', sto.object_type, ')') AS sName,
+ p.id AS pId,
+ p.name AS pName,
+ sto.object_type
+ FROM
+ structure_test_object sto
+ LEFT JOIN
+ product p
+ ON p.object_id = sto.id;
</select>
<resultMap id="itemDto" type="com.ruoyi.basic.dto.TestItemDto">
diff --git a/ruoyi-admin/src/main/resources/application-test.yml b/ruoyi-admin/src/main/resources/application-test.yml
index 72465d6..d7c8033 100644
--- a/ruoyi-admin/src/main/resources/application-test.yml
+++ b/ruoyi-admin/src/main/resources/application-test.yml
@@ -143,16 +143,16 @@
# 浜轰簨绯荤粺
personnel:
# 姝e紡鍦板潃
- code:
+ code: https://ztt-sso.ztt.cn/oauth2/token
# 瑁呭浜轰簨姝e紡搴�
- appId:
- appSecret:
- companies:
- simple:
+ appId: f6f3d70f-3666-4d3d-b9c5-430de3f6007c
+ appSecret: a18923496542302066b0a7bec993a4e2
+ companies: https://ztt-connector.ztt.cn/api/org/v1/companies
+ simple: https://ztt-connector.ztt.cn/api/org/v1/employees/simple?companyId=
# 浜哄憳瀵嗙爜鑾峰彇
- password:
- department:
- person:
+ password: https://ztt-connector.ztt.cn/api/org/v1/employees/original_pwd/
+ department: https://ztt-connector.ztt.cn/api/org/v1/companies/companyId/departments
+ person: https://ztt-connector.ztt.cn/api/org/v1/employees/simple/
ifs:
contract:
diff --git a/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml
index 8c743c8..ed96594 100644
--- a/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml
@@ -24,8 +24,7 @@
company,
is_custom
from user
- where del_flag = '0'
- and id != ) a
+ where del_flag = '0') a
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
--
Gitblit v1.9.3