| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977 |
- using Microsoft.AspNetCore.Http;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Text.Json.Serialization;
- using System.Threading.Tasks;
- namespace OASystem.Domain.ViewModels.QiYeWeChat
- {
- #region 企业微信 API 获取企业打卡规则
- /// <summary>
- /// 企业微信 API 获取企业打卡规则
- /// </summary>
- public class CorpCheckInRuleView : ResponseBase
- {
- /// <summary>打卡规则列表</summary>
- public List<CheckInGroup> group { get; set; } = new();
- /// <summary>更新时间戳</summary>
- public int uptime { get; set; }
- }
- /// <summary>
- /// 打卡规则组
- /// </summary>
- public class CheckInGroup
- {
- /// <summary>打卡规则ID</summary>
- public uint groupid { get; set; }
- /// <summary>打卡规则名称</summary>
- public string groupname { get; set; } = string.Empty;
- /// <summary>
- /// 打卡规则类型
- /// 1:固定时间上下班;2:按班次上下班;3:自由上下班
- /// </summary>
- public uint grouptype { get; set; }
- /// <summary>打卡时间配置(支持多个时段,如早/晚班)</summary>
- public List<CheckInDate> checkindate { get; set; } = new();
- /// <summary>特殊日期-必须打卡日期</summary>
- public List<SpecialWorkDay> spe_workdays { get; set; } = new();
- /// <summary>特殊日期-不用打卡日期</summary>
- public List<SpecialOffDay> spe_offdays { get; set; } = new();
- /// <summary>是否同步法定节假日</summary>
- public bool sync_holidays { get; set; }
- /// <summary>是否非工作日允许打卡</summary>
- public bool allow_checkin_offworkday { get; set; }
- /// <summary>是否允许提交补卡申请</summary>
- public bool allow_apply_offworkday { get; set; }
- /// <summary>每月最多补卡次数,-1表示不限制</summary>
- public int allow_apply_bk_cnt { get; set; } = -1;
- /// <summary>允许补卡时限(天),-1表示不限制</summary>
- public int allow_apply_bk_day_limit { get; set; } = -1;
- /// <summary>打卡人员范围</summary>
- public CheckInRange range { get; set; } = new();
- /// <summary>白名单用户ID列表</summary>
- public List<string> white_users { get; set; } = new();
- /// <summary>创建时间戳</summary>
- public int create_time { get; set; }
- /// <summary>打卡方式:0-手机;2-智慧考勤机;3-手机+智慧考勤机</summary>
- public int type { get; set; }
- /// <summary>是否必须拍照打卡</summary>
- public bool need_photo { get; set; }
- /// <summary>备注时是否允许上传本地图片</summary>
- public bool note_can_use_local_pic { get; set; }
- /// <summary>WiFi打卡信息列表</summary>
- public List<WifiInfo> wifimac_infos { get; set; } = new();
- /// <summary>位置打卡信息列表</summary>
- public List<LocationInfo> loc_infos { get; set; } = new();
- /// <summary>范围外打卡处理方式:0-不允许打卡;1-允许打卡但标记异常;2-允许打卡且不标记异常</summary>
- public int option_out_range { get; set; }
- /// <summary>是否开启人脸识别打卡</summary>
- public bool use_face_detect { get; set; }
- /// <summary>规则创建人userid</summary>
- public string create_userid { get; set; } = string.Empty;
- /// <summary>规则最近编辑人userid</summary>
- public string update_userid { get; set; } = string.Empty;
- /// <summary>排班信息(仅规则类型为按班次上下班时有效)</summary>
- public List<ScheduleInfo> schedulelist { get; set; } = new();
- /// <summary>汇报对象信息</summary>
- public ReporterInfo reporterinfo { get; set; } = new();
- /// <summary>加班规则V1(旧版)</summary>
- public OtInfo ot_info { get; set; } = new();
- /// <summary>
- /// 以下为补充字段(根据实际JSON)
- /// </summary>
- /// <summary>下班打卡时间间隔(秒)</summary>
- public int offwork_interval_time { get; set; }
- /// <summary>是否开启人脸活体检测</summary>
- public bool open_face_live_detect { get; set; }
- /// <summary>次月补卡限制次数,-1表示不限制</summary>
- public int buka_limit_next_month { get; set; }
- /// <summary>加班规则V2(新版)</summary>
- public OtInfoV2 ot_info_v2 { get; set; } = new();
- /// <summary>是否同步外出打卡记录</summary>
- public bool sync_out_checkin { get; set; }
- /// <summary>补卡提醒配置</summary>
- public BukaRemind buka_remind { get; set; } = new();
- /// <summary>补卡限制类型(0-不限制,1-仅限本人,2-禁止补卡等)</summary>
- public int buka_restriction { get; set; }
- /// <summary>是否开启特殊日期打卡(如节假日配置)</summary>
- public bool open_sp_checkin { get; set; }
- /// <summary>打卡方式类型扩展字段</summary>
- public int checkin_method_type { get; set; }
- }
- /// <summary>
- /// 打卡日期配置(某一天或一组工作日的规则)
- /// </summary>
- public class CheckInDate
- {
- /// <summary>工作日:0-星期日,1-6-星期一到星期六</summary>
- public List<int> workdays { get; set; } = new();
- /// <summary>上下班时段列表(支持一天多个时段)</summary>
- public List<CheckInTime> checkintime { get; set; } = new();
- /// <summary>弹性时间设置(单位:秒)</summary>
- public int flex_time { get; set; }
- /// <summary>下班是否需要打卡(整体规则)</summary>
- public bool noneed_offwork { get; set; }
- /// <summary>打卡时间限制(毫秒),如限制必须提前多久打卡</summary>
- public int limit_aheadtime { get; set; }
- /// <summary>允许迟到时间(秒)</summary>
- public int flex_on_duty_time { get; set; }
- /// <summary>允许早退时间(秒)</summary>
- public int flex_off_duty_time { get; set; }
- /// <summary>是否允许弹性时间(如弹性上下班)</summary>
- public bool allow_flex { get; set; }
- /// <summary>迟到规则(如晚走次日可晚到)</summary>
- public LateRule late_rule { get; set; } = new();
- /// <summary>最多允许早到时间(秒)</summary>
- public int max_allow_arrive_early { get; set; }
- /// <summary>最多允许迟到时间(秒)</summary>
- public int max_allow_arrive_late { get; set; }
- /// <summary>大小周配置(可选)</summary>
- public BiweeklyInfo biweekly { get; set; } = new();
- }
- /// <summary>
- /// 上下班打卡时段(具体的上班时间、下班时间)
- /// </summary>
- public class CheckInTime
- {
- /// <summary>时段ID(适用于一天多个时段)</summary>
- public int time_id { get; set; }
- /// <summary>上班时间(距离当天0点的秒数)</summary>
- public int work_sec { get; set; }
- /// <summary>下班时间(距离当天0点的秒数)</summary>
- public int off_work_sec { get; set; }
- /// <summary>上班提醒时间(秒)</summary>
- public int remind_work_sec { get; set; }
- /// <summary>下班提醒时间(秒)</summary>
- public int remind_off_work_sec { get; set; }
- /// <summary>最早休息开始时间(秒)</summary>
- public int rest_begin_time { get; set; }
- /// <summary>最早休息结束时间(秒)</summary>
- public int rest_end_time { get; set; }
- /// <summary>是否允许休息</summary>
- public bool allow_rest { get; set; }
- /// <summary>最早可打卡上班时间(秒)</summary>
- public int earliest_work_sec { get; set; }
- /// <summary>最晚可打卡上班时间(秒)</summary>
- public int latest_work_sec { get; set; }
- /// <summary>最早可打卡下班时间(秒)</summary>
- public int earliest_off_work_sec { get; set; }
- /// <summary>最晚可打卡下班时间(秒)</summary>
- public int latest_off_work_sec { get; set; }
- /// <summary>上班是否需要打卡</summary>
- public bool no_need_checkon { get; set; }
- /// <summary>下班是否需要打卡(时段级)</summary>
- public bool no_need_checkoff { get; set; }
- /// <summary>休息时段列表(一天内可能有多个休息)</summary>
- public List<RestTime> rest_times { get; set; } = new();
- /// <summary>上班时间(TimeSpan格式,仅用于辅助)</summary>
- public TimeSpan WorkTime => TimeSpan.FromSeconds(work_sec);
- /// <summary>下班时间(TimeSpan格式,仅用于辅助)</summary>
- public TimeSpan OffWorkTime => TimeSpan.FromSeconds(off_work_sec);
- }
- /// <summary>
- /// 特殊工作日(必须打卡)
- /// </summary>
- public class SpecialWorkDay
- {
- /// <summary>日期时间戳</summary>
- public int timestamp { get; set; }
- /// <summary>备注</summary>
- public string notes { get; set; } = string.Empty;
- /// <summary>打卡时间配置(可覆盖默认时段)</summary>
- public List<CheckInTime> checkintime { get; set; } = new();
- /// <summary>日期(本地时间)</summary>
- public DateTime Date => DateTimeOffset.FromUnixTimeSeconds(timestamp).LocalDateTime;
- }
- /// <summary>
- /// 特殊休息日(不用打卡)
- /// </summary>
- public class SpecialOffDay
- {
- /// <summary>日期时间戳</summary>
- public int timestamp { get; set; }
- /// <summary>备注</summary>
- public string notes { get; set; } = string.Empty;
- /// <summary>日期(本地时间)</summary>
- public DateTime Date => DateTimeOffset.FromUnixTimeSeconds(timestamp).LocalDateTime;
- }
- /// <summary>
- /// 打卡人员范围
- /// </summary>
- public class CheckInRange
- {
- /// <summary>成员ID列表</summary>
- public List<string> userid { get; set; } = new();
- /// <summary>部门ID列表</summary>
- public List<string> party_id { get; set; } = new();
- /// <summary>标签ID列表</summary>
- public List<int> tagid { get; set; } = new();
- }
- /// <summary>
- /// WiFi打卡信息
- /// </summary>
- public class WifiInfo
- {
- /// <summary>WiFi名称</summary>
- public string wifiname { get; set; } = string.Empty;
- /// <summary>WiFi MAC地址 或 BSSID</summary>
- public string wifimac { get; set; } = string.Empty;
- /// <summary>BSSID(部分场景使用)</summary>
- public string bssid { get; set; } = string.Empty;
- }
- /// <summary>
- /// 位置打卡信息
- /// </summary>
- public class LocationInfo
- {
- /// <summary>纬度(实际纬度 × 1,000,000)</summary>
- public long lat { get; set; }
- /// <summary>经度(实际经度 × 1,000,000)</summary>
- public long lng { get; set; }
- /// <summary>位置名称</summary>
- public string loc_title { get; set; } = string.Empty;
- /// <summary>位置详细地址</summary>
- public string loc_detail { get; set; } = string.Empty;
- /// <summary>允许打卡范围(米)</summary>
- public int distance { get; set; }
- }
- /// <summary>
- /// 排班信息(按班次上下班时使用)
- /// </summary>
- public class ScheduleInfo
- {
- /// <summary>班次ID</summary>
- public int schedule_id { get; set; }
- /// <summary>班次名称</summary>
- public string schedule_name { get; set; } = string.Empty;
- /// <summary>班次上下班时段信息</summary>
- public List<TimeSection> time_section { get; set; } = new();
- /// <summary>允许提前打卡时间(秒)</summary>
- public int limit_aheadtime { get; set; }
- /// <summary>下班后超过此秒数不允许打下班卡</summary>
- public int limit_offtime { get; set; }
- /// <summary>下班不需要打卡</summary>
- public bool noneed_offwork { get; set; }
- /// <summary>是否允许弹性时间</summary>
- public bool allow_flex { get; set; }
- /// <summary>允许迟到时间(秒)</summary>
- public int flex_on_duty_time { get; set; }
- /// <summary>允许早退时间(秒)</summary>
- public int flex_off_duty_time { get; set; }
- /// <summary>迟到规则</summary>
- public LateRule late_rule { get; set; } = new();
- }
- /// <summary>
- /// 时段信息(班次中的某个时段)
- /// </summary>
- public class TimeSection
- {
- /// <summary>时段ID</summary>
- public int time_id { get; set; }
- /// <summary>上班时间(秒)</summary>
- public int work_sec { get; set; }
- /// <summary>下班时间(秒)</summary>
- public int off_work_sec { get; set; }
- /// <summary>上班提醒时间(秒)</summary>
- public int remind_work_sec { get; set; }
- /// <summary>下班提醒时间(秒)</summary>
- public int remind_off_work_sec { get; set; }
- /// <summary>休息时间列表</summary>
- public List<RestTime> rest_times { get; set; } = new();
- /// <summary>最早休息开始时间(秒)</summary>
- public int rest_begin_time { get; set; }
- /// <summary>最早休息结束时间(秒)</summary>
- public int rest_end_time { get; set; }
- /// <summary>是否允许休息</summary>
- public bool allow_rest { get; set; }
- }
- /// <summary>
- /// 休息时段
- /// </summary>
- public class RestTime
- {
- /// <summary>休息开始时间(秒)</summary>
- public int rest_begin_time { get; set; }
- /// <summary>休息结束时间(秒)</summary>
- public int rest_end_time { get; set; }
- }
- /// <summary>
- /// 迟到规则(晚走次日可晚到)
- /// </summary>
- public class LateRule
- {
- /// <summary>是否允许超时下班后次日弹性上班</summary>
- public bool allow_offwork_after_time { get; set; }
- /// <summary>具体时间规则列表</summary>
- public List<TimeRule> timerules { get; set; } = new();
- }
- /// <summary>
- /// 时间规则(加班与次日弹性关系)
- /// </summary>
- public class TimeRule
- {
- /// <summary>晚走的时间(秒),即加班时长</summary>
- public int offwork_after_time { get; set; }
- /// <summary>第二天允许迟到的弹性时间(秒)</summary>
- public int onwork_flex_time { get; set; }
- }
- /// <summary>
- /// 汇报对象信息
- /// </summary>
- public class ReporterInfo
- {
- /// <summary>汇报对象列表</summary>
- public List<Reporter> reporters { get; set; } = new();
- /// <summary>汇报对象更新时间戳</summary>
- public int updatetime { get; set; }
- }
- /// <summary>
- /// 汇报人
- /// </summary>
- public class Reporter
- {
- /// <summary>汇报人userid</summary>
- public string userid { get; set; } = string.Empty;
- }
- /// <summary>
- /// 加班时长计算规则(基于打卡时间)
- /// </summary>
- public class OtCheckInfo
- {
- /// <summary>工作日加班开始时间(下班后经过此秒数才算加班)</summary>
- public int ot_workingday_time_start { get; set; }
- /// <summary>工作日最短加班时长(秒)</summary>
- public int ot_workingday_time_min { get; set; }
- /// <summary>工作日最长加班时长(秒)</summary>
- public int ot_workingday_time_max { get; set; }
- /// <summary>非工作日最短加班时长(秒)</summary>
- public int ot_nonworkingday_time_min { get; set; }
- /// <summary>非工作日最长加班时长(秒)</summary>
- public int ot_nonworkingday_time_max { get; set; }
- /// <summary>非工作日加班跨天时间(秒)</summary>
- public int ot_nonworkingday_spanday_time { get; set; }
- /// <summary>工作日加班休息扣除配置</summary>
- public RestConfig ot_workingday_restinfo { get; set; } = new();
- /// <summary>非工作日加班休息扣除配置</summary>
- public RestConfig ot_nonworkingday_restinfo { get; set; } = new();
- }
- /// <summary>
- /// 休息时间扣除配置(加班时长中扣除休息时间)
- /// </summary>
- public class RestConfig
- {
- /// <summary>扣除类型:0-不扣除;1-按固定时间扣除;2-按加班时长阶梯扣除</summary>
- public int type { get; set; }
- /// <summary>固定时间扣除规则(type=1时有效)</summary>
- public FixTimeRule fix_time_rule { get; set; } = new();
- /// <summary>阶梯扣除规则(type=2时有效)</summary>
- public CalOtTimeRule cal_ottime_rule { get; set; } = new();
- }
- /// <summary>
- /// 固定时间扣除规则
- /// </summary>
- public class FixTimeRule
- {
- /// <summary>固定休息开始时间(秒)</summary>
- public int fix_time_begin_sec { get; set; }
- /// <summary>固定休息结束时间(秒)</summary>
- public int fix_time_end_sec { get; set; }
- }
- /// <summary>
- /// 阶梯扣除规则(按加班时长扣除)
- /// </summary>
- public class CalOtTimeRule
- {
- /// <summary>扣除条件列表</summary>
- public List<OtTimeItem> items { get; set; } = new();
- }
- /// <summary>
- /// 加班时长扣除条件项
- /// </summary>
- public class OtTimeItem
- {
- /// <summary>加班满此秒数后触发扣除</summary>
- public int ot_time { get; set; }
- /// <summary>对应扣除的休息秒数</summary>
- public int rest_time { get; set; }
- }
- /// <summary>
- /// 加班规则V2(新版,结构更细化)
- /// </summary>
- public class OtInfoV2
- {
- /// <summary>工作日加班配置</summary>
- public WorkdayConf workdayconf { get; set; } = new();
- /// <summary>休息日加班配置</summary>
- public RestdayConf restdayconf { get; set; } = new();
- /// <summary>法定节假日加班配置</summary>
- public HolidayConf holidayconf { get; set; } = new();
- /// <summary>配置更新时间戳</summary>
- public int updatetime { get; set; }
- /// <summary>时间单位配置(如加班时长舍入规则)</summary>
- public TimeUnitConfig time_unit_config { get; set; } = new();
- }
- /// <summary>
- /// 工作日加班配置
- /// </summary>
- public class WorkdayConf
- {
- /// <summary>是否允许加班</summary>
- public bool allow_ot { get; set; }
- /// <summary>加班计算类型:2-以打卡时间为准(常见)</summary>
- public int type { get; set; }
- /// <summary>申请/打卡相关配置</summary>
- public ApplyInfo apply { get; set; } = new();
- /// <summary>是否启用加班转调休/加班费</summary>
- public bool ot_trans_enable { get; set; }
- /// <summary>转换类型:1-转调休;2-转加班费</summary>
- public int ot_trans_type { get; set; }
- /// <summary>假期转换配置(如转调休比例)</summary>
- public Vacation vacation { get; set; } = new();
- /// <summary>加班时长范围限制(秒)</summary>
- public int ot_time_range { get; set; }
- }
- /// <summary>
- /// 休息日加班配置(继承WorkdayConf)
- /// </summary>
- public class RestdayConf : WorkdayConf { }
- /// <summary>
- /// 法定节假日加班配置(继承WorkdayConf)
- /// </summary>
- public class HolidayConf : WorkdayConf { }
- /// <summary>
- /// 申请或打卡相关配置
- /// </summary>
- //public class ApplyInfo
- //{
- // /// <summary>休息扣除配置</summary>
- // public RestInfo restinfo { get; set; } = new();
- // /// <summary>加班开始时间(秒,用于指定从几点开始算加班)</summary>
- // public int ot_time_start { get; set; }
- //}
- /// <summary>
- /// 休息扣除信息(V2版本使用)
- /// </summary>
- public class RestInfo
- {
- /// <summary>休息扣除类型:0-不扣除;1-指定固定时段扣除</summary>
- public int type { get; set; }
- /// <summary>固定扣除时段列表</summary>
- public List<FixTimeRule> fix_time_rule_list { get; set; } = new();
- }
- ///// <summary>
- ///// 假期转换配置
- ///// </summary>
- //public class Vacation
- //{
- // /// <summary>转换比例(如100表示1小时加班转1小时调休)</summary>
- // public int trans_ratio { get; set; }
- // /// <summary>是否同步到假期余额</summary>
- // public bool sync_vacation { get; set; }
- //}
- /// <summary>
- /// 时间单位配置(加班时长舍入规则)
- /// </summary>
- public class TimeUnitConfig
- {
- /// <summary>加班时间单位:1-分钟;2-小时</summary>
- public int ot_time_unit { get; set; }
- /// <summary>每日最大加班时长(秒)</summary>
- public int perday_duration_secs { get; set; }
- /// <summary>舍入方式:1-向上舍入;2-向下舍入;3-四舍五入</summary>
- public int rounding_method { get; set; }
- /// <summary>舍入精度:如以30分钟为单位</summary>
- public int rounding_precision { get; set; }
- /// <summary>步长(秒),用于限制加班时长必须为此值的倍数</summary>
- public int step_size { get; set; }
- }
- /// <summary>
- /// 补卡提醒配置
- /// </summary>
- public class BukaRemind
- {
- /// <summary>是否开启补卡提醒</summary>
- public bool open_remind { get; set; }
- /// <summary>每月第几天提醒补卡(如1表示每月1日提醒)</summary>
- public int buka_remind_day { get; set; }
- /// <summary>每月提醒补卡的月份偏移(0-当月,1-次月)</summary>
- public int buka_remind_month { get; set; }
- }
- /// <summary>
- /// 大小周配置
- /// </summary>
- public class BiweeklyInfo
- {
- /// <summary>是否开启大小周</summary>
- public bool enable_weekday_recurrence { get; set; }
- /// <summary>奇数周工作日(0-6,0周日)</summary>
- public List<int> odd_workdays { get; set; } = new();
- /// <summary>偶数周工作日(0-6,0周日)</summary>
- public List<int> even_workdays { get; set; } = new();
- }
- #endregion
- #region 邮件相关
- public class EmailRequestDto
- {
- /// <summary>
- /// 收件人邮箱地址列表
- /// </summary>
- public List<string> ToEmails { get; set; }
- /// <summary>
- /// 抄送人邮箱地址列表
- /// </summary>
- public List<string> CcEmails { get; set; }
- /// <summary>
- /// 密送人邮箱地址列表
- /// </summary>
- public List<string> BccEmails { get; set; }
- /// <summary>
- /// 邮件主题
- /// </summary>
- public string Subject { get; set; }
- /// <summary>
- /// 邮件正文内容
- /// </summary>
- public string Body { get; set; }
- /// <summary>
- /// 附件列表
- /// </summary>
- public IFormFile[] Files { get; set; }
- }
- public class Attachment
- {
- /// <summary>
- /// 文件名
- /// </summary>
- public string file_name { get; set; }
- /// <summary>
- /// 文件内容(base64编码),所有附件加正文的大小不允许超过50M, 且附件个数不能超过200个
- /// </summary>
- public string content { get; set; }
- }
- #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 int Work_days { 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 // 设备异常
- }
- public class EmailResult
- {
- public int errcode { get; set; }
- public string errmsg { get; set; }
- }
- }
|