| | |
| | | } |
| | | //先判断查询模板是否配置了自定义查询类 |
| | | UIComponentVO componentVO = uiEngineService.getComponentByOid(formQuery.getComponentOid(), null); |
| | | UIFormDefineVO formDefineVO = componentVO.getFormDefineVO(); |
| | | //UIFormDefineVO formDefineVO = uiEngineService.getFormById(formQuery.getBtmName(),formQuery.getFormDefineId()); |
| | | String bsCustQueryCLsOrUrl = componentVO.getBsCustQueryCLsOrUrl(); |
| | | if(Func.isNotBlank(bsCustQueryCLsOrUrl) && isCustomClass(bsCustQueryCLsOrUrl)){ |
| | |
| | | // 创建类的实例 |
| | | Object instance = clazz.getDeclaredConstructor().newInstance(); |
| | | // 获取方法getDataForGrid(该方法是接口中统一定义的方法) |
| | | Method method = clazz.getMethod("getDataForForm", UIDataGridQuery.class); |
| | | Method method = clazz.getMethod("getDataForForm", UIFormQuery.class); |
| | | // 调用方法 |
| | | UIFormDataVO uiFormDataVO = (UIFormDataVO) method.invoke(instance, formQuery); |
| | | return uiFormDataVO; |
| | |
| | | throw new VciBaseException("获取表格数据时出现错误,原因:"+e.getMessage()); |
| | | } |
| | | }else{ |
| | | UIFormDefineVO formDefineVO = componentVO.getFormDefineVO(); |
| | | String queryTemplate = !CollectionUtils.isEmpty(formQuery.getSourceData())? (String) formQuery.getSourceData().getOrDefault("querytemplate",formDefineVO.getQueryTemplateName()) :formDefineVO.getQueryTemplateName(); |
| | | Set<String> queryFieldList = formDefineVO.getItems().stream().filter(s->!UIFieldTypeEnum.CUSTOM.getValue().equalsIgnoreCase(s.getType())).map(UIFormItemVO::getField).collect(Collectors.toSet()); |
| | | //获取参照 |
| | |
| | | if(componentVO == null || StringUtils.isBlank(componentVO.getOid())){ |
| | | throw new VciBaseException("树的配置信息没有获取到"); |
| | | } |
| | | String bsCustQueryCLsOrUrl = componentVO.getBsCustQueryCLsOrUrl(); |
| | | if(Func.isNotBlank(bsCustQueryCLsOrUrl) && isCustomClass(bsCustQueryCLsOrUrl)){ |
| | | //通过反射调用bsCustQueryCLsOrUrl中定义的服务类中的查询方法 |
| | | try { |
| | | // 获取类的 Class 对象 |
| | | Class<?> clazz = Class.forName(bsCustQueryCLsOrUrl.replace("@","")); |
| | | // 创建类的实例 |
| | | Object instance = clazz.getDeclaredConstructor().newInstance(); |
| | | // 获取方法getDataForGrid(该方法是接口中统一定义的方法) |
| | | Method method = clazz.getMethod("getDataForForm", UITreeQuery.class); |
| | | // 调用方法 |
| | | List<UIDataTree> uiDataTreeList = (List<UIDataTree>) method.invoke(instance, treeQuery); |
| | | return uiDataTreeList; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | throw new VciBaseException("获取表格数据时出现错误,原因:"+e.getMessage()); |
| | | } |
| | | }else{ |
| | | //树形有两种,一种是业务类型里自参照,一种是链接类型 |
| | | UITreeDefineVO treeDefineVO = componentVO.getTreeDefineVO(); |
| | | if(treeDefineVO == null){ |
| | |
| | | linkTypeDataQuery.getReplaceMap().put(isOrientation?"t_oid":"f_oid",treeQuery.getParentOid()); |
| | | } |
| | | return cloAndCbo2Trees(loService.queryCLOAndBoByLinkType(linkTypeDataQuery),valueField,textField,parentFieldName,treeQuery.isShowCheckBox(),treeQuery.getParentOid()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 封装cbo对象 |
| | | * @param formDataDTO 表单数据 |
| | |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 链接数据表单对象转换为基础的属性 |
| | |
| | | }); |
| | | return BaseResult.success(clo); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 封装to端的数据 |