LEIYI 4 mēneši atpakaļ
vecāks
revīzija
84b8f443f1

+ 5 - 5
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -4266,7 +4266,7 @@ Group by PriceType ", dto.diId);
         #region 信用卡对账
 
         /// <summary>
-        ///将指定的Excel的文件转换成DataTable (Excel的第一个sheet)
+        ///将指定的Excel的文件转换成DataTable(Excel的第一个sheet)
         /// </summary>
         /// <param name="fullFielPath">文件的绝对路径</param>
         /// <returns></returns>
@@ -4430,11 +4430,13 @@ Group by PriceType ", dto.diId);
 
             //读取ExcelFile
             DataTable dt = ExcelFileToDataTable(file);
-            dt.TableName = "TB";
+            
             if (dt == null)
             {
                 return Ok(JsonView(false, $"您上传的Excel工作表没有内容,请检查!!!"));
             }
+
+            dt.TableName = "TB";
             //信用卡信息
             string sql = string.Format($"Select * From Grp_CreditCardPayment Where Isdel = 0 And CTDId = {cardType} And ConsumptionDate between '{beginDt}' and '{endDt}' ");
             var List_ccp = await _sqlSugar.SqlQueryable<Grp_CreditCardPayment>(sql).ToListAsync();
@@ -4537,8 +4539,6 @@ Group by PriceType ", dto.diId);
                             dt.AcceptChanges(); //提交
                         }
                     }
