From c65c0b31e6dfd01db744a450dda3816f65eebbc1 Mon Sep 17 00:00:00 2001 From: yuxc <yuxc@vci-tech.com> Date: 星期四, 05 十二月 2024 11:41:10 +0800 Subject: [PATCH] 1、修改使用当前用户的类型查询用户接口,可以传入用户类型。 2、增加根据用户主键获取关联的部门接口。 3、增加查询授权结果接口。 4、增加查询业务对象接口。 --- Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/SmUserQueryServiceI.java | 2 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OpItemVO.java | 33 ++++++ Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java | 4 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java | 122 +++++++++++++++++++++++- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsDataAuthServiceI.java | 15 +++ Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/OrgDepartmentQueryController.java | 13 ++ Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/SmUserQueryController.java | 4 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java | 37 +++++++ Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AuthResultDTO.java | 27 +++++ 9 files changed, 245 insertions(+), 12 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AuthResultDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AuthResultDTO.java new file mode 100644 index 0000000..ba049e0 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AuthResultDTO.java @@ -0,0 +1,27 @@ +package com.vci.dto; + +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * 鏁版嵁鏉冮檺鎿嶄綔淇℃伅浼犺緭瀵硅薄 + * @author yuxc + * @date 2024/12/4 + */ +@Data +public class AuthResultDTO implements java.io.Serializable { + + /** + * 绂佹淇敼杩欎釜鍊� + */ + private static final long serialVersionUID = 814342725285373312L; + + // 璁剧疆Table鍒楀ご淇℃伅 + List<String> tableHeader; + + //鍒楄〃鏁版嵁 + List<Object> tableValues; + +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OpItemVO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OpItemVO.java new file mode 100644 index 0000000..6d55f16 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OpItemVO.java @@ -0,0 +1,33 @@ +package com.vci.pagemodel; + +/** + * 鎿嶄綔瀵硅薄 + */ +public class OpItemVO extends Object{ + private String name; + private Object value; + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public Object getValue() { + return value; + } + public void setValue(Object value) { + this.value = value; + } + public boolean equals(Object obj) { + if (obj != null) { + if (((OpItemVO) obj).name == this.name) { + return true; + } + } + return false; + } + public String toString() { + return name+" , "+value; + } + +} diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/OrgDepartmentQueryController.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/OrgDepartmentQueryController.java index 382495d..28d14d0 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/OrgDepartmentQueryController.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/OrgDepartmentQueryController.java @@ -27,6 +27,7 @@ import java.io.IOException; import java.util.Date; import java.util.List; +import java.util.Map; /** * 閮ㄩ棬鐨勬煡璇㈡帶鍒跺櫒 @@ -196,4 +197,16 @@ } } + + /** + * 鏍规嵁鐢ㄦ埛涓婚敭鑾峰彇鍏宠仈鐨勯儴闂� + * @param userOid 鐢ㄦ埛涓婚敭 + * @param queryMap 鏌ヨ鏉′欢锛屽鏋滈渶瑕佷娇鐢ㄧ敤鎴风殑灞炴�ф潵鏌ヨ鍙互浣跨敤pkUser.xxxx + * @return 閮ㄩ棬鐨勬樉绀哄璞� + */ + @RequestMapping(value = "/listDeptByUserOid",method = RequestMethod.GET) + public BaseResult listDeptByUserOid(String userOid, Map<String, String> queryMap){ + List<OrgDepartmentVO> listData=deptQueryService.listDeptByUserOid(userOid, queryMap); + return BaseResult.dataList(listData); + } } diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/SmUserQueryController.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/SmUserQueryController.java index 4ebd730..b9b5bc3 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/SmUserQueryController.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/SmUserQueryController.java @@ -181,9 +181,9 @@ * @throws VciBaseException */ @RequestMapping(value = "/listUserByUserType",method = RequestMethod.GET) - public BaseResult<List<SmUserVO>> listUserByUserType() throws VciBaseException{ + public BaseResult<List<SmUserVO>> listUserByUserType(Integer type) throws VciBaseException{ try { - List<SmUserVO> smUserVOList = userQueryService.listUserByUserType(); + List<SmUserVO> smUserVOList = userQueryService.listUserByUserType(type); return BaseResult.dataList(smUserVOList); }catch (Exception e){ e.printStackTrace(); diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/SmUserQueryServiceI.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/SmUserQueryServiceI.java index 8f653e9..ff9114b 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/SmUserQueryServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/SmUserQueryServiceI.java @@ -276,5 +276,5 @@ * @return * @throws VciBaseException */ - List<SmUserVO> listUserByUserType() throws PLException; + List<SmUserVO> listUserByUserType(Integer type) throws PLException; } diff --git a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java index 5cca29c..5d8ea22 100644 --- a/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java @@ -1671,9 +1671,9 @@ * @throws VciBaseException */ @Override - public List<SmUserVO> listUserByUserType() throws PLException { + public List<SmUserVO> listUserByUserType(Integer type) throws PLException { try { - UserInfo[] userInfo = platformClientUtil.getFrameworkService().fetchUserInfoByType(Short.parseShort(WebUtil.getCurrentUserSessionInfo().getUsertype())); + UserInfo[] userInfo = platformClientUtil.getFrameworkService().fetchUserInfoByType(type != null ? type.shortValue() :Short.parseShort(WebUtil.getCurrentUserSessionInfo().getUsertype())); return userInfoArr2VO(userInfo); } catch (PLException e) { throw new VciBaseException("鐧诲綍鏃讹紝鑾峰彇鐢ㄦ埛淇℃伅澶辫触锛�"+e.getMessage()); diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java index e16819f..976c5c4 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java @@ -1,6 +1,7 @@ package com.vci.web.controller; import com.vci.corba.common.PLException; +import com.vci.corba.framework.data.CheckValue; import com.vci.corba.framework.data.GrandValue; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.util.VciBaseUtil; @@ -84,4 +85,40 @@ return BaseResult.fail(exceptionMessage); } } + + /** + * 鏌ヨ鎺堟潈缁撴灉 + * @param params 鏌ヨ瀵硅薄 + * @return 鎺堟潈缁撴灉 + */ + @GetMapping("/authResult") + public BaseResult authResult(@RequestBody CheckValue params){ + try { + return osDataAuthServiceI.authResult(params); + }catch (Exception e){ + e.printStackTrace(); + String exceptionMessage = "鏌ヨ鎺堟潈缁撴灉鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 鏌ヨ涓氬姟瀵硅薄 + * @param btmName 涓氬姟绫诲瀷鍚嶇О + * @param boFlag 鏄惁涓篵o绫诲瀷锛宼rue涓篵tm锛宖alse涓簂ink + * @param btmType 涓氬姟绫诲瀷 + * @return 鏌ヨ鍑虹殑鏁版嵁 + */ + @GetMapping("/queryBusiness") + public BaseResult queryBusiness(String btmName, boolean boFlag, String btmType){ + try { + return osDataAuthServiceI.queryBusiness(btmName, boFlag, btmType); + }catch (Exception e){ + e.printStackTrace(); + String exceptionMessage = "鏌ヨ涓氬姟瀵硅薄鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsDataAuthServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsDataAuthServiceI.java index e57a2a1..7683e49 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsDataAuthServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsDataAuthServiceI.java @@ -1,6 +1,7 @@ package com.vci.web.service; import com.vci.corba.common.PLException; +import com.vci.corba.framework.data.CheckValue; import com.vci.corba.framework.data.GrandValue; import com.vci.starter.web.pagemodel.BaseResult; @@ -27,4 +28,18 @@ * @return 鍒犻櫎缁撴灉 */ BaseResult deleteTypeRuleGrand(String typeName, String ruleName) throws PLException; + /** + * 鏌ヨ鎺堟潈缁撴灉 + * @param params 鏌ヨ瀵硅薄 + * @return 鎺堟潈缁撴灉 + */ + BaseResult authResult(CheckValue params); + /** + * 鏌ヨ涓氬姟瀵硅薄 + * @param btmName 涓氬姟绫诲瀷鍚嶇О + * @param boFlag 鏄惁涓篵o绫诲瀷锛宼rue涓篵tm锛宖alse涓簂ink + * @param btmType 涓氬姟绫诲瀷 + * @return 鏌ヨ鍑虹殑鏁版嵁 + */ + BaseResult queryBusiness(String btmName, boolean boFlag, String btmType); } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java index 67f015e..1e0a44f 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java @@ -1,19 +1,28 @@ package com.vci.web.service.impl; +import com.vci.client.common.oq.OQTool; +import com.vci.common.qt.object.QueryTemplate; import com.vci.common.qt.object.Symbol; import com.vci.constant.IRightConstant; import com.vci.corba.common.PLException; +import com.vci.corba.framework.data.CheckValue; import com.vci.corba.framework.data.GrandValue; import com.vci.corba.omd.btm.BizType; +import com.vci.corba.omd.data.AttributeValue; +import com.vci.corba.omd.data.BusinessObject; +import com.vci.corba.omd.data.LinkObject; import com.vci.corba.omd.lcm.LifeCycle; import com.vci.corba.omd.lcm.TransitionVO; import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.portal.data.PLAction; +import com.vci.dto.AuthResultDTO; import com.vci.dto.OsDataAuthDTO; +import com.vci.pagemodel.OpItemVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.web.service.OsDataAuthServiceI; import com.vci.web.util.PlatformClientUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -89,6 +98,105 @@ } return BaseResult.success("鍒犻櫎鎴愬姛锛�"); } + /** + * 鏌ヨ鎺堟潈缁撴灉 + * @param params 鏌ヨ瀵硅薄 + * @return 鎺堟潈缁撴灉 + */ + @Override + public BaseResult authResult(CheckValue params) { +// CheckValue params = new CheckValue(); + params.opname = IRightConstant.OPS; + if(StringUtils.isBlank(params.objectoid)){ + params.objectoid = "22385E82-485C-549D-E2F4-91278E9E0A76"; + } + List<String> tableHeaders = new ArrayList<>(); + List<Object> tableValues = new ArrayList<>(); + // 鎿嶄綔 + List<OpItemVO> opitems = new ArrayList<OpItemVO>(); + try { + String where = platformClientUtil.getFrameworkService().checkRight(params); + String[] ops = where.split(":"); + //澶勭悊鍒楄〃澶� + for (String s : ops) { + if (s != null && !s.equals("")) { + OpItemVO item = new OpItemVO(); + String[] op = s.split(","); + item.setName(op[0]); + item.setValue(op[1]); + tableHeaders.add(op[0]); + opitems.add(item); + } + } + } catch (Exception e) { + e.printStackTrace(); + throw new VciBaseException("閴存潈鍑洪敊\n" + + e.getLocalizedMessage()); + } + //澶勭悊鏁版嵁 + for (int n = 0; n < opitems.size(); n++) { + tableValues.add(opitems.get(n).getValue().equals("1") ? true : false); + } + AuthResultDTO authResultDTO = new AuthResultDTO(); + authResultDTO.setTableValues(tableValues); + authResultDTO.setTableHeader(tableHeaders); + return BaseResult.success(authResultDTO); + } + /** + * 鏌ヨ涓氬姟瀵硅薄 + * @param btmName 涓氬姟绫诲瀷鍚嶇О + * @param boFlag 鏄惁涓篵o绫诲瀷锛宼rue涓篵tm锛宖alse涓簂ink + * @param btmType 涓氬姟绫诲瀷 + * @return 鏌ヨ鍑虹殑鏁版嵁 + */ + @Override + public BaseResult queryBusiness(String btmName, boolean boFlag, String btmType) { + QueryTemplate qt = new QueryTemplate(); + qt.setBtmType(btmName); + List<String> clauseList = new ArrayList<String>(); + clauseList.add("*"); + qt.setClauseList(clauseList); + qt.setType(btmType);// 閾炬帴link + qt.setCondition(null); + qt.setId("qt1"); + List<Object> tableValues = new ArrayList<>(); + try { + clauseList = new ArrayList<>(Arrays.asList(platformClientUtil.getBtmService().getSysAttributeNames())); + clauseList.addAll(Arrays.asList(platformClientUtil.getBtmService().getAttributeNames(btmName))); + + if (boFlag) { + BusinessObject[] result = platformClientUtil.getQueryService().findBTMObjects(qt.getId(), OQTool.qtTOXMl(qt).asXML()); + for (int i = 0; i < result.length; i++) { + List<Object> lineData = new ArrayList<>(); + BusinessObject bo = result[i]; + AttributeValue[] attList = bo.hisAttrValList; + for (int j = 0; j < clauseList.size(); j++) { + lineData.add(attList[j].attrVal); +// qrTable.setValueAt(attList[j].attrVal, i, j); + } + tableValues.add(lineData); + } + } else { + List<Object> lineData = new ArrayList<>(); + LinkObject[] loResult = platformClientUtil.getQueryService().findLTObjects(qt.getId(), OQTool.qtTOXMl(qt).asXML()); + for (int i = 0; i < loResult.length; i++) { + LinkObject lo = loResult[i]; + AttributeValue[] attList = lo.hisAttrValList; + for (int j = 0; j < attList.length; j++) { + lineData.add(attList[j].attrVal); +// qrTable.setValueAt(attList[j], i, j); + } + tableValues.add(lineData); + } + } + } catch (PLException e) { + e.printStackTrace(); + } + Map<String, Object> resultData = new HashMap<>(); + resultData.put("tableHeader", clauseList); + resultData.put("tableValues", tableValues); + return BaseResult.success(resultData); + } //add by caill start 2015 12.18 灏嗘煡璇㈠嚭鏉ョ殑action鏀惧叆鍒癿ap涓� private Map<String, String> getAllActionsByType2(String typeName, String type) throws PLException { @@ -142,7 +250,7 @@ Map<Object, Object> columnData = new HashMap<>(); // 澧炲姞椤甸潰缂撳瓨 // ruleModel.setConditionValue(row, rules); - columnData.put("rules",rules.get(0)); + columnData.put("rules",rules); // add by caill start 2015 12.18 灏嗘煡鍑虹殑action鏀惧埌map涓紝娉ㄦ剰涓嶈钀戒笅鈥滄煡璇⑩�� Map<String, String> actionMap = new HashMap<String, String>(); actionMap.put("query", "鏌ヨ"); // 灏嗘搷浣滀腑鐨剄uery鏀惧叆actionMap涓� @@ -170,15 +278,15 @@ for (int j = 0; j < rules.size(); j++) { // 瑙勫垯鍚嶅拰绫诲瀷 // ruleModel.setValueAt(rules.get(j).ruleName, row, 0); - columnData.put(0, rules.get(j).ruleName); + columnData.put("0", rules.get(j).ruleName); if (rules.get(j).ruleType.equals(IRightConstant.RULETYPE__HAS)) { - columnData.put(1, "鍏佽瑙勫垯"); + columnData.put("1", "鍏佽瑙勫垯"); } else if (rules.get(j).ruleType.equals(IRightConstant.RULETYPE__NOTHAS)) { - columnData.put(1, "鎷掔粷瑙勫垯"); + columnData.put("1", "鎷掔粷瑙勫垯"); } else if (rules.get(j).ruleType.equals(IRightConstant.RULETYPE_ALL_HAS)) { - columnData.put(1, "鍏ㄩ儴鏈夋潈"); + columnData.put("1", "鍏ㄩ儴鏈夋潈"); } else { - columnData.put(1, "鍏ㄩ儴鏃犳潈"); + columnData.put("1", "鍏ㄩ儴鏃犳潈"); } // 鎸囧畾鐨勬搷浣滆祴鍊� // TableColumnModel columnModel = funclet.getRightMainPanel().getRuleTable().getColumnModel(); @@ -209,7 +317,7 @@ // int columnIndex = columnModel.getColumnIndex(op); if (columnIndex >= 0) { // ruleModel.setValueAt(rules.get(j).isGrand == '1' ? true : false, row, columnIndex); - columnData.put(columnIndex, rules.get(j).isGrand == '1' ? true : false); + columnData.put(String.valueOf(columnIndex), rules.get(j).isGrand == '1' ? true : false); } } -- Gitblit v1.9.3