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,12 +52,12 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk | ||
| 52 | /// <summary> | 52 | /// <summary> |
| 53 | /// 消费金额 | 53 | /// 消费金额 |
| 54 | /// </summary> | 54 | /// </summary> |
| 55 | - public string xfje { get; set; } | 55 | + public decimal xfje { get; set; } |
| 56 | 56 | ||
| 57 | /// <summary> | 57 | /// <summary> |
| 58 | /// 手工费用 | 58 | /// 手工费用 |
| 59 | /// </summary> | 59 | /// </summary> |
| 60 | - public string sgfy { get; set; } | 60 | + public decimal sgfy { get; set; } |
| 61 | 61 | ||
| 62 | /// <summary> | 62 | /// <summary> |
| 63 | /// 是否有科技部 | 63 | /// 是否有科技部 |
| @@ -82,12 +82,8 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk | @@ -82,12 +82,8 @@ namespace NCC.Extend.Entitys.Dto.LqXhHyhk | ||
| 82 | /// <summary> | 82 | /// <summary> |
| 83 | /// 加班系数(NULL或0表示非加班单,大于0表示加班单,如 0.5、1、1.5) | 83 | /// 加班系数(NULL或0表示非加班单,大于0表示加班单,如 0.5、1、1.5) |
| 84 | /// </summary> | 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 | /// <summary> | 88 | /// <summary> |
| 93 | /// 耗卡_品项明细 | 89 | /// 耗卡_品项明细 |
netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
| @@ -314,14 +314,11 @@ namespace NCC.Extend.LqXhHyhk | @@ -314,14 +314,11 @@ namespace NCC.Extend.LqXhHyhk | ||
| 314 | entity.IsEffective = StatusEnum.有效.GetHashCode(); | 314 | entity.IsEffective = StatusEnum.有效.GetHashCode(); |
| 315 | entity.UpdateTime = DateTime.Now; | 315 | entity.UpdateTime = DateTime.Now; |
| 316 | entity.OvertimeCoefficient = input.overtimeCoefficient ?? 0; | 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 | try | 322 | try |
| 326 | { | 323 | { |
| 327 | // 开启事务 | 324 | // 开启事务 |
| @@ -345,12 +342,16 @@ namespace NCC.Extend.LqXhHyhk | @@ -345,12 +342,16 @@ namespace NCC.Extend.LqXhHyhk | ||
| 345 | BillingItemId = item.billingItemId, | 342 | BillingItemId = item.billingItemId, |
| 346 | CreateTIme = DateTime.Now, | 343 | CreateTIme = DateTime.Now, |
| 347 | MemberId = entity.Hy, | 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 | TotalPrice = (decimal)(item.pxjg * (item.projectNumber ?? 1)), | 348 | TotalPrice = (decimal)(item.pxjg * (item.projectNumber ?? 1)), |
| 350 | Px = item.px, | 349 | Px = item.px, |
| 351 | Pxmc = item.pxmc, | 350 | Pxmc = item.pxmc, |
| 352 | Pxjg = item.pxjg, | 351 | Pxjg = item.pxjg, |
| 353 | SourceType = item.sourceType, | 352 | SourceType = item.sourceType, |
| 353 | + IsEffective = StatusEnum.有效.GetHashCode(), | ||
| 354 | + | ||
| 354 | }; | 355 | }; |
| 355 | allPxmxEntities.Add(lqXhPxmxEntity); | 356 | allPxmxEntities.Add(lqXhPxmxEntity); |
| 356 | 357 | ||
| @@ -372,7 +373,11 @@ namespace NCC.Extend.LqXhHyhk | @@ -372,7 +373,11 @@ namespace NCC.Extend.LqXhHyhk | ||
| 372 | JsjId = ijks_tem.jsjId, | 373 | JsjId = ijks_tem.jsjId, |
| 373 | Kdpxid = lqXhPxmxEntity.Id, | 374 | Kdpxid = lqXhPxmxEntity.Id, |
| 374 | LaborCost = ijks_tem.laborCost, | 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,8 +399,13 @@ namespace NCC.Extend.LqXhHyhk | ||
| 394 | Kjblsyj = ikjbs_tem.kjblsyj, | 399 | Kjblsyj = ikjbs_tem.kjblsyj, |
| 395 | Yjsj = DateTime.Now, | 400 | Yjsj = DateTime.Now, |
| 396 | Hkpxid = lqXhPxmxEntity.Id, | 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,6 +598,10 @@ namespace NCC.Extend.LqXhHyhk | ||
| 588 | throw NCCException.Oh(ErrorCode.COM1005, "耗卡记录不存在或已作废"); | 598 | throw NCCException.Oh(ErrorCode.COM1005, "耗卡记录不存在或已作废"); |
| 589 | } | 599 | } |
| 590 | entity.UpdateTime = DateTime.Now; | 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 | await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); | 606 | await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); |
| 593 | 607 | ||
| @@ -612,12 +626,15 @@ namespace NCC.Extend.LqXhHyhk | @@ -612,12 +626,15 @@ namespace NCC.Extend.LqXhHyhk | ||
| 612 | BillingItemId = item.billingItemId, | 626 | BillingItemId = item.billingItemId, |
| 613 | CreateTIme = DateTime.Now, | 627 | CreateTIme = DateTime.Now, |
| 614 | MemberId = entity.Hy, | 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 | Px = item.px, | 630 | Px = item.px, |
| 618 | Pxmc = item.pxmc, | 631 | Pxmc = item.pxmc, |
| 619 | Pxjg = item.pxjg, | 632 | Pxjg = item.pxjg, |
| 620 | SourceType = item.sourceType, | 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 | allPxmxEntities.Add(lqXhPxmxEntity); | 639 | allPxmxEntities.Add(lqXhPxmxEntity); |
| 623 | 640 | ||
| @@ -639,7 +656,10 @@ namespace NCC.Extend.LqXhHyhk | @@ -639,7 +656,10 @@ namespace NCC.Extend.LqXhHyhk | ||
| 639 | JsjId = ijks_tem.jsjId, | 656 | JsjId = ijks_tem.jsjId, |
| 640 | Kdpxid = lqXhPxmxEntity.Id, | 657 | Kdpxid = lqXhPxmxEntity.Id, |
| 641 | LaborCost = ijks_tem.laborCost, | 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,8 +681,13 @@ namespace NCC.Extend.LqXhHyhk | ||
| 661 | Kjblsyj = ikjbs_tem.kjblsyj, | 681 | Kjblsyj = ikjbs_tem.kjblsyj, |
| 662 | Yjsj = DateTime.Now, | 682 | Yjsj = DateTime.Now, |
| 663 | Hkpxid = lqXhPxmxEntity.Id, | 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 | } |