fix(87990): 高级检索-涉及系统/部件后没有选择框

This commit is contained in:
yjz
2024-08-05 14:27:55 +08:00
parent 1258479f6f
commit c5e953065f
3 changed files with 18 additions and 2 deletions
@@ -32,8 +32,9 @@ public class FieldCommon {
LawsFieldTypeEnum.TREE_BOX_SINGLE.getValue(), // 树型单选
LawsFieldTypeEnum.TREE_BOX.getValue(), // 树型多选
LawsFieldTypeEnum.OPTION_MANY.getValue(), // 下拉多选
LawsFieldTypeEnum.TREE_OPTION.getValue() // 树形弹框选择
);
LawsFieldTypeEnum.TREE_OPTION.getValue(), // 树形弹框选择
LawsFieldTypeEnum.TREE_OPTION2.getValue() // 树形弹框(带出子集和单线父级)
);
/**
* @Author: liao
@@ -4,11 +4,16 @@ import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.documenttool.common.DocumentSplitCommon;
import com.jero.modules.laws.documenttool.factory.ConditionMapFactory;
import com.jero.modules.laws.documenttool.handler.AbstractConditionBase;
import com.jero.modules.laws.standard.entity.PartName;
import com.jero.modules.laws.standard.service.ILawsPartNameService;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Author: yjz
@@ -18,6 +23,8 @@ import java.util.List;
@Component
public class InConditionImpl extends AbstractConditionBase {
@Resource
private ILawsPartNameService lawsPartNameService;
@Override
public String buildCondition(String fieldName, String value){
@@ -25,6 +32,13 @@ public class InConditionImpl extends AbstractConditionBase {
StringBuilder in = new StringBuilder();
in.append(DocumentSplitCommon.AND).append("((");
List<String> list = Arrays.asList(value.split(","));
// 涉及系统/部件 特殊处理
if (FieldCommon.PART_NAME.equals(fieldName)){
List<PartName> partNameList = lawsPartNameService.listByIds(list);
if (!Objects.isNull(partNameList)){
list = partNameList.stream().map(PartName::getCode).collect(Collectors.toList());
}
}
for (String s : list) {
in.append(DocumentSplitCommon.INSTR_BEGIN).append(fieldName).append(",").append("'").append(s).append("'").append(")");
if (list.indexOf(s) != list.size() -1){
@@ -23,6 +23,7 @@ public enum LawsFieldTypeEnum {
YEAR_OPTION("年份选择","14"),
TREE_BOX_SINGLE("树型结构(单选)","15"),
TREE_OPTION("树形弹框选择","16"),
TREE_OPTION2("树形弹框(带出子集和单线父级)","17"),
;
String name;