1、修改使用当前用户的类型查询用户接口,可以传入用户类型。
2、增加根据用户主键获取关联的部门接口。
3、增加查询授权结果接口。
4、增加查询业务对象接口。
已修改7个文件
已添加2个文件
257 ■■■■■ 文件已修改
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/AuthResultDTO.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OpItemVO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/OrgDepartmentQueryController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/controller/SmUserQueryController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/SmUserQueryServiceI.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsDataAuthController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsDataAuthServiceI.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsDataAuthServiceImpl.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}
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;
    }
}
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);
    }
}
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();
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;
}
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());
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 æ˜¯å¦ä¸ºbo类型,true为btm,false为link
     * @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);
        }
    }
}
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 æ˜¯å¦ä¸ºbo类型,true为btm,false为link
     * @param btmType ä¸šåŠ¡ç±»åž‹
     * @return æŸ¥è¯¢å‡ºçš„æ•°æ®
     */
    BaseResult queryBusiness(String btmName, boolean boFlag, String btmType);
}
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 æ˜¯å¦ä¸ºbo类型,true为btm,false为link
     * @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放入到map中
    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", "查询"); // å°†æ“ä½œä¸­çš„query放入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);
                }
            }