3_sp_data_migration_wcmchnldoc.sql 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. use trs_data_migration;
  2. DROP PROCEDURE IF EXISTS sp_data_migration_wcmchnldoc;
  3. DELIMITER $$
  4. CREATE PROCEDURE sp_data_migration_wcmchnldoc(IN prevRecId BIGINT(20),
  5. IN recIdOffset BIGINT(20),
  6. IN docIdOffset BIGINT(20),
  7. IN siteIdOffset BIGINT(20),
  8. IN channelIdOffset BIGINT(20))
  9. BEGIN
  10. DECLARE isover INT DEFAULT 0;
  11. DECLARE migr_table_name varchar(255) DEFAULT 'wcmchnldoc';
  12. DECLARE f_CHNLID int(11) DEFAULT '0';
  13. DECLARE f_DOCID int(11) DEFAULT '0';
  14. DECLARE f_DOCORDER int(11) DEFAULT '0';
  15. DECLARE f_DOCSTATUS int(11) DEFAULT '0';
  16. DECLARE f_CRUSER varchar(100) DEFAULT 'admin';
  17. DECLARE f_CRTIME datetime DEFAULT NULL;
  18. DECLARE f_DOCPUBTIME datetime DEFAULT NULL;
  19. DECLARE f_DOCPUBURL varchar(300) DEFAULT NULL;
  20. DECLARE f_RECID int(11) DEFAULT '0';
  21. DECLARE f_DOCORDERPRI int(11) DEFAULT '0';
  22. DECLARE f_INVALIDTIME datetime DEFAULT NULL;
  23. DECLARE f_OPERUSER varchar(50) DEFAULT NULL;
  24. DECLARE f_OPERTIME datetime DEFAULT NULL;
  25. DECLARE f_MODAL int(11) DEFAULT '1';
  26. DECLARE f_DOCRELTIME datetime DEFAULT NULL;
  27. DECLARE f_DOCCHANNEL int(11) DEFAULT NULL;
  28. DECLARE f_DOCFLAG int(11) DEFAULT NULL;
  29. DECLARE f_DOCKIND int(11) DEFAULT '0';
  30. DECLARE f_SITEID int(11) DEFAULT '0';
  31. DECLARE f_SRCSITEID int(11) DEFAULT '0';
  32. DECLARE f_DOCFIRSTPUBTIME datetime DEFAULT NULL;
  33. DECLARE f_NODEID int(11) DEFAULT '0';
  34. DECLARE f_CRDEPT varchar(200) DEFAULT NULL;
  35. DECLARE f_DOCOUTUPID int(11) DEFAULT '0';
  36. DECLARE f_DOCFORM int(11) DEFAULT '0';
  37. DECLARE f_DOCLEVEL int(11) DEFAULT NULL;
  38. DECLARE f_attachpic smallint(6) DEFAULT NULL;
  39. DECLARE f_POSCHNLID int(11) DEFAULT '0';
  40. DECLARE f_DocType smallint(6) DEFAULT '1';
  41. DECLARE f_ISTIMINGPUBLISH tinyint(2) DEFAULT '0';
  42. DECLARE f_ACTIONTYPE tinyint(4) DEFAULT '0';
  43. DECLARE f_PUBSTATUS tinyint(4) DEFAULT '0' ;
  44. DECLARE f_GDORDER tinyint(4) DEFAULT '0';
  45. DECLARE f_DOCAUTHOR varchar(200) DEFAULT NULL ;
  46. DECLARE f_ORIGINRECID int(11) DEFAULT '0';
  47. DECLARE f_DOCSOURCENAME varchar(200) DEFAULT NULL ;
  48. DECLARE f_CRDEPTID int(11) DEFAULT '0' ;
  49. DECLARE f_TIMEDSTATUS tinyint(4) DEFAULT '0' ;
  50. DECLARE f_CANCELPUBTIME datetime DEFAULT NULL ;
  51. DECLARE f_ACTIONUSER varchar(100) DEFAULT NULL ;
  52. DECLARE cur CURSOR FOR
  53. SELECT
  54. CHNLID,
  55. DOCID,
  56. DOCORDER,
  57. DOCSTATUS,
  58. CRUSER,
  59. CRTIME,
  60. DOCPUBTIME,
  61. DOCPUBURL,
  62. RECID,
  63. DOCORDERPRI,
  64. INVALIDTIME,
  65. OPERUSER,
  66. OPERTIME,
  67. MODAL,
  68. DOCRELTIME,
  69. DOCCHANNEL,
  70. DOCFLAG,
  71. DOCKIND,
  72. SITEID,
  73. SRCSITEID,
  74. DOCFIRSTPUBTIME,
  75. NODEID,
  76. CRDEPT,
  77. DOCOUTUPID,
  78. DOCFORM,
  79. DOCLEVEL,
  80. attachpic,
  81. POSCHNLID,
  82. DocType,
  83. ISTIMINGPUBLISH,
  84. ACTIONTYPE,
  85. PUBSTATUS,
  86. GDORDER,
  87. DOCAUTHOR,
  88. ORIGINRECID,
  89. DOCSOURCENAME,
  90. CRDEPTID,
  91. TIMEDSTATUS,
  92. CANCELPUBTIME,
  93. ACTIONUSER
  94. FROM trs_data_migration.wcmchnldoc
  95. ORDER BY RECID ASC ;
  96. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  97. OPEN cur;
  98. FETCH cur INTO
  99. f_CHNLID,
  100. f_DOCID,
  101. f_DOCORDER,
  102. f_DOCSTATUS,
  103. f_CRUSER,
  104. f_CRTIME,
  105. f_DOCPUBTIME,
  106. f_DOCPUBURL,
  107. f_RECID,
  108. f_DOCORDERPRI,
  109. f_INVALIDTIME,
  110. f_OPERUSER,
  111. f_OPERTIME,
  112. f_MODAL,
  113. f_DOCRELTIME,
  114. f_DOCCHANNEL,
  115. f_DOCFLAG,
  116. f_DOCKIND,
  117. f_SITEID,
  118. f_SRCSITEID,
  119. f_DOCFIRSTPUBTIME,
  120. f_NODEID,
  121. f_CRDEPT,
  122. f_DOCOUTUPID,
  123. f_DOCFORM,
  124. f_DOCLEVEL,
  125. f_attachpic,
  126. f_POSCHNLID,
  127. f_DocType,
  128. f_ISTIMINGPUBLISH,
  129. f_ACTIONTYPE,
  130. f_PUBSTATUS,
  131. f_GDORDER,
  132. f_DOCAUTHOR,
  133. f_ORIGINRECID,
  134. f_DOCSOURCENAME,
  135. f_CRDEPTID,
  136. f_TIMEDSTATUS,
  137. f_CANCELPUBTIME,
  138. f_ACTIONUSER
  139. ;
  140. select concat('开始迁移 ', migr_table_name) info;
  141. SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, 0);
  142. prepare stmt from @log_sql;
  143. EXECUTE stmt;
  144. deallocate prepare stmt;
  145. WHILE isover= 0 DO
  146. # 断点续传
  147. IF (f_RECID > prevRecId)
  148. THEN
  149. SET @RECID = f_RECID;
  150. SET f_RECID = f_RECID + recIdOffset;
  151. SET f_DOCID = f_DOCID + docIdOffset;
  152. SET f_CHNLID = f_CHNLID + channelIdOffset;
  153. SET f_SITEID = f_SITEID + siteIdOffset;
  154. insert into trs_hycloud_iip.wcmchnldoc
  155. (
  156. CHNLID,
  157. DOCID,
  158. DOCORDER,
  159. DOCSTATUS,
  160. CRUSER,
  161. CRTIME,
  162. DOCPUBTIME,
  163. DOCPUBURL,
  164. RECID,
  165. DOCORDERPRI,
  166. INVALIDTIME,
  167. OPERUSER,
  168. OPERTIME,
  169. MODAL,
  170. DOCRELTIME,
  171. DOCCHANNEL,
  172. DOCFLAG,
  173. DOCKIND,
  174. SITEID,
  175. SRCSITEID,
  176. DOCFIRSTPUBTIME,
  177. NODEID,
  178. CRDEPT,
  179. DOCOUTUPID,
  180. DOCFORM,
  181. DOCLEVEL,
  182. attachpic,
  183. POSCHNLID,
  184. DocType,
  185. ISTIMINGPUBLISH,
  186. ACTIONTYPE,
  187. PUBSTATUS,
  188. GDORDER,
  189. DOCAUTHOR,
  190. ORIGINRECID,
  191. DOCSOURCENAME,
  192. CRDEPTID,
  193. TIMEDSTATUS,
  194. CANCELPUBTIME,
  195. ACTIONUSER
  196. )
  197. VALUES
  198. (
  199. f_CHNLID,
  200. f_DOCID,
  201. f_DOCORDER,
  202. f_DOCSTATUS,
  203. f_CRUSER,
  204. f_CRTIME,
  205. f_DOCPUBTIME,
  206. f_DOCPUBURL,
  207. f_RECID,
  208. f_DOCORDERPRI,
  209. f_INVALIDTIME,
  210. f_OPERUSER,
  211. f_OPERTIME,
  212. f_MODAL,
  213. f_DOCRELTIME,
  214. f_DOCCHANNEL,
  215. f_DOCFLAG,
  216. f_DOCKIND,
  217. f_SITEID,
  218. f_SRCSITEID,
  219. f_DOCFIRSTPUBTIME,
  220. f_NODEID,
  221. f_CRDEPT,
  222. f_DOCOUTUPID,
  223. f_DOCFORM,
  224. f_DOCLEVEL,
  225. f_attachpic,
  226. f_POSCHNLID,
  227. f_DocType,
  228. f_ISTIMINGPUBLISH,
  229. f_ACTIONTYPE,
  230. f_PUBSTATUS,
  231. f_GDORDER,
  232. f_DOCAUTHOR,
  233. f_ORIGINRECID,
  234. f_DOCSOURCENAME,
  235. f_CRDEPTID,
  236. f_TIMEDSTATUS,
  237. f_CANCELPUBTIME,
  238. f_ACTIONUSER
  239. );
  240. SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @RECID);
  241. prepare stmt from @log_sql;
  242. EXECUTE stmt;
  243. deallocate prepare stmt;
  244. END IF ;
  245. FETCH cur INTO
  246. f_CHNLID,
  247. f_DOCID,
  248. f_DOCORDER,
  249. f_DOCSTATUS,
  250. f_CRUSER,
  251. f_CRTIME,
  252. f_DOCPUBTIME,
  253. f_DOCPUBURL,
  254. f_RECID,
  255. f_DOCORDERPRI,
  256. f_INVALIDTIME,
  257. f_OPERUSER,
  258. f_OPERTIME,
  259. f_MODAL,
  260. f_DOCRELTIME,
  261. f_DOCCHANNEL,
  262. f_DOCFLAG,
  263. f_DOCKIND,
  264. f_SITEID,
  265. f_SRCSITEID,
  266. f_DOCFIRSTPUBTIME,
  267. f_NODEID,
  268. f_CRDEPT,
  269. f_DOCOUTUPID,
  270. f_DOCFORM,
  271. f_DOCLEVEL,
  272. f_attachpic,
  273. f_POSCHNLID,
  274. f_DocType,
  275. f_ISTIMINGPUBLISH,
  276. f_ACTIONTYPE,
  277. f_PUBSTATUS,
  278. f_GDORDER,
  279. f_DOCAUTHOR,
  280. f_ORIGINRECID,
  281. f_DOCSOURCENAME,
  282. f_CRDEPTID,
  283. f_TIMEDSTATUS,
  284. f_CANCELPUBTIME,
  285. f_ACTIONUSER
  286. ;
  287. END WHILE;
  288. CLOSE cur;
  289. select concat('完成迁移 ', migr_table_name) info;
  290. END $$
  291. DELIMITER ;