浏览代码

建团 按照国家 添加默认团组汇率
接团客户名单 添加

leiy 1 年之前
父节点
当前提交
276f407f8c

+ 5 - 1
OASystem/EntitySync/Program.cs

@@ -1,6 +1,7 @@
 using OASystem.Domain.Entities;
 using OASystem.Domain.Entities;
 using OASystem.Domain.Entities.Business;
 using OASystem.Domain.Entities.Business;
 using OASystem.Domain.Entities.Customer;
 using OASystem.Domain.Entities.Customer;
+using OASystem.Domain.Entities.District;
 using OASystem.Domain.Entities.Financial;
 using OASystem.Domain.Entities.Financial;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.Entities.PersonnelModule;
 using OASystem.Domain.Entities.PersonnelModule;
@@ -118,6 +119,9 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Grp_CarTouristGuideGroundReservationsContent),//
     //typeof(Grp_CarTouristGuideGroundReservationsContent),//
     //typeof(Fin_PaymentRefundAndOtherMoney),
     //typeof(Fin_PaymentRefundAndOtherMoney),
     //typeof(Grp_InsuranceCost),
     //typeof(Grp_InsuranceCost),
-    typeof(Grp_TourClientList) //接团客户名单
+    //typeof(Grp_TourClientList), //接团客户名单
+    typeof(Dis_Intercontinental), //洲
+    typeof(Dis_Country), //国家
+    typeof(Dis_City), //城市
 });
 });
 Console.WriteLine("数据库结构同步完成!");
 Console.WriteLine("数据库结构同步完成!");

+ 63 - 8
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -66,6 +66,7 @@ namespace OASystem.API.Controllers
         private readonly MessageRepository _message;
         private readonly MessageRepository _message;
         private readonly SqlSugarClient _sqlSugar;
         private readonly SqlSugarClient _sqlSugar;
         private readonly TourClientListRepository _tourClientListRep;
         private readonly TourClientListRepository _tourClientListRep;
+        private readonly TeamRateRepository _teamRateRep;
 
 
         #region 成本相关
         #region 成本相关
         private readonly CheckBoxsRepository _checkBoxs;
         private readonly CheckBoxsRepository _checkBoxs;
@@ -86,7 +87,7 @@ namespace OASystem.API.Controllers
             , DelegationVisaRepository delegationVisaRep, MessageRepository message, VisaPriceRepository visaPriceRep, CarTouristGuideGroundRepository carTouristGuideGroundRep,
             , DelegationVisaRepository delegationVisaRep, MessageRepository message, VisaPriceRepository visaPriceRep, CarTouristGuideGroundRepository carTouristGuideGroundRep,
             CheckBoxsRepository checkBoxs, GroupCostRepository GroupCostRepository, CostTypeHotelNumberRepository CostTypeHotelNumberRepository,
             CheckBoxsRepository checkBoxs, GroupCostRepository GroupCostRepository, CostTypeHotelNumberRepository CostTypeHotelNumberRepository,
             GroupCostParameterRepository GroupCostParameterRepository, HotelPriceRepository hotelPriceRep, CustomersRepository customersRep, SetDataRepository setDataRep,
             GroupCostParameterRepository GroupCostParameterRepository, HotelPriceRepository hotelPriceRep, CustomersRepository customersRep, SetDataRepository setDataRep,
-            TourClientListRepository tourClientListRep)
+            TourClientListRepository tourClientListRep, TeamRateRepository teamRateRep)
         {
         {
             _mapper = mapper;
             _mapper = mapper;
             _grpScheduleRep = grpScheduleRep;
             _grpScheduleRep = grpScheduleRep;
@@ -116,6 +117,7 @@ namespace OASystem.API.Controllers
             _customersRep = customersRep;
             _customersRep = customersRep;
             _setDataRep = setDataRep;
             _setDataRep = setDataRep;
             _tourClientListRep = tourClientListRep;
             _tourClientListRep = tourClientListRep;
+            _teamRateRep = teamRateRep;
         }
         }
 
 
         #region 流程管控
         #region 流程管控
@@ -397,6 +399,15 @@ namespace OASystem.API.Controllers
                     return Ok(JsonView(false, groupData.Msg));
                     return Ok(JsonView(false, groupData.Msg));
                 }
                 }
 
 
+                //添加时 默认加入团组汇率
+                if (dto.Status == 1)
+                {
+                    int diId = groupData.Data;
+
+                    GeneralMethod.PostGroupRateAddInit(dto.UserId, diId);
+                }
+
+
                 return Ok(JsonView(true));
                 return Ok(JsonView(true));
             }
             }
             catch (Exception ex)
             catch (Exception ex)
@@ -408,6 +419,53 @@ namespace OASystem.API.Controllers
             }
             }
         }
         }
 
 
+        /// <summary>
+        /// 建团添加默认工作人员团组权限测试
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostGroupAuthAddInit(int userId, int diId)
+        {
+            try
+            {
+                GeneralMethod.PostGroupAuthAddInit(userId, diId);
+
+                return Ok(JsonView(true));
+            }
+            catch (Exception ex)
+            {
+
+                Logs(ex.Message);
+                return Ok(JsonView(false, ex.Message));
+            }
+        }
+
+
+        /// <summary>
+        /// 建团添加默认币种测试
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GroupOperation11(int userId,int diId)
+        {
+            try
+            {
+                 GeneralMethod.PostGroupRateAddInit(userId, diId);
+
+                return Ok(JsonView(true));
+            }
+            catch (Exception ex)
+            {
+
+                Logs(ex.Message);
+                return Ok(JsonView(false, ex.Message));
+            }
+        }
+
         /// <summary>
         /// <summary>
         /// 接团信息 操作(删除)
         /// 接团信息 操作(删除)
         /// </summary>
         /// </summary>
@@ -5443,7 +5501,6 @@ namespace OASystem.API.Controllers
             return Ok(JsonView(viewData.Data));
             return Ok(JsonView(viewData.Data));
         }
         }
 
 
-
         /// <summary>
         /// <summary>
         /// 接团客户名单
         /// 接团客户名单
         /// 基础数据 Init
         /// 基础数据 Init
