diff --git a/DigitalSchoolApi/App_Data/LogHelper.cs b/DigitalSchoolApi/App_Data/LogHelper.cs new file mode 100644 index 0000000..491d0ec --- /dev/null +++ b/DigitalSchoolApi/App_Data/LogHelper.cs @@ -0,0 +1,33 @@ +using System; +using System.IO; + +namespace Util.Log +{ + public class LogHelper + { + public static void Info(string msg) + { + try + { + #region log + //文件路径 + string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "logs"); + if (!Directory.Exists(path)) + { + Directory.CreateDirectory(path); + } + + //文件 + string fileName = Path.Combine(path, $"{DateTime.Now:yyyyMMdd}.log"); + string message = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss} logInfo:{msg}。{Environment.NewLine}"; + File.AppendAllText(fileName, message); + #endregion + } + catch + { + + + } + } + } +} diff --git a/DigitalSchoolApi/Controllers/HKAttendanceController.cs b/DigitalSchoolApi/Controllers/HKAttendanceController.cs index 68f39f3..8654903 100644 --- a/DigitalSchoolApi/Controllers/HKAttendanceController.cs +++ b/DigitalSchoolApi/Controllers/HKAttendanceController.cs @@ -6,10 +6,17 @@ using System.Data.SqlClient; using System.Diagnostics.Eventing.Reader; using System.IO; using System.Linq; +using System.Net; +using System.Net.Http; using System.Runtime.InteropServices; +using System.Text; using System.Web; using AlarmCSharpDemo; +using Antlr.Runtime.Misc; using Dapper; +using Learun.Util; +using Org.BouncyCastle.Asn1.X509; +using Org.BouncyCastle.Ocsp; namespace DigitalSchoolApi.Controllers { @@ -57,7 +64,7 @@ namespace DigitalSchoolApi.Controllers { //开始自动打卡 //删除今日考勤 - connmis.Execute("delete from ADR_Record where ADYear='"+ workDateTime.Year + "' and ADMonth='" + workDateTime.Month.ToString().PadLeft(2,'0') + "' and ADDay='"+ workDateTime.Day.ToString().PadLeft(2,'0') + "' and UserNo='"+ useritem.EmpNo + "'"); + connmis.Execute("delete from ADR_Record where ADYear='" + workDateTime.Year + "' and ADMonth='" + workDateTime.Month.ToString().PadLeft(2, '0') + "' and ADDay='" + workDateTime.Day.ToString().PadLeft(2, '0') + "' and UserNo='" + useritem.EmpNo + "'"); //上午上班 ADR_RecordEntity adrRecordEntity = new ADR_RecordEntity(); adrRecordEntity.Create(); @@ -103,7 +110,7 @@ namespace DigitalSchoolApi.Controllers //adrRecordEntity.ADTime = offworkDateTime.AddMinutes(10); //adrRecordEntity.ClockTime = offworkDateTime.AddMinutes(10); //liangkun 2021-05-06 应客户要求改为下午6:00下班 - adrRecordEntity.ADTime = Convert.ToDateTime(datenow + " 18:00"); + adrRecordEntity.ADTime = Convert.ToDateTime(datenow + " 18:00"); adrRecordEntity.ClockTime = Convert.ToDateTime(datenow + " 18:00"); connmis.Execute("insert into ADR_Record(ID, UserNo, ADType, ADTime, ClockTime, ClockStatus, ClockPlace, ADYear, ADMonth, ADDay, ADPhoto) values(" + "'" + adrRecordEntity.ID + "','" + adrRecordEntity.UserNo + "','" + adrRecordEntity.ADType + "','" + adrRecordEntity.ADTime + "'," + @@ -1113,7 +1120,155 @@ namespace DigitalSchoolApi.Controllers return true; } } + /// + /// 开门 + /// + /// + /// + public static string OpenDoor(string id) + { + using (IDbConnection connmis = new SqlConnection(_misConnection)) + { + //获取设备 + var device = connmis.QueryFirstOrDefault($"select * from ADR_Device where F_EnabledMark=1 and Id='{id}'"); + if(device!=null) + { + string url = $"http://{device.IpAddress}/ISAPI/AccessControl/RemoteControl/door/1"; + string username = device.AdminAccount; + string password = device.AdminPwd; + string data = $"open {device.AdminPwd}11monitor11true101"; + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + request.Method = "PUT"; + request.ContentType = "application/xml"; + request.Credentials = new NetworkCredential(username, password); + byte[] byteArray = Encoding.UTF8.GetBytes(data); + request.ContentLength = byteArray.Length; + Stream dataStream = request.GetRequestStream(); + dataStream.Write(byteArray, 0, byteArray.Length); + dataStream.Close(); + HttpWebResponse response; + + try + { + response = (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + response = (HttpWebResponse)ex.Response; + } + //Console.WriteLine("Response status: {0}", response.StatusDescription); + dataStream = response.GetResponseStream(); + StreamReader reader = new StreamReader(dataStream); + + string responseFromServer = reader.ReadToEnd(); + + //Console.WriteLine(responseFromServer); + reader.Close(); + dataStream.Close(); + + response.Close(); + return "开门成功"; + } + return "未找到设备"; + } + + + } + + /// + /// 关门 + /// + /// + public static void CloseDoor(string id) + { + using (IDbConnection connmis = new SqlConnection(_misConnection)) + { + //获取设备 + var device = connmis.QueryFirstOrDefault($"select * from ADR_Device where F_EnabledMark=1 and Id='{id}'"); + if (device != null) + { + string url = $"http://{device.IpAddress}/ISAPI/AccessControl/RemoteControl/door/1"; + string username = device.AdminAccount; + string password = device.AdminPwd; + string data = $"close {device.AdminPwd}11monitor11true101"; + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + request.Method = "PUT"; + request.ContentType = "application/xml"; + request.Credentials = new NetworkCredential(username, password); + byte[] byteArray = Encoding.UTF8.GetBytes(data); + request.ContentLength = byteArray.Length; + Stream dataStream = request.GetRequestStream(); + dataStream.Write(byteArray, 0, byteArray.Length); + dataStream.Close(); + HttpWebResponse response; + + try + { + response = (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + response = (HttpWebResponse)ex.Response; + } + //Console.WriteLine("Response status: {0}", response.StatusDescription); + dataStream = response.GetResponseStream(); + StreamReader reader = new StreamReader(dataStream); + + string responseFromServer = reader.ReadToEnd(); + + //Console.WriteLine(responseFromServer); + reader.Close(); + dataStream.Close(); + + response.Close(); + } + } + } + + public static string CaptureJPEG(string id) + { + try + { + using (IDbConnection connmis = new SqlConnection(_misConnection)) + { + uint iBuffSize = 400000; + byte[] byJpegPicBuffer = new byte[iBuffSize]; + uint dwSizeReturned = 0; + var deviceEntity = connmis.QueryFirstOrDefault($"select * from ADR_Device where id='{id}';"); + if (deviceEntity == null) + { + return "设备不存在!"; + } + if (deviceEntity.F_EnabledMark == 0) + { + return "设备未启用!"; + } + #region 登录考勤机 + CHCNetSDK.NET_DVR_Init(); + CHCNetSDK.NET_DVR_DEVICEINFO_V30 DeviceInfo = new CHCNetSDK.NET_DVR_DEVICEINFO_V30(); + var m_lUserID = CHCNetSDK.NET_DVR_Login_V30(deviceEntity.IpAddress, deviceEntity.PortNumber.Value, deviceEntity.AdminAccount, deviceEntity.AdminPwd, ref DeviceInfo); + if (m_lUserID < 0) + { + return "设备登录失败!"; + } + #endregion + CHCNetSDK.NET_DVR_JPEGPARA lpJpegPara = new CHCNetSDK.NET_DVR_JPEGPARA(); + lpJpegPara.wPicQuality = 0; + lpJpegPara.wPicSize = 0xff; + if (CHCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(m_lUserID, 1 + (int)DeviceInfo.byStartChan, ref lpJpegPara, byJpegPicBuffer, + iBuffSize, ref dwSizeReturned)) + { + return "data:image/jpeg;base64," + Convert.ToBase64String(byJpegPicBuffer, 0, (int)dwSizeReturned); + } + return "设备抓图失败!"; + } + } + catch (Exception e) + { + return "设备抓图异常:" + e.Message; + } + } #region 考勤结构体 /// /// 考勤设备日志 diff --git a/DigitalSchoolApi/Controllers/HTSchoolController.cs b/DigitalSchoolApi/Controllers/HTSchoolController.cs new file mode 100644 index 0000000..28c9436 --- /dev/null +++ b/DigitalSchoolApi/Controllers/HTSchoolController.cs @@ -0,0 +1,380 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Data.OracleClient; +using System.Data.SqlClient; +using System.Diagnostics; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; +using System.Web; +using Dapper; +using DigitalSchoolApi.App_Data; +using DigitalSchoolApi.Models; +using Learun.Application.Organization; +using Learun.Util; +using Microsoft.AspNet.SignalR.Client; +using Newtonsoft.Json; +using static DigitalSchoolApi.Controllers.HKAttendanceController; +using Convert = System.Convert; +using DESEncrypt = Learun.Util.DESEncrypt; +using Md5Helper = Learun.Util.Md5Helper; + +namespace DigitalSchoolApi.Controllers +{ + /// + /// 塔里木学院定时需求 + /// + public class HTSchoolController + { + private readonly static string _admsConnection = ConfigurationManager.ConnectionStrings["CoreDBString"].ConnectionString; + private readonly static string _misConnection = ConfigurationManager.ConnectionStrings["ConnectionPfcMisDBString"].ConnectionString; + private static string _htMiddleConnection = ConfigurationManager.ConnectionStrings["htMiddleDBString"].ConnectionString; + + //private readonly static string _tlmMiddleConnection =ConfigurationManager.ConnectionStrings["TLMMiddleDBString"].ConnectionString; + + + + #region 中间库同步到数校 + + /// + /// 从中间库同步系部数据 + /// + public static void SyncDepartment() + { + try + { + IEnumerable entityList = null; + using (IDbConnection conn = new SqlConnection(_htMiddleConnection)) + { + entityList = conn.Query("SELECT * FROM nc_orgnization"); + } + using (IDbConnection conn = new SqlConnection(_admsConnection)) + { + try + { + var maxSort = -1; + try + { + maxSort = conn.QueryFirstOrDefault("select MAX(F_Order) FROM LR_BASE_DEPARTMENT"); + } + catch (Exception e) + { + maxSort = -1; + } + + //插入sql + foreach (var item in entityList) + { + DepartmentEntity model = null; + using (IDbConnection xbconn = new SqlConnection(_admsConnection)) + { + model = xbconn.QueryFirstOrDefault($"select * from LR_BASE_DEPARTMENT where F_EnCode='{item.CODE}'"); + } + if (model == null) + { + maxSort++; + var id = item.ID.Length == 30 ? Guid.ParseExact(item.ID, "N") : Guid.NewGuid(); + //没有就新增 + var sql = + "INSERT INTO LR_BASE_DEPARTMENT (F_DepartmentId, F_CompanyId, F_ParentId, F_EnCode, F_FullName, F_Order,F_DeleteMark,F_EnabledMark) " + + $"VALUES ('{id}', '207fa1a9-160c-4943-a89b-8fa4db0547ce', '{item.FID}', '{item.CODE}', '{item.NAME}', {maxSort},0,1);"; + conn.Execute(sql); + } + else + { + //存在就修改 + var sql = $"UPDATE LR_BASE_DEPARTMENT SET F_FullName='{item.NAME}',F_ParentId='{item.FID}' where F_EnCode='{model.F_EnCode}';"; + conn.Execute(sql); + } + + } + //插入数据同步结果 + using (IDbConnection conncore = new SqlConnection(_admsConnection)) + { + conncore.Execute( + "insert into LR_Base_Log(F_LogId,F_CategoryId,F_SourceObjectId,F_SourceContentJson,F_OperateTime) values(newid(),999,'从中间库同步部门信息到数校完成','部门同步数量:" + + entityList.Count() + "条',getdate())"); + } + } + catch (Exception e) + { + using (IDbConnection conncore = new SqlConnection(_admsConnection)) + { + conncore.Execute( + "insert into LR_Base_Log(F_LogId,F_CategoryId,F_SourceObjectId,F_SourceContentJson,F_OperateTime) values(newid(),999,'从中间库同步部门信息到数校异常','" + + e.Message + "',getdate())"); + } + } + } + } + catch (Exception e) + { + using (IDbConnection conn = new SqlConnection(_admsConnection)) + { + conn.Execute( + "insert into LR_Base_Log(F_LogId,F_CategoryId,F_SourceObjectId,F_SourceContentJson,F_OperateTime) values(newid(),999,'从中间库同步部门信息到数校异常','错误信息:" + + e.Message + "',getdate())"); + } + } + } + + /// + /// 从中间库同步学生数据 + /// + public static void SyncStuInfoAcc() + { + try + { + + IEnumerable entityList = null; + using (IDbConnection conn = new SqlConnection(_htMiddleConnection)) + { + entityList = conn.Query($"SELECT * FROM nc_stuInfo"); + } + + try + { + //插入sql + foreach (var item in entityList) + { + var id = Guid.NewGuid().ToString(); + var MZ = ""; + var xb = item.GenderNo == "1" ? 1 : 0; + + + UserEntity model = null; + StuInfoBasicEntity stu = null; + using (IDbConnection xbconn = new SqlConnection(_admsConnection)) + { + var dept = xbconn.QueryFirstOrDefault($"select * from LR_BASE_DEPARTMENT where F_EnCode='{item.DeptNo}'"); + var deptId = string.Empty; + if (dept != null) + { + deptId = dept.F_DepartmentId; + } + model = xbconn.QueryFirstOrDefault($"select * from LR_Base_User where F_Account='{item.USERNAME}'"); + + if (model == null) + { + + var key = Md5Helper.Encrypt(CreateNo(), 16).ToLower(); + var pwd = Md5Helper.Encrypt(DESEncrypt.Encrypt(Md5Helper.Encrypt("ht123456", 32).ToLower(), key).ToLower(), 32).ToLower(); + + + var userSql = + $"INSERT INTO LR_Base_User (F_UserId,F_EnCode,F_Account,F_Mobile,F_Password,F_Secretkey,F_RealName,F_Gender,F_CompanyId," + + $"F_DepartmentId,F_DeleteMark,F_EnabledMark,F_Description,F_CreateDate,F_CreateUserId,F_CreateUserName,F_IdentityCardNo) VALUES('{id}'," + + $"'{item.USERNAME}','{item.USERNAME}','{item.MOBILE}','{pwd}','{key}','{item.StuName}',{xb},'207fa1a9-160c-4943-a89b-8fa4db0547ce','{deptId}',0,1,'学生'," + + $"'{DateTime.Now:yyyy-MM-dd hh:mm:ss}','System','数据同步','{item.IdentityCardNo}');"; + + xbconn.Execute(userSql); + + } + else + { + id = model.F_UserId; + var sql = $"UPDATE LR_Base_User SET F_RealName='{item.StuName}',F_Gender={xb},F_DepartmentId='{deptId}' WHERE F_Account='{item.USERNAME}'"; + xbconn.Execute(sql); + } + //设置默认角色 + var rel = xbconn.QueryFirstOrDefault($"select * from LR_Base_UserRelation where F_UserId='{id}' and F_ObjectId='0cfc388c-80e6-4cf0-b53b-02201827490a'"); + if (rel == null) + { + var sql = $"insert into LR_Base_UserRelation (F_UserRelationId,F_UserId,F_Category,F_ObjectId,F_CreateDate,F_CreateUserId,F_CreateUserName) values ('{Guid.NewGuid()}','{id}',1,'0cfc388c-80e6-4cf0-b53b-02201827490a','{DateTime.Now}','System','同步生成')"; + xbconn.Execute(sql); + } + } + + using (IDbConnection conn = new SqlConnection(_misConnection)) + { + stu = conn.QueryFirstOrDefault($"select * from StuInfoBasic where StuNo='{item.USERNAME}'"); + + if (stu == null) + { + var sql = "INSERT INTO StuInfoBasic(StuId,StuNo,StuCode,NoticeNo,GraduateYear,ksh,DeptNo,MajorNo,Grade,ClassNo,StuName,SpellFull,GenderNo,Birthday,PartyFaceNo," + + "FamilyOriginNo,NationalityNo,ResidenceNo,HealthStatusNo,GraduateNo,OverseasChineseNo,GoodAt,IdentityCardNo,InSchoolAddress," + + "InSchoolTelephone,Remark,mobile,CheckMark,InSchoolStatus,F_SchoolId,EduSystem,StudyModality) " + + $"VALUES('{id}','{item.USERNAME}','{item.CODE}','','','', '{item.DeptNo}', '{item.MajorNo}'," + + $"'{item.Grade}','{item.ClassNo}','{item.StuName}', '',{xb},'','',''," + + $"'{item.NationalityNo}','','1','2','0','','{item.IdentityCardNo}','','',''," + + $"'{item.MOBILE}','1','','207fa1a9-160c-4943-a89b-8fa4db0547ce', '2', '1');"; + conn.Execute(sql); + } + else + { + var sql = + $"UPDATE StuInfoBasic SET StuName='{item.StuName}',GenderNo={xb},IdentityCardNo='{item.IdentityCardNo}'," + + $"Grade='{item.Grade}',DeptNo='{item.DeptNo}',StuCode='{item.CODE}',mobile='{item.MOBILE}'," + + $"MajorNo='{item.MajorNo}',ClassNo='{item.ClassNo}' where StuNo='{stu.StuNo}';"; + conn.Execute(sql); + } + + } + + + } + //插入数据同步结果 + using (IDbConnection conncore = new SqlConnection(_admsConnection)) + { + conncore.Execute( + "insert into LR_Base_Log(F_LogId,F_CategoryId,F_SourceObjectId,F_SourceContentJson,F_OperateTime) values(newid(),999,'从中间库同步学生信息到数校完成','学生同步数量:" + + entityList.Count() + "条',getdate())"); + } + } + catch (Exception e) + { + using (IDbConnection conncore = new SqlConnection(_admsConnection)) + { + conncore.Execute( + "insert into LR_Base_Log(F_LogId,F_CategoryId,F_SourceObjectId,F_SourceContentJson,F_OperateTime) values(newid(),998,'从中间库同步学生信息到数校异常','" + + e.ToString() + "',getdate())"); + } + } + } + catch (Exception e) + { + using (IDbConnection conn = new SqlConnection(_admsConnection)) + { + conn.Execute( + "insert into LR_Base_Log(F_LogId,F_CategoryId,F_SourceObjectId,F_SourceContentJson,F_OperateTime) values(newid(),999,'从中间库同步学生信息到数校异常','错误信息:" + + e.ToString() + "',getdate())"); + } + } + } + + /// + /// 从中间库同步教师数据 + /// + public static void SyncEmpInfoAcc() + { + try + { + + IEnumerable entityList = null; + using (IDbConnection conn = new SqlConnection(_htMiddleConnection)) + { + entityList = conn.Query($"SELECT * FROM nc_user"); + } + + try + { + //插入sql + foreach (var item in entityList) + { + var id = Guid.NewGuid().ToString(); + var MZ = ""; + var xb = item.GENDER == "男性" ? 1 : 0; + + UserEntity model = null; + EmpInfoEntity stu = null; + using (IDbConnection xbconn = new SqlConnection(_admsConnection)) + { + var dept = xbconn.QueryFirstOrDefault($"select * from LR_BASE_DEPARTMENT where F_EnCode='{item.MOCODE}'"); + var deptId = string.Empty; + if (dept != null) + { + deptId = dept.F_DepartmentId; + } + model = xbconn.QueryFirstOrDefault($"select * from LR_Base_User where F_Account='{item.USERNAME}'"); + + if (model == null) + { + + var key = Md5Helper.Encrypt(CreateNo(), 16).ToLower(); + var pwd = Md5Helper.Encrypt(DESEncrypt.Encrypt(Md5Helper.Encrypt("ht123456", 32).ToLower(), key).ToLower(), 32).ToLower(); + + + var userSql = + $"INSERT INTO LR_Base_User (F_UserId,F_EnCode,F_Account,F_Mobile,F_Password,F_Secretkey,F_RealName,F_Gender,F_CompanyId," + + $"F_DepartmentId,F_DeleteMark,F_EnabledMark,F_Description,F_CreateDate,F_CreateUserId,F_CreateUserName,F_IdentityCardNo) VALUES('{id}'," + + $"'{item.USERNAME}','{item.USERNAME}','{item.MOBILE}','{pwd}','{key}','{item.NAME}',{xb},'207fa1a9-160c-4943-a89b-8fa4db0547ce','{deptId}',0,1,'教师'," + + $"'{DateTime.Now:yyyy-MM-dd hh:mm:ss}','System','数据同步','{item.CARDNO}');"; + xbconn.Execute(userSql); + + + } + else + { + id = model.F_UserId; + var sql = $"UPDATE LR_Base_User SET F_RealName='{item.NAME}',F_Gender={xb},F_DepartmentId='{deptId}' WHERE F_Account='{item.USERNAME}'"; + xbconn.Execute(sql); + } + //设置默认角色 + var rel = xbconn.QueryFirstOrDefault($"select * from LR_Base_UserRelation where F_UserId='{id}' and F_ObjectId='ed811d67-59d6-4dfa-8061-299b73388e69'"); + if(rel==null) + { + var sql = $"insert into LR_Base_UserRelation (F_UserRelationId,F_UserId,F_Category,F_ObjectId,F_CreateDate,F_CreateUserId,F_CreateUserName) values ('{Guid.NewGuid()}','{id}',1,'ed811d67-59d6-4dfa-8061-299b73388e69','{DateTime.Now}','System','同步生成')"; + xbconn.Execute(sql); + } + + } + using (IDbConnection conn = new SqlConnection(_misConnection)) + { + stu = conn.QueryFirstOrDefault($"select * from EmpInfo where EmpNo='{item.USERNAME}'"); + if (stu == null) + { + var sql = "INSERT INTO EmpInfo (EmpId,EmpNo,EmpName,GenderNo,DeptNo,IdentityCardNo,mobile,EMail,IsInActiveStatus,CheckMark,F_CompanyId) " + + $"VALUES('{id}','{item.USERNAME}','{item.NAME}',{xb},'{item.MOCODE}','{item.CARDNO}', '{item.MOBILE}', '{item.EMAIL}'," + + $"'{item.STATUS}','1','207fa1a9-160c-4943-a89b-8fa4db0547ce');"; + conn.Execute(sql); + } + else + { + var sql = + $"UPDATE EmpInfo SET EmpName='{item.NAME}',GenderNo={xb},IdentityCardNo='{item.CARDNO}'," + + $"DeptNo='{item.MOCODE}',mobile='{item.MOBILE}',EMail='{item.EMAIL}',IsInActiveStatus='{item.STATUS}' where EmpNo='{stu.EmpNo}';"; + conn.Execute(sql); + } + } + + + } + //插入数据同步结果 + using (IDbConnection conncore = new SqlConnection(_admsConnection)) + { + conncore.Execute( + "insert into LR_Base_Log(F_LogId,F_CategoryId,F_SourceObjectId,F_SourceContentJson,F_OperateTime) values(newid(),000,'从中间库同步老师信息到数校完成','老师同步数量:" + + entityList.Count() + "条',getdate())"); + } + } + catch (Exception e) + { + using (IDbConnection conncore = new SqlConnection(_admsConnection)) + { + conncore.Execute( + "insert into LR_Base_Log(F_LogId,F_CategoryId,F_SourceObjectId,F_SourceContentJson,F_OperateTime) values(newid(),998,'从中间库同步老师信息到数校异常','" + + e.ToString() + "',getdate())"); + } + } + } + catch (Exception e) + { + using (IDbConnection conn = new SqlConnection(_admsConnection)) + { + conn.Execute( + "insert into LR_Base_Log(F_LogId,F_CategoryId,F_SourceObjectId,F_SourceContentJson,F_OperateTime) values(newid(),999,'从中间库同步老师信息到数校异常','错误信息:" + + e.ToString() + "',getdate())"); + } + } + } + #endregion + + + private static string CreateNo() + { + Random random = new Random(); + string strRandom = random.Next(1000, 10000).ToString(); //生成编号 + string code = DateTime.Now.ToString("yyyyMMddHHmmss") + strRandom;//形如 + return code; + } + + + + } +} diff --git a/DigitalSchoolApi/Controllers/YKTController.cs b/DigitalSchoolApi/Controllers/YKTController.cs index e8826d7..9f6e916 100644 --- a/DigitalSchoolApi/Controllers/YKTController.cs +++ b/DigitalSchoolApi/Controllers/YKTController.cs @@ -6,6 +6,8 @@ using System.Data.SqlClient; using System.Linq; using System.Net; using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; using System.Web.Http; using Dapper; using DigitalSchoolApi.Models; @@ -14,7 +16,7 @@ using Learun.Application.Organization; namespace DigitalSchoolApi.Controllers { - public class YKTController : BaseController + public class YKTController : BaseController { private readonly static string _admsConnection = ConfigurationManager.ConnectionStrings["CoreDBString"].ConnectionString; private readonly static string _misConnection = ConfigurationManager.ConnectionStrings["ConnectionPfcMisDBString"].ConnectionString; @@ -273,6 +275,35 @@ namespace DigitalSchoolApi.Controllers RecurringJob.RemoveIfExists("LeaderAttendance"); return Ok(); } + /// + /// 开门(延迟5秒后调用关门) + /// + /// + public IHttpActionResult OpenCloseDoor(string id,bool c) + { + var r = HKAttendanceController.OpenDoor(id); + + if (c) + { + Task.Factory.StartNew(() => + { + + Thread.Sleep(5000); + HKAttendanceController.CloseDoor(id); + }); + } + return Ok(r); + } + + public IHttpActionResult CaptureJPEG(string id) + { + var result=HKAttendanceController.CaptureJPEG(id); + return Ok(new + { + state = !result.Contains("设备"), + data = result + }); + } #region 长阳报名\晚归预警 /// @@ -515,7 +546,7 @@ namespace DigitalSchoolApi.Controllers //学生 RecurringJob.AddOrUpdate("SyncTLMZYMiddleToStuInfo", () => TLMSchoolController.SyncStuInfoOracle(null), - Cron.Daily(1), TimeZoneInfo.Local); + Cron.MinuteInterval(5), TimeZoneInfo.Local); return Ok(); } /// @@ -596,7 +627,7 @@ namespace DigitalSchoolApi.Controllers () => TLMSchoolController.AssignSendEmail(entityList), Cron.Daily(entityList[0].F_Hour.Value), TimeZoneInfo.Local); } - + } } } @@ -665,5 +696,32 @@ namespace DigitalSchoolApi.Controllers } #endregion + + #region 和田数据同步 + + /// + /// 和田从中间库中同步到数校 + /// + /// + public IHttpActionResult SyncDataToDs() + { + //部门 + RecurringJob.AddOrUpdate("HTSyncDepartmentToDs", + () => HTSchoolController.SyncDepartment(), + Cron.Daily(1), TimeZoneInfo.Local); + + //教师 + RecurringJob.AddOrUpdate("HTSyncEmpInfoToDs", + () => HTSchoolController.SyncEmpInfoAcc(), + Cron.Daily(1), TimeZoneInfo.Local); + //学生 + RecurringJob.AddOrUpdate("HTSyncStuInfoToDs", + () => HTSchoolController.SyncStuInfoAcc(), + Cron.Daily(1), TimeZoneInfo.Local); + + + return Ok(); + } + #endregion } } diff --git a/DigitalSchoolApi/Controllers/海康考勤机/CHCNetSDK.cs b/DigitalSchoolApi/Controllers/海康考勤机/CHCNetSDK.cs index 2c3a893..f64385c 100644 --- a/DigitalSchoolApi/Controllers/海康考勤机/CHCNetSDK.cs +++ b/DigitalSchoolApi/Controllers/海康考勤机/CHCNetSDK.cs @@ -328,7 +328,16 @@ namespace AlarmCSharpDemo [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 24, ArraySubType = UnmanagedType.I1)] public byte[] byRes; } - + //ͼƬ + [StructLayoutAttribute(LayoutKind.Sequential)] + public struct NET_DVR_JPEGPARA + { + /*ע⣺ͼѹֱΪVGAʱ֧0=CIF, 1=QCIF, 2=D1ץͼ + ֱΪ3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA,7=XVGA, 8=HD900p + ֵ֧ǰֱʵץͼ*/ + public ushort wPicSize;/* 0=CIF, 1=QCIF, 2=D1 3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA*/ + public ushort wPicQuality;/* ͼƬϵ 0- 1-Ϻ 2-һ */ + } /********************************************************* Function: NET_DVR_Init Desc: ʼSDKSDKǰᡣ @@ -349,11 +358,30 @@ namespace AlarmCSharpDemo public static extern bool NET_DVR_SetExceptionCallBack_V30(uint nMessage, IntPtr hWnd, EXCEPYIONCALLBACK fExceptionCallBack, IntPtr pUser); [DllImport(@"HCNetSDK.dll")] public static extern bool NET_DVR_SetDVRMessageCallBack_V31(MSGCallBack_V31 fMessageCallBack, IntPtr pUser); + /********************************************************* + Function: NET_DVR_Login_V30 + Desc: + Input: sDVRIP [in] 豸IPַ + wServerPort [in] 豸˿ں + sUserName [in] ¼û + sPassword [in] û + Output: lpDeviceInfo [out] 豸Ϣ + Return: -1ʾʧܣֵʾصûIDֵ + **********************************************************/ + [DllImport(@".\HCNetSDK.dll")] + public static extern Int32 NET_DVR_Login_V30(string sDVRIP, Int32 wDVRPort, string sUserName, string sPassword, ref NET_DVR_DEVICEINFO_V30 lpDeviceInfo); [DllImport(@"HCNetSDK.dll")] public static extern int NET_DVR_Login_V40(ref NET_DVR_USER_LOGIN_INFO pLoginInfo, ref NET_DVR_DEVICEINFO_V40 lpDeviceInfo); [DllImport(@"HCNetSDK.dll")] public static extern int NET_DVR_SetupAlarmChan_V41(int lUserID, ref NET_DVR_SETUPALARM_PARAM lpSetupParam); [DllImport(@"HCNetSDK.dll")] public static extern bool NET_DVR_CloseAlarmChan_V30(int lAlarmHandle); + //2005-09-15 + [DllImport(@".\HCNetSDK.dll")] + public static extern bool NET_DVR_CaptureJPEGPicture(int lUserID, int lChannel, ref NET_DVR_JPEGPARA lpJpegPara, string sPicFileName); + + //JPEGץͼڴ + [DllImport(@".\HCNetSDK.dll")] + public static extern bool NET_DVR_CaptureJPEGPicture_NEW(int lUserID, int lChannel, ref NET_DVR_JPEGPARA lpJpegPara, byte[] sJpegPicBuffer, uint dwPicSize, ref uint lpSizeReturned); } } \ No newline at end of file diff --git a/DigitalSchoolApi/DigitalSchoolApi.csproj b/DigitalSchoolApi/DigitalSchoolApi.csproj index 7918788..c31d152 100644 --- a/DigitalSchoolApi/DigitalSchoolApi.csproj +++ b/DigitalSchoolApi/DigitalSchoolApi.csproj @@ -97,8 +97,8 @@ ..\packages\MySql.Data.8.0.23\lib\net452\MySql.Data.dll - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll ..\packages\Owin.1.0\lib\net40\Owin.dll @@ -382,6 +382,7 @@ + @@ -405,6 +406,7 @@ + @@ -423,6 +425,7 @@ + diff --git a/DigitalSchoolApi/DigitalSchoolApi.xml b/DigitalSchoolApi/DigitalSchoolApi.xml new file mode 100644 index 0000000..6bf06e1 --- /dev/null +++ b/DigitalSchoolApi/DigitalSchoolApi.xml @@ -0,0 +1,5491 @@ + + + + DigitalSchoolApi + + + + + license.bjqj文件地址 + + + + + 网络授权判断 + + + + + + 邮件收发组件 + + + + + 邮件服务器地址 + + + + + 用户名 + + + + + 密码 + + + + + 名称 + + + + + 同步发送邮件 + + 收件人邮箱地址 + 主题 + 内容 + 编码 + 是否Html + 是否SSL加密连接 + 是否成功 + + + + 异步发送邮件 独立线程 + + 邮件接收人 + 邮件标题 + 邮件内容 + 端口号 + + + + + 发送 + + 配置 + 信息 + + + + 删除 + + 配置 + UID + + + + 同步发送邮件 + + 发件人邮箱地址:用户名 + 发件人邮箱地址:密码 + 发件人邮箱地址:名称 + SMTP服务器 + SMTP服务器端口 + 收件人邮箱地址 + 主题 + 内容 + 编码 + 是否Html + 是否SSL加密连接 + 是否成功 + + + + POP3服务 + + + + + POP3端口 + + + + + SMTP服务 + + + + + SMTP端口 + + + + + 账户 + + + + + 账户名称 + + + + + 密码 + + + + + SSL + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 + Copyright (c) 2013-2018 北京泉江科技有限公司 + 创建人:陈彬彬 + 日 期:2017.03.04 + 描 述:加密、解密帮助类 + + + + + 加密 + + 需要加密的内容 + + + + + 加密数据 + + 需要加密的内容 + 秘钥 + + + + + 解密 + + 需要解密的内容 + + + + + 解密数据 + + 需要解密的内容 + 秘钥 + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 + Copyright (c) 2013-2018 北京泉江科技有限公司 + 创建人:陈彬彬 + 日 期:2017.03.04 + 描 述:数据访问(SqlServer) 上下文 + + + + + MD5加密 + + 加密字符 + 加密位数16/32 + + + + + 32位MD5加密(小写) + + 输入字段 + + + + + 基础API + + + + + 请求成功 + + 操作结果 + 自定义消息 + http状态码 + 返回数据 + + + + + 怀来职教 + + + + + 往oracle中间库中同步数校部门信息 + + 中间库连接地址 + + + + 系部 + + + + + 专业 + + + + + 班级 + + + + + 教室 + + + + + 学生 + + + + + 教师 + + + + + 宿舍 + + + + + 定时更新线上收费状态到新生表 + + + + + + 更新线上收费状态到新生表 + + + + + 每分钟执行缴费后处理 + + + + + + 每天执行缴费后处理 + + + + + + excel开发票任务 + + + + + + 根据年度学生缴费id触发开票任务 + + + + + + + 补开发票 + + 是否excel导入 + + + + + 每分钟执行缴费后处理 + + + + + + 每天执行缴费后处理 + + + + + + excel开发票任务 + + + + + + 补开发票 + + 是否excel导入 + + + + + 塔里木学院定时需求 + + + + + 超过设置的晚归时间后,推送到负责人 + + + + + + 锁定超过60天未登录的教师用户 + + + + + 推送微信 + + + + + + + 飞星推送 + + + + + + + + 推送消息提醒 + + + + + + + + 往塔里木oracle中间库中同步数校部门信息 + + + + + 系部 + + + + + 专业 + + + + + 班级 + + + + + 教室 + + + + + 学生 + + + + + 教师 + + + + + 宿舍信息 + + + + + 发送邮件提醒 + + + + + 发送邮件提醒 + + + + + 保存通知公告应读人员 + + + + + 分配发送邮件 + + + + + 固定资产:自动更新已提折旧月数 + + + + + 某日期-今 的相差月数 + + + + + + 开关状态 + + + + + 授权到期提醒 + + + + + 长阳宿舍管理--晚归预警 + + + + + 超过设置的晚归时间后,推送到负责人 + + + + + + 推送微信 + + + + + + + 飞星推送 + + + + + + + + 推送消息提醒 + + + + + + + + 往oracle中间库中同步数校部门信息 + + + + + 系部 + + + + + 专业 + + + + + 班级 + + + + + 教室 + + + + + 学生 + + + + + 教师 + + + + + 宿舍 + + + + + 开关状态 + + + + + 自动考勤 + + + + + + + 考勤设备日志 + + + + + 新增调用 + + + + + 编辑调用 + + + + + + 考勤设备管理 + + + + + Id + + + + + DName + + + + + DCode + + + + + IpAddress + + + + + PortNumber + + + + + AdminAccount + + + + + AdminPwd + + + + + F_EnabledMark + + + + + 布防状态 + + + + + 设备最后通讯时间 + + + + + 设备lUserID + + + + + F_CreateDate + + + + + F_CreateUserId + + + + + F_CreateUserName + + + + + F_ModifyDate + + + + + F_ModifyUserId + + + + + F_ModifyUserName + + + + + 新增调用 + + + + + 编辑调用 + + + + + + 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 + Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 + 创 建:超级管理员 + 日 期:2020-09-03 14:57 + 描 述:考勤限制 + + + + + 编号 + + + + + 上班时间 + + + + + 下班时间 + + + + + 签到时间开始 + + + + + 签到时间结束 + + + + + 签退时间开始 + + + + + 签退时间结束 + + + + + 打卡次数 + + + + + 中午签到开始时间 + + + + + 中午签到结束时间 + + + + + 中午签退开始时间 + + + + + 中午签退结束时间 + + + + + 中午签到时间 + + + + + 中午签退时间 + + + + + 迟到超时 + + + + + 早退超时 + + + + + 未签到,记为 + + + + + 未签退,记为 + + + + + 是否启用 + + + + + 新增调用 + + + + + 编辑调用 + + + + + + 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 + Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 + 创 建:超级管理员 + 日 期:2020-08-28 18:09 + 描 述:考勤记录 + + + + + 编号 + + + + + 员工名字 + + + + + 员工编号 + + + + + 部门 + + + + + 考勤类型 0-未定义,1-上班,2-下班,3-开始休息,4-结束休息,5-开始加班,6-结束加班 + + + + + 考勤时间(服务器时间) + + + + + 打卡时间(考勤机时间) + + + + + 打卡结果 1正常,2迟到,3早退,4上班补签,5下班补签 + + + + + 打卡地点 + + + + + 考勤年 + + + + + 考勤月 + + + + + 考勤日 + + + + + 考勤照片 + + + + + 新增调用 + + + + + 编辑调用 + + + + + + 用户角色结构 + + + + + 长阳报名 + + + + + 报名信息保存草稿24小时后,自动提交 + + + + + + 基础接口 + + + + + 登录接口 + + 帐户 + 帐户密码,32位MD5加密(小写) + + + + + 空闲教室 + + 上课日期,格式为yyyy-MM-dd + 分页页码,默认第一页 + 分页每页记录条数,默认每页10条 + 上课时间(如 11 代表星期一第一节课),第几节课支持多选 + 教学楼号,如09 + 教室名称 + + + + + 教学楼信息查询 + + + + + + 学生课程表 + + 学号 + 学年,格式如:18-19,默认为当前学年 + 学期,如1,默认为当前学期 + 上课开始日期,格式为yyyy-MM-dd + 上课截止日期,格式为yyyy-MM-dd + + + + + 学生成绩 + + 学号 + 学年,格式如:18-19 + 学期,数字整数,如1 + + + + + 教职工和学生基本信息 + + 人员类型 0学生 1教职工 + 分页页码,默认第一页 + 分页每页记录条数,默认每页10条 + + + + + 测试 + + + + + + 西昌一卡通推送 + + + + + + 开启金隅一卡通推送 + + + + + + 西昌在线缴费状态 + + + + + + 西昌中间库学生表更新 + + + + + + 长阳获取饭卡流水 + + + + + + 河南新安定时获取部门用户信息 + + + + + + 金隅消费信息 + + + + + + 测试PUSHWEIXIN + + + + + + 金隅充值记录 + + + + + + 停止西昌一卡通推送 + + + + + + 新疆巴楚教育局与java项目帐号同步 + + + + + + 开始连接并监听考勤事件 + + + + + + 考勤机撤防 + + + + + + 开始领导自动考勤 + + + + + + 结束领导自动考勤 + + + + + + 长阳报名 保存后24小时自动提交 + + + + + + 长阳晚归预警 + + + + + + 往长阳oracle中间库中同步数校基础信息 + + + + + + 往怀来职教oracle中间库中同步数校基础信息 + + + + + + 晚归预警 + + + + + + 锁定超过60天未登录的教师用户 + + + + + + 往塔里木oracle中间库中同步数校基础信息 + + + + + + 塔里木,给教职工发送邮件提醒 + + + + + + 塔里木固定资产,自动更新已提折旧月数 + + + + + + 授权到期提醒 上午九点 + + + + + + 授权到期提醒 下午4点 + + + + + + 部门 经管部 + + + + + 2017级 + + + + + 在校 + + + + + 汉族 + + + + + 家庭住址 + + + + + 年龄16 17 + + + + + 学号 178020242 + + + + + 姓名 + + + + + 班级名称 17财税02 + + + + + 专业 金融财税 + + + + + 西昌新生缴费状态查询 + + + + + 批量开具发票 + + + + + 单张票据开具接口 + + + + + 单张票据开具接口 + + + + + 新疆巴楚教育局与java项目帐号同步 + + + + + 西昌一卡通 + + + + + 西昌中间库更新学生数据 + + + + + 获取充值记录 + + + + + 长阳一卡通交易流水 + + + + + 长阳登录返回 + + + + + 中心序号 + + + + + 中心时间 + + + + + 发生时间 + + + + + 节点名称 + + + + + 学生卡账号 + + + + + 学生卡名称 + + + + + 身份证号 + + + + + 部门名称 + + + + + 部门编码 + + + + + 身份名称 + + + + + 流水类型 + + + + + 余额变化 + + + + + 余额 + + + + + 卡号 + + + + + 营业大组名称 + + + + + 营业小组名称 + + + + + 营业餐次 + + + + + pos机序号 + + + + + 描 述:固定资产 + + + + + 主键 + + + + + 资产编号 + + + + + 资产国标大类 + + + + + 资产分类 + + + + + 资产名称 + + + + + 财务入账日期 + + + + + 价值类型 + + + + + 价值 + + + + + 取得方式 + + + + + 取得日期 + + + + + 使用状况 + + + + + 使用部门 + + + + + 管理部门 + + + + + 使用人 + + + + + 数量 + + + + + 制单人 + + + + + 制单时间 + + + + + 所属单位 + + + + + 卡片状态 + + + + + 折旧年限 + + + + + 累计折旧 + + + + + 已提折旧月数 + + + + + 月折旧额 + + + + + 折旧方法 + + + + + 净值 + + + + + 采购组织形式 + + + + + 品牌 + + + + + 规格型号 + + + + + 存放地点 + + + + + 销售商 + + + + + 使用权面积/建筑面积 + + + + + 财政拨款 + + + + + 非财政拨款 + + + + + 会计凭证号 + + + + + 折旧/摊销状态 + + + + + CreateUserId + + + + + CreateTime + + + + + ModifyUserId + + + + + ModifyTime + + + + + SubmitUserId + + + + + SubmitTime + + + + + 状态(0草稿,1已提交,2审核通过,3审核未通过) + + + + + 流程主键 + + + + + 描 述:新闻公告 + + + + + 新闻主键 + + + + + + 类型(1-新闻2-公告) + + + + + + 阅读Id + + + + + 描 述:学校邮箱管理 + + + + + 邮件账户主键 + + + + + 账户 + + + + + 密码 + + + + + 发件人名称 + + + + + 有效标志 + + + + + 定时发送时间类型(天、周、月、年、) + + + + + 定时发送月 + + + + + 定时发送日 + + + + + 定时发送时 + + + + + 定时发送分 + + + + + 定时发送周 + + + + + 客户端授权码 + + + + + SMTP服务器 + + + + + SMTP服务器端口 + + + + + 描 述:学生宿舍管理 + + + + + 编号 + + + + + 编号 + + + + + 名称 + + + + + 宿舍楼 + + + + + 单元 + + + + + 楼层 + + + + + 负责人 + + + + + 舍长 + + + + + 类型(宿舍楼,单元,楼层,房间) + + + + + 创建人 + + + + + 创建时间 + + + + + 更新人 + + + + + 更新时间 + + + + + 价格 + + + + + 备注说明 + + + + + 电话 + + + + + 位置 + + + + + 校区 + + + + + 系 + + + + + 专业 + + + + + 班级 + + + + + 主班级 + + + + + 性别 + + + + + 住宿学生编号(存值为StuNo) + + + + + 预分学生id + + + + + 父ID + + + + + 是否独卫 + + + + + 星级 + + + + + 预分班级no + + + + + 排序 + + + + + 预分床位数量(宿舍名时有值) + + + + + 寝室类型(几人寝) + + + + + 入住人数 + + + + + 是否归宿 + + + + + 学号 + + + + + 姓名 + + + + + 所属院系代码 + + + + + 专业 + + + + + 班级 + + + + + 出生日期,格式:2019-06-17 + + + + + 1:男,2:女 + + + + + 民族CODE + + + + + 政治面貌CODE + + + + + 学制 + + + + + 培养层次CODE1:博士;2:硕士;3:本科;4:专科;9:其他(不可变更) + + + + + 入学日期 + + + + + 入学年级 + + + + + 学生状态CODE 01:在读,02:休学,03:退学,04:停学,05:复学,06:流失,07:毕业,08:结业,09:肄业,12:保留入学资格,99:其他 + + + + + 学籍状态CODE1:在籍,2:不在籍,3:保留学籍 + + + + + 户籍地址 + + + + + 预计毕业学年 + + + + + 预计毕业日期 + + + + + 预计毕业年 + + + + + 是否在校 + + + + + 学校编号 + + + + + 学号 + + + + + 学籍号 + + + + + 通知书号 + + + + + GraduateYear + + + + + 考生号 + + + + + 系所代码 + + + + + 专业代码 + + + + + 专业方向号(如0,1,2,3,4,5) + 代表无专业方向细分 + + + + + 专业方向名 + + + + + 年级 + + + + + 行政班号 + + + + + 姓名 + + + + + 拼音全称 + + + + + 拼音简称 + + + + + 性别码 + + + + + 出生日期 + + + + + 政治面貌码 + + + + + 家庭出身份 + + + + + 民族码 + + + + + 籍贯省代码 废除 + + + + + 籍贯省代码代码 + + + + + 籍贯市代码 + + + + + 籍贯县代码 + + + + + 籍贯 + + + + + 农业户口(是否农户) + + + + + 考生类别 + + + + + 健康状况 + + + + + 第几志愿 + + + + + TestStuSubjectNo + + + + + 本专科 + + + + + 计划形式 + + + + + 三好 + + + + + 优干 + + + + + 一般学生干部 + + + + + 省市前三 + + + + + 港澳台侨 + + + + + 录取类别 + + + + + 来源地区码 + + + + + 原单位码 + + + + + 原单位 + + + + + 入学年月 + + + + + 宗教 + + + + + 特长 + + + + + 身份证号 + + + + + 入党时间 + + + + + 入团时间 + 团员league + + + + + 校内地址 + + + + + 校内电话 + + + + + 当前异动类别 + + + + + 奖励标志 + + + + + 处分标志 + + + + + 联系人标志 + + + + + 学号异动标志 + + + + + 毕业标志 + + + + + 当前注册标志 + + + + + 毕业年月 + + + + + 毕业证书号 + + + + + 毕业证书备注 + + + + + 备注 + + + + + 报到日期 + + + + + Photo + + + + + TeachPlanNo + + + + + 审查标志 + + + + + 联系电话(手机) + + + + + 电子邮件地址 + + + + + QQ + + + + + 户口所在地 + + + + + 父亲姓名 + + + + + 父亲电话 + + + + + 母亲姓名 + + + + + 档案所在地 + + + + + 母亲电话 + + + + + 用户名 + + + + + 密码 + + + + + MailAddress收件人名址(收件人地址+ 姓名,可置默认值为家庭地址) + + + + + PostalCode邮政编码 + + + + + InSchoolStatus + + + + + TransMark + + + + + ClassTutorNo + + + + + 学籍卡审核 + + + + + PracStatus + + + + + RegisterStatus + + + + + PunishmentDate + + + + + StuId + + + + + 学制 + + + + + 学习形式 + + + + + 学籍异动状态 + + + + + + SyncFlag + + + + + 余额 + + + + + 身体健康状况 + + + + + 身份证件类型 + + + + + 入学方式 + + + + + 就读方式 + + + + + 国籍/地区 + + + + + 婚姻状况 + + + + + 乘火车区间 + + + + + 是否随迁子女 + + + + + 生源地行政区划码 + + + + + 出生地行政区划码 + + + + + 籍贯地行政区划码 + + + + + 户口所在地行政区划码 + + + + + 所属派出所 + + + + + 学生居住地类型 + + + + + 学生来源 + + + + + 招生对象 + + + + + 贫困户否建档立卡贫困户 + + + + + 招生方式 + + + + + 联招合作类型 + + + + + 准考证号 + + + + + 考试总分 + + + + + 联招合作办学形式 + + + + + 联招合作学校代码 + + + + + 校外教学点 + + + + + 分段培养方式 + + + + + 英文姓名 + + + + + 成员1关系 + + + + + 成员1是否监护人 + + + + + 成员1出生年月 + + + + + 成员1身份证件类型 + + + + + 成员1身份证件号 + + + + + 成员1民族 + + + + + 成员1政治面貌 + + + + + 成员1健康状况 + + + + + 成员1工作或学习单位 + + + + + 成员1职务 + + + + + 成员2关系 + + + + + 成员2是否监护人 + + + + + 成员2出生年月 + + + + + 成员2身份证件类型 + + + + + 成员2身份证件号 + + + + + 成员2民族 + + + + + 成员2政治面貌 + + + + + 成员2健康状况 + + + + + 成员2工作或学习单位 + + + + + 成员2职务 + + + + + 开户银行 + + + + + 银行卡账号 + + + + + 开户银行位置 + + + + + 专业 + + + + + 专业代码 + + + + + 名称 + + + + + 院系ID + + + + + 排序号 + + + + + 是否可用 1:是,0:否 + + + + + 专业分类 1:本科;2:专科;3:专升本;用于人才培养方案 + + + + + 代码 + + + + + 名称 + + + + + 课程类型CODE A类(纯理论课)/B类((理论+实践)课)/ C类(纯实践课) + + + + + 课程属性CODE 公共课、专业基础课、专业课。 + + + + + 课程性质CODE 课程性质(单一选项):必修课/专业选修课/公共选修课 + + + + + 是否可用 + + + + + 编制类型 在编(1)、人事代理(2)、其他(9)(不可变更) + + + + + 教学类(10)、行政类(20)、教辅类(30)、工勤类(40)、外聘教师类(80)、科研类(50)、校办企业类(60)、附设机构类(70)、其他类(99)(不可变更) + + + + + 教职工状态 在职(11,含其他原因在岗人员)、延聘(12)、返聘(04)、退休(01)、离职(07)、其他(99,表示不在校)等等,使用国标 + + + + + 学历 博士研究生:01,硕士研究生:10,本科:20,专科:30,中专:40,技工:50,高中,60(不可变更 + + + + + 学位 名誉博士:1,博士:2,硕士:3,学士:4,双学士:5(不可变更) + + + + + 组织机构ID + + + + + 编制类型 + 在编(1)、人事代理(2)、其他(9)(不可变更) + + + + + 教职工状态 + 在职(11,含其他原因在岗人员)、延聘(12)、返聘(04)、退休(01)、离职(07)、其他(99,表示不在校)等等,使用国标 + + + + + 编制类别 + 教学类(10)、行政类(20)、教辅类(30)、工勤类(40)、外聘教师类(80)、科研类(50)、校办企业类(60)、附设机构类(70)、其他类(99)(不可变更) + + + + + 最高学历 + 博士研究生:01,硕士研究生:10,本科:20,专科:30,中专:40,技工:50,高中,60(不可变更) + + + + + 最高学位 + 名誉博士:1,博士:2,硕士:3,学士:4,双学士:5(不可变更) + + + + + 培养层次CODE 1:博士;2:硕士;3:本科;4:专科;9:其他(不可变更 + + + + + 1:多媒体教室;2:语音室;3:实验室;4:计算机房;5:普通教室;6:专用教室;9:其他(不可变更) + + + + + Id + + + + + 接收邮件地址 + + + + + 是否到期前提醒 + + + + + 到期时间(提前几天提醒) + + + + + 邮件标题 + + + + + 邮件内容 + + + + + CreateTime + + + + + CreateUserId + + + + + ModifyTime + + + + + ModifyUserId + + + + + 邮件发送主键 + + + + + + 发件人 + + + + + + 发件人 + + + + + + 收件人 + + + + + + 抄送人 + + + + + + 密送人 + + + + + + 颜色 + + + + + + 主题 + + + + + + 正文 + + + + + + 附件 + + + + + + 状态 + + + + + + 描述 + + + + + + 排序码 + + + + + + 有效标志 + + + + + + 创建时间 + + + + + + 创建用户 + + + + + + 修改时间 + + + + + + 修改用户 + + + + + + 删除用户 + + + + + + 删除时间 + + + + + + 删除用户 + + + + + + 创建时间 + + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 + Copyright (c) 2013-2018 北京泉江科技有限公司 + 创 建:超级管理员 + 日 期:2019-11-06 11:48 + 描 述:公众号模板配置 + + + + + 编号 + + + + + 名字 + + + + + Code + + + + + 地址 + + + + + 模板Id + + + + + 公众号ID + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 + Copyright (c) 2013-2018 北京泉江科技有限公司 + 创 建:超级管理员 + 日 期:2019-11-06 11:46 + 描 述:公众号配置 + + + + + 编号 + + + + + APPId + + + + + secret + + + + + 是否启用 + + + + + 描 述:班级信息管理 + + + + + ClassId + + + + + 行政班码 + + + + + 行政班名 + + + + + 系所码 + + + + + 专业码 + + + + + 专业方向号(如0,1,2,3,4,5) 0代表无专业方向细分 + + + + + 专业方向名 + + + + + 年级 + + + + + 学生人数 + + + + + 年级内序号 + + + + + 班主任职工号 + + + + + 辅导员职工号 + + + + + 班级名称全称(根据年级、专业名称、序号自动生成) + + + + + 审核标志 + + + + + SyncFlag + + + + + 班级状态 + + + + + 是否是拆分班级 + + + + + Common + + + + + 根据当前时间获取学年和学期 + + + + + + 计算周一的时间 + + + + + + + 计算周日的时间 + + + + + + + 自动生成编号 201008251145409865 + + + + + + 空闲教室 + + + + + 楼号 + + + + + 楼名称 + + + + + 教室号 + + + + + 教室名称 + + + + + 教室楼层 + + + + + 容纳人数 + + + + + 统一操作结果 + + + + + 状态码 + + + + + 操作结果 1成功 0失败 -1 未找到 + + + + + 自定义消息 + + + + + 返回的数据 + + + + + 操作结果 + + + + + 成功 + + + + + 失败 + + + + + 未找到 + + + + + 课程表 + + + + + 课程名称 + + + + + 上课日期 + + + + + 上课时间(如 11 代表星期一第一节课) + + + + + 教师名称 + + + + + 学期 + + + + + 批量开具发票 + + + + + 业务种类 即分配的appid + + + + + 批次号 全局唯一,不能重复(业务系统必须保证整个单位唯一),如单位存在多个业务系统对接,必须在批次号前面加上业务系统唯一标识 + + + + + 业务发生日期 格式:yyyy-MM-dd + + + + + 该批次总笔数 + + + + + 开票数据列表 + + + + + 开票数据列表 + + + + + 业务单号 全局唯一,也叫业务流水号 + + + + + 开票点编码 + + + + + 票据种类编码 + + + + + 收费渠道 + 20 汇款,11 现金,10 境外,22 网银,21 POS,23 微信支付,24 支付宝支付,25 易宝支付,26 生源地贷款,27 支票 + + + + + 缴款人类型 交款人类型:1 个人 2 单位,默认为1 + + + + + 单位机构编码 交款人类型=2,填写值如:统一社会信用代码 + + + + + 收款人 + + + + + 学生姓名(缴款人) + + + + + 开票人 + + + + + 合计金额 + + + + + 收费项目明细 + + + + + 收费项目明细 + + + + + 收费项目编码 + + + + + 收费项目名称 + + + + + 数量 + + + + + 收费标准 + + + + + 金额 + + + + + 单张票据开具接口 + + + + + 业务种类 即分配的appid + + + + + 业务单号 全局唯一,也叫业务流水号 + + + + + 开票点编码 + + + + + 票据种类编码 + + + + + 收费渠道 + 20 汇款,11 现金,10 境外,22 网银,21 POS,23 微信支付,24 支付宝支付,25 易宝支付,26 生源地贷款,27 支票 + + + + + 交款人类型:1 个人 2 单位,默认为1 + + + + + 收款人 + + + + + 开票日期 格式:yyyy-MM-dd + + + + + 学生姓名(缴款人) + + + + + 学生学号 + + + + + 备注 + + + + + 开票人 + + + + + 合计金额 + + + + + 通知方式 0无需通知,1手机通知,2邮箱通知,3两者都通知 + + + + + 收费项目明细 + + + + + 收费项目明细 + + + + + 收费项目编码 + + + + + 收费项目名称 + + + + + 数量 + + + + + 收费标准 + + + + + 金额 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 + Copyright (c) 2013-2018 北京泉江科技有限公司 + 创建人:陈彬彬 + 日 期:2017.03.04 + 描 述:字符串工具方法 + + + + + 空字符串 + + + + + 对html字符串进行编码 + + html字符串 + + + + 格式化文本(防止SQL注入) + + html页面数据 + + + + + 把汉字转换成拼音(全拼) + + 汉字字符串 + 转换后的拼音(全拼)字符串 + + + + 拼音码 + + + + + 拼音码 + + + + + 拼接集合元素 + + 集合元素类型 + 集合 + 引号,默认不带引号,范例:单引号 "'" + 分隔符,默认使用逗号分隔 + + + + 将值的首字母大写 + + 值 + + + + 将值的首字母小写 + + 值 + + + + + 将字符串转成驼峰形式 + + 原始字符串 + + + + 是否包含中文 + + 文本 + + + + 是否包含数字 + + 文本 + + + + 去除重复 + + 值,范例1:"5555",返回"5",范例2:"4545",返回"45" + + + + 截断字符串 + + 文本 + 返回长度 + 添加结束符号的个数,默认0,不添加 + 结束符号,默认为省略号 + + + + 获取结束字符串 + + + + + 获取全局唯一值 + + + + + 获取最后一个属性 + + 属性名,范例,A.B.C,返回"C" + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 力软敏捷开发框架 + Copyright (c) 2013-2018 上海力软信息技术有限公司 + 创建人:陈彬彬 + 日 期:2017.03.04 + 描 述:加密、解密帮助类 + + + + + 加密 + + 需要加密的内容 + + + + + 加密数据 + + 需要加密的内容 + 秘钥 + + + + + 解密 + + 需要解密的内容 + + + + + 解密数据 + + 需要解密的内容 + 秘钥 + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 + Copyright (c) 2013-2018 北京泉江科技有限公司 + 创建人:陈彬彬 + 日 期:2017.03.07 + 描 述:mvc过滤模式 + + + + + 创建HttpClient + + + + + + post 请求 + + 请求地址 + 请求参数 + + + + + post 请求 + + 请求地址 + + + + + post 请求 + + 请求地址 + 请求参数 + + + + + get 请求 + + 请求地址 + + + + + + 发起一个HTTP请求(以GET方式) + + + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 力软敏捷开发框架 + Copyright (c) 2013-2018 上海力软信息技术有限公司 + 创建人:陈彬彬 + 日 期:2017.03.04 + 描 述:数据访问(SqlServer) 上下文 + + + + + MD5加密 + + 加密字符 + 加密位数16/32 + + + + + 32位MD5加密(小写) + + 输入字段 + + + + + 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 + Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 + 创 建:超级管理员 + 日 期:2023-08-12 22:14 + 描 述:FinaChargeStuOrderDetail + + + + + Id + + + + + FCSOId + + + + + ChargeItemCode + + + + + 发票代码 + + + + + ChargeItemName + + + + + 应缴 + + + + + 实缴 + + + + + 待缴 + + + + + 超出余额 + + + + + 新增调用 + + + + + 编辑调用 + + + + + + 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 + Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 + 创 建:超级管理员 + 日 期:2023-08-12 22:06 + 描 述:缴费订单管理 + + + + + Id + + + + + FSYId + + + + + 年度 + + + + + 学号 + + + + + 订单编号 + + + + + 应交金额 + + + + + 实交金额 + + + + + 待缴金额 + + + + + 超出余额 + + + + + 缴费订单状态(0未支付,1已支付) + + + + + 下单时间 + + + + + 付款时间 + + + + + 付款方式 + + + + + 订单来源(1二维码缴费,2人工导入) + + + + + 银行流水号 + + + + + 新增调用 + + + + + 编辑调用 + + + + + + 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 + Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 + 创 建:超级管理员 + 日 期:2023-08-07 15:52 + 描 述:学生年度缴费管理 + + + + + FSYId + + + + + StuNo + + + + + FSYear + + + + + 应缴金额(收费标准) + + + + + 实缴金额(已缴金额) + + + + + 应缴余额 + + + + + 超出应收额 + + + + + 缴费标志(0未缴费,1已缴清,4部分缴纳) + + + + + 新增调用 + + + + + 编辑调用 + + + + + + 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 + Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 + 创 建:超级管理员 + 日 期:2023-08-07 16:40 + 描 述:FinaChargeStuYearItem + + + + + FSYIId + + + + + FSYId + + + + + ChargeItemCode + + + + + 收费项名称 + + + + + ChargeItemType + + + + + 优先级 + + + + + 收费标准 + + + + + SJAmount + + + + + 剩余待缴 + + + + + 超出缴费余额 + + + + + 缴费标志(0未缴费,1已缴清,4部分缴纳) + + + + + F_DeleteMark + + + + + 创建时间 + + + + + 创建人主键 + + + + + 创建人名字 + + + + + 新生缴费明细 + + + + + 新生缴费单 + + + + + ID + + + + + 年度 + + + + + 学号 + + + + + orderid + + + + + 应交金额 + + + + + 实交金额 + + + + + 下单时间 + + + + + 缴费状态 + + + + + 付款时间 + + + + + 票据种类编码表 + + + + + 描 述:教师信息管理 + + + + + 教师用户ID + + + + + EmpId + + + + + 职工号 + + + + + 姓名 + + + + + 性别 + + + + + 出生日期 + + + + + 系所 + + + + + 身份证号 + + + + + 联系电话(手机) + + + + + 电子邮件 + + + + + 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架 + Copyright (c) 2013-2020 力软信息技术(苏州)有限公司 + 创 建:超级管理员 + 日 期:2021-04-23 16:58 + 描 述:消息提醒 + + + + + 主键 + + + + + 接收人 + + + + + 接收人 + + + + + 发送人 + + + + + 发送人 + + + + + 标题 + + + + + 内容 + + + + + 实例url(能跳转) + + + + + 实例Id + + + + + SendTime + + + + + 是否已读 + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 + Copyright (c) 2013-2018 北京泉江科技有限公司 + 创建人:陈彬彬 + 日 期:2017.03.04 + 描 述:部门管理 + + + + + 部门主键 + + + + + + 公司主键 + + + + + + 父级主键 + + + + + + 部门代码 + + + + + + 部门名称 + + + + + + 部门简称 + + + + + + 部门类型 + + + + + + 负责人 + + + + + + 外线电话 + + + + + + 内线电话 + + + + + + 电子邮件 + + + + + + 部门传真 + + + + + + 排序码 + + + + + + 删除标记 + + + + + + 有效标志 + + + + + + 备注 + + + + + + 创建日期 + + + + + + 创建用户主键 + + + + + + 创建用户 + + + + + + 修改日期 + + + + + + 修改用户主键 + + + + + + 修改用户 + + + + + + 分管校长Id + + + + + + 排序 + + + + + + 系部 + + + + + DeptId + + + + + 系所代码(部门号) + + + + + 系所名称(部门名) + + + + + 系主任的职工号 + + + + + 专业 + + + + + 标识列 + + + + + 专业代码 + + + + + 专业名称 + + + + + 学制 + + + + + 系所代码 + + + + + 教室 + + + + + ClassroomId + + + + + 教室编号 + + + + + 教室名称 + + + + + 容纳人数 + + + + + 学生 + + + + + 学生用户ID + + + + + 学生ID + + + + + 学号 + + + + + 系所代码 + + + + + 专业代码 + + + + + 年级 + + + + + 行政班号 + + + + + 姓名 + + + + + 性别码 + + + + + 出生日期 + + + + + 身份证号 + + + + + 联系电话(手机) + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 力软敏捷开发框架 + Copyright (c) 2013-2018 上海力软信息技术有限公司 + 创建人:陈彬彬 + 日 期:2017.03.04 + 描 述:用户数据库实体类 + + + + + 编号 + + + + + 数据来源 + + + + + 记录序号 + + + + + 企业代码 + + + + + 钱包类型 + + + + + 一卡通账号 + + + + + 学工号 + + + + + 持卡序号 + + + + + 存款卡操作计 数 + + + + + 消费卡操作计 数 + + + + + 操作时间 + + + + + 余额 + + + + + 操作额 + + + + + 管理费、搭伙 费 + + + + + 科目代码 + + + + + 科目描述 + + + + + 终端编号 + + + + + 终端记录流水 号 + + + + + 上传时间 + + + + + SAM 卡号 + + + + + SAM 卡交易流水 号 + + + + + 交易卡类型 + + + + + TAC 验证码 + + + + + 卡应用序列号 + + + + + 新增调用 + + + + + 编辑调用 + + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 力软敏捷开发框架 + Copyright (c) 2013-2018 上海力软信息技术有限公司 + 创建人:陈彬彬 + 日 期:2017.03.04 + 描 述:用户数据库实体类 + + + + + 编号 + + + + + 数据来源 + + + + + 记录序号 + + + + + 企业代码 + + + + + 钱包类型 + + + + + 一卡通账号 + + + + + 学工号 + + + + + 持卡序号 + + + + + 消费卡操作计 数 + + + + + 操作时间 + + + + + 余额 + + + + + 操作额 + + + + + 管理费、搭伙 费 + + + + + 科目代码 + + + + + 科目描述 + + + + + 终端编号 + + + + + 终端记录流水 号 + + + + + 上传时间 + + + + + SAM 卡号 + + + + + SAM 卡交易流水 号 + + + + + 交易卡类型 + + + + + TAC 验证码 + + + + + 卡应用序列号 + + + + + 新增调用 + + + + + 编辑调用 + + + + + + 版 本 Learun-ADMS-Ultimate V7.0.0 力软敏捷开发框架 + Copyright (c) 2013-2018 上海力软信息技术有限公司 + 创建人:陈彬彬 + 日 期:2017.03.04 + 描 述:用户数据库实体类 + + + + + 用户主键 + + + + + 工号 + + + + + 账户 + + + + + 登录密码 + + + + + 密码秘钥 + + + + + 真实姓名 + + + + + 呢称 + + + + + 头像 + + + + + 快速查询 + + + + + 简拼 + + + + + 性别 + + + + + 生日 + + + + + 手机 + + + + + 电话 + + + + + 电子邮件 + + + + + QQ号 + + + + + 微信号 + + + + + MSN + + + + + 公司主键 + + + + + 部门主键 + + + + + 安全级别 + + + + + 单点登录标识 + + + + + 密码提示问题 + + + + + 密码提示答案 + + + + + 允许多用户同时登录 + + + + + 允许登录时间开始 + + + + + 允许登录时间结束 + + + + + 暂停用户开始日期 + + + + + 暂停用户结束日期 + + + + + 排序码 + + + + + 删除标记 + + + + + 有效标志 + + + + + 备注 + + + + + 创建日期 + + + + + 创建用户主键 + + + + + 创建用户 + + + + + 修改日期 + + + + + 修改用户主键 + + + + + 修改用户 + + + + + 登录信息 + + + + + 登录状态 + + + + + CHCNetSDK 的摘要说明。 + + + + char[16] + + + BYTE[128] + + + diff --git a/DigitalSchoolApi/Models/HtEntity.cs b/DigitalSchoolApi/Models/HtEntity.cs new file mode 100644 index 0000000..9795cc2 --- /dev/null +++ b/DigitalSchoolApi/Models/HtEntity.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DigitalSchoolApi.Models +{ + internal interface HtEntity + { + } + + public class HTMiddleOrganize + { + public string ID { get; set; } + + public string NAME { get; set; } + + public string FID { get; set; } + + public string CODE { get; set; } + } + + public class HTMiddleStuInfo + { + + public string ID { get; set; } + public string USERNAME { get; set; } + + public string StuName { get; set; } + + public string IdentityCardNo { get; set; } + + public string NationalityNo { get; set; } + + public string Grade { get; set; } + + public string EntranceDate { get; set; } + + public string RegisterDate { get; set; } + + public string MailAddress { get; set; } + + public string DeptNo { get; set; } + public string DeptName { get; set; } + + public string MajorNo { get; set; } + public string MajorName { get; set; } + + public string ClassNo { get; set; } + public string ClassName { get; set; } + + public string GenderNo { get; set; } + + public string CODE { get; set; } + + public string MOBILE { get; set; } + + public string EMAIL { get; set; } + } + + public class HTMiddleEmpInfo + { + + public string ID { get; set; } + + public string CODE { get; set; } + + + public string NAME { get; set; } + public string USERNAME { get; set; } + + public string MOCODE { get; set; } + + public string GENDER { get; set; } + + public string CARDNO { get; set; } + + public string MOBILE { get; set; } + + public string EMAIL { get; set; } + + public string STATUS { get; set; } + + } +} diff --git a/DigitalSchoolApi/Web.config b/DigitalSchoolApi/Web.config index 3a518d1..12d9369 100644 --- a/DigitalSchoolApi/Web.config +++ b/DigitalSchoolApi/Web.config @@ -53,11 +53,9 @@ - - + - - + @@ -70,7 +68,7 @@ - +