1:新增弹出框选择多个对象信息接口

yun-zuoyi
钮海涛 6 years ago
parent bc13a8a3ac
commit 794bbc4fba

@ -25,4 +25,5 @@ public @interface FieldAnnotation {
String defaultValue() default ""; // 字段的默认值
boolean popSearch() default false; // 弹出选择对象时是否显示
EDIT_TYPE editType() default EDIT_TYPE.NONE; // 定义字段的编辑类型
String typeName() default ""; // 定义字段类型的简单名称,对于多选关联对象时有用。
}

@ -29,7 +29,7 @@ import java.util.List;
public class ResCalendar extends BaseAPS {
@Column(name="RES_CODES")
@ApiParam(value ="资源代码")
@FieldAnnotation(editType = EDIT_TYPE.MULTI_OBJECT)
@FieldAnnotation(editType = EDIT_TYPE.MULTI_OBJECT, typeName = "Resource")
private String resCodes;
@Column(name="WEEKS")

@ -2,10 +2,7 @@ package cn.estsh.i3plus.pojo.aps.common;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Predicate;
@ -235,6 +232,34 @@ public class BeanRelation {
return index == 0 && bNotLast;
}
/**
*
* @param bean
* @param holder
* @param args
* @param <T>
* @return List
*/
public static <T extends BaseBean> Set<T> listUnique(BaseBean bean, Enum<?> holder, Enum<?>... args) {
Set<T> result = new HashSet<>();
List<BaseBean> nextBeans = list(bean, holder);
for (BaseBean nextBean : nextBeans) {
listUniqueImpl(result, nextBean, args, 0);
}
result.remove(bean);
return result;
}
private static <T extends BaseBean> void listUniqueImpl(Set<T> result, BaseBean bean, Enum<?>[] holders, int index) {
if (index >= holders.length) {
result.add((T)bean);
} else {
List<BaseBean> nextBeans = list(bean, holders[index]);
for (BaseBean nextBean : nextBeans) {
listUniqueImpl(result, nextBean, holders, index + 1);
}
}
}
/**

Loading…
Cancel
Save