123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- import requests
- import pyodbc
- import time
- import datetime
- from googletrans import Translator
-
- def lineNotifyMessage(token, msg):
-
- headers = {
- "Authorization": "Bearer " + token,
- "Content-Type" : "application/x-www-form-urlencoded"
- }
-
- payload = {'message': msg }
- r = requests.post("https://notify-api.line.me/api/notify", headers = headers, params = payload)
- return r.status_code
- if __name__ == "__main__":
- username = 'B70340'
- password = 'Lee0911274990'
- translator = Translator(service_urls=['translate.googleapis.com'])
- while True:
- respon = ""
- respon2 = ""
- now = datetime.datetime.now()
- nhour = now.hour
- nmin = now.minute
- print("現在時間:"+str(now.year).zfill(4)+"-"+str(now.month).zfill(2)+"-"+str(now.day).zfill(2)+"-"+str(now.hour).zfill(2)+":"+str(now.minute).zfill(2))
- try:
- database = 'GA-000'
- server = '106.1.49.218'
- cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
- connect = cnxn.cursor()
- connect.execute("SELECT * from dbo.HXBOT_Test WHERE (發送時間_時='"+str(now.hour).zfill(2)+"' AND 發送時間_分='"+str(now.minute).zfill(2)+"');")
- row = connect.fetchall()
- #print(row)
- #print(len(row))
- if len(row) == 0:
- print("未有發送對象")
- elif len(row) != 0:
- connect.close()
- cnxn.close()
- server = '103.231.201.230,2433'
- database = 'HX-PGS-MSN'
- cnxn1 = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
- connect1 = cnxn1.cursor()
- #============部門聯絡函未審核數量=============
- sql="SELECT 申請部門,COUNT(聯絡函單號) AS 未審核數量 FROM 部門聯絡函 WHERE (主題 NOT LIKE N'') AND (聯絡事項 NOT LIKE N'') AND (審核人 LIKE N'') AND (審核人 NOT LIKE N'作廢%') AND (申請部門 NOT LIKE '0%')GROUP BY 申請部門"
- connect1.execute(sql)
- resarr = connect1.fetchall() #部門聯絡函未審核數量
- if len(resarr) != 0:
- re1 = 0
- respon += "=================\n"
- respon += "一、部門聯絡函未審核數量\n"
- while re1 != len(resarr):
- if re1 >= 1 :
- respon += "-----------------\n"
- res1_group = resarr[re1][0]
- res1_item = resarr[re1][1]
- respon = respon +"申請部門:"+str(res1_group)+"\n未審核數量:"+str(res1_item)+"\n"
- re1 += 1
- else:
- print("部門聯絡函未審核數量為0")
- #===========================================
- #=============部門聯絡函未收件數量===========
- sql="SELECT 聯絡部門,聯絡人,COUNT(聯絡函單號) AS 未收件數量 FROM 部門聯絡函 WHERE (主題 NOT LIKE N'') AND (聯絡事項 NOT LIKE N'') AND (審核人 NOT LIKE N'') AND (審核人 NOT LIKE N'作廢%') AND (接收核准 LIKE N'') AND (接收核准 NOT LIKE N'作廢%')GROUP BY 聯絡部門,聯絡人"
- connect1.execute(sql)
- resarr = connect1.fetchall()
- if len(resarr) != 0:
- re1 = 0
- respon += "=================\n"
- respon += "二、部門聯絡函未收件數量\n"
- while re1 != len(resarr):
- if re1 >= 1 :
- respon += "-----------------\n"
- res1_group = resarr[re1][0]
- res1_person = resarr[re1][1]
- res1_item = resarr[re1][2]
- respon = respon +"聯絡部門:"+str(res1_group)+"\n聯絡人:"+str(res1_person)+"\n未審核數量:"+str(res1_item)+"\n"
- re1 += 1
- else:
- print("部門聯絡函未收件數量為0")
- #===========================================
- #=============部門聯絡函未執行數量===========
- sql="SELECT 執行部門,執行人,COUNT(聯絡函單號) AS 未執行數量 FROM 部門聯絡函 WHERE (主題 NOT LIKE N'') AND (聯絡事項 NOT LIKE N'') AND (審核人 NOT LIKE N'') AND (審核人 NOT LIKE N'作廢%') AND (接收核准 NOT LIKE N'') AND (接收核准 NOT LIKE N'作廢%') AND (已作業 = 0) GROUP BY 執行人,執行部門"
- connect1.execute(sql)
- resarr = connect1.fetchall()
- if len(resarr) != 0:
- re1 = 0
- respon += "=================\n"
- respon += "三、部門聯絡函未執行數量\n"
- while re1 != len(resarr):
- if re1 >= 1 :
- respon += "-----------------\n"
- res1_group = resarr[re1][0]
- res1_person = resarr[re1][1]
- res1_item = resarr[re1][2]
- respon = respon +"執行部門:"+str(res1_group)+"\n執行人:"+str(res1_person)+"\n未執行數量:"+str(res1_item)+"\n"
- re1 += 1
- else:
- print("部門聯絡函未執行數量為0")
- #===========================================
- #=============部門聯絡函未驗收數量===========
- sql="SELECT 申請部門,COUNT(聯絡函單號) AS 未驗收數量 FROM 部門聯絡函 WHERE (主題 NOT LIKE N'') AND (聯絡事項 NOT LIKE N'') AND (審核人 NOT LIKE N'') AND (審核人 NOT LIKE N'作廢%') AND (接收核准 NOT LIKE N'') AND (接收核准 NOT LIKE N'作廢%') AND (已作業 = 1) AND (已驗收 = 0) GROUP BY 申請部門"
- connect1.execute(sql)
- resarr = connect1.fetchall()
- if len(resarr) != 0:
- re1 = 0
- respon += "=================\n"
- respon += "四、部門聯絡函未驗收數量\n"
- while re1 != len(resarr):
- if re1 >= 1 :
- respon += "-----------------\n"
- res1_group = resarr[re1][0]
- res1_item = resarr[re1][1]
- respon = respon +"申請部門:"+str(res1_group)+"\n未驗收數量:"+str(res1_item)+"\n"
- re1 += 1
- else:
- print("部門聯絡函未驗收數量為0")
- #===========================================
- connect1.close()
- cnxn1.close()
- if respon != "":
- x=0
- while x != len(row):
- print("發送對象:"+str(row[x][0]))
- token = str(row[x][1])
- message = "\n================="
- message += "\n現在時間:"+str(now.year).zfill(4)+"-"+str(now.month).zfill(2)+"-"+str(now.day).zfill(2)+"-"+str(now.hour).zfill(2)+":"+str(now.minute).zfill(2) +"(UTC+08)\n"
- lineNotifyMessage(token, message+respon)
- result=translator.translate(message+respon,dest='id').text
- lineNotifyMessage(token, "\n"+result)
- x += 1
- database = 'HX-GPS-ERP-SYS'
- server = '103.231.201.230,2433'
- cnxn2 = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
- connect2 = cnxn2.cursor()
- #============未建立進度表的工程數量=============
- sql="SELECT 合約控制表.工程主管, COUNT(合約控制表.合約編號) AS 未建立進度表數量 FROM 合約控制表 FULL OUTER JOIN (SELECT [PROJECT-SYS].dbo.工程進度表.合約編號, [PROJECT-SYS].dbo.工程責任表.項目負責 FROM [PROJECT-SYS].dbo.工程進度表 INNER JOIN [PROJECT-SYS].dbo.工程責任表 ON [PROJECT-SYS].dbo.工程進度表.合約編號 = [PROJECT-SYS].dbo.工程責任表.合約編號 GROUP BY [PROJECT-SYS].dbo.工程進度表.合約編號, [PROJECT-SYS].dbo.工程責任表.項目負責) AS QQ ON 合約控制表.合約編號 = QQ.合約編號 WHERE (合約控制表.合約停止 = 0) AND (合約控制表.驗收結果 = 0 OR 合約控制表.驗收結果 IS NULL) AND (QQ.項目負責 IS NULL) GROUP BY 合約控制表.工程主管"
- connect2.execute(sql)
- resarr = connect2.fetchall() #未建立進度表的工程數量
- if len(resarr) != 0:
- re1 = 0
- respon2 += "=================\n"
- respon2 += "一、未建立進度表的工程數量\n"
- while re1 != len(resarr):
- if re1 >= 1 :
- respon2 += "-----------------\n"
- res1_group = resarr[re1][0]
- res1_item = resarr[re1][1]
- respon2 = respon2 +"工程主管:"+str(res1_group)+"\n未建立進度表數量:"+str(res1_item)+"\n"
- re1 += 1
- else:
- print("未建立進度表的工程數量為0")
- #===========================================
- #============工程未驗收數量=============
- sql="SELECT 工程主管, COUNT(合約編號) AS 工程未驗收數量 FROM 合約控制表 WHERE (合約停止 = 0) AND (驗收結果 = 0 OR 驗收結果 IS NULL) GROUP BY 工程主管"
- connect2.execute(sql)
- resarr = connect2.fetchall() #工程未驗收數量
- if len(resarr) != 0:
- re1 = 0
- respon2 += "=================\n"
- respon2 += "二、工程未驗收數量\n"
- while re1 != len(resarr):
- if re1 >= 1 :
- respon2 += "-----------------\n"
- res1_group = resarr[re1][0]
- res1_item = resarr[re1][1]
- respon2 = respon2 +"工程主管:"+str(res1_group)+"\n工程未驗收數量:"+str(res1_item)+"\n"
- re1 += 1
- else:
- print("工程未驗收數量為0")
- #===========================================
- connect2.close()
- cnxn2.close()
- if respon2 != "":
- x=0
- while x != len(row):
- print("發送對象:"+str(row[x][0]))
- token = str(row[x][1])
- message = "\n================="
- message += "\n現在時間:"+str(now.year).zfill(4)+"-"+str(now.month).zfill(2)+"-"+str(now.day).zfill(2)+"-"+str(now.hour).zfill(2)+":"+str(now.minute).zfill(2) +"(UTC+08)\n"
- lineNotifyMessage(token, message+respon2)
- result=translator.translate(message+respon2,dest='id').text
- lineNotifyMessage(token, "\n"+result)
- x += 1
-
- except:
- print('error')
- print('發送完畢')
-
- time.sleep(60)
|