Browse Source

【群聊机器人消息推送】【自动建表】

wuyx 3 years ago
parent
commit
f33f702d2c

+ 38 - 1
uas-office-qywx/src/main/java/com/usoftchina/uas/office/qywx/service/UasUApprovalMsgService.java

@@ -3,6 +3,7 @@ package com.usoftchina.uas.office.qywx.service;
 import com.usoftchina.uas.office.qywx.entity.UApprovalMsg;
 import com.usoftchina.uas.office.qywx.entity.UApprovalRobMsg;
 import com.usoftchina.uas.office.service.AbstractService;
+import com.usoftchina.uas.office.util.StringUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -24,7 +25,43 @@ public class UasUApprovalMsgService extends AbstractService {
                 " SELECT TT.*,SYSDATE,'"+status+"','"+reason+"' FROM UAPPROVALMSG TT WHERE TT.ID_ = "+id_);
     }
     public List<UApprovalRobMsg> getAllRobMsg() {
-        return queryForBeanList("select * from UApprovalRobMsg where key_ IS NOT NULL AND TYPE_ IS NOT NULL", UApprovalRobMsg.class);
+        List<UApprovalRobMsg> robmsgs = new ArrayList<>();
+        try {
+            robmsgs = queryForBeanList("select * from UApprovalRobMsg where key_ IS NOT NULL AND TYPE_ IS NOT NULL", UApprovalRobMsg.class);
+        }catch (Exception e){
+            if(StringUtils.hasText(e.getMessage()) && e.getMessage().indexOf("ORA-00942")>-1){
+                try {
+                    jdbcTemplate.execute("CREATE TABLE UAPPROVALROBMSG " +
+                            "( ID_ NUMBER NOT NULL " +
+                            ", KEY_ VARCHAR2(200) " +
+                            ", TYPE_ VARCHAR2(200)" +
+                            ", MSG_ CLOB" +
+                            ", EMS_ VARCHAR2(4000)" +
+                            ", MOBILES_ VARCHAR2(4000)" +
+                            ")");
+                    jdbcTemplate.execute("CREATE TABLE UAPPROVALROBMSG_HIS " +
+                            "( ID_ NUMBER NOT NULL " +
+                            ", KEY_ VARCHAR2(200 )" +
+                            ", TYPE_ VARCHAR2(200 )" +
+                            ", MSG_ CLOB " +
+                            ", EMS_ VARCHAR2(4000)" +
+                            ", MOBILES_ VARCHAR2(4000 )" +
+                            ", PUSHDATE_ DATE " +
+                            ", PUSHSTATUS_ VARCHAR2(200 )" +
+                            ", FAILREASON_ VARCHAR2(4000 )" +
+                            ")");
+                    jdbcTemplate.execute("CREATE SEQUENCE UAPPROVALROBMSG_SEQ INCREMENT BY 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 CACHE 20");
+                }catch (Exception ee){
+                    ee.printStackTrace();
+                    throw e;
+                }
+                robmsgs = queryForBeanList("select * from UApprovalRobMsg where key_ IS NOT NULL AND TYPE_ IS NOT NULL", UApprovalRobMsg.class);
+            }else {
+                e.printStackTrace();
+                throw e;
+            }
+        }
+        return robmsgs;
     }
     public void delRobMsg(){
         jdbcTemplate.execute("delete UApprovalRobMsg where ID_ IN (SELECT ID_ FROM UApprovalRobMsg_HIS) ");