diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryCrInput.cs new file mode 100644 index 0000000..d141813 --- /dev/null +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryCrInput.cs @@ -0,0 +1,70 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary +{ + /// + /// 考勤汇总创建输入 + /// + public class LqAttendanceSummaryCrInput + { + /// + /// 用户ID(员工ID) + /// + [Required(ErrorMessage = "用户ID不能为空")] + [Display(Name = "用户ID", Description = "员工ID")] + public string UserId { get; set; } + + /// + /// 年份 + /// + [Required(ErrorMessage = "年份不能为空")] + [Range(2020, 2030, ErrorMessage = "年份必须在2020-2030之间")] + [Display(Name = "年份", Description = "考勤年份")] + public int Year { get; set; } + + /// + /// 月份 + /// + [Required(ErrorMessage = "月份不能为空")] + [Range(1, 12, ErrorMessage = "月份必须在1-12之间")] + [Display(Name = "月份", Description = "考勤月份")] + public int Month { get; set; } + + /// + /// 员工状态(1-在职,2-离职,3-停薪留职) + /// + [Required(ErrorMessage = "员工状态不能为空")] + [Range(1, 3, ErrorMessage = "员工状态必须在1-3之间")] + [Display(Name = "员工状态", Description = "1-在职,2-离职,3-停薪留职")] + public int EmployeeStatus { get; set; } + + /// + /// 出勤天数 + /// + [Range(0, 31, ErrorMessage = "出勤天数必须在0-31之间")] + [Display(Name = "出勤天数", Description = "当月出勤天数")] + public decimal WorkDays { get; set; } + + /// + /// 请假天数 + /// + [Range(0, 31, ErrorMessage = "请假天数必须在0-31之间")] + [Display(Name = "请假天数", Description = "当月请假天数")] + public decimal LeaveDays { get; set; } + + /// + /// 休息天数 + /// + [Range(0, 31, ErrorMessage = "休息天数必须在0-31之间")] + [Display(Name = "休息天数", Description = "当月休息天数")] + public decimal RestDays { get; set; } + + /// + /// 备注 + /// + [StringLength(2000, ErrorMessage = "备注长度不能超过2000个字符")] + [Display(Name = "备注", Description = "考勤备注信息")] + public string Remark { get; set; } + } +} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryImportInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryImportInput.cs new file mode 100644 index 0000000..7cadd2d --- /dev/null +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryImportInput.cs @@ -0,0 +1,69 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary +{ + /// + /// 考勤汇总导入输入 + /// + public class LqAttendanceSummaryImportInput + { + /// + /// 员工姓名 + /// + [Required(ErrorMessage = "员工姓名不能为空")] + [Display(Name = "员工姓名", Description = "员工真实姓名")] + public string EmployeeName { get; set; } + + /// + /// 员工电话 + /// + [Required(ErrorMessage = "员工电话不能为空")] + [Display(Name = "员工电话", Description = "员工手机号码")] + public string EmployeePhone { get; set; } + + /// + /// 年份 + /// + [Required(ErrorMessage = "年份不能为空")] + [Range(2020, 2030, ErrorMessage = "年份必须在2020-2030之间")] + [Display(Name = "年份", Description = "考勤年份")] + public int Year { get; set; } + + /// + /// 月份 + /// + [Required(ErrorMessage = "月份不能为空")] + [Range(1, 12, ErrorMessage = "月份必须在1-12之间")] + [Display(Name = "月份", Description = "考勤月份")] + public int Month { get; set; } + + /// + /// 出勤天数 + /// + [Range(0, 31, ErrorMessage = "出勤天数必须在0-31之间")] + [Display(Name = "出勤天数", Description = "当月出勤天数")] + public decimal WorkDays { get; set; } + + /// + /// 请假天数 + /// + [Range(0, 31, ErrorMessage = "请假天数必须在0-31之间")] + [Display(Name = "请假天数", Description = "当月请假天数")] + public decimal LeaveDays { get; set; } + + /// + /// 休息天数 + /// + [Range(0, 31, ErrorMessage = "休息天数必须在0-31之间")] + [Display(Name = "休息天数", Description = "当月休息天数")] + public decimal RestDays { get; set; } + + /// + /// 备注 + /// + [StringLength(2000, ErrorMessage = "备注长度不能超过2000个字符")] + [Display(Name = "备注", Description = "考勤备注信息")] + public string Remark { get; set; } + } +} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryInfoOutput.cs new file mode 100644 index 0000000..908b717 --- /dev/null +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryInfoOutput.cs @@ -0,0 +1,119 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary +{ + /// + /// 考勤汇总详情输出 + /// + public class LqAttendanceSummaryInfoOutput + { + /// + /// 考勤汇总ID + /// + [Display(Name = "考勤汇总ID")] + public string id { get; set; } + + /// + /// 用户ID(员工ID) + /// + [Display(Name = "用户ID")] + public string userId { get; set; } + + /// + /// 员工姓名 + /// + [Display(Name = "员工姓名")] + public string userName { get; set; } + + /// + /// 年份 + /// + [Display(Name = "年份")] + public int year { get; set; } + + /// + /// 月份 + /// + [Display(Name = "月份")] + public int month { get; set; } + + /// + /// 员工状态 + /// + [Display(Name = "员工状态")] + public int employeeStatus { get; set; } + + /// + /// 员工状态名称 + /// + [Display(Name = "员工状态名称")] + public string employeeStatusName { get; set; } + + /// + /// 出勤天数 + /// + [Display(Name = "出勤天数")] + public decimal workDays { get; set; } + + /// + /// 请假天数 + /// + [Display(Name = "请假天数")] + public decimal leaveDays { get; set; } + + /// + /// 休息天数 + /// + [Display(Name = "休息天数")] + public decimal restDays { get; set; } + + /// + /// 备注 + /// + [Display(Name = "备注")] + public string remark { get; set; } + + /// + /// 创建人ID + /// + [Display(Name = "创建人ID")] + public string createUser { get; set; } + + /// + /// 创建人姓名 + /// + [Display(Name = "创建人姓名")] + public string createUserName { get; set; } + + /// + /// 创建时间 + /// + [Display(Name = "创建时间")] + public DateTime createTime { get; set; } + + /// + /// 更新人ID + /// + [Display(Name = "更新人ID")] + public string updateUser { get; set; } + + /// + /// 更新人姓名 + /// + [Display(Name = "更新人姓名")] + public string updateUserName { get; set; } + + /// + /// 更新时间 + /// + [Display(Name = "更新时间")] + public DateTime updateTime { get; set; } + + /// + /// 是否有效 + /// + [Display(Name = "是否有效")] + public int isEffective { get; set; } + } +} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryListOutput.cs new file mode 100644 index 0000000..eec5919 --- /dev/null +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryListOutput.cs @@ -0,0 +1,119 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary +{ + /// + /// 考勤汇总列表输出 + /// + public class LqAttendanceSummaryListOutput + { + /// + /// 考勤汇总ID + /// + [Display(Name = "考勤汇总ID")] + public string id { get; set; } + + /// + /// 用户ID(员工ID) + /// + [Display(Name = "用户ID")] + public string userId { get; set; } + + /// + /// 员工姓名 + /// + [Display(Name = "员工姓名")] + public string userName { get; set; } + + /// + /// 年份 + /// + [Display(Name = "年份")] + public int year { get; set; } + + /// + /// 月份 + /// + [Display(Name = "月份")] + public int month { get; set; } + + /// + /// 员工状态 + /// + [Display(Name = "员工状态")] + public int employeeStatus { get; set; } + + // /// + // /// 员工状态名称 + // /// + // [Display(Name = "员工状态名称")] + // public string employeeStatusName { get; set; } + + /// + /// 出勤天数 + /// + [Display(Name = "出勤天数")] + public decimal workDays { get; set; } + + /// + /// 请假天数 + /// + [Display(Name = "请假天数")] + public decimal leaveDays { get; set; } + + /// + /// 休息天数 + /// + [Display(Name = "休息天数")] + public decimal restDays { get; set; } + + /// + /// 备注 + /// + [Display(Name = "备注")] + public string remark { get; set; } + + /// + /// 创建人ID + /// + [Display(Name = "创建人ID")] + public string createUser { get; set; } + + /// + /// 创建人姓名 + /// + [Display(Name = "创建人姓名")] + public string createUserName { get; set; } + + /// + /// 创建时间 + /// + [Display(Name = "创建时间")] + public DateTime createTime { get; set; } + + /// + /// 更新人ID + /// + [Display(Name = "更新人ID")] + public string updateUser { get; set; } + + /// + /// 更新人姓名 + /// + [Display(Name = "更新人姓名")] + public string updateUserName { get; set; } + + /// + /// 更新时间 + /// + [Display(Name = "更新时间")] + public DateTime updateTime { get; set; } + + /// + /// 是否有效 + /// + [Display(Name = "是否有效")] + public int isEffective { get; set; } + } +} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryListQueryInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryListQueryInput.cs new file mode 100644 index 0000000..6252576 --- /dev/null +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryListQueryInput.cs @@ -0,0 +1,48 @@ +using NCC.Common.Filter; +using System; +using System.ComponentModel.DataAnnotations; + +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary +{ + /// + /// 考勤汇总列表查询输入 + /// + public class LqAttendanceSummaryListQueryInput : PageInputBase + { + /// + /// 用户ID(员工ID) + /// + [Display(Name = "用户ID", Description = "根据员工ID筛选")] + public string UserId { get; set; } + + /// + /// 年份 + /// + [Display(Name = "年份", Description = "根据年份筛选")] + public int? Year { get; set; } + + /// + /// 月份 + /// + [Display(Name = "月份", Description = "根据月份筛选")] + public int? Month { get; set; } + + /// + /// 员工状态 + /// + [Display(Name = "员工状态", Description = "根据员工状态筛选")] + public int? EmployeeStatus { get; set; } + + /// + /// 开始时间 + /// + [Display(Name = "开始时间", Description = "创建时间的开始范围")] + public DateTime? StartTime { get; set; } + + /// + /// 结束时间 + /// + [Display(Name = "结束时间", Description = "创建时间的结束范围")] + public DateTime? EndTime { get; set; } + } +} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryUpInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryUpInput.cs new file mode 100644 index 0000000..db77d44 --- /dev/null +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryUpInput.cs @@ -0,0 +1,18 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary +{ + /// + /// 考勤汇总更新输入 + /// + public class LqAttendanceSummaryUpInput : LqAttendanceSummaryCrInput + { + /// + /// 考勤汇总ID + /// + [Required(ErrorMessage = "考勤汇总ID不能为空")] + [Display(Name = "考勤汇总ID", Description = "要更新的考勤汇总记录ID")] + public new string id { get; set; } + } +} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdJksyj/LqKdJksyjInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdJksyj/LqKdJksyjInfoOutput.cs index 01a8c93..619c889 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdJksyj/LqKdJksyjInfoOutput.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdJksyj/LqKdJksyjInfoOutput.cs @@ -56,6 +56,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb /// /// 是否有效 /// - public int IsEffective { get; set; } + public int isEffective { get; set; } } } diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbInfoOutput.cs index f4df48c..8fd8d40 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbInfoOutput.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbInfoOutput.cs @@ -134,33 +134,33 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb /// /// 方案其他 /// - public string F_FIleUrl { get; set; } + public string fileUrl { get; set; } /// /// 是否有效 /// - public int IsEffective { get; set; } + public int isEffective { get; set; } /// /// 补缴开单ID /// - public string SupplementBillingId { get; set; } + public string supplementBillingId { get; set; } /// /// 补缴金额 /// - public decimal SupplementAmount { get; set; } + public decimal supplementAmount { get; set; } /// /// 已缴欠款 /// - public decimal PaidDebt { get; set; } + public decimal paidDebt { get; set; } /// /// 作废关联备注 /// - public string CancelRefRemarks { get; set; } + public string cancelRefRemarks { get; set; } /// /// 健康师业绩 diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs index a934992..c876f90 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs @@ -56,7 +56,7 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb /// /// 已缴欠款 /// - public decimal PaidDebt { get; set; } + public decimal paidDebt { get; set; } /// /// 储扣方式 @@ -126,22 +126,37 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb /// /// 方案其他 /// - public string F_FIleUrl { get; set; } + public string fileUrl { get; set; } /// /// 是否有效 /// - public int IsEffective { get; set; } + public int isEffective { get; set; } /// /// 开单用户 /// - public string CreateUser { get; set; } + public string createUser { get; set; } + + /// + /// 作废备注 + /// + public string cancelRefRemarks { get; set; } + + + /// + /// 补缴开单ID + /// + public string supplementBillingId { get; set; } + /// + /// 补缴金额 + /// + public decimal supplementAmount { get; set; } /// /// 开单用户名称 /// - public string CreateUserName { get; set; } + public string createUserName { get; set; } /// /// 开单品项明细列表 diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKjbsyj/LqKdKjbsyjInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKjbsyj/LqKdKjbsyjInfoOutput.cs index 62fb5d1..d2a303f 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKjbsyj/LqKdKjbsyjInfoOutput.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKjbsyj/LqKdKjbsyjInfoOutput.cs @@ -51,6 +51,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb /// /// 是否有效 /// - public int IsEffective { get; set; } + public int isEffective { get; set; } } } diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbCrInput.cs deleted file mode 100644 index 1d88405..0000000 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbCrInput.cs +++ /dev/null @@ -1,242 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace NCC.Extend.Entitys.Dto.LqKqhzb -{ - /// - /// 考勤汇总表修改输入参数 - /// - public class LqKqhzbCrInput - { - /// - /// 考勤编号 - /// - public string id { get; set; } - - /// - /// 门店编号 - /// - public string mdbh { get; set; } - - /// - /// 门店名称 - /// - public string mdmc { get; set; } - - /// - /// 职位 - /// - public string zw { get; set; } - - /// - /// 岗位分类1 - /// - public string gwfl1 { get; set; } - - /// - /// 员工编号 - /// - public string ygbh { get; set; } - - /// - /// 姓名 - /// - public string xm { get; set; } - - /// - /// 在职情况 - /// - public string zzqk { get; set; } - - /// - /// 岗位分类2 - /// - public string gwfl2 { get; set; } - - /// - /// 发放月份 - /// - public string ffyf { get; set; } - - /// - /// 在岗天数 - /// - public string zgts { get; set; } - - /// - /// 当月标准休息天数 - /// - public string dybzxxts { get; set; } - - /// - /// 实际休息天数 - /// - public string sjxxts { get; set; } - - /// - /// 休息 - /// - public string xx { get; set; } - - /// - /// 请假 - /// - public string qj { get; set; } - - /// - /// 福利假 - /// - public string flj { get; set; } - - /// - /// 丧假 - /// - public string sj { get; set; } - - /// - /// 年假 - /// - public string nj { get; set; } - - /// - /// 出勤 - /// - public string cq { get; set; } - - /// - /// 出勤加休息 - /// - public string cqjxx { get; set; } - - /// - /// 应休 - /// - public string yx { get; set; } - - /// - /// 不扣天数 - /// - public string bkts { get; set; } - - /// - /// 调减休息 - /// - public string tjxx { get; set; } - - /// - /// 实际请假 - /// - public string sjqj { get; set; } - - /// - /// 少休天数 - /// - public string sxts { get; set; } - - /// - /// 少休补贴 - /// - public string sxbt { get; set; } - - /// - /// 缺卡 - /// - public string qk { get; set; } - - /// - /// 迟到 - /// - public string cd { get; set; } - - /// - /// 全勤 - /// - public string qq { get; set; } - - /// - /// 交通补助 - /// - public string jtbz { get; set; } - - /// - /// 学习期扣款 - /// - public string xxqkk { get; set; } - - /// - /// 住宿 - /// - public string zs { get; set; } - - /// - /// 工作服 - /// - public string gzf { get; set; } - - /// - /// 手机押金 - /// - public string sjyj { get; set; } - - /// - /// 宿舍押金 - /// - public string ssyj { get; set; } - - /// - /// 其他奖励 - /// - public string qtjl { get; set; } - - /// - /// 保底已核算金额 - /// - public string bdyhsje { get; set; } - - /// - /// 当月培训 - /// - public string dypx { get; set; } - - /// - /// 当月交通补贴 - /// - public string dyjtbt { get; set; } - - /// - /// 应发上月 - /// - public string yfsy { get; set; } - - /// - /// 应发次月 - /// - public string yfcy { get; set; } - - /// - /// 在店天数 - /// - public string zdts { get; set; } - - /// - /// 跨月天数 - /// - public string kyts { get; set; } - - /// - /// 上月工资有 - /// - public string sygzy { get; set; } - - /// - /// 当月在店加正常休天数 - /// - public string dyzdjzcxts { get; set; } - - /// - /// 当月是否核算 - /// - public string dysfhs { get; set; } - - } -} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbInfoOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbInfoOutput.cs deleted file mode 100644 index 9340f26..0000000 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbInfoOutput.cs +++ /dev/null @@ -1,242 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace NCC.Extend.Entitys.Dto.LqKqhzb -{ - /// - /// 考勤汇总表输出参数 - /// - public class LqKqhzbInfoOutput - { - /// - /// 考勤编号 - /// - public string id { get; set; } - - /// - /// 门店编号 - /// - public string mdbh { get; set; } - - /// - /// 门店名称 - /// - public string mdmc { get; set; } - - /// - /// 职位 - /// - public string zw { get; set; } - - /// - /// 岗位分类1 - /// - public string gwfl1 { get; set; } - - /// - /// 员工编号 - /// - public string ygbh { get; set; } - - /// - /// 姓名 - /// - public string xm { get; set; } - - /// - /// 在职情况 - /// - public string zzqk { get; set; } - - /// - /// 岗位分类2 - /// - public string gwfl2 { get; set; } - - /// - /// 发放月份 - /// - public string ffyf { get; set; } - - /// - /// 在岗天数 - /// - public string zgts { get; set; } - - /// - /// 当月标准休息天数 - /// - public string dybzxxts { get; set; } - - /// - /// 实际休息天数 - /// - public string sjxxts { get; set; } - - /// - /// 休息 - /// - public string xx { get; set; } - - /// - /// 请假 - /// - public string qj { get; set; } - - /// - /// 福利假 - /// - public string flj { get; set; } - - /// - /// 丧假 - /// - public string sj { get; set; } - - /// - /// 年假 - /// - public string nj { get; set; } - - /// - /// 出勤 - /// - public string cq { get; set; } - - /// - /// 出勤加休息 - /// - public string cqjxx { get; set; } - - /// - /// 应休 - /// - public string yx { get; set; } - - /// - /// 不扣天数 - /// - public string bkts { get; set; } - - /// - /// 调减休息 - /// - public string tjxx { get; set; } - - /// - /// 实际请假 - /// - public string sjqj { get; set; } - - /// - /// 少休天数 - /// - public string sxts { get; set; } - - /// - /// 少休补贴 - /// - public string sxbt { get; set; } - - /// - /// 缺卡 - /// - public string qk { get; set; } - - /// - /// 迟到 - /// - public string cd { get; set; } - - /// - /// 全勤 - /// - public string qq { get; set; } - - /// - /// 交通补助 - /// - public string jtbz { get; set; } - - /// - /// 学习期扣款 - /// - public string xxqkk { get; set; } - - /// - /// 住宿 - /// - public string zs { get; set; } - - /// - /// 工作服 - /// - public string gzf { get; set; } - - /// - /// 手机押金 - /// - public string sjyj { get; set; } - - /// - /// 宿舍押金 - /// - public string ssyj { get; set; } - - /// - /// 其他奖励 - /// - public string qtjl { get; set; } - - /// - /// 保底已核算金额 - /// - public string bdyhsje { get; set; } - - /// - /// 当月培训 - /// - public string dypx { get; set; } - - /// - /// 当月交通补贴 - /// - public string dyjtbt { get; set; } - - /// - /// 应发上月 - /// - public string yfsy { get; set; } - - /// - /// 应发次月 - /// - public string yfcy { get; set; } - - /// - /// 在店天数 - /// - public string zdts { get; set; } - - /// - /// 跨月天数 - /// - public string kyts { get; set; } - - /// - /// 上月工资有 - /// - public string sygzy { get; set; } - - /// - /// 当月在店加正常休天数 - /// - public string dyzdjzcxts { get; set; } - - /// - /// 当月是否核算 - /// - public string dysfhs { get; set; } - - } -} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbListOutput.cs deleted file mode 100644 index ce4b263..0000000 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbListOutput.cs +++ /dev/null @@ -1,241 +0,0 @@ -using System; - -namespace NCC.Extend.Entitys.Dto.LqKqhzb -{ - /// - /// 考勤汇总表输入参数 - /// - public class LqKqhzbListOutput - { - /// - /// 考勤编号 - /// - public string id { get; set; } - - /// - /// 门店编号 - /// - public string mdbh { get; set; } - - /// - /// 门店名称 - /// - public string mdmc { get; set; } - - /// - /// 职位 - /// - public string zw { get; set; } - - /// - /// 岗位分类1 - /// - public string gwfl1 { get; set; } - - /// - /// 员工编号 - /// - public string ygbh { get; set; } - - /// - /// 姓名 - /// - public string xm { get; set; } - - /// - /// 在职情况 - /// - public string zzqk { get; set; } - - /// - /// 岗位分类2 - /// - public string gwfl2 { get; set; } - - /// - /// 发放月份 - /// - public string ffyf { get; set; } - - /// - /// 在岗天数 - /// - public string zgts { get; set; } - - /// - /// 当月标准休息天数 - /// - public string dybzxxts { get; set; } - - /// - /// 实际休息天数 - /// - public string sjxxts { get; set; } - - /// - /// 休息 - /// - public string xx { get; set; } - - /// - /// 请假 - /// - public string qj { get; set; } - - /// - /// 福利假 - /// - public string flj { get; set; } - - /// - /// 丧假 - /// - public string sj { get; set; } - - /// - /// 年假 - /// - public string nj { get; set; } - - /// - /// 出勤 - /// - public string cq { get; set; } - - /// - /// 出勤加休息 - /// - public string cqjxx { get; set; } - - /// - /// 应休 - /// - public string yx { get; set; } - - /// - /// 不扣天数 - /// - public string bkts { get; set; } - - /// - /// 调减休息 - /// - public string tjxx { get; set; } - - /// - /// 实际请假 - /// - public string sjqj { get; set; } - - /// - /// 少休天数 - /// - public string sxts { get; set; } - - /// - /// 少休补贴 - /// - public string sxbt { get; set; } - - /// - /// 缺卡 - /// - public string qk { get; set; } - - /// - /// 迟到 - /// - public string cd { get; set; } - - /// - /// 全勤 - /// - public string qq { get; set; } - - /// - /// 交通补助 - /// - public string jtbz { get; set; } - - /// - /// 学习期扣款 - /// - public string xxqkk { get; set; } - - /// - /// 住宿 - /// - public string zs { get; set; } - - /// - /// 工作服 - /// - public string gzf { get; set; } - - /// - /// 手机押金 - /// - public string sjyj { get; set; } - - /// - /// 宿舍押金 - /// - public string ssyj { get; set; } - - /// - /// 其他奖励 - /// - public string qtjl { get; set; } - - /// - /// 保底已核算金额 - /// - public string bdyhsje { get; set; } - - /// - /// 当月培训 - /// - public string dypx { get; set; } - - /// - /// 当月交通补贴 - /// - public string dyjtbt { get; set; } - - /// - /// 应发上月 - /// - public string yfsy { get; set; } - - /// - /// 应发次月 - /// - public string yfcy { get; set; } - - /// - /// 在店天数 - /// - public string zdts { get; set; } - - /// - /// 跨月天数 - /// - public string kyts { get; set; } - - /// - /// 上月工资有 - /// - public string sygzy { get; set; } - - /// - /// 当月在店加正常休天数 - /// - public string dyzdjzcxts { get; set; } - - /// - /// 当月是否核算 - /// - public string dysfhs { get; set; } - - } -} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbListQueryInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbListQueryInput.cs deleted file mode 100644 index 63e4614..0000000 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbListQueryInput.cs +++ /dev/null @@ -1,253 +0,0 @@ -using NCC.Common.Filter; -using System.Collections.Generic; - -namespace NCC.Extend.Entitys.Dto.LqKqhzb -{ - /// - /// 考勤汇总表列表查询输入 - /// - public class LqKqhzbListQueryInput : PageInputBase - { - /// - /// 选择导出数据key - /// - public string selectKey { get; set; } - - /// - /// - /// - public int dataType { get; set; } - - - /// - /// 考勤编号 - /// - public string id { get; set; } - - /// - /// 门店编号 - /// - public string mdbh { get; set; } - - /// - /// 门店名称 - /// - public string mdmc { get; set; } - - /// - /// 职位 - /// - public string zw { get; set; } - - /// - /// 岗位分类1 - /// - public string gwfl1 { get; set; } - - /// - /// 员工编号 - /// - public string ygbh { get; set; } - - /// - /// 姓名 - /// - public string xm { get; set; } - - /// - /// 在职情况 - /// - public string zzqk { get; set; } - - /// - /// 岗位分类2 - /// - public string gwfl2 { get; set; } - - /// - /// 发放月份 - /// - public string ffyf { get; set; } - - /// - /// 在岗天数 - /// - public string zgts { get; set; } - - /// - /// 当月标准休息天数 - /// - public string dybzxxts { get; set; } - - /// - /// 实际休息天数 - /// - public string sjxxts { get; set; } - - /// - /// 休息 - /// - public string xx { get; set; } - - /// - /// 请假 - /// - public string qj { get; set; } - - /// - /// 福利假 - /// - public string flj { get; set; } - - /// - /// 丧假 - /// - public string sj { get; set; } - - /// - /// 年假 - /// - public string nj { get; set; } - - /// - /// 出勤 - /// - public string cq { get; set; } - - /// - /// 出勤加休息 - /// - public string cqjxx { get; set; } - - /// - /// 应休 - /// - public string yx { get; set; } - - /// - /// 不扣天数 - /// - public string bkts { get; set; } - - /// - /// 调减休息 - /// - public string tjxx { get; set; } - - /// - /// 实际请假 - /// - public string sjqj { get; set; } - - /// - /// 少休天数 - /// - public string sxts { get; set; } - - /// - /// 少休补贴 - /// - public string sxbt { get; set; } - - /// - /// 缺卡 - /// - public string qk { get; set; } - - /// - /// 迟到 - /// - public string cd { get; set; } - - /// - /// 全勤 - /// - public string qq { get; set; } - - /// - /// 交通补助 - /// - public string jtbz { get; set; } - - /// - /// 学习期扣款 - /// - public string xxqkk { get; set; } - - /// - /// 住宿 - /// - public string zs { get; set; } - - /// - /// 工作服 - /// - public string gzf { get; set; } - - /// - /// 手机押金 - /// - public string sjyj { get; set; } - - /// - /// 宿舍押金 - /// - public string ssyj { get; set; } - - /// - /// 其他奖励 - /// - public string qtjl { get; set; } - - /// - /// 保底已核算金额 - /// - public string bdyhsje { get; set; } - - /// - /// 当月培训 - /// - public string dypx { get; set; } - - /// - /// 当月交通补贴 - /// - public string dyjtbt { get; set; } - - /// - /// 应发上月 - /// - public string yfsy { get; set; } - - /// - /// 应发次月 - /// - public string yfcy { get; set; } - - /// - /// 在店天数 - /// - public string zdts { get; set; } - - /// - /// 跨月天数 - /// - public string kyts { get; set; } - - /// - /// 上月工资有 - /// - public string sygzy { get; set; } - - /// - /// 当月在店加正常休天数 - /// - public string dyzdjzcxts { get; set; } - - /// - /// 当月是否核算 - /// - public string dysfhs { get; set; } - - } -} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbUpInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbUpInput.cs deleted file mode 100644 index 2e74b40..0000000 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbUpInput.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace NCC.Extend.Entitys.Dto.LqKqhzb -{ - /// - /// 考勤汇总表更新输入参数 - /// - public class LqKqhzbUpInput : LqKqhzbCrInput - { - /// - /// 考勤编号 - /// - public string id { get; set; } - - } -} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlCrInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlCrInput.cs index 81fb550..c0041db 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlCrInput.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlCrInput.cs @@ -12,97 +12,97 @@ namespace NCC.Extend.Entitys.Dto.LqXmzl /// 主键 /// public string id { get; set; } - + /// /// 项目编号 /// public string xmbh { get; set; } - + /// /// 项目名称 /// public string xmmc { get; set; } - + /// /// 标准价格 /// public decimal bzjg { get; set; } - + /// /// 项目时长(分钟) /// public int? xmsc { get; set; } - + /// /// 基础服务提成 /// public decimal jcfwtc { get; set; } - + /// /// 分类①-汇总表 /// public string fl1 { get; set; } - + /// /// 分类②-汇总表 /// public string fl2 { get; set; } - + /// /// 分类③-工资用 /// public string fl3 { get; set; } - + /// /// 分类④-统计品项用 /// public string fl4 { get; set; } - + /// /// 统计类别 /// public string tjlb { get; set; } - + /// /// 折扣类别 /// public string zklb { get; set; } - + /// /// 分类 /// public string fl { get; set; } - + /// /// 其它1 /// public string qt1 { get; set; } - + /// /// 其它2 /// public string qt2 { get; set; } - + /// /// 溯源金额 /// public decimal? syje { get; set; } - + /// /// Cell金额 /// public decimal? cellje { get; set; } - + /// /// 手工费 /// public decimal? sgf { get; set; } - + /// /// 项目次数 /// public int? projectNumber { get; set; } - + /// /// 来源类型 /// diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/README.md b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/README.md index a720be2..4a6bc52 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/README.md +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/README.md @@ -58,7 +58,7 @@ - `lq_jlmxb/` - 奖励明细表 - `lq_jsfa/` - 总经理经理核算方案 - `lq_khxx/` - 客户信息 -- `lq_kqhzb/` - 考勤汇总表 +- (已删除) `lq_kqhzb/` - 考勤汇总表 - `lq_lssj/` - 历史数据 - `lq_sbtjb/` - 社保统计表 - `lq_skzh/` - 收款账号 diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_attendance_summary/LqAttendanceSummaryEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_attendance_summary/LqAttendanceSummaryEntity.cs new file mode 100644 index 0000000..2285c33 --- /dev/null +++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_attendance_summary/LqAttendanceSummaryEntity.cs @@ -0,0 +1,97 @@ +using SqlSugar; +using System; +using NCC.Common.Enum; + +namespace NCC.Extend.Entitys.lq_attendance_summary +{ + /// + /// 考勤汇总表 + /// + [SugarTable("lq_attendance_summary")] + public class LqAttendanceSummaryEntity + { + /// + /// 考勤汇总ID + /// + [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] + public string Id { get; set; } + + /// + /// 用户ID(员工ID) + /// + [SugarColumn(ColumnName = "F_UserId")] + public string UserId { get; set; } + + /// + /// 年份 + /// + [SugarColumn(ColumnName = "F_Year")] + public int Year { get; set; } + + /// + /// 月份 + /// + [SugarColumn(ColumnName = "F_Month")] + public int Month { get; set; } + + /// + /// 员工状态(1-在职,2-离职,3-停薪留职) + /// + [SugarColumn(ColumnName = "F_EmployeeStatus")] + public int EmployeeStatus { get; set; } + + /// + /// 出勤天数 + /// + [SugarColumn(ColumnName = "F_WorkDays", ColumnDataType = "decimal(5,2)")] + public decimal WorkDays { get; set; } + + /// + /// 请假天数 + /// + [SugarColumn(ColumnName = "F_LeaveDays", ColumnDataType = "decimal(5,2)")] + public decimal LeaveDays { get; set; } + + /// + /// 休息天数 + /// + [SugarColumn(ColumnName = "F_RestDays", ColumnDataType = "decimal(5,2)")] + public decimal RestDays { get; set; } + + /// + /// 备注 + /// + [SugarColumn(ColumnName = "F_Remark", ColumnDataType = "varchar(2000)")] + public string Remark { get; set; } + + /// + /// 创建人ID + /// + [SugarColumn(ColumnName = "F_CreateUser")] + public string CreateUser { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "F_CreateTime")] + public DateTime CreateTime { get; set; } + + /// + /// 更新人ID + /// + [SugarColumn(ColumnName = "F_UpdateUser")] + public string UpdateUser { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "F_UpdateTime")] + public DateTime UpdateTime { get; set; } + + /// + /// 是否有效(1-有效,-1-无效) + /// + [SugarColumn(ColumnName = "F_IsEffective")] + public int IsEffective { get; set; } + } +} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kqhzb/LqKqhzbEntity.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kqhzb/LqKqhzbEntity.cs deleted file mode 100644 index 63c9409..0000000 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kqhzb/LqKqhzbEntity.cs +++ /dev/null @@ -1,291 +0,0 @@ -using NCC.Common.Const; -using SqlSugar; -using System; - -namespace NCC.Extend.Entitys.lq_kqhzb -{ - /// - /// 考勤汇总表 - /// - [SugarTable("lq_kqhzb")] - [Tenant(ClaimConst.TENANT_ID)] - public class LqKqhzbEntity - { - /// - /// 考勤编号 - /// - [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] - public string Id { get; set; } - - /// - /// 门店编号 - /// - [SugarColumn(ColumnName = "mdbh")] - public string Mdbh { get; set; } - - /// - /// 门店名称 - /// - [SugarColumn(ColumnName = "mdmc")] - public string Mdmc { get; set; } - - /// - /// 职位 - /// - [SugarColumn(ColumnName = "zw")] - public string Zw { get; set; } - - /// - /// 岗位分类1 - /// - [SugarColumn(ColumnName = "gwfl1")] - public string Gwfl1 { get; set; } - - /// - /// 员工编号 - /// - [SugarColumn(ColumnName = "ygbh")] - public string Ygbh { get; set; } - - /// - /// 姓名 - /// - [SugarColumn(ColumnName = "xm")] - public string Xm { get; set; } - - /// - /// 在职情况 - /// - [SugarColumn(ColumnName = "zzqk")] - public string Zzqk { get; set; } - - /// - /// 岗位分类2 - /// - [SugarColumn(ColumnName = "gwfl2")] - public string Gwfl2 { get; set; } - - /// - /// 发放月份 - /// - [SugarColumn(ColumnName = "ffyf")] - public string Ffyf { get; set; } - - /// - /// 在岗天数 - /// - [SugarColumn(ColumnName = "zgts")] - public string Zgts { get; set; } - - /// - /// 当月标准休息天数 - /// - [SugarColumn(ColumnName = "dybzxxts")] - public string Dybzxxts { get; set; } - - /// - /// 实际休息天数 - /// - [SugarColumn(ColumnName = "sjxxts")] - public string Sjxxts { get; set; } - - /// - /// 休息 - /// - [SugarColumn(ColumnName = "xx")] - public string Xx { get; set; } - - /// - /// 请假 - /// - [SugarColumn(ColumnName = "qj")] - public string Qj { get; set; } - - /// - /// 福利假 - /// - [SugarColumn(ColumnName = "flj")] - public string Flj { get; set; } - - /// - /// 丧假 - /// - [SugarColumn(ColumnName = "sj")] - public string Sj { get; set; } - - /// - /// 年假 - /// - [SugarColumn(ColumnName = "nj")] - public string Nj { get; set; } - - /// - /// 出勤 - /// - [SugarColumn(ColumnName = "cq")] - public string Cq { get; set; } - - /// - /// 出勤加休息 - /// - [SugarColumn(ColumnName = "cqjxx")] - public string Cqjxx { get; set; } - - /// - /// 应休 - /// - [SugarColumn(ColumnName = "yx")] - public string Yx { get; set; } - - /// - /// 不扣天数 - /// - [SugarColumn(ColumnName = "bkts")] - public string Bkts { get; set; } - - /// - /// 调减休息 - /// - [SugarColumn(ColumnName = "tjxx")] - public string Tjxx { get; set; } - - /// - /// 实际请假 - /// - [SugarColumn(ColumnName = "sjqj")] - public string Sjqj { get; set; } - - /// - /// 少休天数 - /// - [SugarColumn(ColumnName = "sxts")] - public string Sxts { get; set; } - - /// - /// 少休补贴 - /// - [SugarColumn(ColumnName = "sxbt")] - public string Sxbt { get; set; } - - /// - /// 缺卡 - /// - [SugarColumn(ColumnName = "qk")] - public string Qk { get; set; } - - /// - /// 迟到 - /// - [SugarColumn(ColumnName = "cd")] - public string Cd { get; set; } - - /// - /// 全勤 - /// - [SugarColumn(ColumnName = "qq")] - public string Qq { get; set; } - - /// - /// 交通补助 - /// - [SugarColumn(ColumnName = "jtbz")] - public string Jtbz { get; set; } - - /// - /// 学习期扣款 - /// - [SugarColumn(ColumnName = "xxqkk")] - public string Xxqkk { get; set; } - - /// - /// 住宿 - /// - [SugarColumn(ColumnName = "zs")] - public string Zs { get; set; } - - /// - /// 工作服 - /// - [SugarColumn(ColumnName = "gzf")] - public string Gzf { get; set; } - - /// - /// 手机押金 - /// - [SugarColumn(ColumnName = "sjyj")] - public string Sjyj { get; set; } - - /// - /// 宿舍押金 - /// - [SugarColumn(ColumnName = "ssyj")] - public string Ssyj { get; set; } - - /// - /// 其他奖励 - /// - [SugarColumn(ColumnName = "qtjl")] - public string Qtjl { get; set; } - - /// - /// 保底已核算金额 - /// - [SugarColumn(ColumnName = "bdyhsje")] - public string Bdyhsje { get; set; } - - /// - /// 当月培训 - /// - [SugarColumn(ColumnName = "dypx")] - public string Dypx { get; set; } - - /// - /// 当月交通补贴 - /// - [SugarColumn(ColumnName = "dyjtbt")] - public string Dyjtbt { get; set; } - - /// - /// 应发上月 - /// - [SugarColumn(ColumnName = "yfsy")] - public string Yfsy { get; set; } - - /// - /// 应发次月 - /// - [SugarColumn(ColumnName = "yfcy")] - public string Yfcy { get; set; } - - /// - /// 在店天数 - /// - [SugarColumn(ColumnName = "zdts")] - public string Zdts { get; set; } - - /// - /// 跨月天数 - /// - [SugarColumn(ColumnName = "kyts")] - public string Kyts { get; set; } - - /// - /// 上月工资有 - /// - [SugarColumn(ColumnName = "sygzy")] - public string Sygzy { get; set; } - - /// - /// 当月在店加正常休天数 - /// - [SugarColumn(ColumnName = "dyzdjzcxts")] - public string Dyzdjzcxts { get; set; } - - /// - /// 当月是否核算 - /// - [SugarColumn(ColumnName = "dysfhs")] - public string Dysfhs { get; set; } - - } -} \ No newline at end of file diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Mapper/LqKqhzbMapper.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Mapper/LqKqhzbMapper.cs deleted file mode 100644 index 170ed91..0000000 --- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Mapper/LqKqhzbMapper.cs +++ /dev/null @@ -1,14 +0,0 @@ -using NCC.Common.Helper; -using NCC.Extend.Entitys.Dto.LqKqhzb; -using Mapster; -using System.Collections.Generic; - -namespace NCC.Extend.Entitys.Mapper.LqKqhzb -{ - public class Mapper : IRegister - { - public void Register(TypeAdapterConfig config) - { - } - } -} diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Interfaces/ILqKqhzbService.cs b/netcore/src/Modularity/Extend/NCC.Extend.Interfaces/ILqKqhzbService.cs deleted file mode 100644 index d808e5b..0000000 --- a/netcore/src/Modularity/Extend/NCC.Extend.Interfaces/ILqKqhzbService.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace NCC.Extend.Interfaces.LqKqhzb -{ - public interface ILqKqhzbService - { - } -} \ No newline at end of file diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Interfaces/LqAttendanceSummary/ILqAttendanceSummaryService.cs b/netcore/src/Modularity/Extend/NCC.Extend.Interfaces/LqAttendanceSummary/ILqAttendanceSummaryService.cs new file mode 100644 index 0000000..0495d43 --- /dev/null +++ b/netcore/src/Modularity/Extend/NCC.Extend.Interfaces/LqAttendanceSummary/ILqAttendanceSummaryService.cs @@ -0,0 +1,15 @@ +using Microsoft.AspNetCore.Http; +using NCC.Dependency; +using NCC.Extend.Entitys.Dto.LqAttendanceSummary; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace NCC.Extend.Interfaces.LqAttendanceSummary +{ + /// + /// 考勤汇总服务接口 + /// + public interface ILqAttendanceSummaryService : ITransient + { + } +} diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqAttendanceSummaryService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqAttendanceSummaryService.cs new file mode 100644 index 0000000..8c56b8d --- /dev/null +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqAttendanceSummaryService.cs @@ -0,0 +1,359 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using Mapster; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using NCC.Common.Core.Manager; +using NCC.Common.Enum; +using NCC.Common.Extension; +using NCC.Common.Filter; +using NCC.Common.Helper; +using NCC.Dependency; +using NCC.DynamicApiController; +using NCC.Extend.Entitys.Dto.LqAttendanceSummary; +using NCC.Extend.Entitys.Enum; +using NCC.Extend.Entitys.lq_attendance_summary; +using NCC.Extend.Interfaces.LqAttendanceSummary; +using NCC.FriendlyException; +using NCC.System.Entitys.Permission; +using SqlSugar; +using Yitter.IdGenerator; + +namespace NCC.Extend +{ + /// + /// 考勤汇总服务 + /// + [ApiDescriptionSettings(Tag = "绿纤考勤汇总服务", Name = "LqAttendanceSummary", Order = 200)] + [Route("api/Extend/[controller]")] + public class LqAttendanceSummaryService : ILqAttendanceSummaryService, IDynamicApiController, ITransient + { + private readonly ISqlSugarClient _db; + private readonly IUserManager _userManager; + private readonly ILogger _logger; + + /// + /// 构造函数 + /// + /// 数据库客户端 + /// 用户管理器 + /// 日志记录器 + public LqAttendanceSummaryService(ISqlSugarClient db, IUserManager userManager, ILogger logger) + { + _db = db; + _userManager = userManager; + _logger = logger; + } + + #region 上传Excel文件导入考勤汇总数据 + /// + /// 上传Excel文件导入考勤汇总数据 + /// + /// + /// 上传Excel文件批量导入考勤汇总数据 + /// + /// Excel文件格式要求: + /// - 第一行必须是标题行 + /// - 列顺序:员工姓名、员工电话、年份、月份、出勤天数、请假天数、休息天数、备注 + /// - 支持.xlsx和.xls格式 + /// + /// 示例请求: + /// POST /api/Extend/LqAttendanceSummary/ImportAttendanceDataFromExcel + /// Content-Type: multipart/form-data + /// + /// 参数说明: + /// - file: Excel文件(必填) + /// + /// Excel文件 + /// 导入结果 + /// 导入成功 + /// 文件格式错误 + /// 服务器错误 + [HttpPost("ImportAttendanceDataFromExcel")] + public async Task ImportAttendanceDataFromExcel(IFormFile file) + { + try + { + if (file == null || file.Length == 0) + { + throw NCCException.Oh("请选择要上传的Excel文件"); + } + + // 检查文件格式 + var allowedExtensions = new[] { ".xlsx", ".xls" }; + var fileExtension = Path.GetExtension(file.FileName).ToLowerInvariant(); + if (!allowedExtensions.Contains(fileExtension)) + { + throw NCCException.Oh("只支持.xlsx和.xls格式的Excel文件"); + } + + var importData = new List(); + + // 保存临时文件 + var tempFilePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + Path.GetExtension(file.FileName)); + try + { + using (var stream = new FileStream(tempFilePath, FileMode.Create)) + { + await file.CopyToAsync(stream); + } + + // 使用ExcelImportHelper读取Excel文件 + var dataTable = ExcelImportHelper.ToDataTable(tempFilePath, 0, 0); + + if (dataTable.Rows.Count == 0) + { + throw NCCException.Oh("Excel文件中没有数据行"); + } + + // 从第1行开始读取数据(跳过标题行) + for (int i = 1; i < dataTable.Rows.Count; i++) + { + try + { + var row = dataTable.Rows[i]; + var employeeName = row[0]?.ToString()?.Trim(); + var employeePhone = row[1]?.ToString()?.Trim(); + var yearText = row[2]?.ToString()?.Trim(); + var monthText = row[3]?.ToString()?.Trim(); + var workDaysText = row[4]?.ToString()?.Trim(); + var leaveDaysText = row[5]?.ToString()?.Trim(); + var restDaysText = row[6]?.ToString()?.Trim(); + var remark = row[7]?.ToString()?.Trim(); + + // 跳过空行 + if (string.IsNullOrEmpty(employeeName) && string.IsNullOrEmpty(employeePhone)) + { + continue; + } + + // 验证必填字段 + if (string.IsNullOrEmpty(employeeName)) + { + throw new Exception($"第{i + 1}行:员工姓名不能为空"); + } + if (string.IsNullOrEmpty(employeePhone)) + { + throw new Exception($"第{i + 1}行:员工电话不能为空"); + } + + // 解析数值字段 + if (!int.TryParse(yearText, out int year)) + { + throw new Exception($"第{i + 1}行:年份格式错误"); + } + if (!int.TryParse(monthText, out int month)) + { + throw new Exception($"第{i + 1}行:月份格式错误"); + } + + decimal.TryParse(workDaysText, out decimal workDays); + decimal.TryParse(leaveDaysText, out decimal leaveDays); + decimal.TryParse(restDaysText, out decimal restDays); + + var item = new LqAttendanceSummaryImportInput + { + EmployeeName = employeeName, + EmployeePhone = employeePhone, + Year = year, + Month = month, + WorkDays = workDays, + LeaveDays = leaveDays, + RestDays = restDays, + Remark = remark + }; + + importData.Add(item); + } + catch (Exception ex) + { + throw new Exception($"第{i + 1}行数据解析失败: {ex.Message}"); + } + } + } + finally + { + // 清理临时文件 + if (File.Exists(tempFilePath)) + { + File.Delete(tempFilePath); + } + } + + if (!importData.Any()) + { + throw NCCException.Oh("Excel文件中没有有效的数据行"); + } + + // 处理导入数据 + return await ProcessImportData(importData); + } + catch (Exception ex) + { + _logger.LogError(ex, "上传Excel文件导入考勤汇总数据失败"); + throw NCCException.Oh($"上传Excel文件导入考勤汇总数据失败: {ex.Message}"); + } + } + #endregion + + #region 处理导入数据 + /// + /// 处理导入数据 + /// + /// 导入数据列表 + /// 导入结果 + private async Task ProcessImportData(List importData) + { + var successCount = 0; + var failCount = 0; + var errorMessages = new List(); + var entitiesToInsert = new List(); + var entitiesToUpdate = new List(); + + foreach (var item in importData) + { + try + { + // 1. 根据员工姓名和电话查找用户ID + var user = await _db.Queryable() + .Where(u => u.RealName == item.EmployeeName && u.MobilePhone == item.EmployeePhone) + .FirstAsync(); + + if (user == null) + { + errorMessages.Add($"员工 {item.EmployeeName}({item.EmployeePhone}) 不存在"); + failCount++; + continue; + } + + // 2. 检查是否已存在相同记录 + var existingRecord = await _db.Queryable() + .Where(a => a.UserId == user.Id && a.Year == item.Year && a.Month == item.Month) + .FirstAsync(); + + if (existingRecord != null) + { + // 更新现有记录 + existingRecord.EmployeeStatus = 1; // 默认在职 + existingRecord.WorkDays = item.WorkDays; + existingRecord.LeaveDays = item.LeaveDays; + existingRecord.RestDays = item.RestDays; + existingRecord.Remark = item.Remark; + existingRecord.UpdateUser = _userManager.UserId; + existingRecord.UpdateTime = DateTime.Now; + entitiesToUpdate.Add(existingRecord); + } + else + { + // 创建新记录 + var entity = new LqAttendanceSummaryEntity + { + Id = YitIdHelper.NextId().ToString(), + UserId = user.Id, + Year = item.Year, + Month = item.Month, + EmployeeStatus = 1, // 默认在职 + WorkDays = item.WorkDays, + LeaveDays = item.LeaveDays, + RestDays = item.RestDays, + Remark = item.Remark, + CreateUser = _userManager.UserId, + CreateTime = DateTime.Now, + UpdateUser = _userManager.UserId, + UpdateTime = DateTime.Now, + IsEffective = 1 + }; + entitiesToInsert.Add(entity); + } + + successCount++; + } + catch (Exception ex) + { + errorMessages.Add($"处理员工 {item.EmployeeName} 数据失败: {ex.Message}"); + failCount++; + _logger.LogError(ex, $"导入考勤数据失败 - 员工: {item.EmployeeName}"); + } + } + + // 批量插入和更新 + if (entitiesToInsert.Any()) + { + await _db.Insertable(entitiesToInsert).ExecuteCommandAsync(); + } + + if (entitiesToUpdate.Any()) + { + await _db.Updateable(entitiesToUpdate).ExecuteCommandAsync(); + } + + return new + { + success = true, + message = "导入完成", + data = new + { + totalCount = importData.Count, + successCount = successCount, + failCount = failCount, + insertCount = entitiesToInsert.Count, + updateCount = entitiesToUpdate.Count, + errorMessages = errorMessages + } + }; + } + #endregion + + #region 获取考勤汇总列表 + /// + /// 获取考勤汇总列表 + /// + /// 请求参数 + /// + [HttpGet("")] + public async Task GetList([FromQuery] LqAttendanceSummaryListQueryInput input) + { + var sidx = input.sidx == null ? "id" : input.sidx; + var sord = input.sort == null ? "desc" : input.sort; + var data = await _db.Queryable() + .Where(a => a.IsEffective == StatusEnum.有效.GetHashCode()) + .WhereIF(!string.IsNullOrEmpty(input.UserId), a => a.UserId == input.UserId) + .WhereIF(input.Year.HasValue, a => a.Year == input.Year) + .WhereIF(input.Month.HasValue, a => a.Month == input.Month) + .WhereIF(input.EmployeeStatus.HasValue, a => a.EmployeeStatus == input.EmployeeStatus) + .Select(a => new LqAttendanceSummaryListOutput + { + id = a.Id, + userId = a.UserId, + userName = SqlFunc.Subqueryable().Where(u => u.Id == a.UserId).Select(u => u.RealName), + year = a.Year, + month = a.Month, + employeeStatus = a.EmployeeStatus, + workDays = a.WorkDays, + leaveDays = a.LeaveDays, + restDays = a.RestDays, + remark = a.Remark, + createUser = a.CreateUser, + createUserName = SqlFunc.Subqueryable().Where(u => u.Id == a.CreateUser).Select(u => u.RealName), + createTime = a.CreateTime, + updateUser = a.UpdateUser, + updateUserName = SqlFunc.Subqueryable().Where(u => u.Id == a.UpdateUser).Select(u => u.RealName), + updateTime = a.UpdateTime, + isEffective = a.IsEffective, + }) + .MergeTable() + .OrderBy(sidx + " " + input.sort) + .ToPagedListAsync(input.currentPage, input.pageSize); + return PageResult.SqlSugarPageResult(data); + } + #endregion + + #region 清空某一个月的数据 + + #endregion + } +} diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs index 375b05d..12b2625 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs @@ -240,15 +240,17 @@ namespace NCC.Extend.LqKdKdjlb khly = it.Khly, tjr = it.Tjr, deductAmount = it.DeductAmount, + paidDebt = it.PaidDebt, + supplementBillingId = it.SupplementBillingId, sfskdd = it.Sfskdd, jj = it.Jj, bz = it.Bz, kdhy = it.Kdhy, kdhyc = SqlFunc.Subqueryable().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc), kdhysjh = SqlFunc.Subqueryable().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh), - IsEffective = it.IsEffective, - CreateUser = it.CreateUser, - CreateUserName = SqlFunc.Subqueryable().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), + isEffective = it.IsEffective, + createUser = it.CreateUser, + createUserName = SqlFunc.Subqueryable().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), }) .MergeTable() .OrderBy(sidx + " " + input.sort) @@ -361,8 +363,8 @@ namespace NCC.Extend.LqKdKdjlb //然后对之前的开单表的补缴金额进行累加 //需要判断补缴金额是否超过欠款金额,只记录应缴金额 var supplementAmount = supplementBillingEntity.Qk - supplementBillingEntity.PaidDebt; - entity.PaidDebt += input.supplementAmount > supplementAmount ? supplementAmount : input.supplementAmount; - await _db.Updateable(entity).ExecuteCommandAsync(); + supplementBillingEntity.PaidDebt += input.supplementAmount > supplementAmount ? supplementAmount : input.supplementAmount; + await _db.Updateable(supplementBillingEntity).ExecuteCommandAsync(); } //新增开单记录表记录 @@ -806,7 +808,7 @@ namespace NCC.Extend.LqKdKdjlb kdhy = it.Kdhy, kdhyc = it.Kdhyc, kdhysjh = it.Kdhysjh, - F_FIleUrl = it.F_FIleUrl, + fileUrl = it.F_FIleUrl, }) .MergeTable() .OrderBy(sidx + " " + input.sort) @@ -895,22 +897,26 @@ namespace NCC.Extend.LqKdKdjlb //批量删除开单记录表 await _db.Deleteable().In(d => d.Id, ids).ExecuteCommandAsync(); - //清空子表数据 + //清空健康师业绩 await _db.Deleteable().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); - //清空子表数据 + //清空科技部老师业绩 await _db.Deleteable().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); - //清空子表数据 + //清空品项明细 await _db.Deleteable().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); + + //清空扣款信息 + await _db.Deleteable().In(u => u.BillingId, ids).ExecuteCommandAsync(); + //关闭事务 _db.CommitTran(); } - catch (Exception) + catch (Exception ex) { //回滚事务 _db.RollbackTran(); - throw NCCException.Oh(ErrorCode.COM1002); + throw NCCException.Oh($"批量删除开单记录表失败: {ex.Message}"); } } } @@ -1113,23 +1119,26 @@ namespace NCC.Extend.LqKdKdjlb //删除开单记录表记录 await _db.Deleteable().Where(d => d.Id == id).ExecuteCommandAsync(); - //清空子表数据 + //清空健康师业绩 await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); - //清空子表数据 + //清空科技部老师业绩 await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); - //清空子表数据 + //清空品项明细 await _db.Deleteable().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); + //清空扣款信息 + await _db.Deleteable().Where(u => u.BillingId == id).ExecuteCommandAsync(); + //关闭事务 _db.CommitTran(); } - catch (Exception) + catch (Exception ex) { //回滚事务 _db.RollbackTran(); - throw NCCException.Oh(ErrorCode.COM1002); + throw NCCException.Oh($"删除开单记录表失败: {ex.Message}"); } } #endregion @@ -1211,8 +1220,23 @@ namespace NCC.Extend.LqKdKdjlb } //开启事务 _db.BeginTran(); + //查询是否有对应的补缴开单ID + if (!string.IsNullOrEmpty(entity.SupplementBillingId)) + { + //查询补缴开单ID + var supplementBillingEntity = await _db.Queryable().FirstAsync(p => p.Id == entity.SupplementBillingId);//900,900 + if (supplementBillingEntity == null || supplementBillingEntity.IsEffective == StatusEnum.无效.GetHashCode()) + { + throw NCCException.Oh("补缴开单记录不存在或已作废"); + } + //查询当前开单已经补缴金额 + var OldSupplementAmount = await _db.Queryable().Where(p => p.Id == id).SumAsync(p => p.SupplementAmount);//900,0 + supplementBillingEntity.PaidDebt = supplementBillingEntity.PaidDebt - OldSupplementAmount + input.supplementAmount; + await _db.Updateable(supplementBillingEntity).ExecuteCommandAsync(); + } // 更新开单记录主表 await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).IgnoreColumns(x => x.CreateTime).ExecuteCommandAsync(); + //清空原有品项明细 await _db.Deleteable().Where(x => x.Glkdbh == id).ExecuteCommandAsync(); //清空原有健康师业绩 @@ -1434,6 +1458,16 @@ namespace NCC.Extend.LqKdKdjlb // 标记开单_储扣详细表为无效 await _db.Updateable().SetColumns(it => new LqKdDeductinfoEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(it => it.BillingId == input.Id).ExecuteCommandAsync(); + //如果存在补缴开单ID,则将补缴开单ID的IsEffective设置为无效 + if (!string.IsNullOrEmpty(entity.SupplementBillingId)) + { + var supplementBillingEntity = await _db.Queryable().FirstAsync(p => p.Id == entity.SupplementBillingId); + if (supplementBillingEntity != null && supplementBillingEntity.IsEffective == StatusEnum.有效.GetHashCode()) + { + supplementBillingEntity.PaidDebt = supplementBillingEntity.PaidDebt - entity.SupplementAmount; + await _db.Updateable(supplementBillingEntity).ExecuteCommandAsync(); + } + } //关闭事务 _db.CommitTran(); } @@ -1683,7 +1717,7 @@ namespace NCC.Extend.LqKdKdjlb sfyj = it.Sfyj, qk = it.Qk, ckfs = it.Ckfs, - PaidDebt = it.PaidDebt, + paidDebt = it.PaidDebt, fkfs = it.Fkfs, fkyy = it.Fkyy, fkpd = it.Fkpd, @@ -1696,9 +1730,9 @@ namespace NCC.Extend.LqKdKdjlb kdhy = it.Kdhy, kdhyc = SqlFunc.Subqueryable().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc), kdhysjh = SqlFunc.Subqueryable().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh), - IsEffective = it.IsEffective, - CreateUser = it.CreateUser, - CreateUserName = SqlFunc.Subqueryable().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), + isEffective = it.IsEffective, + createUser = it.CreateUser, + createUserName = SqlFunc.Subqueryable().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), }) .MergeTable() .OrderBy(sidx + " " + sort) @@ -1780,9 +1814,9 @@ namespace NCC.Extend.LqKdKdjlb kdhy = it.Kdhy, kdhyc = SqlFunc.Subqueryable().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc), kdhysjh = SqlFunc.Subqueryable().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh), - IsEffective = it.IsEffective, - CreateUser = it.CreateUser, - CreateUserName = SqlFunc.Subqueryable().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), + isEffective = it.IsEffective, + createUser = it.CreateUser, + createUserName = SqlFunc.Subqueryable().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), }) .MergeTable() .OrderBy(sidx + " " + input.sort) @@ -1837,6 +1871,31 @@ namespace NCC.Extend.LqKdKdjlb } #endregion + #region 根据开单id获取当前开单欠款信息 + /// + /// 根据开单id获取当前开单欠款信息 + /// + /// 开单记录ID + /// 当前开单欠款信息 + [HttpGet("GetBillingDebtInfo/{billingId}")] + public async Task GetBillingDebtInfoByBillingId(string billingId) + { + //返回 整单金额、实付金额、欠款金额、已缴欠款金额 + var entity = await _db.Queryable().FirstAsync(p => p.Id == billingId); + if (entity == null) + { + throw NCCException.Oh("开单记录不存在"); + } + return new + { + zdyj = entity.Zdyj, + sfyj = entity.Sfyj, + qk = entity.Qk, + PaidDebt = entity.PaidDebt, + }; + } + #endregion + #region 私有方法 /// /// 检查开单记录是否可以操作 diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKqhzbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKqhzbService.cs deleted file mode 100644 index c3f69e5..0000000 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqKqhzbService.cs +++ /dev/null @@ -1,397 +0,0 @@ -using NCC.Common.Core.Manager; -using NCC.Common.Enum; -using NCC.Common.Extension; -using NCC.Common.Filter; -using NCC.Dependency; -using NCC.DynamicApiController; -using NCC.FriendlyException; -using NCC.Extend.Interfaces.LqKqhzb; -using Mapster; -using Microsoft.AspNetCore.Mvc; -using SqlSugar; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using NCC.Extend.Entitys.lq_kqhzb; -using NCC.Extend.Entitys.Dto.LqKqhzb; -using Yitter.IdGenerator; -using NCC.Common.Helper; -using NCC.JsonSerialization; -using NCC.Common.Model.NPOI; -using NCC.Common.Configuration; -using NCC.DataEncryption; -using NCC.ClayObject; - -namespace NCC.Extend.LqKqhzb -{ - /// - /// 考勤汇总表服务 - /// - [ApiDescriptionSettings(Tag = "Extend",Name = "LqKqhzb", Order = 200)] - [Route("api/Extend/[controller]")] - public class LqKqhzbService : ILqKqhzbService, IDynamicApiController, ITransient - { - private readonly ISqlSugarRepository _lqKqhzbRepository; - private readonly SqlSugarScope _db; - private readonly IUserManager _userManager; - - /// - /// 初始化一个类型的新实例 - /// - public LqKqhzbService( - ISqlSugarRepository lqKqhzbRepository, - IUserManager userManager) - { - _lqKqhzbRepository = lqKqhzbRepository; - _db = _lqKqhzbRepository.Context; - _userManager = userManager; - } - - /// - /// 获取考勤汇总表 - /// - /// 参数 - /// - [HttpGet("{id}")] - public async Task GetInfo(string id) - { - var entity = await _db.Queryable().FirstAsync(p => p.Id == id); - var output = entity.Adapt(); - return output; - } - - /// - /// 获取考勤汇总表列表 - /// - /// 请求参数 - /// - [HttpGet("")] - public async Task GetList([FromQuery] LqKqhzbListQueryInput input) - { - var sidx = input.sidx == null ? "id" : input.sidx; - var data = await _db.Queryable() - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) - .WhereIF(!string.IsNullOrEmpty(input.mdbh), p => p.Mdbh.Contains(input.mdbh)) - .WhereIF(!string.IsNullOrEmpty(input.mdmc), p => p.Mdmc.Contains(input.mdmc)) - .WhereIF(!string.IsNullOrEmpty(input.zw), p => p.Zw.Contains(input.zw)) - .WhereIF(!string.IsNullOrEmpty(input.gwfl1), p => p.Gwfl1.Contains(input.gwfl1)) - .WhereIF(!string.IsNullOrEmpty(input.ygbh), p => p.Ygbh.Contains(input.ygbh)) - .WhereIF(!string.IsNullOrEmpty(input.xm), p => p.Xm.Contains(input.xm)) - .WhereIF(!string.IsNullOrEmpty(input.zzqk), p => p.Zzqk.Contains(input.zzqk)) - .WhereIF(!string.IsNullOrEmpty(input.gwfl2), p => p.Gwfl2.Contains(input.gwfl2)) - .WhereIF(!string.IsNullOrEmpty(input.ffyf), p => p.Ffyf.Contains(input.ffyf)) - .WhereIF(!string.IsNullOrEmpty(input.zgts), p => p.Zgts.Contains(input.zgts)) - .WhereIF(!string.IsNullOrEmpty(input.dybzxxts), p => p.Dybzxxts.Contains(input.dybzxxts)) - .WhereIF(!string.IsNullOrEmpty(input.sjxxts), p => p.Sjxxts.Contains(input.sjxxts)) - .WhereIF(!string.IsNullOrEmpty(input.xx), p => p.Xx.Contains(input.xx)) - .WhereIF(!string.IsNullOrEmpty(input.qj), p => p.Qj.Contains(input.qj)) - .WhereIF(!string.IsNullOrEmpty(input.flj), p => p.Flj.Contains(input.flj)) - .WhereIF(!string.IsNullOrEmpty(input.sj), p => p.Sj.Contains(input.sj)) - .WhereIF(!string.IsNullOrEmpty(input.nj), p => p.Nj.Contains(input.nj)) - .WhereIF(!string.IsNullOrEmpty(input.cq), p => p.Cq.Contains(input.cq)) - .WhereIF(!string.IsNullOrEmpty(input.cqjxx), p => p.Cqjxx.Contains(input.cqjxx)) - .WhereIF(!string.IsNullOrEmpty(input.yx), p => p.Yx.Contains(input.yx)) - .WhereIF(!string.IsNullOrEmpty(input.bkts), p => p.Bkts.Contains(input.bkts)) - .WhereIF(!string.IsNullOrEmpty(input.tjxx), p => p.Tjxx.Contains(input.tjxx)) - .WhereIF(!string.IsNullOrEmpty(input.sjqj), p => p.Sjqj.Contains(input.sjqj)) - .WhereIF(!string.IsNullOrEmpty(input.sxts), p => p.Sxts.Contains(input.sxts)) - .WhereIF(!string.IsNullOrEmpty(input.sxbt), p => p.Sxbt.Contains(input.sxbt)) - .WhereIF(!string.IsNullOrEmpty(input.qk), p => p.Qk.Contains(input.qk)) - .WhereIF(!string.IsNullOrEmpty(input.cd), p => p.Cd.Contains(input.cd)) - .WhereIF(!string.IsNullOrEmpty(input.qq), p => p.Qq.Contains(input.qq)) - .WhereIF(!string.IsNullOrEmpty(input.jtbz), p => p.Jtbz.Contains(input.jtbz)) - .WhereIF(!string.IsNullOrEmpty(input.xxqkk), p => p.Xxqkk.Contains(input.xxqkk)) - .WhereIF(!string.IsNullOrEmpty(input.zs), p => p.Zs.Contains(input.zs)) - .WhereIF(!string.IsNullOrEmpty(input.gzf), p => p.Gzf.Contains(input.gzf)) - .WhereIF(!string.IsNullOrEmpty(input.sjyj), p => p.Sjyj.Contains(input.sjyj)) - .WhereIF(!string.IsNullOrEmpty(input.ssyj), p => p.Ssyj.Contains(input.ssyj)) - .WhereIF(!string.IsNullOrEmpty(input.qtjl), p => p.Qtjl.Contains(input.qtjl)) - .WhereIF(!string.IsNullOrEmpty(input.bdyhsje), p => p.Bdyhsje.Contains(input.bdyhsje)) - .WhereIF(!string.IsNullOrEmpty(input.dypx), p => p.Dypx.Contains(input.dypx)) - .WhereIF(!string.IsNullOrEmpty(input.dyjtbt), p => p.Dyjtbt.Contains(input.dyjtbt)) - .WhereIF(!string.IsNullOrEmpty(input.yfsy), p => p.Yfsy.Contains(input.yfsy)) - .WhereIF(!string.IsNullOrEmpty(input.yfcy), p => p.Yfcy.Contains(input.yfcy)) - .WhereIF(!string.IsNullOrEmpty(input.zdts), p => p.Zdts.Contains(input.zdts)) - .WhereIF(!string.IsNullOrEmpty(input.kyts), p => p.Kyts.Contains(input.kyts)) - .WhereIF(!string.IsNullOrEmpty(input.sygzy), p => p.Sygzy.Contains(input.sygzy)) - .WhereIF(!string.IsNullOrEmpty(input.dyzdjzcxts), p => p.Dyzdjzcxts.Contains(input.dyzdjzcxts)) - .WhereIF(!string.IsNullOrEmpty(input.dysfhs), p => p.Dysfhs.Contains(input.dysfhs)) - .Select(it=> new LqKqhzbListOutput - { - id = it.Id, - mdbh=it.Mdbh, - mdmc=it.Mdmc, - zw=it.Zw, - gwfl1=it.Gwfl1, - ygbh=it.Ygbh, - xm=it.Xm, - zzqk=it.Zzqk, - gwfl2=it.Gwfl2, - ffyf=it.Ffyf, - zgts=it.Zgts, - dybzxxts=it.Dybzxxts, - sjxxts=it.Sjxxts, - xx=it.Xx, - qj=it.Qj, - flj=it.Flj, - sj=it.Sj, - nj=it.Nj, - cq=it.Cq, - cqjxx=it.Cqjxx, - yx=it.Yx, - bkts=it.Bkts, - tjxx=it.Tjxx, - sjqj=it.Sjqj, - sxts=it.Sxts, - sxbt=it.Sxbt, - qk=it.Qk, - cd=it.Cd, - qq=it.Qq, - jtbz=it.Jtbz, - xxqkk=it.Xxqkk, - zs=it.Zs, - gzf=it.Gzf, - sjyj=it.Sjyj, - ssyj=it.Ssyj, - qtjl=it.Qtjl, - bdyhsje=it.Bdyhsje, - dypx=it.Dypx, - dyjtbt=it.Dyjtbt, - yfsy=it.Yfsy, - yfcy=it.Yfcy, - zdts=it.Zdts, - kyts=it.Kyts, - sygzy=it.Sygzy, - dyzdjzcxts=it.Dyzdjzcxts, - dysfhs=it.Dysfhs, - }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); - return PageResult.SqlSugarPageResult(data); - } - - /// - /// 新建考勤汇总表 - /// - /// 参数 - /// - [HttpPost("")] - public async Task Create([FromBody] LqKqhzbCrInput input) - { - var userInfo = await _userManager.GetUserInfo(); - var entity = input.Adapt(); - entity.Id = YitIdHelper.NextId().ToString(); - var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000); - } - - /// - /// 获取考勤汇总表无分页列表 - /// - /// 请求参数 - /// - [NonAction] - public async Task GetNoPagingList([FromQuery] LqKqhzbListQueryInput input) - { - var sidx = input.sidx == null ? "id" : input.sidx; - var data = await _db.Queryable() - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) - .WhereIF(!string.IsNullOrEmpty(input.mdbh), p => p.Mdbh.Contains(input.mdbh)) - .WhereIF(!string.IsNullOrEmpty(input.mdmc), p => p.Mdmc.Contains(input.mdmc)) - .WhereIF(!string.IsNullOrEmpty(input.zw), p => p.Zw.Contains(input.zw)) - .WhereIF(!string.IsNullOrEmpty(input.gwfl1), p => p.Gwfl1.Contains(input.gwfl1)) - .WhereIF(!string.IsNullOrEmpty(input.ygbh), p => p.Ygbh.Contains(input.ygbh)) - .WhereIF(!string.IsNullOrEmpty(input.xm), p => p.Xm.Contains(input.xm)) - .WhereIF(!string.IsNullOrEmpty(input.zzqk), p => p.Zzqk.Contains(input.zzqk)) - .WhereIF(!string.IsNullOrEmpty(input.gwfl2), p => p.Gwfl2.Contains(input.gwfl2)) - .WhereIF(!string.IsNullOrEmpty(input.ffyf), p => p.Ffyf.Contains(input.ffyf)) - .WhereIF(!string.IsNullOrEmpty(input.zgts), p => p.Zgts.Contains(input.zgts)) - .WhereIF(!string.IsNullOrEmpty(input.dybzxxts), p => p.Dybzxxts.Contains(input.dybzxxts)) - .WhereIF(!string.IsNullOrEmpty(input.sjxxts), p => p.Sjxxts.Contains(input.sjxxts)) - .WhereIF(!string.IsNullOrEmpty(input.xx), p => p.Xx.Contains(input.xx)) - .WhereIF(!string.IsNullOrEmpty(input.qj), p => p.Qj.Contains(input.qj)) - .WhereIF(!string.IsNullOrEmpty(input.flj), p => p.Flj.Contains(input.flj)) - .WhereIF(!string.IsNullOrEmpty(input.sj), p => p.Sj.Contains(input.sj)) - .WhereIF(!string.IsNullOrEmpty(input.nj), p => p.Nj.Contains(input.nj)) - .WhereIF(!string.IsNullOrEmpty(input.cq), p => p.Cq.Contains(input.cq)) - .WhereIF(!string.IsNullOrEmpty(input.cqjxx), p => p.Cqjxx.Contains(input.cqjxx)) - .WhereIF(!string.IsNullOrEmpty(input.yx), p => p.Yx.Contains(input.yx)) - .WhereIF(!string.IsNullOrEmpty(input.bkts), p => p.Bkts.Contains(input.bkts)) - .WhereIF(!string.IsNullOrEmpty(input.tjxx), p => p.Tjxx.Contains(input.tjxx)) - .WhereIF(!string.IsNullOrEmpty(input.sjqj), p => p.Sjqj.Contains(input.sjqj)) - .WhereIF(!string.IsNullOrEmpty(input.sxts), p => p.Sxts.Contains(input.sxts)) - .WhereIF(!string.IsNullOrEmpty(input.sxbt), p => p.Sxbt.Contains(input.sxbt)) - .WhereIF(!string.IsNullOrEmpty(input.qk), p => p.Qk.Contains(input.qk)) - .WhereIF(!string.IsNullOrEmpty(input.cd), p => p.Cd.Contains(input.cd)) - .WhereIF(!string.IsNullOrEmpty(input.qq), p => p.Qq.Contains(input.qq)) - .WhereIF(!string.IsNullOrEmpty(input.jtbz), p => p.Jtbz.Contains(input.jtbz)) - .WhereIF(!string.IsNullOrEmpty(input.xxqkk), p => p.Xxqkk.Contains(input.xxqkk)) - .WhereIF(!string.IsNullOrEmpty(input.zs), p => p.Zs.Contains(input.zs)) - .WhereIF(!string.IsNullOrEmpty(input.gzf), p => p.Gzf.Contains(input.gzf)) - .WhereIF(!string.IsNullOrEmpty(input.sjyj), p => p.Sjyj.Contains(input.sjyj)) - .WhereIF(!string.IsNullOrEmpty(input.ssyj), p => p.Ssyj.Contains(input.ssyj)) - .WhereIF(!string.IsNullOrEmpty(input.qtjl), p => p.Qtjl.Contains(input.qtjl)) - .WhereIF(!string.IsNullOrEmpty(input.bdyhsje), p => p.Bdyhsje.Contains(input.bdyhsje)) - .WhereIF(!string.IsNullOrEmpty(input.dypx), p => p.Dypx.Contains(input.dypx)) - .WhereIF(!string.IsNullOrEmpty(input.dyjtbt), p => p.Dyjtbt.Contains(input.dyjtbt)) - .WhereIF(!string.IsNullOrEmpty(input.yfsy), p => p.Yfsy.Contains(input.yfsy)) - .WhereIF(!string.IsNullOrEmpty(input.yfcy), p => p.Yfcy.Contains(input.yfcy)) - .WhereIF(!string.IsNullOrEmpty(input.zdts), p => p.Zdts.Contains(input.zdts)) - .WhereIF(!string.IsNullOrEmpty(input.kyts), p => p.Kyts.Contains(input.kyts)) - .WhereIF(!string.IsNullOrEmpty(input.sygzy), p => p.Sygzy.Contains(input.sygzy)) - .WhereIF(!string.IsNullOrEmpty(input.dyzdjzcxts), p => p.Dyzdjzcxts.Contains(input.dyzdjzcxts)) - .WhereIF(!string.IsNullOrEmpty(input.dysfhs), p => p.Dysfhs.Contains(input.dysfhs)) - .Select(it=> new LqKqhzbListOutput - { - id = it.Id, - mdbh=it.Mdbh, - mdmc=it.Mdmc, - zw=it.Zw, - gwfl1=it.Gwfl1, - ygbh=it.Ygbh, - xm=it.Xm, - zzqk=it.Zzqk, - gwfl2=it.Gwfl2, - ffyf=it.Ffyf, - zgts=it.Zgts, - dybzxxts=it.Dybzxxts, - sjxxts=it.Sjxxts, - xx=it.Xx, - qj=it.Qj, - flj=it.Flj, - sj=it.Sj, - nj=it.Nj, - cq=it.Cq, - cqjxx=it.Cqjxx, - yx=it.Yx, - bkts=it.Bkts, - tjxx=it.Tjxx, - sjqj=it.Sjqj, - sxts=it.Sxts, - sxbt=it.Sxbt, - qk=it.Qk, - cd=it.Cd, - qq=it.Qq, - jtbz=it.Jtbz, - xxqkk=it.Xxqkk, - zs=it.Zs, - gzf=it.Gzf, - sjyj=it.Sjyj, - ssyj=it.Ssyj, - qtjl=it.Qtjl, - bdyhsje=it.Bdyhsje, - dypx=it.Dypx, - dyjtbt=it.Dyjtbt, - yfsy=it.Yfsy, - yfcy=it.Yfcy, - zdts=it.Zdts, - kyts=it.Kyts, - sygzy=it.Sygzy, - dyzdjzcxts=it.Dyzdjzcxts, - dysfhs=it.Dysfhs, - }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); - return data; - } - - /// - /// 导出考勤汇总表 - /// - /// 请求参数 - /// - [HttpGet("Actions/Export")] - public async Task Export([FromQuery] LqKqhzbListQueryInput input) - { - var userInfo = await _userManager.GetUserInfo(); - var exportData = new List(); - if (input.dataType == 0) - { - var data = Clay.Object(await this.GetList(input)); - exportData = data.Solidify>().list; - } - else - { - exportData = await this.GetNoPagingList(input); - } - List paramList = "[{\"value\":\"考勤编号\",\"field\":\"id\"},{\"value\":\"门店编号\",\"field\":\"mdbh\"},{\"value\":\"门店名称\",\"field\":\"mdmc\"},{\"value\":\"职位\",\"field\":\"zw\"},{\"value\":\"岗位分类1\",\"field\":\"gwfl1\"},{\"value\":\"员工编号\",\"field\":\"ygbh\"},{\"value\":\"姓名\",\"field\":\"xm\"},{\"value\":\"在职情况\",\"field\":\"zzqk\"},{\"value\":\"岗位分类2\",\"field\":\"gwfl2\"},{\"value\":\"发放月份\",\"field\":\"ffyf\"},{\"value\":\"在岗天数\",\"field\":\"zgts\"},{\"value\":\"当月休息天数\",\"field\":\"dybzxxts\"},{\"value\":\"实际休息天数\",\"field\":\"sjxxts\"},{\"value\":\"休息\",\"field\":\"xx\"},{\"value\":\"请假\",\"field\":\"qj\"},{\"value\":\"福利假\",\"field\":\"flj\"},{\"value\":\"丧假\",\"field\":\"sj\"},{\"value\":\"年假\",\"field\":\"nj\"},{\"value\":\"出勤\",\"field\":\"cq\"},{\"value\":\"出勤加休息\",\"field\":\"cqjxx\"},{\"value\":\"应休\",\"field\":\"yx\"},{\"value\":\"不扣天数\",\"field\":\"bkts\"},{\"value\":\"调减休息\",\"field\":\"tjxx\"},{\"value\":\"实际请假\",\"field\":\"sjqj\"},{\"value\":\"少休天数\",\"field\":\"sxts\"},{\"value\":\"少休补贴\",\"field\":\"sxbt\"},{\"value\":\"缺卡\",\"field\":\"qk\"},{\"value\":\"迟到\",\"field\":\"cd\"},{\"value\":\"全勤\",\"field\":\"qq\"},{\"value\":\"交通补助\",\"field\":\"jtbz\"},{\"value\":\"学习期扣款\",\"field\":\"xxqkk\"},{\"value\":\"住宿\",\"field\":\"zs\"},{\"value\":\"工作服\",\"field\":\"gzf\"},{\"value\":\"手机押金\",\"field\":\"sjyj\"},{\"value\":\"宿舍押金\",\"field\":\"ssyj\"},{\"value\":\"其他奖励\",\"field\":\"qtjl\"},{\"value\":\"保底核算金额\",\"field\":\"bdyhsje\"},{\"value\":\"当月培训\",\"field\":\"dypx\"},{\"value\":\"当月交通补贴\",\"field\":\"dyjtbt\"},{\"value\":\"应发上月\",\"field\":\"yfsy\"},{\"value\":\"应发次月\",\"field\":\"yfcy\"},{\"value\":\"在店天数\",\"field\":\"zdts\"},{\"value\":\"跨月天数\",\"field\":\"kyts\"},{\"value\":\"上月工资有\",\"field\":\"sygzy\"},{\"value\":\"在店加正常休\",\"field\":\"dyzdjzcxts\"},{\"value\":\"当月是否核算\",\"field\":\"dysfhs\"},]".ToList(); - ExcelConfig excelconfig = new ExcelConfig(); - excelconfig.FileName = "考勤汇总表.xls"; - excelconfig.HeadFont = "微软雅黑"; - excelconfig.HeadPoint = 10; - excelconfig.IsAllSizeColumn = true; - excelconfig.ColumnModel = new List(); - List selectKeyList = input.selectKey.Split(',').ToList(); - foreach (var item in selectKeyList) - { - var isExist = paramList.Find(p => p.field == item); - if (isExist != null) - { - excelconfig.ColumnModel.Add(new ExcelColumnModel() { Column = isExist.field, ExcelColumn = isExist.value }); - } - } - var addPath = FileVariable.TemporaryFilePath + excelconfig.FileName; - ExcelExportHelper.Export(exportData, excelconfig, addPath); - var fileName = _userManager.UserId + "|" + addPath + "|xls"; - var output = new - { - name = excelconfig.FileName, - url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC") - }; - return output; - } - - /// - /// 批量删除考勤汇总表 - /// - /// 主键数组 - /// - [HttpPost("batchRemove")] - public async Task BatchRemove([FromBody] List ids) - { - var entitys = await _db.Queryable().In(it => it.Id, ids).ToListAsync(); - if (entitys.Count > 0) - { - try - { - //开启事务 - _db.BeginTran(); - //批量删除考勤汇总表 - await _db.Deleteable().In(d => d.Id,ids).ExecuteCommandAsync(); - //关闭事务 - _db.CommitTran(); - } - catch (Exception) - { - //回滚事务 - _db.RollbackTran(); - throw NCCException.Oh(ErrorCode.COM1002); - } - } - } - - /// - /// 更新考勤汇总表 - /// - /// 主键 - /// 参数 - /// - [HttpPut("{id}")] - public async Task Update(string id, [FromBody] LqKqhzbUpInput input) - { - var entity = input.Adapt(); - var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001); - } - - /// - /// 删除考勤汇总表 - /// - /// - [HttpDelete("{id}")] - public async Task Delete(string id) - { - var entity = await _db.Queryable().FirstAsync(p => p.Id == id); - _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005); - var isOk = await _db.Deleteable().Where(d => d.Id == id).ExecuteCommandAsync(); - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1002); - } - } -} diff --git a/创建考勤汇总表.sql b/创建考勤汇总表.sql new file mode 100644 index 0000000..450d97a --- /dev/null +++ b/创建考勤汇总表.sql @@ -0,0 +1,21 @@ +CREATE TABLE `lq_attendance_summary` ( + `F_Id` varchar(50) NOT NULL COMMENT '考勤汇总ID', + `F_UserId` varchar(50) NOT NULL COMMENT '用户ID(员工ID)', + `F_Year` int NOT NULL COMMENT '年份', + `F_Month` int NOT NULL COMMENT '月份', + `F_EmployeeStatus` int NOT NULL DEFAULT 1 COMMENT '员工状态(1-在职,2-离职,3-停薪留职)', + `F_WorkDays` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '出勤天数', + `F_LeaveDays` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '请假天数', + `F_RestDays` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '休息天数', + `F_Remark` varchar(2000) COMMENT '备注', + `F_CreateUser` varchar(50) NOT NULL COMMENT '创建人ID', + `F_CreateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `F_UpdateUser` varchar(50) COMMENT '更新人ID', + `F_UpdateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `F_IsEffective` int NOT NULL DEFAULT 1 COMMENT '是否有效(1-有效,-1-无效)', + PRIMARY KEY (`F_Id`), + UNIQUE KEY `uk_user_year_month` (`F_UserId`, `F_Year`, `F_Month`), + KEY `idx_user_id` (`F_UserId`), + KEY `idx_year_month` (`F_Year`, `F_Month`), + KEY `idx_create_time` (`F_CreateTime`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='考勤汇总表';