ludc
2024-04-08 197a03ea2d5e38496d5495ee8bc0d4e127f233cf
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java
@@ -6,6 +6,7 @@
import com.thoughtworks.xstream.io.xml.XppDriver;
import com.vci.client.common.providers.ServiceProvider;
import com.vci.corba.common.VCIError;
import com.vci.corba.portal.data.PLPageDefination;
import com.vci.corba.portal.data.PLUILayout;
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.exception.VciBaseException;
@@ -39,6 +40,10 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import com.vci.corba.portal.data.PortalVI;
import com.vci.corba.portal.data.PLAction;
import com.vci.corba.portal.data.PLTabPage;
import com.vci.corba.portal.data.PLTabButton;
import plm.corba.portal.*;
import java.util.*;
@@ -137,7 +142,8 @@
   public void checkInvalidXmlVI() {
      PortalVI[] portalVIS = null;
      try {
         portalVIS = platformClientUtil.getPortalService().getAllPortalVI();
         portalVIS = ServiceProvider.getUIService().getAllPortalVI();
         // portalVIS = platformClientUtil.getPortalService().getAllPortalVI();
      } catch (VCIError vciError) {
         throw WebUtil.getVciBaseException(vciError);
      }
@@ -482,7 +488,7 @@
    */
   @Override
   @VciUnLog
   public List<UITableDefineVO> tableDO2VOs(Collection<com.vci.corba.portal.data.PortalVI> prms, boolean queryDetail) {
   public List<UITableDefineVO> tableDO2VOs(Collection<PortalVI> prms, boolean queryDetail) {
      List<UITableDefineVO> tableDefineVOList = new ArrayList<>();
      Optional.ofNullable(prms).orElseGet(()->new ArrayList<com.vci.corba.portal.data.PortalVI>()).stream().forEach(portal->{
         UITableDefineVO defineVO = tableDO2VO(portal,queryDetail);
@@ -500,7 +506,10 @@
    */
   @Override
   @VciUnLog
   public UITableDefineVO tableDO2VO(com.vci.corba.portal.data.PortalVI portal, boolean queryDetail) {
   public UITableDefineVO tableDO2VO(PortalVI portal, boolean queryDetail) {
      if(){
      }
      UITableDefineVO tableDefineVO = new UITableDefineVO();
      tableDefineVO.setOid(portal.id);
      tableDefineVO.setId(portal.viName);
@@ -799,7 +808,7 @@
    */
   @Override
   @VciUnLog
   public List<UIActionVO> actionDO2VOs(Collection<com.vci.corba.portal.data.PLAction> actions) {
   public List<UIActionVO> actionDO2VOs(Collection<PLAction> actions) {
      List<UIActionVO> actionVOS = new ArrayList<>();
      Optional.ofNullable(actions).orElseGet(()->new ArrayList<>()).stream().forEach(action->{
         UIActionVO actionVO = actionDO2VO(action);
@@ -816,7 +825,7 @@
    */
   @Override
   @VciUnLog
   public UIActionVO actionDO2VO(com.vci.corba.portal.data.PLAction action) {
   public UIActionVO actionDO2VO(PLAction action) {
      UIActionVO actionVO = new UIActionVO();
      if(action!=null){
         actionVO.setOid(action.plOId);
@@ -998,24 +1007,24 @@
      return contentVO;
   }
//   private List<UILayoutVO> swapLayArea(List<UILayoutVO> layoutVOS){
//      List<UILayoutVO> layoutVOList = new ArrayList<>();
//      //1 导航区
//      //2 主内容区
//      //3 页签区
//      if(!CollectionUtils.isEmpty(layoutVOS)){
//         //只有一个区域的时候,都放在center里,哪怕本身是导航区
//         if(layoutVOS.size() == 1){
//            layoutVOS.get(0).setLayoutAreaType(UILayoutAreaTypeEnum.CENTER.getValue());
//            layoutVOList.add(layoutVOS.get(0));
//         }else{
//            Map<String,List<UILayoutVO>> layoutAreaMap = layoutVOS.stream().collect(Collectors.groupingBy(UILayoutVO::getLayoutAreaType));
//            if(layoutAreaMap.containsKey("1")){
//               //
//            }
//         }
//      }
//   }
   //   private List<UILayoutVO> swapLayArea(List<UILayoutVO> layoutVOS){
   //      List<UILayoutVO> layoutVOList = new ArrayList<>();
   //      //1 导航区
   //      //2 主内容区
   //      //3 页签区
   //      if(!CollectionUtils.isEmpty(layoutVOS)){
   //         //只有一个区域的时候,都放在center里,哪怕本身是导航区
   //         if(layoutVOS.size() == 1){
   //            layoutVOS.get(0).setLayoutAreaType(UILayoutAreaTypeEnum.CENTER.getValue());
   //            layoutVOList.add(layoutVOS.get(0));
   //         }else{
   //            Map<String,List<UILayoutVO>> layoutAreaMap = layoutVOS.stream().collect(Collectors.groupingBy(UILayoutVO::getLayoutAreaType));
   //            if(layoutAreaMap.containsKey("1")){
   //               //
   //            }
   //         }
   //      }
   //   }
   /**
    * 获取某个UI上下文的区域
@@ -1082,9 +1091,9 @@
    * @param pages 区域的数据对象
    * @return 显示对象
    */
   private List<UILayoutVO> UILayoutDO2VOs(Collection<com.vci.corba.portal.data.PLTabPage> pages, boolean queryDetail){
   private List<UILayoutVO> UILayoutDO2VOs(Collection<PLTabPage> pages, boolean queryDetail){
      List<UILayoutVO> contentVOS = new ArrayList<>();
      Optional.ofNullable(pages).orElseGet(()->new ArrayList<com.vci.corba.portal.data.PLTabPage>()).stream().forEach(page->{
      Optional.ofNullable(pages).orElseGet(()->new ArrayList<PLTabPage>()).stream().forEach(page->{
         UILayoutVO layoutVO = UILayoutDO2VO(page, queryDetail);
         if(layoutVO.isEnableStatus()) {
            contentVOS.add(layoutVO);
@@ -1108,7 +1117,7 @@
    * @return 区域的显示对象
    */
   @VciUnLog
   private UILayoutVO UILayoutDO2VO(com.vci.corba.portal.data.PLTabPage page, boolean queryDetail){
   private UILayoutVO UILayoutDO2VO(PLTabPage page, boolean queryDetail){
      UILayoutVO layoutVO = new UILayoutVO();
      if(page !=null ){
         layoutVO.setOid(page.plOId);
@@ -1194,19 +1203,21 @@
      if(StringUtils.isBlank(componentOid)){
         return null;
      }
//      if(!QUERY_BY_CACHE){
//         try {
//            return uiComponentDO2VO(platformClientUtil.getPortalService().getPLPageDefinationById(componentOid),true);
//         } catch (VCIError vciError) {
//            throw WebUtil.getVciBaseException(vciError);
//         }
//      }else{
//         List<UIComponentVO> componentVOS = self.selectAllUIComponent();
//         List<UIComponentVO> componentVOList = Optional.ofNullable(componentVOS).orElseGet(() -> new ArrayList<>()).stream().filter(s -> s.getOid().equalsIgnoreCase(componentOid)).collect(Collectors.toList());
//         if(!CollectionUtils.isEmpty(componentVOList)){
//            return componentVOList.get(0);
//         }
//      }
      if(!QUERY_BY_CACHE){
         try {
            PLPageDefination plPageDefination = ServiceProvider.getUIService().getPLPageDefinationById(componentOid);
            // PLPageDefination plPageDefination = platformClientUtil.getPortalService().getPLPageDefinationById(componentOid);
            return uiComponentDO2VO(plPageDefination,true);
         } catch (VCIError vciError) {
            throw WebUtil.getVciBaseException(vciError);
         }
      }else{
         List<UIComponentVO> componentVOS = self.selectAllUIComponent();
         List<UIComponentVO> componentVOList = Optional.ofNullable(componentVOS).orElseGet(() -> new ArrayList<>()).stream().filter(s -> s.getOid().equalsIgnoreCase(componentOid)).collect(Collectors.toList());
         if(!CollectionUtils.isEmpty(componentVOList)){
            return componentVOList.get(0);
         }
      }
      return null;
   }
@@ -1215,7 +1226,7 @@
    * @param pages 数据对象
    * @return 显示对象
    */
   private List<UIComponentVO> uiComponentDO2VOs(Collection<com.vci.corba.portal.data.PLPageDefination> pages, boolean queryDetail){
   private List<UIComponentVO> uiComponentDO2VOs(Collection<PLPageDefination> pages, boolean queryDetail){
      List<UIComponentVO> componentVOS = new ArrayList<>();
      pages.stream().forEach(page->{
         componentVOS.add(uiComponentDO2VO(page,queryDetail));
@@ -1229,7 +1240,7 @@
    * @return 显示对象
    */
   @VciUnLog
   private UIComponentVO uiComponentDO2VO(com.vci.corba.portal.data.PLPageDefination page, boolean queryDetail){
   private UIComponentVO uiComponentDO2VO(PLPageDefination page, boolean queryDetail){
      UIComponentVO componentVO = new UIComponentVO();
      if(page !=null){
         componentVO.setOid(page.plOId);
@@ -1266,10 +1277,11 @@
                  throw new VciBaseException("{0}里的表格{1}不存在", new String[]{btmType, componentDefineXO.getTemplateId()});
               }
               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.getPortalService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true));
               } catch (VCIError vciError) {
                  throw WebUtil.getVciBaseException(vciError);
               }
@@ -1426,15 +1438,13 @@
      }
   }
   /**
    * 按钮的数据对象转换为显示对象
    * @param buttons 按钮的数据对象
    * @return 显示对象
    */
   @Override
   public List<UIButtonDefineVO> buttonDO2VOs(Collection<com.vci.corba.portal.data.PLTabButton> buttons){
   public List<UIButtonDefineVO> buttonDO2VOs(Collection<PLTabButton> buttons){
      List<UIButtonDefineVO> buttonDefineVOS = new ArrayList<>();
      Optional.ofNullable(buttons).orElseGet(()->new ArrayList<>()).stream().forEach(button->{
         buttonDefineVOS.add(buttonDO2VO(button));
@@ -1563,5 +1573,6 @@
//      return UIContentDO2VO(context,true);
      return UIContentDO2VO(null,true);
   }
}