Commit 01cd603c6dd780c1dd1133309295156f1b60e5f9

Authored by “wangming”
1 parent fc259a33

refactor: 优化加班计算逻辑,统一计算方式

- 移除多余的条件判断,统一使用加班系数进行计算
- 简化代码逻辑,提高可读性
- 更新Create和Update方法中的加班计算逻辑
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 }
... ...