Explorar o código

会务成本下载部分完善

yuanrf hai 1 semana
pai
achega
3c41ab8951

+ 65 - 21
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -26493,6 +26493,7 @@ ORDER BY
                     _sqlSugar.Updateable<Grp_ConferenceAffairsCost>(data)
                         .IgnoreColumns(ignoreAllNullColumns: true)
                         .ExecuteCommand();
+                    data.Id = data.Id;
                 }
 
 
@@ -26675,46 +26676,89 @@ ORDER BY
 
             var main = _sqlSugar.Queryable<Grp_ConferenceAffairsCost>()
                      .First(x => x.Diid == Dto.GroupId && x.IsDel == 0);
-            var chi = _sqlSugar.Queryable<Grp_ConferenceAffairsCostChild>()
-                     .Where(x => x.Diid == Dto.GroupId && x.IsDel == 0 && x.ConferenceAffairsCostId == main.Id);
 
             if (main == null)
             {
                 return Ok(JsonView(false, "团组会务成本信息不存在!"));
             }
 
+            JsonView jw = JsonView(false);
+
+            //总表下载
+            var loadPath = $"{AppSettingsHelper.Get("ExcelBasePath")}ConferenceAffairs/template/";
+            var outputPath = $"{AppSettingsHelper.Get("ExcelBasePath")}ConferenceAffairs/output/total/";
+            var networkPath = outputPath.Replace(AppSettingsHelper.Get("ExcelBasePath"), AppSettingsHelper.Get("ExcelBaseUrl") + AppSettingsHelper.Get("ExcelFtpPath"));
+            var field = string.Empty;
+            var fileTypeName = string.Empty;
+
             if (Dto.FileTypeId == 0)
             {
 
             }
             else if (Dto.FileTypeId == 1)
             {
-                //报价下载
-                var filePath = $"{AppSettingsHelper.Get("GrpFileBasePath")}ConferenceAffairs/Quote/{main.Diid}/";
-                if (!Directory.Exists(filePath))
-                {
-                    Directory.CreateDirectory(filePath);
-                }
-                var fileName = $"报价单_{di.TeamName}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx";
-                var fullPath = Path.Combine(filePath, fileName);
-
 
             }
             else if (Dto.FileTypeId == 2)
             {
-                //总表下载
-                var filePath = $"{AppSettingsHelper.Get("GrpFileBasePath")}ConferenceAffairs/Total/{main.Diid}/";
-                if (!Directory.Exists(filePath))
-                {
-                    Directory.CreateDirectory(filePath);
-                }
-                var fileName = $"总表_{di.TeamName}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx";
-                var fullPath = Path.Combine(filePath, fileName);
+                loadPath += "会务成本总表.xlsx";
+                outputPath += $"{di.TeamName}_会务成本总表.xlsx";
+                networkPath += $"{di.TeamName}_会务成本总表.xlsx";
+                field = @$"
+                     a.[Index],a.PriceName,a.CostPrice,a.Count,a.Coefficient,a.BaoJiaPrice,a.AddedValue,a.Details,a.Remark,
+                            b.Name as PriceTypeStr ,
+                            c.Name as CurrencyStr ,
+                            d.Name as UnitStr ,
+                            case a.ReviewStatus 
+	                                     WHEN 1 THEN '已通过'
+                                     WHEN 0 THEN '未审核'
+                                     WHEN -1 THEN '未通过'
+                                     ELSE '未审核'
+                                END AS ReviewStatusStr 
+                ";
+                fileTypeName = "会务成本总表";
+            }
+
+            var chiExcelContent = _sqlSugar.SqlQueryable<ConferenceAffairsExcelContent>(@$"
+              SELECT 
+                 {field}
+  
+              FROM Grp_ConferenceAffairsCostChild a 
+              LEFT JOIN Sys_SetData b on b.IsDel = 0 AND b.Id  = a.PriceType 
+              LEFT JOIN Sys_SetData c on c.IsDel = 0 AND c.Id  = a.Currency
+              LEFT JOIN Sys_SetData d on d.IsDel = 0 AND d.Id  = a.Unit
+              WHERE a.isdel = 0
+                  AND a.Diid  = {main.Diid}
+                  AND a.ConferenceAffairsCostId  = {main.Id}
+            ").ToList();
 
+            var designer = new WorkbookDesigner
+            {
+                Workbook = new Workbook(loadPath)
+            };
 
-            } 
+            designer.SetDataSource("TeamName", di.TeamName);
+            designer.SetDataSource("City", main.City);
+            designer.SetDataSource("AllCost", main.CostAll);
+            designer.SetDataSource("AllBaoJia", main.BaoJiaAll);
 
-            throw new NotImplementedException("文件下载功能尚未实现!");
+            DataTable dt = CommonFun.GetDataTableFromIList<ConferenceAffairsExcelContent>(chiExcelContent);
+            dt.TableName = "TB";
+            designer.SetDataSource(dt);
+            DataTable dt1 = CommonFun.GetDataTableFromIList<CurrList>(Dto.CurrLists);
+            dt1.TableName = "currTb";
+            designer.SetDataSource(dt1);
+
+            designer.Process();
+            designer.Workbook.Save(outputPath);
+
+            jw = JsonView(true, "操作成功!", new
+            {
+                FileName = $"{di.TeamName}_{fileTypeName}.xlsx",
+                FilePath = networkPath
+            });
+
+            return Ok(jw);
         }
         #endregion
 

+ 52 - 0
OASystem/OASystem.Domain/Dtos/Groups/ConferenceAffairsInIt.cs

@@ -76,5 +76,57 @@ namespace OASystem.Domain.Dtos.Groups
     {
         public int FileTypeId { get; set; }
         public int GroupId { get; set; }
+
+        public List<CurrList> CurrLists { get; set; }
+    }
+
+    public class CurrList
+    {
+        public string CurrName { get; set; }
+
+        public decimal CurrRate { get; set; }
+
+    }
+
+    public class ConferenceAffairsExcelContent
+    {
+        /// <summary>&=[TB].Index</summary>
+        public int Index { get; set; }
+
+        /// <summary>&=[TB].PriceTypeStr</summary>
+        public string PriceTypeStr { get; set; } = string.Empty;
+
+        /// <summary>&=[TB].PriceName</summary>
+        public string PriceName { get; set; } = string.Empty;
+
+        /// <summary>&=[TB].CostPrice</summary>
+        public decimal CostPrice { get; set; }
+
+        /// <summary>&=[TB].CurrencyStr</summary>
+        public string CurrencyStr { get; set; } = string.Empty;
+
+        /// <summary>&=[TB].Count</summary>
+        public decimal Count { get; set; }
+
+        /// <summary>&=[TB].UnitStr</summary>
+        public string UnitStr { get; set; } = string.Empty;
+
+        /// <summary>&=[TB].Coefficient</summary>
+        public decimal Coefficient { get; set; }
+
+        /// <summary>&=[TB].BaoJiaPrice</summary>
+        public decimal BaoJiaPrice { get; set; }
+
+        /// <summary>&=[TB].AddedValue</summary>
+        public decimal AddedValue { get; set; }
+
+        /// <summary>&=[TB].Details</summary>
+        public string Details { get; set; } = string.Empty;
+
+        /// <summary>&=[TB].Remark</summary>
+        public string Remark { get; set; } = string.Empty;
+
+        /// <summary>&=[TB].ReviewStatusStr</summary>
+        public string ReviewStatusStr { get; set; } = string.Empty;
     }
 }