using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OASystem.Domain.ViewModels.QiYeWeChat { #region 企业微信 API 获取企业打卡规则 /// <summary> /// 企业微信 API 获取企业打卡规则 /// </summary> public class CorpCheckInRuleView : ResponseBase { /// <summary> /// 企业规则信息列表 /// </summary> public List<GroupItem>? group { get; set; } } public class GroupItem { /// <summary> /// 打卡规则类型,1:固定时间上下班;2:按班次上下班;3:自由上下班 /// </summary> public int grouptype { get; set; } /// <summary> /// 打卡规则id /// </summary> public int groupid { get; set; } /// <summary> /// 打卡规则名称 /// </summary> public string groupname { get; set; } /// <summary> /// 特殊日期-不用打卡日期时间戳 /// </summary> public List<spe_offdaysItem> spe_offdays { get; set; } } /// <summary> /// 特殊日期-不用打卡日期时间戳 /// </summary> public class spe_offdaysItem { /// <summary> /// 特殊日期备注 /// </summary> public string notes { get; set; } public long timestamp { get; set; } public List<long> checkintime { get; set; } public int type { get; set; } /// <summary> /// 开始时间戳 /// </summary> public long begtime { get; set; } /// <summary> /// 开始时间 /// </summary> public DateTime begtime_dt { get { return new DateTime(begtime * 10000000 + 621355968000000000L).ToLocalTime(); } } public long endtime { get; set; } /// <summary> /// 开始时间 /// </summary> public DateTime endtime_dt { get { return new DateTime(endtime * 10000000 + 621355968000000000L).ToLocalTime(); } } } #endregion /// <summary> /// 企业微信 API /// 打卡月数据 /// </summary> public class CheckInView:ResponseBase { /// <summary> /// 基础信息 /// </summary> public List<Data>? datas { get; set; } } /// <summary> /// 基础信息 Data /// </summary> public class Data { /// <summary> /// 基础信息 /// </summary> public Base_Info? base_info { get; set; } /// <summary> /// 汇总信息 /// </summary> public Summary_Info? summary_info { get; set; } /// <summary> /// 异常状态统计信息 /// </summary> public List<Exception_Info>? exception_infos { get; set; } /// <summary> /// 假勤统计信息 /// </summary> public List<Sp_Item>? sp_items { get; set; } /// <summary> /// 加班情况 /// </summary> public Overwork_Info? overwork_info { get; set; } } /// <summary> /// 成员基础信息 /// </summary> public class Base_Info { /// <summary> /// 记录类型:1-固定上下班;2-外出(此报表中不会出现外出打卡数据);3-按班次上下班;4-自由签到;5-加班;7-无规则 /// </summary> public int record_type { get; set; } /// <summary> /// 打卡人员姓名 /// </summary> public string? name { get; set; } /// <summary> /// 打卡人员别名 /// </summary> public string? name_ex { get; set; } /// <summary> /// 打卡人员所在部门,会显示所有所在部门 /// </summary> public string? departs_name { get; set; } /// <summary> /// 打卡人员账号,即userid /// </summary> public string? acctid { get; set; } /// <summary> /// 打卡人员所属规则信息 /// </summary> public Rule_Info? rule_info { get; set; } } /// <summary> /// 打卡人员所属规则信息 /// </summary> public class Rule_Info { /// <summary> /// 所属规则的id /// </summary> public int groupid { get; set; } /// <summary> /// 打卡规则名 /// </summary> public string? groupname { get; set; } } /// <summary> /// 汇总信息 /// </summary> public class Summary_Info { /// <summary> /// 应打卡天数 /// </summary> public int work_days { get; set; } /// <summary> /// 正常天数 /// </summary> public int regular_days { get; set; } /// <summary> /// 异常天数 /// </summary> public int except_days { get; set; } /// <summary> /// 实际工作时长,为统计周期每日实际工作时长之和 /// </summary> public int regular_work_sec { get; set; } /// <summary> /// 标准工作时长,为统计周期每日标准工作时长之和 /// </summary> public int standard_work_sec { get; set; } } /// <summary> /// 异常状态统计信息 /// </summary> public class Exception_Info { /// <summary> /// 异常类型:1-迟到;2-早退;3-缺卡;4-旷工;5-地点异常;6-设备异常 /// </summary> public int exception { get; set; } /// <summary> /// 异常次数,为统计周期内每日此异常次数之和 /// </summary> public int count { get; set; } /// <summary> /// 异常时长(迟到/早退/旷工才有值),为统计周期内每日此异常时长之和 /// </summary> public int duration { get; set; } } /// <summary> /// 假勤统计信息 /// </summary> public class Sp_Item { /// <summary> /// 假勤类型:1-请假;2-补卡;3-出差;4-外出;100-外勤 /// </summary> public int type { get; set; } /// <summary> /// 具体请假类型,当type为1请假时,具体的请假类型id,可通过审批相关接口获取假期详情 /// </summary> public int vacation_id { get; set; } /// <summary> /// 假勤次数,为统计周期内每日此假勤发生次数之和 /// </summary> public int count { get; set; } /// <summary> /// 假勤时长,为统计周期内每日此假勤发生时长之和,时长单位为天直接除以86400即为天数,单位为小时直接除以3600即为小时数 /// </summary> public int duration { get; set; } /// <summary> /// 时长单位:0-按天 1-按小时 /// </summary> public int time_type { get; set; } /// <summary> /// 统计项名称 /// </summary> public string? name { get; set; } } /// <summary> /// 加班情况 /// </summary> public class Overwork_Info { /// <summary> /// 工作日加班时长 /// </summary> public int? workday_over_sec { get; set; } /// <summary> /// 节假日加班时长 /// </summary> public int? holidays_over_sec { get; set; } /// <summary> /// 休息日加班时长 /// </summary> public int? restdays_over_sec { get; set; } } public class AssessmentByUserListView : ResponseBase { public List<AssessmentByUserView> Data { get; set; } } public class AssessmentByUserView { public string Name { get; set; } public string Accid { get; set; } public int Regular_days { get; set; } public int Except_days { get; set; } public List<Exception_info> Exception_info_List { get; set; } } public class Exception_info { public ErrorType Type { get; set; } public DateTime Date { get; set; } public string Info { get; set; } } public enum ErrorType { 迟到 = 1, // 迟到 早退 = 2, // 早退 缺卡 = 3, // 缺卡 旷工 = 4, // 旷工 地点异常 = 5, // 地点异常 设备异常 = 6 // 设备异常 } }