@@ -5453,7 +5510,6 @@ namespace OASystem.API.Controllers
         [HttpPost]
         [HttpPost]
         public async Task<IActionResult> PostTourClientListBasicDataInit(TourClientListBasicDataInitDto _dto)
         public async Task<IActionResult> PostTourClientListBasicDataInit(TourClientListBasicDataInitDto _dto)
         {
         {
-
             #region  参数验证
             #region  参数验证
             if (_dto.UserId < 1) return Ok(JsonView(false, "请传入有效的UserId参数"));
             if (_dto.UserId < 1) return Ok(JsonView(false, "请传入有效的UserId参数"));
             if (_dto.PageId < 1) _dto.PageId = 104; //接团客户名单PageId
             if (_dto.PageId < 1) _dto.PageId = 104; //接团客户名单PageId
@@ -5481,7 +5537,7 @@ namespace OASystem.API.Controllers
         /// 接团客户名单
         /// 接团客户名单
         /// 根据 Id查询 Details
         /// 根据 Id查询 Details
         /// </summary>
         /// </summary>
-        /// <param name="dto"></param>
+        /// <param name="_dto"></param>
         /// <returns></returns>
         /// <returns></returns>
         [HttpPost]
         [HttpPost]
         public async Task<IActionResult> PostTourClientListDetails(TourClientListDetailsDto _dto)
         public async Task<IActionResult> PostTourClientListDetails(TourClientListDetailsDto _dto)
@@ -5513,14 +5569,13 @@ namespace OASystem.API.Controllers
 
 
         /// <summary>
         /// <summary>
         /// 接团客户名单
         /// 接团客户名单
-        /// 根据 Id查询 Details
+        /// Add Or Edit
         /// </summary>
         /// </summary>
-        /// <param name="dto"></param>
+        /// <param name="_dto"></param>
         /// <returns></returns>
         /// <returns></returns>
         [HttpPost]
         [HttpPost]
         public async Task<IActionResult> PostTourClientListAddOrEdit(TourClientListAddOrEditDto _dto)
         public async Task<IActionResult> PostTourClientListAddOrEdit(TourClientListAddOrEditDto _dto)
         {
         {
-
             #region  参数验证
             #region  参数验证
             if (_dto.UserId < 1) return Ok(JsonView(false, "请传入有效的UserId参数"));
             if (_dto.UserId < 1) return Ok(JsonView(false, "请传入有效的UserId参数"));
             if (_dto.PageId < 1) _dto.PageId = 104; //接团客户名单PageId
             if (_dto.PageId < 1) _dto.PageId = 104; //接团客户名单PageId
@@ -5543,7 +5598,7 @@ namespace OASystem.API.Controllers
 
 
             #endregion
             #endregion
 
 
-            var viewData = await _tourClientListRep._Details(_dto.PortType, _dto.Id);
+            var viewData = await _tourClientListRep._AddOrEdit(_dto);
             if (viewData.Code != 0)
             if (viewData.Code != 0)
             {
             {
                 return Ok(JsonView(false, viewData.Msg));
                 return Ok(JsonView(false, viewData.Msg));

+ 4 - 5
OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

@@ -401,7 +401,7 @@ namespace OASystem.API.Controllers
                 #region 计算工资
                 #region 计算工资
 
 
                 //月工资
                 //月工资
-                decimal salary = pm_WageSheet.Basic + pm_WageSheet.Floats + pm_WageSheet.PostAllowance + pm_WageSheet.InformationSecurityFee + pm_WageSheet.OtherSubsidies + pm_WageSheet.OtherHandle;
+                decimal salary = pm_WageSheet.Basic + pm_WageSheet.Floats + pm_WageSheet.PostAllowance + pm_WageSheet.InformationSecurityFee + pm_WageSheet.OtherSubsidies;
                 //扣款合计
                 //扣款合计
                 decimal totalDeduction = pm_WageSheet.SickLeave + pm_WageSheet.SomethingFalse + pm_WageSheet.LateTo + pm_WageSheet.LeaveEarly + pm_WageSheet.Absenteeism + pm_WageSheet.NotPunch +
                 decimal totalDeduction = pm_WageSheet.SickLeave + pm_WageSheet.SomethingFalse + pm_WageSheet.LateTo + pm_WageSheet.LeaveEarly + pm_WageSheet.Absenteeism + pm_WageSheet.NotPunch +
                                          pm_WageSheet.ReservedFunds + pm_WageSheet.WithholdingInsurance + pm_WageSheet.OtherDeductions + pm_WageSheet.OtherDeductions;
                                          pm_WageSheet.ReservedFunds + pm_WageSheet.WithholdingInsurance + pm_WageSheet.OtherDeductions + pm_WageSheet.OtherDeductions;
@@ -410,20 +410,19 @@ namespace OASystem.API.Controllers
                 if (pm_WageSheet.RegularDays >= pm_WageSheet.WorkDays )
                 if (pm_WageSheet.RegularDays >= pm_WageSheet.WorkDays )
                 {
                 {
                     pm_WageSheet.RegularDays = pm_WageSheet.WorkDays;
                     pm_WageSheet.RegularDays = pm_WageSheet.WorkDays;
-                    salary = salary + pm_WageSheet.Mealsupplement;
+                    salary = salary + pm_WageSheet.Mealsupplement + pm_WageSheet.OtherHandle;
                 }
                 }
                 else
                 else
                 {
                 {
                     if (dto.UserId == 21) //21==张海麟
                     if (dto.UserId == 21) //21==张海麟
                     {
                     {
-                        salary = salary + pm_WageSheet.Mealsupplement;
+                        salary = salary + pm_WageSheet.Mealsupplement + pm_WageSheet.OtherHandle;
                     }
                     }
                     else
                     else
                     {
                     {
-                        salary = PayrollComputation.ConvertToDecimal(salary / pm_WageSheet.WorkDays * pm_WageSheet.RegularDays + pm_WageSheet.Mealsupplement);
+                        salary = PayrollComputation.ConvertToDecimal(salary / pm_WageSheet.WorkDays * pm_WageSheet.RegularDays + pm_WageSheet.Mealsupplement + pm_WageSheet.OtherHandle);
                     }    
                     }    
                 }
                 }
-
                 
                 
                 decimal actualTotal = salary - totalDeduction;
                 decimal actualTotal = salary - totalDeduction;
                 pm_WageSheet.Should = salary;
                 pm_WageSheet.Should = salary;

+ 181 - 4
OASystem/OASystem.Api/OAMethodLib/GeneralMethod.cs

@@ -1,17 +1,29 @@
-using OASystem.Domain;
+using Microsoft.AspNetCore.Mvc.TagHelpers;
+using OASystem.API.OAMethodLib.JuHeAPI;
+using OASystem.Domain;
+using OASystem.Domain.Entities.District;
+using OASystem.Domain.Entities.Financial;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.Entities.PersonnelModule;
 using OASystem.Domain.Entities.PersonnelModule;
 using OASystem.Domain.Entities.System;
 using OASystem.Domain.Entities.System;
+using OASystem.Domain.ViewModels.JuHeExchangeRate;
 using OASystem.Domain.ViewModels.PersonnelModule;
 using OASystem.Domain.ViewModels.PersonnelModule;
 using OASystem.Infrastructure.Repositories.Groups;
 using OASystem.Infrastructure.Repositories.Groups;
+using System.Collections.Generic;
 using System.IdentityModel.Tokens.Jwt;
 using System.IdentityModel.Tokens.Jwt;
 using System.Security.Claims;
 using System.Security.Claims;
 
 
 namespace OASystem.API.OAMethodLib
 namespace OASystem.API.OAMethodLib
 {
 {
-  
+
+
     public static class GeneralMethod
     public static class GeneralMethod
     {
     {
+        //团组信息
+        private readonly static DelegationInfoRepository _dirRep = AutofacIocManager.Instance.GetService<DelegationInfoRepository>();
+        private readonly static TeamRateRepository _teamRateRep = AutofacIocManager.Instance.GetService<TeamRateRepository>();
+        private readonly static IJuHeApiService _juHeApiService = AutofacIocManager.Instance.GetService<IJuHeApiService>();
+        private readonly static SetDataRepository _setDataRep = AutofacIocManager.Instance.GetService<SetDataRepository>();
 
 
         #region 消息
         #region 消息
 
 
@@ -131,8 +143,6 @@ namespace OASystem.API.OAMethodLib
         #endregion
         #endregion
 
 
         #region 用户页面操作功能 权限
         #region 用户页面操作功能 权限
-        //团组信息
-        private readonly static DelegationInfoRepository _dirRep = AutofacIocManager.Instance.GetService<DelegationInfoRepository>();
 
 
         /// <summary>
         /// <summary>
         /// 用户页面操作功能(可使用)
         /// 用户页面操作功能(可使用)
@@ -232,5 +242,172 @@ namespace OASystem.API.OAMethodLib
 
 
 
 
         #endregion
         #endregion
+
+        #region 团组相关 
+
+        #region 建团按国家默认添加汇率 / 默认权限分配
+
+
+        /// <summary>
+        /// 团组汇率 
+        /// 建团时 添加基础汇率 CNY
+        /// 按国家 添加 默认币种
+        /// </summary>
+        /// <param name="userId"></param>
+        /// <param name="diId"></param>
+        /// <returns></returns>
+        public static async Task<Result> PostGroupRateAddInit(int userId, int diId)
+        {
+
+            Result result = new() { Code = -2 };
+
+            if (userId < 0)
+            {
+                result.Msg = string.Format(@"请传入正确的userId");
+                return result;
+            }
+
+            if (diId < 0)
+            {
+                result.Msg = string.Format(@"请传入正确的DiId");
+                return result;
+            }
+            //美元(USD):1.0000|欧元(EUR):1.0000|墨西哥比索(MXN):1.0000
+            string CNYInit = string.Format(@"人名币(CNY):1.0000");
+
+            var gropInfo = await _dirRep._sqlSugar.Queryable<Grp_DelegationInfo>().Where( it => it.IsDel == 0 && it.Id == diId).FirstAsync();
+            if (gropInfo != null)
+            {
+                if (!string.IsNullOrEmpty(gropInfo.VisitCountry))
+                {
+                    var countryCueencyCodes = await _setDataRep.GetSetDataBySTId(_setDataRep, 66);
+
+                    string countrys = gropInfo.VisitCountry;
+                    string[] countryItems = new string[] { };
+                    if (countrys.Contains("|"))
+                    {
+                        countryItems = countrys.Split('|');
+                    }
+                    else
+                    {
+                        countryItems = new string[] { countrys };
+                    }
+
+                    var countryInfos = await _dirRep._sqlSugar.Queryable<Dis_Country>().Where(it => it.IsDel == 0).ToListAsync();
+
+                    List<string> currencyCodes = new List<string>();
+                    if (countryItems.Length > 0)
+                    {
+                        foreach (var item in countryItems)
+                        {
+                            Dis_Country country = new Dis_Country();
+                            country = countryInfos.Where(it => it.CnShortName.Equals(item)).FirstOrDefault();
+                            if (country != null)
+                            {
+                                if (!item.Equals("中国"))
+                                {
+                                    currencyCodes.Add(country.CurrencyCode);
+                                }
+                            }
+                        }
+                    }
+
+                    if (currencyCodes.Count > 0)
+                    {
+                        List<ExchangeRateModel> exchangeRateModels = await _juHeApiService.PostItemRateAsync(currencyCodes.ToArray());
+                        if (exchangeRateModels.Count > 0)
+                        {
+                            var codes = await _dirRep._sqlSugar.Queryable<Sys_SetData>().Where(it => it.IsDel == 0 && it.IsDel == 0).ToListAsync();
+                            for (int i = 0; i < exchangeRateModels.Count; i++)
+                            {
+                                string currencyName = exchangeRateModels[i].Name;
+                                string code = "";
+                                var currencyData = codes.Where(it => it.IsDel == 0 && it.Remark == currencyName).FirstOrDefault();
+                                if (currencyData != null) { 
+                                    code = currencyData.Name;
+                                    CNYInit += string.Format(@"|{0}({1}):{2}", exchangeRateModels[i].Name, code, exchangeRateModels[i].MSellPri);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+
+            List<Grp_TeamRate> grp_TeamRates = new List<Grp_TeamRate>()
+            {
+                new Grp_TeamRate(){ DiId = diId,CTable = 76,Remark = CNYInit,CreateUserId = userId, IsDel = 0 }, //76	酒店预订
+                new Grp_TeamRate(){ DiId = diId,CTable = 77,Remark = CNYInit,CreateUserId = userId, IsDel = 0 }, //77	行程
+                new Grp_TeamRate(){ DiId = diId,CTable = 79,Remark = CNYInit,CreateUserId = userId, IsDel = 0 }, //79	车/导游地接
+                new Grp_TeamRate(){ DiId = diId,CTable = 80,Remark = CNYInit,CreateUserId = userId, IsDel = 0 }, //80	签证
+                new Grp_TeamRate(){ DiId = diId,CTable = 82,Remark = CNYInit,CreateUserId = userId, IsDel = 0 }, //82	团组客户保险
+                new Grp_TeamRate(){ DiId = diId,CTable = 85,Remark = CNYInit,CreateUserId = userId, IsDel = 0 }, //85	机票预订
+                new Grp_TeamRate(){ DiId = diId,CTable = 98,Remark = CNYInit,CreateUserId = userId, IsDel = 0 }, //98	其他款项
+                new Grp_TeamRate(){ DiId = diId,CTable = 285,Remark = CNYInit,CreateUserId = userId, IsDel = 0 }, //285	收款退还
+                new Grp_TeamRate(){ DiId = diId,CTable = 751,Remark = CNYInit,CreateUserId = userId, IsDel = 0 }, //751    酒店早餐
+            };
+
+            var res = _teamRateRep._sqlSugar.Insertable(grp_TeamRates).ExecuteCommand();
+            if (res < 0)
+            {
+
+                result.Msg = string.Format(@"添加失败!");
+                return result;
+            }
+
+            result.Code = 0;
+            result.Msg = string.Format(@"操作成功!");
+
+            return result;
+
+        }
+
+        /// <summary>
+        /// 团组汇率 
+        /// 建团时 默认按照岗位分配权限
+        /// </summary>
+        /// <param name="userId"></param>
+        /// <param name="diId"></param>
+        /// <param name="companyId"></param>
+        /// <returns></returns>
+        public static async Task<Result> PostGroupAuthAddInit(int userId, int diId, int companyId = 2)
+        {
+
+            Result result = new() { Code = -2 };
+
+            if (userId < 0)
+            {
+                result.Msg = string.Format(@"请传入正确的userId");
+                return result;
+            }
+
+            if (companyId < 0)
+            {
+                result.Msg = string.Format(@"请传入正确的companyId");
+                return result;
+            }
+
+            if (diId < 0)
+            {
+                result.Msg = string.Format(@"请传入正确的DiId");
+                return result;
+            }
+
+            //var depData = await _teamRateRep._sqlSugar.Queryable<Sys_Department>().Where(it => it.IsDel == 0 && it.CompanyId == companyId && it.DepName.Equals("国交部")).FirstAsync();
+            //if (depData != null)
+            //{
+            //    var userData = await _teamRateRep._sqlSugar.Queryable<Sys_Users>().Where(it => it.IsDel == 0 && it.CompanyId == companyId && it.DepId == depData.Id).ToListAsync();
+
+            //}
+
+
+            result.Code = 0;
+            result.Msg = string.Format(@"操作成功!");
+
+            return result;
+
+        }
+
+        #endregion
+        #endregion
     }
     }
 }
 }

+ 1 - 1
OASystem/OASystem.Api/OAMethodLib/JuHeAPI/IJuHeApiService.cs

@@ -25,7 +25,7 @@ namespace OASystem.API.OAMethodLib.JuHeAPI
         /// 获取汇率 Item
         /// 获取汇率 Item
         /// </summary>
         /// </summary>
         /// <returns></returns>
         /// <returns></returns>
-        Task<Result> PostItemRateAsync(string[] currencyCodes);
+        Task<List<ExchangeRateModel>> PostItemRateAsync(string[] currencyCodes);
 
 
         /// <summary>
         /// <summary>
         /// 获取汇率转换结果
         /// 获取汇率转换结果

+ 16 - 12
OASystem/OASystem.Api/OAMethodLib/JuHeAPI/JuHeApiService.cs

@@ -161,33 +161,37 @@ namespace OASystem.API.OAMethodLib.JuHeAPI
         /// </summary>
         /// </summary>
         /// <param name="currencyCodes">币种codes</param>
         /// <param name="currencyCodes">币种codes</param>
         /// <returns></returns>
         /// <returns></returns>
-        public async Task<Result> PostItemRateAsync(string[] currencyCodes)
+        public async Task<List<ExchangeRateModel>> PostItemRateAsync(string[] currencyCodes)
         {
         {
 
 
-            var result = new Result();
-            if (currencyCodes.Length  <= 0  || currencyCodes.Contains("CNY"))
+            List<ExchangeRateModel> result = new List<ExchangeRateModel>();
+            if (currencyCodes.Length  <= 0 )
             {
             {
-                result.Msg = "币种Code集合不能为空!";
                 return result;
                 return result;
             }
             }
 
 
             var resultData = await GetExchangeRateAsync();
             var resultData = await GetExchangeRateAsync();
             var rateCurrencyData = AppSettingsHelper.Get<RateCurrencyModel>("RateCurrency");
             var rateCurrencyData = AppSettingsHelper.Get<RateCurrencyModel>("RateCurrency");
-            var currencyModel = rateCurrencyData.Where(a => currencyCodes.Any(b => a.CurrencyCode == b)).FirstOrDefault();
-            if (currencyModel != null)
+            var currencyModel = rateCurrencyData.Where(a => currencyCodes.Any(b => a.CurrencyCode == b)).ToList();
+            if (currencyModel.Count > 0)
             {
             {
                 if (resultData.Resultcode == "200")
                 if (resultData.Resultcode == "200")
                 {
                 {
                     if (resultData.Result != null)
                     if (resultData.Result != null)
                     {
                     {
-                        result.Code = 0;
-                        result.Data = ((List<ExchangeRateModel>)resultData.Result).Where(a => a.Name == currencyModel.CurrencyName).FirstOrDefault();
+                        var data = (List<ExchangeRateModel>)resultData.Result;
+
+                        foreach (var item in currencyModel)
+                        {
+                            ExchangeRateModel exchangeRateModel = data.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
+                            if (exchangeRateModel != null )
+                            {
+                                result.Add(exchangeRateModel);
+                            }
+                        }
+                        //result  = ((List<ExchangeRateModel>)resultData.Result).Where(a => a.Name == currencyModel.CurrencyName).ToList();
                     }
                     }
                 }
                 }
-                else
-                {
-                    result.Msg = resultData.Reason;
-                }
             }
             }
             return result;
             return result;
         }
         }

+ 4 - 4
OASystem/OASystem.Api/OAMethodLib/PayrollComputation.cs

@@ -142,7 +142,7 @@ namespace OASystem.API.OAMethodLib
 
 
                     //月 - 应发工资
                     //月 - 应发工资
                     decimal amountPayable = pm_wsInfo.Basic + pm_wsInfo.Floats + pm_wsInfo.PostAllowance + pm_wsInfo.InformationSecurityFee + 
                     decimal amountPayable = pm_wsInfo.Basic + pm_wsInfo.Floats + pm_wsInfo.PostAllowance + pm_wsInfo.InformationSecurityFee + 
-                                            pm_wsInfo.OtherSubsidies + pm_wsInfo.OtherHandle;
+                                            pm_wsInfo.OtherSubsidies;
 
 
                     // 日薪 = *计算方式:日平均工资 = 月工资/当月应出勤天数。
                     // 日薪 = *计算方式:日平均工资 = 月工资/当月应出勤天数。
                     decimal dailyWage = amountPayable / work_days;
                     decimal dailyWage = amountPayable / work_days;
@@ -1111,17 +1111,17 @@ namespace OASystem.API.OAMethodLib
                     if (dk_work_days >= work_days)
                     if (dk_work_days >= work_days)
                     {
                     {
                         dk_work_days = work_days;
                         dk_work_days = work_days;
-                        salaryTotal = amountPayable + mealTotal;    //应发合计
+                        salaryTotal = amountPayable + mealTotal + pm_wsInfo.OtherHandle;    //应发合计
                     }
                     }
                     else
                     else
                     {
                     {
                         if (itemName.Equals("张海麟"))
                         if (itemName.Equals("张海麟"))
                         {
                         {
-                            salaryTotal = amountPayable + mealTotal;    //应发合计
+                            salaryTotal = amountPayable + mealTotal + pm_wsInfo.OtherHandle;    //应发合计
                         }
                         }
                         else
                         else
                         {
                         {
-                            salaryTotal = (dk_work_days * dailyWage) + mealTotal;    //应发合计
+                            salaryTotal = (dk_work_days * dailyWage) + mealTotal + pm_wsInfo.OtherHandle;    //应发合计
                         }
                         }
                             
                             
                     }
                     }

+ 18 - 1
OASystem/OASystem.Domain/Dtos/Groups/TourClientListDto.cs

@@ -46,10 +46,17 @@ namespace OASystem.Domain.Dtos.Groups
     {
     {
         /// <summary>
         /// <summary>
         /// 数据Id
         /// 数据Id
-        /// Id==0 Add Id>0 Update Id<0 无效
+        /// Id==0 Add 
+        /// Id>0 Update 
+        /// Id<0 无效
         /// </summary>
         /// </summary>
         public int Id { get; set; }
         public int Id { get; set; }
 
 
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int DiId { get; set; }
+
         /// <summary>
         /// <summary>
         /// 姓
         /// 姓
         /// </summary>
         /// </summary>
@@ -72,6 +79,11 @@ namespace OASystem.Domain.Dtos.Groups
         /// </summary>
         /// </summary>
         public int Sex { get; set; }
         public int Sex { get; set; }
 
 
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        public string? Phone { get; set; }
+
         /// <summary>
         /// <summary>
         /// 公司名全称
         /// 公司名全称
         /// </summary>
         /// </summary>
@@ -87,6 +99,11 @@ namespace OASystem.Domain.Dtos.Groups
         /// </summary>
         /// </summary>
         public string? IDCardNo { get; set; }
         public string? IDCardNo { get; set; }
 
 
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        public string? Tel { get; set; }
+
         /// <summary>
         /// <summary>
         /// 生日
         /// 生日
         /// </summary>
         /// </summary>

+ 57 - 0
OASystem/OASystem.Domain/Entities/District/Dis_City.cs

@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.District
+{
+    /// <summary>
+    /// 地区 城市
+    /// </summary>
+    [SugarTable("Dis_City")]
+    public class Dis_City : EntityBase
+    {
+        /// <summary>
+        /// 国家表Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int CountryId { get; set; }
+
+        /// <summary>
+        /// 城市名称 中文
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string? CnName { get; set; }
+
+        /// <summary>
+        /// 城市名称 英文
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string? EnName { get; set; }
+
+        /// <summary>
+        /// 城市三字码 机场三字码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string? ThreeCharacterCode { get; set; }
+
+        /// <summary>
+        /// 城市四字码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string? FourCharacterCode { get; set; }
+
+        /// <summary>
+        /// 城市机场中文名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string? CnAirportName { get; set; }
+
+        /// <summary>
+        /// 城市机场英名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string? EnAirportName { get; set; }
+    }
+}

+ 46 - 0
OASystem/OASystem.Domain/Entities/District/Dis_Country.cs

@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.District
+{
+
+    /// <summary>
+    /// 地区 国家表
+    /// </summary>
+    [SugarTable("Dis_Country")]
+    public class Dis_Country : EntityBase
+    {
+        /// <summary>
+        /// 洲际表Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IntercontinentalId { get; set; }
+
+        /// <summary>
+        /// 国家名称 全称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string? FullName { get; set; }
+
+
+        /// <summary>
+        /// 国家名称 简称 中文
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string? CnShortName { get; set; }
+
+        /// <summary>
+        /// 国家名称 简称 英文
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string? EnShortName { get; set; }
+
+        /// <summary>
+        /// 国家币种三字码Code 
+        /// </summary>
+        public string? CurrencyCode { get; set; }
+    }
+}

+ 32 - 0
OASystem/OASystem.Domain/Entities/District/Dis_Intercontinental.cs

@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.District
+{
+    /// <summary>
+    /// 地区 洲际表
+    /// </summary>
+    [SugarTable("Dis_Intercontinental")]
+    public class Dis_Intercontinental :EntityBase
+    {
+        /// <summary>
+        /// 洲际名称 全称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string? FullName { get; set; }
+        /// <summary>
+        /// 洲际名称 中文
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string? CnShortName { get; set; }
+
+        /// <summary>
+        /// 洲际名称 英文
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string? EnShortName { get; set; }
+    }
+}

+ 1 - 2
OASystem/OASystem.Domain/ViewModels/Groups/HotelReservationsByDiIdView.cs

@@ -84,7 +84,6 @@ namespace OASystem.Domain.ViewModels.Groups
         /// </summary>
         /// </summary>
         public int IsAuditGM { get; set; }
         public int IsAuditGM { get; set; }
 
 
-
         /// <summary>
         /// <summary>
         /// 总经理审核状态
         /// 总经理审核状态
         /// 0 未审核 1 已审核 2 未通过 4 自动审核
         /// 0 未审核 1 已审核 2 未通过 4 自动审核
@@ -92,7 +91,7 @@ namespace OASystem.Domain.ViewModels.Groups
         public string IsAuditGMStr { get {
         public string IsAuditGMStr { get {
             
             
                 string? auditStatus = " - ";
                 string? auditStatus = " - ";
-                if (IsAuditGM == 1) auditStatus = "未审核";
+                if (IsAuditGM == 0) auditStatus = "未审核";
                 else if (IsAuditGM == 1) auditStatus = "已审核";
                 else if (IsAuditGM == 1) auditStatus = "已审核";
                 else if(IsAuditGM == 2) auditStatus = "未通过";
                 else if(IsAuditGM == 2) auditStatus = "未通过";
                 else if (IsAuditGM == 4) auditStatus = "自动审核";
                 else if (IsAuditGM == 4) auditStatus = "自动审核";

+ 5 - 0
OASystem/OASystem.Domain/ViewModels/Groups/TourClientListView.cs

@@ -120,6 +120,11 @@ namespace OASystem.Domain.ViewModels.Groups
             }
             }
         }
         }
 
 
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        public string? Phone { get; set; }
+
         /// <summary>
         /// <summary>
         /// 公司名全称
         /// 公司名全称
         /// </summary>
         /// </summary>

+ 0 - 2
OASystem/OASystem.Domain/ViewModels/System/SetDataView.cs

@@ -71,8 +71,6 @@ namespace OASystem.Domain.ViewModels.System
         public string? Remark { get; set; }
         public string? Remark { get; set; }
     }
     }
 
 
-
-
     public class SetDataAndPageInfoView
     public class SetDataAndPageInfoView
     {
     {
         /// <summary>
         /// <summary>

+ 18 - 4
OASystem/OASystem.Infrastructure/Repositories/Groups/DelegationInfoRepository.cs

@@ -30,14 +30,17 @@ namespace OASystem.Infrastructure.Repositories.Groups
         private readonly SetDataRepository _setDataRepository;
         private readonly SetDataRepository _setDataRepository;
         private readonly UsersRepository _usersRepository;
         private readonly UsersRepository _usersRepository;
         private readonly TaskAssignmentRepository _taskAssignmentRep;
         private readonly TaskAssignmentRepository _taskAssignmentRep;
+        //private readonly TeamRateRepository _teamRateRep;
         //public readonly Logs _logs;
         //public readonly Logs _logs;
 
 
-        public DelegationInfoRepository(SqlSugarClient sqlSugar, SetDataRepository setDataRepository, UsersRepository usersRepository, TaskAssignmentRepository taskAssignmentRep)
+        public DelegationInfoRepository(SqlSugarClient sqlSugar, SetDataRepository setDataRepository, UsersRepository usersRepository, 
+            TaskAssignmentRepository taskAssignmentRep)
             : base(sqlSugar)
             : base(sqlSugar)
         {
         {
             _setDataRepository = setDataRepository;
             _setDataRepository = setDataRepository;
             _usersRepository = usersRepository;
             _usersRepository = usersRepository;
             _taskAssignmentRep = taskAssignmentRep;
             _taskAssignmentRep = taskAssignmentRep;
+            //_teamRateRep = teamRateRep;
         }
         }
 
 
         #region 团组信息 团组详情共享Api
         #region 团组信息 团组详情共享Api
@@ -269,7 +272,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
             }
             }
 
 
             return result;
             return result;
-
         }
         }
 
 
         /// <summary>
         /// <summary>
@@ -369,6 +371,18 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     //    }
                     //    }
                     //}
                     //}
 
 
+                    string countrys = string.Empty;
+                    string countryReq = dto.VisitCountry;
+                    if (!string.IsNullOrEmpty(countryReq)) 
+                    {
+                        if (countryReq.Contains(",")) countrys = countryReq.Replace(',','|');
+                        else if (countryReq.Contains(",")) countrys = countryReq.Replace(',', '|');
+                        else if (countryReq.Contains(" ")) countrys = countryReq.Replace(' ', '|');
+                        else if (countryReq.Contains("、")) countrys = countryReq.Replace('、', '|');
+                        else if (countryReq.Contains(".")) countrys = countryReq.Replace('.', '|');
+                        else countrys = countryReq;
+                    }
+
                     Grp_DelegationInfo delegationInfo = new Grp_DelegationInfo()
                     Grp_DelegationInfo delegationInfo = new Grp_DelegationInfo()
                     {
                     {
                         SalesQuoteNo = dto.SalesQuoteNo,
                         SalesQuoteNo = dto.SalesQuoteNo,
@@ -378,7 +392,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         TeamName = dto.TeamName,
                         TeamName = dto.TeamName,
                         TeamDid = dto.TeamDid,
                         TeamDid = dto.TeamDid,
                         VisitDate = Convert.ToDateTime(dto.VisitDate),
                         VisitDate = Convert.ToDateTime(dto.VisitDate),
-                        VisitCountry = dto.VisitCountry,
+                        VisitCountry = countrys,
                         VisitPurpose = dto.VisitPurpose,
                         VisitPurpose = dto.VisitPurpose,
                         VisitDays = dto.VisitDays,
                         VisitDays = dto.VisitDays,
                         VisitPNumber = dto.VisitPNumber,
                         VisitPNumber = dto.VisitPNumber,
@@ -413,12 +427,12 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         OpRoyaltyRemark=dto.opRoyaltyRemark
                         OpRoyaltyRemark=dto.opRoyaltyRemark
                     };
                     };
 
 
-                    Log.Information("添加:"+ JsonConvert.SerializeObject(delegationInfo));
                     var addId = await _sqlSugar.Insertable(delegationInfo).ExecuteReturnIdentityAsync();
                     var addId = await _sqlSugar.Insertable(delegationInfo).ExecuteReturnIdentityAsync();
                     if (addId > 0)
                     if (addId > 0)
                     {
                     {
                         result.Code = 0;
                         result.Code = 0;
                         result.Msg = "添加成功!";
                         result.Msg = "添加成功!";
+                        result.Data = addId;
                     }
                     }
                     else
                     else
                     {
                     {

+ 15 - 1
OASystem/OASystem.Infrastructure/Repositories/Groups/HotelPriceRepository.cs

@@ -916,13 +916,25 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 _CreditCardPayment = _mapper.Map<Grp_CreditCardPayment>(_dto);
                 _CreditCardPayment = _mapper.Map<Grp_CreditCardPayment>(_dto);
 
 
                 _HotelReservations.DiId = _dto.DiId;
                 _HotelReservations.DiId = _dto.DiId;
+                _HotelReservations.CardPriceCurrency = _dto.CTDId;
                 _HotelReservations.CreateUserId = _dto.UserId;
                 _HotelReservations.CreateUserId = _dto.UserId;
                 _HotelReservations.Remark = _dto.HotelRemark;
                 _HotelReservations.Remark = _dto.HotelRemark;
 
 
+                if (portType == 2 || portType == 3)
+                {
+                    string checkNo = string.Empty;
+                    Result checkNoRes = await _CreateCheckVolumeNo(_dto.DiId);
+                    if (checkNoRes.Code == 0) 
+                    {
+                        checkNo = checkNoRes.Data;
+                    }
+                }
+
                 #region CCP 表参数 
                 #region CCP 表参数 
                 _CreditCardPayment.CreateUserId = _dto.UserId;
                 _CreditCardPayment.CreateUserId = _dto.UserId;
                 _CreditCardPayment.DIId = _dto.DiId;
                 _CreditCardPayment.DIId = _dto.DiId;
                 _CreditCardPayment.CTable = 76;
                 _CreditCardPayment.CTable = 76;
+                _CreditCardPayment.CTDId = _dto.CTDId;
                 _CreditCardPayment.PayPercentage = 100.00M;
                 _CreditCardPayment.PayPercentage = 100.00M;
                 _CreditCardPayment.PayThenMoney = _CreditCardPayment.PayMoney;
                 _CreditCardPayment.PayThenMoney = _CreditCardPayment.PayMoney;
 
 
@@ -1018,6 +1030,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                                                          it.CheckNumber,
                                                          it.CheckNumber,
                                                          it.ReservationsWebsite,
                                                          it.ReservationsWebsite,
                                                          it.ReservationsNo,
                                                          it.ReservationsNo,
+                                                         it.DetermineNo,
                                                          it.City,
                                                          it.City,
                                                          it.HotelName,
                                                          it.HotelName,
                                                          it.HotelTel,
                                                          it.HotelTel,
@@ -1071,6 +1084,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         int creditCardStatus = await _sqlSugar.Updateable<Grp_CreditCardPayment>(_CreditCardPayment)
                         int creditCardStatus = await _sqlSugar.Updateable<Grp_CreditCardPayment>(_CreditCardPayment)
                                                     .UpdateColumns(it => new
                                                     .UpdateColumns(it => new
                                                     {
                                                     {
+                                                       it.CTDId,
                                                        it.PayDId,
                                                        it.PayDId,
                                                        it.ConsumptionPatterns,
                                                        it.ConsumptionPatterns,
                                                        it.ConsumptionDate,
                                                        it.ConsumptionDate,
@@ -1081,6 +1095,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                                                        it.RMBPrice,
                                                        it.RMBPrice,
                                                        it.BankNo,
                                                        it.BankNo,
                                                        it.CardholderName,
                                                        it.CardholderName,
+                                                       it.CompanyBankNo,
                                                        it.OtherBankName,
                                                        it.OtherBankName,
                                                        it.OtherSideNo,
                                                        it.OtherSideNo,
                                                        it.OtherSideName,
                                                        it.OtherSideName,
@@ -1096,7 +1111,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
                             _sqlSugar.RollbackTran(); //回滚
                             _sqlSugar.RollbackTran(); //回滚
                             return _result;
                             return _result;
                         }
                         }
-
                     }
                     }
 
 
                     _result.Msg = "操作成功!";
                     _result.Msg = "操作成功!";

+ 21 - 4
OASystem/OASystem.Infrastructure/Repositories/Groups/TeamRateRepository.cs

@@ -3,7 +3,9 @@ using OASystem.Domain;
 using OASystem.Domain.Dtos.Financial;
 using OASystem.Domain.Dtos.Financial;
 using OASystem.Domain.Dtos.Groups;
 using OASystem.Domain.Dtos.Groups;
 using OASystem.Domain.Entities.Financial;
 using OASystem.Domain.Entities.Financial;
+using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.ViewModels.Financial;
 using OASystem.Domain.ViewModels.Financial;
+using OASystem.Domain.ViewModels.Groups;
 using OASystem.Infrastructure.Repositories.System;
 using OASystem.Infrastructure.Repositories.System;
 using Serilog;
 using Serilog;
 using SqlSugar;
 using SqlSugar;
@@ -329,6 +331,22 @@ namespace OASystem.Infrastructure.Repositories.Groups
                             teamRateDescViews.Add(rateDescView);
                             teamRateDescViews.Add(rateDescView);
                         }
                         }
                     }
                     }
+                    else
+                    {
+                        if (!string.IsNullOrEmpty(item.Remark))
+                        {
+                            string[] currency1 = item.Remark.Split(":");
+                            string[] currency2 = currency1[0].Split("(");
+
+                            TeamRateDescView rateDescView = new TeamRateDescView()
+                            {
+                                CurrencyCode = currency2[1].Replace(")", "").TrimEnd(),
+                                CurrencyName = currency2[0],
+                                Rate = decimal.Parse(currency1[1]),
+                            };
+                            teamRateDescViews.Add(rateDescView);
+                        }
+                    }
 
 
                     #endregion
                     #endregion
 
 
@@ -357,7 +375,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
 
         }
         }
 
 
-
         /// <summary>
         /// <summary>
         /// 团组汇率 更新 or 添加
         /// 团组汇率 更新 or 添加
         /// </summary>
         /// </summary>
@@ -365,15 +382,12 @@ namespace OASystem.Infrastructure.Repositories.Groups
         /// <returns></returns>
         /// <returns></returns>
         public async Task<Result> PostGroupRateUpdate(TeamRateUpdateDto dto)
         public async Task<Result> PostGroupRateUpdate(TeamRateUpdateDto dto)
         {
         {
-
             Result result = new() { Code = -2 };
             Result result = new() { Code = -2 };
-
             int addCount = 0, updateCount = 0;
             int addCount = 0, updateCount = 0;
             if (dto.PortType == 1)
             if (dto.PortType == 1)
             {
             {
                 try
                 try
                 {
                 {
-
                     _sqlSugar.BeginTran();
                     _sqlSugar.BeginTran();
                     int res = -1;
                     int res = -1;
                     foreach (TeamRateUpdateInfo item in dto.teamRateUpdateInfos)
                     foreach (TeamRateUpdateInfo item in dto.teamRateUpdateInfos)
@@ -459,6 +473,9 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
 
         }
         }
 
 
+        
+
+
         /// <summary>
         /// <summary>
         /// 团组汇率 Rep
         /// 团组汇率 Rep
         /// 根据团组Id 查询汇率
         /// 根据团组Id 查询汇率

+ 84 - 25
OASystem/OASystem.Infrastructure/Repositories/Groups/TourClientListRepository.cs

@@ -1,8 +1,11 @@
 using AutoMapper;
 using AutoMapper;
 using OASystem.Domain;
 using OASystem.Domain;
+using OASystem.Domain.Dtos.Groups;
+using OASystem.Domain.Entities.Customer;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.ViewModels.Groups;
 using OASystem.Domain.ViewModels.Groups;
 using OASystem.Infrastructure.Tools;
 using OASystem.Infrastructure.Tools;
+using Org.BouncyCastle.Utilities.Encoders;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
@@ -136,40 +139,96 @@ namespace OASystem.Infrastructure.Repositories.Groups
         /// <param name="portId"></param>
         /// <param name="portId"></param>
         /// <param name="id"></param>
         /// <param name="id"></param>
         /// <returns></returns>
         /// <returns></returns>
-        public async Task<Result> _AddOrEdit(int portId, int id)
+        public async Task<Result> _AddOrEdit(TourClientListAddOrEditDto dto)
         {
         {
-            if (portId == 1 || portId == 2 || portId == 3) // 1 web 2 Android 3 ios
+            if (dto.Id < 0) // 1 web 2 Android 3 ios
             {
             {
-                string sql = string.Format(@"Select tcl.Id,tcl.DiId,temp.*,tcl.ShippingSpaceTypeId,tcl.ShippingSpaceSpecialNeeds,
-                                             tcl.HotelSpecialNeeds,tcl.MealSpecialNeeds,tcl.Remark
-                                             From Grp_TourClientList tcl
-                                             Left Join 
-	                                             (Select dc.Id As DcId,dc.LastName,dc.FirstName,dc.Pinyin,dc.Sex,ccom.CompanyFullName,dc.Job,
-	                                                 cc1.CertNo As IDCardNo,dc.Phone,dc.BirthDay,cc2.PassportType,cc2.CertNo As PassportNo,cc2.Country,
-	                                                 cc2.Area,cc2.IssueDt,cc2.ExpiryDt
-	                                                 From Crm_DeleClient dc
-	                                                 Left Join Crm_CustomerCompany ccom On dc.CrmCompanyId = ccom.Id  And ccom.IsDel = 0
-	                                                 Left Join Crm_CustomerCert cc1 On dc.Id = cc1.DcId And cc1.SdId = 773 And cc1.IsDel = 0
-	                                                 Left Join Crm_CustomerCert cc2 On dc.Id = cc2.DcId And cc2.SdId = 774 And cc2.IsDel = 0
-	                                                 Where dc.IsDel = 0) temp 
-                                             On temp.DcId =tcl.ClientId  
-                                             Where tcl.IsDel = 0 And tcl.Id = {0}", id);
-                var data = await _sqlSugar.SqlQueryable<TourClientListDetailsView>(sql).FirstAsync();
-                if (data != null)
+                if (dto.Id == 0) // 添加
                 {
                 {
-                    data.BirthDay = data.BirthDay.DateFormat("yyyy-MM-dd");
-                    data.IssueDt = data.IssueDt.DateFormat("yyyy-MM-dd");
-                    data.ExpiryDt = data.ExpiryDt.DateFormat("yyyy-MM-dd");
-                    _result.Code = 0;
-                    _result.Data = data;
+                    #region 参数处理
+                    _sqlSugar.BeginTran();
+                    int clientId = -1;
+                    var clientInfo = await _sqlSugar.Queryable<Crm_DeleClient>().Where(it => it.IsDel == 0 &&
+                                                                                             it.LastName.Equals(dto.LastName) &&
+                                                                                             it.FirstName.Equals(dto.FirstName) &&
+                                                                                             it.Phone.Equals(dto.Phone)
+                                                                                       ).FirstAsync();
+                    if (clientInfo != null)  //该客户存在 修改信息 
+                    {
+                        Crm_DeleClient _DeleClient = new Crm_DeleClient()
+                        {
+                            LastName = dto.LastName,
+                            FirstName = dto.FirstName,
+                            Pinyin = dto.Pinyin,
+                            Sex = dto.Sex,
+                            Phone = dto.Phone,
+                            BirthDay = dto.BirthDay
+                        };
+
+
+                        clientId = clientInfo.Id;
+
+                        //1.修改基本信息
+                        var clientEdit = await _sqlSugar.Updateable(_DeleClient).UpdateColumns(it =>
+                                                                                     new
+                                                                                     {
+                                                                                         it.LastName,
+                                                                                         it.FirstName,
+                                                                                         it.Pinyin,
+                                                                                         it.Sex,
+                                                                                         it.Phone,
+                                                                                         it.BirthDay
+                                                                                     }
+                                                                                 )
+                                                                                .Where(it => it.Id == clientId)
+                                                                                .ExecuteCommandAsync();
+                        if (clientEdit < 0)
+                        {
+                            _sqlSugar.RollbackTran();
+                            _result.Msg = "客户基础信息修改失败!";
+                        }
+                        //2.修改卡类型信息
+                        //2.1 修改身份证信息
+
+
+                    }
+                    else //不存在添加 客户信息
+                    {
+                        //1.添加基本信息
+                        //2.添加卡类型信息
+                        //2.1 添加身份证信息
+                        //2.2 添加护照信息
+                    }
+
+
+                    Grp_TourClientList _TourClientList = new Grp_TourClientList() {
+                        DiId = dto.DiId,
+                        ClientId = clientId,
+                        ShippingSpaceTypeId = dto.ShippingSpaceTypeId,
+                        ShippingSpaceSpecialNeeds = dto.ShippingSpaceSpecialNeeds,
+                        HotelSpecialNeeds = dto.HotelSpecialNeeds,
+                        MealSpecialNeeds = dto.MealSpecialNeeds,
+                        CreateUserId = dto.UserId,
+                        IsDel = 0
+                    };
+
+
+                    _sqlSugar.CommitTran();
+                    #endregion
+
+
                 }
                 }
+                else if (dto.Id > 0) //修改
+                { 
+                
+                }
+
             }
             }
             else
             else
             {
             {
-                _result.Msg = "请传入有效的PortType参数,1 Web 2 Android 3 IOS!";
+                _result.Msg = "请传入有效的id参数!";
             }
             }
             return _result;
             return _result;
         }
         }
-
     }
     }
 }
 }

+ 3 - 1
OASystem/OASystem.Infrastructure/Repositories/Login/LoginRepository.cs

@@ -163,6 +163,8 @@ namespace OASystem.Infrastructure.Repositories.Login
 
 
             var updateStatus = await _sqlSugar.Updateable(_userInfo).UpdateColumns(it => new { it.CreateUserId }).Where(it => it.Id == _AddId).ExecuteCommandAsync();
             var updateStatus = await _sqlSugar.Updateable(_userInfo).UpdateColumns(it => new { it.CreateUserId }).Where(it => it.Id == _AddId).ExecuteCommandAsync();
 
 
+            //添加员工 默认页面权限
+
 
 
             result.Code = 0;
             result.Code = 0;
             //result.Msg = string.Format("账号:{0}\r\n密码:{1}\r\n申请成功!\r\n人事主管审核后,即可登录OA!", number, registerDto.Password);
             //result.Msg = string.Format("账号:{0}\r\n密码:{1}\r\n申请成功!\r\n人事主管审核后,即可登录OA!", number, registerDto.Password);
@@ -180,7 +182,7 @@ namespace OASystem.Infrastructure.Repositories.Login
 
 
             string userSql = string.Format("Select * From  Sys_Users Where DepId = {0} And Number != '' Order By Id Desc", depId);
             string userSql = string.Format("Select * From  Sys_Users Where DepId = {0} And Number != '' Order By Id Desc", depId);
             var userData = await _sqlSugar.SqlQueryable<Sys_Users>(userSql).ToListAsync();
             var userData = await _sqlSugar.SqlQueryable<Sys_Users>(userSql).ToListAsync();
-            if (userData.Count <= 0) return number;
+            //if (userData.Count <= 0) return number;
 
 
             string depSql = string.Format("Select * From  Sys_Department Where Id = {0} ", depId);
             string depSql = string.Format("Select * From  Sys_Department Where Id = {0} ", depId);
             var depData = await _sqlSugar.SqlQueryable<Sys_Department>(depSql).FirstAsync();
             var depData = await _sqlSugar.SqlQueryable<Sys_Department>(depSql).FirstAsync();