ludc
2025-01-16 68fd566d21b3efc3a670a5295289b1801f5a4155
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmOperationServiceImpl.java
@@ -1,7 +1,9 @@
package com.vci.web.service.impl;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.SmOperationVO;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.pageModel.SmOperationVO;
import com.vci.web.service.SmOperationServiceI;
import com.vci.web.service.WebBoServiceI;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,27 +39,27 @@
        String sql = "select f.ploid from plfunction f where  lower(f.plmoduleno) = :functionId";
        Map<String,String> conditionMap = new HashMap<>();
        conditionMap.put("functionId",functionId.toLowerCase(Locale.ROOT).trim());
        List<com.vci.client.bof.ClientBusinessObject> functionCbos = boService.queryBySql(sql, conditionMap);
        List<BusinessObject> functionCbos = boService.queryBySql(sql, conditionMap);
        if(CollectionUtils.isEmpty(functionCbos)){
            //都没有这个功能
            return new ArrayList<>();
        }
        String functionOid = functionCbos.get(0).getAttributeValue("ploid");
        String functionOid = ObjectTool.getBOAttributeValue(functionCbos.get(0), "ploid");
        conditionMap.clear();
        conditionMap.put("functionOid",functionOid);
        sql = "select rf.plrightvalue from PLROLERIGHT rf left join pluserrole ur on rf.plroleoid = ur.plroleuid " +
                " where ur.pluseruid =:useroid and rf.plfuncoid = :functionOid";
        conditionMap.put("useroid",VciBaseUtil.getCurrentUserOid());
        List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryBySql(sql, conditionMap);
        List<BusinessObject> cbos = boService.queryBySql(sql, conditionMap);
        if(CollectionUtils.isEmpty(cbos)){
            //没有授权
            return new ArrayList<>();
        }
        long rightValue = VciBaseUtil.getLong(cbos.get(0).getAttributeValue("plrightvalue"));
        long rightValue = VciBaseUtil.getLong(ObjectTool.getBOAttributeValue(cbos.get(0), "plrightvalue"));
        //获取具体包含哪些按钮
        sql = "select o.ploperoid,o.plno from PLFUNCOPERATION o where o.plfuncoid = :functionOid ";
        conditionMap.remove("useroid");
        List<com.vci.client.bof.ClientBusinessObject> operationLinkCbos = boService.queryBySql(sql, conditionMap);
        List<BusinessObject> operationLinkCbos = boService.queryBySql(sql, conditionMap);
        if(CollectionUtils.isEmpty(operationLinkCbos)){
            //根本没有按钮
            return new ArrayList<>();
@@ -66,8 +68,8 @@
        List<String> hasRightOids = new ArrayList<>();
        Map<String,Integer> oidOrderMap = new HashMap<>();
        operationLinkCbos.stream().forEach(cbo->{
            String operationOid = cbo.getAttributeValue("ploperoid");
            int orderNo = VciBaseUtil.getInt(cbo.getAttributeValue("plno"));
            String operationOid = ObjectTool.getBOAttributeValue(cbo,"ploperoid");
            int orderNo = VciBaseUtil.getInt(ObjectTool.getBOAttributeValue(cbo,"plno"));
            if(hasRight(rightValue,orderNo)){
                hasRightOids.add(operationOid);
                oidOrderMap.put(operationOid,orderNo);
@@ -78,17 +80,17 @@
            return new ArrayList<>();
        }
        sql = "select ploid as oid,plname,pluniqueflag,pldesc,plalias,plsequence from ploperation where ploid in (" + VciBaseUtil.toInSql(hasRightOids.toArray(new String[0])) + ")";
        List<com.vci.client.bof.ClientBusinessObject> opertionCBOs = boService.queryBySql(sql, new HashMap<>());
        List<BusinessObject> opertionCBOs = boService.queryBySql(sql, new HashMap<>());
        List<SmOperationVO> operationVOS = new ArrayList<>();
        Optional.ofNullable(opertionCBOs).orElseGet(()->new ArrayList<>()).stream().forEach(cbo->{
            SmOperationVO operationVO = new SmOperationVO();
            operationVO.setFunctionOid(functionOid);
            operationVO.setOid(cbo.getOid());
            operationVO.setUniqueFlag(cbo.getAttributeValue("pluniqueflag"));
            operationVO.setName(cbo.getAttributeValue("plname"));
            operationVO.setAlias(cbo.getAttributeValue("plalias"));
            operationVO.setOid(cbo.oid);
            operationVO.setUniqueFlag(ObjectTool.getBOAttributeValue(cbo,"pluniqueflag"));
            operationVO.setName(ObjectTool.getBOAttributeValue(cbo,"plname"));
            operationVO.setAlias(ObjectTool.getBOAttributeValue(cbo,"plalias"));
            operationVO.setOrderNo(String.valueOf(oidOrderMap.get(operationVO.getOid())));
            operationVO.setDescription(cbo.getAttributeValue("pldesc"));
            operationVO.setDescription(ObjectTool.getBOAttributeValue(cbo,"pldesc"));
            operationVO.setModuleNo(functionId);
            operationVOS.add(operationVO);
        });