3_sp_data_migration_wcmchnldoc.sql 9.2 KB

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