Browse Source

op团组报表
1、月份是否足够十二月
2、费用父类是否足够

LEIYI 6 months ago
parent
commit
e431dd41a2

+ 67 - 1
OASystem/OASystem.Api/Controllers/StatisticsController.cs

@@ -4214,6 +4214,8 @@ ORDER BY
                 opInfos[i].City = city;
             }
 
+            var opParentFeeData = new StatisticsOP()._OPParentFeeInfo;
+
             if (_dto.Type == 1)
             {
                 //同比增长率=(本期数-同期数)/ 同期数
@@ -4247,6 +4249,27 @@ ORDER BY
                                              ))
                                       .OrderBy(x => x.FeeId)
                                       .ToList();
+
+                
+                var opParentYearIds = yearData.Select(x => x.FeeId).ToList();
+                var opParentYearDataSelector = opParentFeeData.Where(x => !opParentYearIds.Contains(x.Id)).ToList();
+
+                if (opParentYearDataSelector.Count > 0)
+                {
+                    foreach (var item in opParentYearDataSelector)
+                    {
+                        yearData.Add(
+                            new StatisticsOPYOY(feeId: item.Id,
+                                                feeName: item.Name,
+                                                currPeriodFee: 0.00M,
+                                                samePeriodFee: 0.00M,
+                                                currPeriodGroupTotal: 0,
+                                                samePeriodGroupTotal: 0,
+                                                subFeeData: new StatisticsOPSubFeeYOY[] { }
+                                                ));
+                    }
+                    yearData = yearData.OrderBy(x => x.FeeId).ToList();
+                }
                 return Ok(JsonView(true, "操作成功!", yearData));
             }
             else if (_dto.Type == 2)
@@ -4286,8 +4309,51 @@ ORDER BY
                                                              ))
                                                          .ToArray()
                                                ))
-                                       .OrderBy(x => x.MonthId)
+                                       //.OrderBy(x => x.MonthId)
                                        .ToList();
+                //1、月份是否足够十二月
+                var monthIds = new int[] {1,2,3,4,5,6,7,8,9,10,11,12 };
+                var monthDataIds = monthData.Select(x => x.MonthId).ToArray();
+                var newMonthIds = monthIds.Where(x => !monthDataIds.Contains(x)).ToList();
+                if (newMonthIds.Count > 0)
+                {
+                    foreach (var item in newMonthIds)
+                    {
+                        monthData.Add(new StatisticsOPMonthYOY(
+                                          monthId: item,
+                                          monthName: Enum.IsDefined(typeof(MonthEnum), (int)item) ? ((MonthEnum)(int)item).GetEnumDescription() : "",
+                                          feeDatas: Array.Empty<StatisticsOPYOY>()
+                                          ));
+                    }
+                    monthData = monthData.OrderBy(x => x.MonthId).ToList();
+                }
+                //2、费用父类是否足够
+                for (int i = 0; i < monthData.Count; i++)
+                {
+                    var month = monthData[i];
+                    var opParentFeeIds = month.FeeDatas.Select(x => x.FeeId).ToList();
+                    var opParentFeeDataSelector = opParentFeeData.Where(x => !opParentFeeIds.Contains(x.Id)).ToList();
+                    if (opParentFeeDataSelector.Count > 0)
+                    {
+                        var feeDatas = month.FeeDatas.ToList();
+                        foreach (var item in opParentFeeDataSelector)
+                        {
+                            feeDatas.Add(new StatisticsOPYOY(
+                                             feeId: item.Id,
+                                             feeName: item.Name,
+                                             currPeriodFee: 0.00M,
+                                             samePeriodFee: 0.00M,
+                                             currPeriodGroupTotal: 0,
+                                             samePeriodGroupTotal: 0,
+                                             subFeeData: Array.Empty<StatisticsOPSubFeeYOY>()
+                                ));
+                        }
+                        feeDatas = feeDatas.OrderBy(x => x.FeeId).ToList();
+                        monthData[i].FeeDatas = feeDatas.ToArray();
+                    }
+                }
+                //3、费用子类是否足够
+
                 return Ok(JsonView(true, "操作成功!", monthData));
             }
             return Ok(JsonView(false, "操作失败!"));

+ 40 - 3
OASystem/OASystem.Domain/ViewModels/Financial/Fin_DailyFeePaymentView.cs

@@ -374,7 +374,6 @@ namespace OASystem.Domain.ViewModels.Financial
         public List<tree_Fin_DailyFeePaymentPageListView> dataList { get; set; }
     }
 
-
     /// <summary>
     /// 团组相关费用
     /// </summary>
@@ -1093,7 +1092,7 @@ namespace OASystem.Domain.ViewModels.Financial
         /// <param name="subFee"></param>
         /// <param name="type">1 id 2 name 3 备注 </param>
         /// <returns></returns>
-        private static string GetFeeParentInfo(int subFee,int type)
+        private string GetFeeParentInfo(int subFee,int type)
         {
            int id = -1;
            string name =string.Empty;
@@ -1185,10 +1184,48 @@ namespace OASystem.Domain.ViewModels.Financial
 
             return returnStr;
         }
+        
+        /// <summary>
+        /// 
+        /// </summary>
+        public OPParentFeeInfo[] _OPParentFeeInfo = new OPParentFeeInfo[] {
+            new OPParentFeeInfo(1,"车费","费用组成:车费、车超时费"),
+            new OPParentFeeInfo(2,"导游费","费用组成:导游费、导游交通、导游超时费用"),
+            new OPParentFeeInfo(3,"司机费","费用组成:司机工资"),
+            new OPParentFeeInfo(4,"小费","费用组成:司机小费、导游小费"),
+            new OPParentFeeInfo(5,"接送机费","费用组成:客户早餐费用、客户午餐费用、客户晚餐费用、司机餐补、导游餐补、早餐超支费用、午餐超支费用、晚餐超支费用"),
+            new OPParentFeeInfo(6,"餐费","费用组成:车费、车超时费"),
+            new OPParentFeeInfo(7,"住补费","费用组成:住补费用、导游房补"),
+            new OPParentFeeInfo(8,"景点费","费用组成:导游景点费、景点门票费、景点门票超支费用"),
+            new OPParentFeeInfo(9,"翻译费","费用组成:翻译费、翻译超时费"),
+            new OPParentFeeInfo(10,"饮料/零食/水果费","费用组成:饮料/零食/水果费"),
+            new OPParentFeeInfo(11,"其他费用","费用组成:其他费用、其他额外费用"),
+        };
+    }
+
+    
+
+
+
+    public class OPParentFeeInfo
+    {
+        public int Id { get; set; }
+
+        public string Name { get; set; }
+
+        public string Remark { get; set; }
+
+        public OPParentFeeInfo() { }
+        public OPParentFeeInfo(int id,string name ,string remark) 
+        {
+            this.Id = id;
+            this.Name = name;
+            this.Remark = remark;
+        }
+
     }
 
 
-