Commit 1cf1bd86e006e9e18a852bd6e8f254428d5f6d75
1 parent
e94f4f10
feat: 添加项目资料表手工费字段和陪同相关字段
- 项目资料表(lq_xmzl)添加四个手工费字段: * F_MedicalBeautyLaborCost - 医美手工费 * F_TechBeautyLaborCost - 科美手工费 * F_LifeBeautyLaborCost - 生美手工费 * F_HealthCoachLaborCost - 健康师手工费 * F_IsAllowAccompanied - 是否允许陪同 - 耗卡健康师业绩表(lq_xh_jksyj)添加陪同字段: * F_AccompaniedProjectNumber - 陪同项目数 * F_IsAccompanied - 是否陪同 - 耗卡品项明细表(lq_xh_pxmx)添加字段: * F_IsNeedAccompanied - 是否需要陪同 - 更新相关实体类和DTO,支持新字段
Showing
9 changed files
with
181 additions
and
218 deletions
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlCrInput.cs
| ... | ... | @@ -81,6 +81,31 @@ namespace NCC.Extend.Entitys.Dto.LqXmzl |
| 81 | 81 | public decimal? sgf { get; set; } |
| 82 | 82 | |
| 83 | 83 | /// <summary> |
| 84 | + /// 医美手工费 | |
| 85 | + /// </summary> | |
| 86 | + public decimal? medicalBeautyLaborCost { get; set; } | |
| 87 | + | |
| 88 | + /// <summary> | |
| 89 | + /// 科美手工费 | |
| 90 | + /// </summary> | |
| 91 | + public decimal? techBeautyLaborCost { get; set; } | |
| 92 | + | |
| 93 | + /// <summary> | |
| 94 | + /// 生美手工费 | |
| 95 | + /// </summary> | |
| 96 | + public decimal? lifeBeautyLaborCost { get; set; } | |
| 97 | + | |
| 98 | + /// <summary> | |
| 99 | + /// 健康师手工费 | |
| 100 | + /// </summary> | |
| 101 | + public decimal? healthCoachLaborCost { get; set; } | |
| 102 | + | |
| 103 | + /// <summary> | |
| 104 | + /// 是否允许陪同 | |
| 105 | + /// </summary> | |
| 106 | + public int? isAllowAccompanied { get; set; } = 0; | |
| 107 | + | |
| 108 | + /// <summary> | |
| 84 | 109 | /// 科美类型 |
| 85 | 110 | /// </summary> |
| 86 | 111 | public string beautyType { get; set; } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlInfoOutput.cs
| ... | ... | @@ -81,6 +81,31 @@ namespace NCC.Extend.Entitys.Dto.LqXmzl |
| 81 | 81 | public decimal? sgf { get; set; } |
| 82 | 82 | |
| 83 | 83 | /// <summary> |
| 84 | + /// 医美手工费 | |
| 85 | + /// </summary> | |
| 86 | + public decimal? medicalBeautyLaborCost { get; set; } | |
| 87 | + | |
| 88 | + /// <summary> | |
| 89 | + /// 科美手工费 | |
| 90 | + /// </summary> | |
| 91 | + public decimal? techBeautyLaborCost { get; set; } | |
| 92 | + | |
| 93 | + /// <summary> | |
| 94 | + /// 生美手工费 | |
| 95 | + /// </summary> | |
| 96 | + public decimal? lifeBeautyLaborCost { get; set; } | |
| 97 | + | |
| 98 | + /// <summary> | |
| 99 | + /// 健康师手工费 | |
| 100 | + /// </summary> | |
| 101 | + public decimal? healthCoachLaborCost { get; set; } | |
| 102 | + | |
| 103 | + /// <summary> | |
| 104 | + /// 是否允许陪同 | |
| 105 | + /// </summary> | |
| 106 | + public int? isAllowAccompanied { get; set; } = 0; | |
| 107 | + | |
| 108 | + /// <summary> | |
| 84 | 109 | /// 科美类型 |
| 85 | 110 | /// </summary> |
| 86 | 111 | public string beautyType { get; set; } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqXmzl/LqXmzlListOutput.cs
| ... | ... | @@ -80,6 +80,31 @@ namespace NCC.Extend.Entitys.Dto.LqXmzl |
| 80 | 80 | public decimal? sgf { get; set; } |
| 81 | 81 | |
| 82 | 82 | /// <summary> |
| 83 | + /// 医美手工费 | |
| 84 | + /// </summary> | |
| 85 | + public decimal? medicalBeautyLaborCost { get; set; } | |
| 86 | + | |
| 87 | + /// <summary> | |
| 88 | + /// 科美手工费 | |
| 89 | + /// </summary> | |
| 90 | + public decimal? techBeautyLaborCost { get; set; } | |
| 91 | + | |
| 92 | + /// <summary> | |
| 93 | + /// 生美手工费 | |
| 94 | + /// </summary> | |
| 95 | + public decimal? lifeBeautyLaborCost { get; set; } | |
| 96 | + | |
| 97 | + /// <summary> | |
| 98 | + /// 健康师手工费 | |
| 99 | + /// </summary> | |
| 100 | + public decimal? healthCoachLaborCost { get; set; } | |
| 101 | + | |
| 102 | + /// <summary> | |
| 103 | + /// 是否允许陪同 | |
| 104 | + /// </summary> | |
| 105 | + public int? isAllowAccompanied { get; set; } = 0; | |
| 106 | + | |
| 107 | + /// <summary> | |
| 83 | 108 | /// 科美类型 |
| 84 | 109 | /// </summary> |
| 85 | 110 | public string beautyType { get; set; } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_xmzl/LqXmzlEntity.cs
| ... | ... | @@ -98,6 +98,30 @@ namespace NCC.Extend.Entitys.lq_xmzl |
| 98 | 98 | public decimal? Sgf { get; set; } |
| 99 | 99 | |
| 100 | 100 | /// <summary> |
| 101 | + /// 医美手工费 | |
| 102 | + /// </summary> | |
| 103 | + [SugarColumn(ColumnName = "F_MedicalBeautyLaborCost")] | |
| 104 | + public decimal? MedicalBeautyLaborCost { get; set; } | |
| 105 | + | |
| 106 | + /// <summary> | |
| 107 | + /// 科美手工费 | |
| 108 | + /// </summary> | |
| 109 | + [SugarColumn(ColumnName = "F_TechBeautyLaborCost")] | |
| 110 | + public decimal? TechBeautyLaborCost { get; set; } | |
| 111 | + | |
| 112 | + /// <summary> | |
| 113 | + /// 生美手工费 | |
| 114 | + /// </summary> | |
| 115 | + [SugarColumn(ColumnName = "F_LifeBeautyLaborCost")] | |
| 116 | + public decimal? LifeBeautyLaborCost { get; set; } | |
| 117 | + | |
| 118 | + /// <summary> | |
| 119 | + /// 健康师手工费 | |
| 120 | + /// </summary> | |
| 121 | + [SugarColumn(ColumnName = "F_HealthCoachLaborCost")] | |
| 122 | + public decimal? HealthCoachLaborCost { get; set; } | |
| 123 | + | |
| 124 | + /// <summary> | |
| 101 | 125 | /// 科美类型 |
| 102 | 126 | /// </summary> |
| 103 | 127 | [SugarColumn(ColumnName = "F_BeautyType")] | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
| ... | ... | @@ -279,13 +279,11 @@ namespace NCC.Extend.LqKdKdjlb |
| 279 | 279 | |
| 280 | 280 | // 获取当前页的开单记录ID列表 |
| 281 | 281 | var billingIds = data.list.Select(x => x.id).ToList(); |
| 282 | - | |
| 283 | 282 | // 批量查询品项明细 |
| 284 | 283 | var itemDetails = new List<LqKdPxmxInfoOutput>(); |
| 285 | 284 | if (billingIds.Any()) |
| 286 | 285 | { |
| 287 | - itemDetails = await _db.Queryable<LqKdPxmxEntity>() | |
| 288 | - .Where(x => billingIds.Contains(x.Glkdbh) && x.IsEffective == StatusEnum.有效.GetHashCode()) | |
| 286 | + itemDetails = await _db.Queryable<LqKdPxmxEntity>().Where(x => billingIds.Contains(x.Glkdbh) && x.IsEffective == StatusEnum.有效.GetHashCode()) | |
| 289 | 287 | .Select(x => new LqKdPxmxInfoOutput |
| 290 | 288 | { |
| 291 | 289 | id = x.Id, |
| ... | ... | @@ -575,199 +573,6 @@ namespace NCC.Extend.LqKdKdjlb |
| 575 | 573 | } |
| 576 | 574 | #endregion |
| 577 | 575 | |
| 578 | - #region 新建开单记录表_备份 | |
| 579 | - /// <summary> | |
| 580 | - /// 新建开单记录表_备份 | |
| 581 | - /// </summary> | |
| 582 | - /// <param name="input">参数</param> | |
| 583 | - /// <returns></returns> | |
| 584 | - [HttpPost("Create_Bak")] | |
| 585 | - public async Task Create_Bak([FromBody] LqKdKdjlbCrInput input) | |
| 586 | - { | |
| 587 | - var userInfo = await _userManager.GetUserInfo(); | |
| 588 | - var entity = input.Adapt<LqKdKdjlbEntity>(); | |
| 589 | - var HealthInstructorNames = ""; | |
| 590 | - entity.Id = YitIdHelper.NextId().ToString(); | |
| 591 | - entity.CreateTime = DateTime.Now; | |
| 592 | - entity.UpdateTime = DateTime.Now; | |
| 593 | - try | |
| 594 | - { | |
| 595 | - //开启事务 | |
| 596 | - _db.BeginTran(); | |
| 597 | - //新增开单记录表记录 | |
| 598 | - entity.CreateUser = userInfo.userId; | |
| 599 | - entity.DeductAmount = input.lqKdKdjlbDeductList.Sum(x => x.Amount ?? 0);//计算储扣总金额 | |
| 600 | - var newEntity = await _db.Insertable(entity).IgnoreColumns(ignoreNullColumn: true).ExecuteReturnEntityAsync(); | |
| 601 | - //循环品相信息 | |
| 602 | - // 收集所有需要插入的实体,然后批量插入 | |
| 603 | - var allPxmxEntities = new List<LqKdPxmxEntity>(); | |
| 604 | - var allJksyjEntities = new List<LqKdJksyjEntity>(); | |
| 605 | - var allKjbsyjEntities = new List<LqKdKjbsyjEntity>(); | |
| 606 | - var allDeductEntities = new List<LqKdDeductinfoEntity>(); | |
| 607 | - // 处理扣款信息列表 | |
| 608 | - foreach (var item in input.lqKdKdjlbDeductList) | |
| 609 | - { | |
| 610 | - var lqKdDeductEntity = new LqKdDeductinfoEntity | |
| 611 | - { | |
| 612 | - Id = YitIdHelper.NextId().ToString(), | |
| 613 | - BillingId = newEntity.Id, | |
| 614 | - DeductId = item.DeductId, | |
| 615 | - DeductType = item.DeductType, | |
| 616 | - Amount = item.Amount, | |
| 617 | - }; | |
| 618 | - allDeductEntities.Add(lqKdDeductEntity); | |
| 619 | - } | |
| 620 | - // 处理品项明细列表 | |
| 621 | - foreach (var item in input.lqKdPxmxList) | |
| 622 | - { | |
| 623 | - // 创建品项明细实体 | |
| 624 | - var lqKdPxmxEntity = new LqKdPxmxEntity | |
| 625 | - { | |
| 626 | - Id = YitIdHelper.NextId().ToString(), | |
| 627 | - Glkdbh = newEntity.Id, | |
| 628 | - Yjsj = input.kdrq, | |
| 629 | - CreateTIme = DateTime.Now, | |
| 630 | - MemberId = entity.Kdhy, | |
| 631 | - IsEnabled = 0, | |
| 632 | - ProjectNumber = item.projectNumber, | |
| 633 | - TotalPrice = (decimal)(item.pxjg * item.projectNumber), | |
| 634 | - Px = item.px, | |
| 635 | - Pxmc = item.pxmc, | |
| 636 | - Pxjg = item.pxjg, | |
| 637 | - SourceType = item.sourceType, | |
| 638 | - ActualPrice = item.actualPrice, | |
| 639 | - }; | |
| 640 | - allPxmxEntities.Add(lqKdPxmxEntity); | |
| 641 | - | |
| 642 | - // 收集该品项关联的健康师业绩 | |
| 643 | - if (item.lqKdJksyjList != null && item.lqKdJksyjList.Any()) | |
| 644 | - { | |
| 645 | - //把jksxm保存到HealthInstructorNames | |
| 646 | - foreach (var ijks_tem in item.lqKdJksyjList) | |
| 647 | - { | |
| 648 | - HealthInstructorNames += ijks_tem.jksxm + ","; | |
| 649 | - allJksyjEntities.Add(new LqKdJksyjEntity | |
| 650 | - { | |
| 651 | - Id = YitIdHelper.NextId().ToString(), | |
| 652 | - Glkdbh = newEntity.Id, | |
| 653 | - Jks = ijks_tem.jks, | |
| 654 | - Jksxm = ijks_tem.jksxm, | |
| 655 | - Jkszh = ijks_tem.jkszh, | |
| 656 | - Jksyj = ijks_tem.jksyj, | |
| 657 | - Yjsj = input.kdrq, | |
| 658 | - Jsj_id = ijks_tem.jsj_id, | |
| 659 | - Kdpxid = lqKdPxmxEntity.Id, | |
| 660 | - }); | |
| 661 | - } | |
| 662 | - } | |
| 663 | - | |
| 664 | - // 收集该品项关联的科技部老师业绩 | |
| 665 | - if (item.lqKdKjbsyjList != null && item.lqKdKjbsyjList.Any()) | |
| 666 | - { | |
| 667 | - foreach (var ikjbs_tem in item.lqKdKjbsyjList) | |
| 668 | - { | |
| 669 | - allKjbsyjEntities.Add( | |
| 670 | - new LqKdKjbsyjEntity | |
| 671 | - { | |
| 672 | - Id = YitIdHelper.NextId().ToString(), | |
| 673 | - Glkdbh = newEntity.Id, | |
| 674 | - Kjbls = ikjbs_tem.kjbls, | |
| 675 | - Kjblsxm = ikjbs_tem.kjblsxm, | |
| 676 | - Kjblszh = ikjbs_tem.kjblszh, | |
| 677 | - Kjblsyj = ikjbs_tem.kjblsyj, | |
| 678 | - Yjsj = input.kdrq, | |
| 679 | - Kdpxid = lqKdPxmxEntity.Id, | |
| 680 | - } | |
| 681 | - ); | |
| 682 | - } | |
| 683 | - } | |
| 684 | - } | |
| 685 | - | |
| 686 | - | |
| 687 | - //通过会员id查询会员信息 | |
| 688 | - var memberInfo = await _db.Queryable<LqKhxxEntity>().Where(u => u.Id == entity.Kdhy).FirstAsync(); | |
| 689 | - //通过开单记录表查询这个会员开单金额 | |
| 690 | - var kdAmount = await _db.Queryable<LqKdKdjlbEntity>().Where(u => u.Kdhy == entity.Kdhy).SumAsync(u => u.Sfyj); | |
| 691 | - //如果开单金额小于500,为散客,如果大于500,为会员 | |
| 692 | - if (kdAmount < 500) | |
| 693 | - { | |
| 694 | - memberInfo.Khlx = MemberTypeEnum.散客.GetHashCode().ToString(); | |
| 695 | - } | |
| 696 | - else | |
| 697 | - { | |
| 698 | - memberInfo.Khlx = MemberTypeEnum.会员.GetHashCode().ToString(); | |
| 699 | - } | |
| 700 | - await _db.Updateable(memberInfo).ExecuteCommandAsync(); | |
| 701 | - // 批量插入扣款信息 | |
| 702 | - if (allDeductEntities.Any()) | |
| 703 | - { | |
| 704 | - await _db.Insertable(allDeductEntities).ExecuteCommandAsync(); | |
| 705 | - } | |
| 706 | - // 批量插入品项明细 | |
| 707 | - if (allPxmxEntities.Any()) | |
| 708 | - { | |
| 709 | - await _db.Insertable(allPxmxEntities).ExecuteCommandAsync(); | |
| 710 | - } | |
| 711 | - // 批量插入健康师业绩 | |
| 712 | - if (allJksyjEntities.Any()) | |
| 713 | - { | |
| 714 | - await _db.Insertable(allJksyjEntities).ExecuteCommandAsync(); | |
| 715 | - } | |
| 716 | - // 批量插入科技部老师业绩 | |
| 717 | - if (allKjbsyjEntities.Any()) | |
| 718 | - { | |
| 719 | - await _db.Insertable(allKjbsyjEntities).ExecuteCommandAsync(); | |
| 720 | - } | |
| 721 | - | |
| 722 | - //关闭事务 | |
| 723 | - _db.CommitTran(); | |
| 724 | - | |
| 725 | - // 生成开单记录字符串并发送到企业微信 | |
| 726 | - try | |
| 727 | - { | |
| 728 | - var entityInfo = await GetInfo(newEntity.Id); | |
| 729 | - if (entityInfo != null) | |
| 730 | - { | |
| 731 | - var orderRecordString = _stringGenerator.GenerateOrderRecordString(entityInfo, HealthInstructorNames); | |
| 732 | - Console.WriteLine("开单记录字符串生成成功:"); | |
| 733 | - Console.WriteLine(orderRecordString); | |
| 734 | - | |
| 735 | - // 发送到企业微信群 | |
| 736 | - try | |
| 737 | - { | |
| 738 | - var sendResult = await _weChatBotService.SendOrderRecordMessage(orderRecordString); | |
| 739 | - if (sendResult) | |
| 740 | - { | |
| 741 | - Console.WriteLine("开单记录已成功发送到企业微信群"); | |
| 742 | - } | |
| 743 | - else | |
| 744 | - { | |
| 745 | - Console.WriteLine("开单记录发送到企业微信群失败"); | |
| 746 | - } | |
| 747 | - } | |
| 748 | - catch (Exception wechatEx) | |
| 749 | - { | |
| 750 | - Console.WriteLine($"发送企业微信消息异常: {wechatEx.Message}"); | |
| 751 | - } | |
| 752 | - } | |
| 753 | - } | |
| 754 | - catch (Exception ex) | |
| 755 | - { | |
| 756 | - // 字符串生成失败不影响主流程,只记录日志 | |
| 757 | - Console.WriteLine($"生成开单记录字符串失败: {ex.Message}"); | |
| 758 | - } | |
| 759 | - } | |
| 760 | - catch (Exception ex) | |
| 761 | - { | |
| 762 | - //回滚事务 | |
| 763 | - _db.RollbackTran(); | |
| 764 | - Console.WriteLine($"开单创建失败: {ex.Message}"); | |
| 765 | - Console.WriteLine($"异常堆栈: {ex.StackTrace}"); | |
| 766 | - throw NCCException.Oh(ErrorCode.COM1000); | |
| 767 | - } | |
| 768 | - } | |
| 769 | - #endregion | |
| 770 | - | |
| 771 | 576 | #region 获取开单记录表无分页列表 |
| 772 | 577 | /// <summary> |
| 773 | 578 | /// 获取开单记录表无分页列表 | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqXhHyhkService.cs
| ... | ... | @@ -672,26 +672,24 @@ namespace NCC.Extend.LqXhHyhk |
| 672 | 672 | { |
| 673 | 673 | foreach (var ikjbs_tem in item.lqXhKjbsyjList) |
| 674 | 674 | { |
| 675 | - allKjbsyjEntities.Add( | |
| 676 | - new LqXhKjbsyjEntity | |
| 677 | - { | |
| 678 | - Id = YitIdHelper.NextId().ToString(), | |
| 679 | - Glkdbh = input.id, | |
| 680 | - Kjbls = ikjbs_tem.kjbls, | |
| 681 | - Kjblsxm = ikjbs_tem.kjblsxm, | |
| 682 | - Kjblszh = ikjbs_tem.kjblszh, | |
| 683 | - Kjblsyj = ikjbs_tem.kjblsyj, | |
| 684 | - Yjsj = DateTime.Now, | |
| 685 | - Hkpxid = lqXhPxmxEntity.Id, | |
| 686 | - OriginalHdpxNumber = ikjbs_tem.hdpxNumber, | |
| 687 | - OvertimeHdpxNumber = (decimal)(entity.OvertimeCoefficient * (ikjbs_tem.hdpxNumber ?? 0)), | |
| 688 | - HdpxNumber = (decimal)((ikjbs_tem.hdpxNumber ?? 0) + (entity.OvertimeCoefficient * (ikjbs_tem.hdpxNumber ?? 0))), | |
| 689 | - OriginalLaborCost = ikjbs_tem.laborCost, | |
| 690 | - OvertimeLaborCost = (decimal)(entity.OvertimeCoefficient * (ikjbs_tem.laborCost ?? 0)), | |
| 691 | - LaborCost = (decimal)((ikjbs_tem.laborCost ?? 0) + (entity.OvertimeCoefficient * (ikjbs_tem.laborCost ?? 0))), | |
| 692 | - IsEffective = StatusEnum.有效.GetHashCode(), | |
| 693 | - } | |
| 694 | - ); | |
| 675 | + allKjbsyjEntities.Add(new LqXhKjbsyjEntity | |
| 676 | + { | |
| 677 | + Id = YitIdHelper.NextId().ToString(), | |
| 678 | + Glkdbh = input.id, | |
| 679 | + Kjbls = ikjbs_tem.kjbls, | |
| 680 | + Kjblsxm = ikjbs_tem.kjblsxm, | |
| 681 | + Kjblszh = ikjbs_tem.kjblszh, | |
| 682 | + Kjblsyj = ikjbs_tem.kjblsyj, | |
| 683 | + Yjsj = DateTime.Now, | |
| 684 | + Hkpxid = lqXhPxmxEntity.Id, | |
| 685 | + OriginalHdpxNumber = ikjbs_tem.hdpxNumber, | |
| 686 | + OvertimeHdpxNumber = (decimal)(entity.OvertimeCoefficient * (ikjbs_tem.hdpxNumber ?? 0)), | |
| 687 | + HdpxNumber = (decimal)((ikjbs_tem.hdpxNumber ?? 0) + (entity.OvertimeCoefficient * (ikjbs_tem.hdpxNumber ?? 0))), | |
| 688 | + OriginalLaborCost = ikjbs_tem.laborCost, | |
| 689 | + OvertimeLaborCost = (decimal)(entity.OvertimeCoefficient * (ikjbs_tem.laborCost ?? 0)), | |
| 690 | + LaborCost = (decimal)((ikjbs_tem.laborCost ?? 0) + (entity.OvertimeCoefficient * (ikjbs_tem.laborCost ?? 0))), | |
| 691 | + IsEffective = StatusEnum.有效.GetHashCode(), | |
| 692 | + }); | |
| 695 | 693 | } |
| 696 | 694 | } |
| 697 | 695 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs
| ... | ... | @@ -28,6 +28,7 @@ using NCC.Common.Model.NPOI; |
| 28 | 28 | using NCC.Common.Configuration; |
| 29 | 29 | using NCC.DataEncryption; |
| 30 | 30 | using NCC.ClayObject; |
| 31 | +using NCC.Extend.Entitys.Enum; | |
| 31 | 32 | |
| 32 | 33 | namespace NCC.Extend.LqXmzl |
| 33 | 34 | { |
| ... | ... | @@ -115,6 +116,10 @@ namespace NCC.Extend.LqXmzl |
| 115 | 116 | beautyType = it.BeautyType, |
| 116 | 117 | sourceType = it.SourceType, |
| 117 | 118 | isEffective = it.IsEffective, |
| 119 | + medicalBeautyLaborCost = it.MedicalBeautyLaborCost, | |
| 120 | + techBeautyLaborCost = it.TechBeautyLaborCost, | |
| 121 | + lifeBeautyLaborCost = it.LifeBeautyLaborCost, | |
| 122 | + healthCoachLaborCost = it.HealthCoachLaborCost, | |
| 118 | 123 | }).MergeTable().OrderBy(sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize); |
| 119 | 124 | return PageResult<LqXmzlListOutput>.SqlSugarPageResult(data); |
| 120 | 125 | } |
| ... | ... | @@ -279,6 +284,23 @@ namespace NCC.Extend.LqXmzl |
| 279 | 284 | } |
| 280 | 285 | #endregion |
| 281 | 286 | |
| 287 | + #region 设置品项作废 | |
| 288 | + /// <summary> | |
| 289 | + /// 设置品项作废 | |
| 290 | + /// </summary> | |
| 291 | + /// <param name="id">主键</param> | |
| 292 | + /// <returns></returns> | |
| 293 | + [HttpPut("SetInvalid/{id}")] | |
| 294 | + public async Task SetInvalid(string id) | |
| 295 | + { | |
| 296 | + var entity = await _db.Queryable<LqXmzlEntity>().FirstAsync(p => p.Id == id); | |
| 297 | + if (entity == null) throw NCCException.Oh("品项不存在"); | |
| 298 | + entity.IsEffective = StatusEnum.无效.GetHashCode(); | |
| 299 | + var isOk = await _db.Updateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); | |
| 300 | + if (!(isOk > 0)) throw NCCException.Oh(ErrorCode.COM1001); | |
| 301 | + } | |
| 302 | + #endregion | |
| 303 | + | |
| 282 | 304 | #region 删除品项资料 |
| 283 | 305 | /// <summary> |
| 284 | 306 | /// 删除品项资料 |
| ... | ... | @@ -669,9 +691,7 @@ namespace NCC.Extend.LqXmzl |
| 669 | 691 | return result; |
| 670 | 692 | } |
| 671 | 693 | #endregion |
| 672 | - | |
| 673 | 694 | } |
| 674 | - | |
| 675 | 695 | /// <summary> |
| 676 | 696 | /// 品项统计数据(内部类) |
| 677 | 697 | /// </summary> | ... | ... |
sql/添加耗卡健康师业绩表陪同字段.sql
0 → 100644
| 1 | +-- 给lq_xh_jksyj表添加两个陪同相关字段 | |
| 2 | +-- 陪同项目数、是否陪同 | |
| 3 | + | |
| 4 | +-- 添加陪同项目数字段 | |
| 5 | +ALTER TABLE lq_xh_jksyj | |
| 6 | +ADD COLUMN F_AccompaniedProjectNumber DECIMAL(18,2) DEFAULT 0.00 COMMENT '陪同项目数' AFTER F_OvertimeLaborCost; | |
| 7 | + | |
| 8 | +-- 添加是否陪同字段 | |
| 9 | +ALTER TABLE lq_xh_jksyj | |
| 10 | +ADD COLUMN F_IsAccompanied INT DEFAULT 0 COMMENT '是否陪同(0-否,1-是)' AFTER F_AccompaniedProjectNumber; | |
| 11 | + | ... | ... |
sql/添加项目资料表手工费字段.sql
0 → 100644
| 1 | +-- 给lq_xmzl表添加四个手工费字段 | |
| 2 | +-- 医美手工费、科美手工费、生美手工费、健康师手工费 | |
| 3 | + | |
| 4 | +-- 添加医美手工费字段 | |
| 5 | +ALTER TABLE lq_xmzl | |
| 6 | +ADD COLUMN F_MedicalBeautyLaborCost DECIMAL(18,2) DEFAULT 0.00 COMMENT '医美手工费' AFTER sgf; | |
| 7 | + | |
| 8 | +-- 添加科美手工费字段 | |
| 9 | +ALTER TABLE lq_xmzl | |
| 10 | +ADD COLUMN F_TechBeautyLaborCost DECIMAL(18,2) DEFAULT 0.00 COMMENT '科美手工费' AFTER F_MedicalBeautyLaborCost; | |
| 11 | + | |
| 12 | +-- 添加生美手工费字段 | |
| 13 | +ALTER TABLE lq_xmzl | |
| 14 | +ADD COLUMN F_LifeBeautyLaborCost DECIMAL(18,2) DEFAULT 0.00 COMMENT '生美手工费' AFTER F_TechBeautyLaborCost; | |
| 15 | + | |
| 16 | +-- 添加健康师手工费字段 | |
| 17 | +ALTER TABLE lq_xmzl | |
| 18 | +ADD COLUMN F_HealthCoachLaborCost DECIMAL(18,2) DEFAULT 0.00 COMMENT '健康师手工费' AFTER F_LifeBeautyLaborCost; | |
| 19 | + | |
| 20 | +-- 更新已有数据:如果原有sgf字段有值,将值复制到四个新字段(可根据业务需求调整) | |
| 21 | +-- UPDATE lq_xmzl SET F_MedicalBeautyLaborCost = sgf, F_TechBeautyLaborCost = sgf, F_LifeBeautyLaborCost = sgf, F_HealthCoachLaborCost = sgf WHERE sgf IS NOT NULL AND sgf > 0; | |
| 22 | + | |
| 23 | +-- ============================================ | |
| 24 | +-- 给lq_xmzl表添加是否允许陪同字段 | |
| 25 | +-- ============================================ | |
| 26 | + | |
| 27 | +-- 添加是否允许陪同字段 | |
| 28 | +ALTER TABLE lq_xmzl | |
| 29 | +ADD COLUMN F_IsAllowAccompanied INT DEFAULT 0 COMMENT '是否允许陪同(0-否,1-是)' AFTER F_HealthCoachLaborCost; | |
| 30 | + | ... | ... |