fix: 优化逻辑
This commit is contained in:
parent
a3eac3a4ad
commit
0c11fade58
@ -258,10 +258,11 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean updateEngInfo(Map<String, Object> engInfoPatch, String source) throws JsonMappingException {
|
public boolean updateEngInfo(Map<String, Object> engInfoPatch, String source) throws JsonMappingException {
|
||||||
if (engInfoPatch == null || engInfoPatch.isEmpty()) {
|
Map<String, Object> filteredPatch = filterEngInfoPatchFields(engInfoPatch);
|
||||||
|
if (filteredPatch.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
String stcd = toTextValue(engInfoPatch.get("stcd"));
|
String stcd = toTextValue(filteredPatch.get("stcd"));
|
||||||
if (!StringUtils.hasText(stcd)) {
|
if (!StringUtils.hasText(stcd)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -270,9 +271,9 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
SdEngInfoBH after = BeanUtil.copyProperties(before, SdEngInfoBH.class);
|
SdEngInfoBH after = BeanUtil.copyProperties(before, SdEngInfoBH.class);
|
||||||
objectMapper.updateValue(after, engInfoPatch);
|
objectMapper.updateValue(after, filteredPatch);
|
||||||
fillRelatedNameFields(after);
|
fillRelatedNameFields(after);
|
||||||
boolean result = updateEngInfoByPatch(stcd, after, engInfoPatch);
|
boolean result = updateEngInfoByPatch(stcd, after, filteredPatch);
|
||||||
if (result) {
|
if (result) {
|
||||||
msOperationLogService.recordEngUpdateLog(before, after, source);
|
msOperationLogService.recordEngUpdateLog(before, after, source);
|
||||||
}
|
}
|
||||||
@ -431,6 +432,26 @@ public class SdEngInfoBHServiceImpl extends ServiceImpl<SdEngInfoBHMapper, SdEng
|
|||||||
return value == null ? null : String.valueOf(value);
|
return value == null ? null : String.valueOf(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<String, Object> filterEngInfoPatchFields(Map<String, Object> engInfoPatch) {
|
||||||
|
Map<String, Object> filteredPatch = new LinkedHashMap<>();
|
||||||
|
if (engInfoPatch == null || engInfoPatch.isEmpty()) {
|
||||||
|
return filteredPatch;
|
||||||
|
}
|
||||||
|
Set<String> validFieldNames = new HashSet<>();
|
||||||
|
for (Field field : SdEngInfoBH.class.getDeclaredFields()) {
|
||||||
|
if ("serialVersionUID".equals(field.getName())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
validFieldNames.add(field.getName());
|
||||||
|
}
|
||||||
|
for (Map.Entry<String, Object> entry : engInfoPatch.entrySet()) {
|
||||||
|
if (validFieldNames.contains(entry.getKey())) {
|
||||||
|
filteredPatch.put(entry.getKey(), entry.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filteredPatch;
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isLinkedNameFieldPatched(String fieldName, Map<String, Object> engInfoPatch) {
|
private boolean isLinkedNameFieldPatched(String fieldName, Map<String, Object> engInfoPatch) {
|
||||||
for (Map.Entry<String, String> entry : ENG_CODE_NAME_FIELD_MAP.entrySet()) {
|
for (Map.Entry<String, String> entry : ENG_CODE_NAME_FIELD_MAP.entrySet()) {
|
||||||
if (entry.getValue().equals(fieldName) && engInfoPatch.containsKey(entry.getKey())) {
|
if (entry.getValue().equals(fieldName) && engInfoPatch.containsKey(entry.getKey())) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user