| | |
| | | */ |
| | | @Override |
| | | public DataGrid getDataForGrid(UIDataGridQuery dataGridQuery) throws VciBaseException, PLException { |
| | | VciBaseUtil.alertNotNull(dataGridQuery,"查询对象",dataGridQuery.getBtmname(),"业务类型",dataGridQuery.getTableDefineId()); |
| | | VciBaseUtil.alertNotNull(dataGridQuery,"查询对象",dataGridQuery.getBtmName(),"业务类型",dataGridQuery.getTableDefineId()); |
| | | // TODO: 2024/12/4 Ludc 前端传过来的sourceData参数的vlaue可能是json这儿做一下处理 |
| | | if(Func.isNotEmpty(dataGridQuery.getSourceData())){ |
| | | dataGridQuery.setSourceData(this.convertMapValueJson2Map(dataGridQuery.getSourceData())); |
| | |
| | | String queryTemplate = Func.isNotEmpty(dataGridQuery.getSourceData())? (String) dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()) :tableDefineVO.getQueryTemplateName(); |
| | | if(StringUtils.isBlank(queryTemplate)){ |
| | | //说明没有设置查询模板,需要看看在这个表格所在的组件有没有设置 |
| | | tableDefineVO = uiEngineService.getTableById(dataGridQuery.getBtmname(), dataGridQuery.getTableDefineId()); |
| | | tableDefineVO = uiEngineService.getTableById(dataGridQuery.getBtmName(), dataGridQuery.getTableDefineId()); |
| | | queryTemplate = tableDefineVO.getQueryTemplateName(); |
| | | } |
| | | //看看有没有自定义的SQL |
| | |
| | | OsBtmTypeVO btmTypeVO = null; |
| | | OsLinkTypeVO linkTypeVO = null; |
| | | if(dataGridQuery.isLinkTypeFlag()){ |
| | | linkTypeVO = linkTypeService.getLinkTypeById(dataGridQuery.getBtmname()); |
| | | linkTypeVO = linkTypeService.getLinkTypeById(dataGridQuery.getBtmName()); |
| | | queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList())); |
| | | queryFieldList.addAll(WebLoServiceImpl.LO_BASE_FIELD_MAP.values()); |
| | | }else{ |
| | | //btmTypeVO = btmService.getBtmById(dataGridQuery.getBtmname()); |
| | | btmTypeVO = btmService.getBtmByName(dataGridQuery.getBtmname()); |
| | | btmTypeVO = btmService.getBtmByName(dataGridQuery.getBtmName()); |
| | | queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList())); |
| | | queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values()); |
| | | } |
| | |
| | | linkTypeDataQuery.setReplaceMap(replaceMap); |
| | | linkTypeDataQuery.setConditionMap(dataGridQuery.getConditionMap()); |
| | | linkTypeDataQuery.setClauseList(queryFieldList); |
| | | linkTypeDataQuery.setLinkType(dataGridQuery.getBtmname()); |
| | | linkTypeDataQuery.setLinkType(dataGridQuery.getBtmName()); |
| | | if(dataGridQuery.isTreeTableFlag()){ |
| | | linkTypeDataQuery.setLevel(-1); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException, PLException { |
| | | VciBaseUtil.alertNotNull(formQuery,"表单的查询对象",formQuery.getBtmname(),"业务类型的信息",formQuery.getOid(),"业务数据的主键",formQuery.getFormDefineId(),"表单的定义编号"); |
| | | VciBaseUtil.alertNotNull(formQuery,"表单的查询对象",formQuery.getBtmName(),"业务类型的信息",formQuery.getSourceOid(),"业务数据的主键",formQuery.getFormDefineId(),"表单的定义编号"); |
| | | // TODO: 2024/12/4 Ludc 前端传过来的sourceData参数的vlaue可能是json这儿做一下处理 |
| | | if(Func.isNotEmpty(formQuery.getSourceData())){ |
| | | formQuery.setSourceData(this.convertMapValueJson2Map(formQuery.getSourceData())); |
| | | } |
| | | UIFormDefineVO formDefineVO = uiEngineService.getFormById(formQuery.getBtmname(),formQuery.getFormDefineId()); |
| | | UIFormDefineVO formDefineVO = uiEngineService.getFormById(formQuery.getBtmName(),formQuery.getFormDefineId()); |
| | | 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()); |
| | | //获取参照 |
| | |
| | | OsBtmTypeVO btmTypeVO = null; |
| | | OsLinkTypeVO linkTypeVO = null; |
| | | if(formDefineVO.isLinkTypeFlag()){ |
| | | linkTypeVO = linkTypeService.getLinkTypeById(formQuery.getBtmname()); |
| | | linkTypeVO = linkTypeService.getLinkTypeById(formQuery.getBtmName()); |
| | | queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList())); |
| | | queryFieldList.addAll(WebLoServiceImpl.LO_BASE_FIELD_MAP.values()); |
| | | }else{ |
| | | btmTypeVO = btmService.getBtmByName(formQuery.getBtmname()); |
| | | btmTypeVO = btmService.getBtmByName(formQuery.getBtmName()); |
| | | queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList())); |
| | | } |
| | | queryFieldList.add("creator_name"); |
| | | queryFieldList.add("lastmodifier_name"); |
| | | Map<String,String> conditionMap = WebUtil.getOidQuery(formQuery.getOid()); |
| | | Map<String,String> conditionMap = WebUtil.getOidQuery(formQuery.getSourceOid()); |
| | | Map<String, Object> replaceMap = wrapperReplaceMap(formQuery.getSourceData()); |
| | | UIFormDataVO formDataVO = new UIFormDataVO(); |
| | | replaceMap.put("oid", formQuery.getOid().trim()); |
| | | replaceMap.put("oid", formQuery.getSourceOid().trim()); |
| | | if(!formDefineVO.isLinkTypeFlag()) { |
| | | List<BusinessObject> cbos = null; |
| | | if (StringUtils.isNotBlank(queryTemplate)) { |
| | | replaceMap.put("oid", formQuery.getOid().trim()); |
| | | // replaceMap.put("oid", formQuery.getOid().trim()); |
| | | cbos = boService.queryCBOByScheme(queryTemplate, conditionMap, replaceMap, null, queryFieldList.stream().collect(Collectors.toList())); |
| | | } else { |
| | | //没有查询模板,那我们就直接主键和业务类型去查询 |
| | | cbos = boService.queryCBO(formQuery.getBtmname(), conditionMap, null, queryFieldList.stream().collect(Collectors.toList())); |
| | | cbos = boService.queryCBO(formQuery.getBtmName(), conditionMap, null, queryFieldList.stream().collect(Collectors.toList())); |
| | | } |
| | | if (!CollectionUtils.isEmpty(cbos)) { |
| | | BusinessObject cbo = cbos.get(0); |
| | |
| | | linkTypeDataQuery.setReplaceMap(replaceMap); |
| | | linkTypeDataQuery.setConditionMap(conditionMap); |
| | | linkTypeDataQuery.setClauseList(queryFieldList); |
| | | linkTypeDataQuery.setLinkType(formQuery.getBtmname()); |
| | | linkTypeDataQuery.setLinkType(formQuery.getBtmName()); |
| | | //linkTypeDataQuery.setDirection(formQuery.isOrientation()); |
| | | //linkTypeDataQuery.setToBtmType(treeDefineVO.getBtmType()); |
| | | DataGrid dataGrid = loService.queryGridByScheme(linkTypeDataQuery); |
| | |
| | | } |
| | | } |
| | | //查询附件 |
| | | formDataVO.setAttachmentFileVOs(fileObjectService.listFilesByOwnbiz(formQuery.getOid(), formQuery.getBtmname(), "attachment")); |
| | | formDataVO.setAttachmentFileVOs(fileObjectService.listFilesByOwnbiz(formQuery.getSourceOid(), formQuery.getBtmName(), "attachment")); |
| | | List<UIFormItemVO> fileItems = formDefineVO.getItems().stream().filter(s -> UIFieldTypeEnum.FILE.getValue().equalsIgnoreCase(s.getType())).collect(Collectors.toList()); |
| | | if(!CollectionUtils.isEmpty(fileItems)){ |
| | | //字段的属性肯定不会超过1000个 |
| | |
| | | */ |
| | | @Override |
| | | public List<UIDataTree> getDataForTree(UITreeQuery treeQuery) throws Exception { |
| | | VciBaseUtil.alertNotNull(treeQuery,"表单的查询对象",treeQuery.getBtmname(),"业务类型的信息",treeQuery.getComponentOid(),"树所在的组件的主键"); |
| | | VciBaseUtil.alertNotNull(treeQuery,"表单的查询对象",treeQuery.getBtmName(),"业务类型的信息",treeQuery.getComponentOid(),"树所在的组件的主键"); |
| | | // TODO: 2024/12/4 Ludc 前端传过来的sourceData参数的vlaue可能是json这儿做一下处理 |
| | | if(Func.isNotEmpty(treeQuery.getSourceData())){ |
| | | treeQuery.setSourceData(this.convertMapValueJson2Map(treeQuery.getSourceData())); |
| | |
| | | throw new VciBaseException("这个组件不是树"); |
| | | } |
| | | if(!treeQuery.isLinkTypeFlag() && StringUtils.isBlank(treeQuery.getParentBtmName())){ |
| | | treeQuery.setParentBtmName(treeQuery.getBtmname()); |
| | | treeQuery.setParentBtmName(treeQuery.getBtmName()); |
| | | } |
| | | //TODO: 替换树定义上的正反向查询属性,因为正反向查询是由链接类型查询模板上控制的 |
| | | boolean isOrientation = false; //是否反向,使用模板上配置的 |