Browse Source

GROUP COST EXCEL

yuanrf 4 days ago
parent
commit
0c461ece94

+ 161 - 38
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -16797,6 +16797,60 @@ FROM
 
             var List_GC = _GroupCostRepository.GetAllByDiid(dto.Diid);
 
+            List<int> hideColumnList = new List<int>();
+
+            var ColumnSetting = new[]
+                             {
+                                new { tag = "VF", Index = 4, P = "CarCost" },
+                                new { tag = "VN", Index = 5, P = "CarNumber" },
+                                new { tag = "VRD", Index = 6, P = "CarTiming" },
+                                new { tag = "T/G S", Index = 7, P = "TGS" },
+                                new { tag = "TGWH", Index = 8, P = "TGWH" },
+                                new { tag = "T/G OF", Index = 9, P = "TGOF" },
+                                new { tag = "T/G M", Index = 10, P = "TGM" },
+                                new { tag = "T/G A", Index = 11, P = "TGA" },
+                                new { tag = "T/G TF", Index = 12, P = "TGTF" },
+                                new { tag = "T/G EF", Index = 13, P = "TGEF" },
+                                new { tag = "C/F S", Index = 14, P = "CFS" },
+                                new { tag = "C/F M", Index = 15, P = "CFM" },
+                                new { tag = "C/F OF", Index = 16, P = "CFOF" },
+                                new { tag = "B", Index = 17, P = "B" },
+                                new { tag = "L", Index = 18, P = "L" },
+                                new { tag = "D", Index = 19, P = "D" },
+                                new { tag = "TBR", Index = 20, P = "TBR" },
+                                new { tag = "SGR", Index = 21, P = "SGR" },
+                                new { tag = "JS/ES", Index = 22, P = "JS_ES" },
+                                new { tag = "Suite", Index = 23, P = "Suite" },
+                                new { tag = "ACCO N", Index = 24, P = "ACCON" },
+                                new { tag = "T/V", Index = 25, P = "TV" },
+                                new { tag = "1/L", Index = 26, P = "iL" },
+                                new { tag = "I/F", Index = 27, P = "IF" },
+                                new { tag = "EF", Index = 28, P = "EF" },
+                                new { tag = "B/R/F", Index = 29, P = "B_R_F" },
+                                new { tag = "TE", Index = 30, P = "TE" },
+                                new { tag = "T/G T", Index = 31, P = "TGTips" },
+                                new { tag = "DRV T", Index = 32, P = "DRVTips" },
+                                new { tag = "P/C", Index = 33, P = "PC" },
+                                new { tag = "T/L F", Index = 34, P = "TLF" },
+                                new { tag = "E/C T", Index = 35, P = "ECT" }
+                            };
+
+            Func<string, bool> isEmpty = (str) =>
+            {
+                if (decimal.TryParse(str,out decimal str_De) && str_De == 0)
+                {
+                    return true;
+                }
+
+                if (string.IsNullOrWhiteSpace(str))
+                {
+                    return true;
+                }
+
+                return false;
+            };
+
+
             for (int i = 0; i < List_GC.Count; i++)
             {
                 GroupCost_Excel gc = new GroupCost_Excel();
@@ -16809,43 +16863,103 @@ FROM
                 gc.Date = (List_GC[i].Date + "\n" + week).ToString();
                 gc.ITIN = List_GC[i].ITIN;
                 gc.CarType = List_GC[i].CarType;
-                gc.CarTiming = List_GC[i].CarTiming.ToString() == "0" ? "/" : List_GC[i].CarTiming.ToString();
-                gc.CarCost = List_GC[i].CarCost.ToString() == "0" ? "/" : List_GC[i].CarCost.ToString();
-                gc.CarNumber = List_GC[i].CarNumber.ToString() == "0" ? "/" : List_GC[i].CarNumber.ToString();
-                gc.TGS = List_GC[i].TGS.ToString() == "0" ? "/" : List_GC[i].TGS.ToString();
-                gc.TGWH = List_GC[i].TGWH.ToString() == "0" ? "/" : List_GC[i].TGWH.ToString();
-                gc.TGN = List_GC[i].TGS.ToString() == "0" ? "/" : List_GC[i].TGN.ToString();
-                gc.TGOF = List_GC[i].TGOF.ToString() == "0" ? "/" : List_GC[i].TGOF.ToString();
-
-                gc.TGM = List_GC[i].TGM.ToString() == "0" ? "/" : List_GC[i].TGM.ToString();
-                gc.TGA = List_GC[i].TGA.ToString() == "0" ? "/" : List_GC[i].TGA.ToString();
-                gc.TGTF = List_GC[i].TGTF.ToString() == "0" ? "/" : List_GC[i].TGTF.ToString();
-                gc.TGEF = List_GC[i].TGEF.ToString() == "0" ? "/" : List_GC[i].TGEF.ToString();
-                gc.CFS = List_GC[i].CFS.ToString() == "0" ? "/" : List_GC[i].CFS.ToString();
-                gc.CFM = List_GC[i].CFM.ToString() == "0" ? "/" : List_GC[i].CFOF.ToString();
-                gc.CFOF = List_GC[i].CFOF.ToString() == "0" ? "/" : List_GC[i].CFOF.ToString();
-                gc.B = List_GC[i].B.ToString() == "0" ? "/" : List_GC[i].B.ToString();
-                gc.L = List_GC[i].L.ToString() == "0" ? "/" : List_GC[i].L.ToString();
-                gc.D = List_GC[i].D.ToString() == "0" ? "/" : List_GC[i].D.ToString();
-                gc.TBR = List_GC[i].TBR.ToString() == "0" ? "/" : List_GC[i].TBR.ToString();
-                gc.SGR = List_GC[i].SGR.ToString() == "0" ? "/" : List_GC[i].SGR.ToString();
-                gc.JS_ES = List_GC[i].JS_ES.ToString() == "0" ? "/" : List_GC[i].JS_ES.ToString();
-                gc.Suite = List_GC[i].Suite.ToString() == "0" ? "/" : List_GC[i].Suite.ToString();
-                gc.ACCON = List_GC[i].ACCON.ToString() == "0" ? "/" : List_GC[i].ACCON.ToString();
-                gc.TV = List_GC[i].TV.ToString() == "0" ? "/" : List_GC[i].TV.ToString();
-                gc.iL = List_GC[i].iL.ToString() == "0" ? "/" : List_GC[i].iL.ToString();
-                gc.IF = List_GC[i].IF.ToString() == "0" ? "/" : List_GC[i].IF.ToString();
-                gc.EF = List_GC[i].EF.ToString() == "0" ? "/" : List_GC[i].EF.ToString();
-                gc.B_R_F = List_GC[i].B_R_F.ToString() == "0" ? "/" : List_GC[i].B_R_F.ToString();
-                gc.TE = List_GC[i].TE.ToString() == "0" ? "/" : List_GC[i].TE.ToString();
-                gc.TGTips = List_GC[i].TGTips.ToString() == "0" ? "/" : List_GC[i].TGTips.ToString();
-                gc.DRVTips = List_GC[i].DRVTips.ToString() == "0" ? "/" : List_GC[i].DRVTips.ToString();
-                gc.PC = List_GC[i].PC.ToString() == "0" ? "/" : List_GC[i].PC.ToString();
-                gc.TLF = List_GC[i].TLF.ToString() == "0" ? "/" : List_GC[i].TLF.ToString();
-                gc.ECT = List_GC[i].ECT.ToString() == "0" ? "/" : List_GC[i].ECT.ToString();
+                gc.CarTiming = isEmpty(List_GC[i].CarTiming.ToString()) ? "" : List_GC[i].CarTiming.ToString();
+                gc.CarCost = isEmpty(List_GC[i].CarCost.ToString()) ? "" : List_GC[i].CarCost.ToString();
+                gc.CarNumber = isEmpty(List_GC[i].CarNumber.ToString()) ? "" : List_GC[i].CarNumber.ToString();
+                gc.TGS = isEmpty(List_GC[i].TGS.ToString()) ? "" : List_GC[i].TGS.ToString();
+                gc.TGWH = isEmpty(List_GC[i].TGWH.ToString()) ? "" : List_GC[i].TGWH.ToString();
+                gc.TGN = isEmpty(List_GC[i].TGN.ToString()) ? "" : List_GC[i].TGN.ToString();
+                gc.TGOF = isEmpty(List_GC[i].TGOF.ToString()) ? "" : List_GC[i].TGOF.ToString();
+                gc.TGM = isEmpty(List_GC[i].TGM.ToString()) ? "" : List_GC[i].TGM.ToString();
+                gc.TGA = isEmpty(List_GC[i].TGA.ToString()) ? "" : List_GC[i].TGA.ToString();
+                gc.TGTF = isEmpty(List_GC[i].TGTF.ToString()) ? "" : List_GC[i].TGTF.ToString();
+                gc.TGEF = isEmpty(List_GC[i].TGEF.ToString()) ? "" : List_GC[i].TGEF.ToString();
+                gc.CFS = isEmpty(List_GC[i].CFS.ToString()) ? "" : List_GC[i].CFS.ToString();
+                gc.CFM = isEmpty(List_GC[i].CFM.ToString()) ? "" : List_GC[i].CFM.ToString();
+                gc.CFOF = isEmpty(List_GC[i].CFOF.ToString()) ? "" : List_GC[i].CFOF.ToString();
+                gc.B = isEmpty(List_GC[i].B.ToString()) ? "" : List_GC[i].B.ToString();
+                gc.L = isEmpty(List_GC[i].L.ToString()) ? "" : List_GC[i].L.ToString();
+                gc.D = isEmpty(List_GC[i].D.ToString()) ? "" : List_GC[i].D.ToString();
+                gc.TBR = isEmpty(List_GC[i].TBR.ToString()) ? "" : List_GC[i].TBR.ToString();
+                gc.SGR = isEmpty(List_GC[i].SGR.ToString()) ? "" : List_GC[i].SGR.ToString();
+                gc.JS_ES = isEmpty(List_GC[i].JS_ES.ToString()) ? "" : List_GC[i].JS_ES.ToString();
+                gc.Suite = isEmpty(List_GC[i].Suite.ToString()) ? "" : List_GC[i].Suite.ToString();
+                gc.ACCON = isEmpty(List_GC[i].ACCON.ToString()) ? "" : List_GC[i].ACCON.ToString();
+                gc.TV = isEmpty(List_GC[i].TV.ToString()) ? "" : List_GC[i].TV.ToString();
+                gc.iL = isEmpty(List_GC[i].iL.ToString()) ? "" : List_GC[i].iL.ToString();
+                gc.IF = isEmpty(List_GC[i].IF.ToString()) ? "" : List_GC[i].IF.ToString();
+                gc.EF = isEmpty(List_GC[i].EF.ToString()) ? "" : List_GC[i].EF.ToString();
+                gc.B_R_F = isEmpty(List_GC[i].B_R_F.ToString()) ? "" : List_GC[i].B_R_F.ToString();
+                gc.TE = isEmpty(List_GC[i].TE.ToString()) ? "" : List_GC[i].TE.ToString();
+                gc.TGTips = isEmpty(List_GC[i].TGTips.ToString()) ? "" : List_GC[i].TGTips.ToString();
+                gc.DRVTips = isEmpty(List_GC[i].DRVTips.ToString()) ? "" : List_GC[i].DRVTips.ToString();
+                gc.PC = isEmpty(List_GC[i].PC.ToString()) ? "" : List_GC[i].PC.ToString();
+                gc.TLF = isEmpty(List_GC[i].TLF.ToString()) ? "" : List_GC[i].TLF.ToString();
+                gc.ECT = isEmpty(List_GC[i].ECT.ToString()) ? "" : List_GC[i].ECT.ToString();
+                gc.EFR = List_GC[i].EFR;
                 List_GC1.Add(gc);
             }
 
