Commit 0c113c08b3d4fe2c31ce51d26574541503dafb3d
1 parent
4d585887
refactor: 优化健康师工资计算服务
- 更新健康师工资输出DTO字段 - 优化工资计算服务逻辑 - 完善工资额外计算服务功能
Showing
3 changed files
with
57 additions
and
8 deletions
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqSalary/HealthCoachSalaryOutput.cs
| ... | ... | @@ -151,5 +151,35 @@ namespace NCC.Extend.Entitys.Dto.LqSalary |
| 151 | 151 | /// 升单业绩提成 |
| 152 | 152 | /// </summary> |
| 153 | 153 | public decimal UpgradeCommission { get; set; } |
| 154 | + | |
| 155 | + /// <summary> | |
| 156 | + /// 新客业绩 | |
| 157 | + /// </summary> | |
| 158 | + public decimal NewCustomerPerformance { get; set; } | |
| 159 | + | |
| 160 | + /// <summary> | |
| 161 | + /// 新客转化率 | |
| 162 | + /// </summary> | |
| 163 | + public decimal NewCustomerConversionRate { get; set; } | |
| 164 | + | |
| 165 | + /// <summary> | |
| 166 | + /// 新客提点 | |
| 167 | + /// </summary> | |
| 168 | + public decimal NewCustomerPoint { get; set; } | |
| 169 | + | |
| 170 | + /// <summary> | |
| 171 | + /// 升单人头数 | |
| 172 | + /// </summary> | |
| 173 | + public decimal UpgradeCustomerCount { get; set; } | |
| 174 | + | |
| 175 | + /// <summary> | |
| 176 | + /// 升单业绩 | |
| 177 | + /// </summary> | |
| 178 | + public decimal UpgradePerformance { get; set; } | |
| 179 | + | |
| 180 | + /// <summary> | |
| 181 | + /// 升单提点 | |
| 182 | + /// </summary> | |
| 183 | + public decimal UpgradePoint { get; set; } | |
| 154 | 184 | } |
| 155 | 185 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqSalaryExtraCalculationService.cs
| ... | ... | @@ -456,13 +456,13 @@ namespace NCC.Extend |
| 456 | 456 | { |
| 457 | 457 | // 生成金额 |
| 458 | 458 | // 基础业绩奖励和合作业绩奖励:0-20000之间 |
| 459 | - var baseRewardPerformance = (decimal)(random.NextDouble() * 20000); | |
| 460 | - var cooperationRewardPerformance = (decimal)(random.NextDouble() * 20000); | |
| 459 | + var baseRewardPerformance = (decimal)(random.NextDouble() * 10000); | |
| 460 | + var cooperationRewardPerformance = (decimal)(random.NextDouble() * 10000); | |
| 461 | 461 | // 其他金额字段:10000-30000之间 |
| 462 | - var newCustomerPerformance = (decimal)(random.NextDouble() * 20000 + 10000); | |
| 463 | - var upgradePerformance = (decimal)(random.NextDouble() * 20000 + 10000); | |
| 464 | - var otherPerformanceAdd = (decimal)(random.NextDouble() * 20000 + 10000); | |
| 465 | - var otherPerformanceSubtract = (decimal)(random.NextDouble() * 20000 + 10000); | |
| 462 | + var newCustomerPerformance = (decimal)(random.NextDouble() * 10000); | |
| 463 | + var upgradePerformance = (decimal)(random.NextDouble() * 10000); | |
| 464 | + var otherPerformanceAdd = (decimal)(random.NextDouble() * 10000); | |
| 465 | + var otherPerformanceSubtract = (decimal)(random.NextDouble() * 10000); | |
| 466 | 466 | |
| 467 | 467 | // 生成转化率(0-60%之间,转换为0-0.6) |
| 468 | 468 | var newCustomerConversionRate = (decimal)(random.NextDouble() * 0.6); | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqSalaryService.cs
| ... | ... | @@ -110,7 +110,13 @@ namespace NCC.Extend |
| 110 | 110 | ActualBasePerformance = x.ActualBasePerformance, |
| 111 | 111 | ActualCooperationPerformance = x.ActualCooperationPerformance, |
| 112 | 112 | NewCustomerCommission = x.NewCustomerPerformanceCommission, |
| 113 | - UpgradeCommission = x.UpgradePerformanceCommission | |
| 113 | + UpgradeCommission = x.UpgradePerformanceCommission, | |
| 114 | + NewCustomerPerformance = x.NewCustomerPerformance, | |
| 115 | + NewCustomerConversionRate = x.NewCustomerConversionRate, | |
| 116 | + NewCustomerPoint = x.NewCustomerPoint, | |
| 117 | + UpgradeCustomerCount = x.UpgradeCustomerCount, | |
| 118 | + UpgradePerformance = x.UpgradePerformance, | |
| 119 | + UpgradePoint = x.UpgradePoint | |
| 114 | 120 | }) |
| 115 | 121 | .ToPagedListAsync(input.currentPage, input.pageSize); |
| 116 | 122 | |
| ... | ... | @@ -367,6 +373,8 @@ namespace NCC.Extend |
| 367 | 373 | salary.OtherPerformanceSubtract = extraData.OtherPerformanceSubtract; |
| 368 | 374 | salary.UpgradeCustomerCount = extraData.UpgradeCustomerCount; |
| 369 | 375 | salary.NewCustomerConversionRate = extraData.NewCustomerConversionRate; |
| 376 | + salary.NewCustomerPerformance = extraData.NewCustomerPerformance; | |
| 377 | + salary.UpgradePerformance = extraData.UpgradePerformance; | |
| 370 | 378 | } |
| 371 | 379 | |
| 372 | 380 | // 2.1.2 计算实际基础业绩和实际合作业绩 |
| ... | ... | @@ -493,6 +501,15 @@ namespace NCC.Extend |
| 493 | 501 | } |
| 494 | 502 | } |
| 495 | 503 | |
| 504 | + // 补充处理:对于没有战队ID的(个人,或被剔除的),战队业绩等于个人总业绩 | |
| 505 | + foreach (var salary in employeeStats.Values) | |
| 506 | + { | |
| 507 | + if (string.IsNullOrEmpty(salary.GoldTriangleId)) | |
| 508 | + { | |
| 509 | + salary.TeamPerformance = salary.TotalPerformance; | |
| 510 | + } | |
| 511 | + } | |
| 512 | + | |
| 496 | 513 | // 4. 计算薪资 (底薪 & 提成) |
| 497 | 514 | foreach (var salary in employeeStats.Values) |
| 498 | 515 | { |
| ... | ... | @@ -504,13 +521,15 @@ namespace NCC.Extend |
| 504 | 521 | salary.HealthCoachBaseSalary = CalculateBaseSalary(salary.Consumption, salary.ProjectCount, isNewStore); |
| 505 | 522 | |
| 506 | 523 | // 4.2 提成计算 |
| 507 | - // 单人业绩 <= 6000 无提成 | |
| 524 | + // 业绩门槛: 个人总业绩 <= 6000 无提成 | |
| 508 | 525 | if (salary.TotalPerformance <= 6000) |
| 509 | 526 | { |
| 510 | 527 | salary.TotalCommission = 0; |
| 511 | 528 | salary.BasePerformanceCommission = 0; |
| 512 | 529 | salary.CooperationPerformanceCommission = 0; |
| 513 | 530 | salary.ConsultantCommission = 0; |
| 531 | + salary.NewCustomerPerformanceCommission = 0; | |
| 532 | + salary.UpgradePerformanceCommission = 0; | |
| 514 | 533 | } |
| 515 | 534 | else |
| 516 | 535 | { | ... | ... |