Selaa lähdekoodia

文件处理改为正式目录,不在保持时触发,文件根据数据的创建时间设定目录,避免在同一个目录中有太多文件

imcaohui 6 vuotta sitten
vanhempi
commit
fe8613b3c2

BIN
TRS.WCM.Developer/.DS_Store


BIN
TRS.WCM.Developer/classes/com/trs/exchange/metadata/MetaDataExchange.class


BIN
TRS.WCM.Developer/classes/com/trs/exchange/metadata/MetaDataExchangeImpl.class


BIN
TRS.WCM.Developer/classes/com/trs/exchange/metadata/MetaDataExchangeImplTest.class


+ 9 - 9
TRS.WCM.Developer/src/com/trs/exchange/metadata/MetaDataExchange.java

@@ -38,6 +38,7 @@ import com.trs.infra.common.WCMException;
 import com.trs.infra.persistent.WCMFilter;
 import com.trs.infra.persistent.db.DBManager;
 import com.trs.infra.support.file.FilesMan;
+import com.trs.infra.util.CMyDateTime;
 import com.trs.infra.util.CMyFile;
 import com.trs.infra.util.CMyString;
 import com.trs.infra.util.ExceptionNumber;
@@ -471,7 +472,6 @@ public abstract class MetaDataExchange {
 					// 将原有属性设置成WCM规则文件名
 					bFind = true;
 					element.setAttribute(currTagSrcName, sUploadName);
-					element.setAttribute("UploadPic", sUploadName);
 
 					// 记录已经处理过的文件
 					hImgRecs.put(sKey, sUploadName);
@@ -557,21 +557,21 @@ public abstract class MetaDataExchange {
 				false);
 		if (CMyString.isEmpty(sResFullPahtName))
 			return null;
+		
+		String sDstAbsolutePathFileName = filesMan
+				.getNextFilePathName(FilesMan.FLAG_WEBFILE, sFileExt, _oMetaData.getCrTime());
 
-		String sAbsolutePathUpldateFileName = filesMan
-				.getNextFilePathName(FilesMan.FLAG_UPLOAD, sFileExt);
-
-		String sUploadSrc = CMyFile
-				.extractFileName(sAbsolutePathUpldateFileName);
+		String sDstFileName = CMyFile
+				.extractFileName(sDstAbsolutePathFileName);
 		if (sResFullPahtName.startsWith("http")) {
-			CMy3WLib.getFile(sResFullPahtName, sAbsolutePathUpldateFileName);
+			CMy3WLib.getFile(sResFullPahtName, sDstAbsolutePathFileName);
 		} else if (CMyFile.fileExists(sResFullPahtName)) {
-			CMyFile.copyFile(sResFullPahtName, sAbsolutePathUpldateFileName);
+			CMyFile.copyFile(sResFullPahtName, sDstAbsolutePathFileName);
 		} else {
 			return null;
 		}
 
-		return sUploadSrc;
+		return sDstFileName;
 	}
 
 	private void initLogger(int _nDstChannelId) throws Exception {

+ 33 - 25
TRS.WCM.Developer/src/com/trs/exchange/metadata/MetaDataExchangeImpl.java

@@ -8,30 +8,38 @@ import com.trs.infra.common.WCMException;
 import com.trs.infra.persistent.WCMFilter;
 
 public class MetaDataExchangeImpl extends MetaDataExchange {
-    
-    public MetaDataExchangeImpl(MyDBManager _dbMgr) {        
-        super(_dbMgr);
-    }
-
-    protected WCMFilter[] makeFilterQueryAppendixOfDocument(
-            MetaViewData _oMetaData) {
-        return null;
-    }
-
-    protected List makeAppendixesOfDocument(MetaViewData _oMetaData)
-            throws Exception {
-        return null;
-    }
-
-    protected String makeResFullPathName(MetaViewData _oMetaData,
-            String _sResName, boolean _bAppendix) throws Exception {
-        return null;
-    }
-
-    protected String makeMedialPathName(MetaViewData _oMetaData,
-            String _sMediaFileName) throws WCMException {
-        // 假定Mas可以访问一下文件,文件存放规则就是数据中所写方式
-        return _sMediaFileName;
-    }
+
+	public MetaDataExchangeImpl(MyDBManager _dbMgr) {
+		super(_dbMgr);
+	}
+
+	protected WCMFilter[] makeFilterQueryAppendixOfDocument(MetaViewData _oMetaData) {
+		return null;
+	}
+
+	protected List makeAppendixesOfDocument(MetaViewData _oMetaData) throws Exception {
+		return null;
+	}
+
+	// TODO 写迁移工具的必须实现这个接口
+	/**
+	 * 根据传入的文件名构造迁移工具可读取的全路径文件名 <BR>
+	 * 文件名有可能是被迁移的数据字段中存储的文件名或者图文混排内容中的img中的src
+	 * 
+	 */
+	protected String makeResFullPathName(MetaViewData _oMetaData, String _sResName, boolean _bAppendix)
+			throws Exception {
+		return null;
+	}
+
+	// TODO 如果有视频需要处理的需要实现这个接口
+	/**
+	 * 根据被迁移的记录信息以及视频文件名构造一个MAS可以访问的全路径文件名<BR>
+	 * 被迁移的记录信息在MetaViewData对象中存储
+	 */
+	protected String makeMedialPathName(MetaViewData _oMetaData, String _sMediaFileName) throws WCMException {
+		// 假定Mas可以访问一下文件,文件存放规则就是数据中所写方式
+		return _sMediaFileName;
+	}
 
 }

+ 75 - 86
TRS.WCM.Developer/test/com/trs/exchange/metadata/MetaDataExchangeImplTest.java

@@ -1,7 +1,5 @@
 package com.trs.exchange.metadata;
 
-import java.io.File;
-
 import com.trs.TRSWCMBaseTest;
 import com.trs.exchange.MyDBManager;
 import com.trs.infra.persistent.WCMFilter;
@@ -9,92 +7,83 @@ import com.trs.infra.util.CMyException;
 import com.trs.infra.util.database.MysqlDB;
 
 public class MetaDataExchangeImplTest extends TRSWCMBaseTest {
-    private static org.apache.log4j.Logger logger = org.apache.log4j.Logger
-            .getLogger(MetaDataExchangeImplTest.class);
+	private static org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(MetaDataExchangeImplTest.class);
+
+	public MetaDataExchangeImplTest(String name) {
+		super(name);
+	}
+
+	/**
+	 * 测试简单元数据迁移
+	 */
+	public void testCreateMetaViewDatas() {
+		MyDBManager oMyDBManager = null;
+		try {
+			// 设定源数据库的信息
+			// 支持的源数据库类型:OracleDB11G OracleDB SQLServerDB MysqlDB
+			// SybaseASEWithJtds
+			// DB2UDBV9 KingBaseDB
+			oMyDBManager = new MyDBManager("MySQL",
+					"jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull",
+					"root", "trsadmin", MysqlDB.class);
+
+			// 设置读取数据的SQL,使用别名和海云中的视图字段保持一致
+			// 必须包含DocOutupId,为源数据ID,CrTime数据的创建时间,CrUser数据的创建者
+			WCMFilter oFilterForQuerySrcData = new WCMFilter("MyData", "", "",
+					"MyId,MyTitle CTitle, MyContent CContent, MyId DocOutupId, MyTime CrTime, MyUser CrUser");
+
+			MetaDataExchangeImpl oMetaDataExchange = new MetaDataExchangeImpl(oMyDBManager);
+
+			// 目标栏目
+			int nDstChannelId = 65;
+
+			// 开始迁移
+			oMetaDataExchange.createMetaViewDatas(m_oLoginUser, nDstChannelId, oFilterForQuerySrcData, "MyId", true);
+		} catch (Exception ex) {
+			logger.error("测试[testCreateMetaViewDatas]出现异常!", ex);
+			fail("测试[testCreateMetaViewDatas]出现异常!\n" + CMyException.getStackTraceText(ex));
+		} finally {
+			if (oMyDBManager != null)
+				oMyDBManager.close();
+		}
+	}
+
+	/**
+	 * 测试包含视频的元数据迁移
+	 */
+	public void testCreateMetaViewDatasContainMedia() {
+		MyDBManager oMyDBManager = null;
+		try {
+			// 设定源数据库的信息
+			// 支持的源数据库类型:OracleDB11G OracleDB SQLServerDB MysqlDB
+			// SybaseASEWithJtds
+			// DB2UDBV9 KingBaseDB
+			oMyDBManager = new MyDBManager("MySQL",
+					"jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull",
+					"root", "trsadmin", MysqlDB.class);
+
+			WCMFilter oFilterForQuerySrcData = new WCMFilter("MyData", "", "",
+					"MyTitle CTitle, MyContent CContent, MyId DocOutupId, MyMediaFile MyMediaFile");
+
+			// 设定源系统存放文件的信息
+			MetaDataExchangeImpl oMetaDataExchange = new MetaDataExchangeImpl(oMyDBManager);
 
-    public MetaDataExchangeImplTest(String name) {
-        super(name);
-    }
+			// 设置MAS相关信息
+			int nDirId = 1; // Mas目录地址
+			oMetaDataExchange.setMASInfo("http://127.0.0.1:8181/mas/", nDirId);
 
-    /**
-     * 测试简单元数据迁移
-     */
-    public void testCreateMetaViewDatas() {
-        MyDBManager oMyDBManager = null;
-        try {
-            // 设定源数据库的信息
-            // 支持的源数据库类型:OracleDB11G OracleDB SQLServerDB MysqlDB
-            // SybaseASEWithJtds
-            // DB2UDBV9 KingBaseDB
-            oMyDBManager = new MyDBManager(
-                    "MySQL",
-                    "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull",
-                    "root", "trsadmin", MysqlDB.class);
-            
-            WCMFilter oFilterForQuerySrcData = new WCMFilter("MyData", "", "",
-                        "MyTitle CTitle, MyContent CContent, MyId DocOutupId");
+			// 目标栏目
+			int nDstChannelId = 56;
 
-            // 设定源系统存放文件的信息
-            MetaDataExchangeImpl oMetaDataExchange = new MetaDataExchangeImpl(
-                    oMyDBManager);
-            
-            // 目标栏目
-            int nDstChannelId = 65;
-            
-            // 开始迁移
-            oMetaDataExchange.createMetaViewDatas(m_oLoginUser,
-                    nDstChannelId, oFilterForQuerySrcData, "MyId", true);
-        } catch (Exception ex) {
-            logger.error("测试[testCreateMetaViewDatas]出现异常!", ex);
-            fail("测试[testCreateMetaViewDatas]出现异常!\n"
-                    + CMyException.getStackTraceText(ex));
-        } finally {
-            if (oMyDBManager != null)
-                oMyDBManager.close();
-        }
-    }
-    
-    
-    /**
-     * 测试包含视频的元数据迁移
-     */
-    public void testCreateMetaViewDatasContainMedia() {
-        MyDBManager oMyDBManager = null;
-        try {
-            // 设定源数据库的信息
-            // 支持的源数据库类型:OracleDB11G OracleDB SQLServerDB MysqlDB
-            // SybaseASEWithJtds
-            // DB2UDBV9 KingBaseDB
-            oMyDBManager = new MyDBManager(
-                    "MySQL",
-                    "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull",
-                    "root", "trsadmin", MysqlDB.class);
-            
-            WCMFilter oFilterForQuerySrcData = new WCMFilter("MyData", "", "",
-                        "MyTitle CTitle, MyContent CContent, MyId DocOutupId, MyMediaFile MyMediaFile");
+			// 开始迁移
+			oMetaDataExchange.createMetaViewDatas(m_oLoginUser, nDstChannelId, oFilterForQuerySrcData, "MyId", true);
+		} catch (Exception ex) {
+			logger.error("测试[testCreateMetaViewDatas]出现异常!", ex);
+			fail("测试[testCreateMetaViewDatas]出现异常!\n" + CMyException.getStackTraceText(ex));
+		} finally {
+			if (oMyDBManager != null)
+				oMyDBManager.close();
+		}
+	}
 
-            // 设定源系统存放文件的信息
-            MetaDataExchangeImpl oMetaDataExchange = new MetaDataExchangeImpl(
-                    oMyDBManager);
-            
-            // 设置MAS相关信息
-            int nDirId = 1; // Mas目录地址
-            oMetaDataExchange.setMASInfo("http://127.0.0.1:8181/mas/", nDirId);
-            
-            // 目标栏目
-            int nDstChannelId = 56;
-            
-            // 开始迁移
-            oMetaDataExchange.createMetaViewDatas(m_oLoginUser,
-                    nDstChannelId, oFilterForQuerySrcData, "MyId", true);
-        } catch (Exception ex) {
-            logger.error("测试[testCreateMetaViewDatas]出现异常!", ex);
-            fail("测试[testCreateMetaViewDatas]出现异常!\n"
-                    + CMyException.getStackTraceText(ex));
-        } finally {
-            if (oMyDBManager != null)
-                oMyDBManager.close();
-        }
-    }
-   
 }

+ 1 - 1
TRS.WCM.Developer/test/com/trs/web2frame/WCMServiceCallerTest.java

@@ -42,7 +42,7 @@ public class WCMServiceCallerTest extends TestCase {
 		oPostData.put("CurrUserName", "admin");
 		oPostData.put("MediaType", "1");
 		Dispatch oResult = WCMServiceCaller.Call(sServiceId, sMethodName,
-				oPostData, true);
+				oPostData, false);
 		System.out.println("Result:" + oResult.getResponseText());
 	}