+            if (List_GC1.Count > 0)
+            {
+                var p = List_GC1[0];
+                var prs = p.GetType().GetProperties();
+                foreach (var item in prs)
+                {
+                    var tp = item.PropertyType;
+
+                    if (tp == typeof(int))
+                    {
+                        var val = List_GC1.Sum(x => (int)x.GetType().GetProperty(item.Name).GetValue(x));
+                        if (val == 0)
+                        {
+                            var columnSetting = ColumnSetting.FirstOrDefault(x => x.P == item.Name);
+                            if (columnSetting != null)
+                            {
+                                hideColumnList.Add(columnSetting.Index);
+                            }
+                        }
+                    }
+
+                    if (tp == typeof(decimal))
+                    {
+                        var val = List_GC1.Sum(x => (decimal)x.GetType().GetProperty(item.Name).GetValue(x));
+                        if (val == 0)
+                        {
+                            var columnSetting = ColumnSetting.FirstOrDefault(x => x.P == item.Name);
+                            if (columnSetting != null)
+                            {
+                                hideColumnList.Add(columnSetting.Index);
+                            }
+                        }
+                    }
+
+                    if (tp == typeof(string))
+                    {
+                        var val = List_GC1.Sum(x =>
+                        {
+                            var str = (string)x.GetType().GetProperty(item.Name).GetValue(x);
+                            if (decimal.TryParse(str , out decimal str_De))
+                            {
+                                return str_De;
+                            }
+                            else
+                            {
+                                return string.IsNullOrEmpty((string)x.GetType().GetProperty(item.Name).GetValue(x)) ? 0 : 1;
+                            }
+                        });
+                        if (val == 0)
+                        {
+                            var columnSetting = ColumnSetting.FirstOrDefault(x => x.P == item.Name);
+                            if (columnSetting != null)
+                            {
+                                hideColumnList.Add(columnSetting.Index);
+                            }
+                        }
+                    }
+                }
+            }
+
             var dt = CommonFun.GetDataTableFromIList(List_GC1);
             dt.TableName = "TB";
 