-
-
                     foreach (DataRow item in dt.Rows)
                     {
                         #region 匹配的金额
@@ -5057,7 +5057,7 @@ Group by PriceType ", dto.diId);
         /// <param name="sheetName">工作表名</param>
         /// <param name="tbContainer">将数据存入的DataTable</param>
         /// <returns></returns>
-        public static DataTable ExcelToDataTable(string pathName, string sheetName)
+        public static DataTable ExcelToDataTable(string pathName, string sheetName="")
         {
             DataTable tbContainer = new DataTable();
             string strConn = string.Empty;

+ 149 - 12
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -29,11 +29,13 @@ using OASystem.Domain.ViewModels.Groups;
 using OASystem.Domain.ViewModels.Statistics;
 using OASystem.Infrastructure.Repositories.Financial;
 using OASystem.Infrastructure.Repositories.Groups;
+using OfficeOpenXml;
 using Quartz.Util;
 using SqlSugar;
 using SqlSugar.Extensions;
 using System.Collections;
 using System.Data;
+using System.Data.OleDb;
 using System.Diagnostics;
 using System.Globalization;
 using System.IO;
@@ -3555,7 +3557,6 @@ FROM
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> DecreasePaymentsSelect(DecreasePaymentsDto dto)
         {
-
             #region 参数验证
 
             if (dto.UserId < 1) return Ok(JsonView(false, "请传入有效的UserId参数!"));
@@ -3646,7 +3647,6 @@ FROM
             if (dto.Id < 1) return Ok(JsonView(false, "请传入有效的数据Id!"));
 
             return Ok(await _decreasePaymentsRep.QueryDecreasePaymentsById(dto));
-
         }
 
         /// <summary>
@@ -3678,6 +3678,129 @@ FROM
             return Ok(jw);
         }
 
+        /// <summary>
+        /// 团组增减款项 OTA匹配
+        /// </summary>
+        /// <param name="file"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IActionResult> DecreasePaymentsOTAMate(IFormFile file)
+        {
+            if (file.Length < 1) return Ok(JsonView(false, "请上传文件!"));
+
+            string fileName = file.FileName;
+            if (!fileName.EndsWith(".xlsx") && !fileName.EndsWith(".xls"))
+            {
+                return Ok(JsonView(false, "请上传Excel文件!"));
+            }
+
+            //D:\FTP\File\OA2023\Office\GrpFile\团组增减款项相关文件\团组其他款项(OTA)
+            var path = @$"{AppSettingsHelper.Get("GrpFileBasePath")}团组增减款项相关文件/团组其他款项(OTA)";
+            if (!Directory.Exists(path))
+            {
+                Directory.CreateDirectory(path);
+            }
+            var filePath = @$"{path}/{fileName}";
+            //保存文件
+            using (FileStream fs = System.IO.File.Create(filePath))
+            {
+                file.CopyTo(fs);
+                fs.Flush();
+            }
+            if (!System.IO.File.Exists(filePath)) return Ok(JsonView(false, "文件不存在!"));
+
+            //读取ExcelFile
+            DataTable dt = ExcelToDataTable(filePath);
+            if (dt == null) return Ok(JsonView(false, $"您上传的Excel工作表没有内容,请检查!!!"));
+            dt.TableName = "TB";
+
+            //修改table列名
+            dt.Columns[0].ColumnName = "OTAOrderNo";     // OTA订单号
+            dt.Columns[1].ColumnName = "PackageName";    // 套餐名
+            dt.Columns[2].ColumnName = "IsPay";          // 是否支付
+            dt.Columns[3].ColumnName = "IsShipments";    // 是否发货
+            dt.Columns[4].ColumnName = "IsSendBack";     // 是否寄回
+            dt.Columns[5].ColumnName = "OrderTime";      // 下单时间
+            dt.Columns[6].ColumnName = "UseTime";        // 使用时间
+            dt.Columns[7].ColumnName = "Quantity";       // 台数
+            dt.Columns[8].ColumnName = "Days";           // 租赁天数
+            dt.Columns[9].ColumnName = "QuantityShipped";// 发货数量
+            dt.Columns[9].ColumnName = "TotalPrice";     // 总金额
+            dt.Columns[9].ColumnName = "GroupName";      // 团组名称
+            dt.Columns[9].ColumnName = "OATotalPrice";   // OA金额
+
+            var otaOrderNos = new List<string>();
+            foreach (DataRow item in dt.Rows)
+            {
+                otaOrderNos.Add(item["OTAOrderNo"].ToString());
+            }
+
+            var oaDatas = await _sqlSugar.Queryable<Grp_DecreasePayments>()
+                .LeftJoin<Grp_DelegationInfo>((dp, di) => dp.DiId == di.Id)
+                .Where((dp, di) => dp.IsDel == 0 && dp.PriceName.Contains("wifi") || otaOrderNos.Contains(dp.OTAOrderNo))
+                .Select((dp, di) => new
+                {
+                    dp.PriceName,
+                    dp.OTAOrderNo,
+                    dp.FeeTotal,
+                    di.TeamName,
+                })
+                .ToListAsync();
+
+            foreach (DataRow item in dt.Rows)
+            {
+                var otaOrderNo = item["OTAOrderNo"].ToString();
+                var oaData = oaDatas.Find(x => x.OTAOrderNo.Contains(otaOrderNo));
+                if (oaData == null) continue;
+
+                item["GroupName"] = oaData.TeamName;
+                item["OATotalPrice"] = oaData.FeeTotal.ToString("#0.00");
+            }
+
+            string fileName1 = $"OTA_WIFI费用{DateTime.Now.ToString("yyyyMMddHHmmss")}.xls";
+            Dictionary<string, object> pairs = new Dictionary<string, object>();
+            List<DataTable> datas = new List<DataTable>();
+            datas.Add(dt);
+            url = AsposeHelper.ExpertExcelToModel("信用卡对账模板-美元卡.xls", $"CreditCardBill", fileName1, pairs, datas);
+
+
+            return Ok(JsonView(true));
+        }
+
+        #region
+        private DataTable ExcelToDataTable(string filePath)
+        {
+            DataTable dataTable = new DataTable();
+            using (var package = new ExcelPackage(new FileInfo(filePath)))
+            {
+                ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
+                ExcelWorksheet worksheet = package.Workbook.Worksheets.First();
+                int rowCount = worksheet.Dimension.Rows;
+                int colCount = worksheet.Dimension.Columns;
+
+                // 获取标题
+                for (int col = 1; col <= colCount; col++)
+                {
+                    dataTable.Columns.Add(worksheet.Cells[1, col].Value.ToString());
+                }
+
+                // 获取数据
+                for (int row = 2; row <= rowCount; row++)
+                {
+                    DataRow dataRow = dataTable.NewRow();
+                    for (int col = 1; col <= colCount; col++)
+                    {
+                        dataRow[col - 1] = worksheet.Cells[row, col].Value;
+                    }
+                    dataTable.Rows.Add(dataRow);
+                }
+            }
+            return dataTable;
+        }
+
+
+        #endregion
+
         #endregion
 
         #region 文件上传、删除
@@ -15397,7 +15520,6 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
 
         #endregion
 
-
         #region 团组接待意见调查 Grp_ReceptionOpinionSurvey
         /// <summary>
         /// 团组接待意见调查 - 信息管理
@@ -15434,15 +15556,6 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
             if (groupId < 1) Ok(JsonView(false,"请传入有效的diId"));
 
             var data = await _opinionaireRep.Query(x => x.DiId == groupId)
-                 //.LeftJoin<Sys_Users>((x,u) => x.CreateUserId == u.Id)
-                 //.Select((x, u) => new
-                 //{
-                 //    x.Id,
-                 //    x.TourGuideName,
-                 //    x.CityName,
-                 //    CreateUserName = u.CnName,
-                 //    x.CreateTime
-                 //})
                  .Select(x => new
                  {
                      x.Id,
@@ -15523,6 +15636,30 @@ And (UnitName != '' Or UnitName != null) {sqlWhere}");
             return Ok(JsonView("操作成功!"));
         }
 
+        /// <summary>
+        /// 团组接待意见调查 - 用户
+        /// 列表
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpDelete("{diId}")]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> OpinionaireUserList(int diId)
+        {
+            if (diId < 1) Ok(JsonView(false, "请传入有效的diId"));
+
+            var data = await _opinionaireRep.Query(x => x.DiId == diId)
+                .Select(x => new {
+                
+                })
+                .ToListAsync();
+
+
+            return Ok(JsonView(data));
+        }
+
+
+
         #endregion
 
         //        /// <summary>

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1 - 0
OASystem/OASystem.Api/OAMethodLib/File/AsposeHelper.cs


+ 2 - 0
OASystem/OASystem.Api/OAMethodLib/GeneralMethod.cs

@@ -19,6 +19,7 @@ using OASystem.Domain.ViewModels.Groups;
 using OASystem.Domain.ViewModels.JuHeExchangeRate;
 using OASystem.Infrastructure.Repositories.CRM;
 using OASystem.Infrastructure.Repositories.Groups;
+using OfficeOpenXml;
 using System.Data;
 using System.IdentityModel.Tokens.Jwt;
 using System.Security.Claims;
@@ -38,6 +39,7 @@ namespace OASystem.API.OAMethodLib
         private static readonly IHubContext<ChatHub, IChatClient> _hubContext = AutofacIocManager.Instance.GetService<IHubContext<ChatHub, IChatClient>>();
 
         private readonly static string[] weekdays = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
+        
         #region 员工注册默认添加基础页面
 
         /// <summary>

+ 1 - 1
OASystem/OASystem.Api/OASystem.API.csproj

@@ -32,7 +32,7 @@
     <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.0" />
     <PackageReference Include="Betalgo.OpenAI.GPT3" Version="6.8.3" />
     <PackageReference Include="BouncyCastle.NetCore" Version="1.8.8" />
-    <PackageReference Include="EPPlus" Version="7.1.3" />
+    <PackageReference Include="EPPlus" Version="7.4.1" />
     <PackageReference Include="Flurl.Http" Version="3.2.4" />
     <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.11" />
     <PackageReference Include="NPOI" Version="2.7.0" />

+ 5 - 0
OASystem/OASystem.Domain/Dtos/Groups/DecreasePaymentsDto.cs

@@ -147,6 +147,11 @@ namespace OASystem.Domain.Dtos.Groups
         /// 备注
         /// </summary>
         public string Remark { get; set; }
+
+        /// <summary>
+        /// OTA订单号NO
+        /// </summary>
+        public string OTAOrderNo { get; set; }
     }
     public class DecreasePaymentsByIdDto
     {

+ 6 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_DecreasePayments.cs

@@ -103,5 +103,11 @@ namespace OASystem.Domain.Entities.Groups
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
         public string FilePath { get; set; }
+
+        /// <summary>
+        /// OTA订单号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
+        public string OTAOrderNo { get; set; }
     }
 }

+ 2 - 0
OASystem/OASystem.Domain/ViewModels/Groups/DecreasePaymentsView.cs

@@ -145,5 +145,7 @@ namespace OASystem.Domain.ViewModels.Groups
         /// 备注
         /// </summary>
         public string remark { get; set; }
+
+        public string OTAOrderNo { get; set; }
     }
 }

+ 2 - 0
OASystem/OASystem.Infrastructure/Repositories/Groups/DecreasePaymentsRepository.cs

@@ -283,6 +283,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     FeeTotal = grp_Decrease.FeeTotal,
                     Currency = grp_Decrease.Currency,
                     FilePath = grp_Decrease.FilePath,
+                    OTAOrderNo = grp_Decrease.OTAOrderNo,
                     Remark = grp_Decrease.Remark,
                 });
                 if (res)
@@ -446,6 +447,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
 											dp.FeeTotal,
 											dp.Currency,
 											dp.FilePath,
+                                            dp.OTAOrderNo,
 											dp.Remark,
 											ccp.PayDId,
 											ccp.OrbitalPrivateTransfer,