Commit a8089ee36df6f3f3accba64c3f9d0629fd33b2d9
Merge branch 'master' of http://39.98.150.180/antissoft/lvqianmeiye_ERP
Showing
33 changed files
with
995 additions
and
109 deletions
netcore/src/Application/NCC.API/appsettings.json
| ... | ... | @@ -29,7 +29,7 @@ |
| 29 | 29 | "AllowedHosts": "*", |
| 30 | 30 | "ConnectionStrings": { |
| 31 | 31 | "ConfigId": "db", |
| 32 | - "DBName": "lqerp", | |
| 32 | + "DBName": "lqerp_test", | |
| 33 | 33 | "DBType": "MySql", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp; |
| 34 | 34 | //SqlServer |
| 35 | 35 | // "DefaultConnection": "Data Source=localhost;Initial Catalog={0};User ID=sqladmin;Password=P@ssw0rd;MultipleActiveResultSets=true" | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/LqEventCrInput.cs
| ... | ... | @@ -86,5 +86,10 @@ namespace NCC.Extend.Entitys.Dto.LqEvent |
| 86 | 86 | /// 每个成员包含:用户ID、部门ID、战队名称等信息 |
| 87 | 87 | /// </remarks> |
| 88 | 88 | public List<LqEventUserCrInput> Members { get; set; } = new List<LqEventUserCrInput>(); |
| 89 | + | |
| 90 | + /// <summary> | |
| 91 | + /// 推送URL | |
| 92 | + /// </summary> | |
| 93 | + public string PushUrl { get; set; } | |
| 89 | 94 | } |
| 90 | 95 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqEvent/LqEventInfoOutput.cs
| ... | ... | @@ -46,6 +46,11 @@ namespace NCC.Extend.Entitys.Dto.LqEvent |
| 46 | 46 | public int eventType { get; set; } |
| 47 | 47 | |
| 48 | 48 | /// <summary> |
| 49 | + /// 推送URL | |
| 50 | + /// </summary> | |
| 51 | + public string pushUrl { get; set; } | |
| 52 | + | |
| 53 | + /// <summary> | |
| 49 | 54 | /// 拓客活动成员列表 |
| 50 | 55 | /// </summary> |
| 51 | 56 | public List<LqEventUserInfoOutput> Members { get; set; } = new List<LqEventUserInfoOutput>(); | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoCrInput.cs
| ... | ... | @@ -17,10 +17,10 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo |
| 17 | 17 | /// 扣减类型 |
| 18 | 18 | /// </summary> |
| 19 | 19 | [Required(ErrorMessage = "扣减类型不能为空")] |
| 20 | - public int? DeductType { get; set; } | |
| 20 | + public string DeductType { get; set; } | |
| 21 | 21 | |
| 22 | 22 | /// <summary> |
| 23 | - /// 扣减关联ID | |
| 23 | + /// 扣减品项关联ID | |
| 24 | 24 | /// </summary> |
| 25 | 25 | [Required(ErrorMessage = "扣减关联ID不能为空")] |
| 26 | 26 | public string DeductId { get; set; } |
| ... | ... | @@ -28,7 +28,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo |
| 28 | 28 | /// <summary> |
| 29 | 29 | /// 开单id |
| 30 | 30 | /// </summary> |
| 31 | - [Required(ErrorMessage = "开单id不能为空")] | |
| 32 | 31 | public string BillingId { get; set; } |
| 33 | 32 | |
| 34 | 33 | /// <summary> |
| ... | ... | @@ -37,5 +36,35 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo |
| 37 | 36 | [Required(ErrorMessage = "合计金额不能为空")] |
| 38 | 37 | [Range(0.01, 999999.99, ErrorMessage = "合计金额必须在0.01到999999.99之间")] |
| 39 | 38 | public decimal? Amount { get; set; } |
| 39 | + | |
| 40 | + /// <summary> | |
| 41 | + /// 是否有效 | |
| 42 | + /// </summary> | |
| 43 | + public int? IsEffective { get; set; } | |
| 44 | + | |
| 45 | + /// <summary> | |
| 46 | + /// 单价 | |
| 47 | + /// </summary> | |
| 48 | + public decimal? UnitPrice { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 品项名称 | |
| 52 | + /// </summary> | |
| 53 | + public string ItemName { get; set; } | |
| 54 | + | |
| 55 | + /// <summary> | |
| 56 | + /// 品项id | |
| 57 | + /// </summary> | |
| 58 | + public string ItemId { get; set; } | |
| 59 | + | |
| 60 | + /// <summary> | |
| 61 | + /// 品项次数 | |
| 62 | + /// </summary> | |
| 63 | + public decimal? ProjectNumber { get; set; } | |
| 64 | + | |
| 65 | + /// <summary> | |
| 66 | + /// 创建时间 | |
| 67 | + /// </summary> | |
| 68 | + public DateTime? CreateTime { get; set; } | |
| 40 | 69 | } |
| 41 | 70 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoInfoOutput.cs
| ... | ... | @@ -15,7 +15,7 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo |
| 15 | 15 | /// <summary> |
| 16 | 16 | /// 扣减类型 |
| 17 | 17 | /// </summary> |
| 18 | - public int? DeductType { get; set; } | |
| 18 | + public string DeductType { get; set; } | |
| 19 | 19 | |
| 20 | 20 | /// <summary> |
| 21 | 21 | /// 扣减类型名称 |
| ... | ... | @@ -36,5 +36,30 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo |
| 36 | 36 | /// 合计金额 |
| 37 | 37 | /// </summary> |
| 38 | 38 | public decimal? Amount { get; set; } |
| 39 | + | |
| 40 | + /// <summary> | |
| 41 | + /// 是否有效 | |
| 42 | + /// </summary> | |
| 43 | + public int? IsEffective { get; set; } | |
| 44 | + | |
| 45 | + /// <summary> | |
| 46 | + /// 单价 | |
| 47 | + /// </summary> | |
| 48 | + public decimal? UnitPrice { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 品项名称 | |
| 52 | + /// </summary> | |
| 53 | + public string ItemName { get; set; } | |
| 54 | + | |
| 55 | + /// <summary> | |
| 56 | + /// 品项id | |
| 57 | + /// </summary> | |
| 58 | + public string ItemId { get; set; } | |
| 59 | + | |
| 60 | + /// <summary> | |
| 61 | + /// 创建时间 | |
| 62 | + /// </summary> | |
| 63 | + public DateTime? CreateTime { get; set; } | |
| 39 | 64 | } |
| 40 | 65 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoListOutput.cs
| ... | ... | @@ -15,7 +15,7 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo |
| 15 | 15 | /// <summary> |
| 16 | 16 | /// 扣减类型 |
| 17 | 17 | /// </summary> |
| 18 | - public int? DeductType { get; set; } | |
| 18 | + public string DeductType { get; set; } | |
| 19 | 19 | |
| 20 | 20 | /// <summary> |
| 21 | 21 | /// 扣减类型名称 |
| ... | ... | @@ -36,5 +36,30 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo |
| 36 | 36 | /// 合计金额 |
| 37 | 37 | /// </summary> |
| 38 | 38 | public decimal? Amount { get; set; } |
| 39 | + | |
| 40 | + /// <summary> | |
| 41 | + /// 是否有效 | |
| 42 | + /// </summary> | |
| 43 | + public int? IsEffective { get; set; } | |
| 44 | + | |
| 45 | + /// <summary> | |
| 46 | + /// 单价 | |
| 47 | + /// </summary> | |
| 48 | + public decimal? UnitPrice { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 品项名称 | |
| 52 | + /// </summary> | |
| 53 | + public string ItemName { get; set; } | |
| 54 | + | |
| 55 | + /// <summary> | |
| 56 | + /// 品项id | |
| 57 | + /// </summary> | |
| 58 | + public string ItemId { get; set; } | |
| 59 | + | |
| 60 | + /// <summary> | |
| 61 | + /// 创建时间 | |
| 62 | + /// </summary> | |
| 63 | + public DateTime? CreateTime { get; set; } | |
| 39 | 64 | } |
| 40 | 65 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoListQueryInput.cs
| ... | ... | @@ -10,7 +10,7 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo |
| 10 | 10 | /// <summary> |
| 11 | 11 | /// 扣减类型 |
| 12 | 12 | /// </summary> |
| 13 | - public int? DeductType { get; set; } | |
| 13 | + public string DeductType { get; set; } | |
| 14 | 14 | |
| 15 | 15 | /// <summary> |
| 16 | 16 | /// 扣减关联ID |
| ... | ... | @@ -31,5 +31,40 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo |
| 31 | 31 | /// 最大金额 |
| 32 | 32 | /// </summary> |
| 33 | 33 | public decimal? MaxAmount { get; set; } |
| 34 | + | |
| 35 | + /// <summary> | |
| 36 | + /// 是否有效 | |
| 37 | + /// </summary> | |
| 38 | + public int? IsEffective { get; set; } | |
| 39 | + | |
| 40 | + /// <summary> | |
| 41 | + /// 品项名称 | |
| 42 | + /// </summary> | |
| 43 | + public string ItemName { get; set; } | |
| 44 | + | |
| 45 | + /// <summary> | |
| 46 | + /// 品项id | |
| 47 | + /// </summary> | |
| 48 | + public string ItemId { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 最小单价 | |
| 52 | + /// </summary> | |
| 53 | + public decimal? MinUnitPrice { get; set; } | |
| 54 | + | |
| 55 | + /// <summary> | |
| 56 | + /// 最大单价 | |
| 57 | + /// </summary> | |
| 58 | + public decimal? MaxUnitPrice { get; set; } | |
| 59 | + | |
| 60 | + /// <summary> | |
| 61 | + /// 开始创建时间 | |
| 62 | + /// </summary> | |
| 63 | + public DateTime? StartCreateTime { get; set; } | |
| 64 | + | |
| 65 | + /// <summary> | |
| 66 | + /// 结束创建时间 | |
| 67 | + /// </summary> | |
| 68 | + public DateTime? EndCreateTime { get; set; } | |
| 34 | 69 | } |
| 35 | 70 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbCrInput.cs
| ... | ... | @@ -146,6 +146,16 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb |
| 146 | 146 | public string F_FIleUrl { get; set; } |
| 147 | 147 | |
| 148 | 148 | /// <summary> |
| 149 | + /// 作废关联id | |
| 150 | + /// </summary> | |
| 151 | + public string cancelRefId { get; set; } | |
| 152 | + | |
| 153 | + /// <summary> | |
| 154 | + /// 作废关联备注 | |
| 155 | + /// </summary> | |
| 156 | + public string cancelRefRemarks { get; set; } | |
| 157 | + | |
| 158 | + /// <summary> | |
| 149 | 159 | /// 扣款信息 |
| 150 | 160 | /// </summary> |
| 151 | 161 | public List<LqKdDeductinfoCrInput> lqKdKdjlbDeductList { get; set; } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/LqKdKdjlbInfoOutput.cs
| ... | ... | @@ -59,10 +59,11 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb |
| 59 | 59 | /// </summary> |
| 60 | 60 | public string ckfs { get; set; } |
| 61 | 61 | |
| 62 | + | |
| 62 | 63 | /// <summary> |
| 63 | - /// 储扣明细 | |
| 64 | + /// 储扣总金额 | |
| 64 | 65 | /// </summary> |
| 65 | - public string ckmx { get; set; } | |
| 66 | + public decimal deductAmount { get; set; } | |
| 66 | 67 | |
| 67 | 68 | /// <summary> |
| 68 | 69 | /// 付款方式 | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdPxmx/LqKdPxmxCrInput.cs
| ... | ... | @@ -54,14 +54,14 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb |
| 54 | 54 | public decimal projectNumber { get; set; } |
| 55 | 55 | |
| 56 | 56 | /// <summary> |
| 57 | - /// 是否有效 | |
| 57 | + /// 来源类型 | |
| 58 | 58 | /// </summary> |
| 59 | - public int? isEnabled { get; set; } = 0; | |
| 59 | + public string sourceType { get; set; } | |
| 60 | 60 | |
| 61 | 61 | /// <summary> |
| 62 | - /// 来源类型 | |
| 62 | + /// 备注 | |
| 63 | 63 | /// </summary> |
| 64 | - public string sourceType { get; set; } | |
| 64 | + public string remark { get; set; } | |
| 65 | 65 | |
| 66 | 66 | /// <summary> |
| 67 | 67 | /// 健康师业绩 | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdPxmx/LqKdPxmxInfoOutput.cs
| ... | ... | @@ -68,6 +68,12 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb |
| 68 | 68 | /// </summary> |
| 69 | 69 | public decimal actualPrice { get; set; } |
| 70 | 70 | |
| 71 | + | |
| 72 | + /// <summary> | |
| 73 | + /// 备注 | |
| 74 | + /// </summary> | |
| 75 | + public string remark { get; set; } | |
| 76 | + | |
| 71 | 77 | /// <summary> |
| 72 | 78 | /// 健康师业绩列表 |
| 73 | 79 | /// </summary> | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjCrInput.cs
0 → 100644
| 1 | +using System; | |
| 2 | +using System.ComponentModel.DataAnnotations; | |
| 3 | + | |
| 4 | +namespace NCC.Extend.Entitys.Dto.LqKdQkbj | |
| 5 | +{ | |
| 6 | + /// <summary> | |
| 7 | + /// 开单欠款补缴记录创建输入 | |
| 8 | + /// </summary> | |
| 9 | + public class LqKdQkbjCrInput | |
| 10 | + { | |
| 11 | + /// <summary> | |
| 12 | + /// 开单ID | |
| 13 | + /// </summary> | |
| 14 | + [Required(ErrorMessage = "开单ID不能为空")] | |
| 15 | + public string BillingId { get; set; } | |
| 16 | + | |
| 17 | + /// <summary> | |
| 18 | + /// 补缴金额 | |
| 19 | + /// </summary> | |
| 20 | + [Required(ErrorMessage = "补缴金额不能为空")] | |
| 21 | + [Range(0.01, 999999.99, ErrorMessage = "补缴金额必须在0.01到999999.99之间")] | |
| 22 | + public decimal PaymentAmount { get; set; } | |
| 23 | + | |
| 24 | + /// <summary> | |
| 25 | + /// 补缴方式 | |
| 26 | + /// </summary> | |
| 27 | + [Required(ErrorMessage = "补缴方式不能为空")] | |
| 28 | + public string PaymentMethod { get; set; } | |
| 29 | + | |
| 30 | + /// <summary> | |
| 31 | + /// 补缴时间 | |
| 32 | + /// </summary> | |
| 33 | + [Required(ErrorMessage = "补缴时间不能为空")] | |
| 34 | + public DateTime PaymentTime { get; set; } | |
| 35 | + | |
| 36 | + /// <summary> | |
| 37 | + /// 补缴操作人 | |
| 38 | + /// </summary> | |
| 39 | + public string PaymentUser { get; set; } | |
| 40 | + | |
| 41 | + /// <summary> | |
| 42 | + /// 补缴账户 | |
| 43 | + /// </summary> | |
| 44 | + public string PaymentAccount { get; set; } | |
| 45 | + | |
| 46 | + /// <summary> | |
| 47 | + /// 补缴凭证号 | |
| 48 | + /// </summary> | |
| 49 | + public string PaymentReference { get; set; } | |
| 50 | + | |
| 51 | + /// <summary> | |
| 52 | + /// 补缴备注 | |
| 53 | + /// </summary> | |
| 54 | + [StringLength(500, ErrorMessage = "补缴备注不能超过500个字符")] | |
| 55 | + public string Remark { get; set; } | |
| 56 | + } | |
| 57 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjInfoOutput.cs
0 → 100644
| 1 | +using System; | |
| 2 | + | |
| 3 | +namespace NCC.Extend.Entitys.Dto.LqKdQkbj | |
| 4 | +{ | |
| 5 | + /// <summary> | |
| 6 | + /// 开单欠款补缴记录详情输出 | |
| 7 | + /// </summary> | |
| 8 | + public class LqKdQkbjInfoOutput | |
| 9 | + { | |
| 10 | + /// <summary> | |
| 11 | + /// 主键 | |
| 12 | + /// </summary> | |
| 13 | + public string Id { get; set; } | |
| 14 | + | |
| 15 | + /// <summary> | |
| 16 | + /// 开单ID | |
| 17 | + /// </summary> | |
| 18 | + public string BillingId { get; set; } | |
| 19 | + | |
| 20 | + /// <summary> | |
| 21 | + /// 补缴金额 | |
| 22 | + /// </summary> | |
| 23 | + public decimal PaymentAmount { get; set; } | |
| 24 | + | |
| 25 | + /// <summary> | |
| 26 | + /// 补缴方式 | |
| 27 | + /// </summary> | |
| 28 | + public string PaymentMethod { get; set; } | |
| 29 | + | |
| 30 | + /// <summary> | |
| 31 | + /// 补缴方式名称 | |
| 32 | + /// </summary> | |
| 33 | + public string PaymentMethodName { get; set; } | |
| 34 | + | |
| 35 | + /// <summary> | |
| 36 | + /// 补缴时间 | |
| 37 | + /// </summary> | |
| 38 | + public DateTime PaymentTime { get; set; } | |
| 39 | + | |
| 40 | + /// <summary> | |
| 41 | + /// 补缴操作人 | |
| 42 | + /// </summary> | |
| 43 | + public string PaymentUser { get; set; } | |
| 44 | + | |
| 45 | + /// <summary> | |
| 46 | + /// 补缴操作人姓名 | |
| 47 | + /// </summary> | |
| 48 | + public string PaymentUserName { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 补缴账户 | |
| 52 | + /// </summary> | |
| 53 | + public string PaymentAccount { get; set; } | |
| 54 | + | |
| 55 | + /// <summary> | |
| 56 | + /// 补缴凭证号 | |
| 57 | + /// </summary> | |
| 58 | + public string PaymentReference { get; set; } | |
| 59 | + | |
| 60 | + /// <summary> | |
| 61 | + /// 补缴备注 | |
| 62 | + /// </summary> | |
| 63 | + public string Remark { get; set; } | |
| 64 | + | |
| 65 | + /// <summary> | |
| 66 | + /// 创建时间 | |
| 67 | + /// </summary> | |
| 68 | + public DateTime CreateTime { get; set; } | |
| 69 | + | |
| 70 | + /// <summary> | |
| 71 | + /// 更新时间 | |
| 72 | + /// </summary> | |
| 73 | + public DateTime UpdateTime { get; set; } | |
| 74 | + | |
| 75 | + /// <summary> | |
| 76 | + /// 是否有效 | |
| 77 | + /// </summary> | |
| 78 | + public int IsEffective { get; set; } | |
| 79 | + } | |
| 80 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjListOutput.cs
0 → 100644
| 1 | +using System; | |
| 2 | + | |
| 3 | +namespace NCC.Extend.Entitys.Dto.LqKdQkbj | |
| 4 | +{ | |
| 5 | + /// <summary> | |
| 6 | + /// 开单欠款补缴记录列表输出 | |
| 7 | + /// </summary> | |
| 8 | + public class LqKdQkbjListOutput | |
| 9 | + { | |
| 10 | + /// <summary> | |
| 11 | + /// 主键 | |
| 12 | + /// </summary> | |
| 13 | + public string Id { get; set; } | |
| 14 | + | |
| 15 | + /// <summary> | |
| 16 | + /// 开单ID | |
| 17 | + /// </summary> | |
| 18 | + public string BillingId { get; set; } | |
| 19 | + | |
| 20 | + /// <summary> | |
| 21 | + /// 补缴金额 | |
| 22 | + /// </summary> | |
| 23 | + public decimal PaymentAmount { get; set; } | |
| 24 | + | |
| 25 | + /// <summary> | |
| 26 | + /// 补缴方式 | |
| 27 | + /// </summary> | |
| 28 | + public string PaymentMethod { get; set; } | |
| 29 | + | |
| 30 | + /// <summary> | |
| 31 | + /// 补缴方式名称 | |
| 32 | + /// </summary> | |
| 33 | + public string PaymentMethodName { get; set; } | |
| 34 | + | |
| 35 | + /// <summary> | |
| 36 | + /// 补缴时间 | |
| 37 | + /// </summary> | |
| 38 | + public DateTime PaymentTime { get; set; } | |
| 39 | + | |
| 40 | + /// <summary> | |
| 41 | + /// 补缴操作人 | |
| 42 | + /// </summary> | |
| 43 | + public string PaymentUser { get; set; } | |
| 44 | + | |
| 45 | + /// <summary> | |
| 46 | + /// 补缴操作人姓名 | |
| 47 | + /// </summary> | |
| 48 | + public string PaymentUserName { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 补缴账户 | |
| 52 | + /// </summary> | |
| 53 | + public string PaymentAccount { get; set; } | |
| 54 | + | |
| 55 | + /// <summary> | |
| 56 | + /// 补缴凭证号 | |
| 57 | + /// </summary> | |
| 58 | + public string PaymentReference { get; set; } | |
| 59 | + | |
| 60 | + /// <summary> | |
| 61 | + /// 补缴备注 | |
| 62 | + /// </summary> | |
| 63 | + public string Remark { 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 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjListQueryInput.cs
0 → 100644
| 1 | +using System; | |
| 2 | + | |
| 3 | +namespace NCC.Extend.Entitys.Dto.LqKdQkbj | |
| 4 | +{ | |
| 5 | + /// <summary> | |
| 6 | + /// 开单欠款补缴记录列表查询输入 | |
| 7 | + /// </summary> | |
| 8 | + public class LqKdQkbjListQueryInput | |
| 9 | + { | |
| 10 | + /// <summary> | |
| 11 | + /// 开单ID | |
| 12 | + /// </summary> | |
| 13 | + public string BillingId { get; set; } | |
| 14 | + | |
| 15 | + /// <summary> | |
| 16 | + /// 补缴方式 | |
| 17 | + /// </summary> | |
| 18 | + public string PaymentMethod { get; set; } | |
| 19 | + | |
| 20 | + /// <summary> | |
| 21 | + /// 补缴操作人 | |
| 22 | + /// </summary> | |
| 23 | + public string PaymentUser { get; set; } | |
| 24 | + | |
| 25 | + /// <summary> | |
| 26 | + /// 最小补缴金额 | |
| 27 | + /// </summary> | |
| 28 | + public decimal? MinPaymentAmount { get; set; } | |
| 29 | + | |
| 30 | + /// <summary> | |
| 31 | + /// 最大补缴金额 | |
| 32 | + /// </summary> | |
| 33 | + public decimal? MaxPaymentAmount { get; set; } | |
| 34 | + | |
| 35 | + /// <summary> | |
| 36 | + /// 开始补缴时间 | |
| 37 | + /// </summary> | |
| 38 | + public DateTime? StartPaymentTime { get; set; } | |
| 39 | + | |
| 40 | + /// <summary> | |
| 41 | + /// 结束补缴时间 | |
| 42 | + /// </summary> | |
| 43 | + public DateTime? EndPaymentTime { get; set; } | |
| 44 | + | |
| 45 | + /// <summary> | |
| 46 | + /// 是否有效 | |
| 47 | + /// </summary> | |
| 48 | + public int? IsEffective { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 补缴凭证号 | |
| 52 | + /// </summary> | |
| 53 | + public string PaymentReference { get; set; } | |
| 54 | + } | |
| 55 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdQkbj/LqKdQkbjUpInput.cs
0 → 100644
| 1 | +using System; | |
| 2 | +using System.ComponentModel.DataAnnotations; | |
| 3 | + | |
| 4 | +namespace NCC.Extend.Entitys.Dto.LqKdQkbj | |
| 5 | +{ | |
| 6 | + /// <summary> | |
| 7 | + /// 开单欠款补缴记录更新输入 | |
| 8 | + /// </summary> | |
| 9 | + public class LqKdQkbjUpInput : LqKdQkbjCrInput | |
| 10 | + { | |
| 11 | + /// <summary> | |
| 12 | + /// 主键 | |
| 13 | + /// </summary> | |
| 14 | + [Required(ErrorMessage = "主键不能为空")] | |
| 15 | + public string Id { get; set; } | |
| 16 | + } | |
| 17 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/MemberRemainingItemsOutput.cs
| ... | ... | @@ -92,6 +92,13 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk |
| 92 | 92 | public decimal RefundedCount { get; set; } |
| 93 | 93 | |
| 94 | 94 | /// <summary> |
| 95 | + /// 已储扣数量 | |
| 96 | + /// </summary> | |
| 97 | + /// <remarks>该品项已储扣的次数</remarks> | |
| 98 | + /// <example>0</example> | |
| 99 | + public decimal DeductCount { get; set; } | |
| 100 | + | |
| 101 | + /// <summary> | |
| 95 | 102 | /// 剩余数量 |
| 96 | 103 | /// </summary> |
| 97 | 104 | /// <remarks>总购买数量减去已消费数量减去已退卡数量</remarks> | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_event/LqEventEntity.cs
| ... | ... | @@ -50,5 +50,11 @@ namespace NCC.Extend.Entitys.lq_event |
| 50 | 50 | /// </summary> |
| 51 | 51 | [SugarColumn(ColumnName = "F_EventType")] |
| 52 | 52 | public int EventType { get; set; } |
| 53 | + | |
| 54 | + /// <summary> | |
| 55 | + /// 推送URL | |
| 56 | + /// </summary> | |
| 57 | + [SugarColumn(ColumnName = "F_PushUrl")] | |
| 58 | + public string PushUrl { get; set; } | |
| 53 | 59 | } |
| 54 | 60 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_deductinfo/LqKdDeductinfoEntity.cs
| ... | ... | @@ -20,7 +20,7 @@ namespace NCC.Extend.Entitys.lq_kd_deductinfo |
| 20 | 20 | /// 扣减类型 |
| 21 | 21 | /// </summary> |
| 22 | 22 | [SugarColumn(ColumnName = "F_DeductType")] |
| 23 | - public int? DeductType { get; set; } | |
| 23 | + public string DeductType { get; set; } | |
| 24 | 24 | |
| 25 | 25 | /// <summary> |
| 26 | 26 | /// 扣减关联ID |
| ... | ... | @@ -40,5 +40,41 @@ namespace NCC.Extend.Entitys.lq_kd_deductinfo |
| 40 | 40 | /// </summary> |
| 41 | 41 | [SugarColumn(ColumnName = "F_Amount")] |
| 42 | 42 | public decimal? Amount { get; set; } |
| 43 | + | |
| 44 | + /// <summary> | |
| 45 | + /// 是否有效 | |
| 46 | + /// </summary> | |
| 47 | + [SugarColumn(ColumnName = "F_IsEffective")] | |
| 48 | + public int? IsEffective { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 单价 | |
| 52 | + /// </summary> | |
| 53 | + [SugarColumn(ColumnName = "F_UnitPrice")] | |
| 54 | + public decimal? UnitPrice { get; set; } | |
| 55 | + | |
| 56 | + /// <summary> | |
| 57 | + /// 品项名称 | |
| 58 | + /// </summary> | |
| 59 | + [SugarColumn(ColumnName = "F_ItemName")] | |
| 60 | + public string ItemName { get; set; } | |
| 61 | + | |
| 62 | + /// <summary> | |
| 63 | + /// 品项id | |
| 64 | + /// </summary> | |
| 65 | + [SugarColumn(ColumnName = "F_ItemId")] | |
| 66 | + public string ItemId { get; set; } | |
| 67 | + | |
| 68 | + /// <summary> | |
| 69 | + /// 创建时间 | |
| 70 | + /// </summary> | |
| 71 | + [SugarColumn(ColumnName = "F_CreateTime")] | |
| 72 | + public DateTime? CreateTime { get; set; } | |
| 73 | + | |
| 74 | + /// <summary> | |
| 75 | + /// 项目数量 | |
| 76 | + /// </summary> | |
| 77 | + [SugarColumn(ColumnName = "F_ProjectNumber")] | |
| 78 | + public decimal? ProjectNumber { get; set; } | |
| 43 | 79 | } |
| 44 | 80 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kdjlb/LqKdKdjlbEntity.cs
| ... | ... | @@ -204,5 +204,18 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb |
| 204 | 204 | [SugarColumn(ColumnName = "F_IsEffective")] |
| 205 | 205 | public int IsEffective { get; set; } = 1; |
| 206 | 206 | |
| 207 | + | |
| 208 | + /// <summary> | |
| 209 | + /// 作废关联id | |
| 210 | + /// </summary> | |
| 211 | + [SugarColumn(ColumnName = "F_CancelRefId")] | |
| 212 | + public string CancelRefId { get; set; } | |
| 213 | + | |
| 214 | + /// <summary> | |
| 215 | + /// 作废关联备注 | |
| 216 | + /// </summary> | |
| 217 | + [SugarColumn(ColumnName = "F_CancelRefRemarks")] | |
| 218 | + public string CancelRefRemarks { get; set; } | |
| 219 | + | |
| 207 | 220 | } |
| 208 | 221 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_pxmx/LqKdPxmxEntity.cs
| ... | ... | @@ -60,9 +60,6 @@ namespace NCC.Extend.Entitys.lq_kd_pxmx |
| 60 | 60 | [SugarColumn(ColumnName = "F_CreateTIme")] |
| 61 | 61 | public DateTime? CreateTIme { get; set; } |
| 62 | 62 | |
| 63 | - | |
| 64 | - | |
| 65 | - | |
| 66 | 63 | /// <summary> |
| 67 | 64 | /// 项目次数 |
| 68 | 65 | /// </summary> |
| ... | ... | @@ -98,5 +95,11 @@ namespace NCC.Extend.Entitys.lq_kd_pxmx |
| 98 | 95 | /// </summary> |
| 99 | 96 | [SugarColumn(ColumnName = "F_IsEffective")] |
| 100 | 97 | public int IsEffective { get; set; } = 1; |
| 98 | + | |
| 99 | + /// <summary> | |
| 100 | + /// 备注 | |
| 101 | + /// </summary> | |
| 102 | + [SugarColumn(ColumnName = "F_Remark")] | |
| 103 | + public string Remark { get; set; } | |
| 101 | 104 | } |
| 102 | 105 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_qkbj/LqKdQkbjEntity.cs
0 → 100644
| 1 | +using System; | |
| 2 | +using NCC.Common.Const; | |
| 3 | +using SqlSugar; | |
| 4 | + | |
| 5 | +namespace NCC.Extend.Entitys.lq_kd_qkbj | |
| 6 | +{ | |
| 7 | + /// <summary> | |
| 8 | + /// 开单欠款补缴记录表 | |
| 9 | + /// </summary> | |
| 10 | + [SugarTable("lq_kd_qkbj")] | |
| 11 | + [Tenant(ClaimConst.TENANT_ID)] | |
| 12 | + public class LqKdQkbjEntity | |
| 13 | + { | |
| 14 | + /// <summary> | |
| 15 | + /// 主键 | |
| 16 | + /// </summary> | |
| 17 | + [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] | |
| 18 | + public string Id { get; set; } | |
| 19 | + | |
| 20 | + /// <summary> | |
| 21 | + /// 开单ID | |
| 22 | + /// </summary> | |
| 23 | + [SugarColumn(ColumnName = "F_BillingId")] | |
| 24 | + public string BillingId { get; set; } | |
| 25 | + | |
| 26 | + /// <summary> | |
| 27 | + /// 补缴金额 | |
| 28 | + /// </summary> | |
| 29 | + [SugarColumn(ColumnName = "F_PaymentAmount")] | |
| 30 | + public decimal PaymentAmount { get; set; } | |
| 31 | + | |
| 32 | + /// <summary> | |
| 33 | + /// 补缴方式 | |
| 34 | + /// </summary> | |
| 35 | + [SugarColumn(ColumnName = "F_PaymentMethod")] | |
| 36 | + public string PaymentMethod { get; set; } | |
| 37 | + | |
| 38 | + /// <summary> | |
| 39 | + /// 补缴时间 | |
| 40 | + /// </summary> | |
| 41 | + [SugarColumn(ColumnName = "F_PaymentTime")] | |
| 42 | + public DateTime PaymentTime { get; set; } | |
| 43 | + | |
| 44 | + /// <summary> | |
| 45 | + /// 补缴操作人 | |
| 46 | + /// </summary> | |
| 47 | + [SugarColumn(ColumnName = "F_PaymentUser")] | |
| 48 | + public string PaymentUser { get; set; } | |
| 49 | + | |
| 50 | + /// <summary> | |
| 51 | + /// 补缴账户 | |
| 52 | + /// </summary> | |
| 53 | + [SugarColumn(ColumnName = "F_PaymentAccount")] | |
| 54 | + public string PaymentAccount { get; set; } | |
| 55 | + | |
| 56 | + /// <summary> | |
| 57 | + /// 补缴凭证号 | |
| 58 | + /// </summary> | |
| 59 | + [SugarColumn(ColumnName = "F_PaymentReference")] | |
| 60 | + public string PaymentReference { get; set; } | |
| 61 | + | |
| 62 | + /// <summary> | |
| 63 | + /// 补缴备注 | |
| 64 | + /// </summary> | |
| 65 | + [SugarColumn(ColumnName = "F_Remark")] | |
| 66 | + public string Remark { get; set; } | |
| 67 | + | |
| 68 | + /// <summary> | |
| 69 | + /// 创建时间 | |
| 70 | + /// </summary> | |
| 71 | + [SugarColumn(ColumnName = "F_CreateTime")] | |
| 72 | + public DateTime CreateTime { get; set; } | |
| 73 | + | |
| 74 | + /// <summary> | |
| 75 | + /// 更新时间 | |
| 76 | + /// </summary> | |
| 77 | + [SugarColumn(ColumnName = "F_UpdateTime")] | |
| 78 | + public DateTime UpdateTime { get; set; } | |
| 79 | + | |
| 80 | + /// <summary> | |
| 81 | + /// 是否有效 | |
| 82 | + /// </summary> | |
| 83 | + [SugarColumn(ColumnName = "F_IsEffective")] | |
| 84 | + public int IsEffective { get; set; } = 1; | |
| 85 | + } | |
| 86 | +} | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Enum/StatusEnum.cs
| ... | ... | @@ -8,16 +8,16 @@ namespace NCC.Extend.Entitys.Enum |
| 8 | 8 | public enum StatusEnum |
| 9 | 9 | { |
| 10 | 10 | /// <summary> |
| 11 | - /// 有效 | |
| 11 | + /// 无效 | |
| 12 | 12 | /// </summary> |
| 13 | - [Description("有效")] | |
| 14 | - 有效 = 0, | |
| 13 | + [Description("无效")] | |
| 14 | + 无效 = -1, | |
| 15 | 15 | |
| 16 | 16 | /// <summary> |
| 17 | - /// 无效 | |
| 17 | + /// 有效 | |
| 18 | 18 | /// </summary> |
| 19 | - [Description("无效")] | |
| 20 | - 无效 = 1, | |
| 19 | + [Description("有效")] | |
| 20 | + 有效 = 1, | |
| 21 | 21 | |
| 22 | 22 | /// <summary> |
| 23 | 23 | /// 删除 | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs
netcore/src/Modularity/Extend/NCC.Extend/LqJdqdService.cs
| ... | ... | @@ -28,7 +28,7 @@ namespace NCC.Extend.LqJdqd |
| 28 | 28 | /// <summary> |
| 29 | 29 | /// 进店渠道服务 |
| 30 | 30 | /// </summary> |
| 31 | - [ApiDescriptionSettings(Tag = "Extend",Name = "LqJdqd", Order = 200)] | |
| 31 | + [ApiDescriptionSettings(Tag = "Extend", Name = "LqJdqd", Order = 200)] | |
| 32 | 32 | [Route("api/Extend/[controller]")] |
| 33 | 33 | public class LqJdqdService : ILqJdqdService, IDynamicApiController, ITransient |
| 34 | 34 | { |
| ... | ... | @@ -43,7 +43,7 @@ namespace NCC.Extend.LqJdqd |
| 43 | 43 | ISqlSugarRepository<LqJdqdEntity> lqJdqdRepository, |
| 44 | 44 | IUserManager userManager) |
| 45 | 45 | { |
| 46 | - _lqJdqdRepository = lqJdqdRepository; | |
| 46 | + _lqJdqdRepository = lqJdqdRepository; | |
| 47 | 47 | _db = _lqJdqdRepository.Context; |
| 48 | 48 | _userManager = userManager; |
| 49 | 49 | } |
| ... | ... | @@ -73,12 +73,12 @@ namespace NCC.Extend.LqJdqd |
| 73 | 73 | var data = await _db.Queryable<LqJdqdEntity>() |
| 74 | 74 | .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) |
| 75 | 75 | .WhereIF(!string.IsNullOrEmpty(input.qdmc), p => p.Qdmc.Contains(input.qdmc)) |
| 76 | - .Select(it=> new LqJdqdListOutput | |
| 76 | + .Select(it => new LqJdqdListOutput | |
| 77 | 77 | { |
| 78 | 78 | id = it.Id, |
| 79 | - qdmc=it.Qdmc, | |
| 80 | - }).MergeTable().OrderBy(sidx+" "+input.sort).ToPagedListAsync(input.currentPage, input.pageSize); | |
| 81 | - return PageResult<LqJdqdListOutput>.SqlSugarPageResult(data); | |
| 79 | + qdmc = it.Qdmc, | |
| 80 | + }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize); | |
| 81 | + return PageResult<LqJdqdListOutput>.SqlSugarPageResult(data); | |
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | /// <summary> |
| ... | ... | @@ -108,12 +108,12 @@ namespace NCC.Extend.LqJdqd |
| 108 | 108 | var data = await _db.Queryable<LqJdqdEntity>() |
| 109 | 109 | .WhereIF(!string.IsNullOrEmpty(input.id), p => p.Id.Contains(input.id)) |
| 110 | 110 | .WhereIF(!string.IsNullOrEmpty(input.qdmc), p => p.Qdmc.Contains(input.qdmc)) |
| 111 | - .Select(it=> new LqJdqdListOutput | |
| 111 | + .Select(it => new LqJdqdListOutput | |
| 112 | 112 | { |
| 113 | 113 | id = it.Id, |
| 114 | - qdmc=it.Qdmc, | |
| 115 | - }).MergeTable().OrderBy(sidx+" "+input.sort).ToListAsync(); | |
| 116 | - return data; | |
| 114 | + qdmc = it.Qdmc, | |
| 115 | + }).MergeTable().OrderBy(sidx + " " + input.sort).ToListAsync(); | |
| 116 | + return data; | |
| 117 | 117 | } |
| 118 | 118 | |
| 119 | 119 | /// <summary> |
| ... | ... | @@ -135,7 +135,7 @@ namespace NCC.Extend.LqJdqd |
| 135 | 135 | { |
| 136 | 136 | exportData = await this.GetNoPagingList(input); |
| 137 | 137 | } |
| 138 | - List<ParamsModel> paramList = "[{\"value\":\"渠道编号\",\"field\":\"id\"},{\"value\":\"渠道名称\",\"field\":\"qdmc\"},]".ToList<ParamsModel>(); | |
| 138 | + List<ParamsModel> paramList = "[{\"value\":\"渠道编号\",\"field\":\"id\"},{\"value\":\"渠道名称\",\"field\":\"qdmc\"},]".ToList<ParamsModel>(); | |
| 139 | 139 | ExcelConfig excelconfig = new ExcelConfig(); |
| 140 | 140 | excelconfig.FileName = "进店渠道.xls"; |
| 141 | 141 | excelconfig.HeadFont = "微软雅黑"; |
| ... | ... | @@ -178,7 +178,7 @@ namespace NCC.Extend.LqJdqd |
| 178 | 178 | //开启事务 |
| 179 | 179 | _db.BeginTran(); |
| 180 | 180 | //批量删除进店渠道 |
| 181 | - await _db.Deleteable<LqJdqdEntity>().In(d => d.Id,ids).ExecuteCommandAsync(); | |
| 181 | + await _db.Deleteable<LqJdqdEntity>().In(d => d.Id, ids).ExecuteCommandAsync(); | |
| 182 | 182 | //关闭事务 |
| 183 | 183 | _db.CommitTran(); |
| 184 | 184 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
| ... | ... | @@ -136,6 +136,7 @@ namespace NCC.Extend.LqKdKdjlb |
| 136 | 136 | createTime = pxmx.CreateTIme, |
| 137 | 137 | totalPrice = pxmx.TotalPrice, |
| 138 | 138 | actualPrice = pxmx.ActualPrice, |
| 139 | + remark = pxmx.Remark, | |
| 139 | 140 | }; |
| 140 | 141 | |
| 141 | 142 | // 关联该品项的健康师业绩 |
| ... | ... | @@ -258,6 +259,233 @@ namespace NCC.Extend.LqKdKdjlb |
| 258 | 259 | entity.Id = YitIdHelper.NextId().ToString(); |
| 259 | 260 | entity.CreateTime = DateTime.Now; |
| 260 | 261 | entity.UpdateTime = DateTime.Now; |
| 262 | + entity.IsEffective = StatusEnum.有效.GetHashCode(); | |
| 263 | + try | |
| 264 | + { | |
| 265 | + //开启事务 | |
| 266 | + _db.BeginTran(); | |
| 267 | + //判断是否有作废关联id | |
| 268 | + if (!string.IsNullOrEmpty(input.cancelRefId)) | |
| 269 | + { | |
| 270 | + //查询作废关联id | |
| 271 | + var cancelRefEntity = await _db.Queryable<LqKdKdjlbEntity>().FirstAsync(p => p.Id == input.cancelRefId); | |
| 272 | + if (cancelRefEntity == null) | |
| 273 | + { | |
| 274 | + throw NCCException.Oh("作废关联id不存在"); | |
| 275 | + } | |
| 276 | + //将作废关联id的IsEffective设置为0 | |
| 277 | + cancelRefEntity.IsEffective = StatusEnum.无效.GetHashCode(); | |
| 278 | + await _db.Updateable(cancelRefEntity).ExecuteCommandAsync(); | |
| 279 | + //把品项明细表的IsEffective设置为0 | |
| 280 | + await _db.Updateable<LqKdPxmxEntity>().Where(p => p.Glkdbh == input.cancelRefId).UpdateColumns(p => new LqKdPxmxEntity { IsEffective = StatusEnum.无效.GetHashCode() }).ExecuteCommandAsync(); | |
| 281 | + //把健康师业绩表的IsEffective设置为0 | |
| 282 | + await _db.Updateable<LqKdJksyjEntity>().Where(p => p.Glkdbh == input.cancelRefId).UpdateColumns(p => new LqKdJksyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).ExecuteCommandAsync(); | |
| 283 | + //把科技部老师业绩表的IsEffective设置为0 | |
| 284 | + await _db.Updateable<LqKdKjbsyjEntity>().Where(p => p.Glkdbh == input.cancelRefId).UpdateColumns(p => new LqKdKjbsyjEntity { IsEffective = StatusEnum.无效.GetHashCode() }).ExecuteCommandAsync(); | |
| 285 | + //把扣款信息表的IsEffective设置为0 | |
| 286 | + await _db.Updateable<LqKdDeductinfoEntity>().Where(p => p.BillingId == input.cancelRefId).UpdateColumns(p => new LqKdDeductinfoEntity { IsEffective = StatusEnum.无效.GetHashCode() }).ExecuteCommandAsync(); | |
| 287 | + } | |
| 288 | + | |
| 289 | + //新增开单记录表记录 | |
| 290 | + entity.CreateUser = userInfo.userId; | |
| 291 | + entity.DeductAmount = input.lqKdKdjlbDeductList.Sum(x => x.Amount ?? 0);//计算储扣总金额 | |
| 292 | + var newEntity = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteReturnEntityAsync(); | |
| 293 | + //循环品相信息 | |
| 294 | + // 收集所有需要插入的实体,然后批量插入 | |
| 295 | + var allPxmxEntities = new List<LqKdPxmxEntity>(); | |
| 296 | + var allJksyjEntities = new List<LqKdJksyjEntity>(); | |
| 297 | + var allKjbsyjEntities = new List<LqKdKjbsyjEntity>(); | |
| 298 | + var allDeductEntities = new List<LqKdDeductinfoEntity>(); | |
| 299 | + // 处理扣款信息列表 | |
| 300 | + foreach (var item in input.lqKdKdjlbDeductList) | |
| 301 | + { | |
| 302 | + var lqKdDeductEntity = new LqKdDeductinfoEntity | |
| 303 | + { | |
| 304 | + Id = YitIdHelper.NextId().ToString(), | |
| 305 | + BillingId = newEntity.Id, | |
| 306 | + DeductId = item.DeductId, | |
| 307 | + DeductType = item.DeductType, | |
| 308 | + Amount = item.Amount, | |
| 309 | + ProjectNumber = item.ProjectNumber, | |
| 310 | + UnitPrice = item.UnitPrice, | |
| 311 | + ItemName = item.ItemName, | |
| 312 | + ItemId = item.ItemId, | |
| 313 | + IsEffective = StatusEnum.有效.GetHashCode(), // 设置为有效 | |
| 314 | + CreateTime = DateTime.Now, // 设置创建时间 | |
| 315 | + }; | |
| 316 | + allDeductEntities.Add(lqKdDeductEntity); | |
| 317 | + } | |
| 318 | + // 处理品项明细列表 | |
| 319 | + foreach (var item in input.lqKdPxmxList) | |
| 320 | + { | |
| 321 | + // 创建品项明细实体 | |
| 322 | + var lqKdPxmxEntity = new LqKdPxmxEntity | |
| 323 | + { | |
| 324 | + Id = YitIdHelper.NextId().ToString(), | |
| 325 | + Glkdbh = newEntity.Id, | |
| 326 | + Yjsj = input.kdrq, | |
| 327 | + CreateTIme = DateTime.Now, | |
| 328 | + MemberId = entity.Kdhy, | |
| 329 | + IsEnabled = StatusEnum.有效.GetHashCode(), | |
| 330 | + ProjectNumber = item.projectNumber, | |
| 331 | + TotalPrice = (decimal)(item.pxjg * item.projectNumber), | |
| 332 | + Px = item.px, | |
| 333 | + Pxmc = item.pxmc, | |
| 334 | + Pxjg = item.pxjg, | |
| 335 | + SourceType = item.sourceType, | |
| 336 | + ActualPrice = item.actualPrice, | |
| 337 | + Remark = item.remark, | |
| 338 | + IsEffective = StatusEnum.有效.GetHashCode(), | |
| 339 | + }; | |
| 340 | + allPxmxEntities.Add(lqKdPxmxEntity); | |
| 341 | + | |
| 342 | + // 收集该品项关联的健康师业绩 | |
| 343 | + if (item.lqKdJksyjList != null && item.lqKdJksyjList.Any()) | |
| 344 | + { | |
| 345 | + //把jksxm保存到HealthInstructorNames | |
| 346 | + foreach (var ijks_tem in item.lqKdJksyjList) | |
| 347 | + { | |
| 348 | + HealthInstructorNames += ijks_tem.jksxm + ","; | |
| 349 | + allJksyjEntities.Add(new LqKdJksyjEntity | |
| 350 | + { | |
| 351 | + Id = YitIdHelper.NextId().ToString(), | |
| 352 | + Glkdbh = newEntity.Id, | |
| 353 | + Jks = ijks_tem.jks, | |
| 354 | + Jksxm = ijks_tem.jksxm, | |
| 355 | + Jkszh = ijks_tem.jkszh, | |
| 356 | + Jksyj = ijks_tem.jksyj, | |
| 357 | + Yjsj = input.kdrq, | |
| 358 | + Jsj_id = ijks_tem.jsj_id, | |
| 359 | + Kdpxid = lqKdPxmxEntity.Id, | |
| 360 | + IsEffective = StatusEnum.有效.GetHashCode(), | |
| 361 | + }); | |
| 362 | + } | |
| 363 | + } | |
| 364 | + | |
| 365 | + // 收集该品项关联的科技部老师业绩 | |
| 366 | + if (item.lqKdKjbsyjList != null && item.lqKdKjbsyjList.Any()) | |
| 367 | + { | |
| 368 | + foreach (var ikjbs_tem in item.lqKdKjbsyjList) | |
| 369 | + { | |
| 370 | + allKjbsyjEntities.Add( | |
| 371 | + new LqKdKjbsyjEntity | |
| 372 | + { | |
| 373 | + Id = YitIdHelper.NextId().ToString(), | |
| 374 | + Glkdbh = newEntity.Id, | |
| 375 | + Kjbls = ikjbs_tem.kjbls, | |
| 376 | + Kjblsxm = ikjbs_tem.kjblsxm, | |
| 377 | + Kjblszh = ikjbs_tem.kjblszh, | |
| 378 | + Kjblsyj = ikjbs_tem.kjblsyj, | |
| 379 | + Yjsj = input.kdrq, | |
| 380 | + Kdpxid = lqKdPxmxEntity.Id, | |
| 381 | + IsEffective = StatusEnum.有效.GetHashCode(), | |
| 382 | + } | |
| 383 | + ); | |
| 384 | + } | |
| 385 | + } | |
| 386 | + } | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + //通过会员id查询会员信息 | |
| 391 | + var memberInfo = await _db.Queryable<LqKhxxEntity>().Where(u => u.Id == entity.Kdhy).FirstAsync(); | |
| 392 | + //通过开单记录表查询这个会员开单金额 | |
| 393 | + var kdAmount = await _db.Queryable<LqKdKdjlbEntity>().Where(u => u.Kdhy == entity.Kdhy).SumAsync(u => u.Sfyj); | |
| 394 | + //如果开单金额小于500,为散客,如果大于500,为会员 | |
| 395 | + if (kdAmount < 500) | |
| 396 | + { | |
| 397 | + memberInfo.Khlx = MemberTypeEnum.散客.GetHashCode().ToString(); | |
| 398 | + } | |
| 399 | + else | |
| 400 | + { | |
| 401 | + memberInfo.Khlx = MemberTypeEnum.会员.GetHashCode().ToString(); | |
| 402 | + } | |
| 403 | + await _db.Updateable(memberInfo).ExecuteCommandAsync(); | |
| 404 | + // 批量插入扣款信息 | |
| 405 | + if (allDeductEntities.Any()) | |
| 406 | + { | |
| 407 | + await _db.Insertable(allDeductEntities).ExecuteCommandAsync(); | |
| 408 | + } | |
| 409 | + // 批量插入品项明细 | |
| 410 | + if (allPxmxEntities.Any()) | |
| 411 | + { | |
| 412 | + await _db.Insertable(allPxmxEntities).ExecuteCommandAsync(); | |
| 413 | + } | |
| 414 | + // 批量插入健康师业绩 | |
| 415 | + if (allJksyjEntities.Any()) | |
| 416 | + { | |
| 417 | + await _db.Insertable(allJksyjEntities).ExecuteCommandAsync(); | |
| 418 | + } | |
| 419 | + // 批量插入科技部老师业绩 | |
| 420 | + if (allKjbsyjEntities.Any()) | |
| 421 | + { | |
| 422 | + await _db.Insertable(allKjbsyjEntities).ExecuteCommandAsync(); | |
| 423 | + } | |
| 424 | + | |
| 425 | + //关闭事务 | |
| 426 | + _db.CommitTran(); | |
| 427 | + | |
| 428 | + // 生成开单记录字符串并发送到企业微信 | |
| 429 | + try | |
| 430 | + { | |
| 431 | + var entityInfo = await GetInfo(newEntity.Id); | |
| 432 | + if (entityInfo != null) | |
| 433 | + { | |
| 434 | + var orderRecordString = _stringGenerator.GenerateOrderRecordString(entityInfo, HealthInstructorNames); | |
| 435 | + Console.WriteLine("开单记录字符串生成成功:"); | |
| 436 | + Console.WriteLine(orderRecordString); | |
| 437 | + | |
| 438 | + // 发送到企业微信群 | |
| 439 | + try | |
| 440 | + { | |
| 441 | + var sendResult = await _weChatBotService.SendOrderRecordMessage(orderRecordString); | |
| 442 | + if (sendResult) | |
| 443 | + { | |
| 444 | + Console.WriteLine("开单记录已成功发送到企业微信群"); | |
| 445 | + } | |
| 446 | + else | |
| 447 | + { | |
| 448 | + Console.WriteLine("开单记录发送到企业微信群失败"); | |
| 449 | + } | |
| 450 | + } | |
| 451 | + catch (Exception wechatEx) | |
| 452 | + { | |
| 453 | + Console.WriteLine($"发送企业微信消息异常: {wechatEx.Message}"); | |
| 454 | + } | |
| 455 | + } | |
| 456 | + } | |
| 457 | + catch (Exception ex) | |
| 458 | + { | |
| 459 | + // 字符串生成失败不影响主流程,只记录日志 | |
| 460 | + Console.WriteLine($"生成开单记录字符串失败: {ex.Message}"); | |
| 461 | + } | |
| 462 | + } | |
| 463 | + catch (Exception ex) | |
| 464 | + { | |
| 465 | + //回滚事务 | |
| 466 | + _db.RollbackTran(); | |
| 467 | + Console.WriteLine($"开单创建失败: {ex.Message}"); | |
| 468 | + Console.WriteLine($"异常堆栈: {ex.StackTrace}"); | |
| 469 | + throw NCCException.Oh(ErrorCode.COM1000); | |
| 470 | + } | |
| 471 | + } | |
| 472 | + #endregion | |
| 473 | + | |
| 474 | + #region 新建开单记录表_备份 | |
| 475 | + /// <summary> | |
| 476 | + /// 新建开单记录表_备份 | |
| 477 | + /// </summary> | |
| 478 | + /// <param name="input">参数</param> | |
| 479 | + /// <returns></returns> | |
| 480 | + [HttpPost("Create_Bak")] | |
| 481 | + public async Task Create_Bak([FromBody] LqKdKdjlbCrInput input) | |
| 482 | + { | |
| 483 | + var userInfo = await _userManager.GetUserInfo(); | |
| 484 | + var entity = input.Adapt<LqKdKdjlbEntity>(); | |
| 485 | + var HealthInstructorNames = ""; | |
| 486 | + entity.Id = YitIdHelper.NextId().ToString(); | |
| 487 | + entity.CreateTime = DateTime.Now; | |
| 488 | + entity.UpdateTime = DateTime.Now; | |
| 261 | 489 | try |
| 262 | 490 | { |
| 263 | 491 | //开启事务 |
| ... | ... | @@ -1065,10 +1293,12 @@ namespace NCC.Extend.LqKdKdjlb |
| 1065 | 1293 | await _db.Updateable<LqKdJksyjEntity>().SetColumns(it => new LqKdJksyjEntity { IsEffective = 0 }).Where(it => it.Glkdbh == id).ExecuteCommandAsync(); |
| 1066 | 1294 | // 标记科技部老师业绩为无效 |
| 1067 | 1295 | await _db.Updateable<LqKdKjbsyjEntity>().SetColumns(it => new LqKdKjbsyjEntity { IsEffective = 0 }).Where(it => it.Glkdbh == id).ExecuteCommandAsync(); |
| 1296 | + // 标记开单_储扣详细表为无效 | |
| 1297 | + await _db.Updateable<LqKdDeductinfoEntity>().SetColumns(it => new LqKdDeductinfoEntity { IsEffective = 0 }).Where(it => it.BillingId == id).ExecuteCommandAsync(); | |
| 1068 | 1298 | //关闭事务 |
| 1069 | 1299 | _db.CommitTran(); |
| 1070 | 1300 | } |
| 1071 | - catch (Exception ex) when (!(ex is NCCException)) | |
| 1301 | + catch (Exception) | |
| 1072 | 1302 | { |
| 1073 | 1303 | //回滚事务 |
| 1074 | 1304 | _db.RollbackTran(); |
| ... | ... | @@ -1141,65 +1371,94 @@ namespace NCC.Extend.LqKdKdjlb |
| 1141 | 1371 | int errorCount = 0; |
| 1142 | 1372 | var errorMessages = new List<string>(); |
| 1143 | 1373 | |
| 1144 | - // 2. 逐条处理历史会员权益数据 | |
| 1145 | - foreach (var item in historyData) | |
| 1374 | + // 2. 批量处理数据,每批1000条 | |
| 1375 | + const int batchSize = 1000; | |
| 1376 | + var totalBatches = (int)Math.Ceiling((double)historyData.Count / batchSize); | |
| 1377 | + | |
| 1378 | + for (int batchIndex = 0; batchIndex < totalBatches; batchIndex++) | |
| 1146 | 1379 | { |
| 1147 | - try | |
| 1148 | - { | |
| 1149 | - // 3. 生成开单记录ID | |
| 1150 | - string kdjlbId = YitIdHelper.NextId().ToString(); | |
| 1380 | + var batchData = historyData.Skip(batchIndex * batchSize).Take(batchSize).ToList(); | |
| 1151 | 1381 | |
| 1152 | - // 4. 创建开单记录 | |
| 1153 | - var kdjlbEntity = new LqKdKdjlbEntity | |
| 1382 | + var kdjlbEntities = new List<LqKdKdjlbEntity>(); | |
| 1383 | + var pxmxEntities = new List<LqKdPxmxEntity>(); | |
| 1384 | + | |
| 1385 | + foreach (var item in batchData) | |
| 1386 | + { | |
| 1387 | + try | |
| 1154 | 1388 | { |
| 1155 | - Id = kdjlbId, | |
| 1156 | - Djmd = item.F_StoreId, // 直接使用F_StoreId | |
| 1157 | - Kdhy = item.F_MemberId, | |
| 1158 | - Kdhyc = item.会员名称, | |
| 1159 | - Jsj = "暂无", | |
| 1160 | - Kdhysjh = item.会员电话, | |
| 1161 | - Kdrq = fixedDateTime, | |
| 1162 | - Zdyj = Convert.ToDecimal(item.整单业绩 ?? 0), | |
| 1163 | - Sfyj = Convert.ToDecimal(item.实付业绩 ?? 0), | |
| 1164 | - Qk = Convert.ToDecimal(item.欠款 ?? 0), | |
| 1165 | - CreateTime = fixedDateTime, | |
| 1166 | - UpdateTime = fixedDateTime, | |
| 1167 | - Sfskdd = "否", | |
| 1168 | - IsEffective = 1, | |
| 1169 | - Bz = "导入历史会员权益数据" | |
| 1170 | - }; | |
| 1389 | + // 3. 生成开单记录ID | |
| 1390 | + string kdjlbId = YitIdHelper.NextId().ToString(); | |
| 1391 | + | |
| 1392 | + // 4. 创建开单记录 | |
| 1393 | + var kdjlbEntity = new LqKdKdjlbEntity | |
| 1394 | + { | |
| 1395 | + Id = kdjlbId, | |
| 1396 | + Djmd = (string)item.F_StoreId, // 直接使用F_StoreId | |
| 1397 | + Kdhy = (string)item.F_MemberId, | |
| 1398 | + Kdhyc = (string)item.会员名称, | |
| 1399 | + Jsj = "暂无", | |
| 1400 | + Kdhysjh = (string)item.会员电话, | |
| 1401 | + Kdrq = fixedDateTime, | |
| 1402 | + Zdyj = Convert.ToDecimal(item.整单业绩 ?? 0), | |
| 1403 | + Sfyj = Convert.ToDecimal(item.实付业绩 ?? 0), | |
| 1404 | + Qk = Convert.ToDecimal(item.欠款 ?? 0), | |
| 1405 | + CreateTime = fixedDateTime, | |
| 1406 | + UpdateTime = fixedDateTime, | |
| 1407 | + Sfskdd = "否", | |
| 1408 | + IsEffective = 1, | |
| 1409 | + Bz = "导入历史会员权益数据" | |
| 1410 | + }; | |
| 1171 | 1411 | |
| 1172 | - await _db.Insertable(kdjlbEntity).ExecuteCommandAsync(); | |
| 1412 | + kdjlbEntities.Add(kdjlbEntity); | |
| 1173 | 1413 | |
| 1174 | - // 5. 创建品项明细 | |
| 1175 | - string pxmxId = YitIdHelper.NextId().ToString(); | |
| 1414 | + // 5. 创建品项明细 | |
| 1415 | + string pxmxId = YitIdHelper.NextId().ToString(); | |
| 1176 | 1416 | |
| 1177 | - var pxmxEntity = new LqKdPxmxEntity | |
| 1417 | + var pxmxEntity = new LqKdPxmxEntity | |
| 1418 | + { | |
| 1419 | + Id = pxmxId, | |
| 1420 | + Glkdbh = kdjlbId, | |
| 1421 | + Px = (string)item.F_ProjectId, | |
| 1422 | + Pxmc = (string)item.品项名称, | |
| 1423 | + Pxjg = Convert.ToDecimal(item.品项价格 ?? 0) / Convert.ToDecimal(item.品项次数 ?? 0), | |
| 1424 | + ProjectNumber = Convert.ToDecimal(item.品项次数 ?? 0), | |
| 1425 | + SourceType = (string)item.来源, | |
| 1426 | + MemberId = (string)item.F_MemberId, | |
| 1427 | + Yjsj = fixedDateTime, | |
| 1428 | + CreateTIme = fixedDateTime, | |
| 1429 | + IsEffective = 1, | |
| 1430 | + IsEnabled = 0, | |
| 1431 | + TotalPrice = Convert.ToDecimal(item.品项价格 ?? 0), | |
| 1432 | + ActualPrice = Convert.ToDecimal(item.品项价格 ?? 0) | |
| 1433 | + }; | |
| 1434 | + | |
| 1435 | + pxmxEntities.Add(pxmxEntity); | |
| 1436 | + | |
| 1437 | + successCount++; | |
| 1438 | + } | |
| 1439 | + catch (Exception ex) | |
| 1178 | 1440 | { |
| 1179 | - Id = pxmxId, | |
| 1180 | - Glkdbh = kdjlbId, | |
| 1181 | - Px = item.F_ProjectId, | |
| 1182 | - Pxmc = item.品项名称, | |
| 1183 | - Pxjg = Convert.ToDecimal(item.品项价格 ?? 0), | |
| 1184 | - ProjectNumber = Convert.ToDecimal(item.品项次数 ?? 0), | |
| 1185 | - SourceType = item.来源, | |
| 1186 | - MemberId = item.F_MemberId, | |
| 1187 | - Yjsj = fixedDateTime, | |
| 1188 | - CreateTIme = fixedDateTime, | |
| 1189 | - IsEffective = 1, | |
| 1190 | - IsEnabled = 0, | |
| 1191 | - TotalPrice = Convert.ToDecimal(item.品项价格 ?? 0) * Convert.ToDecimal(item.品项次数 ?? 0), | |
| 1192 | - ActualPrice = Convert.ToDecimal(item.品项价格 ?? 0) * Convert.ToDecimal(item.品项次数 ?? 0) | |
| 1193 | - }; | |
| 1441 | + errorCount++; | |
| 1442 | + errorMessages.Add($"处理记录 {(string)item.会员编号}-{(string)item.品项名称} 时出错: {ex.Message}"); | |
| 1443 | + } | |
| 1444 | + } | |
| 1194 | 1445 | |
| 1195 | - await _db.Insertable(pxmxEntity).ExecuteCommandAsync(); | |
| 1446 | + // 6. 批量插入开单记录 | |
| 1447 | + if (kdjlbEntities.Any()) | |
| 1448 | + { | |
| 1449 | + await _db.Insertable(kdjlbEntities).ExecuteCommandAsync(); | |
| 1450 | + } | |
| 1196 | 1451 | |
| 1197 | - successCount++; | |
| 1452 | + // 7. 批量插入品项明细 | |
| 1453 | + if (pxmxEntities.Any()) | |
| 1454 | + { | |
| 1455 | + await _db.Insertable(pxmxEntities).ExecuteCommandAsync(); | |
| 1198 | 1456 | } |
| 1199 | - catch (Exception ex) | |
| 1457 | + | |
| 1458 | + // 8. 显示进度 | |
| 1459 | + if (batchIndex % 10 == 0) | |
| 1200 | 1460 | { |
| 1201 | - errorCount++; | |
| 1202 | - errorMessages.Add($"处理记录 {item.会员编号}-{item.品项名称} 时出错: {ex.Message}"); | |
| 1461 | + Console.WriteLine($"已处理 {batchIndex + 1}/{totalBatches} 批次,成功 {successCount} 条,失败 {errorCount} 条"); | |
| 1203 | 1462 | } |
| 1204 | 1463 | } |
| 1205 | 1464 | |
| ... | ... | @@ -1216,13 +1475,12 @@ namespace NCC.Extend.LqKdKdjlb |
| 1216 | 1475 | importTime = DateTime.Now |
| 1217 | 1476 | }; |
| 1218 | 1477 | } |
| 1219 | - catch (Exception ex) when (!(ex is NCCException)) | |
| 1478 | + catch (Exception ex) | |
| 1220 | 1479 | { |
| 1221 | 1480 | _db.RollbackTran(); |
| 1222 | 1481 | throw NCCException.Oh($"导入历史会员权益数据失败: {ex.Message}"); |
| 1223 | 1482 | } |
| 1224 | 1483 | } |
| 1225 | 1484 | #endregion |
| 1226 | - | |
| 1227 | 1485 | } |
| 1228 | 1486 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqKhxxService.cs
| ... | ... | @@ -34,6 +34,7 @@ using NCC.FriendlyException; |
| 34 | 34 | using NCC.JsonSerialization; |
| 35 | 35 | using SqlSugar; |
| 36 | 36 | using Yitter.IdGenerator; |
| 37 | +using NCC.Extend.Entitys.lq_kd_deductinfo; | |
| 37 | 38 | |
| 38 | 39 | namespace NCC.Extend.LqKhxx |
| 39 | 40 | { |
| ... | ... | @@ -578,6 +579,17 @@ namespace NCC.Extend.LqKhxx |
| 578 | 579 | }) |
| 579 | 580 | .ToListAsync(); |
| 580 | 581 | |
| 582 | + //查询储扣数据 | |
| 583 | + var deductData = await _db.Queryable<LqKdDeductinfoEntity>() | |
| 584 | + .Where(x => baseItems.Select(b => b.Id).Contains(x.DeductId)) | |
| 585 | + .GroupBy(x => x.DeductId) | |
| 586 | + .Select(x => new | |
| 587 | + { | |
| 588 | + BillingItemId = x.DeductId, | |
| 589 | + TotalDeduct = SqlFunc.AggregateSum(x.Amount) | |
| 590 | + }) | |
| 591 | + .ToListAsync(); | |
| 592 | + | |
| 581 | 593 | // 组装结果 |
| 582 | 594 | var remainingItems = baseItems.Select(item => new RemainingItemInfo |
| 583 | 595 | { |
| ... | ... | @@ -589,12 +601,13 @@ namespace NCC.Extend.LqKhxx |
| 589 | 601 | TotalPurchased = item.ProjectNumber, |
| 590 | 602 | ConsumedCount = consumedData.FirstOrDefault(c => c.BillingItemId == item.Id)?.TotalConsumed ?? 0, |
| 591 | 603 | RefundedCount = refundedData.FirstOrDefault(r => r.BillingItemId == item.Id)?.TotalRefunded ?? 0, |
| 604 | + DeductCount = deductData.FirstOrDefault(d => d.BillingItemId == item.Id)?.TotalDeduct ?? 0, | |
| 592 | 605 | }).ToList(); |
| 593 | 606 | |
| 594 | 607 | // 计算剩余数量 |
| 595 | 608 | foreach (var item in remainingItems) |
| 596 | 609 | { |
| 597 | - item.RemainingCount = item.TotalPurchased - item.ConsumedCount - item.RefundedCount; | |
| 610 | + item.RemainingCount = item.TotalPurchased - item.ConsumedCount - item.RefundedCount - item.DeductCount; | |
| 598 | 611 | } |
| 599 | 612 | return new MemberRemainingItemsOutput |
| 600 | 613 | { |
| ... | ... | @@ -719,7 +732,7 @@ namespace NCC.Extend.LqKhxx |
| 719 | 732 | Lxdz = "", // 联系地址 |
| 720 | 733 | Bz = "历史潜客导入", |
| 721 | 734 | CreateTime = DateTime.Now, |
| 722 | - ExpandUser = (string)item.拓客员工, // 拓客人员 | |
| 735 | + ExpandUser = (string)item.F_UserId, // 拓客人员 | |
| 723 | 736 | MainHealthUser = null, |
| 724 | 737 | SubHealthUser = null |
| 725 | 738 | }; | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs
| ... | ... | @@ -1464,7 +1464,7 @@ namespace NCC.Extend.LqStatistics |
| 1464 | 1464 | SUM(CAST(jksyj.jksyj AS DECIMAL(18,2))) as order_performance |
| 1465 | 1465 | FROM lq_kd_jksyj jksyj |
| 1466 | 1466 | INNER JOIN lq_kd_pxmx pxmx ON jksyj.F_kdpxid = pxmx.F_Id AND pxmx.F_IsEffective = 1 |
| 1467 | - INNER JOIN lq_kd_kdjlb kd ON jksyj.glkdbh = kd.F_Id | |
| 1467 | + INNER JOIN lq_kd_kdjlb kd ON jksyj.glkdbh COLLATE utf8mb4_general_ci = kd.F_Id COLLATE utf8mb4_general_ci | |
| 1468 | 1468 | WHERE jksyj.yjsj IS NOT NULL |
| 1469 | 1469 | AND jksyj.jksyj IS NOT NULL |
| 1470 | 1470 | AND jksyj.jksyj != '' |
| ... | ... | @@ -2529,7 +2529,7 @@ namespace NCC.Extend.LqStatistics |
| 2529 | 2529 | SUM(CASE WHEN kd.sfskdd = '是' THEN COALESCE(kd.zdyj, 0) ELSE 0 END) as F_FirstOrderPerformance, |
| 2530 | 2530 | SUM(CASE WHEN kd.sfskdd = '否' THEN COALESCE(kd.zdyj, 0) ELSE 0 END) as F_UpgradeOrderPerformance |
| 2531 | 2531 | FROM lq_kd_kdjlb kd |
| 2532 | - LEFT JOIN lq_mdxx md ON kd.djmd = md.F_Id | |
| 2532 | + LEFT JOIN lq_mdxx md ON kd.djmd COLLATE utf8mb4_general_ci = md.F_Id COLLATE utf8mb4_general_ci | |
| 2533 | 2533 | WHERE kd.F_IsEffective = 1 |
| 2534 | 2534 | AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth |
| 2535 | 2535 | GROUP BY kd.djmd, md.dm |
| ... | ... | @@ -2539,7 +2539,7 @@ namespace NCC.Extend.LqStatistics |
| 2539 | 2539 | kd.djmd as F_StoreId, |
| 2540 | 2540 | COUNT(pxmx.F_ProjectNumber) as F_ItemQuantity |
| 2541 | 2541 | FROM lq_kd_kdjlb kd |
| 2542 | - LEFT JOIN lq_kd_pxmx pxmx ON kd.F_Id = pxmx.glkdbh AND pxmx.F_IsEffective = 1 | |
| 2542 | + LEFT JOIN lq_kd_pxmx pxmx ON kd.F_Id COLLATE utf8mb4_general_ci = pxmx.glkdbh COLLATE utf8mb4_general_ci AND pxmx.F_IsEffective = 1 | |
| 2543 | 2543 | WHERE kd.F_IsEffective = 1 |
| 2544 | 2544 | AND DATE_FORMAT(kd.kdrq, '%Y%m') = @statisticsMonth |
| 2545 | 2545 | GROUP BY kd.djmd |
| ... | ... | @@ -2924,7 +2924,7 @@ namespace NCC.Extend.LqStatistics |
| 2924 | 2924 | var personalPerformanceSql = @" |
| 2925 | 2925 | UPDATE lq_salary_statistics s |
| 2926 | 2926 | INNER JOIN lq_statistics_personal_performance p |
| 2927 | - ON s.F_EmployeeId COLLATE utf8mb4_unicode_ci = p.F_EmployeeId COLLATE utf8mb4_unicode_ci | |
| 2927 | + ON s.F_EmployeeId COLLATE utf8mb4_general_ci = p.F_EmployeeId COLLATE utf8mb4_general_ci | |
| 2928 | 2928 | AND s.F_StatisticsMonth = p.F_StatisticsMonth |
| 2929 | 2929 | SET |
| 2930 | 2930 | s.F_TotalPerformance = p.F_TotalPerformance, |
| ... | ... | @@ -2944,7 +2944,7 @@ namespace NCC.Extend.LqStatistics |
| 2944 | 2944 | var storePerformanceSql = @" |
| 2945 | 2945 | UPDATE lq_salary_statistics s |
| 2946 | 2946 | INNER JOIN lq_statistics_store_total_performance st |
| 2947 | - ON s.F_StoreId COLLATE utf8mb4_unicode_ci = st.F_StoreId COLLATE utf8mb4_unicode_ci | |
| 2947 | + ON s.F_StoreId COLLATE utf8mb4_general_ci = st.F_StoreId COLLATE utf8mb4_general_ci | |
| 2948 | 2948 | AND s.F_StatisticsMonth = st.F_StatisticsMonth |
| 2949 | 2949 | SET |
| 2950 | 2950 | s.F_StoreTotalPerformance = st.F_TotalOrderPerformance |
| ... | ... | @@ -2960,7 +2960,7 @@ namespace NCC.Extend.LqStatistics |
| 2960 | 2960 | var teamPerformanceSql = @" |
| 2961 | 2961 | UPDATE lq_salary_statistics s |
| 2962 | 2962 | INNER JOIN lq_statistics_gold_triangle gt |
| 2963 | - ON s.F_GoldTriangleId COLLATE utf8mb4_unicode_ci = gt.F_GoldTriangleId COLLATE utf8mb4_unicode_ci | |
| 2963 | + ON s.F_GoldTriangleId COLLATE utf8mb4_general_ci = gt.F_GoldTriangleId COLLATE utf8mb4_general_ci | |
| 2964 | 2964 | AND s.F_StatisticsMonth = gt.F_StatisticsMonth |
| 2965 | 2965 | SET |
| 2966 | 2966 | s.F_TeamPerformance = gt.F_TotalPerformance | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqTkjlbService.cs
| ... | ... | @@ -190,10 +190,7 @@ namespace NCC.Extend.LqTkjlb |
| 190 | 190 | //找到input.expansionUserId的用户信息 |
| 191 | 191 | var userInfo = await _db.Queryable<UserEntity>().Where(u => u.Id == input.expansionUserId).FirstAsync(); |
| 192 | 192 | //判断 岗位是否为健康师,如果是健康师,则设置拓客人员是健康师 |
| 193 | - if (userInfo.Gw == "健康师") | |
| 194 | - { | |
| 195 | - MemberInfo.ExpandUser = input.expansionUserId; | |
| 196 | - } | |
| 193 | + MemberInfo.ExpandUser = input.expansionUserId; | |
| 197 | 194 | MemberInfo.Gsmd = eventUserInfo.StoreId; |
| 198 | 195 | var memberResult = await _db.Insertable(MemberInfo).IgnoreColumns(ignoreNullColumn: true).ExecuteCommandAsync(); |
| 199 | 196 | if (!(memberResult > 0)) | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqYcsdJsjService.cs
| ... | ... | @@ -237,7 +237,7 @@ namespace NCC.Extend.LqYcsdJsj |
| 237 | 237 | var month = input.DateTime.ToString("yyyyMM"); |
| 238 | 238 | |
| 239 | 239 | // 先查询用户的金三角关联信息 |
| 240 | - var jsjUser = await _db.Queryable<NCC.Extend.Entitys.lq_jinsanjiao_user.LqJinsanjiaoUserEntity>().Where(x => x.UserId == input.UserId && x.DeleteMark == 0).FirstAsync(); | |
| 240 | + var jsjUser = await _db.Queryable<LqJinsanjiaoUserEntity>().Where(x => x.UserId == input.UserId && x.DeleteMark == 0 && x.Month == month).FirstAsync(); | |
| 241 | 241 | |
| 242 | 242 | if (jsjUser == null) |
| 243 | 243 | { | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/Utils/LqKdKdjlbStringGenerator.cs
| ... | ... | @@ -51,29 +51,21 @@ namespace NCC.Extend.Utils |
| 51 | 51 | |
| 52 | 52 | // 活动方案:532工程 |
| 53 | 53 | sb.AppendLine($"⏩活动方案:{entity.pxxx ?? "无"}"); |
| 54 | - | |
| 55 | 54 | // 跟单配合:王经理 竹主任 陈思思老师 |
| 56 | 55 | var techTeachers = GetTechTeachers(entity.lqKdKjbsyjList); |
| 57 | 56 | sb.AppendLine($"⏩跟单配合:{techTeachers}"); |
| 58 | - | |
| 59 | 57 | // 业绩:4800 |
| 60 | 58 | sb.AppendLine($"⏩业绩:{entity.zdyj}"); |
| 61 | - | |
| 62 | 59 | // 实付:4800 |
| 63 | 60 | sb.AppendLine($"⏩实付:{entity.sfyj}"); |
| 64 | - | |
| 65 | 61 | // 欠款: |
| 66 | 62 | sb.AppendLine($"⏩欠款: {entity.qk}"); |
| 67 | - | |
| 68 | 63 | // 抵扣: |
| 69 | - sb.AppendLine($"⏩抵扣:{entity.ckmx ?? "无"}"); | |
| 70 | - | |
| 64 | + sb.AppendLine($"⏩抵扣:{entity.deductAmount}"); | |
| 71 | 65 | // 来源:售后 |
| 72 | 66 | sb.AppendLine($"⏩来源:{entity.khly ?? "无"}"); |
| 73 | - | |
| 74 | 67 | // 是否属于升单: |
| 75 | 68 | sb.AppendLine($"⏩是否属于升单:{entity.sfskdd ?? "无"}"); |
| 76 | - | |
| 77 | 69 | // 简介:高姐是我们的老客,今天邀约到犀浦店做532,维维全程陪同,陈思思老师在操作过程中给姐姐分享企业文化,找到顾客需求、邀请王经理 竹主任 给到顾客福利、顾客爽快成交,私密档案已了解到70%,感谢顾客的信任与支持 ,王经理 竹主任 陈老师辛苦了[玫瑰]维维真棒[强]龙城国际店加油!我们还在努力中!家人们给我们打气加油👏👏👏👏等待我们的捷报👍👍 |
| 78 | 70 | sb.AppendLine($"⏩简介:{entity.jj ?? "无"}"); |
| 79 | 71 | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/Utils/WeChatBotTestController.cs
修复排序规则冲突_精简版.sql
0 → 100644
| 1 | +-- 修复排序规则冲突 - 精简版 | |
| 2 | +-- 只更新报错的相关表 | |
| 3 | + | |
| 4 | +-- 1. 统一 BASE_USER 表的所有字段排序规则 | |
| 5 | +ALTER TABLE BASE_USER CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 6 | + | |
| 7 | +-- 2. 统一 lq_mdxx 表的所有字段排序规则 | |
| 8 | +ALTER TABLE lq_mdxx CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 9 | + | |
| 10 | +-- 3. 统一 lq_zjl_mdsmxsz 表的所有字段排序规则 | |
| 11 | +ALTER TABLE lq_zjl_mdsmxsz CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 12 | + | |
| 13 | +-- 4. 统一 lq_ycsd_jsj 表的所有字段排序规则 | |
| 14 | +ALTER TABLE lq_ycsd_jsj CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 15 | + | |
| 16 | +-- 5. 统一 lq_kd_jksyj 表的所有字段排序规则 | |
| 17 | +ALTER TABLE lq_kd_jksyj CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 18 | + | |
| 19 | +-- 6. 统一 lq_statistics_gold_triangle 表的所有字段排序规则 | |
| 20 | +ALTER TABLE lq_statistics_gold_triangle CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 21 | + | |
| 22 | +-- 7. 统一 lq_jinsanjiao_user 表的所有字段排序规则 | |
| 23 | +ALTER TABLE lq_jinsanjiao_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 24 | + | |
| 25 | +-- 8. 统一 lq_salary_statistics 表的所有字段排序规则 | |
| 26 | +ALTER TABLE lq_salary_statistics CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 27 | + | |
| 28 | +-- 9. 统一 lq_kd_pxmx 表的所有字段排序规则 | |
| 29 | +ALTER TABLE lq_kd_pxmx CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 30 | + | |
| 31 | +-- 10. 跳过 lq_kd_kdjlb 表(表太大,无法转换) | |
| 32 | +-- ALTER TABLE lq_kd_kdjlb CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 33 | + | |
| 34 | +-- 11. 统一 lq_xmzl 表的所有字段排序规则 | |
| 35 | +ALTER TABLE lq_xmzl CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 36 | + | |
| 37 | +-- 12. 统一 lq_statistics_personal_performance 表的所有字段排序规则 | |
| 38 | +ALTER TABLE lq_statistics_personal_performance CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 39 | + | |
| 40 | +-- 13. 统一 lq_statistics_store_total_performance 表的所有字段排序规则 | |
| 41 | +ALTER TABLE lq_statistics_store_total_performance CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
| 42 | + | |
| 43 | +-- 验证排序规则是否统一 | |
| 44 | +SELECT | |
| 45 | + TABLE_NAME, | |
| 46 | + TABLE_COLLATION | |
| 47 | +FROM INFORMATION_SCHEMA.TABLES | |
| 48 | +WHERE TABLE_SCHEMA = DATABASE() | |
| 49 | + AND TABLE_NAME IN ('BASE_USER', 'lq_mdxx', 'lq_zjl_mdsmxsz', 'lq_ycsd_jsj', 'lq_kd_jksyj', 'lq_statistics_gold_triangle', 'lq_jinsanjiao_user', 'lq_salary_statistics', 'lq_kd_pxmx', 'lq_xmzl', 'lq_statistics_personal_performance', 'lq_statistics_store_total_performance') | |
| 50 | +ORDER BY TABLE_NAME; | ... | ... |