WED考勤机客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

54 lines
1.9 KiB

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Forks.JsonRpc.Client;
using Forks.JsonRpc.Client.Data;
using Forks.Utils.IO;
namespace ClientForWEDS {
public static class RpcHelper {
private static bool _isInit;
public static string Insert(List<Form1.AttLog> logList, string ip) {
var logName = "RpcLog" + DateTime.Today.ToString("yyyyMMdd") + ".txt";
var path = Application.StartupPath + "\\log\\" + logName ;
var resultStr = "";
if (!FS.DirectoryExists(path))
FS.CreateDirectory(Path.GetDirectoryName(path));
using (var textWriter = new StreamWriter(path, true, Encoding.UTF8)) {
textWriter.WriteLine("{0} :客户端开始发送数据:------------------------------------", DateTime.Now);
try {
if (!_isInit) {
var url = ConfigUtil.ERPURL;
//var url = "http://localhost:2100/MainSystem/";
RpcFacade.Init(url, "AttendClientV2.0");
_isInit = true;
}
var username = ConfigUtil.UserName;// "system"
var strPwd = ConfigUtil.Password;
RpcFacade.Login(username, strPwd);
var dmos = new List<RpcObject>();
foreach (var detail in logList) {
var dmo = new RpcObject("/CutUp/Attendance/BO/AttendanceRecord");
dmo.Set("Time", detail.DateTime);
dmo.Set("EmployeeID", detail.ID);
dmos.Add(dmo);
}
RpcFacade.Call<object>("/CutUp/Attendance/Rpcs/AttendanceRpc/Insert2", dmos.ToArray(), ip);
textWriter.WriteLine(dmos.Count() + "条考勤记录上传成功,考勤机IP:" + ip);
} catch (Exception e) {
textWriter.WriteLine("内部错误:" + e.Message);
resultStr = e.Message;
} finally {
RpcFacade.Logout();
}
}
return resultStr;
}
}
}