Browse Source

添加培训费用支持并优化相关逻辑

在 `GroupsController.cs` 中添加了对 `TrainCost` 的支持,更新了 SQL 查询和 DTO 处理逻辑以处理新的培训费用字段。
在 `EnterExitCostDto.cs`、`Grp_NationalTravelFee.cs` 和 `EnterExitCostView.cs` 中新增 `TrainCost` 属性并设置默认值。
更新 `EnterExitCostRepository.cs` 中的 `PostNationalTravelFeeOperate` 方法返回类型,从 `Result` 改为 `JsonView`,并调整了返回信息格式。
确保 SQL 查询中包含 `TrainCost` 字段,并简化了异常处理,提升了代码可读性和维护性。
LEIYI 2 weeks ago
parent
commit
b6a5925289

+ 34 - 60
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -399,7 +399,6 @@ namespace OASystem.API.Controllers
 
         #region 团组前期信息
 
-
         /// <summary>
         ///  团组前期信息 List
         /// </summary>
@@ -7489,44 +7488,37 @@ FROM
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> GetNationalTravelFeeData(PortDtoBase dto)
         {
-            try
-            {
-                Stopwatch sw = new Stopwatch();
-                sw.Start();
-                string nationalTravelFeeSql = string.Format(@"Select ssd.Name as CurrencyCode, ssd.Remark as CurrencyName,su.CnName as LastUpdateUserName,gntf.* From Grp_NationalTravelFee gntf
+            Stopwatch sw = new Stopwatch();
+            sw.Start();
+            string nationalTravelFeeSql = string.Format(@"Select ssd.Name as CurrencyCode, ssd.Remark as CurrencyName,su.CnName as LastUpdateUserName,gntf.* From Grp_NationalTravelFee gntf
                                                               Left Join Sys_SetData ssd On ssd.STid = 66 And gntf.Currency = ssd.Id
                                                               Left Join Sys_Users su On gntf.LastUpdateUserId = su.Id 
                                                               Where gntf.Isdel = 0");
-                var nationalTravelFeeData = _sqlSugar.SqlQueryable<NationalTravelFeeInfoView>(nationalTravelFeeSql).ToList();
+            var nationalTravelFeeData = _sqlSugar.SqlQueryable<NationalTravelFeeInfoView>(nationalTravelFeeSql).ToList();
 
-                //var nationalTravel = nationalTravelFeeData.GroupBy(it => it.Country).Select(it1 => it1.FirstOrDefault());
+            //var nationalTravel = nationalTravelFeeData.GroupBy(it => it.Country).Select(it1 => it1.FirstOrDefault());
 
-                //List<dynamic> nationalTravelFeeData1 = new List<dynamic>();
+            //List<dynamic> nationalTravelFeeData1 = new List<dynamic>();
 
-                //foreach (var item in nationalTravel)
-                //{
-                //    var cityData = nationalTravelFeeData.Where(it => it.Country == item.Country).ToList();
-                //    var otherData = cityData.Where(it => it.City.Contains("其他城市")).FirstOrDefault();
-                //    if (otherData != null)
-                //    {
-                //        cityData.Remove(otherData);
-                //        cityData.Add(otherData);
-                //    }
-                //    nationalTravelFeeData1.Add(new
-                //    {
-                //        Country = item.Country,
-                //        CityData = cityData
-                //    });
-                //}
+            //foreach (var item in nationalTravel)
+            //{
+            //    var cityData = nationalTravelFeeData.Where(it => it.Country == item.Country).ToList();
+            //    var otherData = cityData.Where(it => it.City.Contains("其他城市")).FirstOrDefault();
+            //    if (otherData != null)
+            //    {
+            //        cityData.Remove(otherData);
+            //        cityData.Add(otherData);
+            //    }
+            //    nationalTravelFeeData1.Add(new
+            //    {
+            //        Country = item.Country,
+            //        CityData = cityData
+            //    });
+            //}
+
+            sw.Stop();
+            return Ok(JsonView(true, "查询成功!耗时:" + sw.ElapsedMilliseconds + "ms", nationalTravelFeeData));
 
-                sw.Stop();
-                return Ok(JsonView(true, "查询成功!耗时:" + sw.ElapsedMilliseconds + "ms", nationalTravelFeeData));
-            }
-            catch (Exception ex)
-            {
-                return Ok(JsonView(false, ex.Message));
-                throw;
-            }
         }
 
         /// <summary>
@@ -7572,22 +7564,18 @@ FROM
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> PostNationalTravelFeePage(NationalTravelFeePageDto dto)
         {
-            int portId = dto.PortType;
+            int portId = dto.PortType,
+                pageIndex = dto.PageIndex,
+                pageSize = dto.PageSize;
             if (portId != 1 && portId != 2 && portId != 3) return Ok(JsonView(false, "请输入正确的端口号!\r\n请求端口分类1 Web 2 Android 3 IOS"));
 
-            if (dto.PageIndex == 0) return Ok(JsonView(false, "当前页码数不能为0!"));
-            if (dto.PageSize == 0) return Ok(JsonView(false, "每页条数不能0!"));
+            if (pageIndex == 0) pageIndex = 1;
+            if (pageSize == 0) pageSize = 10;
 
             string whereSql = string.Empty;
-            if (!string.IsNullOrEmpty(dto.Country))
-            {
-                whereSql += string.Format(@" And gntf.Country ='{0}'", dto.Country);
-            }
+            if (!string.IsNullOrEmpty(dto.Country)) whereSql += string.Format(@" And gntf.Country ='{0}'", dto.Country);
 
-            if (!string.IsNullOrEmpty(dto.City))
-            {
-                whereSql += string.Format(@" And gntf.City='{0}'", dto.City);
-            }
+            if (!string.IsNullOrEmpty(dto.City)) whereSql += string.Format(@" And gntf.City='{0}'", dto.City);
 
             string pageSql = string.Format(@"Select * From (
                                              Select row_number() over(order by gntf.LastUpdateTime Desc) as RowNumber,
@@ -7597,9 +7585,7 @@ FROM
                                              Left Join Sys_Users su On gntf.LastUpdateUserId = su.Id 
                                              Where gntf.Isdel = 0 {0} ) temp ", whereSql);
             RefAsync<int> total = 0;
-            var nationalTravelFeeData = await _groupRepository._sqlSugar.SqlQueryable<NationalTravelFeePageInfoView>(pageSql).ToPageListAsync(dto.PageIndex, dto.PageSize, total);
-
-
+            var nationalTravelFeeData = await _sqlSugar.SqlQueryable<NationalTravelFeePageInfoView>(pageSql).ToPageListAsync(dto.PageIndex, dto.PageSize, total);
 
             return Ok(JsonView(true, "查询成功!", nationalTravelFeeData, (int)total));
 
@@ -7629,9 +7615,8 @@ FROM
                 whereSql = string.Format(@"And City = '{0}' ", dto.City);
             }
 
-
             string sql = string.Format(@"Select gntf.Country,gntf.City,gntf.Currency,ssd.Name as CurrencyCode, 
-	                                                ssd.Remark as CurrencyName,gntf.RoomCost,gntf.FoodCost,gntf.PublicCost,
+	                                                ssd.Remark as CurrencyName,gntf.RoomCost,gntf.FoodCost,gntf.PublicCost,gntf.TrainCost,
 	                                                gntf.LastUpdateUserId,su.CnName as LastUpdateUserName,gntf.LastUpdateTime 
                                              From Grp_NationalTravelFee gntf
                                              Left Join Sys_SetData ssd On ssd.STid = 66 And gntf.Currency = ssd.Id
@@ -7640,8 +7625,6 @@ FROM
 
             var nationalTravelFeeData = await _groupRepository._sqlSugar.SqlQueryable<NationalTravelFeeInfoByCountryAndCityView>(sql).FirstAsync();
 
-
-
             return Ok(JsonView(true, "查询成功!", nationalTravelFeeData));
 
         }
@@ -7654,16 +7637,7 @@ FROM
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> PostNationalTravelFeeOperate(NationalTravelFeeOperateDto dto)
         {
-
-            var data = await _enterExitCostRep.PostNationalTravelFeeOperate(dto);
-
-            if (data.Code != 0)
-            {
-                return Ok(JsonView(false, data.Msg));
-            }
-
-            return Ok(JsonView(true, "操作成功!", data.Data));
-
+            return Ok(await _enterExitCostRep.PostNationalTravelFeeOperate(dto));
         }
 
         /// <summary>

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

@@ -431,6 +431,11 @@ namespace OASystem.Domain.Dtos.Groups
         /// </summary>
         public decimal? PublicCost { get; set; } = 0;
 
+        /// <summary>
+        /// 培训费
+        /// </summary>
+        public decimal TrainCost { get; set; } = 0;
+
         /// <summary>
         /// 备注
         /// </summary>

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

@@ -56,6 +56,12 @@ namespace OASystem.Domain.Entities.Groups
         [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
         public string? PublicCost { get; set; }
 
+        /// <summary>
+        /// 培训费 
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public string? TrainCost { get; set; }
+
         /// <summary>
         /// 最后更新人 
         /// </summary>

+ 15 - 0
OASystem/OASystem.Domain/ViewModels/Groups/EnterExitCostView.cs

@@ -102,6 +102,11 @@ namespace OASystem.Domain.ViewModels.Groups
         /// </summary>
         public decimal PublicCost { get; set; } = 0;
 
+        /// <summary>
+        /// 培训费
+        /// </summary>
+        public decimal TrainCost { get; set; }
+
         /// <summary>
         /// 最后更新人 Id 
         /// </summary>
@@ -176,6 +181,11 @@ namespace OASystem.Domain.ViewModels.Groups
         /// </summary>
         public decimal PublicCost { get; set; }
 
+        /// <summary>
+        /// 培训费
+        /// </summary>
+        public decimal TrainCost { get; set; }
+
         /// <summary>
         /// 备注
         /// </summary>
@@ -249,6 +259,11 @@ namespace OASystem.Domain.ViewModels.Groups
         /// </summary>
         public decimal PublicCost { get; set; }
 
+        /// <summary>
+        /// 培训费
+        /// </summary>
+        public decimal TrainCost { get; set; }
+
         /// <summary>
         /// 备注
         /// </summary>

+ 4 - 3
OASystem/OASystem.Infrastructure/Repositories/Groups/EnterExitCostRepository.cs

@@ -627,9 +627,9 @@ namespace OASystem.Infrastructure.Repositories.Groups
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
-        public async Task<Result> PostNationalTravelFeeOperate(NationalTravelFeeOperateDto dto)
+        public async Task<JsonView> PostNationalTravelFeeOperate(NationalTravelFeeOperateDto dto)
         {
-            Result result = new Result();
+            var result = new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = "操作失败!" };
 
             Grp_NationalTravelFee nationalTravelFee = _mapper.Map<Grp_NationalTravelFee>(dto);
             nationalTravelFee.LastUpdateUserId = dto.UserId;
@@ -664,7 +664,8 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     .ExecuteCommand();   //存在更新
                 }
 
-                result.Code = 0;
+                result.Code = 200;
+                result.Msg = "操作成功!";
             }
             else if (dto.PortType == 2) //Android
             {