<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
|
<%Session.CodePage=65001%>
|
<!--#include file="JsonPost_3010011.gds"-->
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
<script language="JScript" runat="Server">
|
function toObject(json) {
|
eval("var o=" + json);
|
return o;
|
}
|
function toArray(s){
|
var dic = Server.CreateObject("Scripting.Dictionary")
|
eval("var a=" + json);
|
for(var i=0;i<a.length;i++){
|
var obj = Server.CreateObject("Scripting.Dictionary")
|
for(x in a[i]) obj.Add(x,a[i][x])
|
dic.Add(i, obj);
|
}
|
return dic
|
}
|
</script>
|
<script language="jscript" runat="server">
|
Array.prototype.get = function(i)
|
{
|
return this[i];
|
};
|
function getjson(str){
|
try{
|
eval("var jsonStr = (" + str + ")");
|
}catch(ex){
|
var jsonStr = null;
|
}
|
return jsonStr;
|
}
|
</script>
|
<%
|
'补打卡 Https请求方式: POST
|
Set rs = Server.CreateObject("ADODB.Recordset")
|
|
DispatchOrdID = trim(Request("DispatchOrdID"))
|
|
userid = trim(Request("userid"))
|
checkin_time = trim(Request("checkin_time"))
|
remark = trim(Request("remark"))
|
work_type = trim(Request("work_type"))
|
|
If DispatchOrdID<>"" Then
|
sql="select DispatchOrdID,DispatchOrdClass,DispatchOrd_NS_Time,DispatchOrdNo,CONVERT(varchar(100),DispatchOrdActualDate,120) SaDate,CONVERT(varchar(100),DispatchOrdReturnDate,120) BeDate,DATEDIFF(day,DispatchOrdActualDate,DispatchOrdReturnDate) DayInt,OA_User_ID,OA_Name,OA_weixinUserID from DispatchOrd,DispatchOrd_Entourage,OA_User where OA_User_ID=EntourageOAid and DispatchOrdID=DispatchOrdIDDt and EntourageState<>4 and DATEDIFF(day,DispatchOrdActualDate,DispatchOrdReturnDate)>=1 and OA_EmployeeGroup not in (4) and DispatchOrdClass in ('SA') and DispatchOrdID in ("&DispatchOrdID&")"
|
rs.open sql,objConn,1,1
|
if not rs.eof then
|
do while not rs.Eof
|
DispatchOrdID = rs("DispatchOrdID")
|
DispatchOrdNo = rs("DispatchOrdClass")& year(rs("DispatchOrd_NS_Time"))&Right("0"&month(rs("DispatchOrd_NS_Time")),2)&Right("0"&day(rs("DispatchOrd_NS_Time")),2) & "-"&Right("00"&rs("DispatchOrdNo"),3) '调度单编号
|
userid = rs("OA_weixinUserID")
|
'userid="liaojunliang"
|
|
SaDate = rs("SaDate")
|
BeDate = rs("BeDate")
|
remark = DispatchOrdNo
|
|
for i=0 To DateDiff("d",SaDate,BeDate)
|
checkin_time_1=DateAdd("d",i,year(SaDate)&"-"&month(SaDate)&"-"&day(SaDate)&" 8:30:00")
|
checkin_time_2=DateAdd("d",i,year(SaDate)&"-"&month(SaDate)&"-"&day(SaDate)&" 17:30:00")
|
schedule_date_time = ToUnixTime(DateAdd("d",i,year(SaDate)&"-"&month(SaDate)&"-"&day(SaDate)&" 00:00:00"),+8)
|
|
If i=0 And DateDiff("s",SaDate,year(SaDate)&"-"&month(SaDate)&"-"&day(SaDate)&" 17:30:00")>=0 Then
|
'发出日补打下班卡
|
checkin_time_1 = ""
|
checkin_time_2 = ToUnixTime(checkin_time_2,+8)
|
ElseIf i=DateDiff("d",SaDate,BeDate) And DateDiff("s",year(BeDate)&"-"&month(BeDate)&"-"&day(BeDate)&" 8:30:00",BeDate)>=0 Then
|
'返回日补打上班卡
|
checkin_time_1 = ToUnixTime(checkin_time_1,+8)
|
checkin_time_2 = ""
|
ElseIf i=DateDiff("d",SaDate,BeDate) Or i=0 Then
|
'发出或返回时间不在打卡范围内,不用补打卡
|
checkin_time_1 = ""
|
checkin_time_2 = ""
|
Else
|
'跨日补打卡
|
checkin_time_1 = ToUnixTime(checkin_time_1,+8)
|
checkin_time_2 = ToUnixTime(checkin_time_2,+8)
|
End If
|
'Response.Write checkin_time_1&"<br>"&checkin_time_2&"<br><br>"
|
work_type="1"
|
appUrl="https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckinoption?access_token="&access_token
|
args1="{"
|
args1=args1&"""datetime"": "&schedule_date_time
|
args1=args1&",""useridlist"": ["""&userid&"""]"
|
args1=args1&"}"
|
HTMLCODE= PostBody(appUrl,args1)
|
|
If HTMLCODE<>"" Then
|
str=HTMLCODE
|
set obj = getjson(str)
|
errmsg = obj.errmsg
|
If errmsg="ok" Then
|
work_sec=0
|
off_work_sec=0
|
for v=0 to obj.info.length-1
|
for q=0 to obj.info.get(v).group.checkindate.length-1
|
for w=0 to obj.info.get(v).group.checkindate.get(q).checkintime.length-1
|
work_sec = obj.info.get(v).group.checkindate.get(q).checkintime.get(q).work_sec '上班时间
|
off_work_sec = obj.info.get(v).group.checkindate.get(q).checkintime.get(q).off_work_sec '下班时间
|
Next
|
Next
|
Next
|
End If
|
args_schedule_checkin_time_1=""
|
args_schedule_checkin_time_2=""
|
If work_sec<>0 Or off_work_sec<>0 Then
|
args_schedule_checkin_time_1=",""schedule_checkin_time"": "&work_sec
|
args_schedule_checkin_time_2=",""schedule_checkin_time"": "&off_work_sec
|
End If
|
appUrl="https://qyapi.weixin.qq.com/cgi-bin/checkin/punch_correction?access_token="&access_token
|
If checkin_time_1<>"" Then
|
'补打上班卡
|
args1="{"
|
args1=args1&"""userid"": """&userid&""""
|
args1=args1&",""schedule_date_time"": "&schedule_date_time
|
args1=args1&args_schedule_checkin_time_1
|
args1=args1&",""checkin_time"": "&checkin_time_1
|
args1=args1&",""remark"": """&remark&""""
|
args1=args1&"}"
|
'Response.Write args1&"<br>"
|
HTMLCODE= PostBody(appUrl,args1)
|
'Response.Write HTMLCODE&"<br>"
|
End If
|
|
If checkin_time_2<>"" Then
|
'补打下班卡
|
args1="{"
|
args1=args1&"""userid"": """&userid&""""
|
args1=args1&",""schedule_date_time"": "&schedule_date_time
|
args1=args1&args_schedule_checkin_time_2
|
args1=args1&",""checkin_time"": "&checkin_time_2
|
args1=args1&",""remark"": """&remark&""""
|
args1=args1&"}"
|
'Response.Write args1&"<br>"
|
HTMLCODE= PostBody(appUrl,args1)
|
'Response.Write HTMLCODE&"<br>"
|
End If
|
'Response.Write "<br>"
|
End If
|
'Response.Write HTMLCODE&"<br>"
|
Next
|
rs.movenext
|
loop
|
rs.close()
|
end If
|
'Response.End()
|
End If
|
|
'把标准时间转换为UNIX时间戳
|
Function ToUnixTime(strTime, intTimeZone)
|
If IsEmpty(strTime) or Not IsDate(strTime) Then strTime = Now
|
If IsEmpty(intTimeZone) or Not isNumeric(intTimeZone) Then intTimeZone = 0
|
ToUnixTime = DateAdd("h",-intTimeZone,strTime)
|
ToUnixTime = DateDiff("s","1970-01-01 00:00:00", ToUnixTime)
|
End Function
|
'把UNIX时间戳转换为标准时间
|
Function FromUnixTime(intTime, intTimeZone)
|
If IsEmpty(intTime) or Not IsNumeric(intTime) Then
|
FromUnixTime = Now()
|
Exit Function
|
End If
|
If IsEmpty(intTime) or Not IsNumeric(intTimeZone) Then intTimeZone = 0
|
FromUnixTime = DateAdd("s", intTime, "1970-01-01 00:00:00")
|
FromUnixTime = DateAdd("h", intTimeZone, FromUnixTime)
|
End Function
|
%>
|