Przeglądaj źródła

团组出入境费用草稿接口与模型优化

本次提交主要包括以下内容:

- 统一和细化团组出入境费用草稿相关接口注释,提升可读性;
- 修正部分接口参数命名(如darfId→draftId);
- 优化境外用车费用详情接口,完善草稿和用户校验,新增默认明细生成方法;
- ViewModel补充国外城市间交通费细分字段,并为各费用明细和币种信息添加默认初始化,防止空引用;
- 其他细节优化,包括匿名对象赋值和注释风格统一。

整体提升了代码健壮性、可维护性和业务表达准确性。
Lyyyi 3 dni temu
rodzic
commit
fb8b2e7250

+ 121 - 39
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -13458,7 +13458,8 @@ FROM
         #region 团组经理模块 出入境费用-草稿
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - 基础数据源 - 省份归属
+        /// 团组模块-出入境费用-草稿 
+        /// 基础数据源-省份归属
         /// </summary>
         /// <returns></returns>
         [HttpGet]
@@ -13471,7 +13472,8 @@ FROM
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - 文件类型list 根据省份Id获取
+        /// 团组模块-出入境费用-草稿
+        /// 文件类型list 根据省份Id获取
         /// </summary>
         /// <returns></returns>
         [HttpGet("{provinceId}")]
@@ -13497,7 +13499,8 @@ FROM
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - 基础数据源(团组名称/币种类型)
+        /// 团组模块 - 出入境费用-草稿 
+        /// 基础数据源(团组名称/币种类型)
         /// </summary>
         /// <returns></returns>
         [HttpPost]
@@ -13546,8 +13549,7 @@ FROM
 
         /// <summary>
         /// 团组模块 - 出入境费用-草稿
-        /// 实时汇率 tips
-        /// 机票费用 tips
+        /// 实时汇率 tips、机票费用 tips
         /// </summary>
         /// <returns></returns>
         [HttpPost]
@@ -13601,16 +13603,17 @@ FROM
 
         #region 城市区间交通费
         /// <summary>
-        /// 团组模块 - 出入境费用 - 草稿 - 基础数据源(境外用车)
+        /// 团组模块 - 出入境费用-草稿 
+        /// 境外用车 基础数据源
         /// </summary>
         /// <param name="draftId">草稿Id</param>
         /// <returns></returns>
