亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ruby考勤分析

發布時間:2020-05-22 18:15:04 來源:網絡 閱讀:354 作者:nonono11 欄目:編程語言

BOSS要遠程考勤。只有幾個人而已。然后用AAU寫了一個考勤的,RUBY這個是查詢MYSQL,然后發送郵件到人事那邊用的(以附件方式發)。代碼如下。

#!/usr/bin/ruby
require 'mysql'
require 'time'
require 'net/smtp'
require 'mailfactory'

csv_str = "id,name,start work,get off work,hour\n"
day = Time.now.strftime("%Y-%m-%d")
filename = "/home/163/check_in/" + Time.now.to_s.split[0] + ".csv"

db = Mysql.init
db.options(Mysql::SET_CHARSET_NAME, 'utf8')
db = Mysql.real_connect("192.168.1.4", "kq", "123123", "kq123", 3306)
db.query("SET NAMES utf8")
user = db.query("select * from username")

def writefile(str,filename)
aFile = File.new(filename,"w")
       aFile.puts str
aFile.close
end

def sendmail(text, file)
  mail = MailFactory.new
  mail.from = "test@163.com"
  mail.subject = text
  mail.text = text
  mail.attach(file);
  mail.to = 'you@163.com'

  acct = 'test@163.com'
  domain = "163.com"
  pass = '123123'

  Net::SMTP.start('smtp.163.com', 25, domain, acct, pass, :login) do |smtp|
      smtp.send_message mail.to_s(),'test@163.com','you@163.com'
  end
end

while row = user.fetch_row do
  next if row[0] == '1'
  time_max = db.query("select max(time) from kqtime where time>\"#{day + " 06:00"}\" and time <\"#{day + " 23:00"}\" and userid=#{row[0]}").fetch_row[0]
  time_min = db.query("select min(time) from kqtime where time>\"#{day + " 06:00"}\" and time <\"#{day + " 23:00"}\" and userid=#{row[0]}").fetch_row[0]

  if time_min.nil? && time_max.nil?
    csv_str = csv_str + row[0] + "," + row[1] + ",,,0.0\n"
  elsif time_min.nil?
    csv_str = csv_str + row[0] + "," + row[1] + "," + time_min.to_s.split[-1][0..-4] + ",,0.0\n"
  elsif time_max.nil?
    csv_str = csv_str + row[0] + "," + row[1] + ",," + time_max.to_s.split[-1][0..-4] + ",0.0\n"
  else
    time_ok = Time.parse(time_max.to_s) - Time.parse(time_min.to_s)
    min = time_ok % (60)
    if time_ok < 3600 && time_min.to_s.split(':')[0][-2..-1].to_i < 13
      csv_str = csv_str + row[0] + "," + row[1] + "," + time_min.to_s.split[-1][0..-4] + ",,0.0\n"
    elsif time_ok < 3600 && time_max.to_s.split(':')[0][-2..-1].to_i > 13
      csv_str = csv_str + row[0] + "," + row[1] + ",," + time_max.to_s.split[-1][0..-4] + ",0.0\n"
    else
      min = time_ok % (60)
      if min < 15
        min = time_ok.div(60).div(60)  + 0.0
      elsif min >= 15 && min < 45
        min = time_ok.div(60).div(60)  + 0.5
      elsif min >= 45
        min = time_ok.div(60).div(60)  + 1.0
      end
      csv_str = csv_str + row[0] + "," + row[1] + "," + time_min.to_s.split[-1][0..-4] + "," + time_max.to_s.split[-1][0..-4] + "," + min.to_s +  "\n"
    end
  end
end

writefile(csv_str, filename)
sendmail(Time.now.to_s.split[0] + " Check-In", filename)


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐业县| 海兴县| 常宁市| 岑巩县| 保德县| 新邵县| 宝丰县| 额尔古纳市| 桂平市| 牟定县| 楚雄市| 云南省| 上杭县| 和龙市| 中宁县| 丹江口市| 许昌县| 天津市| 靖边县| 厦门市| 泽库县| 乌海市| 旺苍县| 隆子县| 财经| 巴林左旗| 长沙县| 惠安县| 南汇区| 姜堰市| 凌海市| 和林格尔县| 浮梁县| 衡南县| 全椒县| 临夏市| 金昌市| 田阳县| 彭水| 定安县| 武义县|