123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- using Google.Protobuf.WellKnownTypes;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection.Metadata.Ecma335;
- using System.Text;
- using System.Text.Json.Serialization;
- using System.Threading.Tasks;
- namespace OASystem.Domain.ViewModels.QiYeWeChat
- {
- /// <summary>
- /// 企业微信 审批 View
- /// </summary>
- public class ApprovalDataView : ResponseBase
- {
- /// <summary>
- /// 拉取的审批单个数,最大值为100,当total参数大于100时,可运用next_spnum参数进行多次拉取
- /// </summary>
- public int Count { get; set; }
- /// <summary>
- /// 时间段内的总审批单个数
- /// </summary>
- public int total { get; set; }
- /// <summary>
- /// 拉取列表的最后一个审批单号
- /// </summary>
- public long next_spnum { get; set; }
- /// <summary>
- /// 审批Data
- /// </summary>
- public List<Sp_Info>? data { get; set; }
- }
- /// <summary>
- /// 审批基本信息
- /// </summary>
- public class Sp_Info
- {
- /// <summary>
- /// 审批名称(请假,报销,自定义审批名称)
- /// </summary>
- public string? spname { get; set; }
- /// <summary>
- /// 申请人姓名
- /// </summary>
- public string? apply_name { get; set; }
- /// <summary>
- /// 申请人部门
- /// </summary>
- public string? apply_org { get; set; }
- /// <summary>
- /// 审批人姓名
- /// </summary>
- public List<string>? approval_name { get; set; }
- /// <summary>
- /// 抄送人姓名
- /// </summary>
- public List<string>? notify_name { get; set; }
- /// <summary>
- /// 审批状态:1审批中;2 已通过;3已驳回;4已取消;6通过后撤销;10已支付
- /// </summary>
- public int sp_status { get; set; }
- /// <summary>
- /// 审批单号
- /// </summary>
- public long sp_num { get; set; }
- /// <summary>
- /// 请假类型(只有请假模板审批记录有此数据项)
- /// </summary>
- public Leave? leave { get; set; }
- /// <summary>
- /// 审批模板信息
- /// </summary>
- public Comm? comm { get; set; }
- ///// <summary>
- ///// 补卡时间
- ///// 打卡补卡 筛选使用
- ///// </summary>
- //public DateTime? comm_applydata_dt
- //{
- // get
- // {
- // DateTime? dt = null;
- // if (comm == null) return dt;
- // if (comm.FillingDt != null)
- // {
- // dt = comm.FillingDt;
- // }
- // return dt;
- // }
- //}
- /// <summary>
- /// 审批的附件media_id,可使用media/get获取附件
- /// </summary>
- public List<string>? mediaids { get; set; }
- /// <summary>
- /// 审批单提交时间
- /// Unix时间戳
- /// </summary>
- public uint apply_time { get; set; }
- /// <summary>
- /// 审批单提交时间
- /// datetime
- /// </summary>
- public DateTime apply_time_dt
- {
- get
- {
- return new DateTime(long.Parse(apply_time.ToString()) * 10000000 + 621355968000000000L).ToLocalTime();
- }
- }
- /// <summary>
- /// 审批单提交者的userid
- /// </summary>
- public string? apply_user_id { get; set; }
- }
- /// <summary>
- /// 审批类型
- /// </summary>
- public class Leave
- {
- /// <summary>
- /// 请假时间单位:0半天;1小时
- /// </summary>
- public int timeunit { get; set; }
- /// <summary>
- /// 请假类型
- /// 1年假;2事假;3病假;4调休假;5婚假;6产假;7陪产假;8其他
- /// </summary>
- public int leave_type { get; set; }
- /// <summary>
- /// 请假开始时间,unix时间
- /// </summary>
- public uint start_time { get; set; }
- /// <summary>
- /// 请假开始时间,datetime时间
- /// </summary>
- public DateTime start_time_dt
- {
- get
- {
- return new DateTime(long.Parse(start_time.ToString()) * 10000000 + 621355968000000000L).ToLocalTime();
- }
- }
- /// <summary>
- /// 请假结束时间,unix时间
- /// </summary>
- public uint end_time { get; set; }
- /// <summary>
- /// 请假开始时间,datetime时间
- /// </summary>
- public DateTime end_time_dt
- {
- get
- {
- return new DateTime(long.Parse(end_time.ToString()) * 10000000 + 621355968000000000L).ToLocalTime();
- }
- }
- /// <summary>
- /// 请假时长,单位小时
- /// </summary>
- public int duration { get; set; }
- /// <summary>
- /// 请假事由
- /// </summary>
- public string? reason { get; set; }
- }
- /// <summary>
- /// 审批模板信息
- /// </summary>
- public class Comm
- {
- /// <summary>
- /// 模板数据
- /// </summary>
- public string? apply_data { get; set; }
- public List<ApplyInfo>? applydata
- {
- get
- {
- List<ApplyInfo> applyInfos = new List<ApplyInfo>();
- if (!string.IsNullOrEmpty(apply_data))
- {
- applyInfos = JsonConvert.DeserializeObject<List<ApplyInfo>>(apply_data);
- }
- return applyInfos;
- }
- }
- /// <summary>
- /// 补卡时间
- /// 筛选使用
- /// </summary>
- public DateTime? FillingDt {
- get
- {
- DateTime? dt = null;
- if (applydata != null && applydata.Count > 0)
- {
- ApplyInfo applyInfo = applydata.Where(it => it.id == "checkin-time").FirstOrDefault();
- if (applyInfo != null)
- {
- dt = applyInfo.valueDt;
- }
- }
- return dt;
- }
- }
- }
- /// <summary>
- ///
- /// </summary>
- public class ApplyInfo
- {
- public string? id { get; set; }
- public string? title { get; set; }
- public string? type { get; set; }
- public object? value { get; set; }
- public DateTime? valueDt
- {
- get
- {
- if (id == "checkin-time" && value != null)
- {
- long timeSpan = long.Parse(value.ToString()) / 1000;
- return new DateTime(timeSpan * 10000000 + 621355968000000000L).ToLocalTime();
- }
- return null;
- }
- }
- }
- }
|