-        [HttpGet("{darfId}")]
+        [HttpGet("{draftId}")]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> EnterExitCostDraftOVByGroupId(int draftId)
         {
-            var groupInfo = await _sqlSugar.Queryable<Grp_EnterExitCostDraft>().Where(x => x.Id == draftId).FirstAsync();
-            if (groupInfo == null)
+            var draftInfo = await _sqlSugar.Queryable<Grp_EnterExitCostDraft>().Where(x => x.Id == draftId).FirstAsync();
+            if (draftInfo == null)
             {
                 return Ok(JsonView(false, "三公费用草稿信息为空"));
             }
@@ -13732,52 +13735,121 @@ FROM
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用 - 草稿 - 境外用车计算详细信息
+        /// 团组模块 - 出入境费用-草稿 
+        /// 境外用车 计算详细信息
         /// </summary>
         /// <param name="draftId"></param>
         /// <param name="currUserId"></param>
         /// <returns></returns>
-        [HttpGet("{groupId}")]
+        [HttpGet("{draftId}")]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> EnterExitCostDraftOVFeeDetails(int draftId, int currUserId)
         {
-            var eecInfo = await _sqlSugar.Queryable<Grp_EnterExitCostDraft>().Where(x => x.Id == draftId && x.IsDel == 0).FirstAsync();
+            // 1. 验证草稿是否存在
+            var eecInfo = await _sqlSugar.Queryable<Grp_EnterExitCostDraft>()
+                .Where(x => x.Id == draftId && x.IsDel == 0)
+                .FirstAsync();
+
             if (eecInfo == null)
             {
                 return Ok(JsonView(false, "草稿信息为空"));
             }
 
-            var info = new CityIntervalDraftInfo();
+            // 2. 获取用户信息
+            var userInfo = await _sqlSugar.Queryable<Sys_Users>()
+                .Where(x => x.IsDel == 0 && x.Id == currUserId)
+                .FirstAsync();
 
-            if (eecInfo != null)
+            var userName = userInfo?.CnName ?? "-";
+            var nowTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+            // 3. 处理草稿信息
+            CityIntervalDraftInfo info;
+
+            if (eecInfo.CityIntervalFeeDetails != null)
             {
                 info = eecInfo.CityIntervalFeeDetails;
-                return Ok(JsonView(true, "查询成功!", info));
+
+                // 检查费用详情是否为空
+                bool isEmpty = !info.APTFeeDetails.Any() &&
+                              !info.PullCartFeeDetails.Any() &&
+                              !info.TrainFeeDetails.Any() &&
+                              !info.CityAirTicketFeeDetails.Any();
+
+                if (isEmpty)
+                {
+                    info = await CreateDefaultCityIntervalDraftInfo(draftId, userName, nowTime);
+                }
+                else
+                {
+                    // 更新时间和用户信息
+                    info.LastUpdateUserName = userName;
+                    info.LastUpdateTime = nowTime;
+                }
+            }
+            else
+            {
+                // 创建默认信息
+                info = await CreateDefaultCityIntervalDraftInfo(draftId, userName, nowTime);
             }
 
-            var userInfo = await _sqlSugar.Queryable<Sys_Users>().Where(x => x.IsDel == 0 && x.Id == currUserId).FirstAsync();
-            var userName = userInfo?.CnName ?? "-";
-            var nowTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            return Ok(JsonView(true, "查询成功!", info));
+        }
 
-            //返回默认数据
-            info = new CityIntervalDraftInfo()
+        /// <summary>
+        /// 创建默认的城市区间费用草稿信息
+        /// </summary>
+        private static async Task<CityIntervalDraftInfo> CreateDefaultCityIntervalDraftInfo(
+            int draftId,
+            string userName,
+            string nowTime)
+        {
+            return new CityIntervalDraftInfo()
             {
-                APTFeeDetails = new List<RoundTripTransferInfo>() { new() { No = 1, Coefficient = Def_AirportTransferCoeff, ServiceCount = Def_ServiceCount } },
-                PullCartFeeDetails = new List<PullCartInfo>() { new() { No = 1, Coefficient = Def_PullCartCoeff } },
-                TrainFeeDetails = new List<TrainInfo>() { new() { No = 1, Coefficient = Def_TrainCoeff } },
-                CityAirTicketFeeDetails = new List<CityAirTicketInfo>() { new() { No = 1, Coefficient = Def_CityFlightCoeff } },
+                APTFeeDetails = new List<RoundTripTransferInfo>()
+                {
+                    new()
+                    {
+                        No = 1,
+                        Coefficient = Def_AirportTransferCoeff,
+                        ServiceCount = Def_ServiceCount
+                    }
+                },
+                PullCartFeeDetails = new List<PullCartInfo>()
+                {
+                    new()
+                    {
+                        No = 1,
+                        Coefficient = Def_PullCartCoeff
+                    }
+                },
+                TrainFeeDetails = new List<TrainInfo>()
+                {
+                    new()
+                    {
+                        No = 1,
+                        Coefficient = Def_TrainCoeff
+                    }
+                },
+                CityAirTicketFeeDetails = new List<CityAirTicketInfo>()
+                {
+                    new()
+                    {
+                        No = 1,
+                        Coefficient = Def_CityFlightCoeff
+                    }
+                },
                 LastUpdateUserName = userName,
                 LastUpdateTime = nowTime,
                 CreateUserName = userName,
-                Currencies = await GeneralMethod.EnterExitCostDrafOVFeeUsedCurrencyAsync(draftId),
-                CreateTime = nowTime
+                CreateTime = nowTime,
+                Currencies = await GeneralMethod.EnterExitCostDrafOVFeeUsedCurrencyAsync(draftId)
             };
-
-            return Ok(JsonView(true, "查询成功!", info));
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用 - 草稿 - 境外用车计算 保存
+        /// 团组模块 - 出入境费用-草稿 
+        /// 境外用车 保存
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -13902,7 +13974,8 @@ FROM
         #endregion
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - Info
+        /// 团组模块 - 出入境费用-草稿 
+        /// Info
         /// </summary>
         /// <returns></returns>
         [HttpPost]
@@ -13914,7 +13987,8 @@ FROM
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - 设置view权限
+        /// 团组模块 - 出入境费用-草稿 
+        /// 设置view权限
         /// </summary>
         /// <returns></returns>
         [HttpPost]
@@ -13958,7 +14032,8 @@ FROM
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - Add And Update
+        /// 团组模块 - 出入境费用-草稿
+        /// Add And Update
         /// </summary>
         /// <returns></returns>
         [HttpPost]
@@ -13981,7 +14056,8 @@ FROM
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - File downlaod
+        /// 团组模块 - 出入境费用-草稿
+        /// File downlaod
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -15051,6 +15127,7 @@ FROM
         }
 
         /// <summary>
+        /// 团组模块 - 出入境费用-草稿
         /// 获取三公费用标准city
         /// </summary>
         /// <param name="placeData"></param>
@@ -15073,7 +15150,8 @@ FROM
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - 一键清空
+        /// 团组模块 - 出入境费用-草稿
+        /// 一键清空
         /// </summary>
         /// <returns></returns>
         [HttpPost]
@@ -15095,7 +15173,8 @@ FROM
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - 子项删除
+        /// 团组模块 - 出入境费用-草稿
+        /// 子项删除
         /// </summary>
         /// <returns></returns>
         [HttpPost]
@@ -15114,7 +15193,8 @@ FROM
         }
 
         /// <summary>
