Commit 812e2d94 authored by suhuiguang's avatar suhuiguang

1.使用登记单据变更功能

parent d6270654
......@@ -28,6 +28,7 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.annotation.PostConstruct;
import java.lang.reflect.Field;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......@@ -219,7 +220,7 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate
private void castJsonFields(Map<String, Object> re) {
jsonFields.forEach(field -> {
if (re.containsKey(field) && re.get(field) instanceof String) {
re.put(field, JSON.parse((String)re.get(field)));
re.put(field, JSON.parse((String) re.get(field)));
}
});
}
......@@ -300,11 +301,11 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate
changeDataDto.setColumnLabel(fieldName);
changeDataDto.setChangeId(record);
Object oV = field.get(beanData);
if(oV instanceof String) {
if (oV instanceof String) {
String value = (String) field.get(beanData);
changeDataDto.setColumnNewValue(value);
changeDataDto.setColumnOldValue(value);
} else if (oV instanceof Integer) {
} else if (oV instanceof Number) {
String value = String.valueOf(field.get(beanData));
changeDataDto.setColumnNewValue(value);
changeDataDto.setColumnOldValue(value);
......@@ -517,7 +518,14 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate
}
private List<ChangeDataDto> mergeChangeFields(List<ChangeDataDto> changeDataNew, List<ChangeDataDto> changeDataOld) {
return changeDataNew.stream().filter(n -> changeDataOld.stream().noneMatch(o -> o.getColumnKey().equals(n.getColumnKey()) && StringUtils.equals(n.getColumnNewValue(), o.getColumnNewValue()))).collect(Collectors.toList());
Map<String, ChangeDataDto> oldKv = changeDataOld.stream().collect(Collectors.toMap(ChangeDataDto::getColumnKey, Function.identity()));
changeDataNew.forEach(o -> {
// 正常不会出现此情况,old数据 大于等于 new 数据的key
if (oldKv.get(o.getColumnKey()) != null) {
o.setColumnOldValue(oldKv.get(o.getColumnKey()).getColumnOldValue());
}
});
return changeDataNew.stream().filter(n -> !StringUtils.equals(n.getColumnNewValue(), n.getColumnOldValue())).collect(Collectors.toList());
}
private static TechParamsBoilerChangeFieldDto getTechParamsBoilerChangeField(Map<String, Object> changeData) {
......
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