@@ -16890,14 +17004,15 @@ FROM
             designer.SetDataSource("JSESNumber", txtJSESNumber);
             designer.SetDataSource("SUITENumber", txtSUITENumbe);
 
-            var ws = designer.Workbook.Worksheets[0];
+            var ws = designer.Workbook.Worksheets[1];
             int Row = List_GC.Count;
-            int startIndex = 11;
+            int startIndex = 0;
             int HideRows = 0;
+            Row = 0;
+
             List<int> hideRowsList = new List<int>();
             decimal TzZCB2 = 0.00M, TzZLR2 = 0.00M, TzZBJ2 = 0.00M;
 
-
             #region A段left数据
             var left = dto.leftInfo.Find(x => x.Type == "A");
             if (left == null)
@@ -17822,7 +17937,8 @@ FROM
             designer.SetDataSource(dt);
             //根据数据源处理生成报表内容
             designer.Process();
-            designer.Workbook.Worksheets[0].Name = "清单";
+            designer.Workbook.Worksheets[0].Name = "费用明细";
+            designer.Workbook.Worksheets[1].Name = "费用总核算";
             Worksheet sheet = designer.Workbook.Worksheets[0];
 
             foreach (var Rowindex in hideRowsList)
@@ -17830,6 +17946,13 @@ FROM
                 ws.Cells.HideRows(Rowindex, 2);
             }
 
+            ws = designer.Workbook.Worksheets[0];
+
+            foreach (var Column in hideColumnList)
+            {
+                ws.Cells.HideColumns(Column, 1);
+            }
+
             byte[] bytes = null;
             string strFileName = di.TeamName + "-团组-成本.xls";
             using (MemoryStream stream = new MemoryStream())

+ 2 - 0
OASystem/OASystem.Domain/Dtos/Groups/GroupCostSavaDto.cs

@@ -1325,6 +1325,8 @@ namespace OASystem.Domain.Dtos.Groups
         public string GwCount { get; set; }
 
         public string FyCount { get; set; }
+
+        public string EFR { get; set; }
     }