Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java
@@ -265,6 +265,7 @@ return objectBaseResult; } } /** * 导出链接类型查询模板 * names 查询模板名 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIDataController.java
@@ -98,6 +98,25 @@ } /** * 根据查询模板查询数据,返回值按照页面定义 * @param treeQuery 树查询对象 * @return 树的数据 */ @PostMapping("/getDataByTemp") @VciUnCheckRight @VciBusinessLog(operateName = "查询") public BaseResult getDataByTemp(UITreeQuery treeQuery){ try { return uiDataService.getDataByTemp(treeQuery); }catch (Exception e){ e.printStackTrace(); String errorMsg = "数据查询出现错误,原因:"+ VciBaseUtil.getExceptionMessage(e); logger.error(errorMsg); throw new VciBaseException(errorMsg); } } /** * 添加数据。前端使用JSON提交 * @param formDataDTO 表单 * @return 执行的结果 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LoginServiceI.java
@@ -20,7 +20,7 @@ * @return 登录的结果对象 * @throws VciBaseException 登录失败的时候抛出异常 */ LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws PLException; LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception; /** * 单点登录 @@ -29,7 +29,7 @@ * @return 登录的结果对象 * @throws VciBaseException 登录失败的时候抛出异常 */ LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws PLException; LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception; /** * 退出系统 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIDataServiceI.java
@@ -53,6 +53,14 @@ List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException, PLException; /** * 获取树形数据(根据查询模板查询对象) * @param treeQuery 树形查询条件 * @return 树形数据 * @throws VciBaseException 查询出错的时候会抛出异常 */ BaseResult getDataByTemp(UITreeQuery treeQuery) throws VciBaseException, PLException; /** * 调用前置事件 * @param baseModelDTOList 业务数据的信息 * @param baseLinkModelDTOList 链接类型的数据 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java
@@ -135,7 +135,7 @@ * @throws VciBaseException 登录发生异常的时候出现了错误 */ @Override public LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws PLException { public LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception { return login(userDTO,clientInfo,true); } @@ -147,7 +147,7 @@ * @return 执行结果 * @throws VciBaseException 参数错误,用户不能登录等会抛出异常 */ private LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo, boolean checkPassword/*单点登录不需要校验密码*/) throws VciBaseException { private LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo, boolean checkPassword/*单点登录不需要校验密码*/) throws Exception { LoginResultBO loginResult = new LoginResultBO(); loginResult.setSuccess(false); @@ -238,7 +238,8 @@ } //6、登录成功之后需要处理的逻辑 user.setLastLoginTime(new Date());//最后登录时间 user.setPwdWrongCount(0);//密码错误次数清0 //user.setPwdWrongCount(0);//登录成功密码错误次数清0 platformClientUtil.getFrameworkService().updateLogonInfo(user.getOid(),true); //处理用户登录成功的session SessionInfo sessionInfo = new SessionInfo(); sessionInfo.setToken(token); @@ -529,7 +530,7 @@ * @throws VciBaseException 登录失败的时候抛出异常 */ @Override public LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws PLException { public LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception { return login(userDTO,clientInfo,false); } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
@@ -391,7 +391,7 @@ if(StringUtils.isBlank(treeDefineVO.getLinkType())){ //这个是业务类型的自参照 //以前的平台没有对自参照这种有全部查询的 OsBtmTypeVO btmTypeVO = btmService.getBtmById(treeDefineVO.getBtmType(),attributeVOMap); OsBtmTypeVO btmTypeVO = btmService.getBtmByName(treeDefineVO.getBtmType()); queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList())); queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values()); @@ -543,6 +543,62 @@ } /** * 获取数据(根据查询模板查询对象,返回的结构按照ui定义,定义的模板类型返回) * @param treeQuery 树形查询条件 * @return 树形数据 * @throws VciBaseException 查询出错的时候会抛出异常 */ @Override public BaseResult getDataByTemp(UITreeQuery treeQuery) throws VciBaseException, PLException { VciBaseUtil.alertNotNull(treeQuery,"表单的查询对象",treeQuery.getComponentOid(),"当前组件的主键"); //1、先查询页面定义组件 Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap(); UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap); if(componentVO == null || StringUtils.isBlank(componentVO.getOid())){ throw new VciBaseException("未获取到界面配置信息!"); } // 2、根据配置的查询模板查询数据(需要考虑全面一点), // 这儿根据当前类型来获取是什么类型的查询模板,然后做对应的查询处理 UITreeDefineVO treeDefineVO = componentVO.getTreeDefineVO(); String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())?treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()):treeDefineVO.getQueryTemplateName()); Map<String, String> replaceMap = wrapperReplaceMap(treeQuery.getSourceData()); List<String> queryFieldList = new ArrayList<>(); String valueField = treeQuery.isLinkTypeFlag()?(!treeDefineVO.isOrientation()?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid"); String textField = StringUtils.isNotBlank(treeDefineVO.getTreeNodeExpression())?treeDefineVO.getTreeNodeExpression():(StringUtils.isNotBlank(treeQuery.getTextField())?treeQuery.getTextField():"name"); String rootExpress = StringUtils.isNotBlank(treeQuery.getRootExpress())?treeQuery.getRootExpress():treeDefineVO.getRootContent(); String parentFieldName = treeQuery.getParentFieldName(); if(parentFieldName.contains(",")){ parentFieldName = parentFieldName.split(",")[0]; } queryFieldList.add("creator_name"); queryFieldList.add("lastmodifier_name"); OsBtmTypeVO btmTypeVO = btmService.getBtmByName(treeDefineVO.getBtmType()); queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList())); queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values()); addQueryField(queryFieldList,valueField); addQueryField(queryFieldList,textField); List<BusinessObject> rootCbos = boService.queryCBOByScheme(queryTemplate, null, replaceMap); //3、根据不同的组件返回不同的数据类型(树、列表、树表、自定义模板、表单等) List<Tree> rootTreeList = null; if(!CollectionUtils.isEmpty(rootCbos)){ rootTreeList = cbo2Trees(rootCbos,valueField,StringUtils.isBlank(rootExpress)?textField:rootExpress,parentFieldName,treeQuery.isShowCheckBox(),null); TreeQueryObject treeQueryObject = new TreeQueryObject(); treeQueryObject.setValueField(valueField); treeQueryObject.setTextField(textField); treeQueryObject.setParentFieldName(parentFieldName); treeQueryObject.setShowCheckBox(treeQuery.isShowCheckBox()); if(UITreeLoadTypeEnum.ALL.getValue().equalsIgnoreCase(treeDefineVO.getLoadType())){ treeQueryObject.setQueryAllLevel(false); } //queryTreeForBO(rootTreeList,treeDefineVO.getQueryTemplateName(),queryFieldList,treeQueryObject); } return BaseResult.tree(rootTreeList); } /** * 业务类型的属性查询 * @param rootTreeList 根节点的内容 * @param queryTemplate 查询模板 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java
@@ -3724,7 +3724,7 @@ return res; } // 链接类型不为空时,需要同时检查链接类型及链接类型下的查询模板是否有效 if(Func.isBlank(linkType)){ if(Func.isNotBlank(linkType)){ if(!(super.checkLinkTypeTxtIsOk("链接类型", linkType,false))){ res = false; return res;