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,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 }