From d5ffec728c333461b466ba5761616f90076117e5 Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期五, 19 四月 2024 17:57:04 +0800
Subject: [PATCH] 1、主要完成对一些基础类的替换,将以前老的bean对象换成新平台的bean对象。 2、对树的查询接口进行修改测试联调。 3、对列表数据的查询接口进行修改测试联调。 4、对通用保存接口进行编写测试。

---
 Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java            |    2 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java                                      |   14 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeBreakCodeDaoImpl.java                                 |    4 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsStatusServiceImpl.java                                |   13 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/SmOperationServiceImpl.java                             |    8 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java                                  |    6 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/util/BeanUtil.java                                                   |    9 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java             |   33 +
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsBaseServiceI.java                                          |    2 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/UIDataServiceI.java                                          |    6 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/other/WorkFlowEndedNotice.java                                       |    8 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java                                   |   53 +-
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/VciFileObjectDaoImpl.java                                   |    2 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java                                  |  268 +++++++++--------
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java                                   |  217 +++++++------
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/controller/WebUIDataController.java                                  |    2 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/WebBoServiceI.java                                           |   24 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java                              |    2 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/other/OsMapToObjFunction.java                                        |    2 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java |    2 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java             |    4 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsStatusServiceI.java                                        |    4 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/WebLoServiceI.java                                           |   34 +-
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeRuleDaoImpl.java                                      |    4 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java                             |   64 ++-
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeEnumDaoImpl.java                                      |    4 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java                       |   28 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebSecretServiceImpl.java                               |    2 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/controller/WebUIController.java                                      |    1 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsLifeCycleServiceI.java                                     |   19 
 Source/platformProject/vci-platform-web/src/main/java/com/vci/web/pageModel/BatchCBO.java                                              |   13 
 31 files changed, 466 insertions(+), 388 deletions(-)

diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
index ca8524d..297d240 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java
@@ -286,7 +286,7 @@
 			if(!CollectionUtils.isEmpty(deptVOs)){
 				deptVOList.addAll(deptVOs);
 				String sql = "select pluseruid,pldeptuid from pluserdept where pluseruid in (" + WebUtil.toInSql(userOids.toArray(new String[0])) + ")";
-				List<ClientBusinessObject> cbos = boService.queryBySql(sql, null);
+				List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryBySql(sql, null);
 				if(!CollectionUtils.isEmpty(cbos)){
 					cbos.stream().forEach(cbo->{
 						String userOid = cbo.getAttributeValue("pluseruid");
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
index 7b28e76..fbd9f21 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
@@ -570,7 +570,7 @@
             if(!CollectionUtils.isEmpty(functionVOS)){
                 functionVOList.addAll(functionVOS);
                 String sql = "select plfuncoid,plroleoid from plroleright where plroleoid in (" + WebUtil.toInSql(roleOids.toArray(new String[0])) + ")";
-                List<ClientBusinessObject> cbos = boService.queryBySql(sql, null);
+                List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryBySql(sql, null);
                 if(!CollectionUtils.isEmpty(cbos)){
                     cbos.stream().forEach(cbo->{
                         String roleOid = cbo.getAttributeValue("plroleoid");
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java
index d8e0821..94de395 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmRoleQueryServiceImpl.java
@@ -251,7 +251,7 @@
 			if(!CollectionUtils.isEmpty(roleVOS)){
 				roleVOList.addAll(roleVOS);
 				String sql = "select pluseruid,plroleuid from pluserrole where pluseruid in (" + WebUtil.toInSql(userOids.toArray(new String[0])) + ")";
-				List<ClientBusinessObject> cbos = boService.queryBySql(sql, null);
+				List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryBySql(sql, null);
 				if(!CollectionUtils.isEmpty(cbos)){
 					cbos.stream().forEach(cbo->{
 						String userOid = cbo.getAttributeValue("pluseruid");
@@ -416,7 +416,7 @@
 			if(!CollectionUtils.isEmpty(roleVOS)){
 				roleVOList.addAll(roleVOS);
 				String sql = "select plroleoid,plfuncoid from plroleright where plfuncoid in (" + WebUtil.toInSql(userOids.toArray(new String[0])) + ")";
-				List<ClientBusinessObject> cbos = boService.queryBySql(sql, null);
+				List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryBySql(sql, null);
 				if(!CollectionUtils.isEmpty(cbos)){
 					cbos.stream().forEach(cbo->{
 						String funcOid = cbo.getAttributeValue("plfuncoid");
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
index 6abf11a..ea0a8c4 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmUserQueryServiceImpl.java
@@ -1,6 +1,8 @@
 package com.vci.frameworkcore.compatibility.impl;
 
+import com.vci.client.common.providers.ServiceProvider;
 import com.vci.corba.common.VCIError;
+import com.vci.corba.omd.data.AttributeValue;
 import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
 import com.vci.frameworkcore.pagemodel.SmPasswordStrategyVO;
 import com.vci.frameworkcore.pagemodel.SmUserVO;
@@ -21,8 +23,6 @@
 import com.vci.web.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.CachePut;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -35,6 +35,7 @@
 import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST;
 import static com.vci.web.constant.CacheNameConstant.VCI_OBJECT_SERVICE;
 import static com.vci.web.constant.CacheNameConstant.VCI_USER;
+import static com.vci.web.util.WebUtil.arryAndSqlToClientBusinessObject;
 
 /**
  * 鐢ㄦ埛鐨勬煡璇㈢浉鍏崇殑鏈嶅姟锛屽彲浠ュ吋瀹硅�佸钩鍙板拰鑰佺殑pdm
@@ -89,7 +90,7 @@
 	@Autowired(required = false)
 	@Lazy
 	private SmUserQueryServiceI self;
-	
+
 	/**
      *  鏍规嵁鐢ㄦ埛鍚嶈幏鍙栫敤鎴风殑瀵硅薄锛屼笉鍖哄垎澶у皬鍐�
      * @param userId 鐢ㄦ埛鍚�
@@ -121,10 +122,14 @@
 				+ " left join pluserdept up on " + queryWrapper.getTableNick() + ".pluid = up.pluseruid left join pldept pkDepartment on  up.pldeptuid = pkDepartment.pluid " +
 				" left join PLUSERPASSWORDSTRATEGY pkUserPassword on  " +queryWrapper.getTableNick() + ".pluid = pkUserPassword.pluseruid " +
 				queryWrapper.getLinkTableSql() + (StringUtils.isNotBlank(queryWrapper.getWhereSql())?(" where " + queryWrapper.getWhereSql()):"");
-		List<ClientBusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
-		if(!CollectionUtils.isEmpty(dataList)){
-			ClientBusinessObject cbo = dataList.get(0);
-			return cbo2VO(cbo);
+		try{
+			String[][] sqlQueryResult = ServiceProvider.getBOFService().getSqlQueryResult(sql + fromSql, null);
+			if(sqlQueryResult.length>0){
+				com.vci.client.bof.ClientBusinessObject cbo = arryAndSqlToClientBusinessObject(queryWrapper.getSelectFieldSql(),sqlQueryResult[0]);
+				return cbo2VO(cbo);
+			}
+		}catch (Exception e){
+			throw new VciBaseException("鏁版嵁瑙f瀽閿欒:" + e );
 		}
 		return null;
 	}
@@ -148,7 +153,7 @@
 					+ " left join pluserdept up on " + queryWrapper.getTableNick() + ".pluid = up.pluseruid left join pldept pkDepartment on  up.pldeptuid = pkDepartment.pluid " +
 					" left join PLUSERPASSWORDSTRATEGY pkUserPassword on  " +queryWrapper.getTableNick() + ".pluid = pkUserPassword.pluseruid " +
 					queryWrapper.getLinkTableSql() + (StringUtils.isNotBlank(queryWrapper.getWhereSql())?(" where " + queryWrapper.getWhereSql()):"");
-			List<ClientBusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
+			List<com.vci.client.bof.ClientBusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
 			if(!CollectionUtils.isEmpty(dataList)){
 				dataList.stream().forEach(cbo->{
 					userVOList.add(cbo2VO(cbo));
@@ -229,7 +234,7 @@
 				+ " left join pluserdept up on " + queryWrapper.getTableNick() + ".pluid = up.pluseruid left join pldept pkDepartment on  up.pldeptuid = pkDepartment.pluid " +
 				" left join PLUSERPASSWORDSTRATEGY pkUserPassword on  " +queryWrapper.getTableNick() + ".pluid = pkUserPassword.pluseruid " + (QUERY_FIELD_ROLE.equalsIgnoreCase(queryField)?roleSql:"") +
 				queryWrapper.getLinkTableSql() + (StringUtils.isNotBlank(queryWrapper.getWhereSql())?(" where " + queryWrapper.getWhereSql()):"");
-		List<ClientBusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
+		List<com.vci.client.bof.ClientBusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
 		if(!CollectionUtils.isEmpty(dataList)){
 			dataList.stream().forEach(cbo->{
 				userVOList.add(cbo2VO(cbo));
@@ -243,7 +248,7 @@
 	 * @param cbo 涓氬姟鏁版嵁
 	 * @return 鏄剧ず瀵硅薄
 	 */
-	private SmUserVO cbo2VO(ClientBusinessObject cbo){
+	private SmUserVO cbo2VO(com.vci.client.bof.ClientBusinessObject cbo){
 		SmUserDO userDO = new SmUserDO();
 		SmUserVO userVO = new SmUserVO();
 		WebUtil.copyValueToObjectFromCbos(cbo,userDO);
@@ -297,7 +302,7 @@
 				}
 			}
 		}
-		List<ClientBusinessObject> dataList = boService.queryBySql((isPage?("select " + pageSelectList.stream().collect(Collectors.joining(","))+ " from (select A.*,rownum RN from ( "):"") + sql + fromSql + (isPage?pageSubfix:""), null);
+		List<com.vci.client.bof.ClientBusinessObject> dataList = boService.queryBySql((isPage?("select " + pageSelectList.stream().collect(Collectors.joining(","))+ " from (select A.*,rownum RN from ( "):"") + sql + fromSql + (isPage?pageSubfix:""), null);
 		if(!CollectionUtils.isEmpty(dataList)){
 			dataList.stream().forEach(cbo->{
 				userVOList.add(cbo2VO(cbo));
@@ -613,7 +618,7 @@
 				+ " left join pluserdept up on " + queryWrapper.getTableNick() + ".pluid = up.pluseruid left join pldept pkDepartment on  up.pldeptuid = pkDepartment.pluid " +
 				" left join PLUSERPASSWORDSTRATEGY pkUserPassword on  " +queryWrapper.getTableNick() + ".pluid = pkUserPassword.pluseruid " +
 				queryWrapper.getLinkTableSql() + (StringUtils.isNotBlank(queryWrapper.getWhereSql())?(" where " + queryWrapper.getWhereSql()):"");
-		List<ClientBusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
+		List<com.vci.client.bof.ClientBusinessObject> dataList = boService.queryBySql(sql + fromSql, null);
 		List<Tree> treeList = new ArrayList<>();
 		if(!CollectionUtils.isEmpty(dataList)){
 			dataList.stream().forEach(cbo->{
@@ -643,7 +648,7 @@
 		String sql = " select plpassword from pluser where pluid = :userOid";
 		Map<String,String> conditionMap = new HashMap<>();
 		conditionMap.put("userOid",userOid.trim());
-		List<ClientBusinessObject> clientBusinessObjectList = boService.queryBySql(sql, conditionMap);
+		List<com.vci.client.bof.ClientBusinessObject> clientBusinessObjectList = boService.queryBySql(sql, conditionMap);
 		if(CollectionUtils.isEmpty(clientBusinessObjectList)){
 			return  false;
 		}
@@ -686,7 +691,7 @@
 	public SmPasswordStrategyVO getPasswordStrategyVOByOid(String oid){
 		VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(null, SmPasswordStrategyDO.class);
 		queryWrapperForDO.eq("oid",oid.trim());
-		List<ClientBusinessObject> cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
+		List<com.vci.client.bof.ClientBusinessObject> cboList = boService.queryBySql(queryWrapperForDO.getSelectFieldSql() + " from plpasswordstrategy " +
 				queryWrapperForDO.getTableNick() + queryWrapperForDO.getLinkTableSql() +
 				(StringUtils.isBlank(queryWrapperForDO.getWhereSql()) ? "" : (" where " + queryWrapperForDO.getWhereSql())), null);
 		if(!CollectionUtils.isEmpty(cboList)){
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/controller/WebUIController.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/controller/WebUIController.java
index f6cbef8..f7e9ec6 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/controller/WebUIController.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/controller/WebUIController.java
@@ -54,6 +54,7 @@
 	 * @return 琛ㄥ崟鐨勫畾涔�
 	 */
 	@GetMapping("/getFormDefineById")
+	@VciUnCheckRight
 	public UIFormDefineVO getFormDefineById(String btmType,String id){
 		return uiService.getFormById(btmType,id);
 	}
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/controller/WebUIDataController.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/controller/WebUIDataController.java
index 9cfa35f..ca771e0 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/controller/WebUIDataController.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/controller/WebUIDataController.java
@@ -55,6 +55,7 @@
      * @return 琛ㄥ崟鐨勬暟鎹�
      */
     @PostMapping("/dataFormQuery")
+    @VciUnCheckRight
     @VciBusinessLog(operateName = "琛ㄥ崟鐨勬煡璇�",description = "${param.btmname}閲岀殑${param.formDefineId}")
     public BaseResult<UIFormDataVO> getDataForForm(UIFormQuery formQuery){
         return BaseResult.success(uiDataService.getDataForForm(formQuery));
@@ -78,6 +79,7 @@
      * @return 鎵ц鐨勭粨鏋�
      */
     @PostMapping("/addSave")
+    @VciUnCheckRight
     @VciBusinessLog(operateName = "娣诲姞鏁版嵁",description = "${param.btmname}")
     public BaseResult<Map<String,Object>> addSave(@RequestBody FormDataDTO formDataDTO){
         return uiDataService.addSave(formDataDTO);
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeBreakCodeDaoImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeBreakCodeDaoImpl.java
index 10d917c..d5ee9b4 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeBreakCodeDaoImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeBreakCodeDaoImpl.java
@@ -173,13 +173,13 @@
         VciBaseUtil.alertNotNull(ruleOid,"瑙勫垯鍒嗙被",serialAccord,"娴佹按渚濇嵁");
         Map<String,String> conditionMap = new HashMap<String, String>();
         conditionMap.put("pkcoderule",ruleOid);
-        List<ClientBusinessObject> queryList = this.boService.queryCBO("codebreakcode", conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> queryList = this.boService.queryCBO("codebreakcode", conditionMap);
         if (CollectionUtils.isEmpty(queryList)){
             throw new VciBaseException("瑙勫垯鍒嗙被[{0}]鍦ㄧ郴缁熶腑涓嶅瓨鍦�",new String[]{ruleOid});
         }
         conditionMap.clear();
         String oid = "";
-        for (ClientBusinessObject object : queryList) {
+        for (com.vci.client.bof.ClientBusinessObject object : queryList) {
             oid += object.getOid() + ",";
         }
         oid = "(" + oid.substring(0,oid.length() -1) + ")";
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeEnumDaoImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeEnumDaoImpl.java
index 1cf977e..e717a70 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeEnumDaoImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeEnumDaoImpl.java
@@ -206,12 +206,12 @@
         conditionMap.put("ruleOid",ruleOid);
         String sql = " select a.oid as oid from " + BtmProvider.getInstance().getBTMTableName(BtmIdConstant.OS_CODE_ENUM_BTM_TYPE) + " a left join  "
                 + BtmProvider.getInstance().getBTMTableName(BtmIdConstant.OS_CODE_RULE_ELEMENT_BTM_TYPE) + " b on a.pkCodeRuleElement = b.oid where b.pkCodeRule = :ruleOid";
-        List<ClientBusinessObject> enumCbos = boService.queryBySql(sql, conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> enumCbos = boService.queryBySql(sql, conditionMap);
         if(CollectionUtils.isEmpty(enumCbos)){
             return  new ArrayList<OsCodeEnumDO>();
         }
         List<String> oidList = new ArrayList<String>();
-        for(ClientBusinessObject cbo : enumCbos){
+        for(com.vci.client.bof.ClientBusinessObject cbo : enumCbos){
             oidList.add(cbo.getOid());
         }
 
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeRuleDaoImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeRuleDaoImpl.java
index 806b8c3..023cf73 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeRuleDaoImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/OsCodeRuleDaoImpl.java
@@ -164,7 +164,7 @@
      */
     @Override
     public long batchUpdateLcStatus(Collection<String> oids, String lcStatus) {
-        List<ClientBusinessObject> cbos = boService.selectCBOByOidCollection(oids, "oscoderule");
+        List<com.vci.client.bof.ClientBusinessObject> cbos = boService.selectCBOByOidCollection(oids, "oscoderule");
         if(CollectionUtils.isEmpty(cbos)){
             return 0;
         }
@@ -180,7 +180,7 @@
      */
     @Override
     public int updateLcStatus(String oid, String lcStatus) {
-        ClientBusinessObject cbo = boService.selectCBOByOid(oid, "oscoderule");
+        com.vci.client.bof.ClientBusinessObject cbo = boService.selectCBOByOid(oid, "oscoderule");
         if(cbo == null || StringUtils.isBlank(cbo.getOid())){
             return 0;
         }
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/VciFileObjectDaoImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/VciFileObjectDaoImpl.java
index ee7ece4..1276b7d 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/VciFileObjectDaoImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/VciFileObjectDaoImpl.java
@@ -244,7 +244,7 @@
     public String selectSecret(String ownbizOid, String ownbizBtm) {
         if(StringUtils.isNotBlank(ownbizOid) && StringUtils.isNotBlank(ownbizBtm)){
             //鏍¢獙鏁版嵁鐨勫瘑绾�
-            ClientBusinessObject cbo = boService.selectCBOByOid(ownbizOid, ownbizBtm);
+            com.vci.client.bof.ClientBusinessObject cbo = boService.selectCBOByOid(ownbizOid, ownbizBtm);
             if(cbo !=null && StringUtils.isNotBlank(cbo.getOid())){
                 //鏈夊彲鑳芥槸鍏堜笂浼犳枃浠讹紝鎵�浠ユ垜浠繖涓笉鍒ゆ柇鏄惁瀛樺湪
                 return  cbo.getAttributeValue("secretgrade");
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java
index 3bd376e..0d760dc 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/dao/impl/WebProcessDaoImpl.java
@@ -653,7 +653,7 @@
 				}else {
 					caluesList.add("*");
 				}
-				List<ClientBusinessObject> cbos = boService.queryCBO(btm, conditionMap,null,caluesList);
+				List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryCBO(btm, conditionMap,null,caluesList);
 				data.addAll(boService.cbos2Map(cbos));
 			}
 		}
@@ -731,16 +731,16 @@
 		PageHelper pageHelper = new PageHelper(-1);
 		pageHelper.setSort("endTime");
 		pageHelper.setOrder(pageHelper.asc);
-		List<ClientBusinessObject> undoTaskCbos= boService.queryCBO(workitemBtmType, conditionMap);
+		List<com.vci.client.bof.ClientBusinessObject> undoTaskCbos= boService.queryCBO(workitemBtmType, conditionMap);
 		if(undoTaskCbos != null && undoTaskCbos.size() > 0) {
-			for(ClientBusinessObject cbo : undoTaskCbos) {
+			for(com.vci.client.bof.ClientBusinessObject cbo : undoTaskCbos) {
 				ProcessHistoryVO his = new ProcessHistoryVO();
 				String taskName = cbo.getName();
 				if(StringUtils.contains(taskName,"-")) {
 					taskName = taskName.substring(taskName.lastIndexOf("-") + 1);
 				}
 				his.setTaskName(taskName);
-				his.setCreateTime(cbo.getCreateTime());
+				his.setCreateTime(String.valueOf(cbo.getCreateTime()));
 				String userIdString = cbo.getAttributeValue("principal");
 				if(StringUtils.contains(userIdString,":")) {
 					userIdString = userIdString.substring(userIdString.indexOf(":") + 1);
@@ -946,19 +946,19 @@
 				oidList.add(oid);
 			}
 			//杞崲鎴�500闀垮害鐨�
-			List<ClientBusinessObject> cboList = new ArrayList<ClientBusinessObject>();
+			List<com.vci.client.bof.ClientBusinessObject> cboList = new ArrayList<com.vci.client.bof.ClientBusinessObject>();
 			if(oidList.size()>500){
 				List<List<String>> oidListForIn = WebUtil.switchListForOracleIn(oidList);
 				for(List<String> oidListForInRecord : oidListForIn){
 					Map<String,String> conditionMap = new HashMap<String, String>();
 					conditionMap.put("oid",QueryOptionConstant.IN + "(" + WebUtil.toInSql(oidListForInRecord.toArray(new String[0])) + ")" );
-					List<ClientBusinessObject> tempCbos = boService.queryCBO(btmType,conditionMap);
+					List<com.vci.client.bof.ClientBusinessObject> tempCbos = boService.queryCBO(btmType,conditionMap);
 					cboList.addAll(tempCbos);
 				}
 			}else{
 				Map<String,String> conditionMap = new HashMap<String, String>();
 				conditionMap.put("oid",QueryOptionConstant.IN + "(" + WebUtil.toInSql(oidList.toArray(new String[0])) + ")" );
-				List<ClientBusinessObject> tempCbos = boService.queryCBO(btmType,conditionMap);
+				List<com.vci.client.bof.ClientBusinessObject> tempCbos = boService.queryCBO(btmType,conditionMap);
 				cboList.addAll(tempCbos);
 			}
 			//鎵惧埌杩欎釜涓氬姟绫诲瀷鐨勮捣濮嬬姸鎬�
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/other/OsMapToObjFunction.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/other/OsMapToObjFunction.java
index b40ede2..2db57f5 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/other/OsMapToObjFunction.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/other/OsMapToObjFunction.java
@@ -17,5 +17,5 @@
      * @param data 鏁版嵁鐨勬槧灏�
      * @param obj 瀵硅薄
      */
-    void convert(ClientBusinessObject data, T obj);
+    void convert(com.vci.client.bof.ClientBusinessObject data, T obj);
 }
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/other/WorkFlowEndedNotice.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/other/WorkFlowEndedNotice.java
index 2d038a1..9937409 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/other/WorkFlowEndedNotice.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/other/WorkFlowEndedNotice.java
@@ -46,7 +46,7 @@
 
                 String sql = "SELECT T_OID,T_BTWNAME FROM PLATFORMLT_INPUT WHERE F_OID = '" + wfOid + "'";
                 ClientBusinessObjectOperation operation = new ClientBusinessObjectOperation();
-                List<ClientBusinessObject> queryResult = boService.queryBySql(sql, new HashMap<>());
+                List<com.vci.client.bof.ClientBusinessObject> queryResult = boService.queryBySql(sql, new HashMap<>());
                 if (queryResult.size() == 0) {
                     logger.info("娌℃湁鎵惧埌涓氬姟鏁版嵁");
                     return;
@@ -58,15 +58,15 @@
                         " where wp.OID = '" + oid + "'";
                 Map<String, String> conditionMap = new HashMap<>();
                 conditionMap.put("oid", oid);
-                List<ClientBusinessObject> codeResult = boService.queryCBO(btmName, conditionMap);
+                List<com.vci.client.bof.ClientBusinessObject> codeResult = boService.queryCBO(btmName, conditionMap);
                 conditionMap.clear();
                 conditionMap.put("createCodeOid", codeResult.get(0).getAttributeValue("oid"));
-                List<ClientBusinessObject> allCodeList = boService.queryCBO("codeAllCode", conditionMap);
+                List<com.vci.client.bof.ClientBusinessObject> allCodeList = boService.queryCBO("codeAllCode", conditionMap);
                 if (allCodeList.size() == 0) {
                     logger.info("娌℃湁鎵惧埌缂栫爜");
                     return;
                 }
-                for (ClientBusinessObject codeAllCode : allCodeList) {
+                for (com.vci.client.bof.ClientBusinessObject codeAllCode : allCodeList) {
                     codeAllCode.setLcStatus("Editing");
                     codeAllCode.setAttributeValue("lcstatus", "Editing");
                 }
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/pageModel/BatchCBO.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/pageModel/BatchCBO.java
index 7f49588..a43d086 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/pageModel/BatchCBO.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/pageModel/BatchCBO.java
@@ -1,9 +1,8 @@
 package com.vci.web.pageModel;
 
 import org.springframework.util.CollectionUtils;
-import plm.bs.bom.clientobject.ClientBusinessObject;
-import plm.bs.bom.clientobject.ClientLinkObject;
-
+import com.vci.client.bof.ClientBusinessObject;
+import com.vci.client.bof.ClientLinkObject;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -121,14 +120,14 @@
 		if( this.createCbos == null){
 			this.createCbos = new HashSet<ClientBusinessObject>();
 		}
-		return this.createCbos.stream().sorted(((o1, o2) -> o1.getCreateTime().compareTo(o2.getCreateTime()))).collect(Collectors.toList()).toArray(nullCboArray);
+		return this.createCbos.stream().sorted(((o1, o2) -> Math.toIntExact(o1.getCreateTime() - o2.getCreateTime()))).collect(Collectors.toList()).toArray(nullCboArray);
 	}
 	
 	public ClientLinkObject[] getCreateCloArray(){
 		if( this.createClos == null){
 			this.createClos = new HashSet<ClientLinkObject>();
 		}
-		return this.createClos.stream().sorted(((o1, o2) -> o1.getCreateTime().compareTo(o2.getCreateTime()))).collect(Collectors.toList()).toArray(nullCloArray);
+		return this.createClos.stream().sorted(((o1, o2) -> Math.toIntExact(o1.getCreateTime() - o2.getCreateTime()))).collect(Collectors.toList()).toArray(nullCloArray);
 	}
 	
 
@@ -136,14 +135,14 @@
 		if( this.updateCbos == null){
 			this.updateCbos = new HashSet<ClientBusinessObject>();
 		}
-		return this.updateCbos.stream().sorted(((o1, o2) -> o1.getCreateTime().compareTo(o2.getCreateTime()))).collect(Collectors.toList()).toArray(nullCboArray);
+		return this.updateCbos.stream().sorted(((o1, o2) -> Math.toIntExact(o1.getCreateTime() - o2.getCreateTime()))).collect(Collectors.toList()).toArray(nullCboArray);
 	}
 	
 	public ClientLinkObject[] getUpdateCloArray(){
 		if( this.updateClos == null){
 			this.updateClos = new HashSet<ClientLinkObject>();
 		}
-		return this.updateClos.stream().sorted(((o1, o2) -> o1.getCreateTime().compareTo(o2.getCreateTime()))).collect(Collectors.toList()).toArray(nullCloArray);
+		return this.updateClos.stream().sorted(((o1, o2) -> Math.toIntExact(o1.getCreateTime() - o2.getCreateTime()))).collect(Collectors.toList()).toArray(nullCloArray);
 	}
 
 	public ClientBusinessObject[] getDeleteCboArray(){
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsBaseServiceI.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsBaseServiceI.java
index 36854f2..acd411a 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsBaseServiceI.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsBaseServiceI.java
@@ -72,7 +72,7 @@
         String sql = (StringUtils.isNotBlank(pageSql)?" select oid,ts,creator,createTime,modifier,modifyTime,name,label,description  from (select A.* , rownum RN from (":"")
                 + baseSql+ pageSql ;
         WebBoServiceI boService = ApplicationContextProvider.getApplicationContext().getBean(WebBoServiceI.class);
-        List<ClientBusinessObject> dataMap = boService.queryBySql(sql, null);
+        List<com.vci.client.bof.ClientBusinessObject> dataMap = boService.queryBySql(sql, null);
         DataGrid<T> dataGrid = new DataGrid<>();
         if(!CollectionUtils.isEmpty(dataMap)){
             List<T> dataList = new ArrayList<>();
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsLifeCycleServiceI.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsLifeCycleServiceI.java
index e8da723..5345b26 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsLifeCycleServiceI.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsLifeCycleServiceI.java
@@ -1,5 +1,6 @@
 package com.vci.web.service;
 
+import com.vci.corba.omd.lcm.LifeCycle;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.BaseQueryObject;
 import com.vci.starter.web.pagemodel.DataGrid;
@@ -37,7 +38,7 @@
      * @param targetStatus 鐩爣鐨勭敓鍛藉懆鏈熺姸鎬侊紝涓嶅尯鍒嗗ぇ灏�
      * @throws VciBaseException 濡傛灉鐩爣鐢熷懡鍛ㄦ湡鍜屽綋鍓嶇敓鍛藉懆鏈熺姸鎬佹病鏈夎繛鎺ョ嚎鏃舵姏鍑哄紓甯�
      */
-    void transStatus(BusinessObject bo, String targetStatus) throws VciBaseException;
+    void transStatus(com.vci.corba.omd.data.BusinessObject bo, String targetStatus) throws VciBaseException;
     
     /**
      * 鎵归噺璺冭縼鐢熷懡鍛ㄦ湡鐘舵�侊紝杩欎簺鏁版嵁涓殑褰撳墠鐘舵�佸繀椤婚兘鏄竴鏍枫�傛垨鑰呮槸褰撳墠鐘舵�侀兘鍙互杩炴帴鍒扮洰鏍囩姸鎬�
@@ -45,7 +46,7 @@
      * @param targetStatus 鐩爣鐘舵�侊紝涓嶅尯鍒嗗ぇ灏忓啓
      * @throws VciBaseException 杞崲鐢熷懡鍛ㄦ湡鍑洪敊鐨勬椂鍊欐姏鍑哄紓甯�
      */
-    void transStatus(List<BusinessObject> boList, String targetStatus) throws VciBaseException;
+    void transStatus(List<com.vci.corba.omd.data.BusinessObject> boList, String targetStatus) throws VciBaseException;
     
     /**
      * 鎵归噺璺冭縼鐢熷懡鍛ㄦ湡鐘舵�侊紝杩欎簺鏁版嵁涓殑褰撳墠鐘舵�佸繀椤婚兘鏄竴鏍凤紝鎴栬�呮槸褰撳墠鐘舵�侀兘鍙互杩炴帴鍒扮洰鏍囩姸鎬�
@@ -53,7 +54,7 @@
      * @param targetStatus  鐩爣鐘舵�侊紝涓嶅尯鍒嗗ぇ灏忓啓
      * @throws VciBaseException 杞崲鐢熷懡鍛ㄦ湡鍑洪敊鐨勬椂鍊欐姏鍑哄紓甯�
      */
-    void transStatus(BusinessObject[] bos, String targetStatus) throws VciBaseException;
+    void transStatus(com.vci.corba.omd.data.BusinessObject[] bos, String targetStatus) throws VciBaseException;
     
     /**
      * 鎵归噺璺冭縼鐢熷懡鍛ㄦ湡鐘舵�侊紝杩欎簺鏁版嵁涓殑褰撳墠鐘舵�佸繀椤婚兘鏄竴鏍凤紝鎴栬�呮槸褰撳墠鐘舵�侀兘鍙互杩炴帴鍒扮洰鏍囩姸鎬�
@@ -61,7 +62,7 @@
      * @param targetStatus  鐩爣鐘舵�侊紝涓嶅尯鍒嗗ぇ灏忓啓
      * @throws VciBaseException 杞崲鐢熷懡鍛ㄦ湡鍑洪敊鐨勬椂鍊欐姏鍑哄紓甯�
      */
-    void transCboStatus(List<ClientBusinessObject> cboList, String targetStatus) throws VciBaseException;
+    void transCboStatus(List<com.vci.client.bof.ClientBusinessObject> cboList, String targetStatus) throws VciBaseException;
 
     /**
      * 閫氳繃缂栧彿鑾峰彇鐢熷懡鍛ㄦ湡鐘舵�佸璞★紝
@@ -74,14 +75,14 @@
      * @param lifeCycles 鏁版嵁瀵硅薄
      * @return 鏄剧ず瀵硅薄
      */
-    List<OsLifeCycleVO> lifeCycleDO2VOs(Collection<LifeCyle> lifeCycles);
+    List<OsLifeCycleVO> lifeCycleDO2VOs(Collection<LifeCycle> lifeCycles);
 
     /**
      * 鐢熷懡鍛ㄦ湡鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
      * @param lifeCyle 鏁版嵁瀵硅薄
      * @return 鏄剧ず瀵硅薄
      */
-    OsLifeCycleVO lifeCycleDO2VO(LifeCyle lifeCyle);
+    OsLifeCycleVO lifeCycleDO2VO(LifeCycle lifeCyle);
 
     /**
      * 鐢熷懡鍛ㄦ湡鏄剧ず瀵硅薄杞崲涓烘暟鎹璞�
@@ -120,7 +121,7 @@
      * @param lineVO 璺冭縼璺敱
      * @throws VciBaseException 璺冭縼鍑洪敊鐨勬槸浼氭姏鍑哄紓甯�
      */
-    void doTransVO(BusinessObject obj, OsLifeCycleLineVO lineVO) throws VciBaseException;
+    void doTransVO(com.vci.corba.omd.data.BusinessObject obj, OsLifeCycleLineVO lineVO) throws VciBaseException;
 
     /**
      * 鎵归噺鎵ц璺冭縼鎿嶄綔锛岃姹傚繀椤绘槸鍚屼竴涓笟鍔$被鍨嬩笅鐨�
@@ -129,7 +130,7 @@
      * @param releaseStatus 鍙戝竷鐘舵�侊紝濡傛灉鐩爣鐘舵�佹槸鍙戝竷鐘舵�佹椂浼犻�掕繖涓��
      * @throws VciBaseException  璺冭縼鍑洪敊鐨勬槸浼氭姏鍑哄紓甯�
      */
-    void batchTransVo(BusinessObject[] bos, OsLifeCycleLineVO[] lineVOs,
+    void batchTransVo(com.vci.corba.omd.data.BusinessObject[] bos, OsLifeCycleLineVO[] lineVOs,
                       String[] releaseStatus) throws VciBaseException;
 
     /**
@@ -138,7 +139,7 @@
      * @param vos 璺冭縼瀵硅薄
      * @throws VciBaseException 璺冭縼鍑洪敊鐨勬槸浼氭姏鍑哄紓甯�
      */
-    void batchTransVo(BusinessObject[] bos, OsLifeCycleLineVO[] vos)
+    void batchTransVo(com.vci.corba.omd.data.BusinessObject[] bos, OsLifeCycleLineVO[] vos)
             throws VciBaseException;
 
     /**
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsStatusServiceI.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsStatusServiceI.java
index 1d7d9fe..f2c02c9 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsStatusServiceI.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/OsStatusServiceI.java
@@ -23,14 +23,14 @@
      * @param statePool 鐘舵�佹睜鐨勬暟鎹璞�
      * @return 鏄剧ず瀵硅薄
      */
-    OsStatusVO statusDO2VO(StatePool statePool);
+    OsStatusVO statusDO2VO(com.vci.corba.omd.stm.StatePool statePool);
 
     /**
      * 鏁版嵁瀵硅薄杞崲涓烘樉绀哄璞�
      * @param statePools 鐘舵�佹睜鐨勬暟鎹璞� 闆嗗悎
      * @return 鏄剧ず瀵硅薄
      */
-    List<OsStatusVO> statusDO2VOs(Collection<StatePool> statePools);
+    List<OsStatusVO> statusDO2VOs(Collection<com.vci.corba.omd.stm.StatePool> statePools);
 
     /**
      * 鏌ヨ鎵�鏈夌殑鐘舵��
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/UIDataServiceI.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/UIDataServiceI.java
index 5022151..1ffea15 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/UIDataServiceI.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/UIDataServiceI.java
@@ -72,7 +72,7 @@
      * @return 鎵ц鐨勭粨鏋�
      * @throws VciBaseException 鎵ц鍑洪敊鐨勪細鎶涘嚭寮傚父锛屾垨鑰呬簨浠剁洿鎺ヨ繑鍥炰簡寮傚父
      */
-    BaseResult callPostEvent(Collection<ClientBusinessObject> cbos, Collection<ClientLinkObject> clos, String postEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException;
+    BaseResult callPostEvent(Collection<com.vci.client.bof.ClientBusinessObject> cbos, Collection<com.vci.client.bof.ClientLinkObject> clos, String postEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException;
 
     /**
      * 琛ㄥ崟鏁版嵁杞崲涓哄熀纭�瀵硅薄
@@ -115,7 +115,7 @@
      * @param cbo 涓氬姟鏁版嵁瀵硅薄
      * @return 鍩虹瀵硅薄
      */
-    BaseModel cbo2BaseModel(ClientBusinessObject cbo);
+    BaseModel cbo2BaseModel(com.vci.client.bof.ClientBusinessObject cbo);
 
     /**
      * 涓氬姟鏁版嵁琛ㄥ崟瀵硅薄杞崲涓哄熀纭�鐨勫睘鎬�
@@ -209,7 +209,7 @@
      * @param cbo 涓氬姟绫诲瀷鐨勫璞�
      * @param editFlag 鏄惁涓虹紪杈�
      */
-    void setValueToCbo(Map<String, String> dataLow, Map<String, String> baseDataLow, ClientBusinessObject cbo, boolean editFlag);
+    void setValueToCbo(Map<String, String> dataLow, Map<String, String> baseDataLow, com.vci.client.bof.ClientBusinessObject cbo, boolean editFlag);
 
     /**
      * 閾炬帴绫诲瀷鐨勭紪杈戞暟鎹�
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/WebBoServiceI.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/WebBoServiceI.java
index 2da3df4..5689dff 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/WebBoServiceI.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/WebBoServiceI.java
@@ -6,7 +6,7 @@
 import com.vci.starter.web.util.VciBaseUtil;
 import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
 import com.vci.web.pageModel.BatchCBO;
-import plm.bs.bom.clientobject.ClientBusinessObject;
+import com.vci.client.bof.ClientBusinessObject;
 import plm.bs.bom.clientobject.ClientBusinessObjectOperation;
 import plm.bs.bom.clientobject.ClientLinkObject;
 import plm.corba.qt.QTServiceOperations;
@@ -54,7 +54,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	 List<ClientBusinessObject> queryCBO(String btmType, Map<String, String> conditionMap) throws VciBaseException;
+	 List<com.vci.client.bof.ClientBusinessObject> queryCBO(String btmType, Map<String, String> conditionMap) throws VciBaseException;
 	
 	/**
 	 * 鏀寔鎺掑簭鍜屽垎椤电殑鏌ヨ涓氬姟绫诲瀷涓嬬殑鏁版嵁
@@ -64,7 +64,7 @@
 	 * @return 
 	 * @throws VciBaseException
 	 */
-	 List<ClientBusinessObject> queryCBO(String btmType, Map<String, String> conditionMap, PageHelper ph) throws VciBaseException;
+	 List<com.vci.client.bof.ClientBusinessObject> queryCBO(String btmType, Map<String, String> conditionMap, PageHelper ph) throws VciBaseException;
 	
 	/**
 	 * 鏀寔鑷畾涔夋煡璇㈠瓧娈碉紙鍖呮嫭鍙傜収銆佹灇涓惧拰鐢熷懡鍛ㄦ湡锛�
@@ -75,7 +75,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	 List<ClientBusinessObject> queryCBO(String btmType, Map<String, String> conditionMap, PageHelper ph, List<String> clauseList) throws VciBaseException;
+	 List<com.vci.client.bof.ClientBusinessObject> queryCBO(String btmType, Map<String, String> conditionMap, PageHelper ph, List<String> clauseList) throws VciBaseException;
 
 	/**
 	 * 鎷疯礉鍒嗛〉鍜屾帓搴忕殑璁剧疆鍒版煡璇㈡ā鏉�
@@ -91,7 +91,7 @@
 	 * @param enumAttrName 鏋氫妇鐨勫悕绉�
 	 * @throws VciBaseException 鏌ヨ鏋氫妇鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
 	 */
-	void queryEnumText(ClientBusinessObject cbo, ClientLinkObject clo, List<String> enumAttrName) throws VciBaseException;
+	void queryEnumText(com.vci.client.bof.ClientBusinessObject cbo, com.vci.client.bof.ClientLinkObject clo, List<String> enumAttrName) throws VciBaseException;
 
 	/**
 	 * 缁欓摼鎺ョ被鍨嬭缃睘鎬�
@@ -99,7 +99,7 @@
 	 * @param attributeName 灞炴�х殑鍚嶇О
 	 * @param attributeValue 灞炴�х殑鍊�
 	 */
-     void setAttributeValueForClo(ClientLinkObject clo, String attributeName, String attributeValue);
+     void setAttributeValueForClo(com.vci.client.bof.ClientLinkObject clo, String attributeName, String attributeValue);
 
     /**
 	 * 浣跨敤鏌ヨ鏂规鏉ユ煡璇㈡暟鎹紝杩斿洖CBO
@@ -109,7 +109,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	 List<ClientBusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap) throws VciBaseException;
+	 List<com.vci.client.bof.ClientBusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap) throws VciBaseException;
 	
 	/**
 	 * 浣跨敤鏌ヨ鏂规鏉ユ煡璇㈡暟鎹紝杩斿洖CBO锛屾敮鎸佸垎椤�
@@ -120,7 +120,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	 List<ClientBusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap, PageHelper ph) throws VciBaseException;
+	 List<com.vci.client.bof.ClientBusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap, PageHelper ph) throws VciBaseException;
 
 	/**
 	 * 浣跨敤鍚嶅瓧鑾峰彇鏌ヨ妯℃澘
@@ -141,7 +141,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	 List<ClientBusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap, PageHelper ph, List<String> clauseList) throws VciBaseException;
+	 List<com.vci.client.bof.ClientBusinessObject> queryCBOByScheme(String queryScheme, Map<String, String> conditionMap, Map<String, String> replaceMap, PageHelper ph, List<String> clauseList) throws VciBaseException;
 	
 	/**
 	 * 鏌ヨ鏁伴噺
@@ -187,7 +187,7 @@
      * @return CBO
      * @throws VciBaseException
      */
-     List<ClientBusinessObject> queryBySql(String sql, Map<String, String> conditionMap) throws VciBaseException;
+     List<com.vci.client.bof.ClientBusinessObject> queryBySql(String sql, Map<String, String> conditionMap) throws VciBaseException;
 
 	/**
 	 * 鍙敤sql璇彞鏌ヨ锛岃繖涓拰queryBySql鍖哄埆鏄紝鐗规畩鐨剆ql(濡傚寘鍚湁鍑芥暟鐨�)鍙互鐢ㄨ繖涓柟娉曪紝浣嗘槸鏈塻ql娉ㄥ叆椋庨櫓
@@ -195,7 +195,7 @@
 	 * @return CBO
 	 * @throws VciBaseException 鏌ヨ鍑洪敊娲绘姏鍑哄紓甯�
 	 */
-	List<ClientBusinessObject> queryByOnlySql(String sql) throws VciBaseException;
+	List<com.vci.client.bof.ClientBusinessObject> queryByOnlySql(String sql) throws VciBaseException;
 
 	/**
 	 * 鍙敤sql璇彞鏌ヨ锛岃繖涓拰queryBySqlForMap鍖哄埆鏄紝鐗规畩鐨剆ql(濡傚寘鍚湁鍑芥暟鐨�)鍙互鐢ㄨ繖涓柟娉曪紝浣嗘槸鏈塻ql娉ㄥ叆椋庨櫓
@@ -492,7 +492,7 @@
      * @return
      * @throws VciBaseException
      */
-     Map cbo2Map(ClientBusinessObject cbo) throws VciBaseException;
+     Map cbo2Map(com.vci.client.bof.ClientBusinessObject cbo) throws VciBaseException;
     
     /**
      * map杞负clientBusinessObject
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/WebLoServiceI.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/WebLoServiceI.java
index a070f16..09a7282 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/WebLoServiceI.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/WebLoServiceI.java
@@ -117,7 +117,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	 Map<String,ClientBusinessObject> queryLinkedCbo(LinkObject[] lo, boolean isDirection) throws VciBaseException;
+	 Map<String,com.vci.client.bof.ClientBusinessObject> queryLinkedCbo(LinkObject[] lo, boolean isDirection) throws VciBaseException;
 
 	/**
 	 *鏌ヨ閾炬帴绫诲瀷鏌愮鐨勪笟鍔$被鍨�
@@ -126,7 +126,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	 Map<String,ClientBusinessObject> queryLinkedCbo(List los, boolean isDirection) throws VciBaseException;
+	 Map<String,com.vci.client.bof.ClientBusinessObject> queryLinkedCbo(List los, boolean isDirection) throws VciBaseException;
 
 	/**
 	 *鏌ヨ閾炬帴绫诲瀷鏌愮鐨勪笟鍔$被鍨�
@@ -135,7 +135,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	 Map<String,ClientBusinessObject> queryLinkedCbo(ClientLinkObject[] clo, boolean isDirection) throws VciBaseException;
+	 Map<String,com.vci.client.bof.ClientBusinessObject> queryLinkedCbo(ClientLinkObject[] clo, boolean isDirection) throws VciBaseException;
 
 	/**
 	 * 鏌ヨ閾炬帴绫诲瀷鏌愮鐨勪笟鍔$被鍨�
@@ -145,7 +145,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	 Map<String, ClientBusinessObject> queryLinkedCbo(ClientLinkObject[] clol,
+	 Map<String, com.vci.client.bof.ClientBusinessObject> queryLinkedCbo(ClientLinkObject[] clol,
                                                       boolean isDirection, List<String> queryColumn) throws VciBaseException;
 
 	/**
@@ -156,7 +156,7 @@
 	 * @return
 	 * @throws VciBaseException
 	 */
-	 Map<String, ClientBusinessObject> queryLinkedCbo(List los,
+	 Map<String, com.vci.client.bof.ClientBusinessObject> queryLinkedCbo(List los,
                                                       boolean isDirection, List<String> queryColumn) throws VciBaseException;
 	
 	 /**
@@ -165,7 +165,7 @@
      * @return map
      * @throws VciBaseException
      */
-     List<Map> clos2Map(List<ClientLinkObject> clos) throws VciBaseException;
+     List<Map> clos2Map(List<com.vci.client.bof.ClientLinkObject> clos) throws VciBaseException;
     
     /**
      * ClientLinkObject 杞负HashMap
@@ -173,7 +173,7 @@
      * @return
      * @throws VciBaseException
      */
-     Map clo2Map(ClientLinkObject clo) throws VciBaseException;
+     Map clo2Map(com.vci.client.bof.ClientLinkObject clo) throws VciBaseException;
     
     /**
      * map杞负ClientLinkObject
@@ -234,14 +234,14 @@
 	 * @param linkTypeDataQuery 鏌ヨ瀵硅薄
 	 * @return 閾炬帴绫诲瀷鍜屽叧鑱旂殑to绔�
 	 */
-	List<BOAndLO> queryCLOAndBOBySchema(UILinkTypeDataQuery linkTypeDataQuery) ;
+	List<com.vci.corba.query.data.BOAndLO> queryCLOAndBOBySchema(UILinkTypeDataQuery linkTypeDataQuery) ;
 
 	/**
 	 * 浣跨敤閾炬帴绫诲瀷鐨勫悕绉版煡璇� 閾炬帴绫诲瀷鐨則o绔殑涓氬姟绫诲瀷
 	 * @param linkTypeDataQuery 鏌ヨ鐨勫璞�
 	 * @return 閾炬帴瀵硅薄鍜宼o绔笟鍔″璞�
 	 */
-	List<BOAndLO> queryCLOAndBoByLinkType(UILinkTypeDataQuery linkTypeDataQuery);
+	List<com.vci.corba.query.data.BOAndLO> queryCLOAndBoByLinkType(UILinkTypeDataQuery linkTypeDataQuery);
 
 	/**
 	 * 鏌ヨ鍒楄〃
@@ -275,13 +275,13 @@
 	 * @param attributeName 灞炴�у悕绉�
 	 * @param attributeValue 灞炴�х殑鍊�
 	 */
-	public default void setAttribute(ClientLinkObject clo,String attributeName,String attributeValue){
-		AttributeValue[] attrValues =clo.getLinkObject().newAttrValList;
-		ArrayList<AttributeValue> attrValList = new ArrayList();
-		AttributeValue attrVal;
+	public default void setAttribute(com.vci.client.bof.ClientLinkObject clo,String attributeName,String attributeValue){
+		com.vci.corba.omd.data.AttributeValue[] attrValues =clo.getLinkObject().newAttrValList;
+		ArrayList<com.vci.corba.omd.data.AttributeValue> attrValList = new ArrayList();
+		com.vci.corba.omd.data.AttributeValue attrVal;
 		int i;
 		if (attrValues != null && attrValues.length > 0) {
-			AttributeValue[] var9 = attrValues;
+			com.vci.corba.omd.data.AttributeValue[] var9 = attrValues;
 			i = attrValues.length;
 
 			for(int var7 = 0; var7 < i; ++var7) {
@@ -294,7 +294,7 @@
 		boolean isExist = false;
 
 		for(i = 0; i < attrValList.size(); ++i) {
-			attrVal = (AttributeValue)attrValList.get(i);
+			attrVal = (com.vci.corba.omd.data.AttributeValue)attrValList.get(i);
 			if (attrVal.attrName.toUpperCase().equals(attributeName.toUpperCase())) {
 				attrVal.attrVal = attributeValue;
 				isExist = true;
@@ -303,12 +303,12 @@
 		}
 
 		if (!isExist) {
-			attrVal = new AttributeValue();
+			attrVal = new com.vci.corba.omd.data.AttributeValue();
 			attrVal.attrName = attributeName.toUpperCase();
 			attrVal.attrVal = attributeValue;
 			attrValList.add(attrVal);
 		}
 
-		clo.getLinkObject().newAttrValList = (AttributeValue[])attrValList.toArray(new AttributeValue[attrValList.size()]);
+		clo.getLinkObject().newAttrValList = (com.vci.corba.omd.data.AttributeValue[])attrValList.toArray(new com.vci.corba.omd.data.AttributeValue[attrValList.size()]);
 	};
 }
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java
index 17970c2..58170e8 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java
@@ -265,12 +265,12 @@
 			enumVO.setLength((int) enumItem.length);
 
 			try {
-				enumVO.setLastModifyTime(VciDateUtil.str2Date(String.valueOf(enumItem.createTime),VciDateUtil.DateTimeFormat));
+				enumVO.setLastModifyTime(new Date(enumItem.createTime));
 			} catch (Exception e) {
 				e.printStackTrace();
 			}
 			try {
-				enumVO.setCreateTime(VciDateUtil.str2Date(String.valueOf(enumItem.createTime),VciDateUtil.DateTimeFormat));
+				enumVO.setCreateTime(new Date(enumItem.createTime));
 			} catch (Exception e) {
 				e.printStackTrace();
 			}
@@ -328,7 +328,7 @@
 	@Override
 	public List<KeyValue> getDataEnum(String oid, String btmname) {
 		VciBaseUtil.alertNotNull(oid,"涓氬姟鏁版嵁鐨勪富閿�",btmname,"涓氬姟绫诲瀷");
-		ClientBusinessObject cbo = boService.selectCBOByOid(oid, btmname);
+		com.vci.client.bof.ClientBusinessObject cbo = boService.selectCBOByOid(oid, btmname);
 		String secret = cbo.getAttributeValue("secretGrade");
 		//secret = DataSecretEnum.SECRET.getValue() + "";
 		if(StringUtils.isBlank(secret)){
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java
index c26bb62..70752cc 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java
@@ -1,6 +1,8 @@
 package com.vci.web.service.impl;
 
+import com.vci.client.common.providers.ServiceProvider;
 import com.vci.corba.common.VCIError;
+import com.vci.corba.omd.lcm.LifeCycle;
 import com.vci.starter.web.annotation.log.VciUnLog;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.BaseQueryObject;
@@ -102,7 +104,7 @@
 	 * @throws VciBaseException 濡傛灉鐩爣鐢熷懡鍛ㄦ湡鍜屽綋鍓嶇敓鍛藉懆鏈熺姸鎬佹病鏈夎繛鎺ョ嚎鏃舵姏鍑哄紓甯�
 	 */
 	@Override
-	public void transStatus(BusinessObject bo, String targetStatus)
+	public void transStatus(com.vci.corba.omd.data.BusinessObject bo, String targetStatus)
 			throws VciBaseException {
 		WebUtil.alertNotNull(bo,"涓氬姟鏁版嵁瀵硅薄",bo.lctId,"鐢熷懡鍛ㄦ湡缂栫爜",bo.lcStatus,"褰撳墠鐢熷懡鍛ㄦ湡鐘舵��",targetStatus,"鐩爣鐢熷懡鍛ㄦ湡鐘舵��");
 		OsLifeCycleLineVO transVO = getTransVO(bo.lctId, bo.lcStatus, targetStatus);
@@ -123,10 +125,10 @@
 	 * @throws VciBaseException 杞崲鐢熷懡鍛ㄦ湡鍑洪敊鐨勬椂鍊欐姏鍑哄紓甯�
 	 */
 	@Override
-	public void transStatus(List<BusinessObject> boList, String targetStatus)
+	public void transStatus(List<com.vci.corba.omd.data.BusinessObject> boList, String targetStatus)
 			throws VciBaseException {
 		WebUtil.alertNotNull(boList,"涓氬姟鏁版嵁瀵硅薄",targetStatus,"鐩爣瀵硅薄");
-		transStatus(boList.toArray(new BusinessObject[0]), targetStatus);
+		transStatus(boList.toArray(new com.vci.corba.omd.data.BusinessObject[0]), targetStatus);
 	}
 
 	/**
@@ -136,13 +138,13 @@
 	 * @throws VciBaseException 杞崲鐢熷懡鍛ㄦ湡鍑洪敊鐨勬椂鍊欐姏鍑哄紓甯�
 	 */
 	@Override
-	public void transStatus(BusinessObject[] bos, String targetStatus)
+	public void transStatus(com.vci.corba.omd.data.BusinessObject[] bos, String targetStatus)
 			throws VciBaseException {
 		WebUtil.alertNotNull(bos,"涓氬姟鏁版嵁瀵硅薄",targetStatus,"鐩爣瀵硅薄");
 		List<OsLifeCycleLineVO> transVOList = new ArrayList<>();
-		List<BusinessObject> transBOs = new ArrayList<>();
+		List<com.vci.corba.omd.data.BusinessObject> transBOs = new ArrayList<>();
 		for(int i = 0 ; i < bos.length ; i ++){
-			BusinessObject bo = bos[i];
+			com.vci.corba.omd.data.BusinessObject bo = bos[i];
 			WebUtil.alertNotNull(bo,"涓氬姟鏁版嵁瀵硅薄",bo.lctId,"鐢熷懡鍛ㄦ湡缂栫爜",bo.lcStatus,"褰撳墠鐢熷懡鍛ㄦ湡鐘舵��");
 			OsLifeCycleLineVO transVO = getTransVO(bo.lctId, bo.lcStatus, targetStatus);
 			if(transVO!=null){
@@ -155,7 +157,7 @@
 			}
 		}
 		if(!CollectionUtils.isEmpty(transBOs)) {
-			batchTransVo(transBOs.toArray(new BusinessObject[0]), transVOList.toArray(new OsLifeCycleLineVO[0]));
+			batchTransVo(transBOs.toArray(new com.vci.corba.omd.data.BusinessObject[0]), transVOList.toArray(new OsLifeCycleLineVO[0]));
 		}
 	}
 
@@ -166,10 +168,10 @@
 	 * @throws VciBaseException 杞崲鐢熷懡鍛ㄦ湡鍑洪敊鐨勬椂鍊欐姏鍑哄紓甯�
 	 */
 	@Override
-	public void transCboStatus(List<ClientBusinessObject> cboList,
+	public void transCboStatus(List<com.vci.client.bof.ClientBusinessObject> cboList,
 			String targetStatus) throws VciBaseException {
 		WebUtil.alertNotNull(cboList,"涓氬姟鏁版嵁瀵硅薄",targetStatus,"鐩爣瀵硅薄");
-		BusinessObject[] bos = new BusinessObject[cboList.size()];
+		com.vci.corba.omd.data.BusinessObject[] bos = new com.vci.corba.omd.data.BusinessObject[cboList.size()];
 		for(int i = 0 ; i < cboList.size() ; i ++){
 			bos[i] = cboList.get(i).getBusinessObject();
 		}
@@ -194,7 +196,7 @@
 	 * @return 鏄剧ず瀵硅薄
 	 */
 	@Override
-	public List<OsLifeCycleVO> lifeCycleDO2VOs(Collection<LifeCyle> lifeCycles){
+	public List<OsLifeCycleVO> lifeCycleDO2VOs(Collection<LifeCycle> lifeCycles){
 		List<OsLifeCycleVO> lifeCycleVOS = new ArrayList<>();
 		Optional.ofNullable(lifeCycles).orElseGet(()->new ArrayList<>()).stream().forEach(lifeCyle -> {
 			OsLifeCycleVO lifeCycleVO = lifeCycleDO2VO(lifeCyle);
@@ -209,12 +211,12 @@
 	 * @return 鏄剧ず瀵硅薄
 	 */
 	@Override
-	public OsLifeCycleVO lifeCycleDO2VO(LifeCyle lifeCycle){
+	public OsLifeCycleVO lifeCycleDO2VO(LifeCycle lifeCycle){
 		OsLifeCycleVO life = new OsLifeCycleVO();
 		Map<String, OsStatusVO> statusVOMap = statusService.selectAllStatusMap();
 		if(lifeCycle !=null) {
 			try {
-				life.setCreateTime(VciDateUtil.str2Date(lifeCycle.createTime,VciDateUtil.DateTimeFormat));
+				life.setCreateTime(new Date(lifeCycle.createTime));
 			} catch (Exception e) {
 				e.printStackTrace();
 			}
@@ -223,7 +225,7 @@
 			life.setId(lifeCycle.name);
 			life.setLastModifier(lifeCycle.modifier);
 			try {
-				life.setLastModifyTime(VciDateUtil.str2Date(lifeCycle.modifyTime,VciDateUtil.DateTimeFormat));
+				life.setLastModifyTime(new Date(lifeCycle.modifyTime));
 			} catch (Exception e) {
 				e.printStackTrace();
 			}
@@ -243,7 +245,7 @@
 					}else {
 						OsLifeCycleLineEventVO[] eventVOs = new OsLifeCycleLineEventVO[route.transitionVOEvents.length];
 						for (int i = 0; i < route.transitionVOEvents.length; i++) {
-							TransitionVOEvent event = route.transitionVOEvents[i];
+							com.vci.corba.omd.lcm.TransitionVOEvent event = route.transitionVOEvents[i];
 							OsLifeCycleLineEventVO eventVO = new OsLifeCycleLineEventVO();
 							eventVO.setOid(event.id);
 							eventVO.setEventFullName(event.name);
@@ -304,7 +306,7 @@
 			lifeCyle.bounds = new Bound[0];
 		}
 		//鍔犻摼鎺ョ嚎
-		List<TransitionVO> lines = new ArrayList<>();
+		List<com.vci.corba.omd.lcm.TransitionVO> lines = new ArrayList<>();
 		for (int i = 0; i < lifeCycleVO.getLines().size(); i++) {
 			OsLifeCycleLineVO lineVO = lifeCycleVO.getLines().get(i);
 			lines.add(lifeCycleLineVO2DO(lineVO));
@@ -323,7 +325,8 @@
 	@VciUnLog
 	public List<OsLifeCycleVO> selectAllLifeCycle() throws VciBaseException {
 		try {
-			LifeCyle[] lifeCyles = platformClientUtil.getLifeCycleService().getLifeCyles();
+//			LifeCyle[] lifeCyles = platformClientUtil.getLifeCycleService().getLifeCyles();
+			LifeCycle[] lifeCyles = ServiceProvider.getOMDService().getLifeCycleService().getLifeCycles();
 			return lifeCycleDO2VOs(Arrays.stream(lifeCyles).collect(Collectors.toList()));
 		} catch (VCIError vciError) {
 			 if(logger.isErrorEnabled()){
@@ -384,11 +387,12 @@
 	 * @throws VciBaseException 璺冭縼鍑洪敊鐨勬槸浼氭姏鍑哄紓甯�
 	 */
 	@Override
-	public void doTransVO(BusinessObject obj,OsLifeCycleLineVO lineVO) throws VciBaseException {
+	public void doTransVO(com.vci.corba.omd.data.BusinessObject obj,OsLifeCycleLineVO lineVO) throws VciBaseException {
 		if(lineVO!=null){
 			try {
-				TransitionVO transitionVO = lifeCycleLineVO2DO(lineVO);
-				platformClientUtil.getBOFactoryService().transferBusinessObject(new BusinessObjectHolder(obj), transitionVO);
+				com.vci.corba.omd.lcm.TransitionVO transitionVO = lifeCycleLineVO2DO(lineVO);
+//				platformClientUtil.getBOFactoryService().transferBusinessObject(new BusinessObjectHolder(obj), transitionVO);
+				ServiceProvider.getBOFService().transferBusinessObject(obj, transitionVO);
 			} catch (VCIError e) {
 				throw WebUtil.getVciBaseException(e);
 			}
@@ -402,21 +406,21 @@
 	 * @param lineVO 杩炴帴绾垮璞�
 	 * @return 骞冲彴鐨勮繛鎺ョ嚎瀵硅薄
 	 */
-	private TransitionVO lifeCycleLineVO2DO(OsLifeCycleLineVO lineVO){
-		TransitionVO transitionVO = new TransitionVO();
+	private com.vci.corba.omd.lcm.TransitionVO lifeCycleLineVO2DO(OsLifeCycleLineVO lineVO){
+		com.vci.corba.omd.lcm.TransitionVO transitionVO = new com.vci.corba.omd.lcm.TransitionVO();
 		transitionVO.id = lineVO.getOid();
 		transitionVO.source = lineVO.getSourceLifeStatus();
 		transitionVO.destination = lineVO.getTargetLifeStatus();
 		transitionVO.connect = lineVO.getName() == null?"":lineVO.getName();
 			//鍔犱簨浠�
-		TransitionVOEvent[] events;
+		com.vci.corba.omd.lcm.TransitionVOEvent[] events;
 		if(lineVO.getEvents() == null || lineVO.getEvents().length == 0){
-			events = new TransitionVOEvent[0];
+			events = new com.vci.corba.omd.lcm.TransitionVOEvent[0];
 		}else{
-			events = new TransitionVOEvent[lineVO.getEvents().length];
+			events = new com.vci.corba.omd.lcm.TransitionVOEvent[lineVO.getEvents().length];
 			for (int j = 0; j < lineVO.getEvents().length; j++) {
 				OsLifeCycleLineEventVO eventVO = lineVO.getEvents()[j];
-				TransitionVOEvent event = new TransitionVOEvent();
+				com.vci.corba.omd.lcm.TransitionVOEvent event = new com.vci.corba.omd.lcm.TransitionVOEvent();
 				event.id = eventVO.getOid();
 				event.name = eventVO.getEventFullName();
 				events[j] = event;
@@ -433,7 +437,7 @@
 	 * @throws VciBaseException 璺冭縼鍑洪敊鐨勬槸浼氭姏鍑哄紓甯�
 	 */
 	@Override
-	public void batchTransVo(BusinessObject[] bos,OsLifeCycleLineVO[] vos) throws VciBaseException{
+	public void batchTransVo(com.vci.corba.omd.data.BusinessObject[] bos,OsLifeCycleLineVO[] vos) throws VciBaseException{
 		batchTransVo(bos,vos,null);
 	}
 
@@ -605,7 +609,7 @@
 	 * @throws VciBaseException  璺冭縼鍑洪敊鐨勬槸浼氭姏鍑哄紓甯�
 	 */
 	@Override
-	public void batchTransVo(BusinessObject[] bos,OsLifeCycleLineVO[] lineVOs,String[] releaseStatus) throws VciBaseException{
+	public void batchTransVo(com.vci.corba.omd.data.BusinessObject[] bos,OsLifeCycleLineVO[] lineVOs,String[] releaseStatus) throws VciBaseException{
 		if(bos!=null && lineVOs != null && lineVOs.length == bos.length){
 			try {
 				if(releaseStatus == null){
@@ -614,11 +618,13 @@
 						releaseStatus[i] = "";
 					}
 				}
-				TransitionVO[] vos = new TransitionVO[lineVOs.length];
+				com.vci.corba.omd.lcm.TransitionVO[] vos = new com.vci.corba.omd.lcm.TransitionVO[lineVOs.length];
 				for(int i = 0 ; i < lineVOs.length; i ++){
 					vos[i] = lifeCycleLineVO2DO(lineVOs[i]);
 				}
-				platformClientUtil.getBOFactoryService().batchTransferBusinessObjectAndRelease(
+//				platformClientUtil.getBOFactoryService().batchTransferBusinessObjectAndRelease(
+//						bos, vos, releaseStatus);
+				ServiceProvider.getBOFService().batchTransferBusinessObjectAndRelease(
 						bos, vos, releaseStatus);
 			} catch (VCIError e) {
 				throw WebUtil.getVciBaseException(e);
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java
index 84e6368..e4f8a59 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java
@@ -278,7 +278,7 @@
                     "inner JOIN user_col_comments c on t.TABLE_NAME  = c.table_name and t.COLUMN_NAME = c.column_name where " +
                     "t.table_name = '" + VciBaseUtil.getTableName(btmTypeVO.getId()).toUpperCase(Locale.ROOT) + "' order by t.column_name asc";
             Map<String, OsBtmTypeAttributeVO> attributeVOMap = btmTypeVO.getAttributes().stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
-            List<ClientBusinessObject> cbosList = boService.queryBySql(sql, new HashMap<>());
+            List<com.vci.client.bof.ClientBusinessObject> cbosList = boService.queryBySql(sql, new HashMap<>());
             if(!CollectionUtils.isEmpty(cbosList)){
                 cbosList.stream().forEach(cbo->{
                     String attrId = cbo.getAttributeValue("column_name");
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsStatusServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsStatusServiceImpl.java
index 29dd8a2..3605e62 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsStatusServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/OsStatusServiceImpl.java
@@ -1,6 +1,8 @@
 package com.vci.web.service.impl;
 
+import com.vci.client.common.providers.ServiceProvider;
 import com.vci.corba.common.VCIError;
+import com.vci.corba.query.data.KV;
 import com.vci.starter.web.annotation.log.VciUnLog;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.BaseQueryObject;
@@ -85,15 +87,15 @@
      * @return 鏄剧ず瀵硅薄
      */
     @Override
-    public OsStatusVO statusDO2VO(StatePool statePool) {
+    public OsStatusVO statusDO2VO(com.vci.corba.omd.stm.StatePool statePool) {
         OsStatusVO statusVO = new OsStatusVO();
         if(statePool!=null){
             statusVO.setOid(statePool.oid);
             statusVO.setCreator(statePool.creator);
             statusVO.setLastModifier(statePool.modifier);
             try {
-                statusVO.setCreateTime(VciDateUtil.str2Date(statePool.createTime,VciDateUtil.DateTimeFormat));
-                statusVO.setLastModifyTime(VciDateUtil.str2Date(statePool.modifyTime,VciDateUtil.DateTimeFormat));
+                statusVO.setCreateTime(new Date(statePool.createTime));
+                statusVO.setLastModifyTime(new Date(statePool.modifyTime));
                 statusVO.setTs(VciDateUtil.str2Date(statePool.ts,VciDateUtil.DateTimeMillFormat));
             } catch (Exception e) {
                 e.printStackTrace();
@@ -112,7 +114,7 @@
      * @return 鏄剧ず瀵硅薄
      */
     @Override
-    public List<OsStatusVO> statusDO2VOs(Collection<StatePool> statePools) {
+    public List<OsStatusVO> statusDO2VOs(Collection<com.vci.corba.omd.stm.StatePool> statePools) {
         List<OsStatusVO> statusVOS = new ArrayList<>();
         if(!CollectionUtils.isEmpty(statePools)){
             statePools.stream().forEach(statePool -> {
@@ -132,7 +134,8 @@
     @VciUnLog
     public List<OsStatusVO> selectAllStatus() {
         try {
-            return statusDO2VOs(Arrays.stream(platformClientUtil.getStatePoolService().getStatePools()).collect(Collectors.toList()));
+//            return statusDO2VOs(Arrays.stream(platformClientUtil.getStatePoolService().getStatePools()).collect(Collectors.toList()));
+            return statusDO2VOs(Arrays.stream(ServiceProvider.getOMDService().getStateService().getStatePools()).collect(Collectors.toList()));
         } catch (VCIError vciError) {
             throw WebUtil.getVciBaseException(vciError);
         }
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/SmOperationServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/SmOperationServiceImpl.java
index e958126..f6fa2b3 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/SmOperationServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/SmOperationServiceImpl.java
@@ -39,7 +39,7 @@
         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<ClientBusinessObject> functionCbos = boService.queryBySql(sql, conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> functionCbos = boService.queryBySql(sql, conditionMap);
         if(CollectionUtils.isEmpty(functionCbos)){
             //閮芥病鏈夎繖涓姛鑳�
             return new ArrayList<>();
@@ -50,7 +50,7 @@
         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<ClientBusinessObject> cbos = boService.queryBySql(sql, conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryBySql(sql, conditionMap);
         if(CollectionUtils.isEmpty(cbos)){
             //娌℃湁鎺堟潈
             return new ArrayList<>();
@@ -59,7 +59,7 @@
         //鑾峰彇鍏蜂綋鍖呭惈鍝簺鎸夐挳
         sql = "select o.ploperoid,o.plno from PLFUNCOPERATION o where o.plfuncoid = :functionOid ";
         conditionMap.remove("useroid");
-        List<ClientBusinessObject> operationLinkCbos = boService.queryBySql(sql, conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> operationLinkCbos = boService.queryBySql(sql, conditionMap);
         if(CollectionUtils.isEmpty(operationLinkCbos)){
             //鏍规湰娌℃湁鎸夐挳
             return new ArrayList<>();
@@ -80,7 +80,7 @@
             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<ClientBusinessObject> opertionCBOs = boService.queryBySql(sql, new HashMap<>());
+        List<com.vci.client.bof.ClientBusinessObject> opertionCBOs = boService.queryBySql(sql, new HashMap<>());
         List<SmOperationVO> operationVOS = new ArrayList<>();
         Optional.ofNullable(opertionCBOs).orElseGet(()->new ArrayList<>()).stream().forEach(cbo->{
             SmOperationVO operationVO = new SmOperationVO();
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
index 7741d25..cf07387 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
@@ -1,6 +1,8 @@
 package com.vci.web.service.impl;
 
+import com.vci.client.common.providers.ServiceProvider;
 import com.vci.corba.common.VCIError;
+import com.vci.corba.omd.lcm.LifeCycle;
 import com.vci.file.pagemodel.VciFileObjectVO;
 import com.vci.frameworkcore.lcstatuspck.FrameworkDataLCStatus;
 import com.vci.frameworkcore.lcstatuspck.ReleaseDataLCStatus;
@@ -246,7 +248,7 @@
         UIFormDataVO formDataVO = new UIFormDataVO();
         replaceMap.put("oid", formQuery.getOid().trim());
         if(!formDefineVO.isLinkTypeFlag()) {
-            List<ClientBusinessObject> cbos = null;
+            List<com.vci.client.bof.ClientBusinessObject> cbos = null;
             if (StringUtils.isNotBlank(queryTemplate)) {
                 replaceMap.put("oid", formQuery.getOid().trim());
                 cbos = boService.queryCBOByScheme(queryTemplate, conditionMap, replaceMap, null, queryFieldList.stream().collect(Collectors.toList()));
@@ -255,7 +257,7 @@
                 cbos = boService.queryCBO(formQuery.getBtmname(), conditionMap, null, queryFieldList.stream().collect(Collectors.toList()));
             }
             if (!CollectionUtils.isEmpty(cbos)) {
-                ClientBusinessObject cbo = cbos.get(0);
+                com.vci.client.bof.ClientBusinessObject cbo = cbos.get(0);
                 formDataVO.setData(boService.cbo2Map(cbo));
             } else {
                 throw new VciBaseException(DATA_OID_NOT_EXIST);
@@ -390,7 +392,7 @@
 
             if(treeQuery.isQueryRoot()){
                 //鏄煡璇㈡牴鑺傜偣
-                List<ClientBusinessObject> rootCbos = null;
+                List<com.vci.client.bof.ClientBusinessObject> rootCbos = null;
                 if(StringUtils.isNotBlank(queryTemplate)){
                     //璇存槑鏄彍鍗曢噷瀹氫箟浜嗘煡璇㈡ā鏉跨殑
                     rootCbos = boService.queryCBOByScheme(queryTemplate, null, replaceMap);
@@ -426,7 +428,7 @@
                 return rootTreeList;
             }else{
                 //杩欎釜涓嶆槸璺熻妭鐐癸紝浣嗘槸涓�鑸彧鏄鍔犱竴涓�愮骇鏌ヨ锛屽洜涓哄叏閮ㄦ煡璇㈢殑鏃跺�欙紝鍦ㄦ牴鑺傜偣宸茬粡鍏ㄩ儴鏌ヨ瀹屼簡
-                List<ClientBusinessObject> thisChildren = null;
+                List<com.vci.client.bof.ClientBusinessObject> thisChildren = null;
                 if (StringUtils.isNotBlank(queryTemplate)) {
                     thisChildren = boService.queryCBOByScheme(queryTemplate, treeQuery.getConditionMap(), replaceMap, null, queryFieldList);
                 } else {
@@ -455,7 +457,7 @@
             }
             if(treeQuery.isQueryRoot()){
                 //鏌ヨ鏍硅妭鐐�.鎴戜滑闇�瑕佸垽鏂槸鍚﹁缃簡鏍硅妭鐐圭殑鏌ヨ鏉′欢
-                List<BOAndLO> rootCbos = null;
+                List<com.vci.corba.query.data.BOAndLO> rootCbos = null;
                 String parentFieldNameAndValue = treeDefineVO.getShowLinkAbs();
                 if(StringUtils.isNotBlank(parentFieldNameAndValue)){
                     if(StringUtils.isNotBlank(queryTemplate)){
@@ -541,7 +543,7 @@
      */
     private void queryTreeForBO(List<Tree> rootTreeList, String queryTemplate,List<String> queryFieldList,TreeQueryObject treeQueryObject) {
         for (Tree rootTree : rootTreeList) {
-            List<ClientBusinessObject> thisChildren = null;
+            List<com.vci.client.bof.ClientBusinessObject> thisChildren = null;
             Map<String,String> sourceDataMap = rootTree.getAttributes();
             sourceDataMap.put("f_oid",rootTree.getOid());
             Map<String,String> conditionMap = new HashMap<>();
@@ -588,7 +590,7 @@
      * @param parentOid 涓婄骇鐨勪富閿�
      * @return 鏍�
      */
-    private List<Tree> cbo2Trees(Collection<ClientBusinessObject> cbos,String valueField,String textField,String parentFieldName,boolean showCheckBox,String parentOid){
+    private List<Tree> cbo2Trees(Collection<com.vci.client.bof.ClientBusinessObject> cbos,String valueField,String textField,String parentFieldName,boolean showCheckBox,String parentOid){
         final int[] i = {0};
         List<Tree> rootList = new ArrayList<>();
         List<Tree> children = new ArrayList<>();
@@ -610,7 +612,9 @@
                 children.add(tree);
             }
         });
-
+        if(rootList.size() == 0 && children.size() == 0){
+            return rootList;
+        }
         return Tree.getChildList(rootList,children);
     }
 
@@ -624,15 +628,15 @@
      * @param parentOid 涓婄骇鐨勫��
      * @return 鏍戝舰鏁版嵁
      */
-    public List<Tree> cloAndCbo2Trees(Collection<BOAndLO> boAndLOS,String valueField,String textField,String parentFieldName,boolean showCheckBox,String parentOid){
+    public List<Tree> cloAndCbo2Trees(Collection<com.vci.corba.query.data.BOAndLO> boAndLOS,String valueField,String textField,String parentFieldName,boolean showCheckBox,String parentOid){
         final int[] i = {0};
         List<Tree> rootList = new ArrayList<>();
         List<Tree> children = new ArrayList<>();
         boAndLOS.stream().forEach(boAndLO->{
             Tree tree = new Tree();
-            ClientBusinessObject cbo = new ClientBusinessObject();
+            com.vci.client.bof.ClientBusinessObject cbo = new com.vci.client.bof.ClientBusinessObject();
             cbo.setBusinessObject(boAndLO.bo);
-            ClientLinkObject clo = new ClientLinkObject();
+            com.vci.client.bof.ClientLinkObject clo = new com.vci.client.bof.ClientLinkObject();
             clo.setLinkObject(boAndLO.lo);
             Map<String,String> cloMap = loService.clo2Map(clo);
             Map<String,String> cbo2Map = boService.cbo2Map(cbo);
@@ -674,7 +678,7 @@
      * @param fieldExpress 琛ㄨ揪寮忕殑鍊�
      * @return 杞崲鍚庣殑鍊�
      */
-    private String getValueByExpress(ClientBusinessObject cbo,String fieldExpress){
+    private String getValueByExpress(com.vci.client.bof.ClientBusinessObject cbo,String fieldExpress){
         if(StringUtils.isBlank(fieldExpress)){
             return "";
         }
@@ -866,12 +870,12 @@
      * @throws VciBaseException 鎵ц鍑洪敊鐨勪細鎶涘嚭寮傚父锛屾垨鑰呬簨浠剁洿鎺ヨ繑鍥炰簡寮傚父
      */
     @Override
-    public BaseResult callPostEvent(Collection<ClientBusinessObject> cbos, Collection<ClientLinkObject> clos, String postEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException{
+    public BaseResult callPostEvent(Collection<com.vci.client.bof.ClientBusinessObject> cbos, Collection<com.vci.client.bof.ClientLinkObject> clos, String postEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException{
         if(CollectionUtils.isEmpty(cbos)){
             return BaseResult.success();
         }
         String btmType = !CollectionUtils.isEmpty(cbos)?cbos.stream().findFirst().get().getBtmName():null;
-        String linkType = !CollectionUtils.isEmpty(clos)?clos.stream().findFirst().get().getLinkObject().linkTypeName:null;
+        String linkType = !CollectionUtils.isEmpty(clos)?clos.stream().findFirst().get().getLinkObject().ltName:null;
         if(StringUtils.isNotBlank(postEvent)){
             //鍓嶇疆浜嬩欢
             //bean鐨勫悕瀛�#鏂规硶; 鎴栬�呭叏璺緞銆傛渶鍚庝竴涓槸鏂规硶鐨勫悕瀛�
@@ -1057,16 +1061,17 @@
             return beforeResult;
         }
         //灏佽鏁版嵁
-        BaseResult<ClientBusinessObject> resultCbo = wrapperCbo(formDataDTO,formDefineVO,false,false,false);
+        BaseResult<com.vci.client.bof.ClientBusinessObject> resultCbo = wrapperCbo(formDataDTO,formDefineVO,false,false,false);
         if(!resultCbo.isSuccess()){
             return BaseResult.fail(resultCbo.getMsg(),resultCbo.getMsgObjs());
         }
         //鎵ц淇濆瓨
         BaseResult<Map<String,Object>> result = BaseResult.success();
-        ClientBusinessObject afterCBO = null;
+        com.vci.client.bof.ClientBusinessObject afterCBO = null;
         try {
-            BusinessObject resultBO = platformClientUtil.getBOFactoryService().createBusinessObject(resultCbo.getObj().getBusinessObject(),false,false);
-            afterCBO = new ClientBusinessObject();
+//            BusinessObject resultBO = platformClientUtil.getBOFactoryService().createBusinessObject(resultCbo.getObj().getBusinessObject(),false,false);
+            com.vci.corba.omd.data.BusinessObject resultBO = ServiceProvider.getBOFService().createBusinessObject(resultCbo.getObj().getBusinessObject(),false,false);
+            afterCBO = new com.vci.client.bof.ClientBusinessObject();
             afterCBO.setBusinessObject(resultBO);
             result.setObj(boService.cbo2Map(afterCBO));
         } catch (VCIError vciError) {
@@ -1078,11 +1083,12 @@
         //鍚庣疆浜嬩欢
         String afterEvent = formDataDTO.getPostEvent();
         try {
-            callPostEvent(Arrays.stream(new ClientBusinessObject[]{afterCBO}).collect(Collectors.toList()),null, afterEvent, VciChangeDocumentTypeEnum.ADD);
+            callPostEvent(Arrays.stream(new com.vci.client.bof.ClientBusinessObject[]{afterCBO}).collect(Collectors.toList()),null, afterEvent, VciChangeDocumentTypeEnum.ADD);
         }catch (Throwable e){
             //璇存槑鍚庣疆浜嬩欢鍑虹幇浜嗛敊璇紝閭d箞灏遍渶瑕佸垹闄や互鍓嶇殑杩欐潯鏁版嵁
             try {
-                platformClientUtil.getBOFactoryService().deleteBusinessObject(afterCBO.getBusinessObject(),1);
+//                platformClientUtil.getBOFactoryService().deleteBusinessObject(afterCBO.getBusinessObject(),1);
+                ServiceProvider.getBOFService().deleteBusinessObject(afterCBO.getBusinessObject(),1);
             } catch (VCIError vciError) {
                 throw WebUtil.getVciBaseException(vciError);
             }
@@ -1101,7 +1107,7 @@
      * @param newVersion 鏂扮増娆�
      * @return  鎵ц鐨勭粨鏋�
      */
-    private BaseResult<ClientBusinessObject> wrapperCbo(FormDataDTO formDataDTO,UIFormDefineVO formDefineVO,boolean editFlag,boolean newRevision,boolean newVersion){
+    private BaseResult<com.vci.client.bof.ClientBusinessObject> wrapperCbo(FormDataDTO formDataDTO,UIFormDefineVO formDefineVO,boolean editFlag,boolean newRevision,boolean newVersion){
         //鎵╁睍灞炴�х殑鍊�
         Map<String, String> data = formDataDTO.getData();
         Map<String,String> dataLow = new HashMap<>();
@@ -1142,7 +1148,7 @@
         if(!result.isSuccess()){
             return result;
         }
-        ClientBusinessObject cbo = createOrGetCbo(dataLow,baseDataMap,editFlag,newRevision,newVersion);
+        com.vci.client.bof.ClientBusinessObject cbo = createOrGetCbo(dataLow,baseDataMap,editFlag,newRevision,newVersion);
         return BaseResult.success(cbo);
     }
 
@@ -1152,7 +1158,7 @@
      * @return 鍩虹瀵硅薄
      */
     @Override
-    public BaseModel cbo2BaseModel(ClientBusinessObject cbo){
+    public BaseModel cbo2BaseModel(com.vci.client.bof.ClientBusinessObject cbo){
         BaseModel baseModel = new BaseModel();
         baseModel.setOid(cbo.getOid());
         baseModel.setNameOid(cbo.getNameoid());
@@ -1164,11 +1170,11 @@
         baseModel.setFirstV(String.valueOf(cbo.getIsFirstV()));
         baseModel.setCreator(cbo.getCreator());
         try {
-            baseModel.setCreateTime(VciDateUtil.str2Date(cbo.getCreateTime(), VciDateUtil.DateTimeFormat));
-            baseModel.setLastModifyTime(VciDateUtil.str2Date(cbo.getLastModifyTime(), VciDateUtil.DateTimeFormat));
-            baseModel.setTs(VciDateUtil.str2Date(cbo.getTs(), VciDateUtil.DateTimeFormat));
-            baseModel.setCheckInTime(VciDateUtil.str2Date(cbo.getCheckinTime(), VciDateUtil.DateTimeFormat));
-            baseModel.setCheckOutTime(VciDateUtil.str2Date(cbo.getCheckoutTime(), VciDateUtil.DateTimeFormat));
+            baseModel.setCreateTime(new Date(cbo.getCreateTime()));
+            baseModel.setLastModifyTime(new Date(cbo.getLastModifyTime()));
+            baseModel.setTs(new Date(cbo.getTs()));
+//            baseModel.setCheckInTime(VciDateUtil.str2Date(cbo.getCheckinTime(), VciDateUtil.DateTimeFormat));
+//            baseModel.setCheckOutTime(VciDateUtil.str2Date(cbo.getCheckoutTime(), VciDateUtil.DateTimeFormat));
         }catch (Throwable e){
 
         }
@@ -1184,8 +1190,8 @@
         baseModel.setName(cbo.getName());
         baseModel.setDescription(cbo.getDescription());
         baseModel.setOwner(cbo.getOwner());
-        baseModel.setCheckInBy(cbo.getCheckinBy());
-        baseModel.setCheckOutBy(cbo.getCheckoutBy());
+//        baseModel.setCheckInBy(cbo.getCheckinBy());
+//        baseModel.setCheckOutBy(cbo.getCheckoutBy());
         baseModel.setCopyFromVersion(cbo.getCopyFromVersion());
         return baseModel;
     }
@@ -1323,12 +1329,12 @@
             return beforeResult;
         }
         //灏佽鏁版嵁
-        List<BusinessObject> addBos = new ArrayList<>();
-        List<BusinessObject> afterBOs = new ArrayList<>();
-        List<ClientBusinessObject> afterCBOs = new ArrayList<>();
+        List<com.vci.corba.omd.data.BusinessObject> addBos = new ArrayList<>();
+        List<com.vci.corba.omd.data.BusinessObject> afterBOs = new ArrayList<>();
+        List<com.vci.client.bof.ClientBusinessObject> afterCBOs = new ArrayList<>();
         Map<String,List<String>> releasedFileOids = new HashMap<>();
         for(FormDataDTO formDataDTO:formDataDTOList.getFormDataDTOS()) {
-            BaseResult<ClientBusinessObject> resultCbo = wrapperCbo(formDataDTO, formDefineVO, false, false, false);
+            BaseResult<com.vci.client.bof.ClientBusinessObject> resultCbo = wrapperCbo(formDataDTO, formDefineVO, false, false, false);
             if (!resultCbo.isSuccess()) {
                 return BaseResult.fail(resultCbo.getMsg(), resultCbo.getMsgObjs());
             }
@@ -1339,10 +1345,11 @@
             }
         }
         try {
-            BusinessObject[] resultBOs = platformClientUtil.getBOFactoryService().batchCreateBusinessObject(addBos.toArray(new BusinessObject[0]), false, false);
+//            com.vci.corba.omd.data.BusinessObject[] resultBOs = platformClientUtil.getBOFactoryService().batchCreateBusinessObject(addBos.toArray(new BusinessObject[0]), false, false);
+            com.vci.corba.omd.data.BusinessObject[] resultBOs = ServiceProvider.getBOFService().batchCreateBusinessObject(addBos.toArray(new com.vci.corba.omd.data.BusinessObject[0]), false, false);
             afterBOs = Arrays.stream(resultBOs).collect(Collectors.toList());
             Arrays.stream(resultBOs).forEach(bo->{
-                ClientBusinessObject cbo = new ClientBusinessObject();
+                com.vci.client.bof.ClientBusinessObject cbo = new com.vci.client.bof.ClientBusinessObject();
                 cbo.setBusinessObject(bo);
                 afterCBOs.add(cbo);
             });
@@ -1392,14 +1399,15 @@
             return beforeResult;
         }
         //灏佽鏁版嵁
-        BaseResult<ClientBusinessObject> resultCbo = wrapperCbo(formDataDTO,formDefineVO,true,false,false);
+        BaseResult<com.vci.client.bof.ClientBusinessObject> resultCbo = wrapperCbo(formDataDTO,formDefineVO,true,false,false);
         if(!resultCbo.isSuccess()){
             return BaseResult.fail(resultCbo.getMsg(),resultCbo.getMsgObjs());
         }
         //鎵ц淇濆瓨
          BaseResult<Map<String,Object>> result = BaseResult.success();
         try {
-            platformClientUtil.getBOFactoryService().updateBusinessObject(new BusinessObjectHolder(resultCbo.getObj().getBusinessObject()));
+//            platformClientUtil.getBOFactoryService().updateBusinessObject(new BusinessObjectHolder(resultCbo.getObj().getBusinessObject()));
+            ServiceProvider.getBOFService().updateBusinessObject(resultCbo.getObj().getBusinessObject());
             result.setObj(boService.cbo2Map(resultCbo.getObj()));
         } catch (VCIError vciError) {
             throw WebUtil.getVciBaseException(vciError);
@@ -1410,7 +1418,7 @@
         //鍚庣疆浜嬩欢
         String afterEvent = formDataDTO.getPostEvent();
         try {
-            callPostEvent(Arrays.stream(new ClientBusinessObject[]{resultCbo.getObj()}).collect(Collectors.toList()), null,afterEvent, VciChangeDocumentTypeEnum.EDIT);
+            callPostEvent(Arrays.stream(new com.vci.client.bof.ClientBusinessObject[]{resultCbo.getObj()}).collect(Collectors.toList()), null,afterEvent, VciChangeDocumentTypeEnum.EDIT);
         }catch (Throwable e){
             throw new VciBaseException(LangBaseUtil.getErrorMsg(e),new String[]{},e);
         }
@@ -1437,15 +1445,16 @@
             return beforeResult;
         }
         //灏佽鏁版嵁
-        BaseResult<ClientBusinessObject> resultCbo = wrapperCbo(formDataDTO,formDefineVO,false,formDataDTO.isUpVersion()?false:true,formDataDTO.isUpVersion());
+        BaseResult<com.vci.client.bof.ClientBusinessObject> resultCbo = wrapperCbo(formDataDTO,formDefineVO,false,formDataDTO.isUpVersion()?false:true,formDataDTO.isUpVersion());
         if(!resultCbo.isSuccess()){
             return BaseResult.fail(resultCbo.getMsg(),resultCbo.getMsgObjs());
         }
         //鎵ц淇濆瓨
         BaseResult<Map<String,Object>> result = BaseResult.success();
         try {
-            BusinessObject bo = platformClientUtil.getBOFactoryService().createBusinessObject(resultCbo.getObj().getBusinessObject(),formDataDTO.isUpVersion()?false:true,formDataDTO.isUpVersion());
-            ClientBusinessObject afterCbo = new ClientBusinessObject();
+//            BusinessObject bo = platformClientUtil.getBOFactoryService().createBusinessObject(resultCbo.getObj().getBusinessObject(),formDataDTO.isUpVersion()?false:true,formDataDTO.isUpVersion());
+            com.vci.corba.omd.data.BusinessObject bo = ServiceProvider.getBOFService().createBusinessObject(resultCbo.getObj().getBusinessObject(),formDataDTO.isUpVersion()?false:true,formDataDTO.isUpVersion());
+            com.vci.client.bof.ClientBusinessObject afterCbo = new com.vci.client.bof.ClientBusinessObject();
             afterCbo.setBusinessObject(bo);
             result.setObj(boService.cbo2Map(afterCbo));
         } catch (VCIError vciError) {
@@ -1457,7 +1466,7 @@
         //鍚庣疆浜嬩欢
         String afterEvent = formDataDTO.getPostEvent();
         try {
-            callPostEvent(Arrays.stream(new ClientBusinessObject[]{resultCbo.getObj()}).collect(Collectors.toList()), null,afterEvent, VciChangeDocumentTypeEnum.EDIT);
+            callPostEvent(Arrays.stream(new com.vci.client.bof.ClientBusinessObject[]{resultCbo.getObj()}).collect(Collectors.toList()), null,afterEvent, VciChangeDocumentTypeEnum.EDIT);
         }catch (Throwable e){
             throw new VciBaseException(LangBaseUtil.getErrorMsg(e),new String[]{},e);
         }
@@ -1485,11 +1494,11 @@
             return beforeResult;
         }
         //灏佽鏁版嵁
-        List<BusinessObject> updateCBOS = new ArrayList<>();
+        List<com.vci.corba.omd.data.BusinessObject> updateCBOS = new ArrayList<>();
         Map<String,List<String>> releasedFileOids = new HashMap<>();
-        List<ClientBusinessObject> afterCBOs = new ArrayList<>();
+        List<com.vci.client.bof.ClientBusinessObject> afterCBOs = new ArrayList<>();
         for(FormDataDTO formDataDTO:formDataDTOList.getFormDataDTOS()) {
-            BaseResult<ClientBusinessObject> resultCbo = wrapperCbo(formDataDTO, formDefineVO, true, false, false);
+            BaseResult<com.vci.client.bof.ClientBusinessObject> resultCbo = wrapperCbo(formDataDTO, formDefineVO, true, false, false);
             if (!resultCbo.isSuccess()) {
                 return BaseResult.fail(resultCbo.getMsg(), resultCbo.getMsgObjs());
             }
@@ -1534,7 +1543,7 @@
         String btmName = deleteDataDTO.getDataList().get(0).getBtmname();
         List<String> oidList = deleteDataDTO.getDataList().stream().map(BaseModelDTO::getOid).collect(Collectors.toList());
         //鐪嬬湅绾ц仈鍒犻櫎銆傚彧鏈夎嚜宸卞紩鐢ㄨ嚜宸辩殑鏃跺�欏彲浠ョ骇鑱斿垹闄�
-        List<ClientBusinessObject> cbo = null;
+        List<com.vci.client.bof.ClientBusinessObject> cbo = null;
         if(deleteDataDTO.isCascade()){
             //绾ц仈鍒犻櫎
             OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName);
@@ -1553,8 +1562,8 @@
         if(CollectionUtils.isEmpty(cbo)){
             return BaseResult.fail("娌℃湁鍦ㄧ郴缁熶腑鎵惧埌杩欎簺鏁版嵁锛屾湭鎵ц鍒犻櫎鎿嶄綔");
         }
-        List<ClientBusinessObject> finalCbo = cbo;
-        Collection<Collection<String>> oidCollections = WebUtil.switchCollectionForOracleIn(finalCbo.stream().map(ClientBusinessObject::getOid).collect(Collectors.toList()));
+        List<com.vci.client.bof.ClientBusinessObject> finalCbo = cbo;
+        Collection<Collection<String>> oidCollections = WebUtil.switchCollectionForOracleIn(finalCbo.stream().map(com.vci.client.bof.ClientBusinessObject::getOid).collect(Collectors.toList()));
         List<OsUsedAttributeVO> usedAttributeVOS = null;
         boolean adminCascade = false;
         if("admin".equalsIgnoreCase(VciBaseUtil.getCurrentUserId()) && deleteDataDTO.isAdminCascade()){
@@ -1589,7 +1598,7 @@
                         Map<String,String> conditionMap = new HashMap<>();
                         conditionMap.put(usedAttributeVO.getId(),QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
                         if(StringUtils.isNotBlank(usedAttributeVO.getPkBtmType())) {
-                            List<ClientBusinessObject> tempCbos = boService.queryCBO(usedAttributeVO.getPkBtmType(), conditionMap);
+                            List<com.vci.client.bof.ClientBusinessObject> tempCbos = boService.queryCBO(usedAttributeVO.getPkBtmType(), conditionMap);
                             if(!CollectionUtils.isEmpty(tempCbos)){
                                 finalCbo.addAll(tempCbos);
                             }
@@ -1642,7 +1651,7 @@
             //璇存槑鍓嶇疆浜嬩欢娌℃湁鎵ц鎴愬姛
             return beforeResult;
         }
-        ClientLinkObject clo = null;
+        com.vci.client.bof.ClientLinkObject clo = null;
         String prefix = "";
         if(formLinkDataDTO.isDirection()){
             prefix = LO_FROM_PREFIX;
@@ -1670,9 +1679,10 @@
         }
 
         //鏌ヨfrom绔殑
-        ClientBusinessObject fromCbo = new ClientBusinessObject();
+        com.vci.client.bof.ClientBusinessObject fromCbo = new com.vci.client.bof.ClientBusinessObject();
         try {
-            fromCbo.setBusinessObject(platformClientUtil.getBOFactoryService().readBusinessObject(fromOid,fromBtmName));
+//            fromCbo.setBusinessObject(platformClientUtil.getBOFactoryService().readBusinessObject(fromOid,fromBtmName));
+            fromCbo.setBusinessObject(ServiceProvider.getBOFService().readBusinessObject(fromOid,fromBtmName));
         } catch (VCIError vciError) {
             throw WebUtil.getVciBaseException(vciError);
         }
@@ -1685,13 +1695,13 @@
             }
         });
         //灏佽to绔殑
-        BaseResult<ClientBusinessObject> result = wrapperToCbo(formLinkDataDTO,formDefineVO,toOid,toBtmName,boData);
+        BaseResult<com.vci.client.bof.ClientBusinessObject> result = wrapperToCbo(formLinkDataDTO,formDefineVO,toOid,toBtmName,boData);
         if(!result.isSuccess()){
             return BaseResult.fail(result.getMsg(),result.getMsgObjs());
         }
-        ClientBusinessObject toCbo = result.getObj();
+        com.vci.client.bof.ClientBusinessObject toCbo = result.getObj();
         //鍒濆鍖栭摼鎺ョ被鍨嬬殑鍊�
-        BaseResult<ClientLinkObject> resultClo = wrapperOnlyCLO(formLinkDataDTO, loData, formDefineVO, false);
+        BaseResult<com.vci.client.bof.ClientLinkObject> resultClo = wrapperOnlyCLO(formLinkDataDTO, loData, formDefineVO, false);
         if(!resultClo.isSuccess()){
             return BaseResult.fail(resultClo.getMsg(),resultClo.getMsgObjs());
         }
@@ -1704,16 +1714,13 @@
             clo.setToBO(toCbo);
         }
         //鎵ц淇濆瓨
-        BusinessObject[] bos = new BusinessObject[1];
+        com.vci.corba.omd.data.BusinessObject[] bos = new com.vci.corba.omd.data.BusinessObject[1];
         toCbo.dealBusinessObjectNullValue();
         clo.dealLinkObjectNullValue();
         bos[0] = toCbo.getBusinessObject();
-        BusinessObjectListHolder bosHolder = new BusinessObjectListHolder();
-        bosHolder.value = bos;
-        LinkObjectHolder loHolder = new LinkObjectHolder();
-        loHolder.value = clo.getLinkObject();
         try {
-            platformClientUtil.getBOFactoryService().createBusinessObjectWithLink(bosHolder,loHolder);
+//            platformClientUtil.getBOFactoryService().createBusinessObjectWithLink(bosHolder,loHolder);
+            ServiceProvider.getBOFService().createBusinessObjectWithLink(bos,clo.getLinkObject());
         } catch (VCIError vciError) {
             throw WebUtil.getVciBaseException(vciError);
         }
@@ -1723,12 +1730,14 @@
         //鍚庣疆浜嬩欢
         String afterEvent = formLinkDataDTO.getPostEvent();
         try {
-            callPostEvent(null,Arrays.stream(new ClientLinkObject[]{clo}).collect(Collectors.toList()), afterEvent, VciChangeDocumentTypeEnum.ADD);
+            callPostEvent(null,Arrays.stream(new com.vci.client.bof.ClientLinkObject[]{clo}).collect(Collectors.toList()), afterEvent, VciChangeDocumentTypeEnum.ADD);
         }catch (Throwable e){
             //璇存槑鍚庣疆浜嬩欢鍑虹幇浜嗛敊璇紝閭d箞灏遍渶瑕佸垹闄や互鍓嶇殑杩欐潯鏁版嵁
             try {
-                platformClientUtil.getBOFactoryService().deleteBusinessObject(toCbo.getBusinessObject(),1);
-                platformClientUtil.getBOFactoryService().deleteLinkObject(clo.getLinkObject());
+//                platformClientUtil.getBOFactoryService().deleteBusinessObject(toCbo.getBusinessObject(),1);
+//                platformClientUtil.getBOFactoryService().deleteLinkObject(clo.getLinkObject());
+                ServiceProvider.getBOFService().deleteBusinessObject(toCbo.getBusinessObject(),1);
+                ServiceProvider.getBOFService().deleteLinkObject(clo.getLinkObject());
             } catch (VCIError vciError) {
                 throw WebUtil.getVciBaseException(vciError);
             }
@@ -1745,7 +1754,7 @@
      * @param editFlag 鏄惁涓虹紪杈�
      * @return 閾炬帴绫诲瀷鐨勫唴瀹�
      */
-    private BaseResult<ClientLinkObject> wrapperOnlyCLO(FormLinkDataDTO formLinkDataDTO,Map<String,String> loData,UIFormDefineVO formDefineVO,boolean editFlag){
+    private BaseResult<com.vci.client.bof.ClientLinkObject> wrapperOnlyCLO(FormLinkDataDTO formLinkDataDTO,Map<String,String> loData,UIFormDefineVO formDefineVO,boolean editFlag){
         Map<String,String> baseDataMap = formLinkDataDTO2MapLow(formLinkDataDTO);
         Map<String,String> allDataMap = new HashMap<>();
         allDataMap.putAll(loData);
@@ -1761,22 +1770,23 @@
             return result;
         }
         //澶勭悊涓氬姟绫诲瀷寰楀埌鏁版嵁
-        ClientLinkObject clo ;
+        com.vci.client.bof.ClientLinkObject clo ;
         if(editFlag){
             try {
-                LinkObject linkObject = platformClientUtil.getBOFactoryService().readLinkObjectById(formLinkDataDTO.getOid(), formLinkDataDTO.getLinkType());
-                clo = new ClientLinkObject();
+//                LinkObject linkObject = platformClientUtil.getBOFactoryService().readLinkObjectById(formLinkDataDTO.getOid(), formLinkDataDTO.getLinkType());
+                com.vci.corba.omd.data.LinkObject linkObject = ServiceProvider.getBOFService().readLinkObjectById(formLinkDataDTO.getOid(), formLinkDataDTO.getLinkType());
+                clo = new com.vci.client.bof.ClientLinkObject();
                 clo.setLinkObject(linkObject);
             } catch (VCIError vciError) {
                 throw WebUtil.getVciBaseException(vciError);
             }
         }else{
-            clo = new ClientLinkObject();
+            clo = new com.vci.client.bof.ClientLinkObject();
             //澶勭悊鍒濆鍖栫殑鏁版嵁
             clo.setOid(VciBaseUtil.getPk());
             clo.setCreator(VciBaseUtil.getCurrentUserId());
-            clo.setCreateTime(VciDateUtil.getNowString());
-            clo.setTs(VciDateUtil.getNowString());
+            clo.setCreateTime(System.currentTimeMillis());
+            clo.setTs(System.currentTimeMillis());
             clo.setLoName(formLinkDataDTO.getLinkType());
         }
         //
@@ -1802,7 +1812,7 @@
      * @param boData to鐨勬暟鎹�
      * @return 鍖呭惈鐨勫璞�
      */
-    private BaseResult<ClientBusinessObject> wrapperToCbo(FormLinkDataDTO formLinkDataDTO,UIFormDefineVO formDefineVO,String toOid,String toBtmName,Map<String,String> boData){
+    private BaseResult<com.vci.client.bof.ClientBusinessObject> wrapperToCbo(FormLinkDataDTO formLinkDataDTO,UIFormDefineVO formDefineVO,String toOid,String toBtmName,Map<String,String> boData){
         Map<String,String> dataLow = new HashMap<>();
         boData.forEach((key,value)->{
             dataLow.put(key.toLowerCase(),value);
@@ -1829,7 +1839,7 @@
         if(!result.isSuccess()){
             return result;
         }
-        ClientBusinessObject cbo = createOrGetCbo(dataLow,baseDataMap,editFlag,formLinkDataDTO.isToUpRevision(),formLinkDataDTO.isToUpVersion());
+        com.vci.client.bof.ClientBusinessObject cbo = createOrGetCbo(dataLow,baseDataMap,editFlag,formLinkDataDTO.isToUpRevision(),formLinkDataDTO.isToUpVersion());
         return BaseResult.success(cbo);
 
     }
@@ -1922,15 +1932,17 @@
      * @param newVersion 鏄惁鍗囩増娆�
      * @return cbo瀵硅薄
      */
-    public ClientBusinessObject createOrGetCbo(Map<String,String> dataLowMap,Map<String,String> baseDataMap,boolean editFlag,boolean newRevision,boolean newVersion){
+    public com.vci.client.bof.ClientBusinessObject createOrGetCbo(Map<String,String> dataLowMap,Map<String,String> baseDataMap,boolean editFlag,boolean newRevision,boolean newVersion){
         String btmName = baseDataMap.get("btmname");
         String oid = baseDataMap.get("oid");
-        ClientBusinessObject cbo = new ClientBusinessObject();
+//        ClientBusinessObject cbo = new ClientBusinessObject();
+        com.vci.client.bof.ClientBusinessObject cbo = new com.vci.client.bof.ClientBusinessObject();
         String copyfromversion = baseDataMap.get("copyfromversion");
         OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName);
         if(editFlag || newRevision || newVersion){
             try {
-                cbo.setBusinessObject(platformClientUtil.getBOFactoryService().readBusinessObject(editFlag?oid:copyfromversion,btmName));
+//                cbo.setBusinessObject(platformClientUtil.getBOFactoryService().readBusinessObject(editFlag?oid:copyfromversion,btmName));
+                cbo.setBusinessObject(ServiceProvider.getBOFService().readBusinessObject(editFlag?oid:copyfromversion,btmName));
             } catch (VCIError vciError) {
                 throw new VciBaseException("浣跨敤涓婚敭鍦ㄧ郴缁熶腑娌℃湁鏌ヨ鍒版暟鎹�",new String[]{oid},vciError);
             }
@@ -1945,25 +1957,31 @@
                     BaseModel baseModel = cbo2BaseModel(cbo);
                     RevisionValueObject revisionValueObject = getNextRevision(btmTypeVO,baseModel);
                     cbo.setRevisionid(VciBaseUtil.getPk());
-                    cbo.setRevisionSeq(revisionValueObject.getRevisionSeq());
+                    cbo.setRevisionSeq((short) revisionValueObject.getRevisionSeq());
                     cbo.setRevisionValue(revisionValueObject.getRevisionVal());
-                    cbo.setIsLastR(1);
-                    cbo.setIsFirstR(0);
+                    cbo.setIsLastR(true);
+                    cbo.setIsFirstR(false);
                     //澶勭悊鐗堟
                     cbo.setVersionValue(getFirstVersion(btmTypeVO.getVersionRule()));
                     cbo.setVersionRule(btmTypeVO.getVersionRule());
-                    cbo.setVersionSeq(0);
-                    cbo.setIsLastV(1);
-                    cbo.setIsFirstV(1);
+                    cbo.setVersionSeq((short) 0);
+                    cbo.setIsLastV(true);
+                    cbo.setIsFirstV(true);
                 }
                 //鍗囩増鐨勬椂鍊欙紝鐢熷懡鍛ㄦ湡鐨勭姸鎬侀渶瑕佹敼鍔ㄥ埌榛樿鐘舵��
                 if(StringUtils.isNotBlank(btmTypeVO.getLifeCycleId())){
                     //鏌ヨ鐢熷懡鍛ㄦ湡
-                    OsLifeCycleVO lifeCycleVO = lifeCycleService.getLifeCycleById(btmTypeVO.getLifeCycleId());
-                    if(lifeCycleVO == null || StringUtils.isBlank(lifeCycleVO.getOid())){
+//                    OsLifeCycleVO lifeCycleVO = lifeCycleService.getLifeCycleById(btmTypeVO.getLifeCycleId());
+                    LifeCycle lifeCycleVO = null;
+                    try {
+                        lifeCycleVO = ServiceProvider.getOMDService().getLifeCycleService().getLifeCycle(btmTypeVO.getLifeCycleId());
+                    } catch (VCIError e) {
+                        throw new RuntimeException(e);
+                    }
+                    if(lifeCycleVO == null || StringUtils.isBlank(lifeCycleVO.oid)){
                         throw new VciBaseException("{0}閲岀殑鐢熷懡鍛ㄦ湡璁剧疆寰椾笉姝g‘锛屽湪绯荤粺涓病鏈夋壘鍒皗1}杩欎釜鐢熷懡鍛ㄦ湡",new String[]{btmTypeVO.getName(),btmTypeVO.getLifeCycleId()});
                     }
-                    cbo.setLcStatus(lifeCycleVO.getStartStatus());
+                    cbo.setLcStatus(lifeCycleVO.startState);
                 }
             }
             if(btmTypeVO.isRevisionFlag() && newVersion){
@@ -1973,17 +1991,23 @@
                 BaseModel baseModel = cbo2BaseModel(cbo);
                 VersionValueObject versionValueObject = getNextVersion(btmTypeVO,baseModel);
                 cbo.setVersionValue(versionValueObject.getVersionVal());
-                cbo.setVersionSeq(versionValueObject.getVersionSeq());
-                cbo.setIsLastV(1);
-                cbo.setIsFirstV(0);
+                cbo.setVersionSeq((short) versionValueObject.getVersionSeq());
+                cbo.setIsLastV(true);
+                cbo.setIsFirstV(false);
                 //鍗囩増鐨勬椂鍊欙紝鐢熷懡鍛ㄦ湡鐨勭姸鎬侀渶瑕佹敼鍔ㄥ埌榛樿鐘舵��
                 if(StringUtils.isNotBlank(btmTypeVO.getLifeCycleId())){
                     //鏌ヨ鐢熷懡鍛ㄦ湡
-                    OsLifeCycleVO lifeCycleVO = lifeCycleService.getLifeCycleById(btmTypeVO.getLifeCycleId());
-                    if(lifeCycleVO == null || StringUtils.isBlank(lifeCycleVO.getOid())){
+//                    OsLifeCycleVO lifeCycleVO = lifeCycleService.getLifeCycleById(btmTypeVO.getLifeCycleId());
+                    LifeCycle lifeCycleVO = null;
+                    try {
+                        lifeCycleVO = ServiceProvider.getOMDService().getLifeCycleService().getLifeCycle(btmTypeVO.getLifeCycleId());
+                    } catch (VCIError e) {
+                        throw new RuntimeException(e);
+                    }
+                    if(lifeCycleVO == null || StringUtils.isBlank(lifeCycleVO.oid)){
                         throw new VciBaseException("{0}閲岀殑鐢熷懡鍛ㄦ湡璁剧疆寰椾笉姝g‘锛屽湪绯荤粺涓病鏈夋壘鍒皗1}杩欎釜鐢熷懡鍛ㄦ湡",new String[]{btmTypeVO.getName(),btmTypeVO.getLifeCycleId()});
                     }
-                    cbo.setLcStatus(lifeCycleVO.getStartStatus());
+                    cbo.setLcStatus(lifeCycleVO.startState);
                 }
             }
         }else{
@@ -1994,13 +2018,13 @@
             if(StringUtils.isBlank(cbo.getCreator())){
                 cbo.setCreator(VciBaseUtil.getCurrentUserId());
             }
-            if(StringUtils.isBlank(cbo.getCreateTime())){
-                cbo.setCreateTime(VciDateUtil.getNowString());
+            if(cbo.getCreateTime() != 0){
+                cbo.setCreateTime(System.currentTimeMillis());
             }
             if(StringUtils.isBlank(cbo.getOwner())){
                 cbo.setOwner(cbo.getCreator());
             }
-            cbo.setTs(VciDateUtil.getNowString());
+            cbo.setTs(System.currentTimeMillis());
             if(StringUtils.isNotBlank(btmTypeVO.getLifeCycleId()) && (StringUtils.isBlank(cbo.getLcStatus()) || newRevision || newVersion)){
                 //鏌ヨ鐢熷懡鍛ㄦ湡
                 OsLifeCycleVO lifeCycleVO = lifeCycleService.getLifeCycleById(btmTypeVO.getLifeCycleId());
@@ -2031,17 +2055,17 @@
                 if (StringUtils.isBlank(cbo.getRevisionid())) {
                     cbo.setRevisionid(VciBaseUtil.getPk());
                 }
-                cbo.setIsFirstR(1);
-                cbo.setIsLastR(1);
+                cbo.setIsFirstR(true);
+                cbo.setIsLastR(true);
                 cbo.setRevisionRule(btmTypeVO.getRevisionRuleId());
-                cbo.setRevisionSeq(0);
+                cbo.setRevisionSeq((short) 0);
                 //鐪嬬湅鏄惁闇�瑕佸鐞嗙増娆�
 
                 cbo.setVersionValue(getFirstVersion(btmTypeVO.getVersionRule()));
                 cbo.setVersionRule(btmTypeVO.getVersionRule());
-                cbo.setVersionSeq(0);
-                cbo.setIsLastV(1);
-                cbo.setIsFirstV(1);
+                cbo.setVersionSeq((short) 0);
+                cbo.setIsLastV(true);
+                cbo.setIsFirstV(true);
             }
         }
         setValueToCbo(dataLowMap,baseDataMap,cbo,editFlag);
@@ -2075,7 +2099,7 @@
      * @param editFlag 鏄惁涓虹紪杈�
      */
     @Override
-    public void setValueToCbo(Map<String, String> dataLow, Map<String, String> baseDataLow, ClientBusinessObject cbo, boolean editFlag){
+    public void setValueToCbo(Map<String, String> dataLow, Map<String, String> baseDataLow, com.vci.client.bof.ClientBusinessObject cbo, boolean editFlag){
         dataLow.forEach((key,value)->{
             if(editFlag&&notSendOnEdit(key)){
                 //骞冲彴涓嶈兘浼犻�掕繖涓�
@@ -2141,7 +2165,7 @@
             //璇存槑鍓嶇疆浜嬩欢娌℃湁鎵ц鎴愬姛
             return beforeResult;
         }
-        ClientLinkObject clo = null;
+        com.vci.client.bof.ClientLinkObject clo = null;
         String prefix = formLinkDataDTO.isDirection()?LO_FROM_PREFIX:LO_TO_PREFIX;
         String toOid = formLinkDataDTO.isDirection()?formLinkDataDTO.getFoid():formLinkDataDTO.getToid();
         String toBtmName =  formLinkDataDTO.isDirection()?formLinkDataDTO.getFbtmname():formLinkDataDTO.getTbtmname();
@@ -2159,10 +2183,10 @@
                 }
             });
         }
-        ClientBusinessObject toCbo =null;
+        com.vci.client.bof.ClientBusinessObject toCbo =null;
         if(!CollectionUtils.isEmpty(boData)) {
             //灏佽to绔殑
-            BaseResult<ClientBusinessObject> result = wrapperToCbo(formLinkDataDTO, formDefineVO, toOid, toBtmName, boData);
+            BaseResult<com.vci.client.bof.ClientBusinessObject> result = wrapperToCbo(formLinkDataDTO, formDefineVO, toOid, toBtmName, boData);
             if (!result.isSuccess()) {
                 return BaseResult.fail(result.getMsg(), result.getMsgObjs());
             }
@@ -2170,7 +2194,7 @@
         }
 
         //鍒濆鍖栭摼鎺ョ被鍨嬬殑鍊�
-        BaseResult<ClientLinkObject> resultClo = wrapperOnlyCLO(formLinkDataDTO, loData, formDefineVO, true);
+        BaseResult<com.vci.client.bof.ClientLinkObject> resultClo = wrapperOnlyCLO(formLinkDataDTO, loData, formDefineVO, true);
         if(!resultClo.isSuccess()){
             return BaseResult.fail(resultClo.getMsg(),resultClo.getMsgObjs());
         }
@@ -2182,19 +2206,21 @@
                 clo.setToBO(toCbo);
             }
         }
-        LinkObjectHolder loHolder = new LinkObjectHolder();
-        loHolder.value = clo.getLinkObject();
+//        LinkObjectHolder loHolder = new LinkObjectHolder();
+//        loHolder.value = clo.getLinkObject();
         try {
-            platformClientUtil.getBOFactoryService().updateLinkObject(loHolder);
+//            platformClientUtil.getBOFactoryService().updateLinkObject(loHolder);
+            ServiceProvider.getBOFService().updateLinkObject(clo.getLinkObject());
         } catch (VCIError vciError) {
             throw WebUtil.getVciBaseException(vciError);
         }
         //淇濆瓨to绔垨鑰協rom绔�
         BusinessObjectHolder boHolder = new BusinessObjectHolder();
-        toCbo.dealBusinessObjectNullValue();
-        boHolder.value = toCbo.getBusinessObject();
+//        toCbo.dealBusinessObjectNullValue();
+//        boHolder.value = toCbo.getBusinessObject();
         try{
-            platformClientUtil.getBOFactoryService().updateBusinessObject(boHolder);
+//            platformClientUtil.getBOFactoryService().updateBusinessObject(boHolder);
+            ServiceProvider.getBOFService().updateBusinessObject(toCbo.getBusinessObject());
         } catch (VCIError vciError) {
             throw WebUtil.getVciBaseException(vciError);
         }
@@ -2204,7 +2230,7 @@
         //鍚庣疆浜嬩欢
         String afterEvent = formLinkDataDTO.getPostEvent();
         try {
-            callPostEvent(null,Arrays.stream(new ClientLinkObject[]{clo}).collect(Collectors.toList()), afterEvent, VciChangeDocumentTypeEnum.ADD);
+            callPostEvent(null,Arrays.stream(new com.vci.client.bof.ClientLinkObject[]{clo}).collect(Collectors.toList()), afterEvent, VciChangeDocumentTypeEnum.ADD);
         }catch (Throwable e){
             //鍚庣疆浜嬩欢鏈夐棶棰樹簡灏卞彧鑳芥槸杩欐牱浜嗭紝娌″姙娉曟仮澶�
             throw new VciBaseException(LangBaseUtil.getErrorMsg(e),new String[]{},e);
@@ -2239,17 +2265,17 @@
         }
         Map<String,List<ClientLinkObject>> fromBtmGroups = clos.stream().collect(Collectors.groupingBy(s->s.getFromBTMName()));
         Map<String,List<ClientLinkObject>> toBtmGroups = clos.stream().collect(Collectors.groupingBy(s->s.getToBTMName()));
-        Map<String,List<ClientBusinessObject>> fromBtmDataGroups = new HashMap<>();
-        Map<String,List<ClientBusinessObject>> toBtmDataGroups = new HashMap<>();
+        Map<String,List<com.vci.client.bof.ClientBusinessObject>> fromBtmDataGroups = new HashMap<>();
+        Map<String,List<com.vci.client.bof.ClientBusinessObject>> toBtmDataGroups = new HashMap<>();
         if(!CollectionUtils.isEmpty(fromBtmGroups)){
             fromBtmGroups.forEach((btmType,cloList)->{
-                List<ClientBusinessObject> cbos = boService.selectCBOByOidCollection(cloList.stream().map(ClientLinkObject::getFromOid).collect(Collectors.toList()), btmType);
+                List<com.vci.client.bof.ClientBusinessObject> cbos = boService.selectCBOByOidCollection(cloList.stream().map(ClientLinkObject::getFromOid).collect(Collectors.toList()), btmType);
                 fromBtmDataGroups.put(btmType,cbos);
             });
         }
         if(!CollectionUtils.isEmpty(toBtmGroups)){
             toBtmGroups.forEach((btmType,cloList)->{
-                List<ClientBusinessObject> cbos = boService.selectCBOByOidCollection(cloList.stream().map(ClientLinkObject::getToOid).collect(Collectors.toList()), btmType);
+                List<com.vci.client.bof.ClientBusinessObject> cbos = boService.selectCBOByOidCollection(cloList.stream().map(ClientLinkObject::getToOid).collect(Collectors.toList()), btmType);
                 toBtmDataGroups.put(btmType,cbos);
             });
         }
@@ -2295,7 +2321,7 @@
         if(deleteLinkDataDTO.isDeleteFromData()){
             fromBtmDataGroups.forEach((btm,cbos)->{
                 try{
-                    platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.stream().map(ClientBusinessObject::getBusinessObject).toArray(BusinessObject[] :: new),1);
+                    platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.stream().map(com.vci.client.bof.ClientBusinessObject::getBusinessObject).toArray(BusinessObject[] :: new),1);
                 }catch (VCIError vciError) {
                     throw WebUtil.getVciBaseException(vciError);
                 }
@@ -2304,7 +2330,7 @@
         if(deleteLinkDataDTO.isDeleteToData()){
             toBtmDataGroups.forEach((btm,cbos)->{
                 try{
-                    platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.stream().map(ClientBusinessObject::getBusinessObject).toArray(BusinessObject[] :: new),1);
+                    platformClientUtil.getBOFactoryService().batchDeleteBusinessObject(cbos.stream().map(com.vci.client.bof.ClientBusinessObject::getBusinessObject).toArray(BusinessObject[] :: new),1);
                 }catch (VCIError vciError) {
                     throw WebUtil.getVciBaseException(vciError);
                 }
@@ -2378,7 +2404,7 @@
             referConfigVO.setConditionMap(new HashMap<>());
         }
 
-        List<ClientBusinessObject> cbos = null;
+        List<com.vci.client.bof.ClientBusinessObject> cbos = null;
         String oidFieldName = StringUtils.isNotBlank(referConfigVO.getParentUsedField())?referConfigVO.getParentUsedField():referConfigVO.getValueField();
         if(referConfigVO.isSelectAllLevel()) {
             String parentOidSql = "";
@@ -2453,7 +2479,7 @@
     @Override
     public List<Map<String,String>> getDataAttr(String btmname, String oid) {
         VciBaseUtil.alertNotNull(btmname,"涓氬姟绫诲瀷鐨勪俊鎭�",oid,"涓氬姟鏁版嵁鐨勪富閿�");
-        List<ClientBusinessObject> cbos = boService.queryCBO(btmname,WebUtil.getOidQuery(oid));
+        List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryCBO(btmname,WebUtil.getOidQuery(oid));
         List<Map<String,String>> dataMap = new ArrayList<>();
         if(!CollectionUtils.isEmpty(cbos)){
             cbos.stream().forEach(cbo->{
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java
index cb1e6e2..314c589 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebBoServiceImpl.java
@@ -7,6 +7,7 @@
 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.KV;
 import com.vci.frameworkcore.compatibility.SmUserQueryServiceI;
 import com.vci.mw.client.InvocationUtility;
 import com.vci.starter.web.annotation.Column;
@@ -18,16 +19,13 @@
 import com.vci.starter.web.pagemodel.PageHelper;
 import com.vci.starter.web.util.BeanUtil;
 import com.vci.starter.web.util.VciBaseUtil;
-import com.vci.starter.web.util.VciDateUtil;
 import com.vci.starter.web.wrapper.VciQueryWrapperForDO;
 import com.vci.web.pageModel.*;
 import com.vci.web.properties.WebProperties;
 import com.vci.web.service.*;
-import com.vci.web.util.Func;
 import com.vci.web.util.PlatformClientUtil;
 import com.vci.web.util.WebUtil;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.formula.functions.T;
 import org.dom4j.DocumentException;
 import org.dom4j.DocumentHelper;
 import org.omg.CORBA.IntHolder;
@@ -36,11 +34,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
-import plm.bs.bom.clientobject.ClientBusinessObject;
+import com.vci.client.bof.ClientBusinessObject;
 import plm.bs.bom.clientobject.ClientLinkObject;
 import plm.bs.bom.common.*;
-import plm.corba.qt.KV;
-import plm.corba.qt.QTServiceOperations;
 import plm.oq.objectQuery.common.*;
 
 import java.lang.reflect.Field;
@@ -188,14 +184,14 @@
 		bo.setRevisionid((new ObjectUtility()).getNewObjectID36());
 		bo.setNameoid((new ObjectUtility()).getNewObjectID36());
 		bo.setBtmName(boName);
-		bo.setIsLastR(1);
-		bo.setIsFirstR(1);
-		bo.setIsFirstV(1);
-		bo.setIsLastV(1);
+		bo.setIsLastR(true);
+		bo.setIsFirstR(true);
+		bo.setIsFirstV(true);
+		bo.setIsLastV(true);
 		bo.setCreator(userName);
-		bo.setCreateTime(String.valueOf(System.currentTimeMillis()));
+		bo.setCreateTime(System.currentTimeMillis());
 		bo.setLastModifier(userName);
-		bo.setLastModifyTime(String.valueOf(System.currentTimeMillis()));
+		bo.setLastModifyTime(System.currentTimeMillis());
 		bo.setRevisionRule(btmTypeVO.getRevisionRuleId());
 		bo.setVersionRule(String.valueOf(btmTypeVO.getVersionRule()));
 		if(StringUtils.isNotBlank(btmTypeVO.getRevisionRuleId())){
@@ -203,8 +199,8 @@
 			bo.setRevisionValue(revisionRuleVO.getStartCode());
 		}
 
-		bo.setRevisionSeq(1);
-		bo.setVersionSeq(1);
+		bo.setRevisionSeq((short) 1);
+		bo.setVersionSeq((short) 1);
 		bo.setVersionValue(getVersionValue(WebUtil.getInt(btmTypeVO.getVersionRule())));
 		bo.setLctId(btmTypeVO.getLifeCycleId());
 		if(StringUtils.isNotBlank(btmTypeVO.getLifeCycleId())){
@@ -215,7 +211,7 @@
 		bo.setName("");
 		bo.setDescription("");
 		bo.setOwner(userName);
-		bo.setCheckinBy(userName);
+//		bo.setCheckinBy(userName);
 		bo.setCopyFromVersion("");
 		this.initTypeAttributeValue(bo,btmTypeVO);
 		return bo;
@@ -261,20 +257,20 @@
 	 */
 	private  ClientBusinessObject cloneClientBusinessObject(ClientBusinessObject cbo){
     	if(cbo !=null){
-			BusinessObject businessObject = new BusinessObject();
-			BusinessObject bo = cbo.getBusinessObject();
+			com.vci.corba.omd.data.BusinessObject businessObject = new com.vci.corba.omd.data.BusinessObject();
+			com.vci.corba.omd.data.BusinessObject bo = cbo.getBusinessObject();
 			businessObject.oid = new ObjectUtility().getNewObjectID36();
 			businessObject.revisionid = new ObjectUtility().getNewObjectID36();
 			businessObject.nameoid = new ObjectUtility().getNewObjectID36();
-			businessObject.btmName = bo.btmName;
+			businessObject.btName = bo.btName;
 			businessObject.isLastR = bo.isLastR;
 			businessObject.isFirstR = bo.isFirstR;
 			businessObject.isLastV = bo.isLastV;
 			businessObject.isFirstV = bo.isFirstV;
 			businessObject.creator = WebUtil.getCurrentUserId();
-			businessObject.createTime = String.valueOf(System.currentTimeMillis());
-			businessObject.lastModifier = bo.lastModifier;
-			businessObject.lastModifyTime = String.valueOf(bo.lastModifyTime);
+			businessObject.createTime = System.currentTimeMillis();
+			businessObject.modifier = bo.modifier;
+			businessObject.modifyTime = bo.modifyTime;
 			businessObject.revisionRule = bo.revisionRule;
 			businessObject.versionRule = bo.versionRule;
 			businessObject.revisionSeq = bo.revisionSeq;
@@ -283,16 +279,16 @@
 			businessObject.versionValue = bo.versionValue;
 			businessObject.lctId = bo.lctId;
 			businessObject.lcStatus = bo.lcStatus;
-			businessObject.ts = VciDateUtil.getNowString();
+			businessObject.ts = System.currentTimeMillis();
 			businessObject.id = bo.id;
 			businessObject.name = bo.name;
 			businessObject.description = bo.description;
 			businessObject.owner = businessObject.creator;
-			businessObject.checkinBy = bo.checkinBy;
-			businessObject.checkinTime = bo.checkinTime;
-			businessObject.checkoutBy = bo.checkoutBy;
-			businessObject.checkoutTime = bo.checkoutTime;
-			businessObject.copyFromVersion = bo.copyFromVersion;
+//			businessObject.checkinBy = bo.checkinBy;
+//			businessObject.checkinTime = bo.checkinTime;
+//			businessObject.checkoutBy = bo.checkoutBy;
+//			businessObject.checkoutTime = bo.checkoutTime;
+			businessObject.fromVersion = bo.fromVersion;
 			if(bo.newAttrValList !=null){
 				businessObject.newAttrValList = clone(bo.newAttrValList);
 			}
@@ -312,10 +308,10 @@
 	 * @param newAttrValList 灞炴�у�煎璞℃暟缁�
 	 * @return 鎷疯礉鍚庣殑鏂板睘鎬ф暟缁�
 	 */
-	private  AttributeValue[] clone(AttributeValue[] newAttrValList) {
-		AttributeValue[] n = new AttributeValue[newAttrValList.length];
+	private  com.vci.corba.omd.data.AttributeValue[] clone(com.vci.corba.omd.data.AttributeValue[] newAttrValList) {
+		com.vci.corba.omd.data.AttributeValue[] n = new com.vci.corba.omd.data.AttributeValue[newAttrValList.length];
 		for (int i = 0; i < newAttrValList.length; i++) {
-			n[i] = new AttributeValue(newAttrValList[i].attrName,newAttrValList[i].attrVal);
+			n[i] = new com.vci.corba.omd.data.AttributeValue(newAttrValList[i].attrName,newAttrValList[i].attrVal);
 		}
 		return n;
 	}
@@ -401,11 +397,11 @@
 		String fieldName = referInfo.split("\\.")[1].trim().toLowerCase();
 		Map<String,String> conditionMap = new HashMap<String, String>();
 		conditionMap.put(fieldName,QueryOptionConstant.IN + "(" + WebUtil.toInSql(value.toArray(new String[0])) + ")");
-		List<ClientBusinessObject> cbos = queryCBO(btmName,conditionMap,null, Arrays.asList(new String[]{"oid",fieldName}));
+		List<com.vci.client.bof.ClientBusinessObject> cbos = queryCBO(btmName,conditionMap,null, Arrays.asList(new String[]{"oid",fieldName}));
 
 		Map<String,String> data = new HashMap<String, String>();
 		if(cbos!=null && cbos.size() > 0){
-			for(ClientBusinessObject cbo : cbos){
+			for(com.vci.client.bof.ClientBusinessObject cbo : cbos){
 				data.put(cbo.getAttributeValue(fieldName),cbo.getOid());
 			}
 		}
@@ -435,9 +431,9 @@
 			throw new VciBaseException("灞炴��" + columnName + "鐨勫�间负绌�");
 		}
 		conditionMap.put(columnName,QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oidSet.toArray(new String[0])) + ")");
-		List<ClientBusinessObject> cbos = queryCBO(btmName,conditionMap,null,Arrays.asList(new String[]{columnName}));
+		List<com.vci.client.bof.ClientBusinessObject> cbos = queryCBO(btmName,conditionMap,null,Arrays.asList(new String[]{columnName}));
 		if(cbos !=null && cbos.size() >0){
-			for(ClientBusinessObject cbo : cbos){
+			for(com.vci.client.bof.ClientBusinessObject cbo : cbos){
 				String oid = cbo.getAttributeValue(columnName);
 				if(oidSet.contains(oid)){
 					oidSet.remove(oid);
@@ -475,7 +471,7 @@
 	 * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬槸鎶涘嚭寮傚父
 	 */
 	@Override
-	public List<ClientBusinessObject> queryCBO(String btmType,
+	public List<com.vci.client.bof.ClientBusinessObject> queryCBO(String btmType,
 			Map<String, String> conditionMap) throws VciBaseException {
 		List<String> clauseList = new ArrayList<String>();
 		clauseList.add("*");
@@ -492,7 +488,7 @@
 	 * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬槸鎶涘嚭寮傚父
 	 */
 	@Override
-	public List<ClientBusinessObject> queryCBO(String btmType,
+	public List<com.vci.client.bof.ClientBusinessObject> queryCBO(String btmType,
 			Map<String, String> conditionMap, PageHelper ph)
 			throws VciBaseException {
 		List<String> clauseList = new ArrayList<String>();
@@ -510,7 +506,7 @@
 	 * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬槸鎶涘嚭寮傚父
 	 */
 	@Override
-	public List<ClientBusinessObject> queryCBO(String btmType,
+	public List<com.vci.client.bof.ClientBusinessObject> queryCBO(String btmType,
 			Map<String, String> conditionMap, PageHelper ph,
 			List<String> clauseList) throws VciBaseException {
 		QueryTemplate qt = new QueryTemplate();
@@ -561,8 +557,8 @@
 	 * @return 鏌ヨ鍑烘潵鐨勫��
 	 * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
 	 */
-	private List<ClientBusinessObject> baseQueryCBO(QueryTemplate qt,Map<String,String> conditionMap,PageHelper ph,List<String> clauseList) throws VciBaseException{
-		List<ClientBusinessObject> allCbos = new ArrayList<ClientBusinessObject>();
+	private List<com.vci.client.bof.ClientBusinessObject> baseQueryCBO(QueryTemplate qt,Map<String,String> conditionMap,PageHelper ph,List<String> clauseList) throws VciBaseException{
+		List<com.vci.client.bof.ClientBusinessObject> allCbos = new ArrayList<com.vci.client.bof.ClientBusinessObject>();
 		if(clauseList == null){
 			clauseList = new ArrayList<String>();
 			clauseList.add("*");
@@ -633,9 +629,14 @@
 			}
 			if (bos != null && bos.count > 0) {
 				for (com.vci.corba.omd.data.BusinessObject bo : bos.returnValue) {
-					ClientBusinessObject cbo = new ClientBusinessObject();
-					BusinessObject businessObject = Func.copyProperties(bo, BusinessObject.class);
-					cbo.setBusinessObject(businessObject);
+					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);
 				}
@@ -647,6 +648,17 @@
 			throw WebUtil.getVciBaseException(e);
 		}
 		return allCbos;
+	}
+
+	public AttributeValue[] copyToAttributeValue(com.vci.corba.omd.data.AttributeValue[] attributeValues){
+		AttributeValue[] attributeValueList = new AttributeValue[attributeValues.length];
+		for (int i = 0; i < attributeValues.length; i++) {
+			AttributeValue newAttributeValue = new AttributeValue();
+			newAttributeValue.attrName = attributeValues[i].attrName;
+			newAttributeValue.attrVal = attributeValues[i].attrVal;
+			attributeValueList[i] = newAttributeValue;
+		}
+		return attributeValueList;
 	}
 
 	/**
@@ -722,7 +734,7 @@
 	 * 鏌ヨ鐢熷懡鍛ㄦ湡鐨勫��
 	 * @param cbos 涓氬姟瀵硅薄
 	 */
-	private void queryLcStatus(List<ClientBusinessObject> cbos){
+	private void queryLcStatus(List<com.vci.client.bof.ClientBusinessObject> cbos){
 		if(!CollectionUtils.isEmpty(cbos)){
 
 			Map<String, OsStatusVO> statusVOMap = statusService.selectAllStatusMap();
@@ -742,7 +754,7 @@
 	 * @param enumAttrName 鏋氫妇灞炴�х殑鍊�
 	 * @throws VciBaseException
 	 */
-	private void queryEnumText(ClientBusinessObject cbo,List<String> enumAttrName) throws VciBaseException{
+	private void queryEnumText(com.vci.client.bof.ClientBusinessObject cbo,List<String> enumAttrName) throws VciBaseException{
 		queryEnumText(cbo,null,enumAttrName);
 	}
 
@@ -754,7 +766,7 @@
 	 * @throws VciBaseException 鏌ヨ鏋氫妇鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
 	 */
 	@Override
-	public void queryEnumText(ClientBusinessObject cbo, ClientLinkObject clo, List<String> enumAttrName) throws VciBaseException{
+	public void queryEnumText(com.vci.client.bof.ClientBusinessObject cbo, com.vci.client.bof.ClientLinkObject clo, List<String> enumAttrName) throws VciBaseException{
 		if(enumAttrName.size()>0){//鏌ヨ鏋氫妇
 			for(String enumAttr:enumAttrName){//鏍煎紡涓�   code_field  code鏄灇涓剧殑缂栫爜锛宖ield鏄綋鍓嶄笟鍔$被鍨嬪瓨鍌ㄦ灇涓惧�肩殑瀛楁
 				if(enumAttr.toLowerCase().equals("creator_name")){
@@ -832,7 +844,7 @@
 	 * @param attr 灞炴�у悕
 	 * @param value 鍊�
 	 */
-	private void setValueToCboOrClo(ClientBusinessObject cbo,ClientLinkObject clo,String attr,String value){
+	private void setValueToCboOrClo(com.vci.client.bof.ClientBusinessObject cbo,com.vci.client.bof.ClientLinkObject clo,String attr,String value){
 		try {
 			if (cbo != null) {
 				cbo.setAttributeValueWithNoCheck(attr, value);
@@ -851,13 +863,13 @@
 	 * @param attributeValue 灞炴�х殑鍊�
 	 */
 	@Override
-	public void setAttributeValueForClo(ClientLinkObject clo, String attributeName, String attributeValue) {
-		AttributeValue[] attrValues = clo.getLinkObject().newAttrValList;
-		ArrayList<AttributeValue> attrValList = new ArrayList();
-		AttributeValue attrVal;
+	public void setAttributeValueForClo(com.vci.client.bof.ClientLinkObject clo, String attributeName, String attributeValue) {
+		com.vci.corba.omd.data.AttributeValue[] attrValues = clo.getLinkObject().newAttrValList;
+		ArrayList<com.vci.corba.omd.data.AttributeValue> attrValList = new ArrayList();
+		com.vci.corba.omd.data.AttributeValue attrVal;
 		int i;
 		if (attrValues != null && attrValues.length > 0) {
-			AttributeValue[] var9 = attrValues;
+			com.vci.corba.omd.data.AttributeValue[] var9 = attrValues;
 			i = attrValues.length;
 
 			for (int var7 = 0; var7 < i; ++var7) {
@@ -870,7 +882,7 @@
 		boolean isExist = false;
 
 		for (i = 0; i < attrValList.size(); ++i) {
-			attrVal = (AttributeValue) attrValList.get(i);
+			attrVal = (com.vci.corba.omd.data.AttributeValue) attrValList.get(i);
 			if (attrVal.attrName.toUpperCase().equals(attributeName.toUpperCase())) {
 				attrVal.attrVal = attributeValue;
 				isExist = true;
@@ -879,13 +891,13 @@
 		}
 
 		if (!isExist) {
-			attrVal = new AttributeValue();
+			attrVal = new com.vci.corba.omd.data.AttributeValue();
 			attrVal.attrName = attributeName.toUpperCase();
 			attrVal.attrVal = attributeValue;
 			attrValList.add(attrVal);
 		}
 
-		clo.getLinkObject().newAttrValList = (AttributeValue[]) attrValList.toArray(new AttributeValue[attrValList.size()]);
+		clo.getLinkObject().newAttrValList = (com.vci.corba.omd.data.AttributeValue[]) attrValList.toArray(new com.vci.corba.omd.data.AttributeValue[attrValList.size()]);
 	}
 
 
@@ -895,7 +907,7 @@
 	 * @param enumAttrName 鏋氫妇灞炴��
 	 * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
 	 */
-	private void queryEnumTextClo(ClientLinkObject clo,List<String> enumAttrName) throws VciBaseException{
+	private void queryEnumTextClo(com.vci.client.bof.ClientLinkObject clo,List<String> enumAttrName) throws VciBaseException{
 		queryEnumText(null,clo,enumAttrName);
 	}
 
@@ -908,7 +920,7 @@
 	 * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
 	 */
 	@Override
-	public List<ClientBusinessObject> queryCBOByScheme(String queryScheme,
+	public List<com.vci.client.bof.ClientBusinessObject> queryCBOByScheme(String queryScheme,
 			Map<String, String> conditionMap, Map<String, String> replaceMap)
 			throws VciBaseException {
 		PageHelper ph = new PageHelper(-1);
@@ -926,7 +938,7 @@
 	 * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
 	 */
 	@Override
-	public List<ClientBusinessObject> queryCBOByScheme(String queryScheme,
+	public List<com.vci.client.bof.ClientBusinessObject> queryCBOByScheme(String queryScheme,
 			Map<String, String> conditionMap, Map<String, String> replaceMap,
 			PageHelper ph) throws VciBaseException {
 		List<String> clauseList = new ArrayList<String>();
@@ -1006,7 +1018,7 @@
 	 * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯�
 	 */
 	@Override
-	public List<ClientBusinessObject> queryCBOByScheme(String queryScheme,
+	public List<com.vci.client.bof.ClientBusinessObject> queryCBOByScheme(String queryScheme,
 			Map<String, String> conditionMap, Map<String, String> replaceMap,
 			PageHelper ph, List<String> clauseList) throws VciBaseException {
 		QueryTemplate qt = getQtByName(queryScheme,replaceMap);
@@ -1034,10 +1046,12 @@
 		}
 		int count = 0;
 		try{
-			count = platformClientUtil.getQueryService().findTotalCount(qt.getId(), Tool.qtTOXMl(qt).asXML());
+//			count = platformClientUtil.getQueryService().findTotalCount();
+			count = Integer.parseInt(String.valueOf(ServiceProvider.getOQService().findTotalCount(qt.getId(), Tool.qtTOXMl(qt).asXML())));
 		}catch (VCIError e) {
 			try {
-				count = platformClientUtil.getQueryService().findTotalCount(qt.getId(), Tool.qtTOXMl(qt).asXML());
+//				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) {
 //				logger.error(ee.error_code,ee);
 //				throw WebUtil.getVciBaseException(ee);
@@ -1142,11 +1156,11 @@
      * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯�
      */
 	@Override
-	public List<ClientBusinessObject> queryBySql(String sql,
+	public List<com.vci.client.bof.ClientBusinessObject> queryBySql(String sql,
 			Map<String, String> conditionMap) throws VciBaseException {
 		List<Map> allData = queryBySqlForMap(sql,conditionMap);
 		if(allData == null || allData.size() == 0){
-			return new ArrayList<ClientBusinessObject>();
+			return new ArrayList<com.vci.client.bof.ClientBusinessObject>();
 		}else{
 			return map2Cbos(allData);
 		}
@@ -1159,10 +1173,10 @@
 	 * @throws VciBaseException 鏌ヨ鍑洪敊娲绘姏鍑哄紓甯�
 	 */
 	@Override
-	public List<ClientBusinessObject> queryByOnlySql(String sql) throws VciBaseException{
+	public List<com.vci.client.bof.ClientBusinessObject> queryByOnlySql(String sql) throws VciBaseException{
 		List<Map> allData = queryByOnlySqlForMap(sql);
 		if(allData == null || allData.size() == 0){
-			return new ArrayList<ClientBusinessObject>();
+			return new ArrayList<com.vci.client.bof.ClientBusinessObject>();
 		}else{
 			return map2Cbos(allData);
 		}
@@ -1181,11 +1195,12 @@
 		}
 		List<Map> dataList = new ArrayList<>();
 		try {
-			KV[][] kvs = platformClientUtil.getQueryService().queryBySql(sql);
+//			KV[][] kvs = platformClientUtil.getQueryService().queryBySql(sql);
+			com.vci.corba.query.data.KV[][] kvs = ServiceProvider.getOQService().queryBySql(sql);
 			if(kvs!=null && kvs.length>0){
 				for (int i = 0; i < kvs.length; i++) {
 					Map<String,String> data = new HashMap<>();
-					KV[] kv = kvs[i];
+					com.vci.corba.query.data.KV[] kv = kvs[i];
 					if(kv!=null && kv.length >0){
 						for (int j = 0; j < kv.length; j++) {
 							KV kv1 = kv[j];
@@ -1375,11 +1390,11 @@
 			allFieldAttrMap.put(columnName.toLowerCase(),fieldName);
 		}
 		List<T> allObject = new ArrayList<T>();
-		List<ClientBusinessObject> allCbos = queryCBO(WebUtil.getBtmTypeByObject(c), conditionMap, ph, allFieldAttrMap.keySet().stream().collect(Collectors.toList()));//鎵ц鏌ヨ
+		List<com.vci.client.bof.ClientBusinessObject> allCbos = queryCBO(WebUtil.getBtmTypeByObject(c), conditionMap, ph, allFieldAttrMap.keySet().stream().collect(Collectors.toList()));//鎵ц鏌ヨ
 		List<String> oids = new ArrayList<String>();
 		
 		if(allCbos!=null&&allCbos.size()>0){
-			for(ClientBusinessObject cbo : allCbos){
+			for(com.vci.client.bof.ClientBusinessObject cbo : allCbos){
 				T obj  = null;
 				try {
 					obj = c.newInstance();
@@ -1480,10 +1495,10 @@
 			allFieldAttrMap.put(columnName.toLowerCase(),fieldName);
 		}
 		List<T> allObject = new ArrayList<T>();
-		List<ClientBusinessObject> allCbos = queryCBOByScheme(queryScheme, conditionMap, replaceMap,ph, allFieldAttrMap.keySet().stream().collect(Collectors.toList()));
+		List<com.vci.client.bof.ClientBusinessObject> allCbos = queryCBOByScheme(queryScheme, conditionMap, replaceMap,ph, allFieldAttrMap.keySet().stream().collect(Collectors.toList()));
 		List<String> oids = new ArrayList<String>();
 		if(allCbos!=null&&allCbos.size()>0){
-			for(ClientBusinessObject cbo : allCbos){
+			for(com.vci.client.bof.ClientBusinessObject cbo : allCbos){
 				T obj  = null;
 				try {
 					obj = c.newInstance();
@@ -1547,7 +1562,7 @@
 	 * @param isEdit 鏄惁涓虹紪杈�
 	 * @throws VciBaseException 璁剧疆鍑洪敊浼氭姏鍑哄紓甯�
 	 */
-	private void setValueToCbo(Object obj,String btmType,ClientBusinessObject cbo ,boolean isEdit) throws VciBaseException{
+	private void setValueToCbo(Object obj,String btmType,com.vci.client.bof.ClientBusinessObject cbo ,boolean isEdit) throws VciBaseException{
 		Field pkField = WebUtil.getPkFieldForObj(obj.getClass());
 		if(pkField == null){
 			throw new VciBaseException("{0}绫讳腑娌℃湁瀹氫箟涓婚敭灞炴��",new Object[]{obj.getClass()});
@@ -1692,9 +1707,9 @@
 		if(list==null){
 			throw new VciBaseException(VciBaseException.paramNull);
 		}
-		Set<ClientBusinessObject> allUpdateCbos = new HashSet<ClientBusinessObject>();
-		Set<ClientBusinessObject> allDeleteCbos = new HashSet<ClientBusinessObject>();
-		Set<ClientBusinessObject> allAddCbos = new HashSet<ClientBusinessObject>();
+		Set<com.vci.client.bof.ClientBusinessObject> allUpdateCbos = new HashSet<com.vci.client.bof.ClientBusinessObject>();
+		Set<com.vci.client.bof.ClientBusinessObject> allDeleteCbos = new HashSet<com.vci.client.bof.ClientBusinessObject>();
+		Set<com.vci.client.bof.ClientBusinessObject> allAddCbos = new HashSet<com.vci.client.bof.ClientBusinessObject>();
 		Map<String,String> btmOidsMap = new HashMap<String, String>();
 		for(T obj : list){
 			String btmType = WebUtil.getBtmTypeByObject(obj.getClass());
@@ -1715,7 +1730,7 @@
 			}
 			btmOidsMap.put(btmType, tempOids);
 		}
-		List<ClientBusinessObject> needUpdateCbos = new ArrayList<ClientBusinessObject>();
+		List<com.vci.client.bof.ClientBusinessObject> needUpdateCbos = new ArrayList<com.vci.client.bof.ClientBusinessObject>();
 		Iterator<String> it = btmOidsMap.keySet().iterator();
 		while(it.hasNext()){
 			String btmType = it.next();
@@ -1733,11 +1748,11 @@
 			}
 			//涓婚敭
 			Object pkValue = WebUtil.getValueFromField(pkField.getName(), obj);
-			ClientBusinessObject cbo = null;
+			com.vci.client.bof.ClientBusinessObject cbo = null;
 			if(pkValue == null || (pkValue instanceof String && WebUtil.isNull(pkValue.toString()))){
 				continue;
 			}else{
-				for(ClientBusinessObject tempCbo : needUpdateCbos){
+				for(com.vci.client.bof.ClientBusinessObject tempCbo : needUpdateCbos){
 					if(tempCbo.getOid().equalsIgnoreCase(pkValue.toString().trim())){
 						cbo = tempCbo;
 						break;
@@ -1746,7 +1761,7 @@
 			}
 			String btmType = WebUtil.getBtmTypeByObject(obj.getClass());
 			//鎷疯礉涔嬪墠鍏堟竻闄ゅ凡缁忔湁鐨勫��
-			cbo.getBusinessObject().newAttrValList = new AttributeValue[0];
+			cbo.getBusinessObject().newAttrValList = new com.vci.corba.omd.data.AttributeValue[0];
 			setValueToCbo(obj,btmType,cbo,true);
 			allUpdateCbos.add(cbo);
 		}
@@ -2006,7 +2021,7 @@
 		if(ts.contains(".")){
 			ts = ts.substring(0,ts.lastIndexOf("."));
 		}
-		return cbos.get(0).getTs().contains(ts);
+		return cbos.get(0).getTs() == Long.valueOf(ts);
 	}
 
 	/**
@@ -2254,7 +2269,7 @@
      * @throws VciBaseException 杞崲鍑洪敊浼氭姏鍑哄紓甯�
      */
 	@Override
-	public Map cbo2Map(ClientBusinessObject cbo) throws VciBaseException {
+	public Map cbo2Map(com.vci.client.bof.ClientBusinessObject cbo) throws VciBaseException {
 		Map<String,String> map = new HashMap<String, String>();
 		WebUtil.copyValueToMapFromCbos(cbo, map);
 		return map;
@@ -2268,9 +2283,9 @@
      * @throws VciBaseException 杞崲鍑洪敊浼氭姏鍑哄紓甯�
      */
 	@Override
-	public List<ClientBusinessObject> map2Cbos(List<Map> mapList)
+	public List<com.vci.client.bof.ClientBusinessObject> map2Cbos(List<Map> mapList)
 			throws VciBaseException {
-		List<ClientBusinessObject> cboList = new ArrayList<ClientBusinessObject>();
+		List<com.vci.client.bof.ClientBusinessObject> cboList = new ArrayList<com.vci.client.bof.ClientBusinessObject>();
 		for(Map map : mapList){
 			cboList.add(map2Cbo(map));
 		}
@@ -2285,8 +2300,8 @@
      * @throws VciBaseException 杞崲鍑洪敊浼氭姏鍑哄紓甯�
      */
 	@Override
-	public ClientBusinessObject map2Cbo(Map map) throws VciBaseException {
-		ClientBusinessObject cbo = new ClientBusinessObject();
+	public com.vci.client.bof.ClientBusinessObject map2Cbo(Map map) throws VciBaseException {
+		com.vci.client.bof.ClientBusinessObject cbo = new com.vci.client.bof.ClientBusinessObject();
 		WebUtil.copyValueToCboFromMap(cbo, map);
 		return cbo;
 	}
@@ -2319,10 +2334,16 @@
 			deleteReferAttrInCbo(batchCbos.getDeleteCbos());
 		}
 		try {
-			platformClientUtil.getBOFactoryService().batchCUDBOLO(new BusinessObjectListHolder(cboArray2Bo(batchCbos.getCreateCboArray())),
-					new LinkObjectListHolder(cloArray2Lo(batchCbos.getCreateCloArray())),
-					new BusinessObjectListHolder(cboArray2Bo(batchCbos.getUpdateCboArray())),
-					new LinkObjectListHolder(cloArray2Lo(batchCbos.getUpdateCloArray())),
+//			platformClientUtil.getBOFactoryService().batchCUDBOLO(new BusinessObjectListHolder(cboArray2Bo(batchCbos.getCreateCboArray())),
+//					new LinkObjectListHolder(cloArray2Lo(batchCbos.getCreateCloArray())),
+//					new BusinessObjectListHolder(cboArray2Bo(batchCbos.getUpdateCboArray())),
+//					new LinkObjectListHolder(cloArray2Lo(batchCbos.getUpdateCloArray())),
+//					cboArray2Bo(batchCbos.getDeleteCboArray()), cloArray2Lo(batchCbos.getDeleteCloArray()));
+//			new BusinessObjectListHolder(cboArray2Bo(batchCbos.getCreateCboArray()))
+			ServiceProvider.getBOFService().batchCUDBOLO(cboArray2Bo(batchCbos.getCreateCboArray()),
+					cloArray2Lo(batchCbos.getCreateCloArray()),
+					cboArray2Bo(batchCbos.getUpdateCboArray()),
+					cloArray2Lo(batchCbos.getUpdateCloArray()),
 					cboArray2Bo(batchCbos.getDeleteCboArray()), cloArray2Lo(batchCbos.getDeleteCloArray()));
 		} catch (VCIError e) {
 			throw WebUtil.getVciBaseException(e);
@@ -2334,11 +2355,11 @@
 	 * @param cbos 瀹㈡埛绔璞�
 	 * @return 涓氬姟瀵硅薄
 	 */
-	private BusinessObject[] cboArray2Bo(ClientBusinessObject[] cbos){
+	private com.vci.corba.omd.data.BusinessObject[] cboArray2Bo(ClientBusinessObject[] cbos){
 		if(cbos == null ||cbos.length == 0){
-			return new BusinessObject[0];
+			return new com.vci.corba.omd.data.BusinessObject[0];
 		}
-		BusinessObject[] bos = new BusinessObject[cbos.length];
+		com.vci.corba.omd.data.BusinessObject[] bos = new com.vci.corba.omd.data.BusinessObject[cbos.length];
 		for(int i = 0; i < cbos.length; i++){
 			bos[i] = cbos[i].getBusinessObject();
 		}
@@ -2350,11 +2371,11 @@
 	 * @param clos 瀹㈡埛绔璞�
 	 * @return 涓氬姟瀵硅薄
 	 */
-	private LinkObject[] cloArray2Lo(ClientLinkObject[] clos){
+	private com.vci.corba.omd.data.LinkObject[] cloArray2Lo(com.vci.client.bof.ClientLinkObject[] clos){
 		if(clos == null ||clos.length == 0){
-			return new LinkObject[0];
+			return new com.vci.corba.omd.data.LinkObject[0];
 		}
-		LinkObject[] bos = new LinkObject[clos.length];
+		com.vci.corba.omd.data.LinkObject[] bos = new com.vci.corba.omd.data.LinkObject[clos.length];
 		for(int i = 0; i < clos.length; i++){
 			bos[i] = clos[i].getLinkObject();
 		}
@@ -2368,11 +2389,11 @@
 	private void deleteReferAttrInCbo(Set<ClientBusinessObject> cbos){
 		if(cbos !=null){
 			for(ClientBusinessObject cbo : cbos){
-				BusinessObject bo = cbo.getBusinessObject();
-				List<AttributeValue> newAttr = new ArrayList<AttributeValue>();
+				com.vci.corba.omd.data.BusinessObject bo = cbo.getBusinessObject();
+				List<com.vci.corba.omd.data.AttributeValue> newAttr = new ArrayList<com.vci.corba.omd.data.AttributeValue>();
 				if (bo.newAttrValList != null) {
 					for (int i = 0; i < bo.newAttrValList.length; ++i) {
-						AttributeValue av = bo.newAttrValList[i];
+						com.vci.corba.omd.data.AttributeValue av = bo.newAttrValList[i];
 						if (WebUtil.isNormalAttr(av.attrName)) {
 							if(av.attrVal == null){
 								av.attrVal = "";
@@ -2381,7 +2402,7 @@
 						}
 					}
 				}
-				bo.newAttrValList = newAttr.toArray(new AttributeValue[0]);
+				bo.newAttrValList = newAttr.toArray(new com.vci.corba.omd.data.AttributeValue[0]);
 				cbo.setBusinessObject(bo);
 			}
 		}
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java
index 0356542..9868ece 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebLoServiceImpl.java
@@ -3,7 +3,9 @@
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.vci.base.common.utility.ObjectUtility;
+import com.vci.client.common.providers.ServiceProvider;
 import com.vci.corba.common.VCIError;
+import com.vci.corba.query.ObjectQueryService;
 import com.vci.starter.web.constant.QueryOptionConstant;
 import com.vci.starter.web.exception.VciBaseException;
 import com.vci.starter.web.pagemodel.DataGrid;
@@ -261,7 +263,7 @@
 	}
 
 	@Override
-	public Map<String, ClientBusinessObject> queryLinkedCbo(LinkObject[] lo,
+	public Map<String, com.vci.client.bof.ClientBusinessObject> queryLinkedCbo(LinkObject[] lo,
 			boolean isDirection) throws VciBaseException {
         ClientLinkObject[] clos = new ClientLinkObject[lo.length];
         for(int i =0 ; i < lo.length; i ++){
@@ -273,13 +275,13 @@
 	}
 
 	@Override
-	public Map<String, ClientBusinessObject> queryLinkedCbo(List los,
+	public Map<String, com.vci.client.bof.ClientBusinessObject> queryLinkedCbo(List los,
 			boolean isDirection) throws VciBaseException {
 		return queryLinkedCbo(los,isDirection,new ArrayList<String>());
 	}
 	
 	@Override
-	public Map<String, ClientBusinessObject> queryLinkedCbo(List los,
+	public Map<String, com.vci.client.bof.ClientBusinessObject> queryLinkedCbo(List los,
 			boolean isDirection,List<String> queryColumn) throws VciBaseException {
 		ClientLinkObject[] clos = new ClientLinkObject[los.size()];
 		for(int i = 0 ; i < los.size(); i ++){
@@ -296,7 +298,7 @@
 	}
 
 	@Override
-	public Map<String, ClientBusinessObject> queryLinkedCbo(
+	public Map<String, com.vci.client.bof.ClientBusinessObject> queryLinkedCbo(
 			ClientLinkObject[] clol, boolean isDirection) throws VciBaseException {
 		return queryLinkedCbo(clol,isDirection,new ArrayList<String>());
 	}
@@ -304,7 +306,7 @@
 	 * 
 	 */
 	@Override
-	public Map<String, ClientBusinessObject> queryLinkedCbo(
+	public Map<String, com.vci.client.bof.ClientBusinessObject> queryLinkedCbo(
 			ClientLinkObject[] clol, boolean isDirection,List<String> queryColumn) throws VciBaseException{
 		Map<String/*t_oid鎴栬�協_oid*/,String/*oid*/> linkBoOidMap = new HashMap<String, String>();
 		Map<String,String> btmTypeOidMap = new HashMap<String, String>();
@@ -330,7 +332,7 @@
 				btmTypeOidMap.put(btmType, oids);
 			}
 		}
-		Map<String,ClientBusinessObject> linkedCboMap = new HashMap<String, ClientBusinessObject>();
+		Map<String,com.vci.client.bof.ClientBusinessObject> linkedCboMap = new HashMap<>();
 		Iterator<String> it = btmTypeOidMap.keySet().iterator();
 		while(it.hasNext()){
 			String btmType = it.next();
@@ -347,9 +349,9 @@
 			}
 			Map<String,String> conditionMap = new HashMap<>();
 			conditionMap.put("oid",oids);
-			List<ClientBusinessObject> allCbo = boService.queryCBO(btmType, conditionMap,new PageHelper(-1),clauseList);
+			List<com.vci.client.bof.ClientBusinessObject> allCbo = boService.queryCBO(btmType, conditionMap,new PageHelper(-1),clauseList);
 			if(allCbo.size()>0){
-				for(ClientBusinessObject cbo : allCbo){
+				for(com.vci.client.bof.ClientBusinessObject cbo : allCbo){
 					String linkOid = linkBoOidMap.get(cbo.getOid());
 					linkedCboMap.put(linkOid, cbo);
 				}
@@ -359,16 +361,16 @@
 	}
 
 	@Override
-	public List<Map> clos2Map(List<ClientLinkObject> clos) throws VciBaseException {
+	public List<Map> clos2Map(List<com.vci.client.bof.ClientLinkObject> clos) throws VciBaseException {
 		List<Map> allMap = new ArrayList<Map>();
-		for(ClientLinkObject clo : clos){
+		for(com.vci.client.bof.ClientLinkObject clo : clos){
 			allMap.add(clo2Map(clo));
 		}
 		return allMap;
 	}
 
 	@Override
-	public Map clo2Map(ClientLinkObject clo) throws VciBaseException {
+	public Map clo2Map(com.vci.client.bof.ClientLinkObject clo) throws VciBaseException {
 		Map<String,String> map = new HashMap<String, String>();
 		WebUtil.copyValueToMapFromClos(clo, map);
 		return map;
@@ -529,7 +531,7 @@
 	 * @return 閾炬帴绫诲瀷鍜屽叧鑱旂殑to绔�
 	 */
 	@Override
-	public List<BOAndLO> queryCLOAndBOBySchema(UILinkTypeDataQuery linkTypeDataQuery) {
+	public List<com.vci.corba.query.data.BOAndLO> queryCLOAndBOBySchema(UILinkTypeDataQuery linkTypeDataQuery) {
 		VciBaseUtil.alertNotNull(linkTypeDataQuery,"閾炬帴绫诲瀷鏌ヨ瀵硅薄",linkTypeDataQuery.getQueryTemplateName(),"鏌ヨ妯℃澘鐨勫悕绉�");
 		QueryTemplate qt =boService.getQtByName(linkTypeDataQuery.getQueryTemplateName(),linkTypeDataQuery.getReplaceMap());
 		return queryCLOAndBOByQueryTemplate(qt,linkTypeDataQuery);
@@ -541,7 +543,7 @@
 	 * @param linkTypeDataQuery 閾炬帴绫诲瀷鐨勬煡璇㈠璞�
 	 * @return 閾炬帴绫诲瀷鍜屼笟鍔$被鍨�
 	 */
-	private List<BOAndLO> queryCLOAndBOByQueryTemplate(QueryTemplate qt,UILinkTypeDataQuery linkTypeDataQuery){
+	private List<com.vci.corba.query.data.BOAndLO> queryCLOAndBOByQueryTemplate(QueryTemplate qt,UILinkTypeDataQuery linkTypeDataQuery){
 		if(StringUtils.isNotBlank(linkTypeDataQuery.getToBtmType()) && StringUtils.isBlank(qt.getBtmType())) {
 			qt.setBtmType(linkTypeDataQuery.getToBtmType());
 		}
@@ -589,7 +591,8 @@
 		}
 		boService.setPageAndOrderToQT(qt,linkTypeDataQuery.getPageHelper());
 		try {
-			BOAndLO[] bos = platformClientUtil.getQueryService().getBOAndLOS(qt.getId(), Tool.qtTOXMl(qt).asXML(),linkTypeDataQuery.getParentOid()==null?"":linkTypeDataQuery.getParentOid());
+//			com.vci.corba.query.data.BOAndLO[] bos = platformClientUtil.getQueryService().getBOAndLOS(qt.getId(), Tool.qtTOXMl(qt).asXML(),linkTypeDataQuery.getParentOid()==null?"":linkTypeDataQuery.getParentOid());
+			com.vci.corba.query.data.BOAndLO[] bos = ServiceProvider.getOQService().getBOAndLOS(qt.getId(), Tool.qtTOXMl(qt).asXML(),linkTypeDataQuery.getParentOid()==null?"":linkTypeDataQuery.getParentOid());
 			return Arrays.stream(bos).collect(Collectors.toList());
 		} catch (VCIError e) {
 //			logger.error(e.error_code,e);
@@ -603,7 +606,7 @@
 	 * @return 閾炬帴瀵硅薄鍜宼o绔笟鍔″璞�
 	 */
 	@Override
-	public List<BOAndLO> queryCLOAndBoByLinkType(UILinkTypeDataQuery linkTypeDataQuery){
+	public List<com.vci.corba.query.data.BOAndLO> queryCLOAndBoByLinkType(UILinkTypeDataQuery linkTypeDataQuery){
 		VciBaseUtil.alertNotNull(linkTypeDataQuery,"閾炬帴绫诲瀷鏌ヨ瀵硅薄",linkTypeDataQuery.getLinkType(),"閾炬帴绫诲瀷鐨勫悕绉�");
 		QueryTemplate qt = null;
 		if(StringUtils.isBlank(linkTypeDataQuery.getQueryTemplateName())){
@@ -703,24 +706,26 @@
 		Map<String,List<String>> toBtmOidsMap = new HashMap<>();
 		try {
 			IntHolder totalHolder = new IntHolder();
-			LinkObject[] linkObjects = platformClientUtil.getQueryService().findLTObjectsV2(qt.getId(), Tool.qtTOXMl(qt).asXML(),totalHolder);
+//			com.vci.corba.omd.data.LinkObject[] linkObjects = platformClientUtil.getQueryService().findLTObjectsV2(qt.getId(), Tool.qtTOXMl(qt).asXML(),totalHolder);
+			ObjectQueryService.FindLTObjectsV2Result linkObjects = ServiceProvider.getOQService().findLTObjectsV2(qt.getId(), Tool.qtTOXMl(qt).asXML());
+
 
 			List<Map<String,String>> data = new ArrayList<>();
 			List<String> finalEnumFields = enumFields;
 			final Integer[] total = {totalHolder.value};
-			Arrays.stream(linkObjects).forEach(lo->{
-				ClientLinkObject clo = new ClientLinkObject();
+			Arrays.stream(linkObjects.returnValue).forEach(lo->{
+				com.vci.client.bof.ClientLinkObject clo = new com.vci.client.bof.ClientLinkObject();
 				clo.setLinkObject(lo);
 				Map<String, String> map = new HashMap<>();
 				boService.queryEnumText(null,clo, finalEnumFields);
 				WebUtil.copyValueToMapFromClos(clo,map);
-				List<String> fromOids = fromBtmOidsMap.getOrDefault(lo.fromBTMName, new ArrayList<>());
+				List<String> fromOids = fromBtmOidsMap.getOrDefault(lo.fromBTName, new ArrayList<>());
 				fromOids.add(lo.fromOid);
-				fromBtmOidsMap.put(lo.fromBTMName,fromOids);
+				fromBtmOidsMap.put(lo.fromBTName,fromOids);
 
-				List<String> toOids = toBtmOidsMap.getOrDefault(lo.toBTMName, new ArrayList<>());
+				List<String> toOids = toBtmOidsMap.getOrDefault(lo.toBTName, new ArrayList<>());
 				toOids.add(lo.toOid);
-				toBtmOidsMap.put(lo.toBTMName,toOids);
+				toBtmOidsMap.put(lo.toBTName,toOids);
 				data.add(map);
 				if(total[0] == 0){
 					total[0] = VciBaseUtil.getInt(map.getOrDefault(QTConstants.COUNT_OVER_ALIAS.toLowerCase(),"0"));
@@ -744,7 +749,7 @@
 					//鍒嗛〉涓嶈瓒呰繃1000
 					Map<String,String> boConditionMap =new HashMap<>();
 					boConditionMap.put("oid",QueryOptionConstant.IN + "(" + WebUtil.toInSql(oids.toArray(new String[0])) + ")");
-					List<ClientBusinessObject> cbos = boService.queryCBO(btm, boConditionMap, null, fromFieldsFix);
+					List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryCBO(btm, boConditionMap, null, fromFieldsFix);
 					if(!CollectionUtils.isEmpty(cbos)){
 						cbos.stream().forEach(cbo->{
 							dataGrid.getData().forEach(data->{
@@ -768,7 +773,7 @@
 					//鍒嗛〉涓嶈瓒呰繃1000
 					Map<String,String> boConditionMap =new HashMap<>();
 					boConditionMap.put("oid",QueryOptionConstant.IN + "(" + WebUtil.toInSql(oids.toArray(new String[0])) + ")");
-					List<ClientBusinessObject> cbos = boService.queryCBO(btm, boConditionMap, null, toFieldsFix);
+					List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryCBO(btm, boConditionMap, null, toFieldsFix);
 					if(!CollectionUtils.isEmpty(cbos)){
 						cbos.stream().forEach(cbo->{
 							dataGrid.getData().forEach(data->{
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java
index 37866ae..4c7db5e 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebProcessCommandServiceImpl.java
@@ -149,7 +149,7 @@
         Map<String, String> conditionMap = WebUtil.getOidQuery(config.getOids());
         conditionMap.put(WebBoServiceI.QUERY_FILTER_SECRET, "false");
         conditionMap.put(WebBoServiceI.QUERY_FILTER_DATARIGHT, "false");
-        List<ClientBusinessObject> allCbo = boService.queryCBO(config.getBtmType().toLowerCase().trim(), conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> allCbo = boService.queryCBO(config.getBtmType().toLowerCase().trim(), conditionMap);
         if (allCbo == null || allCbo.size() == 0) {
             throw new VciBaseException(msgCodePrefix + "dataNotNull", new String[]{});
         }
@@ -157,9 +157,9 @@
         //鏌ヨ鏁版嵁鏄惁宸茬粡鍙戣捣浜嗘祦绋�
         //鏌ヨinput杩炴帴閲屾槸涓嶆槸鏈夋祦绋嬪疄渚嬶紝骞朵笖娴佺▼瀹炰緥涓嶇瓑浜庣粓姝�
         conditionMap.put("oid", " in (select f_oid from platformlt_" + processDao.getTaskDataLink() + " where oid " + conditionMap.get("oid").replace("\\IN", " in ") + ")");
-        List<ClientBusinessObject> workInstanceCbos = boService.queryCBO(processDao.getWorkIntanceBtmType(), conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> workInstanceCbos = boService.queryCBO(processDao.getWorkIntanceBtmType(), conditionMap);
         if (workInstanceCbos != null && workInstanceCbos.size() > 0) {
-            for (ClientBusinessObject workInstance : workInstanceCbos) {
+            for (com.vci.client.bof.ClientBusinessObject workInstance : workInstanceCbos) {
                 if (!workInstance.getLcStatus().equalsIgnoreCase("Obsoleted")) {
                     throw new VciBaseException(msgCodePrefix + "dataSubmitedToProcess", new String[]{workInstance.getName(), workInstance.getCreator()});
                 }
@@ -170,7 +170,7 @@
         String[][] objectPropertyValues = new String[allCbo.size()][4];
         String[] objIds = new String[allCbo.size()];//涓氬姟鏁版嵁鐨勭粍浠�
         for (int i = 0; i < allCbo.size(); i++) {
-            ClientBusinessObject cbo = allCbo.get(i);
+            com.vci.client.bof.ClientBusinessObject cbo = allCbo.get(i);
             String[] values = new String[4];
             values[0] = cbo.getOid();
             values[1] = cbo.getRevisionid();
@@ -595,14 +595,14 @@
         //鏌ヨ娴佺▼瀹炰緥
         Map<String, String> conditionMap = new HashMap<String, String>();
         conditionMap.put("executionid", executionId.trim() + "*");//浼氭湁瀛愭祦绋�
-        List<ClientBusinessObject> workInstanceCbos = boService.queryCBO(processDao.getWorkIntanceBtmType(), conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> workInstanceCbos = boService.queryCBO(processDao.getWorkIntanceBtmType(), conditionMap);
         if (workInstanceCbos == null || workInstanceCbos.size() == 0) {
             throw new VciBaseException(msgCodePrefix + "executionNotExist");
         }
         //鍒ゆ柇鏄惁閮芥槸鎵ц鐘舵�侊紝鍓嶇鐨勫垽鏂兘琚烦杩�
-        List<ClientBusinessObject> needUpdateCbos = new ArrayList<ClientBusinessObject>();
+        List<com.vci.client.bof.ClientBusinessObject> needUpdateCbos = new ArrayList<>();
         List<String> workInstanceOids = new ArrayList<String>();
-        for (ClientBusinessObject cbo : workInstanceCbos) {
+        for (com.vci.client.bof.ClientBusinessObject cbo : workInstanceCbos) {
             if (!cbo.getLcStatus().equalsIgnoreCase("Executing")) {
                 throw new VciBaseException(msgCodePrefix + "processNotExecutionStatus");
             }
@@ -612,7 +612,7 @@
         //鎵剧浉鍏崇殑娴佺▼浠诲姟瀵硅薄锛屽苟涓旀槸姝e湪鎵ц涓殑
         conditionMap.put("executionid", QueryOptionConstant.IN + "(" + WebUtil.toInSql(workInstanceOids.toArray(new String[0])) + ")");
         conditionMap.put("lcstatus", "Executing");
-        List<ClientBusinessObject> workItemCbos = boService.queryCBO(processDao.getWorkitemBtmType(), conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> workItemCbos = boService.queryCBO(processDao.getWorkitemBtmType(), conditionMap);
         if (workItemCbos != null && workItemCbos.size() > 0) {
             needUpdateCbos.addAll(workItemCbos);
         }
@@ -635,14 +635,14 @@
         //鏌ヨ娴佺▼瀹炰緥
         Map<String, String> conditionMap = new HashMap<String, String>();
         conditionMap.put("executionid", executionId.trim() + "*");//浼氭湁瀛愭祦绋�
-        List<ClientBusinessObject> workInstanceCbos = boService.queryCBO(processDao.getWorkIntanceBtmType(), conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> workInstanceCbos = boService.queryCBO(processDao.getWorkIntanceBtmType(), conditionMap);
         if (workInstanceCbos == null || workInstanceCbos.size() == 0) {
             throw new VciBaseException(msgCodePrefix + "executionNotExist");
         }
         //鍒ゆ柇鏄惁閮芥槸鎵ц鐘舵�侊紝鍓嶇鐨勫垽鏂兘琚烦杩�
-        List<ClientBusinessObject> needUpdateCbos = new ArrayList<ClientBusinessObject>();
+        List<com.vci.client.bof.ClientBusinessObject> needUpdateCbos = new ArrayList<>();
         List<String> workInstanceOids = new ArrayList<String>();
-        for (ClientBusinessObject cbo : workInstanceCbos) {
+        for (com.vci.client.bof.ClientBusinessObject cbo : workInstanceCbos) {
             if (!cbo.getLcStatus().equalsIgnoreCase("Suspended")) {
                 throw new VciBaseException(msgCodePrefix + "processNotSuspendedStatus");
             }
@@ -652,7 +652,7 @@
         //鎵剧浉鍏崇殑娴佺▼浠诲姟瀵硅薄锛屽苟涓旀槸姝e湪鎵ц涓殑
         conditionMap.put("executionid", QueryOptionConstant.IN + "(" + WebUtil.toInSql(workInstanceOids.toArray(new String[0])) + ")");
         conditionMap.put("lcstatus", "Suspended");
-        List<ClientBusinessObject> workItemCbos = boService.queryCBO(processDao.getWorkitemBtmType(), conditionMap);
+        List<com.vci.client.bof.ClientBusinessObject> workItemCbos = boService.queryCBO(processDao.getWorkitemBtmType(), conditionMap);
         if (workItemCbos != null && workItemCbos.size() > 0) {
             needUpdateCbos.addAll(workItemCbos);
         }
@@ -709,7 +709,7 @@
             }
         }
         List<String> causeList = Arrays.asList(new String[]{primaryKeyName});
-        List<ClientBusinessObject> cbos = boService.queryCBO(btmType, conditionMap, null, causeList);
+        List<com.vci.client.bof.ClientBusinessObject> cbos = boService.queryCBO(btmType, conditionMap, null, causeList);
         if (cbos == null || cbos.size() == 0) {
             throw new VciBaseException("鍙戣捣娴佺▼鐨勪笟鍔℃暟鎹叏閮ㄤ笉绗﹀悎瑕佹眰");
         }
@@ -718,7 +718,7 @@
         for (String oid : oidArray) {
             oidSet.add(oid);
         }
-        for (ClientBusinessObject cbo : cbos) {
+        for (com.vci.client.bof.ClientBusinessObject cbo : cbos) {
             if (oidSet.contains(cbo.getAttributeValue(primaryKeyName))) {
                 oidSet.remove(cbo.getAttributeValue(primaryKeyName));
             }
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebSecretServiceImpl.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebSecretServiceImpl.java
index 459f4ca..b00a728 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebSecretServiceImpl.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/service/impl/WebSecretServiceImpl.java
@@ -314,7 +314,7 @@
         Map<String,String> conditionMap = new HashMap<String, String>();
         conditionMap.put("startip",ip.trim());
 
-        List<ClientBusinessObject> ipCbos = boService.queryCBO(EnumIdConstant.IPSECRET_BTMNAME,conditionMap,null, Arrays.asList(new String[]{"ipsecret"}));
+        List<com.vci.client.bof.ClientBusinessObject> ipCbos = boService.queryCBO(EnumIdConstant.IPSECRET_BTMNAME,conditionMap,null, Arrays.asList(new String[]{"ipsecret"}));
         int ipSecret = 0;
         if(ipCbos!=null&& ipCbos.size()>0){
             ipSecret = WebUtil.getInt(ipCbos.get(0).getAttributeValue("ipsecret"));
diff --git a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/util/BeanUtil.java b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/util/BeanUtil.java
index da93b8c..57d3d7f 100644
--- a/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/util/BeanUtil.java
+++ b/Source/platformProject/vci-platform-web/src/main/java/com/vci/web/util/BeanUtil.java
@@ -17,18 +17,27 @@
 package com.vci.web.util;
 
 
+import com.vci.starter.web.annotation.*;
+import com.vci.starter.web.enumpck.VciFieldTypeEnum;
+import com.vci.starter.web.util.VciBaseUtil;
+import com.vci.starter.web.wrapper.VciReferFieldInfo;
 import com.vci.web.util.beans.BeanProperty;
 import com.vci.web.util.beans.BladeBeanCopier;
 import com.vci.web.util.convert.BladeConverter;
 import com.vci.web.util.beans.BladeBeanMap;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanWrapper;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.PropertyAccessorFactory;
 import org.springframework.cglib.beans.BeanGenerator;
 import org.springframework.lang.Nullable;
 
+import java.lang.reflect.Field;
 import java.util.*;
 
+import static com.vci.starter.web.wrapper.VciQueryWrapperForDO.BASE_MODEL_COMPATIBILITY_MAP;
+import static com.vci.starter.web.wrapper.VciQueryWrapperForDO.USER_TABLE_COMPATIBILITY;
+
 /**
  * 瀹炰綋宸ュ叿绫�
  *

--
Gitblit v1.9.3