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