Commit 0d8c41f3 by zhangxingmin

push

parent 03e6d767
......@@ -75,43 +75,16 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
for (int i = 0; i < attributeSettingList.size(); i++) {
AttributeSetting dto = attributeSettingList.get(i);
// 首先尝试使用fieldValueBizId字段
String fieldValueBizId = dto.getFieldValueBizId();
if (StringUtils.isNotBlank(fieldValueBizId)) {
// 如果fieldValueBizId不为空,使用它
if (fieldValueBizId.contains(";")) {
// 多选情况
List<String> fieldValueBizIdList = Arrays.asList(fieldValueBizId.split(";"));
if (StringUtils.isNotBlank(dto.getFieldValueBizId())) {
if (dto.getFieldValueBizId().contains(";")) {
// 多选情况,多个字段值业务ID用分号分隔
List<String> fieldValueBizIdList = Arrays.asList(dto.getFieldValueBizId().split(";"));
allFieldValueBizIds.addAll(fieldValueBizIdList);
settingDtoToValueBizIdsMap.put(String.valueOf(i), fieldValueBizIdList);
} else {
// 单选情况
allFieldValueBizIds.add(fieldValueBizId);
settingDtoToValueBizIdsMap.put(String.valueOf(i), Collections.singletonList(fieldValueBizId));
}
} else if (StringUtils.isNotBlank(dto.getValue())) {
// 如果fieldValueBizId为空,但value不为空,检查value是否可能是字段值业务ID
// 这里需要根据业务规则判断,比如字段值业务ID的格式通常是"field_value_"开头
String value = dto.getValue();
if (value.contains(";")) {
// 多选情况
List<String> fieldValueBizIdList = Arrays.asList(value.split(";"));
// 过滤出可能是字段值业务ID的值
List<String> validFieldValueBizIds = fieldValueBizIdList.stream()
.filter(v -> v.startsWith("field_value_") || v.startsWith("insurance_company_") ||
v.startsWith("reconciliation_company_"))
.collect(Collectors.toList());
if (!validFieldValueBizIds.isEmpty()) {
allFieldValueBizIds.addAll(validFieldValueBizIds);
settingDtoToValueBizIdsMap.put(String.valueOf(i), validFieldValueBizIds);
}
} else if (value.startsWith("field_value_") || value.startsWith("insurance_company_") ||
value.startsWith("reconciliation_company_")) {
// 单选情况,且看起来像是字段值业务ID
allFieldValueBizIds.add(value);
settingDtoToValueBizIdsMap.put(String.valueOf(i), Collections.singletonList(value));
allFieldValueBizIds.add(dto.getFieldValueBizId());
settingDtoToValueBizIdsMap.put(String.valueOf(i), Collections.singletonList(dto.getFieldValueBizId()));
}
}
}
......@@ -140,11 +113,10 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
fieldValueBizIdToNameMap.put(response.getFieldValueBizId(), response.getValue());
// 如果fieldValueCode为空,则使用fieldValueBizId作为备用值
String fieldValueCode = StringUtils.isNotBlank(response.getFieldValueCode())
? response.getFieldValueCode()
: response.getFieldValueBizId();
fieldValueBizIdToCodeMap.put(response.getFieldValueBizId(), fieldValueCode);
// 如果fieldValueCode不为空,则放入映射表
if (StringUtils.isNotBlank(response.getFieldValueCode())) {
fieldValueBizIdToCodeMap.put(response.getFieldValueBizId(), response.getFieldValueCode());
}
}
log.info("字段值编码映射表: {}", fieldValueBizIdToCodeMap);
......@@ -179,14 +151,15 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
List<String> valueCodes = valueBizIds.stream()
.map(fieldValueBizId -> {
String code = finalFieldValueBizIdToCodeMap.get(fieldValueBizId);
return StringUtils.defaultIfBlank(code, fieldValueBizId);
// 如果查询不到字段值编码,就塞空字符串
return StringUtils.isNotBlank(code) ? code : "";
})
.collect(Collectors.toList());
settingDto.setValueCodes(StringUtils.join(valueCodes, ";"));
} else {
// 如果没有字段值业务ID,则使用原始值
settingDto.setValueNames(dto.getValue());
settingDto.setValueCodes(dto.getValue());
settingDto.setValueCodes("");
}
apiAttributeSettingDtoList.add(settingDto);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment