diff --git a/src/main/java/com/hxgk/lowcode/mapper/FieldRecordMapper.java b/src/main/java/com/hxgk/lowcode/mapper/FieldRecordMapper.java index ea8b97b..27887a1 100644 --- a/src/main/java/com/hxgk/lowcode/mapper/FieldRecordMapper.java +++ b/src/main/java/com/hxgk/lowcode/mapper/FieldRecordMapper.java @@ -37,4 +37,7 @@ public interface FieldRecordMapper { ArrayList> queryAsfLeftMapList(@Param("leftTableName") String leftTableName, @Param("toSelectTableFeilds") ArrayList toSelectTableFeilds, @Param("currentMastersKey")String currentMastersKey); String queryCurrentMastersKey(@Param("id") String currentVal,@Param("leftTableName") String leftTableName); + + ArrayList> queryAsfLeftMapListWithWhereCondition(@Param("leftTableName") String leftTableName, @Param("toSelectTableFeilds") ArrayList toSelectTableFeilds, @Param("currentMastersKey")String currentMastersKey, + @Param("whereLeft") String whereLeft,@Param("whereOperator") String whereOperator,@Param("whereRight") String whereRight); } diff --git a/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java b/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java index fe46a58..c135292 100644 --- a/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java +++ b/src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java @@ -2540,12 +2540,68 @@ public class CustomerFormServiceImpl implements CustomerFormService { }else{//其它数字或文字条件 如:文学家包含李 以like模糊查询来筛选 + String[] leftSplit = conditionLeft.split(":"); + if(leftSplit[0].equals("formField")&&leftSplit.length==4){ + String whereLeft = "`"+leftSplit[3]+"`"; + String whereOperator = "like"; + String whereRight = "'%"+conditionRight+"%'"; - /*if(){ - }*/ - logger.error("数据范围条件查询出现无法处理的情况---返回原数据列表---" + conditionOperator); + //标准无筛选条件查询拼装代码块 --------------------------------------------------------------------- start + for(List> list :singleAsfChildTableFillRoleMapListsGroupedByRightTableName){ + ArrayList toSelectTableFeilds = new ArrayList<>(); + HashMap toSelectTableFeildsMap = new HashMap<>(); + for(Map map :list){ + System.out.println("map===>"+map); + toSelectTableFeilds.add("`"+map.get("leftTableField")+"`"); + toSelectTableFeildsMap.put(map.get("leftTableField"),map.get("rightTableField")); + } + if(list.size()>0){ + String leftTableName = "`"+list.get(0).get("leftTableName")+"`"; + String rightTableName = list.get(0).get("rightTableName"); + //根据currentVal获取currentMastersKey + String currentMastersKey = fieldRecordMapper.queryCurrentMastersKey(currentVal,asfFormName); + System.out.println(list.get(0).get("leftTableName")); + System.out.println(toSelectTableFeilds); + + + + + //修改查询代码 start + ArrayList> leftTableDetail = fieldRecordMapper.queryAsfLeftMapListWithWhereCondition(leftTableName,toSelectTableFeilds,currentMastersKey,whereLeft,whereOperator,whereRight); + //修改查询代码 end + + + + + replaceKeys(leftTableDetail,toSelectTableFeildsMap); + leftTableDetailMap.put(rightTableName,leftTableDetail); + } + + } + + // 遍历 + for (Map.Entry>> entry : leftTableDetailMap.entrySet()) { + //当前子表拼装结果 + AsfTableFillResult afr = new AsfTableFillResult(); + + String keyx = entry.getKey(); + ArrayList> valueList = entry.getValue(); + System.out.println("Key: " + keyx); + afr.setTableName(keyx); + afr.setTableDetail(valueList); + resultList.add(afr); + } + System.out.println(1); + //标准无筛选条件查询拼装代码块 ------------------------------------------------------------------ end + + + + + } + + } }else if(conditionOperator.equals("不包含")){ @@ -3714,7 +3770,90 @@ public class CustomerFormServiceImpl implements CustomerFormService { } }else{ - //自定义数字或文字条件值 + //自定义数字或文字条件值 子表某字段 > 1 + + + + String[] leftSplit = conditionLeft.split(":"); + if(leftSplit[0].equals("formField")&&leftSplit.length==4){ + String whereLeft = "`"+leftSplit[3]+"`"; + String whereOperator = conditionOperator; + String whereRight = conditionRight; + if(whereRight.equals("==")){ + whereRight = "="; + } + boolean illegalFlag = false; + if(isNumeric(whereRight)){//数字条件 + + }else{//非数字条件 + + if(whereOperator.contains(">")||whereOperator.contains("<")){ + illegalFlag = true; + }else{ + + } + + } + + + + //标准无筛选条件查询拼装代码块 --------------------------------------------------------------------- start + for(List> list :singleAsfChildTableFillRoleMapListsGroupedByRightTableName){ + ArrayList toSelectTableFeilds = new ArrayList<>(); + HashMap toSelectTableFeildsMap = new HashMap<>(); + for(Map map :list){ + System.out.println("map===>"+map); + toSelectTableFeilds.add("`"+map.get("leftTableField")+"`"); + toSelectTableFeildsMap.put(map.get("leftTableField"),map.get("rightTableField")); + } + if(list.size()>0){ + String leftTableName = "`"+list.get(0).get("leftTableName")+"`"; + String rightTableName = list.get(0).get("rightTableName"); + //根据currentVal获取currentMastersKey + String currentMastersKey = fieldRecordMapper.queryCurrentMastersKey(currentVal,asfFormName); + System.out.println(list.get(0).get("leftTableName")); + System.out.println(toSelectTableFeilds); + + + + ArrayList> leftTableDetail; + //修改查询代码 start + if (illegalFlag){//大于小于号的情况下输入了非数字条件 认为条件无效,数据全部返回? + leftTableDetail = fieldRecordMapper.queryAsfLeftMapList(leftTableName,toSelectTableFeilds,currentMastersKey); + }else{ + leftTableDetail = fieldRecordMapper.queryAsfLeftMapListWithWhereCondition(leftTableName,toSelectTableFeilds,currentMastersKey,whereLeft,whereOperator,whereRight); + } + + //修改查询代码 end + + + + + replaceKeys(leftTableDetail,toSelectTableFeildsMap); + leftTableDetailMap.put(rightTableName,leftTableDetail); + } + + } + + // 遍历 + for (Map.Entry>> entry : leftTableDetailMap.entrySet()) { + //当前子表拼装结果 + AsfTableFillResult afr = new AsfTableFillResult(); + + String keyx = entry.getKey(); + ArrayList> valueList = entry.getValue(); + System.out.println("Key: " + keyx); + afr.setTableName(keyx); + afr.setTableDetail(valueList); + resultList.add(afr); + } + System.out.println(1); + //标准无筛选条件查询拼装代码块 ------------------------------------------------------------------ end + + + + + } } } diff --git a/src/main/resources/mapper/FieldRecordMapper.xml b/src/main/resources/mapper/FieldRecordMapper.xml index 4cb175d..5341344 100644 --- a/src/main/resources/mapper/FieldRecordMapper.xml +++ b/src/main/resources/mapper/FieldRecordMapper.xml @@ -140,4 +140,22 @@ select masters_key from ${leftTableName} where id = ${id} + + + + \ No newline at end of file