Commit 86e6cb7030c926402c8e0cbbdde56d57ca567d47
1 parent
0b87d248
对开单加上了是否有效的逻辑,完善了开单业绩统计的部分
Showing
7 changed files
with
323 additions
and
24 deletions
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdDeductinfo/LqKdDeductinfoCrInput.cs
| ... | ... | @@ -9,6 +9,11 @@ namespace NCC.Extend.Entitys.Dto.LqKdDeductinfo |
| 9 | 9 | public class LqKdDeductinfoCrInput |
| 10 | 10 | { |
| 11 | 11 | /// <summary> |
| 12 | + /// 扣减编号 | |
| 13 | + /// </summary> | |
| 14 | + public string id { get; set; } | |
| 15 | + | |
| 16 | + /// <summary> | |
| 12 | 17 | /// 扣减类型 |
| 13 | 18 | /// </summary> |
| 14 | 19 | [Required(ErrorMessage = "扣减类型不能为空")] | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_jksyj/LqKdJksyjEntity.cs
| ... | ... | @@ -64,5 +64,11 @@ namespace NCC.Extend.Entitys.lq_kd_jksyj |
| 64 | 64 | /// </summary> |
| 65 | 65 | [SugarColumn(ColumnName = "F_kdpxid")] |
| 66 | 66 | public string Kdpxid { get; set; } |
| 67 | + | |
| 68 | + /// <summary> | |
| 69 | + /// 是否有效 | |
| 70 | + /// </summary> | |
| 71 | + [SugarColumn(ColumnName = "F_IsEffective")] | |
| 72 | + public int IsEffective { get; set; } = 1; | |
| 67 | 73 | } |
| 68 | 74 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kdjlb/LqKdKdjlbEntity.cs
| ... | ... | @@ -52,7 +52,7 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb |
| 52 | 52 | /// </summary> |
| 53 | 53 | [SugarColumn(ColumnName = "zdyj")] |
| 54 | 54 | public decimal Zdyj { get; set; } |
| 55 | - | |
| 55 | + | |
| 56 | 56 | |
| 57 | 57 | /// <summary> |
| 58 | 58 | /// 实付业绩 |
| ... | ... | @@ -197,5 +197,12 @@ namespace NCC.Extend.Entitys.lq_kd_kdjlb |
| 197 | 197 | /// </summary> |
| 198 | 198 | [SugarColumn(ColumnName = "F_UpdateTime")] |
| 199 | 199 | public DateTime UpdateTime { get; set; } |
| 200 | + | |
| 201 | + /// <summary> | |
| 202 | + /// 是否有效 | |
| 203 | + /// </summary> | |
| 204 | + [SugarColumn(ColumnName = "F_IsEffective")] | |
| 205 | + public int IsEffective { get; set; } = 1; | |
| 206 | + | |
| 200 | 207 | } |
| 201 | 208 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_kjbsyj/LqKdKjbsyjEntity.cs
| ... | ... | @@ -64,5 +64,11 @@ namespace NCC.Extend.Entitys.lq_kd_kjbsyj |
| 64 | 64 | /// </summary> |
| 65 | 65 | [SugarColumn(ColumnName = "F_LaborCost")] |
| 66 | 66 | public decimal? LaborCost { get; set; } |
| 67 | + | |
| 68 | + /// <summary> | |
| 69 | + /// 是否有效 | |
| 70 | + /// </summary> | |
| 71 | + [SugarColumn(ColumnName = "F_IsEffective")] | |
| 72 | + public int IsEffective { get; set; } = 1; | |
| 67 | 73 | } |
| 68 | 74 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Entity/lq_kd_pxmx/LqKdPxmxEntity.cs
| ... | ... | @@ -82,5 +82,11 @@ namespace NCC.Extend.Entitys.lq_kd_pxmx |
| 82 | 82 | /// </summary> |
| 83 | 83 | [SugarColumn(ColumnName = "F_ActualPrice")] |
| 84 | 84 | public decimal ActualPrice { get; set; } |
| 85 | + | |
| 86 | + /// <summary> | |
| 87 | + /// 是否有效 | |
| 88 | + /// </summary> | |
| 89 | + [SugarColumn(ColumnName = "F_IsEffective")] | |
| 90 | + public int IsEffective { get; set; } = 1; | |
| 85 | 91 | } |
| 86 | 92 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
| ... | ... | @@ -799,5 +799,270 @@ namespace NCC.Extend.LqKdKdjlb |
| 799 | 799 | .ToList(); |
| 800 | 800 | } |
| 801 | 801 | #endregion |
| 802 | + | |
| 803 | + #region 修改开单记录,不做删除,仅健康师业绩、科技部老师业绩信息 | |
| 804 | + /// <summary> | |
| 805 | + /// 修改开单记录,不做删除,仅健康师业绩、科技部老师业绩信息 | |
| 806 | + /// </summary> | |
| 807 | + /// <remarks> | |
| 808 | + /// 更新开单记录及其关联的品项明细、健康师业绩、科技部老师业绩信息 | |
| 809 | + /// | |
| 810 | + /// 示例请求: | |
| 811 | + /// ```json | |
| 812 | + /// { | |
| 813 | + /// "id": "开单编号", | |
| 814 | + /// "djmd": "单据门店", | |
| 815 | + /// "jsj": "金三角", | |
| 816 | + /// "kdrq": "2025-01-11", | |
| 817 | + /// "lqKdPxmxList": [ | |
| 818 | + /// { | |
| 819 | + /// "px": "品项编号", | |
| 820 | + /// "pxmc": "品项名称", | |
| 821 | + /// "pxjg": 100.00, | |
| 822 | + /// "projectNumber": 1, | |
| 823 | + /// "sourceType": "购买", | |
| 824 | + /// "lqKdJksyjList": [ | |
| 825 | + /// { | |
| 826 | + /// "jks": "健康师", | |
| 827 | + /// "jksxm": "健康师姓名", | |
| 828 | + /// "jksyj": "100" | |
| 829 | + /// } | |
| 830 | + /// ] | |
| 831 | + /// } | |
| 832 | + /// ] | |
| 833 | + /// } | |
| 834 | + /// ``` | |
| 835 | + /// | |
| 836 | + /// 参数说明: | |
| 837 | + /// - id: 开单记录主键ID | |
| 838 | + /// - input: 开单记录更新参数,包含品项明细和业绩信息 | |
| 839 | + /// </remarks> | |
| 840 | + /// <param name="id">开单记录主键ID</param> | |
| 841 | + /// <param name="input">开单记录更新参数</param> | |
| 842 | + /// <returns>无返回值</returns> | |
| 843 | + /// <response code="200">更新成功</response> | |
| 844 | + /// <response code="400">参数错误或数据验证失败</response> | |
| 845 | + /// <response code="500">服务器内部错误</response> | |
| 846 | + [HttpPut("UpdateForNoDelete/{id}")] | |
| 847 | + public async Task UpdateForNoDelete(string id, [FromBody] LqKdKdjlbUpInput input) | |
| 848 | + { | |
| 849 | + var entity = input.Adapt<LqKdKdjlbEntity>(); | |
| 850 | + entity.Id = id; // 确保ID正确设置 | |
| 851 | + | |
| 852 | + try | |
| 853 | + { | |
| 854 | + //开启事务 | |
| 855 | + _db.BeginTran(); | |
| 856 | + | |
| 857 | + // 更新开单记录主表 | |
| 858 | + await _db.Updateable(entity) | |
| 859 | + .IgnoreColumns(ignoreAllNullColumns: true) | |
| 860 | + .IgnoreColumns(x => x.CreateTime) // 不更新创建时间 | |
| 861 | + .ExecuteCommandAsync(); | |
| 862 | + | |
| 863 | + // 处理品项明细列表 - 更新或插入 | |
| 864 | + if (input.lqKdPxmxList != null && input.lqKdPxmxList.Any()) | |
| 865 | + { | |
| 866 | + foreach (var item in input.lqKdPxmxList) | |
| 867 | + { | |
| 868 | + // 检查品项明细是否已存在 | |
| 869 | + var existingPxmx = await _db.Queryable<LqKdPxmxEntity>() | |
| 870 | + .Where(x => x.Glkdbh == id && x.Px == item.px) | |
| 871 | + .FirstAsync(); | |
| 872 | + | |
| 873 | + if (existingPxmx != null) | |
| 874 | + { | |
| 875 | + // 更新现有品项明细 | |
| 876 | + existingPxmx.ProjectNumber = item.projectNumber == 0 ? 1 : item.projectNumber; | |
| 877 | + existingPxmx.TotalPrice = (decimal)(item.pxjg * (item.projectNumber == 0 ? 1 : item.projectNumber)); | |
| 878 | + existingPxmx.Pxmc = item.pxmc; | |
| 879 | + existingPxmx.Pxjg = item.pxjg; | |
| 880 | + existingPxmx.SourceType = item.sourceType; | |
| 881 | + await _db.Updateable(existingPxmx).ExecuteCommandAsync(); | |
| 882 | + | |
| 883 | + // 更新该品项关联的健康师业绩 | |
| 884 | + if (item.lqKdJksyjList != null && item.lqKdJksyjList.Any()) | |
| 885 | + { | |
| 886 | + // 先删除该品项的所有健康师业绩 | |
| 887 | + await _db.Deleteable<LqKdJksyjEntity>() | |
| 888 | + .Where(x => x.Kdpxid == existingPxmx.Id) | |
| 889 | + .ExecuteCommandAsync(); | |
| 890 | + | |
| 891 | + // 重新插入健康师业绩 | |
| 892 | + var jksyjEntities = item.lqKdJksyjList.Select(ijks_tem => new LqKdJksyjEntity | |
| 893 | + { | |
| 894 | + Id = YitIdHelper.NextId().ToString(), | |
| 895 | + Glkdbh = entity.Id, | |
| 896 | + Jks = ijks_tem.jks, | |
| 897 | + Jksxm = ijks_tem.jksxm, | |
| 898 | + Jkszh = ijks_tem.jkszh, | |
| 899 | + Jksyj = ijks_tem.jksyj, | |
| 900 | + Yjsj = DateTime.Now, | |
| 901 | + Jsj_id = ijks_tem.jsj_id, | |
| 902 | + Kdpxid = existingPxmx.Id, | |
| 903 | + }).ToList(); | |
| 904 | + | |
| 905 | + if (jksyjEntities.Any()) | |
| 906 | + { | |
| 907 | + await _db.Insertable(jksyjEntities).ExecuteCommandAsync(); | |
| 908 | + } | |
| 909 | + } | |
| 910 | + | |
| 911 | + // 更新该品项关联的科技部老师业绩 | |
| 912 | + if (item.lqKdKjbsyjList != null && item.lqKdKjbsyjList.Any()) | |
| 913 | + { | |
| 914 | + // 先删除该品项的所有科技部老师业绩 | |
| 915 | + await _db.Deleteable<LqKdKjbsyjEntity>() | |
| 916 | + .Where(x => x.Kdpxid == existingPxmx.Id) | |
| 917 | + .ExecuteCommandAsync(); | |
| 918 | + | |
| 919 | + // 重新插入科技部老师业绩 | |
| 920 | + var kjbsyjEntities = item.lqKdKjbsyjList.Select(ikjbs_tem => new LqKdKjbsyjEntity | |
| 921 | + { | |
| 922 | + Id = YitIdHelper.NextId().ToString(), | |
| 923 | + Glkdbh = entity.Id, | |
| 924 | + Kjbls = ikjbs_tem.kjbls, | |
| 925 | + Kjblsxm = ikjbs_tem.kjblsxm, | |
| 926 | + Kjblszh = ikjbs_tem.kjblszh, | |
| 927 | + Kjblsyj = ikjbs_tem.kjblsyj, | |
| 928 | + Yjsj = DateTime.Now, | |
| 929 | + Kdpxid = existingPxmx.Id, | |
| 930 | + }).ToList(); | |
| 931 | + | |
| 932 | + if (kjbsyjEntities.Any()) | |
| 933 | + { | |
| 934 | + await _db.Insertable(kjbsyjEntities).ExecuteCommandAsync(); | |
| 935 | + } | |
| 936 | + } | |
| 937 | + } | |
| 938 | + else | |
| 939 | + { | |
| 940 | + // 插入新的品项明细 | |
| 941 | + var newPxmxEntity = new LqKdPxmxEntity | |
| 942 | + { | |
| 943 | + Id = YitIdHelper.NextId().ToString(), | |
| 944 | + Glkdbh = entity.Id, | |
| 945 | + CreateTIme = DateTime.Now, | |
| 946 | + MemberId = entity.Kdhy, | |
| 947 | + IsEnabled = 0, | |
| 948 | + ProjectNumber = item.projectNumber == 0 ? 1 : item.projectNumber, | |
| 949 | + TotalPrice = (decimal)(item.pxjg * (item.projectNumber == 0 ? 1 : item.projectNumber)), | |
| 950 | + Px = item.px, | |
| 951 | + Pxmc = item.pxmc, | |
| 952 | + Pxjg = item.pxjg, | |
| 953 | + SourceType = item.sourceType, | |
| 954 | + }; | |
| 955 | + await _db.Insertable(newPxmxEntity).ExecuteCommandAsync(); | |
| 956 | + | |
| 957 | + // 插入该品项关联的健康师业绩 | |
| 958 | + if (item.lqKdJksyjList != null && item.lqKdJksyjList.Any()) | |
| 959 | + { | |
| 960 | + var jksyjEntities = item.lqKdJksyjList.Select(ijks_tem => new LqKdJksyjEntity | |
| 961 | + { | |
| 962 | + Id = YitIdHelper.NextId().ToString(), | |
| 963 | + Glkdbh = entity.Id, | |
| 964 | + Jks = ijks_tem.jks, | |
| 965 | + Jksxm = ijks_tem.jksxm, | |
| 966 | + Jkszh = ijks_tem.jkszh, | |
| 967 | + Jksyj = ijks_tem.jksyj, | |
| 968 | + Yjsj = DateTime.Now, | |
| 969 | + Jsj_id = ijks_tem.jsj_id, | |
| 970 | + Kdpxid = newPxmxEntity.Id, | |
| 971 | + }).ToList(); | |
| 972 | + | |
| 973 | + await _db.Insertable(jksyjEntities).ExecuteCommandAsync(); | |
| 974 | + } | |
| 975 | + | |
| 976 | + // 插入该品项关联的科技部老师业绩 | |
| 977 | + if (item.lqKdKjbsyjList != null && item.lqKdKjbsyjList.Any()) | |
| 978 | + { | |
| 979 | + var kjbsyjEntities = item.lqKdKjbsyjList.Select(ikjbs_tem => new LqKdKjbsyjEntity | |
| 980 | + { | |
| 981 | + Id = YitIdHelper.NextId().ToString(), | |
| 982 | + Glkdbh = entity.Id, | |
| 983 | + Kjbls = ikjbs_tem.kjbls, | |
| 984 | + Kjblsxm = ikjbs_tem.kjblsxm, | |
| 985 | + Kjblszh = ikjbs_tem.kjblszh, | |
| 986 | + Kjblsyj = ikjbs_tem.kjblsyj, | |
| 987 | + Yjsj = DateTime.Now, | |
| 988 | + Kdpxid = newPxmxEntity.Id, | |
| 989 | + }).ToList(); | |
| 990 | + | |
| 991 | + await _db.Insertable(kjbsyjEntities).ExecuteCommandAsync(); | |
| 992 | + } | |
| 993 | + } | |
| 994 | + } | |
| 995 | + } | |
| 996 | + | |
| 997 | + //关闭事务 | |
| 998 | + _db.CommitTran(); | |
| 999 | + } | |
| 1000 | + catch (Exception) | |
| 1001 | + { | |
| 1002 | + //回滚事务 | |
| 1003 | + _db.RollbackTran(); | |
| 1004 | + throw NCCException.Oh(ErrorCode.COM1001); | |
| 1005 | + } | |
| 1006 | + } | |
| 1007 | + #endregion | |
| 1008 | + | |
| 1009 | + #region 作废开单记录 | |
| 1010 | + /// <summary> | |
| 1011 | + /// 作废开单记录 | |
| 1012 | + /// </summary> | |
| 1013 | + /// <param name="id">开单记录主键ID</param> | |
| 1014 | + /// <returns>无返回值</returns> | |
| 1015 | + /// <response code="200">作废成功</response> | |
| 1016 | + /// <response code="400">参数错误,开单记录ID不能为空</response> | |
| 1017 | + /// <response code="404">开单记录不存在</response> | |
| 1018 | + /// <response code="500">服务器内部错误</response> | |
| 1019 | + [HttpPut("Cancel/{id}")] | |
| 1020 | + public async Task Cancel(string id) | |
| 1021 | + { | |
| 1022 | + if (string.IsNullOrEmpty(id)) | |
| 1023 | + { | |
| 1024 | + throw NCCException.Oh("开单记录ID不能为空"); | |
| 1025 | + } | |
| 1026 | + | |
| 1027 | + try | |
| 1028 | + { | |
| 1029 | + //开启事务 | |
| 1030 | + _db.BeginTran(); | |
| 1031 | + | |
| 1032 | + // 查询开单记录 | |
| 1033 | + var entity = await _db.Queryable<LqKdKdjlbEntity>().FirstAsync(p => p.Id == id); | |
| 1034 | + if (entity == null) | |
| 1035 | + { | |
| 1036 | + throw NCCException.Oh("开单记录不存在"); | |
| 1037 | + } | |
| 1038 | + | |
| 1039 | + // 检查是否已经作废 | |
| 1040 | + if (entity.IsEffective == 0) | |
| 1041 | + { | |
| 1042 | + throw NCCException.Oh("该开单记录已经作废"); | |
| 1043 | + } | |
| 1044 | + | |
| 1045 | + // 标记开单记录为无效 | |
| 1046 | + entity.IsEffective = 0; | |
| 1047 | + await _db.Updateable(entity).ExecuteCommandAsync(); | |
| 1048 | + // 标记对应开单明细表为无效 | |
| 1049 | + await _db.Updateable<LqKdPxmxEntity>().SetColumns(it => new LqKdPxmxEntity { IsEffective = 0 }).Where(it => it.Glkdbh == id).ExecuteCommandAsync(); | |
| 1050 | + // 标记健康师业绩为无效 | |
| 1051 | + await _db.Updateable<LqKdJksyjEntity>().SetColumns(it => new LqKdJksyjEntity { IsEffective = 0 }).Where(it => it.Glkdbh == id).ExecuteCommandAsync(); | |
| 1052 | + // 标记科技部老师业绩为无效 | |
| 1053 | + await _db.Updateable<LqKdKjbsyjEntity>().SetColumns(it => new LqKdKjbsyjEntity { IsEffective = 0 }).Where(it => it.Glkdbh == id).ExecuteCommandAsync(); | |
| 1054 | + //关闭事务 | |
| 1055 | + _db.CommitTran(); | |
| 1056 | + } | |
| 1057 | + catch (Exception ex) when (!(ex is NCCException)) | |
| 1058 | + { | |
| 1059 | + //回滚事务 | |
| 1060 | + _db.RollbackTran(); | |
| 1061 | + throw NCCException.Oh(ErrorCode.COM1001); | |
| 1062 | + } | |
| 1063 | + } | |
| 1064 | + #endregion | |
| 1065 | + | |
| 1066 | + | |
| 802 | 1067 | } |
| 803 | 1068 | } | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqStatisticsService.cs
| ... | ... | @@ -1238,6 +1238,7 @@ namespace NCC.Extend.LqStatistics |
| 1238 | 1238 | jsj.F_Id = jksyj.jsj_id |
| 1239 | 1239 | AND YEAR(jksyj.yjsj) = SUBSTRING(jsj.yf, 1, 4) |
| 1240 | 1240 | AND MONTH(jksyj.yjsj) = SUBSTRING(jsj.yf, 5, 2) |
| 1241 | + AND jksyj.F_IsEffective = 1 | |
| 1241 | 1242 | ) |
| 1242 | 1243 | LEFT JOIN lq_mdxx md ON jsj.md = md.F_Id |
| 1243 | 1244 | WHERE jsj.yf = @statisticsMonth |
| ... | ... | @@ -1429,7 +1430,7 @@ namespace NCC.Extend.LqStatistics |
| 1429 | 1430 | ) AS BasePerformance, |
| 1430 | 1431 | SUM(CAST(jksyj.jksyj AS DECIMAL(18,2))) AS TotalPerformance |
| 1431 | 1432 | FROM lq_kd_jksyj jksyj |
| 1432 | - INNER JOIN lq_kd_pxmx pxmx ON jksyj.F_kdpxid = pxmx.F_Id | |
| 1433 | + INNER JOIN lq_kd_pxmx pxmx ON jksyj.F_kdpxid = pxmx.F_Id AND pxmx.F_IsEffective = 1 | |
| 1433 | 1434 | INNER JOIN lq_xmzl xmzl ON pxmx.px = xmzl.F_Id |
| 1434 | 1435 | INNER JOIN BASE_USER u ON jksyj.jkszh = u.F_Id |
| 1435 | 1436 | LEFT JOIN lq_mdxx md ON u.F_MDID = md.F_Id |
| ... | ... | @@ -1446,6 +1447,7 @@ namespace NCC.Extend.LqStatistics |
| 1446 | 1447 | AND jksyj.jksyj != '0' |
| 1447 | 1448 | AND jksyj.F_kdpxid IS NOT NULL |
| 1448 | 1449 | AND jksyj.F_kdpxid != '' |
| 1450 | + AND jksyj.F_IsEffective = 1 | |
| 1449 | 1451 | AND YEAR(jksyj.yjsj) = @year |
| 1450 | 1452 | AND MONTH(jksyj.yjsj) = @month |
| 1451 | 1453 | GROUP BY |
| ... | ... | @@ -1636,27 +1638,6 @@ namespace NCC.Extend.LqStatistics |
| 1636 | 1638 | |
| 1637 | 1639 | #endregion |
| 1638 | 1640 | |
| 1639 | - /// <summary> | |
| 1640 | - /// 部门信息 | |
| 1641 | - /// </summary> | |
| 1642 | - public class DepartmentInfo | |
| 1643 | - { | |
| 1644 | - /// <summary> | |
| 1645 | - /// 部门ID | |
| 1646 | - /// </summary> | |
| 1647 | - public string DepartmentId { get; set; } | |
| 1648 | - | |
| 1649 | - /// <summary> | |
| 1650 | - /// 部门名称 | |
| 1651 | - /// </summary> | |
| 1652 | - public string DepartmentName { get; set; } | |
| 1653 | - | |
| 1654 | - /// <summary> | |
| 1655 | - /// 父部门ID | |
| 1656 | - /// </summary> | |
| 1657 | - public string ParentId { get; set; } | |
| 1658 | - } | |
| 1659 | - | |
| 1660 | 1641 | #region 科技部开单业绩统计 |
| 1661 | 1642 | |
| 1662 | 1643 | /// <summary> |
| ... | ... | @@ -1706,13 +1687,14 @@ namespace NCC.Extend.LqStatistics |
| 1706 | 1687 | MAX(k.yjsj) AS LastOrderDate, |
| 1707 | 1688 | MIN(k.yjsj) AS FirstOrderDate |
| 1708 | 1689 | FROM lq_kd_kjbsyj k |
| 1709 | - LEFT JOIN lq_kd_pxmx pm ON k.F_kdpxid = pm.F_Id | |
| 1690 | + LEFT JOIN lq_kd_pxmx pm ON k.F_kdpxid = pm.F_Id AND pm.F_IsEffective = 1 | |
| 1710 | 1691 | WHERE k.kjbls IS NOT NULL |
| 1711 | 1692 | AND k.kjblsxm IS NOT NULL |
| 1712 | 1693 | AND k.yjsj IS NOT NULL |
| 1713 | 1694 | AND k.kjblsyj IS NOT NULL |
| 1714 | 1695 | AND k.kjblsyj != '' |
| 1715 | 1696 | AND k.kjblsyj != '0' |
| 1697 | + AND k.F_IsEffective = 1 | |
| 1716 | 1698 | AND YEAR(k.yjsj) = @year |
| 1717 | 1699 | AND MONTH(k.yjsj) = @month |
| 1718 | 1700 | GROUP BY |
| ... | ... | @@ -1893,5 +1875,27 @@ namespace NCC.Extend.LqStatistics |
| 1893 | 1875 | } |
| 1894 | 1876 | |
| 1895 | 1877 | #endregion |
| 1878 | + | |
| 1879 | + /// <summary> | |
| 1880 | + /// 部门信息 | |
| 1881 | + /// </summary> | |
| 1882 | + public class DepartmentInfo | |
| 1883 | + { | |
| 1884 | + /// <summary> | |
| 1885 | + /// 部门ID | |
| 1886 | + /// </summary> | |
| 1887 | + public string DepartmentId { get; set; } | |
| 1888 | + | |
| 1889 | + /// <summary> | |
| 1890 | + /// 部门名称 | |
| 1891 | + /// </summary> | |
| 1892 | + public string DepartmentName { get; set; } | |
| 1893 | + | |
| 1894 | + /// <summary> | |
| 1895 | + /// 父部门ID | |
| 1896 | + /// </summary> | |
| 1897 | + public string ParentId { get; set; } | |
| 1898 | + } | |
| 1899 | + | |
| 1896 | 1900 | } |
| 1897 | 1901 | } | ... | ... |