未满标18/24小时通知(存储过程)

  1. BEGIN
  2. DECLARE Done INT DEFAULT 0;
  3. DECLARE number VARCHAR(40) character set gbk;
  4. DECLARE id int;
  5. DECLARE c int;
  6. DECLARE d datetime;
  7. DECLARE money decimal(20,2) DEFAULT 0.00;
  8. DECLARE Textdata1 text character set gbk;
  9. DECLARE Textdata2 text character set gbk;
  10. DECLARE Exdate datetime;
  11. DECLARE Time INT;
  12. DECLARE cc int;
  13. DECLARE telwq varchar(20);
  14. DECLARE telhb varchar(20);
  15. DECLARE telsj varchar(20);
  16. DECLARE rs CURSOR FOR SELECT a.a AS number,a.b AS id,a.c AS c,a.d AS d,sum(a.f-b.b) AS money FROM (SELECT a.F25 AS a,a.F01 AS b,a.F08 AS c,a.F22 AS d,b.F11 AS e,a.F05 AS f FROM S62.T6230 a,S62.T6231 b,S62.T6250 c WHERE a.F01=b.F01 AND a.F01=c.F01 AND b.F11 IS NULL AND HOUR(TIMEDIFF(DATE_ADD(a.F22,INTERVAL a.F08 DAY),NOW()))<=24 )a
  17. LEFT JOIN
  18. (SELECT F02 AS a,sum(F04) AS b FROM S62.T6250 GROUP BY F02) b
  19. ON a.b=b.a
  20. GROUP BY a.b;
  21. DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
  22. SET Exdate = (SELECT DATE_ADD(NOW(),INTERVAL 30 MINUTE));
  23. SET telwq = 13760836670;
  24. SET telhb = 15920149039;
  25. SET telsj = 13808870034;
  26. IF (SELECT COUNT(*) FROM (SELECT a.F25 AS a,a.F01 AS b,a.F08 AS c,a.F22 AS d,b.F11 AS e,a.F05 AS f FROM S62.T6230 a,S62.T6231 b,S62.T6250 c WHERE a.F01=b.F01 AND a.F01=c.F01 )a
  27. LEFT JOIN S62.T6231 b
  28. ON a.b=b.F01
  29. WHERE HOUR(TIMEDIFF(DATE_ADD(a.d,INTERVAL a.c DAY),NOW()))<=24 AND b.F11 IS NULL)>0
  30. THEN
  31. OPEN rs;
  32. FETCH NEXT FROM rs INTO number,id,c,d,money;
  33. REPEAT
  34. SET Time =HOUR(TIMEDIFF(NOW(),DATE_ADD(d,INTERVAL c DAY)));
  35. IF (Time <= 24 && Time >= 23)
  36. THEN
  37. SET Textdata1 = (SELECT CONCAT('标的',id,',编号',number,',剩余筹款时24小时,剩余筹款金额',money,'元。'));
  38. INSERT INTO
  39. S10._1040(F02,F03,F04,F05,F06)
  40. VALUES(0,Textdata1,NOW(),'W',Exdate);
  41. SET cc =(SELECT @@IDENTITY);
  42. INSERT INTO
  43. S10._1041(F01,F02)
  44. VALUES (cc,telwq);
  45. INSERT INTO
  46. S10._1040(F02,F03,F04,F05,F06)
  47. VALUES(0,Textdata1,NOW(),'W',Exdate);
  48. SET cc =(SELECT @@IDENTITY);
  49. INSERT INTO
  50. S10._1041(F01,F02)
  51. VALUES (cc,telhb);
  52. INSERT INTO
  53. S10._1040(F02,F03,F04,F05,F06)
  54. VALUES(0,Textdata1,NOW(),'W',Exdate);
  55. SET cc =(SELECT @@IDENTITY);
  56. INSERT INTO
  57. S10._1041(F01,F02)
  58. VALUES (cc,telsj);
  59. END IF;
  60. IF (Time <= 18 && Time >= 17)
  61. THEN
  62. SET Textdata2 = (SELECT CONCAT('标的',id,',编号',number,',剩余筹款时18小时,剩余筹款金额',money,'元。'));
  63. INSERT INTO
  64. S10._1040(F02,F03,F04,F05,F06)
  65. VALUES(0,Textdata2,NOW(),'W',Exdate);
  66. SET cc =(SELECT @@IDENTITY);
  67. INSERT INTO
  68. S10._1041 (F01,F02)
  69. VALUES(cc,telwq);
  70. INSERT INTO
  71. S10._1040(F02,F03,F04,F05,F06)
  72. VALUES(0,Textdata2,NOW(),'W',Exdate);
  73. SET cc =(SELECT @@IDENTITY);
  74. INSERT INTO
  75. S10._1041(F01,F02)
  76. VALUES (cc,telhb);
  77. INSERT INTO
  78. S10._1040(F02,F03,F04,F05,F06)
  79. VALUES(0,Textdata2,NOW(),'W',Exdate);
  80. SET cc =(SELECT @@IDENTITY);
  81. INSERT INTO
  82. S10._1041(F01,F02)
  83. VALUES (cc,telsj);
  84. END IF;
  85. FETCH NEXT FROM rs INTO number,id,c,d,money;
  86. UNTIL Done END REPEAT;
  87. CLOSE rs;
  88. END IF;
  89. END





原文地址:https://www.cnblogs.com/tangbinghaochi/p/6292958.html