-        /// 三公其他费用草稿 删除
+        /// 团组模块 - 出入境费用-草稿
+        /// 删除
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -15144,7 +15224,8 @@ FROM
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - 导入正式出入境费用基础数据
+        /// 团组模块 - 出入境费用-草稿
+        /// 导入正式出入境费用基础数据
         /// </summary>
         /// <returns></returns>
         [HttpPost]
@@ -15156,12 +15237,13 @@ FROM
             var draftDatas = await _sqlSugar.Queryable<Grp_EnterExitCostDraft>().Where(x => x.IsDel == 0).OrderByDescending(x => x.CreateTime).Select(x => new { x.Id, x.DraftName }).ToListAsync();
             jw.Code = StatusCodes.Status200OK;
             jw.Msg = "操作成功!";
-            jw.Data = new { groupNameDatas = groupNameDatas, draftNames = draftDatas };
+            jw.Data = new { groupNameDatas, draftNames = draftDatas };
             return Ok(jw);
         }
 
         /// <summary>
-        /// 团组模块 - 出入境费用-草稿 - 导入正式出入境费用
+        /// 团组模块 - 出入境费用-草稿
+        /// 导入正式出入境费用
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>

+ 11 - 2
OASystem/OASystem.Domain/ViewModels/Groups/EnterExitCostDraftView.cs

@@ -100,7 +100,6 @@ namespace OASystem.Domain.ViewModels.Groups
         /// </summary>
         public decimal OutsideGWPay { get; set; }
 
-
         /// <summary>
         /// 国际旅费合计(头等舱)
         /// </summary>
@@ -124,10 +123,20 @@ namespace OASystem.Domain.ViewModels.Groups
         public decimal AirTD { get; set; }
 
         /// <summary>
-        ///  国外城市间交通费
+        ///  国外城市间交通费 - 经济舱
         /// </summary>
         public decimal CityTranffic { get; set; }
 
+        /// <summary>
+        ///  国外城市间交通费 - 公务舱
+        /// </summary>
+        public decimal CityTranffic1 { get; set; }
+
+        /// <summary>
+        ///  国外城市间交通费 - 头等舱
+        /// </summary>
+        public decimal CityTranffic2 { get; set; }
+
         public string TwoItemRemark { get; set; }
 
         #region 汇率币种

+ 5 - 5
OASystem/OASystem.Domain/ViewModels/Groups/EnterExitCostView.cs

@@ -1314,7 +1314,7 @@ namespace OASystem.Domain.ViewModels.Groups
         /// <summary>
         /// 接送机费用详情
         /// </summary>
-        public List<RoundTripTransferInfo> APTFeeDetails { get; set; }
+        public List<RoundTripTransferInfo> APTFeeDetails { get; set; } = new List<RoundTripTransferInfo>();
 
         /// <summary>
         /// 拉车费用合计
@@ -1324,7 +1324,7 @@ namespace OASystem.Domain.ViewModels.Groups
         /// <summary>
         /// 拉车费用详情
         /// </summary>
-        public List<PullCartInfo> PullCartFeeDetails { get; set; }
+        public List<PullCartInfo> PullCartFeeDetails { get; set; } = new List<PullCartInfo>();
 
         /// <summary>
         /// 火车费用合计
@@ -1334,7 +1334,7 @@ namespace OASystem.Domain.ViewModels.Groups
         /// <summary>
         /// 火车费用详情
         /// </summary>
-        public List<TrainInfo> TrainFeeDetails { get; set; }
+        public List<TrainInfo> TrainFeeDetails { get; set; } = new List<TrainInfo>();
 
         /// <summary>
         /// 城市机票费用合计
@@ -1344,12 +1344,12 @@ namespace OASystem.Domain.ViewModels.Groups
         /// <summary>
         /// 城市机票费用详情
         /// </summary>
-        public List<CityAirTicketInfo> CityAirTicketFeeDetails { get; set; }
+        public List<CityAirTicketInfo> CityAirTicketFeeDetails { get; set; } = new List<CityAirTicketInfo>();
 
         /// <summary>
         /// 币种信息
         /// </summary>
-        public List<CurrencyInfo> Currencies { get; set; }
+        public List<CurrencyInfo> Currencies { get; set; } = new List<CurrencyInfo>();
 
         /// <summary>
         /// 最后操作人