yuxc
2024-06-04 93f7335e1a52591662d5d37f41ac352860b2ca2a
Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java
@@ -1,18 +1,21 @@
package com.vci.web.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.vci.base.common.utility.ObjectUtility;
import com.vci.client.bof.ClientBusinessObject;
import com.vci.client.common.providers.ServiceProvider;
import com.vci.common.qt.object.*;
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.common.VCIError;
import com.vci.corba.omd.data.AttributeValue;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.qtm.QTInfo;
import com.vci.corba.query.ObjectQueryService;
import com.vci.corba.query.ObjectQueryServicePrx;
import com.vci.corba.query.data.BtmRefQueryOption;
import com.vci.corba.query.data.KV;
import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
import com.vci.mw.client.InvocationUtility;
import com.vci.starter.web.annotation.Column;
import com.vci.starter.web.constant.QueryOptionConstant;
import com.vci.corba.query.data.BtmRefQueryOption;
import com.vci.starter.web.enumpck.BooleanEnum;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
@@ -28,16 +31,12 @@
import org.apache.commons.lang3.StringUtils;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.omg.CORBA.IntHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import com.vci.client.bof.ClientBusinessObject;
import plm.bs.bom.clientobject.ClientLinkObject;
import plm.bs.bom.common.*;
import plm.oq.objectQuery.common.*;
import java.lang.reflect.Field;
import java.util.*;
@@ -226,7 +225,7 @@
      Optional.ofNullable(btmTypeVO.getAttributes()).orElseGet(()->new ArrayList<>()).stream().forEach(attribute->{
         try {
            cbo.setAttributeValueWithNoCheck(attribute.getId(),attribute.getDefaultValue());
         } catch (VCIError vciError) {
         } catch (PLException vciError) {
            if(logger.isErrorEnabled()){
               logger.error("设置属性的值的时候出现了错误",vciError);
            }
@@ -372,7 +371,7 @@
            if(mergeCondition == null){
               mergeCondition = condition;
            }else{
               mergeCondition = Tool.mergeCondition(mergeCondition, condition, isOr?Connector.OR:Connector.AND);
               mergeCondition = Tool.mergeCondition(mergeCondition, condition, isOr? Connector.OR:Connector.AND);
            }
         }
      }
@@ -617,25 +616,19 @@
            logger.error("没有找到查询服务");
            throw new VciBaseException(msgCodePrefix+"qtServerNull", new String[]{});
         }
         IntHolder count = new IntHolder();
//         IntHolder count = new IntHolder();
         ObjectQueryService.FindBTMObjectsV3Result bos = null;
         String invo = JSONObject.toJSONString(InvocationUtility.getInvocation());
//         String invo = JSONObject.toJSONString(InvocationUtility.getInvocation());
         try{
            //bos = qtService.findBTMObjectsV3(invo,qt.getId(), Tool.qtTOXMl(qt).asXML(),count,refOpts.toArray(new BtmRefQueryOption[0]));
            bos = qtService.findBTMObjectsV3(qt.getId(), Tool.qtTOXMl(qt).asXML(), refOpts.toArray(new BtmRefQueryOption[0]));
         }catch (VCIError e){
         }catch (PLException e){
            //bos = qtService.findBTMObjectsV4(invo,qt.getId(), Tool.qtTOXMl(qt).asXML(),count,refOpts.toArray(new BtmRefQueryOption[0]));
            bos = qtService.findBTMObjectsV3(qt.getId(), Tool.qtTOXMl(qt).asXML(), refOpts.toArray(new BtmRefQueryOption[0]));
         }
         if (bos != null && bos.count > 0) {
            for (com.vci.corba.omd.data.BusinessObject bo : bos.returnValue) {
               com.vci.client.bof.ClientBusinessObject cbo = new com.vci.client.bof.ClientBusinessObject();
//               BusinessObject businessObject = new BusinessObject(bo.oid, bo.revisionid, bo.nameoid, bo.btName, bo.isLastR ? 1 : 0, bo.isFirstR ? 1 : 0,
//                     bo.isLastV ? 1 : 0, bo.isFirstV ? 1 : 0, bo.creator, String.valueOf(bo.createTime), bo.modifier, String.valueOf(bo.modifyTime),
//                     bo.revisionRule, bo.versionRule, bo.revisionSeq, bo.revisionValue, bo.versionSeq,
//                     bo.versionValue, bo.lctId, bo.lcStatus, String.valueOf(bo.ts), bo.id, bo.name, bo.description,
//                     bo.owner,null, null, null, null,
//                     bo.fromVersion, copyToAttributeValue(bo.newAttrValList), copyToAttributeValue(bo.hisAttrValList));
               cbo.setBusinessObject(bo);
               queryEnumText(cbo,enumAttrName);
               allCbos.add(cbo);
@@ -643,8 +636,7 @@
            //因为修改了查询的方式,所以就不需要单独查询参照
         }
         queryLcStatus(allCbos);
      } catch (VCIError e) {
         //logger.error(e.error_code,e);
      } catch (PLException e) {
         throw WebUtil.getVciBaseException(e);
      }
      return allCbos;
