Commit 14cbcfd930c26e5f07f3ca0e52cd630cc799fab0
1 parent
72cec4b5
feat: 添加人次记录表和品项分类字段
- 新增人次记录表(lq_person_times_record)及相关实体类和DTO - 为开单品项明细、开单扣减信息、耗卡品项明细、会员退卡明细表添加品项分类字段(F_ItemCategory) - 优化预约记录服务,将AddNoDealRemark方法的参数改为实体类 - 更新相关实体类和DTO以支持新字段
Showing
22 changed files
with
745 additions
and
163 deletions
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbListOutput.cs
| 1 | using System; | 1 | using System; |
| 2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
| 3 | +using NCC.Extend.Entitys.Dto.LqKdDeductinfo; | ||
| 3 | 4 | ||
| 4 | namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | 5 | namespace NCC.Extend.Entitys.Dto.LqKdKdjlb |
| 5 | { | 6 | { |
| @@ -189,5 +190,10 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | @@ -189,5 +190,10 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | ||
| 189 | /// 科技部老师业绩列表 | 190 | /// 科技部老师业绩列表 |
| 190 | /// </summary> | 191 | /// </summary> |
| 191 | public List<LqKdKjbsyjInfoOutput> lqKdKjbsyjList { get; set; } | 192 | public List<LqKdKjbsyjInfoOutput> lqKdKjbsyjList { get; set; } |
| 193 | + | ||
| 194 | + /// <summary> | ||
| 195 | + /// 储扣扣款信息列表 | ||
| 196 | + /// </summary> | ||
| 197 | + public List<LqKdDeductinfoInfoOutput> lqKdDeductList { get; set; } | ||
| 192 | } | 198 | } |
| 193 | } | 199 | } |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqPersonTimesRecord/LqPersonTimesRecordCrInput.cs
0 → 100644
| 1 | +using System; | ||
| 2 | + | ||
| 3 | +namespace NCC.Extend.Entitys.Dto.LqPersonTimesRecord | ||
| 4 | +{ | ||
| 5 | + /// <summary> | ||
| 6 | + /// 人次记录创建输入参数 | ||
| 7 | + /// </summary> | ||
| 8 | + public class LqPersonTimesRecordCrInput | ||
| 9 | + { | ||
| 10 | + /// <summary> | ||
| 11 | + /// 主键ID | ||
| 12 | + /// </summary> | ||
| 13 | + public string id { get; set; } | ||
| 14 | + | ||
| 15 | + /// <summary> | ||
| 16 | + /// 关联业务记录ID | ||
| 17 | + /// </summary> | ||
| 18 | + public string businessId { get; set; } | ||
| 19 | + | ||
| 20 | + /// <summary> | ||
| 21 | + /// 业务类型(耗卡/开单) | ||
| 22 | + /// </summary> | ||
| 23 | + public string businessType { get; set; } | ||
| 24 | + | ||
| 25 | + /// <summary> | ||
| 26 | + /// 人员类型(健康师/科技老师) | ||
| 27 | + /// </summary> | ||
| 28 | + public string personType { get; set; } | ||
| 29 | + | ||
| 30 | + /// <summary> | ||
| 31 | + /// 人员ID | ||
| 32 | + /// </summary> | ||
| 33 | + public string personId { get; set; } | ||
| 34 | + | ||
| 35 | + /// <summary> | ||
| 36 | + /// 人员姓名 | ||
| 37 | + /// </summary> | ||
| 38 | + public string personName { get; set; } | ||
| 39 | + | ||
| 40 | + /// <summary> | ||
| 41 | + /// 客户ID | ||
| 42 | + /// </summary> | ||
| 43 | + public string memberId { get; set; } | ||
| 44 | + | ||
| 45 | + /// <summary> | ||
| 46 | + /// 客户姓名 | ||
| 47 | + /// </summary> | ||
| 48 | + public string memberName { get; set; } | ||
| 49 | + | ||
| 50 | + /// <summary> | ||
| 51 | + /// 工作日期(用于人次统计,格式:YYYY-MM-DD) | ||
| 52 | + /// </summary> | ||
| 53 | + public DateTime? workDate { get; set; } | ||
| 54 | + | ||
| 55 | + /// <summary> | ||
| 56 | + /// 工作月份(用于人头统计,格式:202511) | ||
| 57 | + /// </summary> | ||
| 58 | + public string workMonth { get; set; } | ||
| 59 | + | ||
| 60 | + /// <summary> | ||
| 61 | + /// 数量 | ||
| 62 | + /// </summary> | ||
| 63 | + public decimal? quantity { get; set; } | ||
| 64 | + } | ||
| 65 | +} | ||
| 66 | + | ||
| 67 | + |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqPersonTimesRecord/LqPersonTimesRecordInfoOutput.cs
0 → 100644
| 1 | +using System; | ||
| 2 | + | ||
| 3 | +namespace NCC.Extend.Entitys.Dto.LqPersonTimesRecord | ||
| 4 | +{ | ||
| 5 | + /// <summary> | ||
| 6 | + /// 人次记录信息输出参数 | ||
| 7 | + /// </summary> | ||
| 8 | + public class LqPersonTimesRecordInfoOutput | ||
| 9 | + { | ||
| 10 | + /// <summary> | ||
| 11 | + /// 主键ID | ||
| 12 | + /// </summary> | ||
| 13 | + public string id { get; set; } | ||
| 14 | + | ||
| 15 | + /// <summary> | ||
| 16 | + /// 关联业务记录ID | ||
| 17 | + /// </summary> | ||
| 18 | + public string businessId { get; set; } | ||
| 19 | + | ||
| 20 | + /// <summary> | ||
| 21 | + /// 业务类型(耗卡/开单) | ||
| 22 | + /// </summary> | ||
| 23 | + public string businessType { get; set; } | ||
| 24 | + | ||
| 25 | + /// <summary> | ||
| 26 | + /// 人员类型(健康师/科技老师) | ||
| 27 | + /// </summary> | ||
| 28 | + public string personType { get; set; } | ||
| 29 | + | ||
| 30 | + /// <summary> | ||
| 31 | + /// 人员ID | ||
| 32 | + /// </summary> | ||
| 33 | + public string personId { get; set; } | ||
| 34 | + | ||
| 35 | + /// <summary> | ||
| 36 | + /// 人员姓名 | ||
| 37 | + /// </summary> | ||
| 38 | + public string personName { get; set; } | ||
| 39 | + | ||
| 40 | + /// <summary> | ||
| 41 | + /// 客户ID | ||
| 42 | + /// </summary> | ||
| 43 | + public string memberId { get; set; } | ||
| 44 | + | ||
| 45 | + /// <summary> | ||
| 46 | + /// 客户姓名 | ||
| 47 | + /// </summary> | ||
| 48 | + public string memberName { get; set; } | ||
| 49 | + | ||
| 50 | + /// <summary> | ||
| 51 | + /// 工作日期(用于人次统计,格式:YYYY-MM-DD) | ||
| 52 | + /// </summary> | ||
| 53 | + public DateTime? workDate { get; set; } | ||
| 54 | + | ||
| 55 | + /// <summary> | ||
| 56 | + /// 工作月份(用于人头统计,格式:202511) | ||
| 57 | + /// </summary> | ||
| 58 | + public string workMonth { get; set; } | ||
| 59 | + | ||
| 60 | + /// <summary> | ||
| 61 | + /// 数量 | ||
| 62 | + /// </summary> | ||
| 63 | + public decimal? quantity { get; set; } | ||
| 64 | + | ||
| 65 | + /// <summary> | ||
| 66 | + /// 创建时间 | ||
| 67 | + /// </summary> | ||
| 68 | + public DateTime? createTime { get; set; } | ||
| 69 | + | ||
| 70 | + /// <summary> | ||
| 71 | + /// 是否有效 | ||
| 72 | + /// </summary> | ||
| 73 | + public int isEffective { get; set; } | ||
| 74 | + } | ||
| 75 | +} | ||
| 76 | + | ||
| 77 | + |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqPersonTimesRecord/LqPersonTimesRecordListOutput.cs
0 → 100644
| 1 | +using System; | ||
| 2 | + | ||
| 3 | +namespace NCC.Extend.Entitys.Dto.LqPersonTimesRecord | ||
| 4 | +{ | ||
| 5 | + /// <summary> | ||
| 6 | + /// 人次记录列表输出参数 | ||
| 7 | + /// </summary> | ||
| 8 | + public class LqPersonTimesRecordListOutput | ||
| 9 | + { | ||
| 10 | + /// <summary> | ||
| 11 | + /// 主键ID | ||
| 12 | + /// </summary> | ||
| 13 | + public string id { get; set; } | ||
| 14 | + | ||
| 15 | + /// <summary> | ||
| 16 | + /// 关联业务记录ID | ||
| 17 | + /// </summary> | ||
| 18 | + public string businessId { get; set; } | ||
| 19 | + | ||
| 20 | + /// <summary> | ||
| 21 | + /// 业务类型(耗卡/开单) | ||
| 22 | + /// </summary> | ||
| 23 | + public string businessType { get; set; } | ||
| 24 | + | ||
| 25 | + /// <summary> | ||
| 26 | + /// 人员类型(健康师/科技老师) | ||
| 27 | + /// </summary> | ||
| 28 | + public string personType { get; set; } | ||
| 29 | + | ||
| 30 | + /// <summary> | ||
| 31 | + /// 人员ID | ||
| 32 | + /// </summary> | ||
| 33 | + public string personId { get; set; } | ||
| 34 | + | ||
| 35 | + /// <summary> | ||
| 36 | + /// 人员姓名 | ||
| 37 | + /// </summary> | ||
| 38 | + public string personName { get; set; } | ||
| 39 | + | ||
| 40 | + /// <summary> | ||
| 41 | + /// 客户ID | ||
| 42 | + /// </summary> | ||
| 43 | + public string memberId { get; set; } | ||
| 44 | + | ||
| 45 | + /// <summary> | ||
| 46 | + /// 客户姓名 | ||
| 47 | + /// </summary> | ||
| 48 | + public string memberName { get; set; } | ||
| 49 | + | ||
| 50 | + /// <summary> | ||
| 51 | + /// 工作日期(用于人次统计,格式:YYYY-MM-DD) | ||
| 52 | + /// </summary> | ||
| 53 | + public DateTime? workDate { get; set; } | ||
| 54 | + | ||
| 55 | + /// <summary> | ||
| 56 | + /// 工作月份(用于人头统计,格式:202511) | ||
| 57 | + /// </summary> | ||
| 58 | + public string workMonth { get; set; } | ||
| 59 | + | ||
| 60 | + /// <summary> | ||
| 61 | + /// 数量 | ||
| 62 | + /// </summary> | ||
| 63 | + public decimal? quantity { get; set; } | ||
| 64 | + | ||
| 65 | + /// <summary> | ||
| 66 | + /// 创建时间 | ||
| 67 | + /// </summary> | ||
| 68 | + public DateTime? createTime { get; set; } | ||
| 69 | + | ||
| 70 | + /// <summary> | ||
| 71 | + /// 是否有效 | ||
| 72 | + /// </summary> | ||
| 73 | + public int isEffective { get; set; } | ||
| 74 | + } | ||
| 75 | +} | ||
| 76 | + | ||
| 77 | + |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqPersonTimesRecord/LqPersonTimesRecordUpInput.cs
0 → 100644
| 1 | +namespace NCC.Extend.Entitys.Dto.LqPersonTimesRecord | ||
| 2 | +{ | ||
| 3 | + /// <summary> | ||
| 4 | + /// 人次记录更新输入参数 | ||
| 5 | + /// </summary> | ||
| 6 | + public class LqPersonTimesRecordUpInput : LqPersonTimesRecordCrInput | ||
| 7 | + { | ||
| 8 | + /// <summary> | ||
| 9 | + /// 主键ID | ||
| 10 | + /// </summary> | ||
| 11 | + public string id { get; set; } | ||
| 12 | + } | ||
| 13 | +} | ||
| 14 | + | ||
| 15 | + |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs
| @@ -84,6 +84,10 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk | @@ -84,6 +84,10 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk | ||
| 84 | /// </summary> | 84 | /// </summary> |
| 85 | public decimal? overtimeCoefficient { get; set; } = 0; | 85 | public decimal? overtimeCoefficient { get; set; } = 0; |
| 86 | 86 | ||
| 87 | + /// <summary> | ||
| 88 | + /// 预约记录ID | ||
| 89 | + /// </summary> | ||
| 90 | + public string appointmentId { get; set; } | ||
| 87 | 91 | ||
| 88 | /// <summary> | 92 | /// <summary> |
| 89 | /// 耗卡_品项明细 | 93 | /// 耗卡_品项明细 |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkInfoOutput.cs
| 1 | using System; | 1 | using System; |
| 2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
| 3 | +using NCC.Extend.Entitys.Dto.LqPersonTimesRecord; | ||
| 3 | using NCC.Extend.Entitys.Dto.LqXhJksyj; | 4 | using NCC.Extend.Entitys.Dto.LqXhJksyj; |
| 4 | using NCC.Extend.Entitys.Dto.LqXhKjbsyj; | 5 | using NCC.Extend.Entitys.Dto.LqXhKjbsyj; |
| 5 | using NCC.Extend.Entitys.Dto.LqXhPxmx; | 6 | using NCC.Extend.Entitys.Dto.LqXhPxmx; |
| @@ -141,5 +142,15 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk | @@ -141,5 +142,15 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk | ||
| 141 | /// </summary> | 142 | /// </summary> |
| 142 | public List<LqXhPxmxInfoOutput> lqXhPxmxList { get; set; } | 143 | public List<LqXhPxmxInfoOutput> lqXhPxmxList { get; set; } |
| 143 | 144 | ||
| 145 | + /// <summary> | ||
| 146 | + /// 预约记录ID | ||
| 147 | + /// </summary> | ||
| 148 | + public string appointmentId { get; set; } | ||
| 149 | + | ||
| 150 | + /// <summary> | ||
| 151 | + /// 人次记录列表 | ||
| 152 | + /// </summary> | ||
| 153 | + public List<LqPersonTimesRecordListOutput> personTimesRecordList { get; set; } | ||
| 154 | + | ||
| 144 | } | 155 | } |
| 145 | } | 156 | } |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkListOutput.cs
| 1 | using System; | 1 | using System; |
| 2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
| 3 | +using NCC.Extend.Entitys.Dto.LqPersonTimesRecord; | ||
| 3 | using NCC.Extend.Entitys.Dto.LqXhJksyj; | 4 | using NCC.Extend.Entitys.Dto.LqXhJksyj; |
| 4 | using NCC.Extend.Entitys.Dto.LqXhKjbsyj; | 5 | using NCC.Extend.Entitys.Dto.LqXhKjbsyj; |
| 5 | using NCC.Extend.Entitys.Dto.LqXhPxmx; | 6 | using NCC.Extend.Entitys.Dto.LqXhPxmx; |
| 7 | +using NCC.Extend.Entitys.Dto.LqYyjl; | ||
| 6 | 8 | ||
| 7 | namespace NCC.Extend.Entitys.Dto.LqXhHyhk | 9 | namespace NCC.Extend.Entitys.Dto.LqXhHyhk |
| 8 | { | 10 | { |
| @@ -122,5 +124,15 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk | @@ -122,5 +124,15 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk | ||
| 122 | /// </summary> | 124 | /// </summary> |
| 123 | public List<LqXhKjbsyjInfoOutput> lqXhKjbsyjList { get; set; } | 125 | public List<LqXhKjbsyjInfoOutput> lqXhKjbsyjList { get; set; } |
| 124 | 126 | ||
| 127 | + /// <summary> | ||
| 128 | + /// 预约记录ID | ||
| 129 | + /// </summary> | ||
| 130 | + public string appointmentId { get; set; } | ||
| 131 | + | ||
| 132 | + /// <summary> | ||
| 133 | + /// 人次记录列表 | ||
| 134 | + /// </summary> | ||
| 135 | + public List<LqPersonTimesRecordListOutput> personTimesRecordList { get; set; } | ||
| 136 | + | ||
| 125 | } | 137 | } |
| 126 | } | 138 | } |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhPxmx/LqXhPxmxCrInput.cs
| 1 | using System; | 1 | using System; |
| 2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
| 3 | +using NCC.Extend.Entitys.Dto.LqXhJksyj; | ||
| 4 | +using NCC.Extend.Entitys.Dto.LqXhKjbsyj; | ||
| 3 | 5 | ||
| 4 | namespace NCC.Extend.Entitys.Dto.LqXhPxmx | 6 | namespace NCC.Extend.Entitys.Dto.LqXhPxmx |
| 5 | { | 7 | { |
| @@ -66,11 +68,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx | @@ -66,11 +68,11 @@ namespace NCC.Extend.Entitys.Dto.LqXhPxmx | ||
| 66 | /// <summary> | 68 | /// <summary> |
| 67 | /// 健康师业绩 | 69 | /// 健康师业绩 |
| 68 | /// </summary> | 70 | /// </summary> |
| 69 | - public List<LqXhJksyj.LqXhJksyjCrInput> lqXhJksyjList { get; set; } | 71 | + public List<LqXhJksyjCrInput> lqXhJksyjList { get; set; } |
| 70 | 72 | ||
| 71 | /// <summary> | 73 | /// <summary> |
| 72 | /// 科技部老师业绩 | 74 | /// 科技部老师业绩 |
| 73 | /// </summary> | 75 | /// </summary> |
| 74 | - public List<LqXhKjbsyj.LqXhKjbsyjCrInput> lqXhKjbsyjList { get; set; } | 76 | + public List<LqXhKjbsyjCrInput> lqXhKjbsyjList { get; set; } |
| 75 | } | 77 | } |
| 76 | } | 78 | } |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqYyjl/LqYyjlAddNoDealRemarkInput.cs
0 → 100644
| 1 | +namespace NCC.Extend.Entitys.Dto.LqYyjl | ||
| 2 | +{ | ||
| 3 | + /// <summary> | ||
| 4 | + /// 添加未成交说明输入参数 | ||
| 5 | + /// </summary> | ||
| 6 | + public class LqYyjlAddNoDealRemarkInput | ||
| 7 | + { | ||
| 8 | + /// <summary> | ||
| 9 | + /// 预约记录ID | ||
| 10 | + /// </summary> | ||
| 11 | + public string id { get; set; } | ||
| 12 | + | ||
| 13 | + /// <summary> | ||
| 14 | + /// 未成交说明 | ||
| 15 | + /// </summary> | ||
| 16 | + public string noDealRemark { get; set; } | ||
| 17 | + } | ||
| 18 | +} | ||
| 19 | + |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_hytk_mx/LqHytkMxEntity.cs
| @@ -49,6 +49,12 @@ namespace NCC.Extend.Entitys.lq_hytk_mx | @@ -49,6 +49,12 @@ namespace NCC.Extend.Entitys.lq_hytk_mx | ||
| 49 | public string Pxmc { get; set; } | 49 | public string Pxmc { get; set; } |
| 50 | 50 | ||
| 51 | /// <summary> | 51 | /// <summary> |
| 52 | + /// 品项分类 | ||
| 53 | + /// </summary> | ||
| 54 | + [SugarColumn(ColumnName = "F_ItemCategory")] | ||
| 55 | + public string ItemCategory { get; set; } | ||
| 56 | + | ||
| 57 | + /// <summary> | ||
| 52 | /// 品项价格 | 58 | /// 品项价格 |
| 53 | /// </summary> | 59 | /// </summary> |
| 54 | [SugarColumn(ColumnName = "pxjg")] | 60 | [SugarColumn(ColumnName = "pxjg")] |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_deductinfo/LqKdDeductinfoEntity.cs
| @@ -66,6 +66,12 @@ namespace NCC.Extend.Entitys.lq_kd_deductinfo | @@ -66,6 +66,12 @@ namespace NCC.Extend.Entitys.lq_kd_deductinfo | ||
| 66 | public string ItemId { get; set; } | 66 | public string ItemId { get; set; } |
| 67 | 67 | ||
| 68 | /// <summary> | 68 | /// <summary> |
| 69 | + /// 品项分类 | ||
| 70 | + /// </summary> | ||
| 71 | + [SugarColumn(ColumnName = "F_ItemCategory")] | ||
| 72 | + public string ItemCategory { get; set; } | ||
| 73 | + | ||
| 74 | + /// <summary> | ||
| 69 | /// 创建时间 | 75 | /// 创建时间 |
| 70 | /// </summary> | 76 | /// </summary> |
| 71 | [SugarColumn(ColumnName = "F_CreateTime")] | 77 | [SugarColumn(ColumnName = "F_CreateTime")] |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_pxmx/LqKdPxmxEntity.cs
| @@ -36,6 +36,12 @@ namespace NCC.Extend.Entitys.lq_kd_pxmx | @@ -36,6 +36,12 @@ namespace NCC.Extend.Entitys.lq_kd_pxmx | ||
| 36 | public string Pxmc { get; set; } | 36 | public string Pxmc { get; set; } |
| 37 | 37 | ||
| 38 | /// <summary> | 38 | /// <summary> |
| 39 | + /// 品项分类 | ||
| 40 | + /// </summary> | ||
| 41 | + [SugarColumn(ColumnName = "F_ItemCategory")] | ||
| 42 | + public string ItemCategory { get; set; } | ||
| 43 | + | ||
| 44 | + /// <summary> | ||
| 39 | /// 品项价格 | 45 | /// 品项价格 |
| 40 | /// </summary> | 46 | /// </summary> |
| 41 | [SugarColumn(ColumnName = "pxjg")] | 47 | [SugarColumn(ColumnName = "pxjg")] |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_person_times_record/LqPersonTimesRecordEntity.cs
0 → 100644
| 1 | +using System; | ||
| 2 | +using NCC.Common.Const; | ||
| 3 | +using NCC.Extend.Entitys.Enum; | ||
| 4 | +using SqlSugar; | ||
| 5 | + | ||
| 6 | +namespace NCC.Extend.Entitys.lq_person_times_record | ||
| 7 | +{ | ||
| 8 | + /// <summary> | ||
| 9 | + /// 人次记录表 | ||
| 10 | + /// </summary> | ||
| 11 | + [SugarTable("lq_person_times_record")] | ||
| 12 | + [Tenant(ClaimConst.TENANT_ID)] | ||
| 13 | + public class LqPersonTimesRecordEntity | ||
| 14 | + { | ||
| 15 | + /// <summary> | ||
| 16 | + /// 主键ID | ||
| 17 | + /// </summary> | ||
| 18 | + [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] | ||
| 19 | + public string Id { get; set; } | ||
| 20 | + | ||
| 21 | + /// <summary> | ||
| 22 | + /// 关联业务记录ID | ||
| 23 | + /// </summary> | ||
| 24 | + [SugarColumn(ColumnName = "F_BusinessId")] | ||
| 25 | + public string BusinessId { get; set; } | ||
| 26 | + | ||
| 27 | + /// <summary> | ||
| 28 | + /// 业务类型(耗卡/开单) | ||
| 29 | + /// </summary> | ||
| 30 | + [SugarColumn(ColumnName = "F_BusinessType")] | ||
| 31 | + public string BusinessType { get; set; } | ||
| 32 | + | ||
| 33 | + /// <summary> | ||
| 34 | + /// 人员类型(健康师/科技老师) | ||
| 35 | + /// </summary> | ||
| 36 | + [SugarColumn(ColumnName = "F_PersonType")] | ||
| 37 | + public string PersonType { get; set; } | ||
| 38 | + | ||
| 39 | + /// <summary> | ||
| 40 | + /// 人员ID | ||
| 41 | + /// </summary> | ||
| 42 | + [SugarColumn(ColumnName = "F_PersonId")] | ||
| 43 | + public string PersonId { get; set; } | ||
| 44 | + | ||
| 45 | + /// <summary> | ||
| 46 | + /// 人员姓名 | ||
| 47 | + /// </summary> | ||
| 48 | + [SugarColumn(ColumnName = "F_PersonName")] | ||
| 49 | + public string PersonName { get; set; } | ||
| 50 | + | ||
| 51 | + /// <summary> | ||
| 52 | + /// 客户ID | ||
| 53 | + /// </summary> | ||
| 54 | + [SugarColumn(ColumnName = "F_MemberId")] | ||
| 55 | + public string MemberId { get; set; } | ||
| 56 | + | ||
| 57 | + /// <summary> | ||
| 58 | + /// 客户姓名 | ||
| 59 | + /// </summary> | ||
| 60 | + [SugarColumn(ColumnName = "F_MemberName")] | ||
| 61 | + public string MemberName { get; set; } | ||
| 62 | + | ||
| 63 | + /// <summary> | ||
| 64 | + /// 工作日期(用于人次统计,格式:YYYY-MM-DD) | ||
| 65 | + /// </summary> | ||
| 66 | + [SugarColumn(ColumnName = "F_WorkDate")] | ||
| 67 | + public DateTime? WorkDate { get; set; } | ||
| 68 | + | ||
| 69 | + /// <summary> | ||
| 70 | + /// 工作月份(用于人头统计,格式:202511) | ||
| 71 | + /// </summary> | ||
| 72 | + [SugarColumn(ColumnName = "F_WorkMonth")] | ||
| 73 | + public string WorkMonth { get; set; } | ||
| 74 | + | ||
| 75 | + /// <summary> | ||
| 76 | + /// 数量 | ||
| 77 | + /// </summary> | ||
| 78 | + [SugarColumn(ColumnName = "F_Quantity")] | ||
| 79 | + public decimal? Quantity { get; set; } | ||
| 80 | + | ||
| 81 | + /// <summary> | ||
| 82 | + /// 创建时间 | ||
| 83 | + /// </summary> | ||
| 84 | + [SugarColumn(ColumnName = "F_CreateTime")] | ||
| 85 | + public DateTime? CreateTime { get; set; } | ||
| 86 | + | ||
| 87 | + /// <summary> | ||
| 88 | + /// 是否有效 | ||
| 89 | + /// </summary> | ||
| 90 | + [SugarColumn(ColumnName = "F_IsEffective")] | ||
| 91 | + public int IsEffective { get; set; } = StatusEnum.有效.GetHashCode(); | ||
| 92 | + } | ||
| 93 | +} | ||
| 94 | + |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xh_pxmx/LqXhPxmxEntity.cs
| @@ -42,6 +42,12 @@ namespace NCC.Extend.Entitys.lq_xh_pxmx | @@ -42,6 +42,12 @@ namespace NCC.Extend.Entitys.lq_xh_pxmx | ||
| 42 | public string Pxmc { get; set; } | 42 | public string Pxmc { get; set; } |
| 43 | 43 | ||
| 44 | /// <summary> | 44 | /// <summary> |
| 45 | + /// 品项分类 | ||
| 46 | + /// </summary> | ||
| 47 | + [SugarColumn(ColumnName = "F_ItemCategory")] | ||
| 48 | + public string ItemCategory { get; set; } | ||
| 49 | + | ||
| 50 | + /// <summary> | ||
| 45 | /// 品项价格 | 51 | /// 品项价格 |
| 46 | /// </summary> | 52 | /// </summary> |
| 47 | [SugarColumn(ColumnName = "pxjg")] | 53 | [SugarColumn(ColumnName = "pxjg")] |
netcore/src/Modularity/Extend/NCC.Extend/LqHytkHytkService.cs
| @@ -25,6 +25,7 @@ using NCC.Extend.Entitys.lq_hytk_jksyj; | @@ -25,6 +25,7 @@ using NCC.Extend.Entitys.lq_hytk_jksyj; | ||
| 25 | using NCC.Extend.Entitys.lq_hytk_kjbsyj; | 25 | using NCC.Extend.Entitys.lq_hytk_kjbsyj; |
| 26 | using NCC.Extend.Entitys.lq_hytk_mx; | 26 | using NCC.Extend.Entitys.lq_hytk_mx; |
| 27 | using NCC.Extend.Entitys.lq_kd_pxmx; | 27 | using NCC.Extend.Entitys.lq_kd_pxmx; |
| 28 | +using NCC.Extend.Entitys.lq_xmzl; | ||
| 28 | using NCC.Extend.Interfaces.LqHytkHytk; | 29 | using NCC.Extend.Interfaces.LqHytkHytk; |
| 29 | using NCC.FriendlyException; | 30 | using NCC.FriendlyException; |
| 30 | using NCC.JsonSerialization; | 31 | using NCC.JsonSerialization; |
| @@ -408,6 +409,7 @@ namespace NCC.Extend.LqHytkHytk | @@ -408,6 +409,7 @@ namespace NCC.Extend.LqHytkHytk | ||
| 408 | SourceType = item.F_SourceType, | 409 | SourceType = item.F_SourceType, |
| 409 | TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)), | 410 | TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)), |
| 410 | IsEffective = StatusEnum.有效.GetHashCode(), | 411 | IsEffective = StatusEnum.有效.GetHashCode(), |
| 412 | + ItemCategory = await _db.Queryable<LqXmzlEntity>().Where(x => x.Id == item.px).Select(x => x.Qt2).FirstAsync(), | ||
| 411 | }; | 413 | }; |
| 412 | allMxEntities.Add(lqHytkMxEntity); | 414 | allMxEntities.Add(lqHytkMxEntity); |
| 413 | 415 | ||
| @@ -559,6 +561,7 @@ namespace NCC.Extend.LqHytkHytk | @@ -559,6 +561,7 @@ namespace NCC.Extend.LqHytkHytk | ||
| 559 | ProjectNumber = item.F_ProjectNumber ?? 1, | 561 | ProjectNumber = item.F_ProjectNumber ?? 1, |
| 560 | SourceType = item.F_SourceType, | 562 | SourceType = item.F_SourceType, |
| 561 | TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)), | 563 | TotalPrice = item.F_TotalPrice ?? (item.pxjg * (item.F_ProjectNumber ?? 1)), |
| 564 | + ItemCategory = await _db.Queryable<LqXmzlEntity>().Where(x => x.Id == item.px).Select(x => x.Qt2).FirstAsync(), | ||
| 562 | }; | 565 | }; |
| 563 | allMxEntities.Add(lqHytkMxEntity); | 566 | allMxEntities.Add(lqHytkMxEntity); |
| 564 | 567 |
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
| @@ -363,65 +363,77 @@ namespace NCC.Extend.LqKdKdjlb | @@ -363,65 +363,77 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 363 | var jksyjList = new List<LqKdJksyjInfoOutput>(); | 363 | var jksyjList = new List<LqKdJksyjInfoOutput>(); |
| 364 | if (billingIds.Any()) | 364 | if (billingIds.Any()) |
| 365 | { | 365 | { |
| 366 | - jksyjList = await _db.Queryable<LqKdJksyjEntity>() | ||
| 367 | - .Where(x => billingIds.Contains(x.Glkdbh) && x.IsEffective == StatusEnum.有效.GetHashCode()) | ||
| 368 | - .Select(x => new LqKdJksyjInfoOutput | ||
| 369 | - { | ||
| 370 | - id = x.Id, | ||
| 371 | - glkdbh = x.Glkdbh, | ||
| 372 | - kdpxid = x.Kdpxid, | ||
| 373 | - jks = x.Jks, | ||
| 374 | - jksxm = x.Jksxm, | ||
| 375 | - jkszh = x.Jkszh, | ||
| 376 | - jksyj = x.Jksyj, | ||
| 377 | - yjsj = x.Yjsj, | ||
| 378 | - jsj_id = x.Jsj_id, | ||
| 379 | - isEffective = x.IsEffective | ||
| 380 | - }) | ||
| 381 | - .ToListAsync(); | 366 | + jksyjList = await _db.Queryable<LqKdJksyjEntity>().Where(x => billingIds.Contains(x.Glkdbh) && x.IsEffective == StatusEnum.有效.GetHashCode()).Select(x => new LqKdJksyjInfoOutput |
| 367 | + { | ||
| 368 | + id = x.Id, | ||
| 369 | + glkdbh = x.Glkdbh, | ||
| 370 | + kdpxid = x.Kdpxid, | ||
| 371 | + jks = x.Jks, | ||
| 372 | + jksxm = x.Jksxm, | ||
| 373 | + jkszh = x.Jkszh, | ||
| 374 | + jksyj = x.Jksyj, | ||
| 375 | + yjsj = x.Yjsj, | ||
| 376 | + jsj_id = x.Jsj_id, | ||
| 377 | + isEffective = x.IsEffective | ||
| 378 | + }).ToListAsync(); | ||
| 382 | } | 379 | } |
| 383 | 380 | ||
| 384 | // 批量查询科技部老师业绩(性能优化:一次性查询所有开单的科技部老师业绩) | 381 | // 批量查询科技部老师业绩(性能优化:一次性查询所有开单的科技部老师业绩) |
| 385 | var kjbsyjList = new List<LqKdKjbsyjInfoOutput>(); | 382 | var kjbsyjList = new List<LqKdKjbsyjInfoOutput>(); |
| 386 | if (billingIds.Any()) | 383 | if (billingIds.Any()) |
| 387 | { | 384 | { |
| 388 | - kjbsyjList = await _db.Queryable<LqKdKjbsyjEntity>() | ||
| 389 | - .Where(x => billingIds.Contains(x.Glkdbh) && x.IsEffective == StatusEnum.有效.GetHashCode()) | ||
| 390 | - .Select(x => new LqKdKjbsyjInfoOutput | 385 | + kjbsyjList = await _db.Queryable<LqKdKjbsyjEntity>().Where(x => billingIds.Contains(x.Glkdbh) && x.IsEffective == StatusEnum.有效.GetHashCode()).Select(x => new LqKdKjbsyjInfoOutput |
| 386 | + { | ||
| 387 | + id = x.Id, | ||
| 388 | + glkdbh = x.Glkdbh, | ||
| 389 | + kdpxid = x.Kdpxid, | ||
| 390 | + kjbls = x.Kjbls, | ||
| 391 | + kjblsxm = x.Kjblsxm, | ||
| 392 | + kjblszh = x.Kjblszh, | ||
| 393 | + kjblsyj = x.Kjblsyj, | ||
| 394 | + yjsj = x.Yjsj, | ||
| 395 | + isEffective = x.IsEffective | ||
| 396 | + }) | ||
| 397 | + .ToListAsync(); | ||
| 398 | + } | ||
| 399 | + | ||
| 400 | + // 批量查询储扣扣款信息(性能优化:一次性查询所有开单的储扣扣款信息) | ||
| 401 | + var deductinfoList = new List<LqKdDeductinfoInfoOutput>(); | ||
| 402 | + if (billingIds.Any()) | ||
| 403 | + { | ||
| 404 | + deductinfoList = await _db.Queryable<LqKdDeductinfoEntity>().Where(x => billingIds.Contains(x.BillingId) && x.IsEffective == StatusEnum.有效.GetHashCode()) | ||
| 405 | + .Select(x => new LqKdDeductinfoInfoOutput | ||
| 391 | { | 406 | { |
| 392 | id = x.Id, | 407 | id = x.Id, |
| 393 | - glkdbh = x.Glkdbh, | ||
| 394 | - kdpxid = x.Kdpxid, | ||
| 395 | - kjbls = x.Kjbls, | ||
| 396 | - kjblsxm = x.Kjblsxm, | ||
| 397 | - kjblszh = x.Kjblszh, | ||
| 398 | - kjblsyj = x.Kjblsyj, | ||
| 399 | - yjsj = x.Yjsj, | ||
| 400 | - isEffective = x.IsEffective | 408 | + deductType = x.DeductType, |
| 409 | + deductId = x.DeductId, | ||
| 410 | + billingId = x.BillingId, | ||
| 411 | + amount = x.Amount, | ||
| 412 | + isEffective = x.IsEffective, | ||
| 413 | + unitPrice = x.UnitPrice, | ||
| 414 | + itemName = x.ItemName, | ||
| 415 | + itemId = x.ItemId, | ||
| 416 | + createTime = x.CreateTime, | ||
| 417 | + projectNumber = x.ProjectNumber, | ||
| 418 | + | ||
| 401 | }) | 419 | }) |
| 402 | .ToListAsync(); | 420 | .ToListAsync(); |
| 403 | } | 421 | } |
| 404 | 422 | ||
| 423 | + // 按开单ID分组储扣扣款信息 | ||
| 424 | + var deductinfoGrouped = deductinfoList.GroupBy(x => x.billingId).ToDictionary(g => g.Key, g => g.ToList()); | ||
| 405 | // 按开单ID分组健康师业绩 | 425 | // 按开单ID分组健康师业绩 |
| 406 | - var jksyjGrouped = jksyjList.GroupBy(x => x.glkdbh) | ||
| 407 | - .ToDictionary(g => g.Key, g => g.ToList()); | ||
| 408 | - | 426 | + var jksyjGrouped = jksyjList.GroupBy(x => x.glkdbh).ToDictionary(g => g.Key, g => g.ToList()); |
| 409 | // 按开单ID分组科技部老师业绩 | 427 | // 按开单ID分组科技部老师业绩 |
| 410 | - var kjbsyjGrouped = kjbsyjList.GroupBy(x => x.glkdbh) | ||
| 411 | - .ToDictionary(g => g.Key, g => g.ToList()); | 428 | + var kjbsyjGrouped = kjbsyjList.GroupBy(x => x.glkdbh).ToDictionary(g => g.Key, g => g.ToList()); |
| 412 | 429 | ||
| 413 | // 为每个开单记录分配品项明细、健康师业绩和科技部老师业绩 | 430 | // 为每个开单记录分配品项明细、健康师业绩和科技部老师业绩 |
| 414 | foreach (var item in data.list) | 431 | foreach (var item in data.list) |
| 415 | { | 432 | { |
| 416 | - item.ItemDetails = itemDetailsGrouped.ContainsKey(item.id) | ||
| 417 | - ? itemDetailsGrouped[item.id] | ||
| 418 | - : new List<LqKdPxmxInfoOutput>(); | ||
| 419 | - item.lqKdJksyjList = jksyjGrouped.ContainsKey(item.id) | ||
| 420 | - ? jksyjGrouped[item.id] | ||
| 421 | - : new List<LqKdJksyjInfoOutput>(); | ||
| 422 | - item.lqKdKjbsyjList = kjbsyjGrouped.ContainsKey(item.id) | ||
| 423 | - ? kjbsyjGrouped[item.id] | ||
| 424 | - : new List<LqKdKjbsyjInfoOutput>(); | 433 | + item.ItemDetails = itemDetailsGrouped.ContainsKey(item.id) ? itemDetailsGrouped[item.id] : new List<LqKdPxmxInfoOutput>(); |
| 434 | + item.lqKdJksyjList = jksyjGrouped.ContainsKey(item.id) ? jksyjGrouped[item.id] : new List<LqKdJksyjInfoOutput>(); | ||
| 435 | + item.lqKdKjbsyjList = kjbsyjGrouped.ContainsKey(item.id) ? kjbsyjGrouped[item.id] : new List<LqKdKjbsyjInfoOutput>(); | ||
| 436 | + item.lqKdDeductList = deductinfoGrouped.ContainsKey(item.id) ? deductinfoGrouped[item.id] : new List<LqKdDeductinfoInfoOutput>(); | ||
| 425 | } | 437 | } |
| 426 | 438 | ||
| 427 | return PageResult<LqKdKdjlbListOutput>.SqlSugarPageResult(data); | 439 | return PageResult<LqKdKdjlbListOutput>.SqlSugarPageResult(data); |
| @@ -802,6 +814,7 @@ namespace NCC.Extend.LqKdKdjlb | @@ -802,6 +814,7 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 802 | ItemId = item.ItemId, | 814 | ItemId = item.ItemId, |
| 803 | IsEffective = StatusEnum.有效.GetHashCode(), // 设置为有效 | 815 | IsEffective = StatusEnum.有效.GetHashCode(), // 设置为有效 |
| 804 | CreateTime = DateTime.Now, // 设置创建时间 | 816 | CreateTime = DateTime.Now, // 设置创建时间 |
| 817 | + ItemCategory = await _db.Queryable<LqXmzlEntity>().Where(x => x.Id == item.ItemId).Select(x => x.Qt2).FirstAsync(), | ||
| 805 | }; | 818 | }; |
| 806 | allDeductEntities.Add(lqKdDeductEntity); | 819 | allDeductEntities.Add(lqKdDeductEntity); |
| 807 | } | 820 | } |
| @@ -827,6 +840,7 @@ namespace NCC.Extend.LqKdKdjlb | @@ -827,6 +840,7 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 827 | Remark = item.remark, | 840 | Remark = item.remark, |
| 828 | IsEffective = StatusEnum.有效.GetHashCode(), | 841 | IsEffective = StatusEnum.有效.GetHashCode(), |
| 829 | ActivityId = input.activityId, | 842 | ActivityId = input.activityId, |
| 843 | + ItemCategory = await _db.Queryable<LqXmzlEntity>().Where(x => x.Id == item.px).Select(x => x.Qt2).FirstAsync(), | ||
| 830 | }; | 844 | }; |
| 831 | allPxmxEntities.Add(lqKdPxmxEntity); | 845 | allPxmxEntities.Add(lqKdPxmxEntity); |
| 832 | 846 | ||
| @@ -1546,6 +1560,7 @@ namespace NCC.Extend.LqKdKdjlb | @@ -1546,6 +1560,7 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 1546 | ItemId = item.ItemId, | 1560 | ItemId = item.ItemId, |
| 1547 | IsEffective = StatusEnum.有效.GetHashCode(), // 设置为有效 | 1561 | IsEffective = StatusEnum.有效.GetHashCode(), // 设置为有效 |
| 1548 | CreateTime = DateTime.Now, // 设置创建时间 | 1562 | CreateTime = DateTime.Now, // 设置创建时间 |
| 1563 | + ItemCategory = await _db.Queryable<LqXmzlEntity>().Where(x => x.Id == item.DeductId).Select(x => x.Qt2).FirstAsync(), | ||
| 1549 | }; | 1564 | }; |
| 1550 | allDeductEntities.Add(lqKdDeductEntity); | 1565 | allDeductEntities.Add(lqKdDeductEntity); |
| 1551 | } | 1566 | } |
| @@ -1571,6 +1586,7 @@ namespace NCC.Extend.LqKdKdjlb | @@ -1571,6 +1586,7 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 1571 | Remark = item.remark, | 1586 | Remark = item.remark, |
| 1572 | IsEffective = StatusEnum.有效.GetHashCode(), | 1587 | IsEffective = StatusEnum.有效.GetHashCode(), |
| 1573 | ActivityId = input.activityId, | 1588 | ActivityId = input.activityId, |
| 1589 | + ItemCategory = await _db.Queryable<LqXmzlEntity>().Where(x => x.Id == item.px).Select(x => x.Qt2).FirstAsync(), | ||
| 1574 | }; | 1590 | }; |
| 1575 | allPxmxEntities.Add(lqKdPxmxEntity); | 1591 | allPxmxEntities.Add(lqKdPxmxEntity); |
| 1576 | 1592 |
netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
| @@ -16,18 +16,22 @@ using NCC.Common.Model.NPOI; | @@ -16,18 +16,22 @@ using NCC.Common.Model.NPOI; | ||
| 16 | using NCC.DataEncryption; | 16 | using NCC.DataEncryption; |
| 17 | using NCC.Dependency; | 17 | using NCC.Dependency; |
| 18 | using NCC.DynamicApiController; | 18 | using NCC.DynamicApiController; |
| 19 | +using NCC.Extend.Entitys.Dto.LqPersonTimesRecord; | ||
| 19 | using NCC.Extend.Entitys.Dto.LqXhHyhk; | 20 | using NCC.Extend.Entitys.Dto.LqXhHyhk; |
| 20 | using NCC.Extend.Entitys.Dto.LqXhJksyj; | 21 | using NCC.Extend.Entitys.Dto.LqXhJksyj; |
| 21 | using NCC.Extend.Entitys.Dto.LqXhKjbsyj; | 22 | using NCC.Extend.Entitys.Dto.LqXhKjbsyj; |
| 22 | using NCC.Extend.Entitys.Dto.LqXhPxmx; | 23 | using NCC.Extend.Entitys.Dto.LqXhPxmx; |
| 24 | +using NCC.Extend.Entitys.Dto.LqYyjl; | ||
| 23 | using NCC.Extend.Entitys.Enum; | 25 | using NCC.Extend.Entitys.Enum; |
| 24 | using NCC.Extend.Entitys.lq_kd_kdjlb; | 26 | using NCC.Extend.Entitys.lq_kd_kdjlb; |
| 25 | using NCC.Extend.Entitys.lq_kd_pxmx; | 27 | using NCC.Extend.Entitys.lq_kd_pxmx; |
| 26 | using NCC.Extend.Entitys.lq_khxx; | 28 | using NCC.Extend.Entitys.lq_khxx; |
| 29 | +using NCC.Extend.Entitys.lq_person_times_record; | ||
| 27 | using NCC.Extend.Entitys.lq_xh_hyhk; | 30 | using NCC.Extend.Entitys.lq_xh_hyhk; |
| 28 | using NCC.Extend.Entitys.lq_xh_jksyj; | 31 | using NCC.Extend.Entitys.lq_xh_jksyj; |
| 29 | using NCC.Extend.Entitys.lq_xh_kjbsyj; | 32 | using NCC.Extend.Entitys.lq_xh_kjbsyj; |
| 30 | using NCC.Extend.Entitys.lq_xh_pxmx; | 33 | using NCC.Extend.Entitys.lq_xh_pxmx; |
| 34 | +using NCC.Extend.Entitys.lq_xmzl; | ||
| 31 | using NCC.Extend.Interfaces.LqXhHyhk; | 35 | using NCC.Extend.Interfaces.LqXhHyhk; |
| 32 | using NCC.FriendlyException; | 36 | using NCC.FriendlyException; |
| 33 | using NCC.JsonSerialization; | 37 | using NCC.JsonSerialization; |
| @@ -111,13 +115,12 @@ namespace NCC.Extend.LqXhHyhk | @@ -111,13 +115,12 @@ namespace NCC.Extend.LqXhHyhk | ||
| 111 | 115 | ||
| 112 | // 2. 查询品项明细列表 | 116 | // 2. 查询品项明细列表 |
| 113 | var lqXhPxmxList = await _db.Queryable<LqXhPxmxEntity>().Where(w => w.ConsumeInfoId == entity.Id).ToListAsync(); | 117 | var lqXhPxmxList = await _db.Queryable<LqXhPxmxEntity>().Where(w => w.ConsumeInfoId == entity.Id).ToListAsync(); |
| 114 | - | ||
| 115 | // 3. 查询健康师业绩列表 | 118 | // 3. 查询健康师业绩列表 |
| 116 | var lqXhJksyjList = await _db.Queryable<LqXhJksyjEntity>().Where(w => w.Glkdbh == entity.Id).ToListAsync(); | 119 | var lqXhJksyjList = await _db.Queryable<LqXhJksyjEntity>().Where(w => w.Glkdbh == entity.Id).ToListAsync(); |
| 117 | - | ||
| 118 | // 4. 查询科技部老师业绩列表 | 120 | // 4. 查询科技部老师业绩列表 |
| 119 | var lqXhKjbsyjList = await _db.Queryable<LqXhKjbsyjEntity>().Where(w => w.Glkdbh == entity.Id).ToListAsync(); | 121 | var lqXhKjbsyjList = await _db.Queryable<LqXhKjbsyjEntity>().Where(w => w.Glkdbh == entity.Id).ToListAsync(); |
| 120 | - | 122 | + // 获取人次记录列表 |
| 123 | + var personTimesRecordList = await _db.Queryable<LqPersonTimesRecordEntity>().Where(x => x.BusinessId == entity.Id && x.IsEffective == StatusEnum.有效.GetHashCode()).ToListAsync(); | ||
| 121 | // 5. 构建品项明细输出,每个品项关联对应的业绩信息 | 124 | // 5. 构建品项明细输出,每个品项关联对应的业绩信息 |
| 122 | var pxmxOutputList = new List<LqXhPxmxInfoOutput>(); | 125 | var pxmxOutputList = new List<LqXhPxmxInfoOutput>(); |
| 123 | foreach (var pxmx in lqXhPxmxList) | 126 | foreach (var pxmx in lqXhPxmxList) |
| @@ -299,8 +302,7 @@ namespace NCC.Extend.LqXhHyhk | @@ -299,8 +302,7 @@ namespace NCC.Extend.LqXhHyhk | ||
| 299 | // 如果两个都传入了,需要同时JOIN两个表 | 302 | // 如果两个都传入了,需要同时JOIN两个表 |
| 300 | if (!string.IsNullOrEmpty(input.jksId) && !string.IsNullOrEmpty(input.kjblsId)) | 303 | if (!string.IsNullOrEmpty(input.jksId) && !string.IsNullOrEmpty(input.kjblsId)) |
| 301 | { | 304 | { |
| 302 | - query = _db.Queryable<LqXhJksyjEntity, LqXhKjbsyjEntity, LqXhHyhkEntity>( | ||
| 303 | - (jksyj, kjbsyj, hyhk) => jksyj.Glkdbh == hyhk.Id && kjbsyj.Glkdbh == hyhk.Id) | 305 | + query = _db.Queryable<LqXhJksyjEntity, LqXhKjbsyjEntity, LqXhHyhkEntity>((jksyj, kjbsyj, hyhk) => jksyj.Glkdbh == hyhk.Id && kjbsyj.Glkdbh == hyhk.Id) |
| 304 | .Where((jksyj, kjbsyj, hyhk) => jksyj.Jkszh == input.jksId && jksyj.IsEffective == StatusEnum.有效.GetHashCode()) | 306 | .Where((jksyj, kjbsyj, hyhk) => jksyj.Jkszh == input.jksId && jksyj.IsEffective == StatusEnum.有效.GetHashCode()) |
| 305 | .Where((jksyj, kjbsyj, hyhk) => kjbsyj.Kjblszh == input.kjblsId && kjbsyj.IsEffective == StatusEnum.有效.GetHashCode()) | 307 | .Where((jksyj, kjbsyj, hyhk) => kjbsyj.Kjblszh == input.kjblsId && kjbsyj.IsEffective == StatusEnum.有效.GetHashCode()) |
| 306 | .Select((jksyj, kjbsyj, hyhk) => hyhk) | 308 | .Select((jksyj, kjbsyj, hyhk) => hyhk) |
| @@ -369,6 +371,7 @@ namespace NCC.Extend.LqXhHyhk | @@ -369,6 +371,7 @@ namespace NCC.Extend.LqXhHyhk | ||
| 369 | overtimeCoefficient = it.OvertimeCoefficient, | 371 | overtimeCoefficient = it.OvertimeCoefficient, |
| 370 | originalSgfy = it.OriginalSgfy, | 372 | originalSgfy = it.OriginalSgfy, |
| 371 | overtimeSgfy = it.OvertimeSgfy, | 373 | overtimeSgfy = it.OvertimeSgfy, |
| 374 | + appointmentId = it.AppointmentId, | ||
| 372 | }) | 375 | }) |
| 373 | .MergeTable() | 376 | .MergeTable() |
| 374 | .OrderBy($"{sidx} {sort}") | 377 | .OrderBy($"{sidx} {sort}") |
| @@ -517,101 +520,6 @@ namespace NCC.Extend.LqXhHyhk | @@ -517,101 +520,6 @@ namespace NCC.Extend.LqXhHyhk | ||
| 517 | } | 520 | } |
| 518 | #endregion | 521 | #endregion |
| 519 | 522 | ||
| 520 | - #region 获取会员耗卡列表(备份) | ||
| 521 | - /// <summary> | ||
| 522 | - /// 获取会员耗卡列表 | ||
| 523 | - /// </summary> | ||
| 524 | - /// <param name="input">请求参数</param> | ||
| 525 | - /// <returns></returns> | ||
| 526 | - [HttpGet("GetListBak")] | ||
| 527 | - public async Task<dynamic> GetListBak([FromQuery] LqXhHyhkListQueryInput input) | ||
| 528 | - { | ||
| 529 | - var sidx = input.sidx == null ? "id" : input.sidx; | ||
| 530 | - List<string> queryHksj = input.hksj != null ? input.hksj.Split(',').ToObeject<List<string>>() : null; | ||
| 531 | - DateTime? startHksj = queryHksj != null ? Ext.GetDateTime(queryHksj.First()) : null; | ||
| 532 | - DateTime? endHksj = queryHksj != null ? Ext.GetDateTime(queryHksj.Last()) : null; | ||
| 533 | - var data = await _db.Queryable<LqXhHyhkEntity>() | ||
| 534 | - .WhereIF(!string.IsNullOrEmpty(input.keyword), p => p.Hymc.Contains(input.keyword) || p.Hyzh.Contains(input.keyword) || p.MemberPhone.Contains(input.keyword)) | ||
| 535 | - .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) | ||
| 536 | - .WhereIF(!string.IsNullOrEmpty(input.md), p => p.Md.Equals(input.md)) | ||
| 537 | - .WhereIF(!string.IsNullOrEmpty(input.mdbh), p => p.Mdbh.Contains(input.mdbh)) | ||
| 538 | - .WhereIF(!string.IsNullOrEmpty(input.mdmc), p => p.Mdmc.Contains(input.mdmc)) | ||
| 539 | - .WhereIF(!string.IsNullOrEmpty(input.hy), p => p.Hy.Equals(input.hy)) | ||
| 540 | - .WhereIF(!string.IsNullOrEmpty(input.hyzh), p => p.Hyzh.Contains(input.hyzh)) | ||
| 541 | - .WhereIF(!string.IsNullOrEmpty(input.hymc), p => p.Hymc.Contains(input.hymc)) | ||
| 542 | - .WhereIF(!string.IsNullOrEmpty(input.gklx), p => p.Gklx.Equals(input.gklx)) | ||
| 543 | - .WhereIF(!string.IsNullOrEmpty(input.sfykjb), p => p.Sfykjb.Equals(input.sfykjb)) | ||
| 544 | - .WhereIF(queryHksj != null, p => p.Hksj >= new DateTime(startHksj.ToDate().Year, startHksj.ToDate().Month, startHksj.ToDate().Day, 0, 0, 0)) | ||
| 545 | - .WhereIF(queryHksj != null, p => p.Hksj <= new DateTime(endHksj.ToDate().Year, endHksj.ToDate().Month, endHksj.ToDate().Day, 23, 59, 59)) | ||
| 546 | - .WhereIF(!string.IsNullOrEmpty(input.czry), p => p.Czry.Equals(input.czry)) | ||
| 547 | - .WhereIF(input.isEffective != 0, p => p.IsEffective == input.isEffective) | ||
| 548 | - .Select(it => new LqXhHyhkListOutput | ||
| 549 | - { | ||
| 550 | - id = it.Id, | ||
| 551 | - md = it.Md, | ||
| 552 | - mdbh = it.Mdbh, | ||
| 553 | - mdmc = it.Mdmc, | ||
| 554 | - hy = it.Hy, | ||
| 555 | - hyzh = it.Hyzh, | ||
| 556 | - hymc = SqlFunc.Subqueryable<LqKhxxEntity>().Where(w => w.Id == it.Hy).Select(w => w.Khmc), | ||
| 557 | - gklx = it.Gklx, | ||
| 558 | - xfje = SqlFunc.ToString(it.Xfje), | ||
| 559 | - sgfy = SqlFunc.ToString(it.Sgfy), | ||
| 560 | - sfykjb = it.Sfykjb, | ||
| 561 | - hksj = it.Hksj, | ||
| 562 | - czry = it.Czry, | ||
| 563 | - memberPhone = SqlFunc.Subqueryable<LqKhxxEntity>().Where(w => w.Id == it.Hy).Select(w => w.Sjh), | ||
| 564 | - isEffective = it.IsEffective, | ||
| 565 | - }) | ||
| 566 | - .MergeTable() | ||
| 567 | - .OrderBy(sidx + " " + input.sort) | ||
| 568 | - .ToPagedListAsync(input.currentPage, input.pageSize); | ||
| 569 | - | ||
| 570 | - // 获取当前页的耗卡记录ID列表 | ||
| 571 | - var consumeIds = data.list.Select(x => x.id).ToList(); | ||
| 572 | - | ||
| 573 | - // 批量查询耗卡明细 | ||
| 574 | - var consumeDetails = new List<LqXhPxmxInfoOutput>(); | ||
| 575 | - if (consumeIds.Any()) | ||
| 576 | - { | ||
| 577 | - consumeDetails = await _db.Queryable<LqXhPxmxEntity>() | ||
| 578 | - .Where(x => consumeIds.Contains(x.ConsumeInfoId) && x.IsEffective == StatusEnum.有效.GetHashCode()) | ||
| 579 | - .Select(x => new LqXhPxmxInfoOutput | ||
| 580 | - { | ||
| 581 | - id = x.Id, | ||
| 582 | - consumeInfoId = x.ConsumeInfoId, | ||
| 583 | - billingItemId = x.BillingItemId, | ||
| 584 | - px = x.Px, | ||
| 585 | - pxmc = x.Pxmc, | ||
| 586 | - pxjg = x.Pxjg, | ||
| 587 | - memberId = x.MemberId, | ||
| 588 | - createTime = x.CreateTIme, | ||
| 589 | - projectNumber = x.ProjectNumber, | ||
| 590 | - originalProjectNumber = x.OriginalProjectNumber, | ||
| 591 | - overtimeProjectNumber = x.OvertimeProjectNumber, | ||
| 592 | - sourceType = x.SourceType, | ||
| 593 | - totalPrice = x.TotalPrice, | ||
| 594 | - isEffective = x.IsEffective, | ||
| 595 | - }) | ||
| 596 | - .ToListAsync(); | ||
| 597 | - } | ||
| 598 | - | ||
| 599 | - // 按耗卡记录ID分组耗卡明细 | ||
| 600 | - var consumeDetailsGrouped = consumeDetails.GroupBy(x => x.consumeInfoId) | ||
| 601 | - .ToDictionary(g => g.Key, g => g.ToList()); | ||
| 602 | - | ||
| 603 | - // 为每个耗卡记录分配耗卡明细 | ||
| 604 | - foreach (var item in data.list) | ||
| 605 | - { | ||
| 606 | - item.ConsumeDetails = consumeDetailsGrouped.ContainsKey(item.id) | ||
| 607 | - ? consumeDetailsGrouped[item.id] | ||
| 608 | - : new List<LqXhPxmxInfoOutput>(); | ||
| 609 | - } | ||
| 610 | - | ||
| 611 | - return PageResult<LqXhHyhkListOutput>.SqlSugarPageResult(data); | ||
| 612 | - } | ||
| 613 | - #endregion | ||
| 614 | - | ||
| 615 | #region 根据健康师ID获取耗卡列表 | 523 | #region 根据健康师ID获取耗卡列表 |
| 616 | /// <summary> | 524 | /// <summary> |
| 617 | /// 根据健康师ID获取耗卡列表 | 525 | /// 根据健康师ID获取耗卡列表 |
| @@ -670,8 +578,7 @@ namespace NCC.Extend.LqXhHyhk | @@ -670,8 +578,7 @@ namespace NCC.Extend.LqXhHyhk | ||
| 670 | } | 578 | } |
| 671 | 579 | ||
| 672 | // 通过健康师业绩表关联查询耗卡记录 | 580 | // 通过健康师业绩表关联查询耗卡记录 |
| 673 | - var data = await _db.Queryable<LqXhJksyjEntity, LqXhHyhkEntity>( | ||
| 674 | - (jksyj, hyhk) => jksyj.Glkdbh == hyhk.Id) | 581 | + var data = await _db.Queryable<LqXhJksyjEntity, LqXhHyhkEntity>((jksyj, hyhk) => jksyj.Glkdbh == hyhk.Id) |
| 675 | .Where((jksyj, hyhk) => jksyj.Jkszh == input.jksId) | 582 | .Where((jksyj, hyhk) => jksyj.Jkszh == input.jksId) |
| 676 | .WhereIF(input.isEffective != 0, (jksyj, hyhk) => jksyj.IsEffective == input.isEffective && hyhk.IsEffective == input.isEffective) | 583 | .WhereIF(input.isEffective != 0, (jksyj, hyhk) => jksyj.IsEffective == input.isEffective && hyhk.IsEffective == input.isEffective) |
| 677 | .WhereIF(input.isEffective == 0, (jksyj, hyhk) => jksyj.IsEffective == StatusEnum.有效.GetHashCode() && hyhk.IsEffective == StatusEnum.有效.GetHashCode()) | 584 | .WhereIF(input.isEffective == 0, (jksyj, hyhk) => jksyj.IsEffective == StatusEnum.有效.GetHashCode() && hyhk.IsEffective == StatusEnum.有效.GetHashCode()) |
| @@ -705,15 +612,41 @@ namespace NCC.Extend.LqXhHyhk | @@ -705,15 +612,41 @@ namespace NCC.Extend.LqXhHyhk | ||
| 705 | .OrderBy($"{sidx} {sort}") | 612 | .OrderBy($"{sidx} {sort}") |
| 706 | .ToPagedListAsync(input.currentPage, input.pageSize); | 613 | .ToPagedListAsync(input.currentPage, input.pageSize); |
| 707 | 614 | ||
| 615 | + | ||
| 616 | + | ||
| 708 | // 获取当前页的耗卡记录ID列表 | 617 | // 获取当前页的耗卡记录ID列表 |
| 709 | var consumeIds = data.list.Select(x => x.id).ToList(); | 618 | var consumeIds = data.list.Select(x => x.id).ToList(); |
| 710 | - | 619 | + // 获取人次记录列表 |
| 620 | + var personTimesRecordList = await _db.Queryable<LqPersonTimesRecordEntity>().Where(x => consumeIds.Contains(x.BusinessId) && x.IsEffective == StatusEnum.有效.GetHashCode()) | ||
| 621 | + .Select(x => new LqPersonTimesRecordListOutput | ||
| 622 | + { | ||
| 623 | + id = x.Id, | ||
| 624 | + businessId = x.BusinessId, | ||
| 625 | + businessType = x.BusinessType, | ||
| 626 | + personType = x.PersonType, | ||
| 627 | + personId = x.PersonId, | ||
| 628 | + personName = x.PersonName, | ||
| 629 | + memberId = x.MemberId, | ||
| 630 | + memberName = x.MemberName, | ||
| 631 | + workDate = x.WorkDate, | ||
| 632 | + workMonth = x.WorkMonth, | ||
| 633 | + quantity = x.Quantity, | ||
| 634 | + createTime = x.CreateTime, | ||
| 635 | + isEffective = x.IsEffective, | ||
| 636 | + }) | ||
| 637 | + .ToListAsync(); | ||
| 638 | + // 按耗卡记录ID分组人次记录 | ||
| 639 | + var personTimesRecordGrouped = personTimesRecordList.GroupBy(x => x.businessId).ToDictionary(g => g.Key, g => g.ToList()); | ||
| 640 | + // 为每个耗卡记录分配人次记录 | ||
| 641 | + foreach (var item in data.list) | ||
| 642 | + { | ||
| 643 | + item.personTimesRecordList = personTimesRecordGrouped.ContainsKey(item.id) ? personTimesRecordGrouped[item.id] : new List<LqPersonTimesRecordListOutput>(); | ||
| 644 | + } | ||
| 711 | // 批量查询耗卡明细 | 645 | // 批量查询耗卡明细 |
| 712 | var consumeDetails = new List<LqXhPxmxInfoOutput>(); | 646 | var consumeDetails = new List<LqXhPxmxInfoOutput>(); |
| 713 | if (consumeIds.Any()) | 647 | if (consumeIds.Any()) |
| 714 | { | 648 | { |
| 715 | - consumeDetails = await _db.Queryable<LqXhPxmxEntity>() | ||
| 716 | - .Where(x => consumeIds.Contains(x.ConsumeInfoId) && x.IsEffective == StatusEnum.有效.GetHashCode()) | 649 | + consumeDetails = await _db.Queryable<LqXhPxmxEntity>().Where(x => consumeIds.Contains(x.ConsumeInfoId) && x.IsEffective == StatusEnum.有效.GetHashCode()) |
| 717 | .Select(x => new LqXhPxmxInfoOutput | 650 | .Select(x => new LqXhPxmxInfoOutput |
| 718 | { | 651 | { |
| 719 | id = x.Id, | 652 | id = x.Id, |
| @@ -733,19 +666,13 @@ namespace NCC.Extend.LqXhHyhk | @@ -733,19 +666,13 @@ namespace NCC.Extend.LqXhHyhk | ||
| 733 | }) | 666 | }) |
| 734 | .ToListAsync(); | 667 | .ToListAsync(); |
| 735 | } | 668 | } |
| 736 | - | ||
| 737 | // 按耗卡记录ID分组耗卡明细 | 669 | // 按耗卡记录ID分组耗卡明细 |
| 738 | - var consumeDetailsGrouped = consumeDetails.GroupBy(x => x.consumeInfoId) | ||
| 739 | - .ToDictionary(g => g.Key, g => g.ToList()); | ||
| 740 | - | 670 | + var consumeDetailsGrouped = consumeDetails.GroupBy(x => x.consumeInfoId).ToDictionary(g => g.Key, g => g.ToList()); |
| 741 | // 为每个耗卡记录分配耗卡明细 | 671 | // 为每个耗卡记录分配耗卡明细 |
| 742 | foreach (var item in data.list) | 672 | foreach (var item in data.list) |
| 743 | { | 673 | { |
| 744 | - item.ConsumeDetails = consumeDetailsGrouped.ContainsKey(item.id) | ||
| 745 | - ? consumeDetailsGrouped[item.id] | ||
| 746 | - : new List<LqXhPxmxInfoOutput>(); | 674 | + item.ConsumeDetails = consumeDetailsGrouped.ContainsKey(item.id) ? consumeDetailsGrouped[item.id] : new List<LqXhPxmxInfoOutput>(); |
| 747 | } | 675 | } |
| 748 | - | ||
| 749 | return PageResult<LqXhHyhkListOutput>.SqlSugarPageResult(data); | 676 | return PageResult<LqXhHyhkListOutput>.SqlSugarPageResult(data); |
| 750 | } | 677 | } |
| 751 | catch (Exception ex) | 678 | catch (Exception ex) |
| @@ -956,6 +883,7 @@ namespace NCC.Extend.LqXhHyhk | @@ -956,6 +883,7 @@ namespace NCC.Extend.LqXhHyhk | ||
| 956 | entity.UpdateTime = DateTime.Now; | 883 | entity.UpdateTime = DateTime.Now; |
| 957 | entity.OvertimeCoefficient = input.overtimeCoefficient ?? 0; | 884 | entity.OvertimeCoefficient = input.overtimeCoefficient ?? 0; |
| 958 | entity.OriginalSgfy = input.sgfy; | 885 | entity.OriginalSgfy = input.sgfy; |
| 886 | + entity.AppointmentId = input.appointmentId; | ||
| 959 | //加班手工费 = 原始手工费 * 加班系数 | 887 | //加班手工费 = 原始手工费 * 加班系数 |
| 960 | entity.OvertimeSgfy = entity.OriginalSgfy * entity.OvertimeCoefficient; | 888 | entity.OvertimeSgfy = entity.OriginalSgfy * entity.OvertimeCoefficient; |
| 961 | //最终手工费 = 原始手工费 + 加班手工费 | 889 | //最终手工费 = 原始手工费 + 加班手工费 |
| @@ -979,6 +907,7 @@ namespace NCC.Extend.LqXhHyhk | @@ -979,6 +907,7 @@ namespace NCC.Extend.LqXhHyhk | ||
| 979 | var allPxmxEntities = new List<LqXhPxmxEntity>(); | 907 | var allPxmxEntities = new List<LqXhPxmxEntity>(); |
| 980 | var allJksyjEntities = new List<LqXhJksyjEntity>(); | 908 | var allJksyjEntities = new List<LqXhJksyjEntity>(); |
| 981 | var allKjbsyjEntities = new List<LqXhKjbsyjEntity>(); | 909 | var allKjbsyjEntities = new List<LqXhKjbsyjEntity>(); |
| 910 | + var allPersonTimesRecordEntities = new List<LqPersonTimesRecordEntity>(); | ||
| 982 | // 处理品项明细列表 | 911 | // 处理品项明细列表 |
| 983 | if (input.lqXhPxmxList != null && input.lqXhPxmxList.Any()) | 912 | if (input.lqXhPxmxList != null && input.lqXhPxmxList.Any()) |
| 984 | { | 913 | { |
| @@ -1002,7 +931,7 @@ namespace NCC.Extend.LqXhHyhk | @@ -1002,7 +931,7 @@ namespace NCC.Extend.LqXhHyhk | ||
| 1002 | Pxjg = item.pxjg, | 931 | Pxjg = item.pxjg, |
| 1003 | SourceType = item.sourceType, | 932 | SourceType = item.sourceType, |
| 1004 | IsEffective = StatusEnum.有效.GetHashCode(), | 933 | IsEffective = StatusEnum.有效.GetHashCode(), |
| 1005 | - | 934 | + ItemCategory = await _db.Queryable<LqXmzlEntity>().Where(x => x.Id == item.px).Select(x => x.Qt2).FirstAsync(), |
| 1006 | }; | 935 | }; |
| 1007 | allPxmxEntities.Add(lqXhPxmxEntity); | 936 | allPxmxEntities.Add(lqXhPxmxEntity); |
| 1008 | 937 | ||
| @@ -1074,6 +1003,57 @@ namespace NCC.Extend.LqXhHyhk | @@ -1074,6 +1003,57 @@ namespace NCC.Extend.LqXhHyhk | ||
| 1074 | } | 1003 | } |
| 1075 | } | 1004 | } |
| 1076 | } | 1005 | } |
| 1006 | + //获取这次耗卡有多少个健康师 | ||
| 1007 | + var jksCount = allJksyjEntities.GroupBy(x => x.Jks).Count(); | ||
| 1008 | + //添加到人次表里面去 | ||
| 1009 | + foreach (var item in allJksyjEntities.Select(x => x.Jks).Distinct()) | ||
| 1010 | + { | ||
| 1011 | + LqPersonTimesRecordEntity personTimesRecordEntity = new LqPersonTimesRecordEntity | ||
| 1012 | + { | ||
| 1013 | + Id = YitIdHelper.NextId().ToString(), | ||
| 1014 | + BusinessId = newEntity.Id, | ||
| 1015 | + BusinessType = "耗卡", | ||
| 1016 | + PersonType = "健康师", | ||
| 1017 | + PersonId = item, | ||
| 1018 | + PersonName = allJksyjEntities.Where(x => x.Jks == item).Select(x => x.Jksxm).First(), | ||
| 1019 | + MemberId = entity.Hy, | ||
| 1020 | + MemberName = memberInfo.Khmc, | ||
| 1021 | + WorkDate = input.hksj, | ||
| 1022 | + WorkMonth = input.hksj.ToDate().ToString("yyyyMM"), | ||
| 1023 | + Quantity = 1 / (decimal)jksCount, | ||
| 1024 | + CreateTime = DateTime.Now, | ||
| 1025 | + IsEffective = StatusEnum.有效.GetHashCode(), | ||
| 1026 | + }; | ||
| 1027 | + allPersonTimesRecordEntities.Add(personTimesRecordEntity); | ||
| 1028 | + } | ||
| 1029 | + //获取这次耗卡有多少个科技部老师 | ||
| 1030 | + var kjbCount = allKjbsyjEntities.GroupBy(x => x.Kjbls).Count(); | ||
| 1031 | + //添加到人次表里面去 | ||
| 1032 | + foreach (var item in allKjbsyjEntities.Select(x => x.Kjbls).Distinct()) | ||
| 1033 | + { | ||
| 1034 | + LqPersonTimesRecordEntity personTimesRecordEntity = new LqPersonTimesRecordEntity | ||
| 1035 | + { | ||
| 1036 | + Id = YitIdHelper.NextId().ToString(), | ||
| 1037 | + BusinessId = newEntity.Id, | ||
| 1038 | + BusinessType = "耗卡", | ||
| 1039 | + PersonType = "科技部老师", | ||
| 1040 | + PersonId = item, | ||
| 1041 | + PersonName = allKjbsyjEntities.Where(x => x.Kjbls == item).Select(x => x.Kjblsxm).First(), | ||
| 1042 | + MemberId = entity.Hy, | ||
| 1043 | + MemberName = memberInfo.Khmc, | ||
| 1044 | + WorkDate = input.hksj, | ||
| 1045 | + WorkMonth = input.hksj.ToDate().ToString("yyyyMM"), | ||
| 1046 | + Quantity = 1 / (decimal)kjbCount, | ||
| 1047 | + CreateTime = DateTime.Now, | ||
| 1048 | + IsEffective = StatusEnum.有效.GetHashCode(), | ||
| 1049 | + }; | ||
| 1050 | + allPersonTimesRecordEntities.Add(personTimesRecordEntity); | ||
| 1051 | + } | ||
| 1052 | + // 批量插入人次记录 | ||
| 1053 | + if (allPersonTimesRecordEntities.Any()) | ||
| 1054 | + { | ||
| 1055 | + await _db.Insertable(allPersonTimesRecordEntities).ExecuteCommandAsync(); | ||
| 1056 | + } | ||
| 1077 | // 批量插入品项明细 | 1057 | // 批量插入品项明细 |
| 1078 | if (allPxmxEntities.Any()) | 1058 | if (allPxmxEntities.Any()) |
| 1079 | { | 1059 | { |
| @@ -1264,6 +1244,7 @@ namespace NCC.Extend.LqXhHyhk | @@ -1264,6 +1244,7 @@ namespace NCC.Extend.LqXhHyhk | ||
| 1264 | entity.OriginalSgfy = input.sgfy; | 1244 | entity.OriginalSgfy = input.sgfy; |
| 1265 | entity.OvertimeSgfy = (decimal)(entity.OvertimeCoefficient * input.sgfy); | 1245 | entity.OvertimeSgfy = (decimal)(entity.OvertimeCoefficient * input.sgfy); |
| 1266 | entity.Sgfy = entity.OriginalSgfy + entity.OvertimeSgfy; | 1246 | entity.Sgfy = entity.OriginalSgfy + entity.OvertimeSgfy; |
| 1247 | + entity.AppointmentId = input.appointmentId; | ||
| 1267 | //更新会员耗卡记录 | 1248 | //更新会员耗卡记录 |
| 1268 | await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); | 1249 | await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); |
| 1269 | 1250 | ||
| @@ -1280,10 +1261,12 @@ namespace NCC.Extend.LqXhHyhk | @@ -1280,10 +1261,12 @@ namespace NCC.Extend.LqXhHyhk | ||
| 1280 | await _db.Deleteable<LqXhJksyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); | 1261 | await _db.Deleteable<LqXhJksyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); |
| 1281 | await _db.Deleteable<LqXhKjbsyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); | 1262 | await _db.Deleteable<LqXhKjbsyjEntity>().Where(u => u.Glkdbh == id).ExecuteCommandAsync(); |
| 1282 | await _db.Deleteable<LqXhPxmxEntity>().Where(u => u.ConsumeInfoId == id).ExecuteCommandAsync(); | 1263 | await _db.Deleteable<LqXhPxmxEntity>().Where(u => u.ConsumeInfoId == id).ExecuteCommandAsync(); |
| 1264 | + await _db.Deleteable<LqPersonTimesRecordEntity>().Where(u => u.BusinessId == id).ExecuteCommandAsync(); | ||
| 1283 | // 收集所有需要插入的实体,然后批量插入 | 1265 | // 收集所有需要插入的实体,然后批量插入 |
| 1284 | var allPxmxEntities = new List<LqXhPxmxEntity>(); | 1266 | var allPxmxEntities = new List<LqXhPxmxEntity>(); |
| 1285 | var allJksyjEntities = new List<LqXhJksyjEntity>(); | 1267 | var allJksyjEntities = new List<LqXhJksyjEntity>(); |
| 1286 | var allKjbsyjEntities = new List<LqXhKjbsyjEntity>(); | 1268 | var allKjbsyjEntities = new List<LqXhKjbsyjEntity>(); |
| 1269 | + var allPersonTimesRecordEntities = new List<LqPersonTimesRecordEntity>(); | ||
| 1287 | // 处理品项明细列表 | 1270 | // 处理品项明细列表 |
| 1288 | if (input.lqXhPxmxList != null && input.lqXhPxmxList.Any()) | 1271 | if (input.lqXhPxmxList != null && input.lqXhPxmxList.Any()) |
| 1289 | { | 1272 | { |
| @@ -1307,6 +1290,7 @@ namespace NCC.Extend.LqXhHyhk | @@ -1307,6 +1290,7 @@ namespace NCC.Extend.LqXhHyhk | ||
| 1307 | OriginalProjectNumber = item.projectNumber ?? 0, | 1290 | OriginalProjectNumber = item.projectNumber ?? 0, |
| 1308 | OvertimeProjectNumber = (decimal)(entity.OvertimeCoefficient * (item.projectNumber ?? 0)), | 1291 | OvertimeProjectNumber = (decimal)(entity.OvertimeCoefficient * (item.projectNumber ?? 0)), |
| 1309 | ProjectNumber = (decimal)((item.projectNumber ?? 0) + (entity.OvertimeCoefficient * (item.projectNumber ?? 0))), | 1292 | ProjectNumber = (decimal)((item.projectNumber ?? 0) + (entity.OvertimeCoefficient * (item.projectNumber ?? 0))), |
| 1293 | + ItemCategory = await _db.Queryable<LqXmzlEntity>().Where(x => x.Id == item.px).Select(x => x.Qt2).FirstAsync(), | ||
| 1310 | }; | 1294 | }; |
| 1311 | allPxmxEntities.Add(lqXhPxmxEntity); | 1295 | allPxmxEntities.Add(lqXhPxmxEntity); |
| 1312 | 1296 | ||
| @@ -1376,6 +1360,57 @@ namespace NCC.Extend.LqXhHyhk | @@ -1376,6 +1360,57 @@ namespace NCC.Extend.LqXhHyhk | ||
| 1376 | } | 1360 | } |
| 1377 | } | 1361 | } |
| 1378 | } | 1362 | } |
| 1363 | + //获取这次耗卡有多少个健康师 | ||
| 1364 | + var jksCount = allJksyjEntities.GroupBy(x => x.Jks).Count(); | ||
| 1365 | + //添加到人次表里面去 | ||
| 1366 | + foreach (var item in allJksyjEntities.Select(x => x.Jks).Distinct()) | ||
| 1367 | + { | ||
| 1368 | + LqPersonTimesRecordEntity personTimesRecordEntity = new LqPersonTimesRecordEntity | ||
| 1369 | + { | ||
| 1370 | + Id = YitIdHelper.NextId().ToString(), | ||
| 1371 | + BusinessId = input.id, | ||
| 1372 | + BusinessType = "耗卡", | ||
| 1373 | + PersonType = "健康师", | ||
| 1374 | + PersonId = item, | ||
| 1375 | + PersonName = allJksyjEntities.Where(x => x.Jks == item).Select(x => x.Jksxm).First(), | ||
| 1376 | + MemberId = entity.Hy, | ||
| 1377 | + MemberName = memberInfo.Khmc, | ||
| 1378 | + WorkDate = input.hksj, | ||
| 1379 | + WorkMonth = input.hksj.ToDate().ToString("yyyyMM"), | ||
| 1380 | + Quantity = 1 / (decimal)jksCount, | ||
| 1381 | + CreateTime = DateTime.Now, | ||
| 1382 | + IsEffective = StatusEnum.有效.GetHashCode(), | ||
| 1383 | + }; | ||
| 1384 | + allPersonTimesRecordEntities.Add(personTimesRecordEntity); | ||
| 1385 | + } | ||
| 1386 | + //获取这次耗卡有多少个科技部老师 | ||
| 1387 | + var kjbCount = allKjbsyjEntities.GroupBy(x => x.Kjbls).Count(); | ||
| 1388 | + //添加到人次表里面去 | ||
| 1389 | + foreach (var item in allKjbsyjEntities.Select(x => x.Kjbls).Distinct()) | ||
| 1390 | + { | ||
| 1391 | + LqPersonTimesRecordEntity personTimesRecordEntity = new LqPersonTimesRecordEntity | ||
| 1392 | + { | ||
| 1393 | + Id = YitIdHelper.NextId().ToString(), | ||
| 1394 | + BusinessId = input.id, | ||
| 1395 | + BusinessType = "耗卡", | ||
| 1396 | + PersonType = "科技部老师", | ||
| 1397 | + PersonId = item, | ||
| 1398 | + PersonName = allKjbsyjEntities.Where(x => x.Kjbls == item).Select(x => x.Kjblsxm).First(), | ||
| 1399 | + MemberId = entity.Hy, | ||
| 1400 | + MemberName = memberInfo.Khmc, | ||
| 1401 | + WorkDate = input.hksj, | ||
| 1402 | + WorkMonth = input.hksj.ToDate().ToString("yyyyMM"), | ||
| 1403 | + Quantity = 1 / (decimal)kjbCount, | ||
| 1404 | + CreateTime = DateTime.Now, | ||
| 1405 | + IsEffective = StatusEnum.有效.GetHashCode(), | ||
| 1406 | + }; | ||
| 1407 | + allPersonTimesRecordEntities.Add(personTimesRecordEntity); | ||
| 1408 | + } | ||
| 1409 | + // 批量插入人次记录 | ||
| 1410 | + if (allPersonTimesRecordEntities.Any()) | ||
| 1411 | + { | ||
| 1412 | + await _db.Insertable(allPersonTimesRecordEntities).ExecuteCommandAsync(); | ||
| 1413 | + } | ||
| 1379 | // 批量插入品项明细 | 1414 | // 批量插入品项明细 |
| 1380 | if (allPxmxEntities.Any()) | 1415 | if (allPxmxEntities.Any()) |
| 1381 | { | 1416 | { |
| @@ -1430,6 +1465,9 @@ namespace NCC.Extend.LqXhHyhk | @@ -1430,6 +1465,9 @@ namespace NCC.Extend.LqXhHyhk | ||
| 1430 | //清空子表数据 | 1465 | //清空子表数据 |
| 1431 | await _db.Deleteable<LqXhPxmxEntity>().Where(u => u.ConsumeInfoId == id).ExecuteCommandAsync(); | 1466 | await _db.Deleteable<LqXhPxmxEntity>().Where(u => u.ConsumeInfoId == id).ExecuteCommandAsync(); |
| 1432 | 1467 | ||
| 1468 | + //清空子表数据 | ||
| 1469 | + await _db.Deleteable<LqPersonTimesRecordEntity>().Where(u => u.BusinessId == id).ExecuteCommandAsync(); | ||
| 1470 | + | ||
| 1433 | //关闭事务 | 1471 | //关闭事务 |
| 1434 | _db.CommitTran(); | 1472 | _db.CommitTran(); |
| 1435 | } | 1473 | } |
| @@ -1550,6 +1588,8 @@ namespace NCC.Extend.LqXhHyhk | @@ -1550,6 +1588,8 @@ namespace NCC.Extend.LqXhHyhk | ||
| 1550 | await _db.Updateable<LqXhJksyjEntity>().SetColumns(it => new LqXhJksyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.Glkdbh == id).ExecuteCommandAsync(); | 1588 | await _db.Updateable<LqXhJksyjEntity>().SetColumns(it => new LqXhJksyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.Glkdbh == id).ExecuteCommandAsync(); |
| 1551 | //更新科技部老师业绩表状态 | 1589 | //更新科技部老师业绩表状态 |
| 1552 | await _db.Updateable<LqXhKjbsyjEntity>().SetColumns(it => new LqXhKjbsyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.Glkdbh == id).ExecuteCommandAsync(); | 1590 | await _db.Updateable<LqXhKjbsyjEntity>().SetColumns(it => new LqXhKjbsyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.Glkdbh == id).ExecuteCommandAsync(); |
| 1591 | + //更新人次记录表状态 | ||
| 1592 | + await _db.Updateable<LqPersonTimesRecordEntity>().SetColumns(it => new LqPersonTimesRecordEntity { IsEffective = StatusEnum.无效.GetHashCode() }).Where(w => w.BusinessId == id).ExecuteCommandAsync(); | ||
| 1553 | //关闭事务 | 1593 | //关闭事务 |
| 1554 | _db.CommitTran(); | 1594 | _db.CommitTran(); |
| 1555 | return LqhyhkInfo; | 1595 | return LqhyhkInfo; |
netcore/src/Modularity/Extend/NCC.Extend/LqYaoyjlService.cs
| @@ -61,7 +61,7 @@ namespace NCC.Extend.LqYaoyjl | @@ -61,7 +61,7 @@ namespace NCC.Extend.LqYaoyjl | ||
| 61 | { | 61 | { |
| 62 | var entity = await _db.Queryable<LqYaoyjlEntity>().FirstAsync(p => p.Id == id); | 62 | var entity = await _db.Queryable<LqYaoyjlEntity>().FirstAsync(p => p.Id == id); |
| 63 | var output = entity.Adapt<LqYaoyjlInfoOutput>(); | 63 | var output = entity.Adapt<LqYaoyjlInfoOutput>(); |
| 64 | - output.storeName = SqlFunc.Subqueryable<LqMdxxEntity>().Where(u => u.Id == entity.StoreId).Select(u => u.Dm); | 64 | + output.storeName = _db.Queryable<LqMdxxEntity>().Where(u => u.Id == entity.StoreId).Select(u => u.Dm).First(); |
| 65 | return output; | 65 | return output; |
| 66 | } | 66 | } |
| 67 | #endregion | 67 | #endregion |
netcore/src/Modularity/Extend/NCC.Extend/LqYyjlService.cs
| @@ -362,15 +362,14 @@ namespace NCC.Extend.LqYyjl | @@ -362,15 +362,14 @@ namespace NCC.Extend.LqYyjl | ||
| 362 | /// <summary> | 362 | /// <summary> |
| 363 | /// 添加未成交说明 | 363 | /// 添加未成交说明 |
| 364 | /// </summary> | 364 | /// </summary> |
| 365 | - /// <param name="id">主键</param> | ||
| 366 | /// <param name="input">参数</param> | 365 | /// <param name="input">参数</param> |
| 367 | /// <returns></returns> | 366 | /// <returns></returns> |
| 368 | - [HttpPost("AddNoDealRemark/{id}")] | ||
| 369 | - public async Task AddNoDealRemark(string id, [FromBody] string noDealRemark) | 367 | + [HttpPost("AddNoDealRemark")] |
| 368 | + public async Task AddNoDealRemark([FromBody] LqYyjlAddNoDealRemarkInput input) | ||
| 370 | { | 369 | { |
| 371 | - var entity = await _db.Queryable<LqYyjlEntity>().FirstAsync(p => p.Id == id); | 370 | + var entity = await _db.Queryable<LqYyjlEntity>().FirstAsync(p => p.Id == input.id); |
| 372 | _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005); | 371 | _ = entity ?? throw NCCException.Oh(ErrorCode.COM1005); |
| 373 | - entity.NoDealRemark = noDealRemark; | 372 | + entity.NoDealRemark = input.noDealRemark; |
| 374 | var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); | 373 | var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); |
| 375 | if (!(isOk > 0)) | 374 | if (!(isOk > 0)) |
| 376 | throw NCCException.Oh(ErrorCode.COM1001); | 375 | throw NCCException.Oh(ErrorCode.COM1001); |
sql/创建人次记录表.sql
0 → 100644
| 1 | +-- ============================================ | ||
| 2 | +-- 创建人次记录表(lq_person_times_record) | ||
| 3 | +-- ============================================ | ||
| 4 | +-- 说明:用于记录耗卡/开单时健康师或科技老师的工作人次 | ||
| 5 | +-- 支持人头统计(按健康师+月份+客户去重累加)和人次统计(按健康师+日期+客户去重累加) | ||
| 6 | +-- | ||
| 7 | +-- 业务场景: | ||
| 8 | +-- 1. 耗卡时记录健康师或科技老师的工作人次 | ||
| 9 | +-- 2. 未来可能记录开单时的工作人次 | ||
| 10 | +-- | ||
| 11 | +-- 统计规则: | ||
| 12 | +-- - 人头统计:按健康师+月份+客户去重,累加数量 | ||
| 13 | +-- - 人次统计:按健康师+日期+客户去重,累加数量 | ||
| 14 | +-- ============================================ | ||
| 15 | + | ||
| 16 | +CREATE TABLE IF NOT EXISTS `lq_person_times_record` ( | ||
| 17 | + `F_Id` VARCHAR(50) NOT NULL COMMENT '主键ID', | ||
| 18 | + `F_BusinessId` VARCHAR(50) NULL COMMENT '关联业务记录ID', | ||
| 19 | + `F_BusinessType` VARCHAR(20) NULL COMMENT '业务类型(耗卡/开单)', | ||
| 20 | + `F_PersonType` VARCHAR(20) NULL COMMENT '人员类型(健康师/科技老师)', | ||
| 21 | + `F_PersonId` VARCHAR(50) NULL COMMENT '人员ID', | ||
| 22 | + `F_PersonName` VARCHAR(100) NULL COMMENT '人员姓名', | ||
| 23 | + `F_MemberId` VARCHAR(50) NULL COMMENT '客户ID', | ||
| 24 | + `F_MemberName` VARCHAR(100) NULL COMMENT '客户姓名', | ||
| 25 | + `F_WorkDate` DATE NULL COMMENT '工作日期(用于人次统计,格式:YYYY-MM-DD)', | ||
| 26 | + `F_WorkMonth` VARCHAR(6) NULL COMMENT '工作月份(用于人头统计,格式:202511)', | ||
| 27 | + `F_Quantity` DECIMAL(10,2) NULL COMMENT '数量', | ||
| 28 | + `F_CreateTime` DATETIME NULL COMMENT '创建时间', | ||
| 29 | + `F_IsEffective` INT NULL DEFAULT 1 COMMENT '是否有效', | ||
| 30 | + PRIMARY KEY (`F_Id`), | ||
| 31 | + INDEX `idx_person_month_member` (`F_PersonId`, `F_WorkMonth`, `F_MemberId`) COMMENT '人头统计索引(健康师+月份+客户)', | ||
| 32 | + INDEX `idx_person_date_member` (`F_PersonId`, `F_WorkDate`, `F_MemberId`) COMMENT '人次统计索引(健康师+日期+客户)', | ||
| 33 | + INDEX `idx_business` (`F_BusinessId`, `F_BusinessType`) COMMENT '业务查询索引' | ||
| 34 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='人次记录表'; | ||
| 35 | + | ||
| 36 | +-- ============================================ | ||
| 37 | +-- 验证表结构 | ||
| 38 | +-- ============================================ | ||
| 39 | +-- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, COLUMN_COMMENT | ||
| 40 | +-- FROM INFORMATION_SCHEMA.COLUMNS | ||
| 41 | +-- WHERE TABLE_NAME = 'lq_person_times_record' | ||
| 42 | +-- ORDER BY ORDINAL_POSITION; | ||
| 43 | + | ||
| 44 | +-- ============================================ | ||
| 45 | +-- 验证索引 | ||
| 46 | +-- ============================================ | ||
| 47 | +-- SHOW INDEX FROM lq_person_times_record; | ||
| 48 | + |
sql/添加品项分类字段.sql
0 → 100644
| 1 | +-- ============================================ | ||
| 2 | +-- 为品项明细表添加品项分类字段 | ||
| 3 | +-- ============================================ | ||
| 4 | +-- 说明:此脚本为品项明细相关表添加品项分类字段,用于存储品项的分类(医美、科美、生美) | ||
| 5 | +-- | ||
| 6 | +-- 字段说明: | ||
| 7 | +-- F_ItemCategory:品项分类,用于存储"医美"、"科美"、"生美"等分类值 | ||
| 8 | +-- | ||
| 9 | +-- 业务含义: | ||
| 10 | +-- - 品项分类用于区分不同类型的品项,便于统计和分析 | ||
| 11 | +-- - 分类值来源于项目资料表(lq_xmzl)的 qt2 字段 | ||
| 12 | +-- | ||
| 13 | +-- 注意事项: | ||
| 14 | +-- - 字段类型为VARCHAR(20),可存储"医美"、"科美"、"生美"等分类值 | ||
| 15 | +-- - 所有字段允许为NULL,因为历史数据可能没有这些分类信息 | ||
| 16 | +-- - 字段位置:放在品项相关字段(px、pxmc)之后 | ||
| 17 | + | ||
| 18 | +-- ============================================ | ||
| 19 | +-- 1. lq_kd_pxmx(开单品项明细表) - 添加品项分类字段 | ||
| 20 | +-- ============================================ | ||
| 21 | +ALTER TABLE lq_kd_pxmx | ||
| 22 | +ADD COLUMN F_ItemCategory VARCHAR(20) NULL COMMENT '品项分类(医美/科美/生美)' AFTER pxmc; | ||
| 23 | + | ||
| 24 | +-- ============================================ | ||
| 25 | +-- 2. lq_kd_deductinfo(开单扣减信息表) - 添加品项分类字段 | ||
| 26 | +-- ============================================ | ||
| 27 | +ALTER TABLE lq_kd_deductinfo | ||
| 28 | +ADD COLUMN F_ItemCategory VARCHAR(20) NULL COMMENT '品项分类(医美/科美/生美)' AFTER F_ItemName; | ||
| 29 | + | ||
| 30 | +-- ============================================ | ||
| 31 | +-- 3. lq_xh_pxmx(耗卡品项明细表) - 添加品项分类字段 | ||
| 32 | +-- ============================================ | ||
| 33 | +ALTER TABLE lq_xh_pxmx | ||
| 34 | +ADD COLUMN F_ItemCategory VARCHAR(20) NULL COMMENT '品项分类(医美/科美/生美)' AFTER pxmc; | ||
| 35 | + | ||
| 36 | +-- ============================================ | ||
| 37 | +-- 4. lq_hytk_mx(会员退卡明细表) - 添加品项分类字段 | ||
| 38 | +-- ============================================ | ||
| 39 | +ALTER TABLE lq_hytk_mx | ||
| 40 | +ADD COLUMN F_ItemCategory VARCHAR(20) NULL COMMENT '品项分类(医美/科美/生美)' AFTER pxmc; | ||
| 41 | + | ||
| 42 | +-- ============================================ | ||
| 43 | +-- 5. 验证字段创建 | ||
| 44 | +-- ============================================ | ||
| 45 | +-- 验证 lq_kd_pxmx 表 | ||
| 46 | +-- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT | ||
| 47 | +-- FROM INFORMATION_SCHEMA.COLUMNS | ||
| 48 | +-- WHERE TABLE_NAME = 'lq_kd_pxmx' | ||
| 49 | +-- AND COLUMN_NAME = 'F_ItemCategory'; | ||
| 50 | + | ||
| 51 | +-- 验证 lq_kd_deductinfo 表 | ||
| 52 | +-- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT | ||
| 53 | +-- FROM INFORMATION_SCHEMA.COLUMNS | ||
| 54 | +-- WHERE TABLE_NAME = 'lq_kd_deductinfo' | ||
| 55 | +-- AND COLUMN_NAME = 'F_ItemCategory'; | ||
| 56 | + | ||
| 57 | +-- 验证 lq_xh_pxmx 表 | ||
| 58 | +-- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT | ||
| 59 | +-- FROM INFORMATION_SCHEMA.COLUMNS | ||
| 60 | +-- WHERE TABLE_NAME = 'lq_xh_pxmx' | ||
| 61 | +-- AND COLUMN_NAME = 'F_ItemCategory'; | ||
| 62 | + | ||
| 63 | +-- 验证 lq_hytk_mx 表 | ||
| 64 | +-- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT | ||
| 65 | +-- FROM INFORMATION_SCHEMA.COLUMNS | ||
| 66 | +-- WHERE TABLE_NAME = 'lq_hytk_mx' | ||
| 67 | +-- AND COLUMN_NAME = 'F_ItemCategory'; | ||
| 68 | + |