Commit b31159d8c26d8266a9a0cdbcf191230bd56d0f10
1 parent
d3b83486
feat: 删除考勤汇总表相关功能并更新LqKdKdjlbService
- 删除LqKqhzbService及相关DTO、Mapper和接口,移除考勤汇总表的所有功能 - 在LqKdKdjlbService中添加补缴开单ID的处理逻辑,更新已缴欠款的计算 - 修改DTO字段命名为小写,以保持一致性 - 新增根据开单ID获取当前开单欠款信息的接口 - 优化异常处理,提供更详细的错误信息
Showing
26 changed files
with
1065 additions
and
1759 deletions
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryCrInput.cs
0 → 100644
| 1 | +using System; | ||
| 2 | +using System.ComponentModel.DataAnnotations; | ||
| 3 | + | ||
| 4 | +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary | ||
| 5 | +{ | ||
| 6 | + /// <summary> | ||
| 7 | + /// 考勤汇总创建输入 | ||
| 8 | + /// </summary> | ||
| 9 | + public class LqAttendanceSummaryCrInput | ||
| 10 | + { | ||
| 11 | + /// <summary> | ||
| 12 | + /// 用户ID(员工ID) | ||
| 13 | + /// </summary> | ||
| 14 | + [Required(ErrorMessage = "用户ID不能为空")] | ||
| 15 | + [Display(Name = "用户ID", Description = "员工ID")] | ||
| 16 | + public string UserId { get; set; } | ||
| 17 | + | ||
| 18 | + /// <summary> | ||
| 19 | + /// 年份 | ||
| 20 | + /// </summary> | ||
| 21 | + [Required(ErrorMessage = "年份不能为空")] | ||
| 22 | + [Range(2020, 2030, ErrorMessage = "年份必须在2020-2030之间")] | ||
| 23 | + [Display(Name = "年份", Description = "考勤年份")] | ||
| 24 | + public int Year { get; set; } | ||
| 25 | + | ||
| 26 | + /// <summary> | ||
| 27 | + /// 月份 | ||
| 28 | + /// </summary> | ||
| 29 | + [Required(ErrorMessage = "月份不能为空")] | ||
| 30 | + [Range(1, 12, ErrorMessage = "月份必须在1-12之间")] | ||
| 31 | + [Display(Name = "月份", Description = "考勤月份")] | ||
| 32 | + public int Month { get; set; } | ||
| 33 | + | ||
| 34 | + /// <summary> | ||
| 35 | + /// 员工状态(1-在职,2-离职,3-停薪留职) | ||
| 36 | + /// </summary> | ||
| 37 | + [Required(ErrorMessage = "员工状态不能为空")] | ||
| 38 | + [Range(1, 3, ErrorMessage = "员工状态必须在1-3之间")] | ||
| 39 | + [Display(Name = "员工状态", Description = "1-在职,2-离职,3-停薪留职")] | ||
| 40 | + public int EmployeeStatus { get; set; } | ||
| 41 | + | ||
| 42 | + /// <summary> | ||
| 43 | + /// 出勤天数 | ||
| 44 | + /// </summary> | ||
| 45 | + [Range(0, 31, ErrorMessage = "出勤天数必须在0-31之间")] | ||
| 46 | + [Display(Name = "出勤天数", Description = "当月出勤天数")] | ||
| 47 | + public decimal WorkDays { get; set; } | ||
| 48 | + | ||
| 49 | + /// <summary> | ||
| 50 | + /// 请假天数 | ||
| 51 | + /// </summary> | ||
| 52 | + [Range(0, 31, ErrorMessage = "请假天数必须在0-31之间")] | ||
| 53 | + [Display(Name = "请假天数", Description = "当月请假天数")] | ||
| 54 | + public decimal LeaveDays { get; set; } | ||
| 55 | + | ||
| 56 | + /// <summary> | ||
| 57 | + /// 休息天数 | ||
| 58 | + /// </summary> | ||
| 59 | + [Range(0, 31, ErrorMessage = "休息天数必须在0-31之间")] | ||
| 60 | + [Display(Name = "休息天数", Description = "当月休息天数")] | ||
| 61 | + public decimal RestDays { get; set; } | ||
| 62 | + | ||
| 63 | + /// <summary> | ||
| 64 | + /// 备注 | ||
| 65 | + /// </summary> | ||
| 66 | + [StringLength(2000, ErrorMessage = "备注长度不能超过2000个字符")] | ||
| 67 | + [Display(Name = "备注", Description = "考勤备注信息")] | ||
| 68 | + public string Remark { get; set; } | ||
| 69 | + } | ||
| 70 | +} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryImportInput.cs
0 → 100644
| 1 | +using System; | ||
| 2 | +using System.ComponentModel.DataAnnotations; | ||
| 3 | + | ||
| 4 | +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary | ||
| 5 | +{ | ||
| 6 | + /// <summary> | ||
| 7 | + /// 考勤汇总导入输入 | ||
| 8 | + /// </summary> | ||
| 9 | + public class LqAttendanceSummaryImportInput | ||
| 10 | + { | ||
| 11 | + /// <summary> | ||
| 12 | + /// 员工姓名 | ||
| 13 | + /// </summary> | ||
| 14 | + [Required(ErrorMessage = "员工姓名不能为空")] | ||
| 15 | + [Display(Name = "员工姓名", Description = "员工真实姓名")] | ||
| 16 | + public string EmployeeName { get; set; } | ||
| 17 | + | ||
| 18 | + /// <summary> | ||
| 19 | + /// 员工电话 | ||
| 20 | + /// </summary> | ||
| 21 | + [Required(ErrorMessage = "员工电话不能为空")] | ||
| 22 | + [Display(Name = "员工电话", Description = "员工手机号码")] | ||
| 23 | + public string EmployeePhone { get; set; } | ||
| 24 | + | ||
| 25 | + /// <summary> | ||
| 26 | + /// 年份 | ||
| 27 | + /// </summary> | ||
| 28 | + [Required(ErrorMessage = "年份不能为空")] | ||
| 29 | + [Range(2020, 2030, ErrorMessage = "年份必须在2020-2030之间")] | ||
| 30 | + [Display(Name = "年份", Description = "考勤年份")] | ||
| 31 | + public int Year { get; set; } | ||
| 32 | + | ||
| 33 | + /// <summary> | ||
| 34 | + /// 月份 | ||
| 35 | + /// </summary> | ||
| 36 | + [Required(ErrorMessage = "月份不能为空")] | ||
| 37 | + [Range(1, 12, ErrorMessage = "月份必须在1-12之间")] | ||
| 38 | + [Display(Name = "月份", Description = "考勤月份")] | ||
| 39 | + public int Month { get; set; } | ||
| 40 | + | ||
| 41 | + /// <summary> | ||
| 42 | + /// 出勤天数 | ||
| 43 | + /// </summary> | ||
| 44 | + [Range(0, 31, ErrorMessage = "出勤天数必须在0-31之间")] | ||
| 45 | + [Display(Name = "出勤天数", Description = "当月出勤天数")] | ||
| 46 | + public decimal WorkDays { get; set; } | ||
| 47 | + | ||
| 48 | + /// <summary> | ||
| 49 | + /// 请假天数 | ||
| 50 | + /// </summary> | ||
| 51 | + [Range(0, 31, ErrorMessage = "请假天数必须在0-31之间")] | ||
| 52 | + [Display(Name = "请假天数", Description = "当月请假天数")] | ||
| 53 | + public decimal LeaveDays { get; set; } | ||
| 54 | + | ||
| 55 | + /// <summary> | ||
| 56 | + /// 休息天数 | ||
| 57 | + /// </summary> | ||
| 58 | + [Range(0, 31, ErrorMessage = "休息天数必须在0-31之间")] | ||
| 59 | + [Display(Name = "休息天数", Description = "当月休息天数")] | ||
| 60 | + public decimal RestDays { get; set; } | ||
| 61 | + | ||
| 62 | + /// <summary> | ||
| 63 | + /// 备注 | ||
| 64 | + /// </summary> | ||
| 65 | + [StringLength(2000, ErrorMessage = "备注长度不能超过2000个字符")] | ||
| 66 | + [Display(Name = "备注", Description = "考勤备注信息")] | ||
| 67 | + public string Remark { get; set; } | ||
| 68 | + } | ||
| 69 | +} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryInfoOutput.cs
0 → 100644
| 1 | +using System; | ||
| 2 | +using System.ComponentModel.DataAnnotations; | ||
| 3 | + | ||
| 4 | +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary | ||
| 5 | +{ | ||
| 6 | + /// <summary> | ||
| 7 | + /// 考勤汇总详情输出 | ||
| 8 | + /// </summary> | ||
| 9 | + public class LqAttendanceSummaryInfoOutput | ||
| 10 | + { | ||
| 11 | + /// <summary> | ||
| 12 | + /// 考勤汇总ID | ||
| 13 | + /// </summary> | ||
| 14 | + [Display(Name = "考勤汇总ID")] | ||
| 15 | + public string id { get; set; } | ||
| 16 | + | ||
| 17 | + /// <summary> | ||
| 18 | + /// 用户ID(员工ID) | ||
| 19 | + /// </summary> | ||
| 20 | + [Display(Name = "用户ID")] | ||
| 21 | + public string userId { get; set; } | ||
| 22 | + | ||
| 23 | + /// <summary> | ||
| 24 | + /// 员工姓名 | ||
| 25 | + /// </summary> | ||
| 26 | + [Display(Name = "员工姓名")] | ||
| 27 | + public string userName { get; set; } | ||
| 28 | + | ||
| 29 | + /// <summary> | ||
| 30 | + /// 年份 | ||
| 31 | + /// </summary> | ||
| 32 | + [Display(Name = "年份")] | ||
| 33 | + public int year { get; set; } | ||
| 34 | + | ||
| 35 | + /// <summary> | ||
| 36 | + /// 月份 | ||
| 37 | + /// </summary> | ||
| 38 | + [Display(Name = "月份")] | ||
| 39 | + public int month { get; set; } | ||
| 40 | + | ||
| 41 | + /// <summary> | ||
| 42 | + /// 员工状态 | ||
| 43 | + /// </summary> | ||
| 44 | + [Display(Name = "员工状态")] | ||
| 45 | + public int employeeStatus { get; set; } | ||
| 46 | + | ||
| 47 | + /// <summary> | ||
| 48 | + /// 员工状态名称 | ||
| 49 | + /// </summary> | ||
| 50 | + [Display(Name = "员工状态名称")] | ||
| 51 | + public string employeeStatusName { get; set; } | ||
| 52 | + | ||
| 53 | + /// <summary> | ||
| 54 | + /// 出勤天数 | ||
| 55 | + /// </summary> | ||
| 56 | + [Display(Name = "出勤天数")] | ||
| 57 | + public decimal workDays { get; set; } | ||
| 58 | + | ||
| 59 | + /// <summary> | ||
| 60 | + /// 请假天数 | ||
| 61 | + /// </summary> | ||
| 62 | + [Display(Name = "请假天数")] | ||
| 63 | + public decimal leaveDays { get; set; } | ||
| 64 | + | ||
| 65 | + /// <summary> | ||
| 66 | + /// 休息天数 | ||
| 67 | + /// </summary> | ||
| 68 | + [Display(Name = "休息天数")] | ||
| 69 | + public decimal restDays { get; set; } | ||
| 70 | + | ||
| 71 | + /// <summary> | ||
| 72 | + /// 备注 | ||
| 73 | + /// </summary> | ||
| 74 | + [Display(Name = "备注")] | ||
| 75 | + public string remark { get; set; } | ||
| 76 | + | ||
| 77 | + /// <summary> | ||
| 78 | + /// 创建人ID | ||
| 79 | + /// </summary> | ||
| 80 | + [Display(Name = "创建人ID")] | ||
| 81 | + public string createUser { get; set; } | ||
| 82 | + | ||
| 83 | + /// <summary> | ||
| 84 | + /// 创建人姓名 | ||
| 85 | + /// </summary> | ||
| 86 | + [Display(Name = "创建人姓名")] | ||
| 87 | + public string createUserName { get; set; } | ||
| 88 | + | ||
| 89 | + /// <summary> | ||
| 90 | + /// 创建时间 | ||
| 91 | + /// </summary> | ||
| 92 | + [Display(Name = "创建时间")] | ||
| 93 | + public DateTime createTime { get; set; } | ||
| 94 | + | ||
| 95 | + /// <summary> | ||
| 96 | + /// 更新人ID | ||
| 97 | + /// </summary> | ||
| 98 | + [Display(Name = "更新人ID")] | ||
| 99 | + public string updateUser { get; set; } | ||
| 100 | + | ||
| 101 | + /// <summary> | ||
| 102 | + /// 更新人姓名 | ||
| 103 | + /// </summary> | ||
| 104 | + [Display(Name = "更新人姓名")] | ||
| 105 | + public string updateUserName { get; set; } | ||
| 106 | + | ||
| 107 | + /// <summary> | ||
| 108 | + /// 更新时间 | ||
| 109 | + /// </summary> | ||
| 110 | + [Display(Name = "更新时间")] | ||
| 111 | + public DateTime updateTime { get; set; } | ||
| 112 | + | ||
| 113 | + /// <summary> | ||
| 114 | + /// 是否有效 | ||
| 115 | + /// </summary> | ||
| 116 | + [Display(Name = "是否有效")] | ||
| 117 | + public int isEffective { get; set; } | ||
| 118 | + } | ||
| 119 | +} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryListOutput.cs
0 → 100644
| 1 | +using System; | ||
| 2 | +using System.ComponentModel.DataAnnotations; | ||
| 3 | + | ||
| 4 | +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary | ||
| 5 | +{ | ||
| 6 | + /// <summary> | ||
| 7 | + /// 考勤汇总列表输出 | ||
| 8 | + /// </summary> | ||
| 9 | + public class LqAttendanceSummaryListOutput | ||
| 10 | + { | ||
| 11 | + /// <summary> | ||
| 12 | + /// 考勤汇总ID | ||
| 13 | + /// </summary> | ||
| 14 | + [Display(Name = "考勤汇总ID")] | ||
| 15 | + public string id { get; set; } | ||
| 16 | + | ||
| 17 | + /// <summary> | ||
| 18 | + /// 用户ID(员工ID) | ||
| 19 | + /// </summary> | ||
| 20 | + [Display(Name = "用户ID")] | ||
| 21 | + public string userId { get; set; } | ||
| 22 | + | ||
| 23 | + /// <summary> | ||
| 24 | + /// 员工姓名 | ||
| 25 | + /// </summary> | ||
| 26 | + [Display(Name = "员工姓名")] | ||
| 27 | + public string userName { get; set; } | ||
| 28 | + | ||
| 29 | + /// <summary> | ||
| 30 | + /// 年份 | ||
| 31 | + /// </summary> | ||
| 32 | + [Display(Name = "年份")] | ||
| 33 | + public int year { get; set; } | ||
| 34 | + | ||
| 35 | + /// <summary> | ||
| 36 | + /// 月份 | ||
| 37 | + /// </summary> | ||
| 38 | + [Display(Name = "月份")] | ||
| 39 | + public int month { get; set; } | ||
| 40 | + | ||
| 41 | + /// <summary> | ||
| 42 | + /// 员工状态 | ||
| 43 | + /// </summary> | ||
| 44 | + [Display(Name = "员工状态")] | ||
| 45 | + public int employeeStatus { get; set; } | ||
| 46 | + | ||
| 47 | + // /// <summary> | ||
| 48 | + // /// 员工状态名称 | ||
| 49 | + // /// </summary> | ||
| 50 | + // [Display(Name = "员工状态名称")] | ||
| 51 | + // public string employeeStatusName { get; set; } | ||
| 52 | + | ||
| 53 | + /// <summary> | ||
| 54 | + /// 出勤天数 | ||
| 55 | + /// </summary> | ||
| 56 | + [Display(Name = "出勤天数")] | ||
| 57 | + public decimal workDays { get; set; } | ||
| 58 | + | ||
| 59 | + /// <summary> | ||
| 60 | + /// 请假天数 | ||
| 61 | + /// </summary> | ||
| 62 | + [Display(Name = "请假天数")] | ||
| 63 | + public decimal leaveDays { get; set; } | ||
| 64 | + | ||
| 65 | + /// <summary> | ||
| 66 | + /// 休息天数 | ||
| 67 | + /// </summary> | ||
| 68 | + [Display(Name = "休息天数")] | ||
| 69 | + public decimal restDays { get; set; } | ||
| 70 | + | ||
| 71 | + /// <summary> | ||
| 72 | + /// 备注 | ||
| 73 | + /// </summary> | ||
| 74 | + [Display(Name = "备注")] | ||
| 75 | + public string remark { get; set; } | ||
| 76 | + | ||
| 77 | + /// <summary> | ||
| 78 | + /// 创建人ID | ||
| 79 | + /// </summary> | ||
| 80 | + [Display(Name = "创建人ID")] | ||
| 81 | + public string createUser { get; set; } | ||
| 82 | + | ||
| 83 | + /// <summary> | ||
| 84 | + /// 创建人姓名 | ||
| 85 | + /// </summary> | ||
| 86 | + [Display(Name = "创建人姓名")] | ||
| 87 | + public string createUserName { get; set; } | ||
| 88 | + | ||
| 89 | + /// <summary> | ||
| 90 | + /// 创建时间 | ||
| 91 | + /// </summary> | ||
| 92 | + [Display(Name = "创建时间")] | ||
| 93 | + public DateTime createTime { get; set; } | ||
| 94 | + | ||
| 95 | + /// <summary> | ||
| 96 | + /// 更新人ID | ||
| 97 | + /// </summary> | ||
| 98 | + [Display(Name = "更新人ID")] | ||
| 99 | + public string updateUser { get; set; } | ||
| 100 | + | ||
| 101 | + /// <summary> | ||
| 102 | + /// 更新人姓名 | ||
| 103 | + /// </summary> | ||
| 104 | + [Display(Name = "更新人姓名")] | ||
| 105 | + public string updateUserName { get; set; } | ||
| 106 | + | ||
| 107 | + /// <summary> | ||
| 108 | + /// 更新时间 | ||
| 109 | + /// </summary> | ||
| 110 | + [Display(Name = "更新时间")] | ||
| 111 | + public DateTime updateTime { get; set; } | ||
| 112 | + | ||
| 113 | + /// <summary> | ||
| 114 | + /// 是否有效 | ||
| 115 | + /// </summary> | ||
| 116 | + [Display(Name = "是否有效")] | ||
| 117 | + public int isEffective { get; set; } | ||
| 118 | + } | ||
| 119 | +} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryListQueryInput.cs
0 → 100644
| 1 | +using NCC.Common.Filter; | ||
| 2 | +using System; | ||
| 3 | +using System.ComponentModel.DataAnnotations; | ||
| 4 | + | ||
| 5 | +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary | ||
| 6 | +{ | ||
| 7 | + /// <summary> | ||
| 8 | + /// 考勤汇总列表查询输入 | ||
| 9 | + /// </summary> | ||
| 10 | + public class LqAttendanceSummaryListQueryInput : PageInputBase | ||
| 11 | + { | ||
| 12 | + /// <summary> | ||
| 13 | + /// 用户ID(员工ID) | ||
| 14 | + /// </summary> | ||
| 15 | + [Display(Name = "用户ID", Description = "根据员工ID筛选")] | ||
| 16 | + public string UserId { get; set; } | ||
| 17 | + | ||
| 18 | + /// <summary> | ||
| 19 | + /// 年份 | ||
| 20 | + /// </summary> | ||
| 21 | + [Display(Name = "年份", Description = "根据年份筛选")] | ||
| 22 | + public int? Year { get; set; } | ||
| 23 | + | ||
| 24 | + /// <summary> | ||
| 25 | + /// 月份 | ||
| 26 | + /// </summary> | ||
| 27 | + [Display(Name = "月份", Description = "根据月份筛选")] | ||
| 28 | + public int? Month { get; set; } | ||
| 29 | + | ||
| 30 | + /// <summary> | ||
| 31 | + /// 员工状态 | ||
| 32 | + /// </summary> | ||
| 33 | + [Display(Name = "员工状态", Description = "根据员工状态筛选")] | ||
| 34 | + public int? EmployeeStatus { get; set; } | ||
| 35 | + | ||
| 36 | + /// <summary> | ||
| 37 | + /// 开始时间 | ||
| 38 | + /// </summary> | ||
| 39 | + [Display(Name = "开始时间", Description = "创建时间的开始范围")] | ||
| 40 | + public DateTime? StartTime { get; set; } | ||
| 41 | + | ||
| 42 | + /// <summary> | ||
| 43 | + /// 结束时间 | ||
| 44 | + /// </summary> | ||
| 45 | + [Display(Name = "结束时间", Description = "创建时间的结束范围")] | ||
| 46 | + public DateTime? EndTime { get; set; } | ||
| 47 | + } | ||
| 48 | +} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqAttendanceSummary/LqAttendanceSummaryUpInput.cs
0 → 100644
| 1 | +using System; | ||
| 2 | +using System.ComponentModel.DataAnnotations; | ||
| 3 | + | ||
| 4 | +namespace NCC.Extend.Entitys.Dto.LqAttendanceSummary | ||
| 5 | +{ | ||
| 6 | + /// <summary> | ||
| 7 | + /// 考勤汇总更新输入 | ||
| 8 | + /// </summary> | ||
| 9 | + public class LqAttendanceSummaryUpInput : LqAttendanceSummaryCrInput | ||
| 10 | + { | ||
| 11 | + /// <summary> | ||
| 12 | + /// 考勤汇总ID | ||
| 13 | + /// </summary> | ||
| 14 | + [Required(ErrorMessage = "考勤汇总ID不能为空")] | ||
| 15 | + [Display(Name = "考勤汇总ID", Description = "要更新的考勤汇总记录ID")] | ||
| 16 | + public new string id { get; set; } | ||
| 17 | + } | ||
| 18 | +} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdJksyj/LqKdJksyjInfoOutput.cs
| @@ -56,6 +56,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | @@ -56,6 +56,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | ||
| 56 | /// <summary> | 56 | /// <summary> |
| 57 | /// 是否有效 | 57 | /// 是否有效 |
| 58 | /// </summary> | 58 | /// </summary> |
| 59 | - public int IsEffective { get; set; } | 59 | + public int isEffective { get; set; } |
| 60 | } | 60 | } |
| 61 | } | 61 | } |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbInfoOutput.cs
| @@ -134,33 +134,33 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | @@ -134,33 +134,33 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | ||
| 134 | /// <summary> | 134 | /// <summary> |
| 135 | /// 方案其他 | 135 | /// 方案其他 |
| 136 | /// </summary> | 136 | /// </summary> |
| 137 | - public string F_FIleUrl { get; set; } | 137 | + public string fileUrl { get; set; } |
| 138 | 138 | ||
| 139 | /// <summary> | 139 | /// <summary> |
| 140 | /// 是否有效 | 140 | /// 是否有效 |
| 141 | /// </summary> | 141 | /// </summary> |
| 142 | - public int IsEffective { get; set; } | 142 | + public int isEffective { get; set; } |
| 143 | 143 | ||
| 144 | /// <summary> | 144 | /// <summary> |
| 145 | /// 补缴开单ID | 145 | /// 补缴开单ID |
| 146 | /// </summary> | 146 | /// </summary> |
| 147 | - public string SupplementBillingId { get; set; } | 147 | + public string supplementBillingId { get; set; } |
| 148 | 148 | ||
| 149 | /// <summary> | 149 | /// <summary> |
| 150 | /// 补缴金额 | 150 | /// 补缴金额 |
| 151 | /// </summary> | 151 | /// </summary> |
| 152 | - public decimal SupplementAmount { get; set; } | 152 | + public decimal supplementAmount { get; set; } |
| 153 | 153 | ||
| 154 | /// <summary> | 154 | /// <summary> |
| 155 | /// 已缴欠款 | 155 | /// 已缴欠款 |
| 156 | /// </summary> | 156 | /// </summary> |
| 157 | - public decimal PaidDebt { get; set; } | 157 | + public decimal paidDebt { get; set; } |
| 158 | 158 | ||
| 159 | 159 | ||
| 160 | /// <summary> | 160 | /// <summary> |
| 161 | /// 作废关联备注 | 161 | /// 作废关联备注 |
| 162 | /// </summary> | 162 | /// </summary> |
| 163 | - public string CancelRefRemarks { get; set; } | 163 | + public string cancelRefRemarks { get; set; } |
| 164 | 164 | ||
| 165 | /// <summary> | 165 | /// <summary> |
| 166 | /// 健康师业绩 | 166 | /// 健康师业绩 |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs
| @@ -56,7 +56,7 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | @@ -56,7 +56,7 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | ||
| 56 | /// <summary> | 56 | /// <summary> |
| 57 | /// 已缴欠款 | 57 | /// 已缴欠款 |
| 58 | /// </summary> | 58 | /// </summary> |
| 59 | - public decimal PaidDebt { get; set; } | 59 | + public decimal paidDebt { get; set; } |
| 60 | 60 | ||
| 61 | /// <summary> | 61 | /// <summary> |
| 62 | /// 储扣方式 | 62 | /// 储扣方式 |
| @@ -126,22 +126,37 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | @@ -126,22 +126,37 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | ||
| 126 | /// <summary> | 126 | /// <summary> |
| 127 | /// 方案其他 | 127 | /// 方案其他 |
| 128 | /// </summary> | 128 | /// </summary> |
| 129 | - public string F_FIleUrl { get; set; } | 129 | + public string fileUrl { get; set; } |
| 130 | 130 | ||
| 131 | /// <summary> | 131 | /// <summary> |
| 132 | /// 是否有效 | 132 | /// 是否有效 |
| 133 | /// </summary> | 133 | /// </summary> |
| 134 | - public int IsEffective { get; set; } | 134 | + public int isEffective { get; set; } |
| 135 | 135 | ||
| 136 | /// <summary> | 136 | /// <summary> |
| 137 | /// 开单用户 | 137 | /// 开单用户 |
| 138 | /// </summary> | 138 | /// </summary> |
| 139 | - public string CreateUser { get; set; } | 139 | + public string createUser { get; set; } |
| 140 | + | ||
| 141 | + /// <summary> | ||
| 142 | + /// 作废备注 | ||
| 143 | + /// </summary> | ||
| 144 | + public string cancelRefRemarks { get; set; } | ||
| 145 | + | ||
| 146 | + | ||
| 147 | + /// <summary> | ||
| 148 | + /// 补缴开单ID | ||
| 149 | + /// </summary> | ||
| 150 | + public string supplementBillingId { get; set; } | ||
| 151 | + /// <summary> | ||
| 152 | + /// 补缴金额 | ||
| 153 | + /// </summary> | ||
| 154 | + public decimal supplementAmount { get; set; } | ||
| 140 | 155 | ||
| 141 | /// <summary> | 156 | /// <summary> |
| 142 | /// 开单用户名称 | 157 | /// 开单用户名称 |
| 143 | /// </summary> | 158 | /// </summary> |
| 144 | - public string CreateUserName { get; set; } | 159 | + public string createUserName { get; set; } |
| 145 | 160 | ||
| 146 | /// <summary> | 161 | /// <summary> |
| 147 | /// 开单品项明细列表 | 162 | /// 开单品项明细列表 |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKjbsyj/LqKdKjbsyjInfoOutput.cs
| @@ -51,6 +51,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | @@ -51,6 +51,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | ||
| 51 | /// <summary> | 51 | /// <summary> |
| 52 | /// 是否有效 | 52 | /// 是否有效 |
| 53 | /// </summary> | 53 | /// </summary> |
| 54 | - public int IsEffective { get; set; } | 54 | + public int isEffective { get; set; } |
| 55 | } | 55 | } |
| 56 | } | 56 | } |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbCrInput.cs deleted
| 1 | -using System; | ||
| 2 | -using System.Collections.Generic; | ||
| 3 | - | ||
| 4 | -namespace NCC.Extend.Entitys.Dto.LqKqhzb | ||
| 5 | -{ | ||
| 6 | - /// <summary> | ||
| 7 | - /// 考勤汇总表修改输入参数 | ||
| 8 | - /// </summary> | ||
| 9 | - public class LqKqhzbCrInput | ||
| 10 | - { | ||
| 11 | - /// <summary> | ||
| 12 | - /// 考勤编号 | ||
| 13 | - /// </summary> | ||
| 14 | - public string id { get; set; } | ||
| 15 | - | ||
| 16 | - /// <summary> | ||
| 17 | - /// 门店编号 | ||
| 18 | - /// </summary> | ||
| 19 | - public string mdbh { get; set; } | ||
| 20 | - | ||
| 21 | - /// <summary> | ||
| 22 | - /// 门店名称 | ||
| 23 | - /// </summary> | ||
| 24 | - public string mdmc { get; set; } | ||
| 25 | - | ||
| 26 | - /// <summary> | ||
| 27 | - /// 职位 | ||
| 28 | - /// </summary> | ||
| 29 | - public string zw { get; set; } | ||
| 30 | - | ||
| 31 | - /// <summary> | ||
| 32 | - /// 岗位分类1 | ||
| 33 | - /// </summary> | ||
| 34 | - public string gwfl1 { get; set; } | ||
| 35 | - | ||
| 36 | - /// <summary> | ||
| 37 | - /// 员工编号 | ||
| 38 | - /// </summary> | ||
| 39 | - public string ygbh { get; set; } | ||
| 40 | - | ||
| 41 | - /// <summary> | ||
| 42 | - /// 姓名 | ||
| 43 | - /// </summary> | ||
| 44 | - public string xm { get; set; } | ||
| 45 | - | ||
| 46 | - /// <summary> | ||
| 47 | - /// 在职情况 | ||
| 48 | - /// </summary> | ||
| 49 | - public string zzqk { get; set; } | ||
| 50 | - | ||
| 51 | - /// <summary> | ||
| 52 | - /// 岗位分类2 | ||
| 53 | - /// </summary> | ||
| 54 | - public string gwfl2 { get; set; } | ||
| 55 | - | ||
| 56 | - /// <summary> | ||
| 57 | - /// 发放月份 | ||
| 58 | - /// </summary> | ||
| 59 | - public string ffyf { get; set; } | ||
| 60 | - | ||
| 61 | - /// <summary> | ||
| 62 | - /// 在岗天数 | ||
| 63 | - /// </summary> | ||
| 64 | - public string zgts { get; set; } | ||
| 65 | - | ||
| 66 | - /// <summary> | ||
| 67 | - /// 当月标准休息天数 | ||
| 68 | - /// </summary> | ||
| 69 | - public string dybzxxts { get; set; } | ||
| 70 | - | ||
| 71 | - /// <summary> | ||
| 72 | - /// 实际休息天数 | ||
| 73 | - /// </summary> | ||
| 74 | - public string sjxxts { get; set; } | ||
| 75 | - | ||
| 76 | - /// <summary> | ||
| 77 | - /// 休息 | ||
| 78 | - /// </summary> | ||
| 79 | - public string xx { get; set; } | ||
| 80 | - | ||
| 81 | - /// <summary> | ||
| 82 | - /// 请假 | ||
| 83 | - /// </summary> | ||
| 84 | - public string qj { get; set; } | ||
| 85 | - | ||
| 86 | - /// <summary> | ||
| 87 | - /// 福利假 | ||
| 88 | - /// </summary> | ||
| 89 | - public string flj { get; set; } | ||
| 90 | - | ||
| 91 | - /// <summary> | ||
| 92 | - /// 丧假 | ||
| 93 | - /// </summary> | ||
| 94 | - public string sj { get; set; } | ||
| 95 | - | ||
| 96 | - /// <summary> | ||
| 97 | - /// 年假 | ||
| 98 | - /// </summary> | ||
| 99 | - public string nj { get; set; } | ||
| 100 | - | ||
| 101 | - /// <summary> | ||
| 102 | - /// 出勤 | ||
| 103 | - /// </summary> | ||
| 104 | - public string cq { get; set; } | ||
| 105 | - | ||
| 106 | - /// <summary> | ||
| 107 | - /// 出勤加休息 | ||
| 108 | - /// </summary> | ||
| 109 | - public string cqjxx { get; set; } | ||
| 110 | - | ||
| 111 | - /// <summary> | ||
| 112 | - /// 应休 | ||
| 113 | - /// </summary> | ||
| 114 | - public string yx { get; set; } | ||
| 115 | - | ||
| 116 | - /// <summary> | ||
| 117 | - /// 不扣天数 | ||
| 118 | - /// </summary> | ||
| 119 | - public string bkts { get; set; } | ||
| 120 | - | ||
| 121 | - /// <summary> | ||
| 122 | - /// 调减休息 | ||
| 123 | - /// </summary> | ||
| 124 | - public string tjxx { get; set; } | ||
| 125 | - | ||
| 126 | - /// <summary> | ||
| 127 | - /// 实际请假 | ||
| 128 | - /// </summary> | ||
| 129 | - public string sjqj { get; set; } | ||
| 130 | - | ||
| 131 | - /// <summary> | ||
| 132 | - /// 少休天数 | ||
| 133 | - /// </summary> | ||
| 134 | - public string sxts { get; set; } | ||
| 135 | - | ||
| 136 | - /// <summary> | ||
| 137 | - /// 少休补贴 | ||
| 138 | - /// </summary> | ||
| 139 | - public string sxbt { get; set; } | ||
| 140 | - | ||
| 141 | - /// <summary> | ||
| 142 | - /// 缺卡 | ||
| 143 | - /// </summary> | ||
| 144 | - public string qk { get; set; } | ||
| 145 | - | ||
| 146 | - /// <summary> | ||
| 147 | - /// 迟到 | ||
| 148 | - /// </summary> | ||
| 149 | - public string cd { get; set; } | ||
| 150 | - | ||
| 151 | - /// <summary> | ||
| 152 | - /// 全勤 | ||
| 153 | - /// </summary> | ||
| 154 | - public string qq { get; set; } | ||
| 155 | - | ||
| 156 | - /// <summary> | ||
| 157 | - /// 交通补助 | ||
| 158 | - /// </summary> | ||
| 159 | - public string jtbz { get; set; } | ||
| 160 | - | ||
| 161 | - /// <summary> | ||
| 162 | - /// 学习期扣款 | ||
| 163 | - /// </summary> | ||
| 164 | - public string xxqkk { get; set; } | ||
| 165 | - | ||
| 166 | - /// <summary> | ||
| 167 | - /// 住宿 | ||
| 168 | - /// </summary> | ||
| 169 | - public string zs { get; set; } | ||
| 170 | - | ||
| 171 | - /// <summary> | ||
| 172 | - /// 工作服 | ||
| 173 | - /// </summary> | ||
| 174 | - public string gzf { get; set; } | ||
| 175 | - | ||
| 176 | - /// <summary> | ||
| 177 | - /// 手机押金 | ||
| 178 | - /// </summary> | ||
| 179 | - public string sjyj { get; set; } | ||
| 180 | - | ||
| 181 | - /// <summary> | ||
| 182 | - /// 宿舍押金 | ||
| 183 | - /// </summary> | ||
| 184 | - public string ssyj { get; set; } | ||
| 185 | - | ||
| 186 | - /// <summary> | ||
| 187 | - /// 其他奖励 | ||
| 188 | - /// </summary> | ||
| 189 | - public string qtjl { get; set; } | ||
| 190 | - | ||
| 191 | - /// <summary> | ||
| 192 | - /// 保底已核算金额 | ||
| 193 | - /// </summary> | ||
| 194 | - public string bdyhsje { get; set; } | ||
| 195 | - | ||
| 196 | - /// <summary> | ||
| 197 | - /// 当月培训 | ||
| 198 | - /// </summary> | ||
| 199 | - public string dypx { get; set; } | ||
| 200 | - | ||
| 201 | - /// <summary> | ||
| 202 | - /// 当月交通补贴 | ||
| 203 | - /// </summary> | ||
| 204 | - public string dyjtbt { get; set; } | ||
| 205 | - | ||
| 206 | - /// <summary> | ||
| 207 | - /// 应发上月 | ||
| 208 | - /// </summary> | ||
| 209 | - public string yfsy { get; set; } | ||
| 210 | - | ||
| 211 | - /// <summary> | ||
| 212 | - /// 应发次月 | ||
| 213 | - /// </summary> | ||
| 214 | - public string yfcy { get; set; } | ||
| 215 | - | ||
| 216 | - /// <summary> | ||
| 217 | - /// 在店天数 | ||
| 218 | - /// </summary> | ||
| 219 | - public string zdts { get; set; } | ||
| 220 | - | ||
| 221 | - /// <summary> | ||
| 222 | - /// 跨月天数 | ||
| 223 | - /// </summary> | ||
| 224 | - public string kyts { get; set; } | ||
| 225 | - | ||
| 226 | - /// <summary> | ||
| 227 | - /// 上月工资有 | ||
| 228 | - /// </summary> | ||
| 229 | - public string sygzy { get; set; } | ||
| 230 | - | ||
| 231 | - /// <summary> | ||
| 232 | - /// 当月在店加正常休天数 | ||
| 233 | - /// </summary> | ||
| 234 | - public string dyzdjzcxts { get; set; } | ||
| 235 | - | ||
| 236 | - /// <summary> | ||
| 237 | - /// 当月是否核算 | ||
| 238 | - /// </summary> | ||
| 239 | - public string dysfhs { get; set; } | ||
| 240 | - | ||
| 241 | - } | ||
| 242 | -} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbInfoOutput.cs deleted
| 1 | -using System; | ||
| 2 | -using System.Collections.Generic; | ||
| 3 | - | ||
| 4 | -namespace NCC.Extend.Entitys.Dto.LqKqhzb | ||
| 5 | -{ | ||
| 6 | - /// <summary> | ||
| 7 | - /// 考勤汇总表输出参数 | ||
| 8 | - /// </summary> | ||
| 9 | - public class LqKqhzbInfoOutput | ||
| 10 | - { | ||
| 11 | - /// <summary> | ||
| 12 | - /// 考勤编号 | ||
| 13 | - /// </summary> | ||
| 14 | - public string id { get; set; } | ||
| 15 | - | ||
| 16 | - /// <summary> | ||
| 17 | - /// 门店编号 | ||
| 18 | - /// </summary> | ||
| 19 | - public string mdbh { get; set; } | ||
| 20 | - | ||
| 21 | - /// <summary> | ||
| 22 | - /// 门店名称 | ||
| 23 | - /// </summary> | ||
| 24 | - public string mdmc { get; set; } | ||
| 25 | - | ||
| 26 | - /// <summary> | ||
| 27 | - /// 职位 | ||
| 28 | - /// </summary> | ||
| 29 | - public string zw { get; set; } | ||
| 30 | - | ||
| 31 | - /// <summary> | ||
| 32 | - /// 岗位分类1 | ||
| 33 | - /// </summary> | ||
| 34 | - public string gwfl1 { get; set; } | ||
| 35 | - | ||
| 36 | - /// <summary> | ||
| 37 | - /// 员工编号 | ||
| 38 | - /// </summary> | ||
| 39 | - public string ygbh { get; set; } | ||
| 40 | - | ||
| 41 | - /// <summary> | ||
| 42 | - /// 姓名 | ||
| 43 | - /// </summary> | ||
| 44 | - public string xm { get; set; } | ||
| 45 | - | ||
| 46 | - /// <summary> | ||
| 47 | - /// 在职情况 | ||
| 48 | - /// </summary> | ||
| 49 | - public string zzqk { get; set; } | ||
| 50 | - | ||
| 51 | - /// <summary> | ||
| 52 | - /// 岗位分类2 | ||
| 53 | - /// </summary> | ||
| 54 | - public string gwfl2 { get; set; } | ||
| 55 | - | ||
| 56 | - /// <summary> | ||
| 57 | - /// 发放月份 | ||
| 58 | - /// </summary> | ||
| 59 | - public string ffyf { get; set; } | ||
| 60 | - | ||
| 61 | - /// <summary> | ||
| 62 | - /// 在岗天数 | ||
| 63 | - /// </summary> | ||
| 64 | - public string zgts { get; set; } | ||
| 65 | - | ||
| 66 | - /// <summary> | ||
| 67 | - /// 当月标准休息天数 | ||
| 68 | - /// </summary> | ||
| 69 | - public string dybzxxts { get; set; } | ||
| 70 | - | ||
| 71 | - /// <summary> | ||
| 72 | - /// 实际休息天数 | ||
| 73 | - /// </summary> | ||
| 74 | - public string sjxxts { get; set; } | ||
| 75 | - | ||
| 76 | - /// <summary> | ||
| 77 | - /// 休息 | ||
| 78 | - /// </summary> | ||
| 79 | - public string xx { get; set; } | ||
| 80 | - | ||
| 81 | - /// <summary> | ||
| 82 | - /// 请假 | ||
| 83 | - /// </summary> | ||
| 84 | - public string qj { get; set; } | ||
| 85 | - | ||
| 86 | - /// <summary> | ||
| 87 | - /// 福利假 | ||
| 88 | - /// </summary> | ||
| 89 | - public string flj { get; set; } | ||
| 90 | - | ||
| 91 | - /// <summary> | ||
| 92 | - /// 丧假 | ||
| 93 | - /// </summary> | ||
| 94 | - public string sj { get; set; } | ||
| 95 | - | ||
| 96 | - /// <summary> | ||
| 97 | - /// 年假 | ||
| 98 | - /// </summary> | ||
| 99 | - public string nj { get; set; } | ||
| 100 | - | ||
| 101 | - /// <summary> | ||
| 102 | - /// 出勤 | ||
| 103 | - /// </summary> | ||
| 104 | - public string cq { get; set; } | ||
| 105 | - | ||
| 106 | - /// <summary> | ||
| 107 | - /// 出勤加休息 | ||
| 108 | - /// </summary> | ||
| 109 | - public string cqjxx { get; set; } | ||
| 110 | - | ||
| 111 | - /// <summary> | ||
| 112 | - /// 应休 | ||
| 113 | - /// </summary> | ||
| 114 | - public string yx { get; set; } | ||
| 115 | - | ||
| 116 | - /// <summary> | ||
| 117 | - /// 不扣天数 | ||
| 118 | - /// </summary> | ||
| 119 | - public string bkts { get; set; } | ||
| 120 | - | ||
| 121 | - /// <summary> | ||
| 122 | - /// 调减休息 | ||
| 123 | - /// </summary> | ||
| 124 | - public string tjxx { get; set; } | ||
| 125 | - | ||
| 126 | - /// <summary> | ||
| 127 | - /// 实际请假 | ||
| 128 | - /// </summary> | ||
| 129 | - public string sjqj { get; set; } | ||
| 130 | - | ||
| 131 | - /// <summary> | ||
| 132 | - /// 少休天数 | ||
| 133 | - /// </summary> | ||
| 134 | - public string sxts { get; set; } | ||
| 135 | - | ||
| 136 | - /// <summary> | ||
| 137 | - /// 少休补贴 | ||
| 138 | - /// </summary> | ||
| 139 | - public string sxbt { get; set; } | ||
| 140 | - | ||
| 141 | - /// <summary> | ||
| 142 | - /// 缺卡 | ||
| 143 | - /// </summary> | ||
| 144 | - public string qk { get; set; } | ||
| 145 | - | ||
| 146 | - /// <summary> | ||
| 147 | - /// 迟到 | ||
| 148 | - /// </summary> | ||
| 149 | - public string cd { get; set; } | ||
| 150 | - | ||
| 151 | - /// <summary> | ||
| 152 | - /// 全勤 | ||
| 153 | - /// </summary> | ||
| 154 | - public string qq { get; set; } | ||
| 155 | - | ||
| 156 | - /// <summary> | ||
| 157 | - /// 交通补助 | ||
| 158 | - /// </summary> | ||
| 159 | - public string jtbz { get; set; } | ||
| 160 | - | ||
| 161 | - /// <summary> | ||
| 162 | - /// 学习期扣款 | ||
| 163 | - /// </summary> | ||
| 164 | - public string xxqkk { get; set; } | ||
| 165 | - | ||
| 166 | - /// <summary> | ||
| 167 | - /// 住宿 | ||
| 168 | - /// </summary> | ||
| 169 | - public string zs { get; set; } | ||
| 170 | - | ||
| 171 | - /// <summary> | ||
| 172 | - /// 工作服 | ||
| 173 | - /// </summary> | ||
| 174 | - public string gzf { get; set; } | ||
| 175 | - | ||
| 176 | - /// <summary> | ||
| 177 | - /// 手机押金 | ||
| 178 | - /// </summary> | ||
| 179 | - public string sjyj { get; set; } | ||
| 180 | - | ||
| 181 | - /// <summary> | ||
| 182 | - /// 宿舍押金 | ||
| 183 | - /// </summary> | ||
| 184 | - public string ssyj { get; set; } | ||
| 185 | - | ||
| 186 | - /// <summary> | ||
| 187 | - /// 其他奖励 | ||
| 188 | - /// </summary> | ||
| 189 | - public string qtjl { get; set; } | ||
| 190 | - | ||
| 191 | - /// <summary> | ||
| 192 | - /// 保底已核算金额 | ||
| 193 | - /// </summary> | ||
| 194 | - public string bdyhsje { get; set; } | ||
| 195 | - | ||
| 196 | - /// <summary> | ||
| 197 | - /// 当月培训 | ||
| 198 | - /// </summary> | ||
| 199 | - public string dypx { get; set; } | ||
| 200 | - | ||
| 201 | - /// <summary> | ||
| 202 | - /// 当月交通补贴 | ||
| 203 | - /// </summary> | ||
| 204 | - public string dyjtbt { get; set; } | ||
| 205 | - | ||
| 206 | - /// <summary> | ||
| 207 | - /// 应发上月 | ||
| 208 | - /// </summary> | ||
| 209 | - public string yfsy { get; set; } | ||
| 210 | - | ||
| 211 | - /// <summary> | ||
| 212 | - /// 应发次月 | ||
| 213 | - /// </summary> | ||
| 214 | - public string yfcy { get; set; } | ||
| 215 | - | ||
| 216 | - /// <summary> | ||
| 217 | - /// 在店天数 | ||
| 218 | - /// </summary> | ||
| 219 | - public string zdts { get; set; } | ||
| 220 | - | ||
| 221 | - /// <summary> | ||
| 222 | - /// 跨月天数 | ||
| 223 | - /// </summary> | ||
| 224 | - public string kyts { get; set; } | ||
| 225 | - | ||
| 226 | - /// <summary> | ||
| 227 | - /// 上月工资有 | ||
| 228 | - /// </summary> | ||
| 229 | - public string sygzy { get; set; } | ||
| 230 | - | ||
| 231 | - /// <summary> | ||
| 232 | - /// 当月在店加正常休天数 | ||
| 233 | - /// </summary> | ||
| 234 | - public string dyzdjzcxts { get; set; } | ||
| 235 | - | ||
| 236 | - /// <summary> | ||
| 237 | - /// 当月是否核算 | ||
| 238 | - /// </summary> | ||
| 239 | - public string dysfhs { get; set; } | ||
| 240 | - | ||
| 241 | - } | ||
| 242 | -} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbListOutput.cs deleted
| 1 | -using System; | ||
| 2 | - | ||
| 3 | -namespace NCC.Extend.Entitys.Dto.LqKqhzb | ||
| 4 | -{ | ||
| 5 | - /// <summary> | ||
| 6 | - /// 考勤汇总表输入参数 | ||
| 7 | - /// </summary> | ||
| 8 | - public class LqKqhzbListOutput | ||
| 9 | - { | ||
| 10 | - /// <summary> | ||
| 11 | - /// 考勤编号 | ||
| 12 | - /// </summary> | ||
| 13 | - public string id { get; set; } | ||
| 14 | - | ||
| 15 | - /// <summary> | ||
| 16 | - /// 门店编号 | ||
| 17 | - /// </summary> | ||
| 18 | - public string mdbh { get; set; } | ||
| 19 | - | ||
| 20 | - /// <summary> | ||
| 21 | - /// 门店名称 | ||
| 22 | - /// </summary> | ||
| 23 | - public string mdmc { get; set; } | ||
| 24 | - | ||
| 25 | - /// <summary> | ||
| 26 | - /// 职位 | ||
| 27 | - /// </summary> | ||
| 28 | - public string zw { get; set; } | ||
| 29 | - | ||
| 30 | - /// <summary> | ||
| 31 | - /// 岗位分类1 | ||
| 32 | - /// </summary> | ||
| 33 | - public string gwfl1 { get; set; } | ||
| 34 | - | ||
| 35 | - /// <summary> | ||
| 36 | - /// 员工编号 | ||
| 37 | - /// </summary> | ||
| 38 | - public string ygbh { get; set; } | ||
| 39 | - | ||
| 40 | - /// <summary> | ||
| 41 | - /// 姓名 | ||
| 42 | - /// </summary> | ||
| 43 | - public string xm { get; set; } | ||
| 44 | - | ||
| 45 | - /// <summary> | ||
| 46 | - /// 在职情况 | ||
| 47 | - /// </summary> | ||
| 48 | - public string zzqk { get; set; } | ||
| 49 | - | ||
| 50 | - /// <summary> | ||
| 51 | - /// 岗位分类2 | ||
| 52 | - /// </summary> | ||
| 53 | - public string gwfl2 { get; set; } | ||
| 54 | - | ||
| 55 | - /// <summary> | ||
| 56 | - /// 发放月份 | ||
| 57 | - /// </summary> | ||
| 58 | - public string ffyf { get; set; } | ||
| 59 | - | ||
| 60 | - /// <summary> | ||
| 61 | - /// 在岗天数 | ||
| 62 | - /// </summary> | ||
| 63 | - public string zgts { get; set; } | ||
| 64 | - | ||
| 65 | - /// <summary> | ||
| 66 | - /// 当月标准休息天数 | ||
| 67 | - /// </summary> | ||
| 68 | - public string dybzxxts { get; set; } | ||
| 69 | - | ||
| 70 | - /// <summary> | ||
| 71 | - /// 实际休息天数 | ||
| 72 | - /// </summary> | ||
| 73 | - public string sjxxts { get; set; } | ||
| 74 | - | ||
| 75 | - /// <summary> | ||
| 76 | - /// 休息 | ||
| 77 | - /// </summary> | ||
| 78 | - public string xx { get; set; } | ||
| 79 | - | ||
| 80 | - /// <summary> | ||
| 81 | - /// 请假 | ||
| 82 | - /// </summary> | ||
| 83 | - public string qj { get; set; } | ||
| 84 | - | ||
| 85 | - /// <summary> | ||
| 86 | - /// 福利假 | ||
| 87 | - /// </summary> | ||
| 88 | - public string flj { get; set; } | ||
| 89 | - | ||
| 90 | - /// <summary> | ||
| 91 | - /// 丧假 | ||
| 92 | - /// </summary> | ||
| 93 | - public string sj { get; set; } | ||
| 94 | - | ||
| 95 | - /// <summary> | ||
| 96 | - /// 年假 | ||
| 97 | - /// </summary> | ||
| 98 | - public string nj { get; set; } | ||
| 99 | - | ||
| 100 | - /// <summary> | ||
| 101 | - /// 出勤 | ||
| 102 | - /// </summary> | ||
| 103 | - public string cq { get; set; } | ||
| 104 | - | ||
| 105 | - /// <summary> | ||
| 106 | - /// 出勤加休息 | ||
| 107 | - /// </summary> | ||
| 108 | - public string cqjxx { get; set; } | ||
| 109 | - | ||
| 110 | - /// <summary> | ||
| 111 | - /// 应休 | ||
| 112 | - /// </summary> | ||
| 113 | - public string yx { get; set; } | ||
| 114 | - | ||
| 115 | - /// <summary> | ||
| 116 | - /// 不扣天数 | ||
| 117 | - /// </summary> | ||
| 118 | - public string bkts { get; set; } | ||
| 119 | - | ||
| 120 | - /// <summary> | ||
| 121 | - /// 调减休息 | ||
| 122 | - /// </summary> | ||
| 123 | - public string tjxx { get; set; } | ||
| 124 | - | ||
| 125 | - /// <summary> | ||
| 126 | - /// 实际请假 | ||
| 127 | - /// </summary> | ||
| 128 | - public string sjqj { get; set; } | ||
| 129 | - | ||
| 130 | - /// <summary> | ||
| 131 | - /// 少休天数 | ||
| 132 | - /// </summary> | ||
| 133 | - public string sxts { get; set; } | ||
| 134 | - | ||
| 135 | - /// <summary> | ||
| 136 | - /// 少休补贴 | ||
| 137 | - /// </summary> | ||
| 138 | - public string sxbt { get; set; } | ||
| 139 | - | ||
| 140 | - /// <summary> | ||
| 141 | - /// 缺卡 | ||
| 142 | - /// </summary> | ||
| 143 | - public string qk { get; set; } | ||
| 144 | - | ||
| 145 | - /// <summary> | ||
| 146 | - /// 迟到 | ||
| 147 | - /// </summary> | ||
| 148 | - public string cd { get; set; } | ||
| 149 | - | ||
| 150 | - /// <summary> | ||
| 151 | - /// 全勤 | ||
| 152 | - /// </summary> | ||
| 153 | - public string qq { get; set; } | ||
| 154 | - | ||
| 155 | - /// <summary> | ||
| 156 | - /// 交通补助 | ||
| 157 | - /// </summary> | ||
| 158 | - public string jtbz { get; set; } | ||
| 159 | - | ||
| 160 | - /// <summary> | ||
| 161 | - /// 学习期扣款 | ||
| 162 | - /// </summary> | ||
| 163 | - public string xxqkk { get; set; } | ||
| 164 | - | ||
| 165 | - /// <summary> | ||
| 166 | - /// 住宿 | ||
| 167 | - /// </summary> | ||
| 168 | - public string zs { get; set; } | ||
| 169 | - | ||
| 170 | - /// <summary> | ||
| 171 | - /// 工作服 | ||
| 172 | - /// </summary> | ||
| 173 | - public string gzf { get; set; } | ||
| 174 | - | ||
| 175 | - /// <summary> | ||
| 176 | - /// 手机押金 | ||
| 177 | - /// </summary> | ||
| 178 | - public string sjyj { get; set; } | ||
| 179 | - | ||
| 180 | - /// <summary> | ||
| 181 | - /// 宿舍押金 | ||
| 182 | - /// </summary> | ||
| 183 | - public string ssyj { get; set; } | ||
| 184 | - | ||
| 185 | - /// <summary> | ||
| 186 | - /// 其他奖励 | ||
| 187 | - /// </summary> | ||
| 188 | - public string qtjl { get; set; } | ||
| 189 | - | ||
| 190 | - /// <summary> | ||
| 191 | - /// 保底已核算金额 | ||
| 192 | - /// </summary> | ||
| 193 | - public string bdyhsje { get; set; } | ||
| 194 | - | ||
| 195 | - /// <summary> | ||
| 196 | - /// 当月培训 | ||
| 197 | - /// </summary> | ||
| 198 | - public string dypx { get; set; } | ||
| 199 | - | ||
| 200 | - /// <summary> | ||
| 201 | - /// 当月交通补贴 | ||
| 202 | - /// </summary> | ||
| 203 | - public string dyjtbt { get; set; } | ||
| 204 | - | ||
| 205 | - /// <summary> | ||
| 206 | - /// 应发上月 | ||
| 207 | - /// </summary> | ||
| 208 | - public string yfsy { get; set; } | ||
| 209 | - | ||
| 210 | - /// <summary> | ||
| 211 | - /// 应发次月 | ||
| 212 | - /// </summary> | ||
| 213 | - public string yfcy { get; set; } | ||
| 214 | - | ||
| 215 | - /// <summary> | ||
| 216 | - /// 在店天数 | ||
| 217 | - /// </summary> | ||
| 218 | - public string zdts { get; set; } | ||
| 219 | - | ||
| 220 | - /// <summary> | ||
| 221 | - /// 跨月天数 | ||
| 222 | - /// </summary> | ||
| 223 | - public string kyts { get; set; } | ||
| 224 | - | ||
| 225 | - /// <summary> | ||
| 226 | - /// 上月工资有 | ||
| 227 | - /// </summary> | ||
| 228 | - public string sygzy { get; set; } | ||
| 229 | - | ||
| 230 | - /// <summary> | ||
| 231 | - /// 当月在店加正常休天数 | ||
| 232 | - /// </summary> | ||
| 233 | - public string dyzdjzcxts { get; set; } | ||
| 234 | - | ||
| 235 | - /// <summary> | ||
| 236 | - /// 当月是否核算 | ||
| 237 | - /// </summary> | ||
| 238 | - public string dysfhs { get; set; } | ||
| 239 | - | ||
| 240 | - } | ||
| 241 | -} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbListQueryInput.cs deleted
| 1 | -using NCC.Common.Filter; | ||
| 2 | -using System.Collections.Generic; | ||
| 3 | - | ||
| 4 | -namespace NCC.Extend.Entitys.Dto.LqKqhzb | ||
| 5 | -{ | ||
| 6 | - /// <summary> | ||
| 7 | - /// 考勤汇总表列表查询输入 | ||
| 8 | - /// </summary> | ||
| 9 | - public class LqKqhzbListQueryInput : PageInputBase | ||
| 10 | - { | ||
| 11 | - /// <summary> | ||
| 12 | - /// 选择导出数据key | ||
| 13 | - /// </summary> | ||
| 14 | - public string selectKey { get; set; } | ||
| 15 | - | ||
| 16 | - /// <summary> | ||
| 17 | - /// | ||
| 18 | - /// </summary> | ||
| 19 | - public int dataType { get; set; } | ||
| 20 | - | ||
| 21 | - | ||
| 22 | - /// <summary> | ||
| 23 | - /// 考勤编号 | ||
| 24 | - /// </summary> | ||
| 25 | - public string id { get; set; } | ||
| 26 | - | ||
| 27 | - /// <summary> | ||
| 28 | - /// 门店编号 | ||
| 29 | - /// </summary> | ||
| 30 | - public string mdbh { get; set; } | ||
| 31 | - | ||
| 32 | - /// <summary> | ||
| 33 | - /// 门店名称 | ||
| 34 | - /// </summary> | ||
| 35 | - public string mdmc { get; set; } | ||
| 36 | - | ||
| 37 | - /// <summary> | ||
| 38 | - /// 职位 | ||
| 39 | - /// </summary> | ||
| 40 | - public string zw { get; set; } | ||
| 41 | - | ||
| 42 | - /// <summary> | ||
| 43 | - /// 岗位分类1 | ||
| 44 | - /// </summary> | ||
| 45 | - public string gwfl1 { get; set; } | ||
| 46 | - | ||
| 47 | - /// <summary> | ||
| 48 | - /// 员工编号 | ||
| 49 | - /// </summary> | ||
| 50 | - public string ygbh { get; set; } | ||
| 51 | - | ||
| 52 | - /// <summary> | ||
| 53 | - /// 姓名 | ||
| 54 | - /// </summary> | ||
| 55 | - public string xm { get; set; } | ||
| 56 | - | ||
| 57 | - /// <summary> | ||
| 58 | - /// 在职情况 | ||
| 59 | - /// </summary> | ||
| 60 | - public string zzqk { get; set; } | ||
| 61 | - | ||
| 62 | - /// <summary> | ||
| 63 | - /// 岗位分类2 | ||
| 64 | - /// </summary> | ||
| 65 | - public string gwfl2 { get; set; } | ||
| 66 | - | ||
| 67 | - /// <summary> | ||
| 68 | - /// 发放月份 | ||
| 69 | - /// </summary> | ||
| 70 | - public string ffyf { get; set; } | ||
| 71 | - | ||
| 72 | - /// <summary> | ||
| 73 | - /// 在岗天数 | ||
| 74 | - /// </summary> | ||
| 75 | - public string zgts { get; set; } | ||
| 76 | - | ||
| 77 | - /// <summary> | ||
| 78 | - /// 当月标准休息天数 | ||
| 79 | - /// </summary> | ||
| 80 | - public string dybzxxts { get; set; } | ||
| 81 | - | ||
| 82 | - /// <summary> | ||
| 83 | - /// 实际休息天数 | ||
| 84 | - /// </summary> | ||
| 85 | - public string sjxxts { get; set; } | ||
| 86 | - | ||
| 87 | - /// <summary> | ||
| 88 | - /// 休息 | ||
| 89 | - /// </summary> | ||
| 90 | - public string xx { get; set; } | ||
| 91 | - | ||
| 92 | - /// <summary> | ||
| 93 | - /// 请假 | ||
| 94 | - /// </summary> | ||
| 95 | - public string qj { get; set; } | ||
| 96 | - | ||
| 97 | - /// <summary> | ||
| 98 | - /// 福利假 | ||
| 99 | - /// </summary> | ||
| 100 | - public string flj { get; set; } | ||
| 101 | - | ||
| 102 | - /// <summary> | ||
| 103 | - /// 丧假 | ||
| 104 | - /// </summary> | ||
| 105 | - public string sj { get; set; } | ||
| 106 | - | ||
| 107 | - /// <summary> | ||
| 108 | - /// 年假 | ||
| 109 | - /// </summary> | ||
| 110 | - public string nj { get; set; } | ||
| 111 | - | ||
| 112 | - /// <summary> | ||
| 113 | - /// 出勤 | ||
| 114 | - /// </summary> | ||
| 115 | - public string cq { get; set; } | ||
| 116 | - | ||
| 117 | - /// <summary> | ||
| 118 | - /// 出勤加休息 | ||
| 119 | - /// </summary> | ||
| 120 | - public string cqjxx { get; set; } | ||
| 121 | - | ||
| 122 | - /// <summary> | ||
| 123 | - /// 应休 | ||
| 124 | - /// </summary> | ||
| 125 | - public string yx { get; set; } | ||
| 126 | - | ||
| 127 | - /// <summary> | ||
| 128 | - /// 不扣天数 | ||
| 129 | - /// </summary> | ||
| 130 | - public string bkts { get; set; } | ||
| 131 | - | ||
| 132 | - /// <summary> | ||
| 133 | - /// 调减休息 | ||
| 134 | - /// </summary> | ||
| 135 | - public string tjxx { get; set; } | ||
| 136 | - | ||
| 137 | - /// <summary> | ||
| 138 | - /// 实际请假 | ||
| 139 | - /// </summary> | ||
| 140 | - public string sjqj { get; set; } | ||
| 141 | - | ||
| 142 | - /// <summary> | ||
| 143 | - /// 少休天数 | ||
| 144 | - /// </summary> | ||
| 145 | - public string sxts { get; set; } | ||
| 146 | - | ||
| 147 | - /// <summary> | ||
| 148 | - /// 少休补贴 | ||
| 149 | - /// </summary> | ||
| 150 | - public string sxbt { get; set; } | ||
| 151 | - | ||
| 152 | - /// <summary> | ||
| 153 | - /// 缺卡 | ||
| 154 | - /// </summary> | ||
| 155 | - public string qk { get; set; } | ||
| 156 | - | ||
| 157 | - /// <summary> | ||
| 158 | - /// 迟到 | ||
| 159 | - /// </summary> | ||
| 160 | - public string cd { get; set; } | ||
| 161 | - | ||
| 162 | - /// <summary> | ||
| 163 | - /// 全勤 | ||
| 164 | - /// </summary> | ||
| 165 | - public string qq { get; set; } | ||
| 166 | - | ||
| 167 | - /// <summary> | ||
| 168 | - /// 交通补助 | ||
| 169 | - /// </summary> | ||
| 170 | - public string jtbz { get; set; } | ||
| 171 | - | ||
| 172 | - /// <summary> | ||
| 173 | - /// 学习期扣款 | ||
| 174 | - /// </summary> | ||
| 175 | - public string xxqkk { get; set; } | ||
| 176 | - | ||
| 177 | - /// <summary> | ||
| 178 | - /// 住宿 | ||
| 179 | - /// </summary> | ||
| 180 | - public string zs { get; set; } | ||
| 181 | - | ||
| 182 | - /// <summary> | ||
| 183 | - /// 工作服 | ||
| 184 | - /// </summary> | ||
| 185 | - public string gzf { get; set; } | ||
| 186 | - | ||
| 187 | - /// <summary> | ||
| 188 | - /// 手机押金 | ||
| 189 | - /// </summary> | ||
| 190 | - public string sjyj { get; set; } | ||
| 191 | - | ||
| 192 | - /// <summary> | ||
| 193 | - /// 宿舍押金 | ||
| 194 | - /// </summary> | ||
| 195 | - public string ssyj { get; set; } | ||
| 196 | - | ||
| 197 | - /// <summary> | ||
| 198 | - /// 其他奖励 | ||
| 199 | - /// </summary> | ||
| 200 | - public string qtjl { get; set; } | ||
| 201 | - | ||
| 202 | - /// <summary> | ||
| 203 | - /// 保底已核算金额 | ||
| 204 | - /// </summary> | ||
| 205 | - public string bdyhsje { get; set; } | ||
| 206 | - | ||
| 207 | - /// <summary> | ||
| 208 | - /// 当月培训 | ||
| 209 | - /// </summary> | ||
| 210 | - public string dypx { get; set; } | ||
| 211 | - | ||
| 212 | - /// <summary> | ||
| 213 | - /// 当月交通补贴 | ||
| 214 | - /// </summary> | ||
| 215 | - public string dyjtbt { get; set; } | ||
| 216 | - | ||
| 217 | - /// <summary> | ||
| 218 | - /// 应发上月 | ||
| 219 | - /// </summary> | ||
| 220 | - public string yfsy { get; set; } | ||
| 221 | - | ||
| 222 | - /// <summary> | ||
| 223 | - /// 应发次月 | ||
| 224 | - /// </summary> | ||
| 225 | - public string yfcy { get; set; } | ||
| 226 | - | ||
| 227 | - /// <summary> | ||
| 228 | - /// 在店天数 | ||
| 229 | - /// </summary> | ||
| 230 | - public string zdts { get; set; } | ||
| 231 | - | ||
| 232 | - /// <summary> | ||
| 233 | - /// 跨月天数 | ||
| 234 | - /// </summary> | ||
| 235 | - public string kyts { get; set; } | ||
| 236 | - | ||
| 237 | - /// <summary> | ||
| 238 | - /// 上月工资有 | ||
| 239 | - /// </summary> | ||
| 240 | - public string sygzy { get; set; } | ||
| 241 | - | ||
| 242 | - /// <summary> | ||
| 243 | - /// 当月在店加正常休天数 | ||
| 244 | - /// </summary> | ||
| 245 | - public string dyzdjzcxts { get; set; } | ||
| 246 | - | ||
| 247 | - /// <summary> | ||
| 248 | - /// 当月是否核算 | ||
| 249 | - /// </summary> | ||
| 250 | - public string dysfhs { get; set; } | ||
| 251 | - | ||
| 252 | - } | ||
| 253 | -} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKqhzb/LqKqhzbUpInput.cs deleted
| 1 | -using System; | ||
| 2 | -using System.Collections.Generic; | ||
| 3 | - | ||
| 4 | -namespace NCC.Extend.Entitys.Dto.LqKqhzb | ||
| 5 | -{ | ||
| 6 | - /// <summary> | ||
| 7 | - /// 考勤汇总表更新输入参数 | ||
| 8 | - /// </summary> | ||
| 9 | - public class LqKqhzbUpInput : LqKqhzbCrInput | ||
| 10 | - { | ||
| 11 | - /// <summary> | ||
| 12 | - /// 考勤编号 | ||
| 13 | - /// </summary> | ||
| 14 | - public string id { get; set; } | ||
| 15 | - | ||
| 16 | - } | ||
| 17 | -} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlCrInput.cs
| @@ -12,97 +12,97 @@ namespace NCC.Extend.Entitys.Dto.LqXmzl | @@ -12,97 +12,97 @@ namespace NCC.Extend.Entitys.Dto.LqXmzl | ||
| 12 | /// 主键 | 12 | /// 主键 |
| 13 | /// </summary> | 13 | /// </summary> |
| 14 | public string id { get; set; } | 14 | public string id { get; set; } |
| 15 | - | 15 | + |
| 16 | /// <summary> | 16 | /// <summary> |
| 17 | /// 项目编号 | 17 | /// 项目编号 |
| 18 | /// </summary> | 18 | /// </summary> |
| 19 | public string xmbh { get; set; } | 19 | public string xmbh { get; set; } |
| 20 | - | 20 | + |
| 21 | /// <summary> | 21 | /// <summary> |
| 22 | /// 项目名称 | 22 | /// 项目名称 |
| 23 | /// </summary> | 23 | /// </summary> |
| 24 | public string xmmc { get; set; } | 24 | public string xmmc { get; set; } |
| 25 | - | 25 | + |
| 26 | /// <summary> | 26 | /// <summary> |
| 27 | /// 标准价格 | 27 | /// 标准价格 |
| 28 | /// </summary> | 28 | /// </summary> |
| 29 | public decimal bzjg { get; set; } | 29 | public decimal bzjg { get; set; } |
| 30 | - | 30 | + |
| 31 | /// <summary> | 31 | /// <summary> |
| 32 | /// 项目时长(分钟) | 32 | /// 项目时长(分钟) |
| 33 | /// </summary> | 33 | /// </summary> |
| 34 | public int? xmsc { get; set; } | 34 | public int? xmsc { get; set; } |
| 35 | - | 35 | + |
| 36 | /// <summary> | 36 | /// <summary> |
| 37 | /// 基础服务提成 | 37 | /// 基础服务提成 |
| 38 | /// </summary> | 38 | /// </summary> |
| 39 | public decimal jcfwtc { get; set; } | 39 | public decimal jcfwtc { get; set; } |
| 40 | - | 40 | + |
| 41 | /// <summary> | 41 | /// <summary> |
| 42 | /// 分类①-汇总表 | 42 | /// 分类①-汇总表 |
| 43 | /// </summary> | 43 | /// </summary> |
| 44 | public string fl1 { get; set; } | 44 | public string fl1 { get; set; } |
| 45 | - | 45 | + |
| 46 | /// <summary> | 46 | /// <summary> |
| 47 | /// 分类②-汇总表 | 47 | /// 分类②-汇总表 |
| 48 | /// </summary> | 48 | /// </summary> |
| 49 | public string fl2 { get; set; } | 49 | public string fl2 { get; set; } |
| 50 | - | 50 | + |
| 51 | /// <summary> | 51 | /// <summary> |
| 52 | /// 分类③-工资用 | 52 | /// 分类③-工资用 |
| 53 | /// </summary> | 53 | /// </summary> |
| 54 | public string fl3 { get; set; } | 54 | public string fl3 { get; set; } |
| 55 | - | 55 | + |
| 56 | /// <summary> | 56 | /// <summary> |
| 57 | /// 分类④-统计品项用 | 57 | /// 分类④-统计品项用 |
| 58 | /// </summary> | 58 | /// </summary> |
| 59 | public string fl4 { get; set; } | 59 | public string fl4 { get; set; } |
| 60 | - | 60 | + |
| 61 | /// <summary> | 61 | /// <summary> |
| 62 | /// 统计类别 | 62 | /// 统计类别 |
| 63 | /// </summary> | 63 | /// </summary> |
| 64 | public string tjlb { get; set; } | 64 | public string tjlb { get; set; } |
| 65 | - | 65 | + |
| 66 | /// <summary> | 66 | /// <summary> |
| 67 | /// 折扣类别 | 67 | /// 折扣类别 |
| 68 | /// </summary> | 68 | /// </summary> |
| 69 | public string zklb { get; set; } | 69 | public string zklb { get; set; } |
| 70 | - | 70 | + |
| 71 | /// <summary> | 71 | /// <summary> |
| 72 | /// 分类 | 72 | /// 分类 |
| 73 | /// </summary> | 73 | /// </summary> |
| 74 | public string fl { get; set; } | 74 | public string fl { get; set; } |
| 75 | - | 75 | + |
| 76 | /// <summary> | 76 | /// <summary> |
| 77 | /// 其它1 | 77 | /// 其它1 |
| 78 | /// </summary> | 78 | /// </summary> |
| 79 | public string qt1 { get; set; } | 79 | public string qt1 { get; set; } |
| 80 | - | 80 | + |
| 81 | /// <summary> | 81 | /// <summary> |
| 82 | /// 其它2 | 82 | /// 其它2 |
| 83 | /// </summary> | 83 | /// </summary> |
| 84 | public string qt2 { get; set; } | 84 | public string qt2 { get; set; } |
| 85 | - | 85 | + |
| 86 | /// <summary> | 86 | /// <summary> |
| 87 | /// 溯源金额 | 87 | /// 溯源金额 |
| 88 | /// </summary> | 88 | /// </summary> |
| 89 | public decimal? syje { get; set; } | 89 | public decimal? syje { get; set; } |
| 90 | - | 90 | + |
| 91 | /// <summary> | 91 | /// <summary> |
| 92 | /// Cell金额 | 92 | /// Cell金额 |
| 93 | /// </summary> | 93 | /// </summary> |
| 94 | public decimal? cellje { get; set; } | 94 | public decimal? cellje { get; set; } |
| 95 | - | 95 | + |
| 96 | /// <summary> | 96 | /// <summary> |
| 97 | /// 手工费 | 97 | /// 手工费 |
| 98 | /// </summary> | 98 | /// </summary> |
| 99 | public decimal? sgf { get; set; } | 99 | public decimal? sgf { get; set; } |
| 100 | - | 100 | + |
| 101 | /// <summary> | 101 | /// <summary> |
| 102 | /// 项目次数 | 102 | /// 项目次数 |
| 103 | /// </summary> | 103 | /// </summary> |
| 104 | public int? projectNumber { get; set; } | 104 | public int? projectNumber { get; set; } |
| 105 | - | 105 | + |
| 106 | /// <summary> | 106 | /// <summary> |
| 107 | /// 来源类型 | 107 | /// 来源类型 |
| 108 | /// </summary> | 108 | /// </summary> |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/README.md
| @@ -58,7 +58,7 @@ | @@ -58,7 +58,7 @@ | ||
| 58 | - `lq_jlmxb/` - 奖励明细表 | 58 | - `lq_jlmxb/` - 奖励明细表 |
| 59 | - `lq_jsfa/` - 总经理经理核算方案 | 59 | - `lq_jsfa/` - 总经理经理核算方案 |
| 60 | - `lq_khxx/` - 客户信息 | 60 | - `lq_khxx/` - 客户信息 |
| 61 | -- `lq_kqhzb/` - 考勤汇总表 | 61 | +- (已删除) `lq_kqhzb/` - 考勤汇总表 |
| 62 | - `lq_lssj/` - 历史数据 | 62 | - `lq_lssj/` - 历史数据 |
| 63 | - `lq_sbtjb/` - 社保统计表 | 63 | - `lq_sbtjb/` - 社保统计表 |
| 64 | - `lq_skzh/` - 收款账号 | 64 | - `lq_skzh/` - 收款账号 |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_attendance_summary/LqAttendanceSummaryEntity.cs
0 → 100644
| 1 | +using SqlSugar; | ||
| 2 | +using System; | ||
| 3 | +using NCC.Common.Enum; | ||
| 4 | + | ||
| 5 | +namespace NCC.Extend.Entitys.lq_attendance_summary | ||
| 6 | +{ | ||
| 7 | + /// <summary> | ||
| 8 | + /// 考勤汇总表 | ||
| 9 | + /// </summary> | ||
| 10 | + [SugarTable("lq_attendance_summary")] | ||
| 11 | + public class LqAttendanceSummaryEntity | ||
| 12 | + { | ||
| 13 | + /// <summary> | ||
| 14 | + /// 考勤汇总ID | ||
| 15 | + /// </summary> | ||
| 16 | + [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] | ||
| 17 | + public string Id { get; set; } | ||
| 18 | + | ||
| 19 | + /// <summary> | ||
| 20 | + /// 用户ID(员工ID) | ||
| 21 | + /// </summary> | ||
| 22 | + [SugarColumn(ColumnName = "F_UserId")] | ||
| 23 | + public string UserId { get; set; } | ||
| 24 | + | ||
| 25 | + /// <summary> | ||
| 26 | + /// 年份 | ||
| 27 | + /// </summary> | ||
| 28 | + [SugarColumn(ColumnName = "F_Year")] | ||
| 29 | + public int Year { get; set; } | ||
| 30 | + | ||
| 31 | + /// <summary> | ||
| 32 | + /// 月份 | ||
| 33 | + /// </summary> | ||
| 34 | + [SugarColumn(ColumnName = "F_Month")] | ||
| 35 | + public int Month { get; set; } | ||
| 36 | + | ||
| 37 | + /// <summary> | ||
| 38 | + /// 员工状态(1-在职,2-离职,3-停薪留职) | ||
| 39 | + /// </summary> | ||
| 40 | + [SugarColumn(ColumnName = "F_EmployeeStatus")] | ||
| 41 | + public int EmployeeStatus { get; set; } | ||
| 42 | + | ||
| 43 | + /// <summary> | ||
| 44 | + /// 出勤天数 | ||
| 45 | + /// </summary> | ||
| 46 | + [SugarColumn(ColumnName = "F_WorkDays", ColumnDataType = "decimal(5,2)")] | ||
| 47 | + public decimal WorkDays { get; set; } | ||
| 48 | + | ||
| 49 | + /// <summary> | ||
| 50 | + /// 请假天数 | ||
| 51 | + /// </summary> | ||
| 52 | + [SugarColumn(ColumnName = "F_LeaveDays", ColumnDataType = "decimal(5,2)")] | ||
| 53 | + public decimal LeaveDays { get; set; } | ||
| 54 | + | ||
| 55 | + /// <summary> | ||
| 56 | + /// 休息天数 | ||
| 57 | + /// </summary> | ||
| 58 | + [SugarColumn(ColumnName = "F_RestDays", ColumnDataType = "decimal(5,2)")] | ||
| 59 | + public decimal RestDays { get; set; } | ||
| 60 | + | ||
| 61 | + /// <summary> | ||
| 62 | + /// 备注 | ||
| 63 | + /// </summary> | ||
| 64 | + [SugarColumn(ColumnName = "F_Remark", ColumnDataType = "varchar(2000)")] | ||
| 65 | + public string Remark { get; set; } | ||
| 66 | + | ||
| 67 | + /// <summary> | ||
| 68 | + /// 创建人ID | ||
| 69 | + /// </summary> | ||
| 70 | + [SugarColumn(ColumnName = "F_CreateUser")] | ||
| 71 | + public string CreateUser { get; set; } | ||
| 72 | + | ||
| 73 | + /// <summary> | ||
| 74 | + /// 创建时间 | ||
| 75 | + /// </summary> | ||
| 76 | + [SugarColumn(ColumnName = "F_CreateTime")] | ||
| 77 | + public DateTime CreateTime { get; set; } | ||
| 78 | + | ||
| 79 | + /// <summary> | ||
| 80 | + /// 更新人ID | ||
| 81 | + /// </summary> | ||
| 82 | + [SugarColumn(ColumnName = "F_UpdateUser")] | ||
| 83 | + public string UpdateUser { get; set; } | ||
| 84 | + | ||
| 85 | + /// <summary> | ||
| 86 | + /// 更新时间 | ||
| 87 | + /// </summary> | ||
| 88 | + [SugarColumn(ColumnName = "F_UpdateTime")] | ||
| 89 | + public DateTime UpdateTime { get; set; } | ||
| 90 | + | ||
| 91 | + /// <summary> | ||
| 92 | + /// 是否有效(1-有效,-1-无效) | ||
| 93 | + /// </summary> | ||
| 94 | + [SugarColumn(ColumnName = "F_IsEffective")] | ||
| 95 | + public int IsEffective { get; set; } | ||
| 96 | + } | ||
| 97 | +} |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kqhzb/LqKqhzbEntity.cs deleted
| 1 | -using NCC.Common.Const; | ||
| 2 | -using SqlSugar; | ||
| 3 | -using System; | ||
| 4 | - | ||
| 5 | -namespace NCC.Extend.Entitys.lq_kqhzb | ||
| 6 | -{ | ||
| 7 | - /// <summary> | ||
| 8 | - /// 考勤汇总表 | ||
| 9 | - /// </summary> | ||
| 10 | - [SugarTable("lq_kqhzb")] | ||
| 11 | - [Tenant(ClaimConst.TENANT_ID)] | ||
| 12 | - public class LqKqhzbEntity | ||
| 13 | - { | ||
| 14 | - /// <summary> | ||
| 15 | - /// 考勤编号 | ||
| 16 | - /// </summary> | ||
| 17 | - [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] | ||
| 18 | - public string Id { get; set; } | ||
| 19 | - | ||
| 20 | - /// <summary> | ||
| 21 | - /// 门店编号 | ||
| 22 | - /// </summary> | ||
| 23 | - [SugarColumn(ColumnName = "mdbh")] | ||
| 24 | - public string Mdbh { get; set; } | ||
| 25 | - | ||
| 26 | - /// <summary> | ||
| 27 | - /// 门店名称 | ||
| 28 | - /// </summary> | ||
| 29 | - [SugarColumn(ColumnName = "mdmc")] | ||
| 30 | - public string Mdmc { get; set; } | ||
| 31 | - | ||
| 32 | - /// <summary> | ||
| 33 | - /// 职位 | ||
| 34 | - /// </summary> | ||
| 35 | - [SugarColumn(ColumnName = "zw")] | ||
| 36 | - public string Zw { get; set; } | ||
| 37 | - | ||
| 38 | - /// <summary> | ||
| 39 | - /// 岗位分类1 | ||
| 40 | - /// </summary> | ||
| 41 | - [SugarColumn(ColumnName = "gwfl1")] | ||
| 42 | - public string Gwfl1 { get; set; } | ||
| 43 | - | ||
| 44 | - /// <summary> | ||
| 45 | - /// 员工编号 | ||
| 46 | - /// </summary> | ||
| 47 | - [SugarColumn(ColumnName = "ygbh")] | ||
| 48 | - public string Ygbh { get; set; } | ||
| 49 | - | ||
| 50 | - /// <summary> | ||
| 51 | - /// 姓名 | ||
| 52 | - /// </summary> | ||
| 53 | - [SugarColumn(ColumnName = "xm")] | ||
| 54 | - public string Xm { get; set; } | ||
| 55 | - | ||
| 56 | - /// <summary> | ||
| 57 | - /// 在职情况 | ||
| 58 | - /// </summary> | ||
| 59 | - [SugarColumn(ColumnName = "zzqk")] | ||
| 60 | - public string Zzqk { get; set; } | ||
| 61 | - | ||
| 62 | - /// <summary> | ||
| 63 | - /// 岗位分类2 | ||
| 64 | - /// </summary> | ||
| 65 | - [SugarColumn(ColumnName = "gwfl2")] | ||
| 66 | - public string Gwfl2 { get; set; } | ||
| 67 | - | ||
| 68 | - /// <summary> | ||
| 69 | - /// 发放月份 | ||
| 70 | - /// </summary> | ||
| 71 | - [SugarColumn(ColumnName = "ffyf")] | ||
| 72 | - public string Ffyf { get; set; } | ||
| 73 | - | ||
| 74 | - /// <summary> | ||
| 75 | - /// 在岗天数 | ||
| 76 | - /// </summary> | ||
| 77 | - [SugarColumn(ColumnName = "zgts")] | ||
| 78 | - public string Zgts { get; set; } | ||
| 79 | - | ||
| 80 | - /// <summary> | ||
| 81 | - /// 当月标准休息天数 | ||
| 82 | - /// </summary> | ||
| 83 | - [SugarColumn(ColumnName = "dybzxxts")] | ||
| 84 | - public string Dybzxxts { get; set; } | ||
| 85 | - | ||
| 86 | - /// <summary> | ||
| 87 | - /// 实际休息天数 | ||
| 88 | - /// </summary> | ||
| 89 | - [SugarColumn(ColumnName = "sjxxts")] | ||
| 90 | - public string Sjxxts { get; set; } | ||
| 91 | - | ||
| 92 | - /// <summary> | ||
| 93 | - /// 休息 | ||
| 94 | - /// </summary> | ||
| 95 | - [SugarColumn(ColumnName = "xx")] | ||
| 96 | - public string Xx { get; set; } | ||
| 97 | - | ||
| 98 | - /// <summary> | ||
| 99 | - /// 请假 | ||
| 100 | - /// </summary> | ||
| 101 | - [SugarColumn(ColumnName = "qj")] | ||
| 102 | - public string Qj { get; set; } | ||
| 103 | - | ||
| 104 | - /// <summary> | ||
| 105 | - /// 福利假 | ||
| 106 | - /// </summary> | ||
| 107 | - [SugarColumn(ColumnName = "flj")] | ||
| 108 | - public string Flj { get; set; } | ||
| 109 | - | ||
| 110 | - /// <summary> | ||
| 111 | - /// 丧假 | ||
| 112 | - /// </summary> | ||
| 113 | - [SugarColumn(ColumnName = "sj")] | ||
| 114 | - public string Sj { get; set; } | ||
| 115 | - | ||
| 116 | - /// <summary> | ||
| 117 | - /// 年假 | ||
| 118 | - /// </summary> | ||
| 119 | - [SugarColumn(ColumnName = "nj")] | ||
| 120 | - public string Nj { get; set; } | ||
| 121 | - | ||
| 122 | - /// <summary> | ||
| 123 | - /// 出勤 | ||
| 124 | - /// </summary> | ||
| 125 | - [SugarColumn(ColumnName = "cq")] | ||
| 126 | - public string Cq { get; set; } | ||
| 127 | - | ||
| 128 | - /// <summary> | ||
| 129 | - /// 出勤加休息 | ||
| 130 | - /// </summary> | ||
| 131 | - [SugarColumn(ColumnName = "cqjxx")] | ||
| 132 | - public string Cqjxx { get; set; } | ||
| 133 | - | ||
| 134 | - /// <summary> | ||
| 135 | - /// 应休 | ||
| 136 | - /// </summary> | ||
| 137 | - [SugarColumn(ColumnName = "yx")] | ||
| 138 | - public string Yx { get; set; } | ||
| 139 | - | ||
| 140 | - /// <summary> | ||
| 141 | - /// 不扣天数 | ||
| 142 | - /// </summary> | ||
| 143 | - [SugarColumn(ColumnName = "bkts")] | ||
| 144 | - public string Bkts { get; set; } | ||
| 145 | - | ||
| 146 | - /// <summary> | ||
| 147 | - /// 调减休息 | ||
| 148 | - /// </summary> | ||
| 149 | - [SugarColumn(ColumnName = "tjxx")] | ||
| 150 | - public string Tjxx { get; set; } | ||
| 151 | - | ||
| 152 | - /// <summary> | ||
| 153 | - /// 实际请假 | ||
| 154 | - /// </summary> | ||
| 155 | - [SugarColumn(ColumnName = "sjqj")] | ||
| 156 | - public string Sjqj { get; set; } | ||
| 157 | - | ||
| 158 | - /// <summary> | ||
| 159 | - /// 少休天数 | ||
| 160 | - /// </summary> | ||
| 161 | - [SugarColumn(ColumnName = "sxts")] | ||
| 162 | - public string Sxts { get; set; } | ||
| 163 | - | ||
| 164 | - /// <summary> | ||
| 165 | - /// 少休补贴 | ||
| 166 | - /// </summary> | ||
| 167 | - [SugarColumn(ColumnName = "sxbt")] | ||
| 168 | - public string Sxbt { get; set; } | ||
| 169 | - | ||
| 170 | - /// <summary> | ||
| 171 | - /// 缺卡 | ||
| 172 | - /// </summary> | ||
| 173 | - [SugarColumn(ColumnName = "qk")] | ||
| 174 | - public string Qk { get; set; } | ||
| 175 | - | ||
| 176 | - /// <summary> | ||
| 177 | - /// 迟到 | ||
| 178 | - /// </summary> | ||
| 179 | - [SugarColumn(ColumnName = "cd")] | ||
| 180 | - public string Cd { get; set; } | ||
| 181 | - | ||
| 182 | - /// <summary> | ||
| 183 | - /// 全勤 | ||
| 184 | - /// </summary> | ||
| 185 | - [SugarColumn(ColumnName = "qq")] | ||
| 186 | - public string Qq { get; set; } | ||
| 187 | - | ||
| 188 | - /// <summary> | ||
| 189 | - /// 交通补助 | ||
| 190 | - /// </summary> | ||
| 191 | - [SugarColumn(ColumnName = "jtbz")] | ||
| 192 | - public string Jtbz { get; set; } | ||
| 193 | - | ||
| 194 | - /// <summary> | ||
| 195 | - /// 学习期扣款 | ||
| 196 | - /// </summary> | ||
| 197 | - [SugarColumn(ColumnName = "xxqkk")] | ||
| 198 | - public string Xxqkk { get; set; } | ||
| 199 | - | ||
| 200 | - /// <summary> | ||
| 201 | - /// 住宿 | ||
| 202 | - /// </summary> | ||
| 203 | - [SugarColumn(ColumnName = "zs")] | ||
| 204 | - public string Zs { get; set; } | ||
| 205 | - | ||
| 206 | - /// <summary> | ||
| 207 | - /// 工作服 | ||
| 208 | - /// </summary> | ||
| 209 | - [SugarColumn(ColumnName = "gzf")] | ||
| 210 | - public string Gzf { get; set; } | ||
| 211 | - | ||
| 212 | - /// <summary> | ||
| 213 | - /// 手机押金 | ||
| 214 | - /// </summary> | ||
| 215 | - [SugarColumn(ColumnName = "sjyj")] | ||
| 216 | - public string Sjyj { get; set; } | ||
| 217 | - | ||
| 218 | - /// <summary> | ||
| 219 | - /// 宿舍押金 | ||
| 220 | - /// </summary> | ||
| 221 | - [SugarColumn(ColumnName = "ssyj")] | ||
| 222 | - public string Ssyj { get; set; } | ||
| 223 | - | ||
| 224 | - /// <summary> | ||
| 225 | - /// 其他奖励 | ||
| 226 | - /// </summary> | ||
| 227 | - [SugarColumn(ColumnName = "qtjl")] | ||
| 228 | - public string Qtjl { get; set; } | ||
| 229 | - | ||
| 230 | - /// <summary> | ||
| 231 | - /// 保底已核算金额 | ||
| 232 | - /// </summary> | ||
| 233 | - [SugarColumn(ColumnName = "bdyhsje")] | ||
| 234 | - public string Bdyhsje { get; set; } | ||
| 235 | - | ||
| 236 | - /// <summary> | ||
| 237 | - /// 当月培训 | ||
| 238 | - /// </summary> | ||
| 239 | - [SugarColumn(ColumnName = "dypx")] | ||
| 240 | - public string Dypx { get; set; } | ||
| 241 | - | ||
| 242 | - /// <summary> | ||
| 243 | - /// 当月交通补贴 | ||
| 244 | - /// </summary> | ||
| 245 | - [SugarColumn(ColumnName = "dyjtbt")] | ||
| 246 | - public string Dyjtbt { get; set; } | ||
| 247 | - | ||
| 248 | - /// <summary> | ||
| 249 | - /// 应发上月 | ||
| 250 | - /// </summary> | ||
| 251 | - [SugarColumn(ColumnName = "yfsy")] | ||
| 252 | - public string Yfsy { get; set; } | ||
| 253 | - | ||
| 254 | - /// <summary> | ||
| 255 | - /// 应发次月 | ||
| 256 | - /// </summary> | ||
| 257 | - [SugarColumn(ColumnName = "yfcy")] | ||
| 258 | - public string Yfcy { get; set; } | ||
| 259 | - | ||
| 260 | - /// <summary> | ||
| 261 | - /// 在店天数 | ||
| 262 | - /// </summary> | ||
| 263 | - [SugarColumn(ColumnName = "zdts")] | ||
| 264 | - public string Zdts { get; set; } | ||
| 265 | - | ||
| 266 | - /// <summary> | ||
| 267 | - /// 跨月天数 | ||
| 268 | - /// </summary> | ||
| 269 | - [SugarColumn(ColumnName = "kyts")] | ||
| 270 | - public string Kyts { get; set; } | ||
| 271 | - | ||
| 272 | - /// <summary> | ||
| 273 | - /// 上月工资有 | ||
| 274 | - /// </summary> | ||
| 275 | - [SugarColumn(ColumnName = "sygzy")] | ||
| 276 | - public string Sygzy { get; set; } | ||
| 277 | - | ||
| 278 | - /// <summary> | ||
| 279 | - /// 当月在店加正常休天数 | ||
| 280 | - /// </summary> | ||
| 281 | - [SugarColumn(ColumnName = "dyzdjzcxts")] | ||
| 282 | - public string Dyzdjzcxts { get; set; } | ||
| 283 | - | ||
| 284 | - /// <summary> | ||
| 285 | - /// 当月是否核算 | ||
| 286 | - /// </summary> | ||
| 287 | - [SugarColumn(ColumnName = "dysfhs")] | ||
| 288 | - public string Dysfhs { get; set; } | ||
| 289 | - | ||
| 290 | - } | ||
| 291 | -} | ||
| 292 | \ No newline at end of file | 0 | \ No newline at end of file |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Mapper/LqKqhzbMapper.cs deleted
| 1 | -using NCC.Common.Helper; | ||
| 2 | -using NCC.Extend.Entitys.Dto.LqKqhzb; | ||
| 3 | -using Mapster; | ||
| 4 | -using System.Collections.Generic; | ||
| 5 | - | ||
| 6 | -namespace NCC.Extend.Entitys.Mapper.LqKqhzb | ||
| 7 | -{ | ||
| 8 | - public class Mapper : IRegister | ||
| 9 | - { | ||
| 10 | - public void Register(TypeAdapterConfig config) | ||
| 11 | - { | ||
| 12 | - } | ||
| 13 | - } | ||
| 14 | -} |
netcore/src/Modularity/Extend/NCC.Extend.Interfaces/ILqKqhzbService.cs deleted
netcore/src/Modularity/Extend/NCC.Extend.Interfaces/LqAttendanceSummary/ILqAttendanceSummaryService.cs
0 → 100644
| 1 | +using Microsoft.AspNetCore.Http; | ||
| 2 | +using NCC.Dependency; | ||
| 3 | +using NCC.Extend.Entitys.Dto.LqAttendanceSummary; | ||
| 4 | +using System.Collections.Generic; | ||
| 5 | +using System.Threading.Tasks; | ||
| 6 | + | ||
| 7 | +namespace NCC.Extend.Interfaces.LqAttendanceSummary | ||
| 8 | +{ | ||
| 9 | + /// <summary> | ||
| 10 | + /// 考勤汇总服务接口 | ||
| 11 | + /// </summary> | ||
| 12 | + public interface ILqAttendanceSummaryService : ITransient | ||
| 13 | + { | ||
| 14 | + } | ||
| 15 | +} |
netcore/src/Modularity/Extend/NCC.Extend/LqAttendanceSummaryService.cs
0 → 100644
| 1 | +using System; | ||
| 2 | +using System.Collections.Generic; | ||
| 3 | +using System.IO; | ||
| 4 | +using System.Linq; | ||
| 5 | +using System.Threading.Tasks; | ||
| 6 | +using Mapster; | ||
| 7 | +using Microsoft.AspNetCore.Http; | ||
| 8 | +using Microsoft.AspNetCore.Mvc; | ||
| 9 | +using Microsoft.Extensions.Logging; | ||
| 10 | +using NCC.Common.Core.Manager; | ||
| 11 | +using NCC.Common.Enum; | ||
| 12 | +using NCC.Common.Extension; | ||
| 13 | +using NCC.Common.Filter; | ||
| 14 | +using NCC.Common.Helper; | ||
| 15 | +using NCC.Dependency; | ||
| 16 | +using NCC.DynamicApiController; | ||
| 17 | +using NCC.Extend.Entitys.Dto.LqAttendanceSummary; | ||
| 18 | +using NCC.Extend.Entitys.Enum; | ||
| 19 | +using NCC.Extend.Entitys.lq_attendance_summary; | ||
| 20 | +using NCC.Extend.Interfaces.LqAttendanceSummary; | ||
| 21 | +using NCC.FriendlyException; | ||
| 22 | +using NCC.System.Entitys.Permission; | ||
| 23 | +using SqlSugar; | ||
| 24 | +using Yitter.IdGenerator; | ||
| 25 | + | ||
| 26 | +namespace NCC.Extend | ||
| 27 | +{ | ||
| 28 | + /// <summary> | ||
| 29 | + /// 考勤汇总服务 | ||
| 30 | + /// </summary> | ||
| 31 | + [ApiDescriptionSettings(Tag = "绿纤考勤汇总服务", Name = "LqAttendanceSummary", Order = 200)] | ||
| 32 | + [Route("api/Extend/[controller]")] | ||
| 33 | + public class LqAttendanceSummaryService : ILqAttendanceSummaryService, IDynamicApiController, ITransient | ||
| 34 | + { | ||
| 35 | + private readonly ISqlSugarClient _db; | ||
| 36 | + private readonly IUserManager _userManager; | ||
| 37 | + private readonly ILogger<LqAttendanceSummaryService> _logger; | ||
| 38 | + | ||
| 39 | + /// <summary> | ||
| 40 | + /// 构造函数 | ||
| 41 | + /// </summary> | ||
| 42 | + /// <param name="db">数据库客户端</param> | ||
| 43 | + /// <param name="userManager">用户管理器</param> | ||
| 44 | + /// <param name="logger">日志记录器</param> | ||
| 45 | + public LqAttendanceSummaryService(ISqlSugarClient db, IUserManager userManager, ILogger<LqAttendanceSummaryService> logger) | ||
| 46 | + { | ||
| 47 | + _db = db; | ||
| 48 | + _userManager = userManager; | ||
| 49 | + _logger = logger; | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + #region 上传Excel文件导入考勤汇总数据 | ||
| 53 | + /// <summary> | ||
| 54 | + /// 上传Excel文件导入考勤汇总数据 | ||
| 55 | + /// </summary> | ||
| 56 | + /// <remarks> | ||
| 57 | + /// 上传Excel文件批量导入考勤汇总数据 | ||
| 58 | + /// | ||
| 59 | + /// Excel文件格式要求: | ||
| 60 | + /// - 第一行必须是标题行 | ||
| 61 | + /// - 列顺序:员工姓名、员工电话、年份、月份、出勤天数、请假天数、休息天数、备注 | ||
| 62 | + /// - 支持.xlsx和.xls格式 | ||
| 63 | + /// | ||
| 64 | + /// 示例请求: | ||
| 65 | + /// POST /api/Extend/LqAttendanceSummary/ImportAttendanceDataFromExcel | ||
| 66 | + /// Content-Type: multipart/form-data | ||
| 67 | + /// | ||
| 68 | + /// 参数说明: | ||
| 69 | + /// - file: Excel文件(必填) | ||
| 70 | + /// </remarks> | ||
| 71 | + /// <param name="file">Excel文件</param> | ||
| 72 | + /// <returns>导入结果</returns> | ||
| 73 | + /// <response code="200">导入成功</response> | ||
| 74 | + /// <response code="400">文件格式错误</response> | ||
| 75 | + /// <response code="500">服务器错误</response> | ||
| 76 | + [HttpPost("ImportAttendanceDataFromExcel")] | ||
| 77 | + public async Task<dynamic> ImportAttendanceDataFromExcel(IFormFile file) | ||
| 78 | + { | ||
| 79 | + try | ||
| 80 | + { | ||
| 81 | + if (file == null || file.Length == 0) | ||
| 82 | + { | ||
| 83 | + throw NCCException.Oh("请选择要上传的Excel文件"); | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + // 检查文件格式 | ||
| 87 | + var allowedExtensions = new[] { ".xlsx", ".xls" }; | ||
| 88 | + var fileExtension = Path.GetExtension(file.FileName).ToLowerInvariant(); | ||
| 89 | + if (!allowedExtensions.Contains(fileExtension)) | ||
| 90 | + { | ||
| 91 | + throw NCCException.Oh("只支持.xlsx和.xls格式的Excel文件"); | ||
| 92 | + } | ||
| 93 | + | ||
| 94 | + var importData = new List<LqAttendanceSummaryImportInput>(); | ||
| 95 | + | ||
| 96 | + // 保存临时文件 | ||
| 97 | + var tempFilePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + Path.GetExtension(file.FileName)); | ||
| 98 | + try | ||
| 99 | + { | ||
| 100 | + using (var stream = new FileStream(tempFilePath, FileMode.Create)) | ||
| 101 | + { | ||
| 102 | + await file.CopyToAsync(stream); | ||
| 103 | + } | ||
| 104 | + | ||
| 105 | + // 使用ExcelImportHelper读取Excel文件 | ||
| 106 | + var dataTable = ExcelImportHelper.ToDataTable(tempFilePath, 0, 0); | ||
| 107 | + | ||
| 108 | + if (dataTable.Rows.Count == 0) | ||
| 109 | + { | ||
| 110 | + throw NCCException.Oh("Excel文件中没有数据行"); | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + // 从第1行开始读取数据(跳过标题行) | ||
| 114 | + for (int i = 1; i < dataTable.Rows.Count; i++) | ||
| 115 | + { | ||
| 116 | + try | ||
| 117 | + { | ||
| 118 | + var row = dataTable.Rows[i]; | ||
| 119 | + var employeeName = row[0]?.ToString()?.Trim(); | ||
| 120 | + var employeePhone = row[1]?.ToString()?.Trim(); | ||
| 121 | + var yearText = row[2]?.ToString()?.Trim(); | ||
| 122 | + var monthText = row[3]?.ToString()?.Trim(); | ||
| 123 | + var workDaysText = row[4]?.ToString()?.Trim(); | ||
| 124 | + var leaveDaysText = row[5]?.ToString()?.Trim(); | ||
| 125 | + var restDaysText = row[6]?.ToString()?.Trim(); | ||
| 126 | + var remark = row[7]?.ToString()?.Trim(); | ||
| 127 | + | ||
| 128 | + // 跳过空行 | ||
| 129 | + if (string.IsNullOrEmpty(employeeName) && string.IsNullOrEmpty(employeePhone)) | ||
| 130 | + { | ||
| 131 | + continue; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + // 验证必填字段 | ||
| 135 | + if (string.IsNullOrEmpty(employeeName)) | ||
| 136 | + { | ||
| 137 | + throw new Exception($"第{i + 1}行:员工姓名不能为空"); | ||
| 138 | + } | ||
| 139 | + if (string.IsNullOrEmpty(employeePhone)) | ||
| 140 | + { | ||
| 141 | + throw new Exception($"第{i + 1}行:员工电话不能为空"); | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + // 解析数值字段 | ||
| 145 | + if (!int.TryParse(yearText, out int year)) | ||
| 146 | + { | ||
| 147 | + throw new Exception($"第{i + 1}行:年份格式错误"); | ||
| 148 | + } | ||
| 149 | + if (!int.TryParse(monthText, out int month)) | ||
| 150 | + { | ||
| 151 | + throw new Exception($"第{i + 1}行:月份格式错误"); | ||
| 152 | + } | ||
| 153 | + | ||
| 154 | + decimal.TryParse(workDaysText, out decimal workDays); | ||
| 155 | + decimal.TryParse(leaveDaysText, out decimal leaveDays); | ||
| 156 | + decimal.TryParse(restDaysText, out decimal restDays); | ||
| 157 | + | ||
| 158 | + var item = new LqAttendanceSummaryImportInput | ||
| 159 | + { | ||
| 160 | + EmployeeName = employeeName, | ||
| 161 | + EmployeePhone = employeePhone, | ||
| 162 | + Year = year, | ||
| 163 | + Month = month, | ||
| 164 | + WorkDays = workDays, | ||
| 165 | + LeaveDays = leaveDays, | ||
| 166 | + RestDays = restDays, | ||
| 167 | + Remark = remark | ||
| 168 | + }; | ||
| 169 | + | ||
| 170 | + importData.Add(item); | ||
| 171 | + } | ||
| 172 | + catch (Exception ex) | ||
| 173 | + { | ||
| 174 | + throw new Exception($"第{i + 1}行数据解析失败: {ex.Message}"); | ||
| 175 | + } | ||
| 176 | + } | ||
| 177 | + } | ||
| 178 | + finally | ||
| 179 | + { | ||
| 180 | + // 清理临时文件 | ||
| 181 | + if (File.Exists(tempFilePath)) | ||
| 182 | + { | ||
| 183 | + File.Delete(tempFilePath); | ||
| 184 | + } | ||
| 185 | + } | ||
| 186 | + | ||
| 187 | + if (!importData.Any()) | ||
| 188 | + { | ||
| 189 | + throw NCCException.Oh("Excel文件中没有有效的数据行"); | ||
| 190 | + } | ||
| 191 | + | ||
| 192 | + // 处理导入数据 | ||
| 193 | + return await ProcessImportData(importData); | ||
| 194 | + } | ||
| 195 | + catch (Exception ex) | ||
| 196 | + { | ||
| 197 | + _logger.LogError(ex, "上传Excel文件导入考勤汇总数据失败"); | ||
| 198 | + throw NCCException.Oh($"上传Excel文件导入考勤汇总数据失败: {ex.Message}"); | ||
| 199 | + } | ||
| 200 | + } | ||
| 201 | + #endregion | ||
| 202 | + | ||
| 203 | + #region 处理导入数据 | ||
| 204 | + /// <summary> | ||
| 205 | + /// 处理导入数据 | ||
| 206 | + /// </summary> | ||
| 207 | + /// <param name="importData">导入数据列表</param> | ||
| 208 | + /// <returns>导入结果</returns> | ||
| 209 | + private async Task<dynamic> ProcessImportData(List<LqAttendanceSummaryImportInput> importData) | ||
| 210 | + { | ||
| 211 | + var successCount = 0; | ||
| 212 | + var failCount = 0; | ||
| 213 | + var errorMessages = new List<string>(); | ||
| 214 | + var entitiesToInsert = new List<LqAttendanceSummaryEntity>(); | ||
| 215 | + var entitiesToUpdate = new List<LqAttendanceSummaryEntity>(); | ||
| 216 | + | ||
| 217 | + foreach (var item in importData) | ||
| 218 | + { | ||
| 219 | + try | ||
| 220 | + { | ||
| 221 | + // 1. 根据员工姓名和电话查找用户ID | ||
| 222 | + var user = await _db.Queryable<UserEntity>() | ||
| 223 | + .Where(u => u.RealName == item.EmployeeName && u.MobilePhone == item.EmployeePhone) | ||
| 224 | + .FirstAsync(); | ||
| 225 | + | ||
| 226 | + if (user == null) | ||
| 227 | + { | ||
| 228 | + errorMessages.Add($"员工 {item.EmployeeName}({item.EmployeePhone}) 不存在"); | ||
| 229 | + failCount++; | ||
| 230 | + continue; | ||
| 231 | + } | ||
| 232 | + | ||
| 233 | + // 2. 检查是否已存在相同记录 | ||
| 234 | + var existingRecord = await _db.Queryable<LqAttendanceSummaryEntity>() | ||
| 235 | + .Where(a => a.UserId == user.Id && a.Year == item.Year && a.Month == item.Month) | ||
| 236 | + .FirstAsync(); | ||
| 237 | + | ||
| 238 | + if (existingRecord != null) | ||
| 239 | + { | ||
| 240 | + // 更新现有记录 | ||
| 241 | + existingRecord.EmployeeStatus = 1; // 默认在职 | ||
| 242 | + existingRecord.WorkDays = item.WorkDays; | ||
| 243 | + existingRecord.LeaveDays = item.LeaveDays; | ||
| 244 | + existingRecord.RestDays = item.RestDays; | ||
| 245 | + existingRecord.Remark = item.Remark; | ||
| 246 | + existingRecord.UpdateUser = _userManager.UserId; | ||
| 247 | + existingRecord.UpdateTime = DateTime.Now; | ||
| 248 | + entitiesToUpdate.Add(existingRecord); | ||
| 249 | + } | ||
| 250 | + else | ||
| 251 | + { | ||
| 252 | + // 创建新记录 | ||
| 253 | + var entity = new LqAttendanceSummaryEntity | ||
| 254 | + { | ||
| 255 | + Id = YitIdHelper.NextId().ToString(), | ||
| 256 | + UserId = user.Id, | ||
| 257 | + Year = item.Year, | ||
| 258 | + Month = item.Month, | ||
| 259 | + EmployeeStatus = 1, // 默认在职 | ||
| 260 | + WorkDays = item.WorkDays, | ||
| 261 | + LeaveDays = item.LeaveDays, | ||
| 262 | + RestDays = item.RestDays, | ||
| 263 | + Remark = item.Remark, | ||
| 264 | + CreateUser = _userManager.UserId, | ||
| 265 | + CreateTime = DateTime.Now, | ||
| 266 | + UpdateUser = _userManager.UserId, | ||
| 267 | + UpdateTime = DateTime.Now, | ||
| 268 | + IsEffective = 1 | ||
| 269 | + }; | ||
| 270 | + entitiesToInsert.Add(entity); | ||
| 271 | + } | ||
| 272 | + | ||
| 273 | + successCount++; | ||
| 274 | + } | ||
| 275 | + catch (Exception ex) | ||
| 276 | + { | ||
| 277 | + errorMessages.Add($"处理员工 {item.EmployeeName} 数据失败: {ex.Message}"); | ||
| 278 | + failCount++; | ||
| 279 | + _logger.LogError(ex, $"导入考勤数据失败 - 员工: {item.EmployeeName}"); | ||
| 280 | + } | ||
| 281 | + } | ||
| 282 | + | ||
| 283 | + // 批量插入和更新 | ||
| 284 | + if (entitiesToInsert.Any()) | ||
| 285 | + { | ||
| 286 | + await _db.Insertable(entitiesToInsert).ExecuteCommandAsync(); | ||
| 287 | + } | ||
| 288 | + | ||
| 289 | + if (entitiesToUpdate.Any()) | ||
| 290 | + { | ||
| 291 | + await _db.Updateable(entitiesToUpdate).ExecuteCommandAsync(); | ||
| 292 | + } | ||
| 293 | + | ||
| 294 | + return new | ||
| 295 | + { | ||
| 296 | + success = true, | ||
| 297 | + message = "导入完成", | ||
| 298 | + data = new | ||
| 299 | + { | ||
| 300 | + totalCount = importData.Count, | ||
| 301 | + successCount = successCount, | ||
| 302 | + failCount = failCount, | ||
| 303 | + insertCount = entitiesToInsert.Count, | ||
| 304 | + updateCount = entitiesToUpdate.Count, | ||
| 305 | + errorMessages = errorMessages | ||
| 306 | + } | ||
| 307 | + }; | ||
| 308 | + } | ||
| 309 | + #endregion | ||
| 310 | + | ||
| 311 | + #region 获取考勤汇总列表 | ||
| 312 | + /// <summary> | ||
| 313 | + /// 获取考勤汇总列表 | ||
| 314 | + /// </summary> | ||
| 315 | + /// <param name="input">请求参数</param> | ||
| 316 | + /// <returns></returns> | ||
| 317 | + [HttpGet("")] | ||
| 318 | + public async Task<dynamic> GetList([FromQuery] LqAttendanceSummaryListQueryInput input) | ||
| 319 | + { | ||
| 320 | + var sidx = input.sidx == null ? "id" : input.sidx; | ||
| 321 | + var sord = input.sort == null ? "desc" : input.sort; | ||
| 322 | + var data = await _db.Queryable<LqAttendanceSummaryEntity>() | ||
| 323 | + .Where(a => a.IsEffective == StatusEnum.有效.GetHashCode()) | ||
| 324 | + .WhereIF(!string.IsNullOrEmpty(input.UserId), a => a.UserId == input.UserId) | ||
| 325 | + .WhereIF(input.Year.HasValue, a => a.Year == input.Year) | ||
| 326 | + .WhereIF(input.Month.HasValue, a => a.Month == input.Month) | ||
| 327 | + .WhereIF(input.EmployeeStatus.HasValue, a => a.EmployeeStatus == input.EmployeeStatus) | ||
| 328 | + .Select(a => new LqAttendanceSummaryListOutput | ||
| 329 | + { | ||
| 330 | + id = a.Id, | ||
| 331 | + userId = a.UserId, | ||
| 332 | + userName = SqlFunc.Subqueryable<UserEntity>().Where(u => u.Id == a.UserId).Select(u => u.RealName), | ||
| 333 | + year = a.Year, | ||
| 334 | + month = a.Month, | ||
| 335 | + employeeStatus = a.EmployeeStatus, | ||
| 336 | + workDays = a.WorkDays, | ||
| 337 | + leaveDays = a.LeaveDays, | ||
| 338 | + restDays = a.RestDays, | ||
| 339 | + remark = a.Remark, | ||
| 340 | + createUser = a.CreateUser, | ||
| 341 | + createUserName = SqlFunc.Subqueryable<UserEntity>().Where(u => u.Id == a.CreateUser).Select(u => u.RealName), | ||
| 342 | + createTime = a.CreateTime, | ||
| 343 | + updateUser = a.UpdateUser, | ||
| 344 | + updateUserName = SqlFunc.Subqueryable<UserEntity>().Where(u => u.Id == a.UpdateUser).Select(u => u.RealName), | ||
| 345 | + updateTime = a.UpdateTime, | ||
| 346 | + isEffective = a.IsEffective, | ||
| 347 | + }) | ||
| 348 | + .MergeTable() | ||
| 349 | + .OrderBy(sidx + " " + input.sort) | ||
| 350 | + .ToPagedListAsync(input.currentPage, input.pageSize); | ||
| 351 | + return PageResult<LqAttendanceSummaryListOutput>.SqlSugarPageResult(data); | ||
| 352 | + } | ||
| 353 | + #endregion | ||
| 354 | + | ||
| 355 | + #region 清空某一个月的数据 | ||
| 356 | + | ||
| 357 | + #endregion | ||
| 358 | + } | ||
| 359 | +} |
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
| @@ -240,15 +240,17 @@ namespace NCC.Extend.LqKdKdjlb | @@ -240,15 +240,17 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 240 | khly = it.Khly, | 240 | khly = it.Khly, |
| 241 | tjr = it.Tjr, | 241 | tjr = it.Tjr, |
| 242 | deductAmount = it.DeductAmount, | 242 | deductAmount = it.DeductAmount, |
| 243 | + paidDebt = it.PaidDebt, | ||
| 244 | + supplementBillingId = it.SupplementBillingId, | ||
| 243 | sfskdd = it.Sfskdd, | 245 | sfskdd = it.Sfskdd, |
| 244 | jj = it.Jj, | 246 | jj = it.Jj, |
| 245 | bz = it.Bz, | 247 | bz = it.Bz, |
| 246 | kdhy = it.Kdhy, | 248 | kdhy = it.Kdhy, |
| 247 | kdhyc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc), | 249 | kdhyc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc), |
| 248 | kdhysjh = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh), | 250 | kdhysjh = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh), |
| 249 | - IsEffective = it.IsEffective, | ||
| 250 | - CreateUser = it.CreateUser, | ||
| 251 | - CreateUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), | 251 | + isEffective = it.IsEffective, |
| 252 | + createUser = it.CreateUser, | ||
| 253 | + createUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), | ||
| 252 | }) | 254 | }) |
| 253 | .MergeTable() | 255 | .MergeTable() |
| 254 | .OrderBy(sidx + " " + input.sort) | 256 | .OrderBy(sidx + " " + input.sort) |
| @@ -361,8 +363,8 @@ namespace NCC.Extend.LqKdKdjlb | @@ -361,8 +363,8 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 361 | //然后对之前的开单表的补缴金额进行累加 | 363 | //然后对之前的开单表的补缴金额进行累加 |
| 362 | //需要判断补缴金额是否超过欠款金额,只记录应缴金额 | 364 | //需要判断补缴金额是否超过欠款金额,只记录应缴金额 |
| 363 | var supplementAmount = supplementBillingEntity.Qk - supplementBillingEntity.PaidDebt; | 365 | var supplementAmount = supplementBillingEntity.Qk - supplementBillingEntity.PaidDebt; |
| 364 | - entity.PaidDebt += input.supplementAmount > supplementAmount ? supplementAmount : input.supplementAmount; | ||
| 365 | - await _db.Updateable(entity).ExecuteCommandAsync(); | 366 | + supplementBillingEntity.PaidDebt += input.supplementAmount > supplementAmount ? supplementAmount : input.supplementAmount; |
| 367 | + await _db.Updateable(supplementBillingEntity).ExecuteCommandAsync(); | ||
| 366 | } | 368 | } |
| 367 | 369 | ||
| 368 | //新增开单记录表记录 | 370 | //新增开单记录表记录 |
| @@ -806,7 +808,7 @@ namespace NCC.Extend.LqKdKdjlb | @@ -806,7 +808,7 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 806 | kdhy = it.Kdhy, | 808 | kdhy = it.Kdhy, |
| 807 | kdhyc = it.Kdhyc, | 809 | kdhyc = it.Kdhyc, |
| 808 | kdhysjh = it.Kdhysjh, | 810 | kdhysjh = it.Kdhysjh, |
| 809 | - F_FIleUrl = it.F_FIleUrl, | 811 | + fileUrl = it.F_FIleUrl, |
| 810 | }) | 812 | }) |
| 811 | .MergeTable() | 813 | .MergeTable() |
| 812 | .OrderBy(sidx + " " + input.sort) | 814 | .OrderBy(sidx + " " + input.sort) |
| @@ -895,22 +897,26 @@ namespace NCC.Extend.LqKdKdjlb | @@ -895,22 +897,26 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 895 | //批量删除开单记录表 | 897 | //批量删除开单记录表 |
| 896 | await _db.Deleteable<LqKdKdjlbEntity>().In(d => d.Id, ids).ExecuteCommandAsync(); | 898 | await _db.Deleteable<LqKdKdjlbEntity>().In(d => d.Id, ids).ExecuteCommandAsync(); |
| 897 | 899 | ||
| 898 | - //清空子表数据 | 900 | + //清空健康师业绩 |
| 899 | await _db.Deleteable<LqKdJksyjEntity>().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); | 901 | await _db.Deleteable<LqKdJksyjEntity>().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); |
| 900 | 902 | ||
| 901 | - //清空子表数据 | 903 | + //清空科技部老师业绩 |
| 902 | await _db.Deleteable<LqKdKjbsyjEntity>().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); | 904 | await _db.Deleteable<LqKdKjbsyjEntity>().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); |
| 903 | 905 | ||
| 904 | - //清空子表数据 | 906 | + //清空品项明细 |
| 905 | await _db.Deleteable<LqKdPxmxEntity>().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); | 907 | await _db.Deleteable<LqKdPxmxEntity>().In(u => u.Glkdbh, ids).ExecuteCommandAsync(); |
| 908 | + | ||
| 909 | + //清空扣款信息 | ||
| 910 | + await _db.Deleteable<LqKdDeductinfoEntity>().In(u => u.BillingId, ids).ExecuteCommandAsync(); | ||
| 911 | + | ||
| 906 | //关闭事务 | 912 | //关闭事务 |
| 907 | _db.CommitTran(); | 913 | _db.CommitTran(); |
| 908 | } | 914 | } |
| 909 | - catch (Exception) | 915 | + catch (Exception ex) |
| 910 | { | 916 | { |
| 911 | //回滚事务 | 917 | //回滚事务 |
| 912 | _db.RollbackTran(); | 918 | _db.RollbackTran(); |
| 913 | - throw NCCException.Oh(ErrorCode.COM1002); | 919 | + throw NCCException.Oh($"批量删除开单记录表失败: {ex.Message}"); |
| 914 | } | 920 | } |
| 915 | } | 921 | } |
| 916 | } | 922 | } |
| @@ -1113,23 +1119,26 @@ namespace NCC.Extend.LqKdKdjlb | @@ -1113,23 +1119,26 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 1113 | //删除开单记录表记录 | 1119 | //删除开单记录表记录 |
| 1114 | await _db.Deleteable<LqKdKdjlbEntity>().Where(d => d.Id == id).ExecuteCommandAsync(); | 1120 | await _db.Deleteable<LqKdKdjlbEntity>().Where(d => d.Id == id).ExecuteCommandAsync(); |
| 1115 | 1121 | ||
| 1116 | - //清空子表数据 | 1122 | + //清空健康师业绩 |
| 1117 | await _db.Deleteable<LqKdJksyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); | 1123 | await _db.Deleteable<LqKdJksyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); |
| 1118 | 1124 | ||
| 1119 | - //清空子表数据 | 1125 | + //清空科技部老师业绩 |
| 1120 | await _db.Deleteable<LqKdKjbsyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); | 1126 | await _db.Deleteable<LqKdKjbsyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); |
| 1121 | 1127 | ||
| 1122 | - //清空子表数据 | 1128 | + //清空品项明细 |
| 1123 | await _db.Deleteable<LqKdPxmxEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); | 1129 | await _db.Deleteable<LqKdPxmxEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); |
| 1124 | 1130 | ||
| 1131 | + //清空扣款信息 | ||
| 1132 | + await _db.Deleteable<LqKdDeductinfoEntity>().Where(u => u.BillingId == id).ExecuteCommandAsync(); | ||
| 1133 | + | ||
| 1125 | //关闭事务 | 1134 | //关闭事务 |
| 1126 | _db.CommitTran(); | 1135 | _db.CommitTran(); |
| 1127 | } | 1136 | } |
| 1128 | - catch (Exception) | 1137 | + catch (Exception ex) |
| 1129 | { | 1138 | { |
| 1130 | //回滚事务 | 1139 | //回滚事务 |
| 1131 | _db.RollbackTran(); | 1140 | _db.RollbackTran(); |
| 1132 | - throw NCCException.Oh(ErrorCode.COM1002); | 1141 | + throw NCCException.Oh($"删除开单记录表失败: {ex.Message}"); |
| 1133 | } | 1142 | } |
| 1134 | } | 1143 | } |
| 1135 | #endregion | 1144 | #endregion |
| @@ -1211,8 +1220,23 @@ namespace NCC.Extend.LqKdKdjlb | @@ -1211,8 +1220,23 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 1211 | } | 1220 | } |
| 1212 | //开启事务 | 1221 | //开启事务 |
| 1213 | _db.BeginTran(); | 1222 | _db.BeginTran(); |
| 1223 | + //查询是否有对应的补缴开单ID | ||
| 1224 | + if (!string.IsNullOrEmpty(entity.SupplementBillingId)) | ||
| 1225 | + { | ||
| 1226 | + //查询补缴开单ID | ||
| 1227 | + var supplementBillingEntity = await _db.Queryable<LqKdKdjlbEntity>().FirstAsync(p => p.Id == entity.SupplementBillingId);//900,900 | ||
| 1228 | + if (supplementBillingEntity == null || supplementBillingEntity.IsEffective == StatusEnum.无效.GetHashCode()) | ||
| 1229 | + { | ||
| 1230 | + throw NCCException.Oh("补缴开单记录不存在或已作废"); | ||
| 1231 | + } | ||
| 1232 | + //查询当前开单已经补缴金额 | ||
| 1233 | + var OldSupplementAmount = await _db.Queryable<LqKdKdjlbEntity>().Where(p => p.Id == id).SumAsync(p => p.SupplementAmount);//900,0 | ||
| 1234 | + supplementBillingEntity.PaidDebt = supplementBillingEntity.PaidDebt - OldSupplementAmount + input.supplementAmount; | ||
| 1235 | + await _db.Updateable(supplementBillingEntity).ExecuteCommandAsync(); | ||
| 1236 | + } | ||
| 1214 | // 更新开单记录主表 | 1237 | // 更新开单记录主表 |
| 1215 | await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).IgnoreColumns(x => x.CreateTime).ExecuteCommandAsync(); | 1238 | await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).IgnoreColumns(x => x.CreateTime).ExecuteCommandAsync(); |
| 1239 | + | ||
| 1216 | //清空原有品项明细 | 1240 | //清空原有品项明细 |
| 1217 | await _db.Deleteable<LqKdPxmxEntity>().Where(x => x.Glkdbh == id).ExecuteCommandAsync(); | 1241 | await _db.Deleteable<LqKdPxmxEntity>().Where(x => x.Glkdbh == id).ExecuteCommandAsync(); |
| 1218 | //清空原有健康师业绩 | 1242 | //清空原有健康师业绩 |
| @@ -1434,6 +1458,16 @@ namespace NCC.Extend.LqKdKdjlb | @@ -1434,6 +1458,16 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 1434 | // 标记开单_储扣详细表为无效 | 1458 | // 标记开单_储扣详细表为无效 |
| 1435 | await _db.Updateable<LqKdDeductinfoEntity>().SetColumns(it => new LqKdDeductinfoEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(it => it.BillingId == input.Id).ExecuteCommandAsync(); | 1459 | await _db.Updateable<LqKdDeductinfoEntity>().SetColumns(it => new LqKdDeductinfoEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(it => it.BillingId == input.Id).ExecuteCommandAsync(); |
| 1436 | 1460 | ||
| 1461 | + //如果存在补缴开单ID,则将补缴开单ID的IsEffective设置为无效 | ||
| 1462 | + if (!string.IsNullOrEmpty(entity.SupplementBillingId)) | ||
| 1463 | + { | ||
| 1464 | + var supplementBillingEntity = await _db.Queryable<LqKdKdjlbEntity>().FirstAsync(p => p.Id == entity.SupplementBillingId); | ||
| 1465 | + if (supplementBillingEntity != null && supplementBillingEntity.IsEffective == StatusEnum.有效.GetHashCode()) | ||
| 1466 | + { | ||
| 1467 | + supplementBillingEntity.PaidDebt = supplementBillingEntity.PaidDebt - entity.SupplementAmount; | ||
| 1468 | + await _db.Updateable(supplementBillingEntity).ExecuteCommandAsync(); | ||
| 1469 | + } | ||
| 1470 | + } | ||
| 1437 | //关闭事务 | 1471 | //关闭事务 |
| 1438 | _db.CommitTran(); | 1472 | _db.CommitTran(); |
| 1439 | } | 1473 | } |
| @@ -1683,7 +1717,7 @@ namespace NCC.Extend.LqKdKdjlb | @@ -1683,7 +1717,7 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 1683 | sfyj = it.Sfyj, | 1717 | sfyj = it.Sfyj, |
| 1684 | qk = it.Qk, | 1718 | qk = it.Qk, |
| 1685 | ckfs = it.Ckfs, | 1719 | ckfs = it.Ckfs, |
| 1686 | - PaidDebt = it.PaidDebt, | 1720 | + paidDebt = it.PaidDebt, |
| 1687 | fkfs = it.Fkfs, | 1721 | fkfs = it.Fkfs, |
| 1688 | fkyy = it.Fkyy, | 1722 | fkyy = it.Fkyy, |
| 1689 | fkpd = it.Fkpd, | 1723 | fkpd = it.Fkpd, |
| @@ -1696,9 +1730,9 @@ namespace NCC.Extend.LqKdKdjlb | @@ -1696,9 +1730,9 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 1696 | kdhy = it.Kdhy, | 1730 | kdhy = it.Kdhy, |
| 1697 | kdhyc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc), | 1731 | kdhyc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc), |
| 1698 | kdhysjh = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh), | 1732 | kdhysjh = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh), |
| 1699 | - IsEffective = it.IsEffective, | ||
| 1700 | - CreateUser = it.CreateUser, | ||
| 1701 | - CreateUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), | 1733 | + isEffective = it.IsEffective, |
| 1734 | + createUser = it.CreateUser, | ||
| 1735 | + createUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), | ||
| 1702 | }) | 1736 | }) |
| 1703 | .MergeTable() | 1737 | .MergeTable() |
| 1704 | .OrderBy(sidx + " " + sort) | 1738 | .OrderBy(sidx + " " + sort) |
| @@ -1780,9 +1814,9 @@ namespace NCC.Extend.LqKdKdjlb | @@ -1780,9 +1814,9 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 1780 | kdhy = it.Kdhy, | 1814 | kdhy = it.Kdhy, |
| 1781 | kdhyc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc), | 1815 | kdhyc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Khmc), |
| 1782 | kdhysjh = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh), | 1816 | kdhysjh = SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == it.Kdhy).Select(x => x.Sjh), |
| 1783 | - IsEffective = it.IsEffective, | ||
| 1784 | - CreateUser = it.CreateUser, | ||
| 1785 | - CreateUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), | 1817 | + isEffective = it.IsEffective, |
| 1818 | + createUser = it.CreateUser, | ||
| 1819 | + createUserName = SqlFunc.Subqueryable<UserEntity>().Where(x => x.Id == it.CreateUser).Select(x => x.RealName), | ||
| 1786 | }) | 1820 | }) |
| 1787 | .MergeTable() | 1821 | .MergeTable() |
| 1788 | .OrderBy(sidx + " " + input.sort) | 1822 | .OrderBy(sidx + " " + input.sort) |
| @@ -1837,6 +1871,31 @@ namespace NCC.Extend.LqKdKdjlb | @@ -1837,6 +1871,31 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 1837 | } | 1871 | } |
| 1838 | #endregion | 1872 | #endregion |
| 1839 | 1873 | ||
| 1874 | + #region 根据开单id获取当前开单欠款信息 | ||
| 1875 | + /// <summary> | ||
| 1876 | + /// 根据开单id获取当前开单欠款信息 | ||
| 1877 | + /// </summary> | ||
| 1878 | + /// <param name="billingId">开单记录ID</param> | ||
| 1879 | + /// <returns>当前开单欠款信息</returns> | ||
| 1880 | + [HttpGet("GetBillingDebtInfo/{billingId}")] | ||
| 1881 | + public async Task<dynamic> GetBillingDebtInfoByBillingId(string billingId) | ||
| 1882 | + { | ||
| 1883 | + //返回 整单金额、实付金额、欠款金额、已缴欠款金额 | ||
| 1884 | + var entity = await _db.Queryable<LqKdKdjlbEntity>().FirstAsync(p => p.Id == billingId); | ||
| 1885 | + if (entity == null) | ||
| 1886 | + { | ||
| 1887 | + throw NCCException.Oh("开单记录不存在"); | ||
| 1888 | + } | ||
| 1889 | + return new | ||
| 1890 | + { | ||
| 1891 | + zdyj = entity.Zdyj, | ||
| 1892 | + sfyj = entity.Sfyj, | ||
| 1893 | + qk = entity.Qk, | ||
| 1894 | + PaidDebt = entity.PaidDebt, | ||
| 1895 | + }; | ||
| 1896 | + } | ||
| 1897 | + #endregion | ||
| 1898 | + | ||
| 1840 | #region 私有方法 | 1899 | #region 私有方法 |
| 1841 | /// <summary> | 1900 | /// <summary> |
| 1842 | /// 检查开单记录是否可以操作 | 1901 | /// 检查开单记录是否可以操作 |
netcore/src/Modularity/Extend/NCC.Extend/LqKqhzbService.cs deleted
| 1 | -using NCC.Common.Core.Manager; | ||
| 2 | -using NCC.Common.Enum; | ||
| 3 | -using NCC.Common.Extension; | ||
| 4 | -using NCC.Common.Filter; | ||
| 5 | -using NCC.Dependency; | ||
| 6 | -using NCC.DynamicApiController; | ||
| 7 | -using NCC.FriendlyException; | ||
| 8 | -using NCC.Extend.Interfaces.LqKqhzb; | ||
| 9 | -using Mapster; | ||
| 10 | -using Microsoft.AspNetCore.Mvc; | ||
| 11 | -using SqlSugar; | ||
| 12 | -using System; | ||
| 13 | -using System.Collections.Generic; | ||
| 14 | -using System.Linq; | ||
| 15 | -using System.Threading.Tasks; | ||
| 16 | -using NCC.Extend.Entitys.lq_kqhzb; | ||
| 17 | -using NCC.Extend.Entitys.Dto.LqKqhzb; | ||
| 18 | -using Yitter.IdGenerator; | ||
| 19 | -using NCC.Common.Helper; | ||
| 20 | -using NCC.JsonSerialization; | ||
| 21 | -using NCC.Common.Model.NPOI; | ||
| 22 | -using NCC.Common.Configuration; | ||
| 23 | -using NCC.DataEncryption; | ||
| 24 | -using NCC.ClayObject; | ||
| 25 | - | ||
| 26 | -namespace NCC.Extend.LqKqhzb | ||
| 27 | -{ | ||
| 28 | - /// <summary> | ||
| 29 | - /// 考勤汇总表服务 | ||
| 30 | - /// </summary> | ||
| 31 | - [ApiDescriptionSettings(Tag = "Extend",Name = "LqKqhzb", Order = 200)] | ||
| 32 | - [Route("api/Extend/[controller]")] | ||
| 33 | - public class LqKqhzbService : ILqKqhzbService, IDynamicApiController, ITransient | ||
| 34 | - { | ||
| 35 | - private readonly ISqlSugarRepository<LqKqhzbEntity> _lqKqhzbRepository; | ||
| 36 | - private readonly SqlSugarScope _db; | ||
| 37 | - private readonly IUserManager _userManager; | ||
| 38 | - | ||
| 39 | - /// <summary> | ||
| 40 | - /// 初始化一个<see cref="LqKqhzbService"/>类型的新实例 | ||
| 41 | - /// </summary> | ||
| 42 | - public LqKqhzbService( | ||
| 43 | - ISqlSugarRepository<LqKqhzbEntity> lqKqhzbRepository, | ||
| 44 | - IUserManager userManager) | ||
| 45 | - { | ||
| 46 | - _lqKqhzbRepository = lqKqhzbRepository; | ||
| 47 | - _db = _lqKqhzbRepository.Context; | ||
| 48 | - _userManager = userManager; | ||
| 49 | - } | ||
| 50 | - | ||
| 51 | - /// <summary> | ||
| 52 | - /// 获取考勤汇总表 | ||
| 53 | - /// </summary> | ||
| 54 | - /// <param name="id">参数</param> | ||
| 55 | - /// <returns></returns> | ||
| 56 | - [HttpGet("{id}")] | ||
| 57 | - public async Task<dynamic> GetInfo(string id) | ||
| 58 | - { | ||
| 59 | - var entity = await _db.Queryable<LqKqhzbEntity>().FirstAsync(p => p.Id == id); | ||
| 60 | - var output = entity.Adapt<LqKqhzbInfoOutput>(); | ||
| 61 | - return output; | ||
| 62 | - } | ||
| 63 | - | ||
| 64 | - /// <summary> | ||
| 65 | - /// 获取考勤汇总表列表 | ||
| 66 | - /// </summary> | ||
| 67 | - /// <param name="input">请求参数</param> | ||
| 68 | - /// <returns></returns> | ||
| 69 | - [HttpGet("")] | ||
| 70 | - public async Task<dynamic> GetList([FromQuery] LqKqhzbListQueryInput input) | ||
| 71 | - { | ||
| 72 | - var sidx = input.sidx == null ? "id" : input.sidx; | ||
| 73 | - var data = await _db.Queryable<LqKqhzbEntity>() | ||
| 74 | - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) | ||
| 75 | - .WhereIF(!string.IsNullOrEmpty(input.mdbh), p => p.Mdbh.Contains(input.mdbh)) | ||
| 76 | - .WhereIF(!string.IsNullOrEmpty(input.mdmc), p => p.Mdmc.Contains(input.mdmc)) | ||
| 77 | - .WhereIF(!string.IsNullOrEmpty(input.zw), p => p.Zw.Contains(input.zw)) | ||
| 78 | - .WhereIF(!string.IsNullOrEmpty(input.gwfl1), p => p.Gwfl1.Contains(input.gwfl1)) | ||
| 79 | - .WhereIF(!string.IsNullOrEmpty(input.ygbh), p => p.Ygbh.Contains(input.ygbh)) | ||
| 80 | - .WhereIF(!string.IsNullOrEmpty(input.xm), p => p.Xm.Contains(input.xm)) | ||
| 81 | - .WhereIF(!string.IsNullOrEmpty(input.zzqk), p => p.Zzqk.Contains(input.zzqk)) | ||
| 82 | - .WhereIF(!string.IsNullOrEmpty(input.gwfl2), p => p.Gwfl2.Contains(input.gwfl2)) | ||
| 83 | - .WhereIF(!string.IsNullOrEmpty(input.ffyf), p => p.Ffyf.Contains(input.ffyf)) | ||
| 84 | - .WhereIF(!string.IsNullOrEmpty(input.zgts), p => p.Zgts.Contains(input.zgts)) | ||
| 85 | - .WhereIF(!string.IsNullOrEmpty(input.dybzxxts), p => p.Dybzxxts.Contains(input.dybzxxts)) | ||
| 86 | - .WhereIF(!string.IsNullOrEmpty(input.sjxxts), p => p.Sjxxts.Contains(input.sjxxts)) | ||
| 87 | - .WhereIF(!string.IsNullOrEmpty(input.xx), p => p.Xx.Contains(input.xx)) | ||
| 88 | - .WhereIF(!string.IsNullOrEmpty(input.qj), p => p.Qj.Contains(input.qj)) | ||
| 89 | - .WhereIF(!string.IsNullOrEmpty(input.flj), p => p.Flj.Contains(input.flj)) | ||
| 90 | - .WhereIF(!string.IsNullOrEmpty(input.sj), p => p.Sj.Contains(input.sj)) | ||
| 91 | - .WhereIF(!string.IsNullOrEmpty(input.nj), p => p.Nj.Contains(input.nj)) | ||
| 92 | - .WhereIF(!string.IsNullOrEmpty(input.cq), p => p.Cq.Contains(input.cq)) | ||
| 93 | - .WhereIF(!string.IsNullOrEmpty(input.cqjxx), p => p.Cqjxx.Contains(input.cqjxx)) | ||
| 94 | - .WhereIF(!string.IsNullOrEmpty(input.yx), p => p.Yx.Contains(input.yx)) | ||
| 95 | - .WhereIF(!string.IsNullOrEmpty(input.bkts), p => p.Bkts.Contains(input.bkts)) | ||
| 96 | - .WhereIF(!string.IsNullOrEmpty(input.tjxx), p => p.Tjxx.Contains(input.tjxx)) | ||
| 97 | - .WhereIF(!string.IsNullOrEmpty(input.sjqj), p => p.Sjqj.Contains(input.sjqj)) | ||
| 98 | - .WhereIF(!string.IsNullOrEmpty(input.sxts), p => p.Sxts.Contains(input.sxts)) | ||
| 99 | - .WhereIF(!string.IsNullOrEmpty(input.sxbt), p => p.Sxbt.Contains(input.sxbt)) | ||
| 100 | - .WhereIF(!string.IsNullOrEmpty(input.qk), p => p.Qk.Contains(input.qk)) | ||
| 101 | - .WhereIF(!string.IsNullOrEmpty(input.cd), p => p.Cd.Contains(input.cd)) | ||
| 102 | - .WhereIF(!string.IsNullOrEmpty(input.qq), p => p.Qq.Contains(input.qq)) | ||
| 103 | - .WhereIF(!string.IsNullOrEmpty(input.jtbz), p => p.Jtbz.Contains(input.jtbz)) | ||
| 104 | - .WhereIF(!string.IsNullOrEmpty(input.xxqkk), p => p.Xxqkk.Contains(input.xxqkk)) | ||
| 105 | - .WhereIF(!string.IsNullOrEmpty(input.zs), p => p.Zs.Contains(input.zs)) | ||
| 106 | - .WhereIF(!string.IsNullOrEmpty(input.gzf), p => p.Gzf.Contains(input.gzf)) | ||
| 107 | - .WhereIF(!string.IsNullOrEmpty(input.sjyj), p => p.Sjyj.Contains(input.sjyj)) | ||
| 108 | - .WhereIF(!string.IsNullOrEmpty(input.ssyj), p => p.Ssyj.Contains(input.ssyj)) | ||
| 109 | - .WhereIF(!string.IsNullOrEmpty(input.qtjl), p => p.Qtjl.Contains(input.qtjl)) | ||
| 110 | - .WhereIF(!string.IsNullOrEmpty(input.bdyhsje), p => p.Bdyhsje.Contains(input.bdyhsje)) | ||
| 111 | - .WhereIF(!string.IsNullOrEmpty(input.dypx), p => p.Dypx.Contains(input.dypx)) | ||
| 112 | - .WhereIF(!string.IsNullOrEmpty(input.dyjtbt), p => p.Dyjtbt.Contains(input.dyjtbt)) | ||
| 113 | - .WhereIF(!string.IsNullOrEmpty(input.yfsy), p => p.Yfsy.Contains(input.yfsy)) | ||
| 114 | - .WhereIF(!string.IsNullOrEmpty(input.yfcy), p => p.Yfcy.Contains(input.yfcy)) | ||
| 115 | - .WhereIF(!string.IsNullOrEmpty(input.zdts), p => p.Zdts.Contains(input.zdts)) | ||
| 116 | - .WhereIF(!string.IsNullOrEmpty(input.kyts), p => p.Kyts.Contains(input.kyts)) | ||
| 117 | - .WhereIF(!string.IsNullOrEmpty(input.sygzy), p => p.Sygzy.Contains(input.sygzy)) | ||
| 118 | - .WhereIF(!string.IsNullOrEmpty(input.dyzdjzcxts), p => p.Dyzdjzcxts.Contains(input.dyzdjzcxts)) | ||
| 119 | - .WhereIF(!string.IsNullOrEmpty(input.dysfhs), p => p.Dysfhs.Contains(input.dysfhs)) | ||
| 120 | - .Select(it=> new LqKqhzbListOutput | ||
| 121 | - { | ||
| 122 | - id = it.Id, | ||
| 123 | - mdbh=it.Mdbh, | ||
| 124 | - mdmc=it.Mdmc, | ||
| 125 | - zw=it.Zw, | ||
| 126 | - gwfl1=it.Gwfl1, | ||
| 127 | - ygbh=it.Ygbh, | ||
| 128 | - xm=it.Xm, | ||
| 129 | - zzqk=it.Zzqk, | ||
| 130 | - gwfl2=it.Gwfl2, | ||
| 131 | - ffyf=it.Ffyf, | ||
| 132 | - zgts=it.Zgts, | ||
| 133 | - dybzxxts=it.Dybzxxts, | ||
| 134 | - sjxxts=it.Sjxxts, | ||
| 135 | - xx=it.Xx, | ||
| 136 | - qj=it.Qj, | ||
| 137 | - flj=it.Flj, | ||
| 138 | - sj=it.Sj, | ||
| 139 | - nj=it.Nj, | ||
| 140 | - cq=it.Cq, | ||
| 141 | - cqjxx=it.Cqjxx, | ||
| 142 | - yx=it.Yx, | ||
| 143 | - bkts=it.Bkts, | ||
| 144 | - tjxx=it.Tjxx, | ||
| 145 | - sjqj=it.Sjqj, | ||
| 146 | - sxts=it.Sxts, | ||
| 147 | - sxbt=it.Sxbt, | ||
| 148 | - qk=it.Qk, | ||
| 149 | - cd=it.Cd, | ||
| 150 | - qq=it.Qq, | ||
| 151 | - jtbz=it.Jtbz, | ||
| 152 | - xxqkk=it.Xxqkk, | ||
| 153 | - zs=it.Zs, | ||
| 154 | - gzf=it.Gzf, | ||
| 155 | - sjyj=it.Sjyj, | ||
| 156 | - ssyj=it.Ssyj, | ||
| 157 | - qtjl=it.Qtjl, | ||
| 158 | - bdyhsje=it.Bdyhsje, | ||
| 159 | - dypx=it.Dypx, | ||
| 160 | - dyjtbt=it.Dyjtbt, | ||
| 161 | - yfsy=it.Yfsy, | ||
| 162 | - yfcy=it.Yfcy, | ||
| 163 | - zdts=it.Zdts, | ||
| 164 | - kyts=it.Kyts, | ||
| 165 | - sygzy=it.Sygzy, | ||
| 166 | - dyzdjzcxts=it.Dyzdjzcxts, | ||
| 167 | - dysfhs=it.Dysfhs, | ||
| 168 | - }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); | ||
| 169 | - return PageResult<LqKqhzbListOutput>.SqlSugarPageResult(data); | ||
| 170 | - } | ||
| 171 | - | ||
| 172 | - /// <summary> | ||
| 173 | - /// 新建考勤汇总表 | ||
| 174 | - /// </summary> | ||
| 175 | - /// <param name="input">参数</param> | ||
| 176 | - /// <returns></returns> | ||
| 177 | - [HttpPost("")] | ||
| 178 | - public async Task Create([FromBody] LqKqhzbCrInput input) | ||
| 179 | - { | ||
| 180 | - var userInfo = await _userManager.GetUserInfo(); | ||
| 181 | - var entity = input.Adapt<LqKqhzbEntity>(); | ||
| 182 | - entity.Id = YitIdHelper.NextId().ToString(); | ||
| 183 | - var isOk = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); | ||
| 184 | - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1000); | ||
| 185 | - } | ||
| 186 | - | ||
| 187 | - /// <summary> | ||
| 188 | - /// 获取考勤汇总表无分页列表 | ||
| 189 | - /// </summary> | ||
| 190 | - /// <param name="input">请求参数</param> | ||
| 191 | - /// <returns></returns> | ||
| 192 | - [NonAction] | ||
| 193 | - public async Task<dynamic> GetNoPagingList([FromQuery] LqKqhzbListQueryInput input) | ||
| 194 | - { | ||
| 195 | - var sidx = input.sidx == null ? "id" : input.sidx; | ||
| 196 | - var data = await _db.Queryable<LqKqhzbEntity>() | ||
| 197 | - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) | ||
| 198 | - .WhereIF(!string.IsNullOrEmpty(input.mdbh), p => p.Mdbh.Contains(input.mdbh)) | ||
| 199 | - .WhereIF(!string.IsNullOrEmpty(input.mdmc), p => p.Mdmc.Contains(input.mdmc)) | ||
| 200 | - .WhereIF(!string.IsNullOrEmpty(input.zw), p => p.Zw.Contains(input.zw)) | ||
| 201 | - .WhereIF(!string.IsNullOrEmpty(input.gwfl1), p => p.Gwfl1.Contains(input.gwfl1)) | ||
| 202 | - .WhereIF(!string.IsNullOrEmpty(input.ygbh), p => p.Ygbh.Contains(input.ygbh)) | ||
| 203 | - .WhereIF(!string.IsNullOrEmpty(input.xm), p => p.Xm.Contains(input.xm)) | ||
| 204 | - .WhereIF(!string.IsNullOrEmpty(input.zzqk), p => p.Zzqk.Contains(input.zzqk)) | ||
| 205 | - .WhereIF(!string.IsNullOrEmpty(input.gwfl2), p => p.Gwfl2.Contains(input.gwfl2)) | ||
| 206 | - .WhereIF(!string.IsNullOrEmpty(input.ffyf), p => p.Ffyf.Contains(input.ffyf)) | ||
| 207 | - .WhereIF(!string.IsNullOrEmpty(input.zgts), p => p.Zgts.Contains(input.zgts)) | ||
| 208 | - .WhereIF(!string.IsNullOrEmpty(input.dybzxxts), p => p.Dybzxxts.Contains(input.dybzxxts)) | ||
| 209 | - .WhereIF(!string.IsNullOrEmpty(input.sjxxts), p => p.Sjxxts.Contains(input.sjxxts)) | ||
| 210 | - .WhereIF(!string.IsNullOrEmpty(input.xx), p => p.Xx.Contains(input.xx)) | ||
| 211 | - .WhereIF(!string.IsNullOrEmpty(input.qj), p => p.Qj.Contains(input.qj)) | ||
| 212 | - .WhereIF(!string.IsNullOrEmpty(input.flj), p => p.Flj.Contains(input.flj)) | ||
| 213 | - .WhereIF(!string.IsNullOrEmpty(input.sj), p => p.Sj.Contains(input.sj)) | ||
| 214 | - .WhereIF(!string.IsNullOrEmpty(input.nj), p => p.Nj.Contains(input.nj)) | ||
| 215 | - .WhereIF(!string.IsNullOrEmpty(input.cq), p => p.Cq.Contains(input.cq)) | ||
| 216 | - .WhereIF(!string.IsNullOrEmpty(input.cqjxx), p => p.Cqjxx.Contains(input.cqjxx)) | ||
| 217 | - .WhereIF(!string.IsNullOrEmpty(input.yx), p => p.Yx.Contains(input.yx)) | ||
| 218 | - .WhereIF(!string.IsNullOrEmpty(input.bkts), p => p.Bkts.Contains(input.bkts)) | ||
| 219 | - .WhereIF(!string.IsNullOrEmpty(input.tjxx), p => p.Tjxx.Contains(input.tjxx)) | ||
| 220 | - .WhereIF(!string.IsNullOrEmpty(input.sjqj), p => p.Sjqj.Contains(input.sjqj)) | ||
| 221 | - .WhereIF(!string.IsNullOrEmpty(input.sxts), p => p.Sxts.Contains(input.sxts)) | ||
| 222 | - .WhereIF(!string.IsNullOrEmpty(input.sxbt), p => p.Sxbt.Contains(input.sxbt)) | ||
| 223 | - .WhereIF(!string.IsNullOrEmpty(input.qk), p => p.Qk.Contains(input.qk)) | ||
| 224 | - .WhereIF(!string.IsNullOrEmpty(input.cd), p => p.Cd.Contains(input.cd)) | ||
| 225 | - .WhereIF(!string.IsNullOrEmpty(input.qq), p => p.Qq.Contains(input.qq)) | ||
| 226 | - .WhereIF(!string.IsNullOrEmpty(input.jtbz), p => p.Jtbz.Contains(input.jtbz)) | ||
| 227 | - .WhereIF(!string.IsNullOrEmpty(input.xxqkk), p => p.Xxqkk.Contains(input.xxqkk)) | ||
| 228 | - .WhereIF(!string.IsNullOrEmpty(input.zs), p => p.Zs.Contains(input.zs)) | ||
| 229 | - .WhereIF(!string.IsNullOrEmpty(input.gzf), p => p.Gzf.Contains(input.gzf)) | ||
| 230 | - .WhereIF(!string.IsNullOrEmpty(input.sjyj), p => p.Sjyj.Contains(input.sjyj)) | ||
| 231 | - .WhereIF(!string.IsNullOrEmpty(input.ssyj), p => p.Ssyj.Contains(input.ssyj)) | ||
| 232 | - .WhereIF(!string.IsNullOrEmpty(input.qtjl), p => p.Qtjl.Contains(input.qtjl)) | ||
| 233 | - .WhereIF(!string.IsNullOrEmpty(input.bdyhsje), p => p.Bdyhsje.Contains(input.bdyhsje)) | ||
| 234 | - .WhereIF(!string.IsNullOrEmpty(input.dypx), p => p.Dypx.Contains(input.dypx)) | ||
| 235 | - .WhereIF(!string.IsNullOrEmpty(input.dyjtbt), p => p.Dyjtbt.Contains(input.dyjtbt)) | ||
| 236 | - .WhereIF(!string.IsNullOrEmpty(input.yfsy), p => p.Yfsy.Contains(input.yfsy)) | ||
| 237 | - .WhereIF(!string.IsNullOrEmpty(input.yfcy), p => p.Yfcy.Contains(input.yfcy)) | ||
| 238 | - .WhereIF(!string.IsNullOrEmpty(input.zdts), p => p.Zdts.Contains(input.zdts)) | ||
| 239 | - .WhereIF(!string.IsNullOrEmpty(input.kyts), p => p.Kyts.Contains(input.kyts)) | ||
| 240 | - .WhereIF(!string.IsNullOrEmpty(input.sygzy), p => p.Sygzy.Contains(input.sygzy)) | ||
| 241 | - .WhereIF(!string.IsNullOrEmpty(input.dyzdjzcxts), p => p.Dyzdjzcxts.Contains(input.dyzdjzcxts)) | ||
| 242 | - .WhereIF(!string.IsNullOrEmpty(input.dysfhs), p => p.Dysfhs.Contains(input.dysfhs)) | ||
| 243 | - .Select(it=> new LqKqhzbListOutput | ||
| 244 | - { | ||
| 245 | - id = it.Id, | ||
| 246 | - mdbh=it.Mdbh, | ||
| 247 | - mdmc=it.Mdmc, | ||
| 248 | - zw=it.Zw, | ||
| 249 | - gwfl1=it.Gwfl1, | ||
| 250 | - ygbh=it.Ygbh, | ||
| 251 | - xm=it.Xm, | ||
| 252 | - zzqk=it.Zzqk, | ||
| 253 | - gwfl2=it.Gwfl2, | ||
| 254 | - ffyf=it.Ffyf, | ||
| 255 | - zgts=it.Zgts, | ||
| 256 | - dybzxxts=it.Dybzxxts, | ||
| 257 | - sjxxts=it.Sjxxts, | ||
| 258 | - xx=it.Xx, | ||
| 259 | - qj=it.Qj, | ||
| 260 | - flj=it.Flj, | ||
| 261 | - sj=it.Sj, | ||
| 262 | - nj=it.Nj, | ||
| 263 | - cq=it.Cq, | ||
| 264 | - cqjxx=it.Cqjxx, | ||
| 265 | - yx=it.Yx, | ||
| 266 | - bkts=it.Bkts, | ||
| 267 | - tjxx=it.Tjxx, | ||
| 268 | - sjqj=it.Sjqj, | ||
| 269 | - sxts=it.Sxts, | ||
| 270 | - sxbt=it.Sxbt, | ||
| 271 | - qk=it.Qk, | ||
| 272 | - cd=it.Cd, | ||
| 273 | - qq=it.Qq, | ||
| 274 | - jtbz=it.Jtbz, | ||
| 275 | - xxqkk=it.Xxqkk, | ||
| 276 | - zs=it.Zs, | ||
| 277 | - gzf=it.Gzf, | ||
| 278 | - sjyj=it.Sjyj, | ||
| 279 | - ssyj=it.Ssyj, | ||
| 280 | - qtjl=it.Qtjl, | ||
| 281 | - bdyhsje=it.Bdyhsje, | ||
| 282 | - dypx=it.Dypx, | ||
| 283 | - dyjtbt=it.Dyjtbt, | ||
| 284 | - yfsy=it.Yfsy, | ||
| 285 | - yfcy=it.Yfcy, | ||
| 286 | - zdts=it.Zdts, | ||
| 287 | - kyts=it.Kyts, | ||
| 288 | - sygzy=it.Sygzy, | ||
| 289 | - dyzdjzcxts=it.Dyzdjzcxts, | ||
| 290 | - dysfhs=it.Dysfhs, | ||
| 291 | - }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); | ||
| 292 | - return data; | ||
| 293 | - } | ||
| 294 | - | ||
| 295 | - /// <summary> | ||
| 296 | - /// 导出考勤汇总表 | ||
| 297 | - /// </summary> | ||
| 298 | - /// <param name="input">请求参数</param> | ||
| 299 | - /// <returns></returns> | ||
| 300 | - [HttpGet("Actions/Export")] | ||
| 301 | - public async Task<dynamic> Export([FromQuery] LqKqhzbListQueryInput input) | ||
| 302 | - { | ||
| 303 | - var userInfo = await _userManager.GetUserInfo(); | ||
| 304 | - var exportData = new List<LqKqhzbListOutput>(); | ||
| 305 | - if (input.dataType == 0) | ||
| 306 | - { | ||
| 307 | - var data = Clay.Object(await this.GetList(input)); | ||
| 308 | - exportData = data.Solidify<PageResult<LqKqhzbListOutput>>().list; | ||
| 309 | - } | ||
| 310 | - else | ||
| 311 | - { | ||
| 312 | - exportData = await this.GetNoPagingList(input); | ||
| 313 | - } | ||
| 314 | - List<ParamsModel> 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<ParamsModel>(); | ||
| 315 | - ExcelConfig excelconfig = new ExcelConfig(); | ||
| 316 | - excelconfig.FileName = "考勤汇总表.xls"; | ||
| 317 | - excelconfig.HeadFont = "微软雅黑"; | ||
| 318 | - excelconfig.HeadPoint = 10; | ||
| 319 | - excelconfig.IsAllSizeColumn = true; | ||
| 320 | - excelconfig.ColumnModel = new List<ExcelColumnModel>(); | ||
| 321 | - List<string> selectKeyList = input.selectKey.Split(',').ToList(); | ||
| 322 | - foreach (var item in selectKeyList) | ||
| 323 | - { | ||
| 324 | - var isExist = paramList.Find(p => p.field == item); | ||
| 325 | - if (isExist != null) | ||
| 326 | - { | ||
| 327 | - excelconfig.ColumnModel.Add(new ExcelColumnModel() { Column = isExist.field, ExcelColumn = isExist.value }); | ||
| 328 | - } | ||
| 329 | - } | ||
| 330 | - var addPath = FileVariable.TemporaryFilePath + excelconfig.FileName; | ||
| 331 | - ExcelExportHelper<LqKqhzbListOutput>.Export(exportData, excelconfig, addPath); | ||
| 332 | - var fileName = _userManager.UserId + "|" + addPath + "|xls"; | ||
| 333 | - var output = new | ||
| 334 | - { | ||
| 335 | - name = excelconfig.FileName, | ||
| 336 | - url = "/api/File/Download?encryption=" + DESCEncryption.Encrypt(fileName, "NCC") | ||
| 337 | - }; | ||
| 338 | - return output; | ||
| 339 | - } | ||
| 340 | - | ||
| 341 | - /// <summary> | ||
| 342 | - /// 批量删除考勤汇总表 | ||
| 343 | - /// </summary> | ||
| 344 | - /// <param name="ids">主键数组</param> | ||
| 345 | - /// <returns></returns> | ||
| 346 | - [HttpPost("batchRemove")] | ||
| 347 | - public async Task BatchRemove([FromBody] List<string> ids) | ||
| 348 | - { | ||
| 349 | - var entitys = await _db.Queryable<LqKqhzbEntity>().In(it => it.Id, ids).ToListAsync(); | ||
| 350 | - if (entitys.Count > 0) | ||
| 351 | - { | ||
| 352 | - try | ||
| 353 | - { | ||
| 354 | - //开启事务 | ||
| 355 | - _db.BeginTran(); | ||
| 356 | - //批量删除考勤汇总表 | ||
| 357 | - await _db.Deleteable<LqKqhzbEntity>().In(d => d.Id,ids).ExecuteCommandAsync(); | ||
| 358 | - //关闭事务 | ||
| 359 | - _db.CommitTran(); | ||
| 360 | - } | ||
| 361 | - catch (Exception) | ||
| 362 | - { | ||
| 363 | - //回滚事务 | ||
| 364 | - _db.RollbackTran(); | ||
| 365 | - throw NCCException.Oh(ErrorCode.COM1002); | ||
| 366 | - } | ||
| 367 | - } | ||
| 368 | - } | ||
| 369 | - | ||
| 370 | - /// <summary> | ||
| 371 | - /// 更新考勤汇总表 | ||
| 372 | - /// </summary> | ||
| 373 | - /// <param name="id">主键</param> | ||
| 374 | - /// <param name="input">参数</param> | ||
| 375 | - /// <returns></returns> | ||
| 376 | - [HttpPut("{id}")] | ||
| 377 | - public async Task Update(string id, [FromBody] LqKqhzbUpInput input) | ||
| 378 | - { | ||
| 379 | - var entity = input.Adapt<LqKqhzbEntity>(); | ||
| 380 | - var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); | ||
| 381 | - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001); | ||
| 382 | - } | ||
| 383 | - | ||
| 384 | - /// <summary> | ||
| 385 | - /// 删除考勤汇总表 | ||
| 386 | - /// </summary> | ||
| 387 | - /// <returns></returns> | ||
| 388 | - [HttpDelete("{id}")] | ||
| 389 | - public async Task Delete(string id) | ||
| 390 | - { | ||
| 391 | - var entity = await _db.Queryable<LqKqhzbEntity>().FirstAsync(p => p.Id == id); | ||
| 392 | - _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005); | ||
| 393 | - var isOk = await _db.Deleteable<LqKqhzbEntity>().Where(d => d.Id == id).ExecuteCommandAsync(); | ||
| 394 | - if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1002); | ||
| 395 | - } | ||
| 396 | - } | ||
| 397 | -} |
创建考勤汇总表.sql
0 → 100644
| 1 | +CREATE TABLE `lq_attendance_summary` ( | ||
| 2 | + `F_Id` varchar(50) NOT NULL COMMENT '考勤汇总ID', | ||
| 3 | + `F_UserId` varchar(50) NOT NULL COMMENT '用户ID(员工ID)', | ||
| 4 | + `F_Year` int NOT NULL COMMENT '年份', | ||
| 5 | + `F_Month` int NOT NULL COMMENT '月份', | ||
| 6 | + `F_EmployeeStatus` int NOT NULL DEFAULT 1 COMMENT '员工状态(1-在职,2-离职,3-停薪留职)', | ||
| 7 | + `F_WorkDays` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '出勤天数', | ||
| 8 | + `F_LeaveDays` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '请假天数', | ||
| 9 | + `F_RestDays` decimal(5,2) NOT NULL DEFAULT 0.00 COMMENT '休息天数', | ||
| 10 | + `F_Remark` varchar(2000) COMMENT '备注', | ||
| 11 | + `F_CreateUser` varchar(50) NOT NULL COMMENT '创建人ID', | ||
| 12 | + `F_CreateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | ||
| 13 | + `F_UpdateUser` varchar(50) COMMENT '更新人ID', | ||
| 14 | + `F_UpdateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 15 | + `F_IsEffective` int NOT NULL DEFAULT 1 COMMENT '是否有效(1-有效,-1-无效)', | ||
| 16 | + PRIMARY KEY (`F_Id`), | ||
| 17 | + UNIQUE KEY `uk_user_year_month` (`F_UserId`, `F_Year`, `F_Month`), | ||
| 18 | + KEY `idx_user_id` (`F_UserId`), | ||
| 19 | + KEY `idx_year_month` (`F_Year`, `F_Month`), | ||
| 20 | + KEY `idx_create_time` (`F_CreateTime`) | ||
| 21 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='考勤汇总表'; |