@@ -997,10 +989,10 @@
               }
            });
         }
      }catch(VCIError e){
      }catch(PLException e){
         //logger.error(e.error_code,e);
         //throw WebUtil.getVciBaseException(e);
      } catch (DocumentException e) {
      } catch (DocumentException | VCIError e) {
         logger.error("查询模板转换",e);
         throw new VciBaseException(this.msgCodePrefix + "qtError", new Object[]{name});
      }
@@ -1048,11 +1040,11 @@
      try{
//         count = platformClientUtil.getQueryService().findTotalCount();
         count = Integer.parseInt(String.valueOf(ServiceProvider.getOQService().findTotalCount(qt.getId(), Tool.qtTOXMl(qt).asXML())));
      }catch (VCIError e) {
      }catch (PLException e) {
         try {
//            count = platformClientUtil.getQueryService().findTotalCount(qt.getId(), Tool.qtTOXMl(qt).asXML());
            count = Integer.parseInt(String.valueOf(ServiceProvider.getOQService().findTotalCount(qt.getId(), Tool.qtTOXMl(qt).asXML())));
         }catch (VCIError ee) {
         }catch (PLException ee) {
//            logger.error(ee.error_code,ee);
//            throw WebUtil.getVciBaseException(ee);
         }
@@ -1113,8 +1105,8 @@
         if(results!=null && results.length>0 && results[0] != null && results[0].length>0){
            return WebUtil.getInt(results[0][0]);
         }
      }catch (VCIError e){
         throw WebUtil.getVciBaseException(e);
      } catch (PLException e) {
         throw new RuntimeException(e);
      }
      return 0;
   }
@@ -1210,7 +1202,7 @@
               dataList.add(data);
            }
         }
      } catch (VCIError e) {
      } catch (PLException e) {
         throw WebUtil.getVciBaseException(e);
      }
      return dataList;
@@ -1284,9 +1276,9 @@
         sql = sql.replaceAll(" FROM "," from ");
      }
      AttributeValue[] ava = null;
      com.vci.corba.omd.data.AttributeValue[] ava = null;
      if(conditionMap!=null&&!conditionMap.isEmpty()){
         ava = new AttributeValue[conditionMap.size()];
         ava = new com.vci.corba.omd.data.AttributeValue[conditionMap.size()];
         Iterator<String> it = conditionMap.keySet().iterator();
         int i = 0 ;
         while(it.hasNext()){
@@ -1295,15 +1287,16 @@
            if(value == null){
               value = "";
            }
            AttributeValue av = new AttributeValue(key, value);
            com.vci.corba.omd.data.AttributeValue av = new com.vci.corba.omd.data.AttributeValue(key, value);
            ava[i] = av;
            i++;
         }
      }else{
         ava = new AttributeValue[0];
         ava = new com.vci.corba.omd.data.AttributeValue[0];
      }
      try {
         String[][] results =platformClientUtil.getBOFactoryService().getSqlQueryResult(sql, ava);
//         String[][] results =platformClientUtil.getBOFactoryService().getSqlQueryResult(sql, ava);
         String[][] results =ServiceProvider.getBOFService().getSqlQueryResult(sql, ava);
         if(results.length>0){
            if(selectKeys==null) {
               String selectSql = sql.substring(sql.toLowerCase(Locale.ROOT).indexOf("select") + 6, sql.toLowerCase(Locale.ROOT).indexOf(" from")).trim();
@@ -1340,7 +1333,7 @@
         }else{
            return new ArrayList<Map>();
         }
      } catch (VCIError e) {
      } catch (PLException e) {
//         logger.error(e.error_code,e);
         throw WebUtil.getVciBaseException(e);
      }
@@ -1636,7 +1629,7 @@
                  } else {
                     cbo.setAttributeValueWithNoCheck(attrName.toLowerCase(), value);
                  }
               } catch (VCIError e) {
               } catch (PLException e) {
                  throw WebUtil.getVciBaseException(e);
               }
            }
@@ -2345,7 +2338,7 @@
               cboArray2Bo(batchCbos.getUpdateCboArray()),
               cloArray2Lo(batchCbos.getUpdateCloArray()),
               cboArray2Bo(batchCbos.getDeleteCboArray()), cloArray2Lo(batchCbos.getDeleteCloArray()));
      } catch (VCIError e) {
      } catch (PLException e) {
         throw WebUtil.getVciBaseException(e);
      }
   }