Commit b31159d8c26d8266a9a0cdbcf191230bd56d0f10

Authored by “wangming”
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
1 -namespace NCC.Extend.Interfaces.LqKqhzb  
2 -{  
3 - public interface ILqKqhzbService  
4 - {  
5 - }  
6 -}  
7 \ No newline at end of file 0 \ No newline at end of file
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='考勤汇总表';