xiejun
2024-09-04 ac3f3629a261770f573f27e5e23f7ec19d096c2a
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java
@@ -4,21 +4,18 @@
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.XmlFriendlyNameCoder;
import com.thoughtworks.xstream.io.xml.XppDriver;
import com.vci.client.common.providers.ServiceProvider;
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.RoleRightInfo;
import com.vci.corba.portal.data.*;
import com.vci.pagemodel.*;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.LangBaseUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.VciDateUtil;
import com.vci.starter.web.util.*;
import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
import com.vci.web.enumpck.UIComponentDisplayTypeEnum;
import com.vci.web.enumpck.UIComponentTypeEnum;
import com.vci.web.enumpck.UIFieldTypeEnum;
import com.vci.web.enumpck.UILayoutAreaTypeEnum;
import com.vci.web.pageModel.*;
import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.service.OsBtmServiceI;
import com.vci.web.service.UIEngineServiceI;
@@ -39,7 +36,7 @@
import java.util.*;
import java.util.stream.Collectors;
import static com.vci.web.constant.EnumIdConstant.LC_STATUS_SUBFIX;
import static com.vci.constant.EnumIdConstant.LC_STATUS_SUBFIX;
/**
 * UI引擎服务,以前平台封装到action里的,
@@ -131,8 +128,7 @@
   public void checkInvalidXmlVI() {
      PortalVI[] portalVIS = null;
      try {
         portalVIS = ServiceProvider.getUIService().getAllPortalVI();
         // portalVIS = platformClientUtil.getPortalService().getAllPortalVI();
         portalVIS = platformClientUtil.getUIService().getAllPortalVI();
      } catch (PLException vciError) {
         throw WebUtil.getVciBaseException(vciError);
      }
@@ -156,7 +152,7 @@
   public List<UIFormDefineVO> selectAllForm() {
      PortalVI[] portalVIS = null;
      try {
         portalVIS = ServiceProvider.getUIService().getAllPortalVI();
         portalVIS = platformClientUtil.getUIService().getAllPortalVI();
      } catch (PLException vciError) {
         throw WebUtil.getVciBaseException(vciError);
      }
@@ -405,7 +401,7 @@
      if(!QUERY_BY_CACHE){
         PortalVI portalVI = null;
         try {
            portalVI = ServiceProvider.getUIService().getPortalVIByTypeNameAndVIName(btmId, id);
            portalVI = platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmId, id);
         } catch (PLException vciError) {
            throw WebUtil.getVciBaseException(vciError);
         }
@@ -447,7 +443,7 @@
   public List<UITableDefineVO> selectAllTable() {
      PortalVI[] portalVIS = null;
      try {
         portalVIS = ServiceProvider.getUIService().getAllPortalVI();
         portalVIS = platformClientUtil.getUIService().getAllPortalVI();
      } catch (PLException vciError) {
         throw WebUtil.getVciBaseException(vciError);
      }
@@ -523,7 +519,7 @@
         self.selectAllForm().stream().filter(s -> formOid.equalsIgnoreCase(s.getOid())).findAny().orElseGet(() -> null);
      }else{
         try {
            formDefineVO = formDO2VO(ServiceProvider.getUIService().getPortalVIById(formOid));
            formDefineVO = formDO2VO(platformClientUtil.getUIService().getPortalVIById(formOid));
         } catch (PLException vciError) {
            throw WebUtil.getVciBaseException(vciError);
         }
@@ -723,7 +719,7 @@
      if(!QUERY_BY_CACHE){
         PortalVI portalVI = null;
         try {
            portalVI = ServiceProvider.getUIService().getPortalVIByTypeNameAndVIName(btmId, id);
            portalVI = platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmId, id);
         } catch (PLException vciError) {
            throw WebUtil.getVciBaseException(vciError);
         }
@@ -764,8 +760,7 @@
   @VciUnLog
   public List<UIActionVO> selectAllAction() {
      try {
//         return actionDO2VOs(Arrays.stream(platformClientUtil.getPortalService().getAllPLAction()).collect(Collectors.toList()));
         return actionDO2VOs(Arrays.stream(ServiceProvider.getUIService().getAllPLAction()).collect(Collectors.toList()));
         return actionDO2VOs(Arrays.stream(platformClientUtil.getUIService().getAllPLAction()).collect(Collectors.toList()));
      } catch (PLException vciError) {
         throw WebUtil.getVciBaseException(vciError);
      }
@@ -1006,7 +1001,7 @@
    */
   private List<UILayoutVO> listLayoutByContent(String pkContent){
      try {
         return UILayoutDO2VOs(Arrays.stream(ServiceProvider.getUIService().getPLTabPagesByPageDefinationOId(pkContent)).collect(Collectors.toList()),true);
         return UILayoutDO2VOs(Arrays.stream(platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(pkContent)).collect(Collectors.toList()),true);
      } catch (PLException vciError) {
         throw WebUtil.getVciBaseException(vciError);
      }
@@ -1129,8 +1124,7 @@
         if(queryDetail){
            //单个的,直接获取
            try {
               layoutVO.setComponentVOs(uiComponentDO2VOs(Arrays.stream(ServiceProvider.getUIService().getPLPageDefinationsByPageContextOId(layoutVO.getOid())).collect(Collectors.toList()),true));
//               layoutVO.setComponentVOs(uiComponentDO2VOs(Arrays.stream(platformClientUtil.getPortalService().getPLPageDefinationsByPageContextOId(layoutVO.getOid())).collect(Collectors.toList()),true));
               layoutVO.setComponentVOs(uiComponentDO2VOs(Arrays.stream(platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(layoutVO.getOid())).collect(Collectors.toList()),true));
            } catch (PLException vciError) {
               throw WebUtil.getVciBaseException(vciError);
            }
@@ -1176,7 +1170,7 @@
      }
      if(!QUERY_BY_CACHE){
         try {
            return uiComponentDO2VO(ServiceProvider.getUIService().getPLPageDefinationById(componentOid),true);
            return uiComponentDO2VO(platformClientUtil.getUIService().getPLPageDefinationById(componentOid),true);
         } catch (PLException vciError) {
            throw WebUtil.getVciBaseException(vciError);
         }
@@ -1248,8 +1242,7 @@
               componentVO.setTableDefineVO(tableDefineVOMap.get(key));
            }else{
               try {
                  componentVO.setTableDefineVO(tableDO2VO(ServiceProvider.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true));
                  //componentVO.setTableDefineVO(tableDO2VO(platformClientUtil.getPortalService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true));
                  componentVO.setTableDefineVO(tableDO2VO(platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true));
               } catch (PLException vciError) {
                  throw WebUtil.getVciBaseException(vciError);
               }
@@ -1285,7 +1278,7 @@
               tableDefineVO= tableDefineVOMap.get(key);
            }else{
               try {
                  tableDefineVO = tableDO2VO(ServiceProvider.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true);
                  tableDefineVO = tableDO2VO(platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true);
               } catch (PLException vciError) {
                  throw WebUtil.getVciBaseException(vciError);
               }
@@ -1336,7 +1329,7 @@
               componentVO.setFormDefineVO(formDefineVOMap.get(key));
            }else{
               try {
                  componentVO.setFormDefineVO(formDO2VO(ServiceProvider.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId())));
                  componentVO.setFormDefineVO(formDO2VO(platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId())));
               } catch (PLException vciError) {
                  throw WebUtil.getVciBaseException(vciError);
               }
