|
@@ -0,0 +1,132 @@
|
|
|
+
|
|
|
+use trs_data_migration;
|
|
|
+
|
|
|
+DROP PROCEDURE IF EXISTS sp_data_migration_xwcmmaterial;
|
|
|
+DELIMITER $$
|
|
|
+CREATE PROCEDURE sp_data_migration_xwcmmaterial(IN prevAppendixId BIGINT(20),
|
|
|
+ IN appendixIdOffset BIGINT(20),
|
|
|
+ IN docIdOffset BIGINT(20))
|
|
|
+ BEGIN
|
|
|
+
|
|
|
+ DECLARE isover INT DEFAULT 0;
|
|
|
+
|
|
|
+ DECLARE migr_table_name varchar(255) DEFAULT 'xwcmmaterial';
|
|
|
+
|
|
|
+ DECLARE f_APPENDIXID int(11) DEFAULT 0;
|
|
|
+ DECLARE f_APPDOCID int(11) DEFAULT 0;
|
|
|
+ DECLARE f_APPFLAG smallint(6) DEFAULT NULL;
|
|
|
+ DECLARE f_APPFILE varchar(255) DEFAULT 0;
|
|
|
+ DECLARE f_AppFromId int(11) DEFAULT '0';
|
|
|
+ DECLARE f_AppFromType int(11) DEFAULT '0';
|
|
|
+ DECLARE f_CRUSER varchar(50) DEFAULT NULL;
|
|
|
+ DECLARE f_CRTIME datetime DEFAULT NULL;
|
|
|
+
|
|
|
+
|
|
|
+ DECLARE cur CURSOR FOR
|
|
|
+ SELECT
|
|
|
+ a.MATERIALQUOTEID,
|
|
|
+ a.DOCID,
|
|
|
+ b.MATERIALTYPE,
|
|
|
+ b.FILENAME,
|
|
|
+ b.MASID,
|
|
|
+ b.CrUser,
|
|
|
+ b.CrTime
|
|
|
+ FROM
|
|
|
+ trs_data_migration.xwcmmaterialquote a
|
|
|
+ LEFT JOIN trs_data_migration.xwcmmaterial b ON a.MATERIALID = b.MATERIALID
|
|
|
+ WHERE b.MATERIALTYPE IN (1, 2)
|
|
|
+ ORDER BY
|
|
|
+ a.MATERIALQUOTEID ASC;
|
|
|
+
|
|
|
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
|
|
|
+
|
|
|
+ OPEN cur;
|
|
|
+
|
|
|
+ FETCH cur INTO
|
|
|
+ f_APPENDIXID,
|
|
|
+ f_APPDOCID,
|
|
|
+ f_APPFLAG,
|
|
|
+ f_APPFILE,
|
|
|
+ f_AppFromId,
|
|
|
+ f_CRUSER,
|
|
|
+ f_CRTIME
|
|
|
+ ;
|
|
|
+
|
|
|
+
|
|
|
+ select concat('开始迁移 ', migr_table_name) info;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ WHILE isover = 0 DO
|
|
|
+
|
|
|
+ # 断点续传
|
|
|
+ IF (f_APPENDIXID > prevAppendixId)
|
|
|
+
|
|
|
+ THEN
|
|
|
+
|
|
|
+ SET @APPENDIXID = f_APPENDIXID;
|
|
|
+ SET f_APPENDIXID = f_APPENDIXID + appendixIdOffset;
|
|
|
+ SET f_APPDOCID = f_APPDOCID + docIdOffset;
|
|
|
+ IF (f_APPFLAG = 1)
|
|
|
+ THEN
|
|
|
+ SET f_APPFLAG = 80;
|
|
|
+ SET f_AppFromId = 0;
|
|
|
+ SET f_AppFromType = 0;
|
|
|
+ END IF;
|
|
|
+ IF (f_APPFLAG = 2)
|
|
|
+ THEN
|
|
|
+ SET f_APPFLAG = 90;
|
|
|
+ SET f_APPFILE = f_AppFromId;
|
|
|
+ SET f_AppFromType = 1;
|
|
|
+ END IF;
|
|
|
+
|
|
|
+ insert into trs_hycloud_iip.wcmappendix
|
|
|
+ (
|
|
|
+ APPENDIXID,
|
|
|
+ APPDOCID,
|
|
|
+ APPFILE,
|
|
|
+ APPFILETYPE,
|
|
|
+ APPFLAG,
|
|
|
+ CRUSER,
|
|
|
+ CRTIME,
|
|
|
+ AppFromType,
|
|
|
+ AppFromId
|
|
|
+ )
|
|
|
+ VALUES
|
|
|
+ (
|
|
|
+ f_APPENDIXID,
|
|
|
+ f_APPDOCID,
|
|
|
+ f_APPFILE,
|
|
|
+ -1,
|
|
|
+ f_APPFLAG,
|
|
|
+ f_CRUSER,
|
|
|
+ f_CRTIME,
|
|
|
+ f_AppFromType,
|
|
|
+ f_AppFromId
|
|
|
+ );
|
|
|
+
|
|
|
+ SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @APPENDIXID);
|
|
|
+
|
|
|
+ prepare stmt from @log_sql;
|
|
|
+ EXECUTE stmt;
|
|
|
+ deallocate prepare stmt;
|
|
|
+ END IF ;
|
|
|
+
|
|
|
+ FETCH cur INTO
|
|
|
+ f_APPENDIXID,
|
|
|
+ f_APPDOCID,
|
|
|
+ f_APPFLAG,
|
|
|
+ f_APPFILE,
|
|
|
+ f_AppFromId,
|
|
|
+ f_CRUSER,
|
|
|
+ f_CRTIME
|
|
|
+ ;
|
|
|
+
|
|
|
+ END WHILE;
|
|
|
+
|
|
|
+ CLOSE cur;
|
|
|
+
|
|
|
+ select concat('完成迁移 ', migr_table_name) info;
|
|
|
+
|
|
|
+ END $$
|
|
|
+DELIMITER ;
|