Commit 01cd603c6dd780c1dd1133309295156f1b60e5f9
1 parent
fc259a33
refactor: 优化加班计算逻辑,统一计算方式
- 移除多余的条件判断,统一使用加班系数进行计算 - 简化代码逻辑,提高可读性 - 更新Create和Update方法中的加班计算逻辑
Showing
2 changed files
with
45 additions
and
24 deletions
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXhHyhk/LqXhHyhkCrInput.cs
| ... | ... | @@ -52,12 +52,12 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk |
| 52 | 52 | /// <summary> |
| 53 | 53 | /// 消费金额 |
| 54 | 54 | /// </summary> |
| 55 | - public string xfje { get; set; } | |
| 55 | + public decimal xfje { get; set; } | |
| 56 | 56 | |
| 57 | 57 | /// <summary> |
| 58 | 58 | /// 手工费用 |
| 59 | 59 | /// </summary> |
| 60 | - public string sgfy { get; set; } | |
| 60 | + public decimal sgfy { get; set; } | |
| 61 | 61 | |
| 62 | 62 | /// <summary> |
| 63 | 63 | /// 是否有科技部 |
| ... | ... | @@ -82,12 +82,8 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk |
| 82 | 82 | /// <summary> |
| 83 | 83 | /// 加班系数(NULL或0表示非加班单,大于0表示加班单,如 0.5、1、1.5) |
| 84 | 84 | /// </summary> |
| 85 | - public decimal? overtimeCoefficient { get; set; } | |
| 85 | + public decimal? overtimeCoefficient { get; set; } = 0; | |
| 86 | 86 | |
| 87 | - /// <summary> | |
| 88 | - /// 原始手工费(用户输入的原始值) | |
| 89 | - /// </summary> | |
| 90 | - public decimal? originalSgfy { get; set; } | |
| 91 | 87 | |
| 92 | 88 | /// <summary> |
| 93 | 89 | /// 耗卡_品项明细 | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
| ... | ... | @@ -314,14 +314,11 @@ namespace NCC.Extend.LqXhHyhk |
| 314 | 314 | entity.IsEffective = StatusEnum.有效.GetHashCode(); |
| 315 | 315 | entity.UpdateTime = DateTime.Now; |
| 316 | 316 | entity.OvertimeCoefficient = input.overtimeCoefficient ?? 0; |
| 317 | - entity.OriginalSgfy = entity.Sgfy; | |
| 318 | - if (entity.OvertimeCoefficient > 0) | |
| 319 | - { | |
| 320 | - //加班手工费 = 原始手工费 * 加班系数 | |
| 321 | - entity.OvertimeSgfy = entity.OriginalSgfy * entity.OvertimeCoefficient; | |
| 322 | - //最终手工费 = 原始手工费 + 加班手工费 | |
| 323 | - entity.Sgfy = entity.OriginalSgfy + entity.OvertimeSgfy; | |
| 324 | - } | |
| 317 | + entity.OriginalSgfy = input.sgfy; | |
| 318 | + //加班手工费 = 原始手工费 * 加班系数 | |
| 319 | + entity.OvertimeSgfy = entity.OriginalSgfy * entity.OvertimeCoefficient; | |
| 320 | + //最终手工费 = 原始手工费 + 加班手工费 | |
| 321 | + entity.Sgfy = entity.OriginalSgfy + entity.OvertimeSgfy; | |
| 325 | 322 | try |
| 326 | 323 | { |
| 327 | 324 | // 开启事务 |
| ... | ... | @@ -345,12 +342,16 @@ namespace NCC.Extend.LqXhHyhk |
| 345 | 342 | BillingItemId = item.billingItemId, |
| 346 | 343 | CreateTIme = DateTime.Now, |
| 347 | 344 | MemberId = entity.Hy, |
| 348 | - ProjectNumber = item.projectNumber ?? 1, | |
| 345 | + OriginalProjectNumber = item.projectNumber ?? 0, | |
| 346 | + OvertimeProjectNumber = (decimal)(entity.OvertimeCoefficient * (item.projectNumber ?? 0)), | |
| 347 | + ProjectNumber = (decimal)((item.projectNumber ?? 0) + (entity.OvertimeCoefficient * (item.projectNumber ?? 0))), | |
| 349 | 348 | TotalPrice = (decimal)(item.pxjg * (item.projectNumber ?? 1)), |
| 350 | 349 | Px = item.px, |
| 351 | 350 | Pxmc = item.pxmc, |
| 352 | 351 | Pxjg = item.pxjg, |
| 353 | 352 | SourceType = item.sourceType, |
| 353 | + IsEffective = StatusEnum.有效.GetHashCode(), | |
| 354 | + | |
| 354 | 355 | }; |
| 355 | 356 | allPxmxEntities.Add(lqXhPxmxEntity); |
| 356 | 357 | |
| ... | ... | @@ -372,7 +373,11 @@ namespace NCC.Extend.LqXhHyhk |
| 372 | 373 | JsjId = ijks_tem.jsjId, |
| 373 | 374 | Kdpxid = lqXhPxmxEntity.Id, |
| 374 | 375 | LaborCost = ijks_tem.laborCost, |
| 375 | - KdpxNumber = ijks_tem.kdpxNumber, | |
| 376 | + OriginalKdpxNumber = ijks_tem.kdpxNumber, | |
| 377 | + OvertimeKdpxNumber = (decimal)(entity.OvertimeCoefficient * (ijks_tem.kdpxNumber ?? 0)), | |
| 378 | + KdpxNumber = (decimal)((ijks_tem.kdpxNumber ?? 0) + (entity.OvertimeCoefficient * (ijks_tem.kdpxNumber ?? 0))), | |
| 379 | + IsEffective = StatusEnum.有效.GetHashCode(), | |
| 380 | + | |
| 376 | 381 | } |
| 377 | 382 | ); |
| 378 | 383 | } |
| ... | ... | @@ -394,8 +399,13 @@ namespace NCC.Extend.LqXhHyhk |
| 394 | 399 | Kjblsyj = ikjbs_tem.kjblsyj, |
| 395 | 400 | Yjsj = DateTime.Now, |
| 396 | 401 | Hkpxid = lqXhPxmxEntity.Id, |
| 397 | - LaborCost = ikjbs_tem.laborCost, | |
| 398 | - HdpxNumber = ikjbs_tem.hdpxNumber, | |
| 402 | + OriginalHdpxNumber = ikjbs_tem.hdpxNumber, | |
| 403 | + OvertimeHdpxNumber = (decimal)(entity.OvertimeCoefficient * (ikjbs_tem.hdpxNumber ?? 0)), | |
| 404 | + HdpxNumber = (decimal)((ikjbs_tem.hdpxNumber ?? 0) + (entity.OvertimeCoefficient * (ikjbs_tem.hdpxNumber ?? 0))), | |
| 405 | + OriginalLaborCost = ikjbs_tem.laborCost, | |
| 406 | + OvertimeLaborCost = (decimal)(entity.OvertimeCoefficient * (ikjbs_tem.laborCost ?? 0)), | |
| 407 | + LaborCost = (decimal)((ikjbs_tem.laborCost ?? 0) + (entity.OvertimeCoefficient * (ikjbs_tem.laborCost ?? 0))), | |
| 408 | + IsEffective = StatusEnum.有效.GetHashCode(), | |
| 399 | 409 | } |
| 400 | 410 | ); |
| 401 | 411 | } |
| ... | ... | @@ -588,6 +598,10 @@ namespace NCC.Extend.LqXhHyhk |
| 588 | 598 | throw NCCException.Oh(ErrorCode.COM1005, "耗卡记录不存在或已作废"); |
| 589 | 599 | } |
| 590 | 600 | entity.UpdateTime = DateTime.Now; |
| 601 | + entity.OvertimeCoefficient = input.overtimeCoefficient; | |
| 602 | + entity.OriginalSgfy = input.sgfy; | |
| 603 | + entity.OvertimeSgfy = (decimal)(entity.OvertimeCoefficient * input.sgfy); | |
| 604 | + entity.Sgfy = (decimal)(input.sgfy + (entity.OvertimeCoefficient * input.sgfy)); | |
| 591 | 605 | //更新会员耗卡记录 |
| 592 | 606 | await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); |
| 593 | 607 | |
| ... | ... | @@ -612,12 +626,15 @@ namespace NCC.Extend.LqXhHyhk |
| 612 | 626 | BillingItemId = item.billingItemId, |
| 613 | 627 | CreateTIme = DateTime.Now, |
| 614 | 628 | MemberId = entity.Hy, |
| 615 | - ProjectNumber = item.projectNumber ?? 1, | |
| 616 | - TotalPrice = (decimal)(item.pxjg * (item.projectNumber ?? 1)), | |
| 629 | + TotalPrice = item.pxjg * (item.projectNumber ?? 1), | |
| 617 | 630 | Px = item.px, |
| 618 | 631 | Pxmc = item.pxmc, |
| 619 | 632 | Pxjg = item.pxjg, |
| 620 | 633 | SourceType = item.sourceType, |
| 634 | + IsEffective = StatusEnum.有效.GetHashCode(), | |
| 635 | + OriginalProjectNumber = item.projectNumber ?? 0, | |
| 636 | + OvertimeProjectNumber = (decimal)(entity.OvertimeCoefficient * (item.projectNumber ?? 0)), | |
| 637 | + ProjectNumber = (decimal)((item.projectNumber ?? 0) + (entity.OvertimeCoefficient * (item.projectNumber ?? 0))), | |
| 621 | 638 | }; |
| 622 | 639 | allPxmxEntities.Add(lqXhPxmxEntity); |
| 623 | 640 | |
| ... | ... | @@ -639,7 +656,10 @@ namespace NCC.Extend.LqXhHyhk |
| 639 | 656 | JsjId = ijks_tem.jsjId, |
| 640 | 657 | Kdpxid = lqXhPxmxEntity.Id, |
| 641 | 658 | LaborCost = ijks_tem.laborCost, |
| 642 | - KdpxNumber = ijks_tem.kdpxNumber, | |
| 659 | + OriginalKdpxNumber = ijks_tem.kdpxNumber, | |
| 660 | + OvertimeKdpxNumber = (decimal)(entity.OvertimeCoefficient * (ijks_tem.kdpxNumber ?? 0)), | |
| 661 | + KdpxNumber = (decimal)((ijks_tem.kdpxNumber ?? 0) + (entity.OvertimeCoefficient * (ijks_tem.kdpxNumber ?? 0))), | |
| 662 | + IsEffective = StatusEnum.有效.GetHashCode(), | |
| 643 | 663 | } |
| 644 | 664 | ); |
| 645 | 665 | } |
| ... | ... | @@ -661,8 +681,13 @@ namespace NCC.Extend.LqXhHyhk |
| 661 | 681 | Kjblsyj = ikjbs_tem.kjblsyj, |
| 662 | 682 | Yjsj = DateTime.Now, |
| 663 | 683 | Hkpxid = lqXhPxmxEntity.Id, |
| 664 | - LaborCost = ikjbs_tem.laborCost, | |
| 665 | - HdpxNumber = ikjbs_tem.hdpxNumber, | |
| 684 | + OriginalHdpxNumber = ikjbs_tem.hdpxNumber, | |
| 685 | + OvertimeHdpxNumber = (decimal)(entity.OvertimeCoefficient * (ikjbs_tem.hdpxNumber ?? 0)), | |
| 686 | + HdpxNumber = (decimal)((ikjbs_tem.hdpxNumber ?? 0) + (entity.OvertimeCoefficient * (ikjbs_tem.hdpxNumber ?? 0))), | |
| 687 | + OriginalLaborCost = ikjbs_tem.laborCost, | |
| 688 | + OvertimeLaborCost = (decimal)(entity.OvertimeCoefficient * (ikjbs_tem.laborCost ?? 0)), | |
| 689 | + LaborCost = (decimal)((ikjbs_tem.laborCost ?? 0) + (entity.OvertimeCoefficient * (ikjbs_tem.laborCost ?? 0))), | |
| 690 | + IsEffective = StatusEnum.有效.GetHashCode(), | |
| 666 | 691 | } |
| 667 | 692 | ); |
| 668 | 693 | } | ... | ... |