@@ -1386,7 +1379,32 @@
   @Override
   public List<UIButtonDefineVO> listButtonByComponent(String pkComponent){
      try {
         List<UIButtonDefineVO> buttonDefineVOS = buttonDO2VOs(Arrays.stream(ServiceProvider.getUIService().getPLTabButtonsByTableOId(pkComponent)).collect(Collectors.toSet())).stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList());
         List<UIButtonDefineVO> buttonDefineVOS = buttonDO2VOs(Arrays.stream(platformClientUtil.getUIService().getPLTabButtonsByTableOId(pkComponent)).collect(Collectors.toSet())).stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList());
         Map<String,RoleRightInfo> allRightRoleMap = new HashMap<>();
         RoleRightInfo[] bts = platformClientUtil.getFrameworkService().getRoleRightByUserName("bt");
         Map<String,Long> rightMap = new HashMap<String,Long>();
         for(RoleRightInfo obj:bts){
            allRightRoleMap.put(obj.funcId, obj);
            rightMap.put(obj.funcId,obj.rightValue);
         }
         //循环对按钮权限进行判断,没有权限的将移除buttonDefineVOS对象
         Iterator<UIButtonDefineVO> buttonDefineVO = buttonDefineVOS.iterator();
         while (buttonDefineVO.hasNext()){
            UIButtonDefineVO buttonDefine = buttonDefineVO.next();
            if(rightMap.containsKey(buttonDefine.getPkComponent())) {
               Long rightValue = rightMap.get(buttonDefine.getPkComponent());
               int nodeValue = buttonDefine.getOrderNum();
               if (nodeValue >= 0 && nodeValue <= 63) {
                  //进行位与操作,如果相等则表示具有当前操作的权限
                  long preValue = (rightValue >> nodeValue) & 1;
                  if (preValue != 1) {
                     buttonDefineVO.remove();
                  }
               }
            }
         }
         if(CollectionUtils.isEmpty(buttonDefineVOS)){
            return buttonDefineVOS;
         }
@@ -1460,8 +1478,7 @@
            //查找参数
            Map<String,String> params = new HashMap<>();
            try {
               //PLCommandParameter[] parameters = platformClientUtil.getPortalService().getPLCommandParametersByCommandOId(buttonVO.getOid());
               PLCommandParameter[] parameters = ServiceProvider.getUIService().getPLCommandParametersByCommandOId(buttonVO.getOid());
               PLCommandParameter[] parameters = platformClientUtil.getUIService().getPLCommandParametersByCommandOId(buttonVO.getOid());
               if(parameters!=null && parameters.length > 0){
                  for(PLCommandParameter parameter: parameters){
                     params.put(parameter.plKey,parameter.plValue);
@@ -1526,10 +1543,7 @@
      WebUtil.alertNotNull(btmType,"业务类型或者链接类型",id,"UI上下文的编号");
      PLUILayout[] obj = null;
      try {
         obj = ServiceProvider.getUIService().getPLUILayoutsByRelatedType(btmType);
//         obj = platformClientUtil.getPortalService().getPLPageLayoutDefinationsByRelatedType(btmType);
//         obj = ServiceProvider.geT(btmType);
         obj = platformClientUtil.getUIService().getPLUILayoutsByRelatedType(btmType);
      } catch (PLException vciError) {
         throw WebUtil.getVciBaseException(vciError);
      }
@@ -1541,7 +1555,6 @@
         }
      }
      return UIContentDO2VO(context,true);
//      return UIContentDO2VO(null,true);
   }
}