首先,原始記錄比較簡單,就是excel 表
就是這種形式記錄
目前需求是這樣
1.公司目前加班常態化,周一至周五8:30-17:30算正式上班,17:30-20:00算加班,加夠2小時算錢,否則不算。
加班時長按8:30開始計算,早來不算。
2.週六上班的時間都算加班時間。
3.周一至周五如果請假缺勤,算付數。
根據這個需求
寫了如下儲存過程
begin
declare a varchar(32);
declare i int default 1;
declare d varchar(50);
declare cur1 cursor for select distinct 姓名 from 上班;
set @staday1 = '2015-9-12';
set @staday2 = '2015-9-19';
set @rest1 = '2015-9-13';
set @rest2 = '2015-9-20';
open cur1;
fetch cur1 into a;
while (a is not null) do
set i =1;
#每月最大天數不一致,十月將此值調整為32
while i<31 do
set d = concat('2015-09-',cast(i as char(10)));
set @daytype = (select type from datetype where dd = d);
set @q = (select
`get0.5`(
if ( (a.`日期`=@staday1 or a.`日期`=@staday2) , (time_to_sec(b.`時間`) - time_to_sec(a.`時間`))/3600 ,
if (a.`時間`>'8:30', (time_to_sec(b.`時間`) - time_to_sec(a.`時間`)-32400)/3600,
(time_to_sec(b.`時間`) - time_to_sec('8:30')-32400)/3600))
) from 上班 as a join `下班` as b on a.`姓名` = b.`姓名` and a.`日期` = b.`日期` where a.姓名 = a and a.日期= d);
set @v =
case
when @daytype='staday' then @q
when @daytype='restday' then @q
when @daytype is null then if(@q is null,-8,@q)
else
@qend;
insert into test1 values (a,d,@v,@daytype);
set i = i+1;
end while ;
fetch cur1 into a;
end while;
close cur1;
end其中daytype 表
其中 get0.5函式
begin
declare a float;
set a =
case
when `num` <0 and `num` > -2 then 0
when `num`
when `num` >= 0 and `num` <2 then 0
when `num` >= 2 and `num` <2.25 then 2
when `num` >= 2.25 and `num` <2.75 then 2.5
when `num` >= 2.75 and `num` <3.25 then 3
when `num` >= 3.25 and `num` < 3.75 then 3.5
when `num` >= 3.75 and `num` < 4.25 then 4
when `num` >= 4.25 and `num` < 4.75 then 4.5
when `num` >= 4.75 and `num` < 5.25 then 5
when `num` >= 5.25 and `num` < 5.75 then 5.5
when `num` >= 5.75 and `num` < 6.25 then 6
when `num` >= 6.25 and `num` < 6.75 then 6.5
when `num` >= 6.75 and `num` < 7.25 then 7
when `num` >= 7.25 and `num` < 7.75 then 7.5
when `num` >= 7.75 and `num` < 8.25 then 8
when `num` >= 8.25 and `num` < 8.75 then 8.5
when `num` >= 8.75 and `num` < 9.25 then 9
when `num` >= 9.25 and `num` < 9.75 then 9.5
when `num` >= 9.75 and `num` < 10.25 then 10
when `num` >= 10.25 and `num` < 10.75 then 10.5
when `num` >= 10.75 and `num` < 11.25 then 11
when `num` >= 11.25 and `num` < 11.75 then 11.5
when `num` >= 11.75 and `num` < 12.25 then 12
when `num` >= 12.25 and `num` < 12.75 then 12.5
when `num` >= 12.75 and `num` < 13.25 then 13
when `num` >= 13.25 and `num` < 13.75 then 13.5
when `num` >= 13.75 and `num` < 14.25 then 14
when `num` >= 14.25 and `num` < 14.75 then 14.5
when `num` >= 14.75 and `num` < 15.25 then 15
when `num` >= 15.25 and `num` < 15.75 then 15.5
when `num` >= 15.75 and `num` < 16.25 then 16
else
0end;
return a;
end結果如下
指紋識別除錯記錄
文件是之前寫的,因為當時按壓式指紋識別都沒有量產,原廠 仍在除錯階段,拿到的是不完善版本。配置gpio.涉及到6個gpio spi cs clk,mo mi,rst,int.飛線浪費了很多時間。還有乙個是這個晶元有2個電源,1.8v和3.3v,datasheet上原理圖上是要接上3.3v的。實際拿到...
開啟域成員指紋登入功能
由於目前越來越多新電腦自帶指紋識別功能,因此出現需要使用指紋登入的需求。而預設狀態下,所有域成員的指紋登入許可權是關閉的,以下是關於如何開啟域成員指紋登入功能的方法。在域控伺服器上開啟組策略管理器gpmc.msc,為方便開啟以下所有的 關鍵是懶,不想逐個測試單獨開啟域使用者的生物特徵登入是否能實現相...
vue ui 開啟無效記錄
換了臺電腦,輸入vue ui 無法開啟圖形化介面 1 首先vue ui 沒成功 我找到vue.cmd路徑配置到環境變數依舊沒有解決 然後使用vue h 顯示沒有vue ui這個命令 重新安裝npm i g vue cli 開啟命令列 vue ui 視覺化介面迅速開啟 一些常見問題記錄 在專案中執行的...