Quellcode durchsuchen

财务相关表

leiy vor 1 Jahr
Ursprung
Commit
ff11df7dfd
34 geänderte Dateien mit 2700 neuen und 129 gelöschten Zeilen
  1. 6 9
      OASystem/EntitySync/Program.cs
  2. 20 0
      OASystem/OASystem.Api/Controllers/BusinessController.cs
  3. 315 18
      OASystem/OASystem.Api/Controllers/GroupsController.cs
  4. 1 0
      OASystem/OASystem.Api/Controllers/ResourceController.cs
  5. 12 12
      OASystem/OASystem.Api/Controllers/TencentOCRController.cs
  6. 70 0
      OASystem/OASystem.Api/OAMethodLib/ALiYun/AliMessagePost.cs
  7. 8 0
      OASystem/OASystem.Api/OAMethodLib/AutofacRegister.cs
  8. 85 0
      OASystem/OASystem.Api/OAMethodLib/Quartz/Business/DeleReminderMessage.cs
  9. 26 0
      OASystem/OASystem.Api/OAMethodLib/Quartz/IOCJobFactory.cs
  10. 23 0
      OASystem/OASystem.Api/OAMethodLib/Quartz/Jobs/ALiYunPostMessageJob.cs
  11. 40 0
      OASystem/OASystem.Api/OAMethodLib/Quartz/QuartzFactory.cs
  12. 2 0
      OASystem/OASystem.Api/OASystem.API.csproj
  13. 37 1
      OASystem/OASystem.Api/Program.cs
  14. 11 2
      OASystem/OASystem.Api/appsettings.json
  15. 7 0
      OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs
  16. 26 0
      OASystem/OASystem.Domain/Dtos/Business/DeleReminderConfig.cs
  17. 89 0
      OASystem/OASystem.Domain/Dtos/Groups/DecreasePaymentsDto.cs
  18. 148 0
      OASystem/OASystem.Domain/Dtos/Groups/InvitationOfficialActivitiesListDto.cs
  19. 42 0
      OASystem/OASystem.Domain/Entities/Business/Bus_MsgPostInfo.cs
  20. 10 10
      OASystem/OASystem.Domain/Entities/Groups/Grp_CreditCardPayment.cs
  21. 42 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_DecreasePayments.cs
  22. 69 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_InvitationOfficialActivities.cs
  23. 112 0
      OASystem/OASystem.Domain/Entities/Resource/Res_InvitationOfficialActivityData.cs
  24. 2 1
      OASystem/OASystem.Domain/Enums/DBEnum.cs
  25. 2 2
      OASystem/OASystem.Domain/Enums/TencentOCREnum.cs
  26. 1 0
      OASystem/OASystem.Domain/OASystem.Domain.csproj
  27. 40 0
      OASystem/OASystem.Domain/ViewModels/Groups/DecreasePaymentsView.cs
  28. 52 0
      OASystem/OASystem.Domain/ViewModels/Groups/InvitationOfficialActivitiesView.cs
  29. 390 0
      OASystem/OASystem.Domain/ViewModels/Groups/OA2021_DelegationInfo.cs
  30. 72 68
      OASystem/OASystem.Infrastructure/Repositories/Resource/AirTicketResRepository.cs
  31. 333 0
      OASystem/OASystem.Infrastructure/Repositories/Groups/DecreasePaymentsRepository.cs
  32. 380 0
      OASystem/OASystem.Infrastructure/Repositories/Groups/InvitationOfficialActivitiesRepository.cs
  33. 1 1
      OASystem/OASystem.Infrastructure/Repositories/Resource/AirTicketAgentRepository.cs
  34. 226 5
      OASystem/_Doc/OA2023数据字典.docx

+ 6 - 9
OASystem/EntitySync/Program.cs

@@ -90,14 +90,11 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Bus_ConfItemListInfo)
     //typeof(Res_CountryFeeCost)
     //typeof(Res_MemoInfo),
-    //typeof(Fin_DailyFeePayment),       // 财务 - 日付申请
-    //typeof(Fin_DailyFeePaymentContent),// 财务 - 日付申请详细类
-    //typeof(Grp_GroupsTaskAssignment),
-    //typeof(Grp_AirTicketReservations),
-    //typeof(Grp_GroupCostParameter),
-    //typeof(Grp_TeamRate),              // 团组汇率
-    //typeof(Fin_ForeignReceivables),    // 对外收款账单
-    //typeof(Fin_ProceedsReceived),      // 已收款项
-    //typeof(Fin_OtherPrice),            // 其他款项
+    //typeof(Fin_DailyFeePayment), // 财务 - 日付申请
+    //typeof(Fin_DailyFeePaymentContent)  // 财务 - 日付申请详细类
+    //typeof(Grp_GroupsTaskAssignment)
+    //typeof(Grp_AirTicketReservations)
+    //typeof(Grp_GroupCostParameter)
+    typeof(Grp_TeamRate)
 });
 Console.WriteLine("数据库结构同步完成!");

+ 20 - 0
OASystem/OASystem.Api/Controllers/BusinessController.cs

@@ -1,4 +1,6 @@
 using Microsoft.AspNetCore.Mvc;
+using NPOI.SS.Formula.Functions;
+using OASystem.API.OAMethodLib.ALiYun;
 using OASystem.API.OAMethodLib.ExcelOutput;
 using OASystem.Domain.Common;
 using OASystem.Domain.Dtos.Business;
@@ -163,5 +165,23 @@ Where c.ConfListId = {0}", ConfId);
 
         #endregion
 
+        #region 阿里云短信测试
+
+        /// <summary>
+        /// 编辑物料采购清单
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> AliMessageTest(string mobile)
+        {
+
+            string add2dayZH = DateTime.Now.AddDays(2).ToString("yyyy年MM月dd日");
+            string templateParam = JsonConvert.SerializeObject(new { teams = "测试团组", date = add2dayZH });
+            AliMessagePost.PostMessage(mobile, "泛美国际团组", "SMS_461575447", templateParam);
+            return Ok(JsonView(true));
+        }
+
+        #endregion
     }
 }

+ 315 - 18
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -13,10 +13,11 @@ using TencentCloud.Ocr.V20181119.Models;
 using OASystem.Infrastructure.Tools;
 using System.Web;
 using System.Data;
-using static OASystem.Infrastructure.Repositories.Resource.AirTicketResRepository;
+using static OASystem.Infrastructure.Repositories.Groups.AirTicketResRepository;
 using static OpenAI.GPT3.ObjectModels.SharedModels.IOpenAiModels;
 using Cell = Aspose.Words.Tables.Cell;
 using Row = Aspose.Words.Tables.Row;
+using System.Runtime.Intrinsics.Arm;
 
 namespace OASystem.API.Controllers
 {
@@ -32,10 +33,14 @@ namespace OASystem.API.Controllers
         private readonly DelegationInfoRepository _groupRepository;
         private readonly TaskAssignmentRepository _taskAssignmentRep;
         private readonly AirTicketResRepository _airTicketResRep;
+        private readonly DecreasePaymentsRepository _decreasePaymentsRep;
+        private readonly InvitationOfficialActivitiesRepository _InvitationOfficialActivitiesRep;
         private readonly SqlSugarClient _sqlSugar;
         private string url;
         private string path;
-        public GroupsController(IMapper mapper,SqlSugarClient sqlSugar, GrpScheduleRepository grpScheduleRep, DelegationInfoRepository groupRepository, TaskAssignmentRepository taskAssignmentRep, AirTicketResRepository airTicketResRep)
+        public GroupsController(IMapper mapper, SqlSugarClient sqlSugar, GrpScheduleRepository grpScheduleRep, DelegationInfoRepository groupRepository,
+            TaskAssignmentRepository taskAssignmentRep, AirTicketResRepository airTicketResRep, DecreasePaymentsRepository decreasePaymentsRep,
+            InvitationOfficialActivitiesRepository InvitationOfficialActivitiesRep)
         {
             _mapper = mapper;
             _grpScheduleRep = grpScheduleRep;
@@ -49,6 +54,8 @@ namespace OASystem.API.Controllers
             {
                 System.IO.Directory.CreateDirectory(path);//不存在就创建文件夹
             }
+            _decreasePaymentsRep = decreasePaymentsRep;
+            _InvitationOfficialActivitiesRep = InvitationOfficialActivitiesRep;
         }
 
         #region 流程管控
@@ -497,8 +504,6 @@ namespace OASystem.API.Controllers
             exp.AndIF(_dto.AuditStatus != -1, it => it.IsAuditGM == _dto.AuditStatus);
             exp.AndIF(_dto.Label != -1, it => it.CTable == _dto.Label);
 
-
-            //缺少IF的语法糖 CTable
             List<Grp_CreditCardPayment> entityList = _groupRepository
                 .Query<Grp_CreditCardPayment>(s => s.DIId == _dto.DiId && s.IsDel == 0 && s.CreateUserId > 0)
                 .Where(exp.ToExpression())
@@ -549,7 +554,14 @@ namespace OASystem.API.Controllers
                     case 79:
                         _detail.BusName = "待增加";
                         break;
-
+                    case 98:
+                        Grp_DecreasePayments gdpRes = _groupRepository.Query<Grp_DecreasePayments>(s => s.Id == entity.CId).First();
+                        if (gdpRes != null)
+                        {
+                            _detail.PriceMsgContent = "备注:" + gdpRes.Remark;
+                            _detail.PriceNameContent = gdpRes.PriceName;
+                        }
+                        break;
                     default:
                         break;
                 }
@@ -709,7 +721,7 @@ namespace OASystem.API.Controllers
                 var result = await _grpScheduleRep._sqlSugar.Updateable<Grp_CreditCardPayment>()
                 .SetColumns(it => it.IsAuditGM == _dto.AuditCode)
                 .SetColumns(it => it.AuditGMOperate == _dto.User)
-                .SetColumns(it => it.AuditGMDate == dtNow)
+                .SetColumns(it => it.AuditGMDate == dtNow.ToString())
                 .Where(s => s.Id == CreditId)
                 .ExecuteCommandAsync();
                 if (result < 1)
@@ -941,7 +953,7 @@ namespace OASystem.API.Controllers
                 else
                 {
                     List<AirTicketReservationsView> _AirTicketReservations = groupData.Data;
-                    if (dto.Language=="CN")
+                    if (dto.Language == "CN")
                     {
                         Document doc = new Document(AppSettingsHelper.Get("WordBasePath") + "Template/电子客票行程单模板_CN.docx");
                         DocumentBuilder builder = new DocumentBuilder(doc);
@@ -1056,7 +1068,9 @@ namespace OASystem.API.Controllers
                                     Paragraph p = new Paragraph(doc);
                                     string s = value;
                                     p.AppendChild(new Run(doc, s));
+                                    p.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
                                     ishcel0.AppendChild(p);
+                                    ishcel0.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;//垂直居中对齐
                                     index++;
                                 }
                                 row++;
@@ -1113,12 +1127,12 @@ namespace OASystem.API.Controllers
                             {
                                 if (!name.Contains(clientName))
                                 {
-                                    name = name + "," + clientName;
+                                    name += clientName + ",";
                                 }
                             }
                             if (!string.IsNullOrWhiteSpace(name))
                             {
-                                table.Range.Bookmarks["ClientName"].Text = name;
+                                table.Range.Bookmarks["ClientName"].Text = name.Substring(0, name.Length - 1);
                             }
                             else
                             {
@@ -1151,7 +1165,7 @@ namespace OASystem.API.Controllers
                         int tableIndex = 0;//表格索引
                                            //得到文档中的第一个表格
                         Table table = (Table)doc.GetChild(NodeType.Table, tableIndex, true);
-                       
+
                         List<string> texts = new List<string>();
                         foreach (var item in _AirTicketReservations)
                         {
@@ -1165,7 +1179,7 @@ namespace OASystem.API.Controllers
                                     {
                                         transDic.Add(_AirCompany.CnName, _AirCompany.EnName);
                                     }
-                                    
+
                                 }
                                 else
                                 {
@@ -1173,7 +1187,7 @@ namespace OASystem.API.Controllers
                                     {
                                         transDic.Add("--", "--");
                                     }
-                                    
+
                                 }
                             }
                             string[] nameArray = Regex.Split(item.ClientName, "\\d+\\.", RegexOptions.IgnoreCase);
@@ -1181,7 +1195,7 @@ namespace OASystem.API.Controllers
                             string name = "";
                             foreach (string clientName in nameArray)
                             {
-                                name += clientName+",";
+                                name += clientName + ",";
                             }
                             if (!texts.Contains(name))
                             {
@@ -1208,14 +1222,14 @@ namespace OASystem.API.Controllers
                                     }
                                 }
                                 Res_ThreeCode End_Three = _sqlSugar.Queryable<Res_ThreeCode>().First(a => a.Three == tempstr[3].Substring(3, 3));
-                                
+
                                 if (End_Three != null)
                                 {
                                     if (!transDic.ContainsKey(End_Three.AirPort))
                                     {
                                         transDic.Add(End_Three.AirPort, End_Three.AirPort_En);
                                     }
-                                    
+
                                 }
                                 if (!texts.Contains(item.CTypeName))
                                 {
@@ -1249,7 +1263,7 @@ namespace OASystem.API.Controllers
                                     if (!string.IsNullOrEmpty(translateResult))
                                     {
                                         str = translateResult;
-                                        str =_airTicketResRep.Processing(str);
+                                        str = _airTicketResRep.Processing(str);
                                     }
 
                                     table.Range.Bookmarks["AirlineCompany"].Text = str;
@@ -1266,7 +1280,7 @@ namespace OASystem.API.Controllers
                             string names = "";
                             foreach (string clientName in nameArray)
                             {
-                                    names += clientName + ",";
+                                names += clientName + ",";
                             }
                             if (!string.IsNullOrWhiteSpace(names))
                             {
@@ -1330,7 +1344,7 @@ namespace OASystem.API.Controllers
                                     if (!string.IsNullOrEmpty(translateResult1))
                                     {
                                         str1 = translateResult1;
-                                        str1= _airTicketResRep.Processing(str1);
+                                        str1 = _airTicketResRep.Processing(str1);
                                     }
                                     EndCity = str1;
                                 }
@@ -1376,7 +1390,10 @@ namespace OASystem.API.Controllers
                                     Paragraph p = new Paragraph(doc);
                                     string s = value;
                                     p.AppendChild(new Run(doc, s));
+                                    p.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐
                                     ishcel0.AppendChild(p);
+                                    ishcel0.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;//垂直居中对齐
+                                    //ishcel0.CellFormat.VerticalAlignment=
                                     index++;
                                 }
                                 row++;
@@ -1487,5 +1504,285 @@ namespace OASystem.API.Controllers
             }
         }
         #endregion
+
+        #region 团组增减款项
+        /// <summary>
+        /// 团组增减款项下拉框绑定
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> DecreasePaymentsSelect(DecreasePaymentsDto dto)
+        {
+            try
+            {
+                Result groupData = await _decreasePaymentsRep.DecreasePaymentsSelect(dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+                return Ok(JsonView(true, groupData.Msg, groupData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        /// <summary>
+        /// 根据团组Id查询团组增减款项
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> DecreasePaymentsList(DecreasePaymentsListDto dto)
+        {
+            try
+            {
+                Result groupData = await _decreasePaymentsRep.DecreasePaymentsList(dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+                return Ok(JsonView(true, groupData.Msg, groupData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        /// <summary>
+        /// 团组增减款项操作(Status:1.新增,2.修改)
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> OpDecreasePayments(DecreasePaymentsOpDto dto)
+        {
+            try
+            {
+                Result groupData = await _decreasePaymentsRep.OpDecreasePayments(dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+                return Ok(JsonView(true, groupData.Msg, groupData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        /// <summary>
+        /// 团组增减款项操作 删除
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> DelDecreasePayments(DelBaseDto dto)
+        {
+            try
+            {
+                var res = await _decreasePaymentsRep.SoftDeleteByIdAsync<Grp_DecreasePayments>(dto.Id.ToString(), dto.DeleteUserId);
+                if (!res)
+                {
+                    return Ok(JsonView(false, "删除失败"));
+                }
+                return Ok(JsonView(true, "删除成功!"));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+
+        /// <summary>
+        /// 根据团组增减款项Id查询
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> QueryDecreasePaymentsById(DecreasePaymentsByIdDto dto)
+        {
+            try
+            {
+                Result groupData = await _decreasePaymentsRep.QueryDecreasePaymentsById(dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+                return Ok(JsonView(true, groupData.Msg, groupData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+
+
+        /// <summary>
+        /// region 文件上传  可以带参数
+        /// </summary>
+        /// <param name="file"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> UploadProject(IFormFile file)
+        {
+            try
+            {
+                if (file != null)
+                {
+                    var fileDir = AppSettingsHelper.Get("GrpFileBasePath");
+                    if (!Directory.Exists(fileDir))
+                    {
+                        Directory.CreateDirectory(fileDir);
+                    }
+                    //文件名称
+                    string projectFileName = file.FileName;
+
+                    //上传的文件的路径
+                    string filePath = fileDir + $@"\{projectFileName}";
+                    using (FileStream fs = System.IO.File.Create(filePath))
+                    {
+                        file.CopyTo(fs);
+                        fs.Flush();
+                    }
+                    return Ok(JsonView(true, "上传成功!", projectFileName));
+                }
+                else
+                {
+                    return Ok(JsonView(false, "上传失败!"));
+                }
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+            
+        }
+        /// <summary>
+        /// 删除指定文件
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> DelFile(DelFileDto dto)
+        {
+            try
+            {
+                var fileDir = AppSettingsHelper.Get("GrpFileBasePath");
+                // 返回与指定虚拟路径相对应的物理路径即绝对路径
+                string filePath = fileDir+ dto.fileName;
+                // 删除该文件
+                System.IO.File.Delete(filePath);
+                int id= await _sqlSugar.Updateable<Grp_DecreasePayments>().Where(a => a.Id == dto.Id).SetColumns(a => new Grp_DecreasePayments {FilePath="" }).ExecuteCommandAsync();
+                if (id!=0)
+                {
+                    return Ok(JsonView(true, "成功!"));
+                }
+                else
+                {
+                    return Ok(JsonView(false, "失败!"));
+                }
+                
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+
+        }
+        #endregion
+
+        #region 商邀费用录入
+        /// <summary>
+        /// 根据团组Id查询商邀费用列表
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> InvitationOfficialActivitiesList(InvitationOfficialActivitiesListDto dto)
+        {
+            try
+            {
+                Result groupData = await _InvitationOfficialActivitiesRep.InvitationOfficialActivitiesList(dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+                return Ok(JsonView(true, groupData.Msg, groupData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        /// <summary>
+        /// 根据商邀费用ID查询C表和商邀费用数据
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] 
+        public async Task<IActionResult> InvitationOfficialActivitiesById(InvitationOfficialActivitiesByIdDto dto)
+        {
+            try
+            {
+                Result groupData = await _InvitationOfficialActivitiesRep.InvitationOfficialActivitiesById(dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+                return Ok(JsonView(true, groupData.Msg, groupData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        /// <summary>
+        /// 商邀费用录入操作(Status:1.新增,2.修改)
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> OpInvitationOfficialActivities(OpInvitationOfficialActivitiesDto dto)
+        {
+            try
+            {
+                Result groupData = await _InvitationOfficialActivitiesRep.OpInvitationOfficialActivities(dto);
+                if (groupData.Code != 0)
+                { 
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+                return Ok(JsonView(true, groupData.Msg, groupData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+
+
+        #endregion
+
     }
 }

+ 1 - 0
OASystem/OASystem.Api/Controllers/ResourceController.cs

@@ -1,5 +1,6 @@
 using OASystem.API.OAMethodLib;
 using OASystem.Domain.Dtos.Resource;
+using OASystem.Infrastructure.Repositories.Groups;
 using System.Collections.Generic;
 
 namespace OASystem.API.Controllers

+ 12 - 12
OASystem/OASystem.Api/Controllers/TencentOCRController.cs

@@ -52,7 +52,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var gbData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.GeneralBasic, dto);
+            var gbData = TencentOCRTools.GetOCR((int)TencentOCREnum.GeneralBasic, dto);
 
             if (gbData.Code != 0)
             {
@@ -91,7 +91,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var idCardData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.IDCard, dto);
+            var idCardData = TencentOCRTools.GetOCR((int)TencentOCREnum.IDCard, dto);
 
             if (idCardData.Code != 0)
             {
@@ -186,7 +186,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var residenceBookData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.ResidenceBooklet, dto);
+            var residenceBookData = TencentOCRTools.GetOCR((int)TencentOCREnum.ResidenceBooklet, dto);
 
             if (residenceBookData.Code != 0)
             {
@@ -218,7 +218,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var residenceBookData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.BizLicense, dto);
+            var residenceBookData = TencentOCRTools.GetOCR((int)TencentOCREnum.BizLicense, dto);
 
             if (residenceBookData.Code != 0)
             {
@@ -250,7 +250,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var occData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.OrgCodeCert, dto);
+            var occData = TencentOCRTools.GetOCR((int)TencentOCREnum.OrgCodeCert, dto);
 
             if (occData.Code != 0)
             {
@@ -282,7 +282,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var vehicleLicenseData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.VehicleLicense, dto);
+            var vehicleLicenseData = TencentOCRTools.GetOCR((int)TencentOCREnum.VehicleLicense, dto);
 
             if (vehicleLicenseData.Code != 0)
             {
@@ -313,7 +313,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var pcData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.PropOwnerCert, dto);
+            var pcData = TencentOCRTools.GetOCR((int)TencentOCREnum.PropOwnerCert, dto);
 
             if (pcData.Code != 0)
             {
@@ -344,7 +344,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var mlData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.GeneralBasic, dto);
+            var mlData = TencentOCRTools.GetOCR((int)TencentOCREnum.GeneralBasic, dto);
 
             if (mlData.Code != 0)
             {
@@ -375,7 +375,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var gbData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.GeneralBasic, dto);
+            var gbData = TencentOCRTools.GetOCR((int)TencentOCREnum.GeneralBasic, dto);
 
             if (gbData.Code != 0)
             {
@@ -406,7 +406,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var pData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.Passport, dto);
+            var pData = TencentOCRTools.GetOCR((int)TencentOCREnum.Passport, dto);
 
             if (pData.Code != 0)
             {
@@ -437,7 +437,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var mlidpData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.MLIDPassport, dto);
+            var mlidpData = TencentOCRTools.GetOCR((int)TencentOCREnum.MLIDPassport, dto);
 
             if (mlidpData.Code != 0)
             {
@@ -468,7 +468,7 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView("图片不能大于7M!"));
             }
 
-            var mlidpData = TencentOCRTools.GetOCR((int)TencentOCR.TencentOCREnum.BusinessCard, dto);
+            var mlidpData = TencentOCRTools.GetOCR((int)TencentOCREnum.BusinessCard, dto);
 
             if (mlidpData.Code != 0)
             {

+ 70 - 0
OASystem/OASystem.Api/OAMethodLib/ALiYun/AliMessagePost.cs

@@ -0,0 +1,70 @@
+using Tea;
+
+namespace OASystem.API.OAMethodLib.ALiYun
+{
+    public class AliMessagePost
+    {
+        private static string accessKeyId { get; set; } = "LTAI5t982d4MQ8FqswNt3qkf";
+        private static string accessKeySecret { get; set; } = "VsDBzZI4O6IEli7NgdWHoZviHgYgYB";
+
+        /**
+         * 使用AK&SK初始化账号Client
+         * @param accessKeyId
+         * @param accessKeySecret
+         * @return Client
+         * @throws Exception
+         */
+        public static AlibabaCloud.SDK.Dysmsapi20170525.Client CreateClient(string accessKeyId, string accessKeySecret)
+        {
+            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
+            {
+                // 必填,您的 AccessKey ID
+                AccessKeyId = accessKeyId,
+                // 必填,您的 AccessKey Secret
+                AccessKeySecret = accessKeySecret,
+            };
+            // 访问的域名
+            config.Endpoint = "dysmsapi.aliyuncs.com";
+            return new AlibabaCloud.SDK.Dysmsapi20170525.Client(config);
+        }
+
+        public static string PostMessage(string phoneNumber, string signName,string templateCode,string templateParam)
+        {
+            // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
+            // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378671.html
+            AlibabaCloud.SDK.Dysmsapi20170525.Client client = CreateClient(accessKeyId, accessKeySecret);
+            AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest
+            {
+                PhoneNumbers = phoneNumber,
+                SignName = signName,
+                TemplateCode = templateCode,
+                TemplateParam = templateParam
+            };
+
+            string result = "发送失败,未知错误";
+            try
+            {
+                // 复制代码运行请自行打印 API 的返回值
+                var suc = client.SendSmsWithOptions(sendSmsRequest, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
+                result = JsonConvert.SerializeObject(suc);
+            }
+            catch (TeaException error)
+            {
+                // 如有需要,请打印 error
+                result = AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
+            }
+            catch (Exception _error)
+            {
+                TeaException error = new TeaException(new Dictionary<string, object>
+                {
+                    { "message", _error.Message }
+                });
+                // 如有需要,请打印 error
+                result = AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
+            }
+
+            return result;
+        }
+
+    }
+}

+ 8 - 0
OASystem/OASystem.Api/OAMethodLib/AutofacRegister.cs

@@ -1,5 +1,6 @@
 using Microsoft.Extensions.Configuration.Json;
 using OASystem.Domain.Dtos.Groups;
+using OASystem.Domain.Dtos.Business;
 
 namespace OASystem.API.OAMethodLib
 {
@@ -24,6 +25,13 @@ namespace OASystem.API.OAMethodLib
             builder.RegisterInstance<GroupsConfig>(_groupsConfig);
             #endregion
 
+            #region 团组结束通知短信
+            DeleReminderConfig _deleReminderConfig = new DeleReminderConfig();
+            _deleReminderConfig.Test= AppSettingsHelper.Get(DeleReminderConfig.KEY, "Test");
+            _deleReminderConfig.PhoneNumber= AppSettingsHelper.Get(DeleReminderConfig.KEY, "PhoneNumber");
+            builder.RegisterInstance<DeleReminderConfig>(_deleReminderConfig);
+            #endregion
+
         }
     }
 }

+ 85 - 0
OASystem/OASystem.Api/OAMethodLib/Quartz/Business/DeleReminderMessage.cs

@@ -0,0 +1,85 @@
+using OASystem.API.OAMethodLib.ALiYun;
+using OASystem.Domain.Dtos.Business;
+using OASystem.Domain.Entities.Business;
+using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.ViewModels.Groups;
+using OASystem.Infrastructure.Repositories.Groups;
+
+namespace OASystem.API.OAMethodLib.Quartz.Business
+{
+    public static class DeleReminderMessage
+    {
+        private readonly static DelegationInfoRepository _grpDeleRep = AutofacIocManager.Instance.GetService<DelegationInfoRepository>();
+
+        /// <summary>
+        /// 检查团组结束日期,将当天和2天后的团组整理并发送短信提醒
+        /// </summary>
+        public static async void PostMessage()
+        {
+            DeleReminderConfig _deleReminderConfig = AutofacIocManager.Instance.GetService<DeleReminderConfig>();
+            List<string> list_PhoneNumbers = _deleReminderConfig.PhoneNumber.Split(',').ToList();
+
+            //sqladd2day查询0A2014数据库,正式使用新OA后将两次查询合并
+            DateTime dtNow = DateTime.Now;
+            string add2day = dtNow.AddDays(2).ToString("yyyy-MM-dd");
+            string add7day = dtNow.AddDays(7).ToString("yyyy-MM-dd");
+
+            _grpDeleRep.ChangeDataBase(DBEnum.OA2014DB);
+            string sql = string.Format(@" Select * From DelegationInfo With(Nolock) Where IsDel=0 And VisitEndDate ='{0}' Or VisitStartDate='{1}' ", add2day, add7day);
+            List<OA2021_DelegationInfo> list_source = _grpDeleRep._sqlSugar.SqlQueryable<OA2021_DelegationInfo>(sql).ToList();
+
+            _grpDeleRep.ChangeDataBase(DBEnum.OA2023DB);
+            if (list_source.Count > 0)
+            {
+                List<OA2021_DelegationInfo> listAdd7day = list_source.Where(s => s.VisitStartDate.Equals(add7day)).ToList();
+                List<OA2021_DelegationInfo> listAdd2day = list_source.Where(s => s.VisitEndDate.Equals(add2day)).ToList();
+
+                if (listAdd7day.Count > 0)
+                {
+                    string teamNames = "";
+                    listAdd7day.ForEach(s => teamNames += s.TeamName + "、");
+                    teamNames = teamNames.TrimEnd('、');
+                    //发送短信
+                    string add7dayZH = dtNow.AddDays(7).ToString("yyyy年MM月dd日");
+                    string templateParam = JsonConvert.SerializeObject(new { teams = teamNames, date = add7dayZH });
+
+                    foreach (string postPhoneNumber in list_PhoneNumbers)
+                    {
+                        string postResult = AliMessagePost.PostMessage(postPhoneNumber, "泛美国际团组", "SMS_461505530", templateParam);
+                        Bus_MsgPostInfo _entity = new Bus_MsgPostInfo();
+                        _entity.Source = "ALiYun";
+                        _entity.TeamNames = teamNames;
+                        _entity.PostType = "Dele2";
+                        _entity.PhoneNumber = postPhoneNumber;
+                        _entity.PostResult = postResult;
+                        _grpDeleRep._sqlSugar.Insertable<Bus_MsgPostInfo>(_entity);
+                    }
+                }
+
+                if (listAdd2day.Count > 0)
+                {
+                    string teamNames = "";
+                    listAdd2day.ForEach(s => teamNames += s.TeamName + "、");
+                    teamNames = teamNames.TrimEnd('、');
+                    //发送短信
+                    string add2dayZH = dtNow.AddDays(2).ToString("yyyy年MM月dd日");
+                    string templateParam = JsonConvert.SerializeObject(new { teams = teamNames, date = add2dayZH });
+                    foreach (string postPhoneNumber in list_PhoneNumbers)
+                    {
+                        string postResult = AliMessagePost.PostMessage(postPhoneNumber, "泛美国际团组", "SMS_461575447", templateParam);
+                        Bus_MsgPostInfo _entity = new Bus_MsgPostInfo();
+                        _entity.Source = "ALiYun";
+                        _entity.TeamNames = teamNames;
+                        _entity.PostType = "Dele1";
+                        _entity.PhoneNumber = postPhoneNumber;
+                        _entity.PostResult = postResult;
+                        _grpDeleRep._sqlSugar.Insertable<Bus_MsgPostInfo>(_entity);
+                    }
+
+
+                }
+            }
+
+        }
+    }
+}

+ 26 - 0
OASystem/OASystem.Api/OAMethodLib/Quartz/IOCJobFactory.cs

@@ -0,0 +1,26 @@
+using Quartz;
+using Quartz.Spi;
+
+namespace QuzrtzJob.Factory
+{
+    public class IOCJobFactory : IJobFactory
+    {
+        private readonly IServiceProvider _serviceProvider;
+        public IOCJobFactory(IServiceProvider serviceProvider)
+        {
+            _serviceProvider = serviceProvider;
+        }
+        public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler)
+        {
+            return _serviceProvider.GetService(bundle.JobDetail.JobType) as IJob;
+
+        }
+
+        public void ReturnJob(IJob job)
+        {
+            var disposable = job as IDisposable;
+            disposable?.Dispose();
+
+        }
+    }
+}

+ 23 - 0
OASystem/OASystem.Api/OAMethodLib/Quartz/Jobs/ALiYunPostMessageJob.cs

@@ -0,0 +1,23 @@
+using OASystem.API.OAMethodLib.Quartz.Business;
+using Quartz;
+
+namespace QuzrtzJob.Factory
+{
+    public class ALiYunPostMessageJob : IJob
+    {
+        private readonly ILogger<ALiYunPostMessageJob> _logger;
+        public ALiYunPostMessageJob(ILogger<ALiYunPostMessageJob> logger)
+        {
+            _logger = logger;
+        }
+
+        public Task Execute(IJobExecutionContext context)
+        {
+            _logger.LogInformation("调用阿里云短信接口 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
+            //在此处编写任务业务代码
+            DeleReminderMessage.PostMessage();
+
+            return Task.CompletedTask;
+        }
+    }
+}

+ 40 - 0
OASystem/OASystem.Api/OAMethodLib/Quartz/QuartzFactory.cs

@@ -0,0 +1,40 @@
+using OASystem.API.OAMethodLib.Quartz;
+using Quartz;
+using Quartz.Spi;
+
+namespace QuzrtzJob.Factory
+{
+    public class QuartzFactory
+    {
+        //1、声明一个调度工厂
+        private ISchedulerFactory _schedulerFactory;
+        private IScheduler _scheduler = default;
+        private IJobFactory _IOCjobFactory;
+        public QuartzFactory(ISchedulerFactory schedulerFactory, IJobFactory jobFactory)
+        {
+            _schedulerFactory = schedulerFactory;
+            _IOCjobFactory = jobFactory;
+        }
+        public async Task<string> Start()
+        {
+            //2、通过调度工厂获得调度器
+            _scheduler = await _schedulerFactory.GetScheduler();
+            //这里是指定容器仓库
+            _scheduler.JobFactory = _IOCjobFactory;
+            //3、开启调度器
+            await _scheduler.Start();
+            //4、创建一个触发器
+            var trigger = TriggerBuilder.Create()
+                            //.WithSimpleSchedule(x => x.WithIntervalInSeconds(2).RepeatForever())//每两秒执行一次
+                            .WithCronSchedule("0 15 9 * * ?")
+                            .Build();
+            //5、创建任务
+            var jobDetail = JobBuilder.Create<ALiYunPostMessageJob>()
+                            .WithIdentity("job", "group")
+                            .Build();
+            //6、将触发器和任务器绑定到调度器中
+            await _scheduler.ScheduleJob(jobDetail, trigger);
+            return await Task.FromResult("将触发器和任务器绑定到调度器中完成");
+        }
+    }
+}

+ 2 - 0
OASystem/OASystem.Api/OASystem.API.csproj

@@ -20,6 +20,7 @@
   </ItemGroup>
 
   <ItemGroup>
+    <PackageReference Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="2.0.23" />
     <PackageReference Include="Aspose.Cells" Version="23.4.0" />
     <PackageReference Include="Autofac" Version="6.4.0" />
     <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
@@ -30,6 +31,7 @@
     <PackageReference Include="Flurl.Http" Version="3.2.4" />
     <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.11" />
     <PackageReference Include="QRCoder" Version="1.4.1" />
+    <PackageReference Include="Quartz" Version="3.6.2" />
     <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
     <PackageReference Include="SqlSugarCore" Version="5.1.3.35" />
     <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />

+ 37 - 1
OASystem/OASystem.Api/Program.cs

@@ -9,6 +9,10 @@ using Microsoft.AspNetCore.Http.Features;
 using Microsoft.AspNetCore.Server.Kestrel.Core;
 using OASystem.API.OAMethodLib.JuHeAPI;
 using OASystem.API.OAMethodLib.YouDaoAPI;
+using Quartz.Impl;
+using Quartz.Spi;
+using Quartz;
+using QuzrtzJob.Factory;
 
 var builder = WebApplication.CreateBuilder(args);
 var basePath = AppContext.BaseDirectory;
@@ -88,7 +92,12 @@ builder.Services.AddScoped(options =>
         new ConnectionConfig() {
             ConfigId = DBEnum.OA2023DB,
             ConnectionString = _config.GetConnectionString("OA2023DB"),
-            DbType = DbType.SqlServer, IsAutoCloseConnection = true }
+            DbType = DbType.SqlServer, IsAutoCloseConnection = true },
+        new ConnectionConfig()
+        {
+            ConfigId = DBEnum.OA2014DB,
+            ConnectionString = _config.GetConnectionString("OA2014DB"),
+            DbType = DbType.SqlServer, IsAutoCloseConnection = true },
     });
 });
 #endregion
@@ -242,6 +251,16 @@ builder.Services.AddHttpClient("PublicJuHeApi", c => c.BaseAddress = new Uri("ht
 //builder.Services.AddHttpClient("PublicYouDaoApi", c => c.BaseAddress = new Uri("https://openapi.youdao.com"));
 #endregion
 
+#region Quartz
+
+builder.Services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();
+builder.Services.AddSingleton<QuartzFactory>();
+builder.Services.AddSingleton<ALiYunPostMessageJob>();
+//# new business
+builder.Services.AddSingleton<IJobFactory, IOCJobFactory>();
+
+#endregion
+
 var app = builder.Build();
 AutofacIocManager.Instance.Container = app.UseHostFiltering().ApplicationServices.GetAutofacRoot();//AutofacIocManager
 
@@ -276,6 +295,23 @@ if (AppSettingsHelper.Get("UseSwagger").ToBool())
 }
 #endregion
 
+#region Quartz
+
+//»ñÈ¡ÈÝÆ÷ÖеÄQuartzFactory
+var quartz = app.Services.GetRequiredService<QuartzFactory>();
+app.Lifetime.ApplicationStarted.Register(async () =>
+{
+    await quartz.Start();
+});
+
+app.Lifetime.ApplicationStopped.Register(() =>
+{
+    //Quzrtz¹Ø±Õ·½·¨
+    //quartz.Stop();
+});
+
+#endregion
+
 
 app.MapControllerRoute(
     name: "default",

+ 11 - 2
OASystem/OASystem.Api/appsettings.json

@@ -1,6 +1,7 @@
 {
   "ConnectionStrings": {
-    "OA2023DB": "server=132.232.92.186;uid=sa;pwd=Yjx@158291;database=OA2023DB;"
+    "OA2023DB": "server=132.232.92.186;uid=sa;pwd=Yjx@158291;database=OA2023DB;",
+    "OA2014DB": "server=132.232.92.186;uid=sa;pwd=Yjx@158291;database=OA2014;"
   },
   "JwtSecurityKey": "48d3f4fe770940a1068052f581536b81", //jwt密钥
   "UseSwagger": "true", //启用Swagger
@@ -13,6 +14,10 @@
     "Boss": "21",
     "FilterUser": "51,180"
   },
+  "DeleReminderConfig": {
+    "PhoneNumber": "17380669807,13683474118",
+    "Test": "18477317582"
+  },
   "RateCurrency": [
     {
       "CurrencyName": "人民币",
@@ -111,7 +116,11 @@
 
   "WordBaseUrl": "http://132.232.92.186:24/",
   "WordBasePath": "C:/Server/File/OA2023/Office/Word/",
-  "WordFtpPath": "Office/Word/"
+  "WordFtpPath": "Office/Word/",
+
+  "GrpFileBaseUrl": "http://132.232.92.186:24/",
+  "GrpFileBasePath": "C:/Server/File/OA2023/Office/GrpFile/"
+
 
 
 }

+ 7 - 0
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -85,6 +85,13 @@ namespace OASystem.Domain.AutoMappers
             CreateMap<Edit_GrpCreditCardPaymentDto, Grp_CreditCardPayment>();
             #endregion
 
+            #region 团组增减款项
+            CreateMap<DecreasePaymentsOpDto, Grp_DecreasePayments>();
+            #endregion
+            #region 商邀费用
+            CreateMap<OpInvitationOfficialActivitiesDto, Grp_InvitationOfficialActivities>();
+            CreateMap<OpInvitationOfficialActivitiesDto,Res_InvitationOfficialActivityData>();
+            #endregion
 
             #endregion
 

+ 26 - 0
OASystem/OASystem.Domain/Dtos/Business/DeleReminderConfig.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Business
+{
+    /// <summary>
+    /// appsettings.json配置对应实体类(团组结束日期短信通知配置)
+    /// </summary>
+    public class DeleReminderConfig
+    {
+        public const string KEY = "DeleReminderConfig";
+
+        /// <summary>
+        /// 财务手机号码
+        /// </summary>
+        public string PhoneNumber { get; set; }
+
+        /// <summary>
+        /// 测试号码
+        /// </summary>
+        public string Test { get; set; }
+    }
+}

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

@@ -0,0 +1,89 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Groups
+{
+    /// <summary>
+    /// 团组增减款项Dto
+    /// </summary>
+    public class DecreasePaymentsDto
+    {
+        public int UserId { get; set; }
+        public int CTId { get; set; }
+    }
+    public class DecreasePaymentsListDto
+    {
+        public int DiId { get; set; }
+    }
+    /// <summary>
+    /// 团组增减款项操作
+    /// </summary>
+    public class DecreasePaymentsOpDto
+    {
+        /// <summary>
+        /// 操作状态
+        /// 1 添加 
+        /// 2 修改 
+        /// </summary>
+        public int Status { get; set; }
+        /// <summary>
+        /// 支付方式
+        /// </summary>
+        public int PayDId { get; set; }
+        /// <summary>
+        /// 费用表示
+        /// </summary>
+        public int OrbitalPrivateTransfer { get; set; }
+        /// <summary>
+        /// 收款方
+        /// </summary>
+        public string Payee { get;set; }
+        /// <summary>
+        /// 编号
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 团组外键编号
+        /// </summary>
+        public int DiId { get; set; }
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        public string PriceName { get; set; }
+        /// <summary>
+        /// 费用金额
+        /// </summary>
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 费用币种
+        /// </summary>
+        public int Currency { get; set; }
+        /// <summary>
+        /// 附件地址
+        /// </summary>
+        public string FilePath { get; set; }
+        /// <summary>
+        /// 创建者Id
+        /// </summary>
+        public int CreateUserId { get; set; }
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+    }
+    public class DecreasePaymentsByIdDto
+    {
+        public int Id { get; set; }
+    }
+
+    public class DelFileDto
+    {
+        public string fileName { get; set; }
+
+        public int Id { get; set; }
+    }
+}

+ 148 - 0
OASystem/OASystem.Domain/Dtos/Groups/InvitationOfficialActivitiesListDto.cs

@@ -0,0 +1,148 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Groups
+{
+    /// <summary>
+    /// 根据团组id查询费用
+    /// </summary>
+    public class InvitationOfficialActivitiesListDto
+    {
+        public int DiId { get; set; }
+        public string Inviter { get; set; }
+        public string StartInviteTime { get; set; }
+        public string EndInviteTime { get; set; }
+    }
+    /// <summary>
+    /// 根据id查询C表数据和商邀费用数据
+    /// </summary>
+    public class InvitationOfficialActivitiesByIdDto
+    {
+        public int Id { get; set; }
+    }
+    /// <summary>
+    /// 操作参数
+    /// </summary>
+    public class OpInvitationOfficialActivitiesDto
+    {
+        /// <summary>
+        /// 操作状态
+        /// 1 添加 
+        /// 2 修改 
+        /// </summary>
+        public int Status { get; set; }
+
+        //-------------------C表参数---------------------------------
+
+        /// <summary>
+        /// 支付方式
+        /// </summary>
+        public int PayDId { get; set; }
+        /// <summary>
+        /// 费用表示
+        /// </summary>
+        public int OrbitalPrivateTransfer { get; set; }
+        /// <summary>
+        /// 收款方
+        /// </summary>
+        public string Payee { get; set; }
+        //---------------------商邀参数--------------------------
+        /// <summary>
+        /// 主键Id
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 团组外键编号
+        /// </summary>
+        public int DiId { get; set; }
+
+        /// <summary>
+        /// 邀请方地区
+        /// </summary>
+        public string InviterArea { get; set; }
+
+        /// <summary>
+        /// 邀请方
+        /// </summary>
+        public string Inviter { get; set; }
+
+        /// <summary>
+        /// 邀请时间
+        /// </summary>
+        public DateTime InviteTime { get; set; }
+
+        /// <summary>
+        /// 附件
+        /// </summary>
+        public string Attachment { get; set; }
+
+        /// <summary>
+        /// 邀请费用
+        /// </summary>
+        public decimal InviteCosts { get; set; }
+
+        /// <summary>
+        /// 币种
+        /// </summary>
+        public int Currency { get; set; }
+
+        /// <summary>
+        /// 快递费用
+        /// </summary>
+        public decimal SendCost { get; set; }
+
+        /// <summary>
+        /// 公务标识
+        /// </summary>
+        public int IsGoOfficaiaBussiness { get; set; }
+        /// <summary>
+        /// 创建者Id
+        /// </summary>
+        public int CreateUserId { get; set; }
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+        //-----------------------邀请方资料-----------------------------
+        public int DataId { get; set; }
+        /// <summary>
+        /// 邀请方国家
+        /// </summary>
+        public string Country { get; set; }
+        /// <summary>
+        /// 邀请方名称
+        /// </summary>
+        public string UnitName { get; set; }
+        /// <summary>
+        /// 邀请方地址
+        /// </summary>
+        public string Address { get; set; }
+        /// <summary>
+        /// 联系人
+        /// </summary>
+        public string Contact { get; set; }
+        /// <summary>
+        /// 职务
+        /// </summary>
+        public string Job { get; set; }
+        /// <summary>
+        /// 联系电话
+        /// </summary>
+        public string Tel { get; set; }
+        /// <summary>
+        /// 电子邮箱
+        /// </summary>
+        public string Email { get; set; }
+        /// <summary>
+        /// 其他信息
+        /// </summary>
+        public string OtherInformation { get; set; }
+        /// <summary>
+        /// 传真号码
+        /// </summary>
+        public string Fax { get; set; }
+    }
+}

+ 42 - 0
OASystem/OASystem.Domain/Entities/Business/Bus_MsgPostInfo.cs

@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Business
+{
+    [SugarTable("Bus_MsgPost")]
+    public class Bus_MsgPostInfo : EntityBase
+    {
+        /// <summary>
+        /// 发送平台
+        /// </summary>
+        [SugarColumn(ColumnDescription = "发送平台", IsNullable = false, ColumnDataType = "varchar(30)")]
+        public string Source { get; set; }
+
+        /// <summary>
+        /// 团组名称
+        /// </summary>
+        [SugarColumn(ColumnDescription = "团组名称", IsNullable = false, ColumnDataType = "nvarchar(200)")]
+        public string TeamNames { get; set; }
+
+        /// <summary>
+        /// 短信类型,Dele1:团组结束日期提前2天通知,Dele2:团组开始日期提前7天通知
+        /// </summary>
+        [SugarColumn(ColumnDescription = "短信类型", IsNullable = false, ColumnDataType = "varchar(30)")]
+        public string PostType { get; set; }
+
+        /// <summary>
+        /// 目标手机号码
+        /// </summary>
+        [SugarColumn(ColumnDescription = "目标手机号码", IsNullable = false, ColumnDataType = "varchar(30)")]
+        public string PhoneNumber { get; set; }
+
+        /// <summary>
+        /// 发送结果
+        /// </summary>
+        [SugarColumn(ColumnDescription = "发送结果", IsNullable = false, ColumnDataType = "nvarchar(500)")]
+        public string PostResult { get; set; }
+    }
+}

+ 10 - 10
OASystem/OASystem.Domain/Entities/Groups/Grp_CreditCardPayment.cs

@@ -25,8 +25,8 @@ namespace OASystem.Domain.Entities.Groups
         /// <summary>
         /// 消费日期
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
-        public DateTime ConsumptionDate { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public String ConsumptionDate { get; set; }
         /// <summary>
         /// 卡类型
         /// </summary>
@@ -85,8 +85,8 @@ namespace OASystem.Domain.Entities.Groups
         /// <summary>
         /// 财务操作时间
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
-        public DateTime MFOperatorDate { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string MFOperatorDate { get; set; }
         /// <summary>
         /// 部门经理是否审核 0否1是
         /// </summary>
@@ -100,8 +100,8 @@ namespace OASystem.Domain.Entities.Groups
         /// <summary>
         /// 部门经理审核时间
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
-        public DateTime AuditDMDate { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string AuditDMDate { get; set; }
         /// <summary>
         /// 财务部是否审核  0否1是
         /// </summary>
@@ -132,8 +132,8 @@ namespace OASystem.Domain.Entities.Groups
         /// <summary>
         /// 总经理审核时间
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
-        public DateTime AuditGMDate { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string AuditGMDate { get; set; }
         /// <summary> 
         /// 是否付款  0 否 1 是
         /// </summary> 
@@ -177,8 +177,8 @@ namespace OASystem.Domain.Entities.Groups
         /// <summary>
         /// 上次付款时间
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
-        public DateTime UpdateDate { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string UpdateDate { get; set; }
         /// <summary>
         /// 收款方
         /// </summary>

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

@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Groups
+{
+    /// <summary>
+    /// 团组增减款项表
+    /// </summary>
+    [SugarTable("Grp_DecreasePayments")]
+    public class Grp_DecreasePayments: EntityBase
+    {
+        /// <summary>
+        /// 团组外键编号
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int DiId { get; set; }
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(225)")]
+        public string PriceName { get; set; }
+        /// <summary>
+        /// 费用金额
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 费用币种
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Currency { get; set; }
+        /// <summary>
+        /// 附件地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(MAX)")]
+        public string FilePath { get; set; }
+    }
+}

+ 69 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_InvitationOfficialActivities.cs

@@ -0,0 +1,69 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Groups
+{
+    /// <summary>
+    /// 商邀费用录入表
+    /// </summary>
+    [SugarTable("Grp_InvitationOfficialActivities")]
+    public class Grp_InvitationOfficialActivities:EntityBase
+    {
+        /// <summary>
+        /// 团组外键编号
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int DiId { get; set; }
+
+        /// <summary>
+        /// 邀请方地区
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(225)")]
+        public string InviterArea { get; set; }
+
+        /// <summary>
+        /// 邀请方
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(225)")]
+        public string Inviter { get; set; }
+
+        /// <summary>
+        /// 邀请时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime InviteTime { get; set; }
+
+        /// <summary>
+        /// 附件
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(225)")]
+        public string Attachment { get; set; }
+
+        /// <summary>
+        /// 邀请费用
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal InviteCosts { get; set; }
+
+        /// <summary>
+        /// 币种
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Currency { get; set; }
+
+        /// <summary>
+        /// 快递费用
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal SendCost { get; set; }
+
+        /// <summary>
+        /// 公务标识
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsGoOfficaiaBussiness { get; set; }
+    }
+}

+ 112 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_InvitationOfficialActivityData.cs

@@ -0,0 +1,112 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.Metrics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 商邀资料
+    /// </summary>
+    [SugarTable("Res_InvitationOfficialActivityData")]
+    public class Res_InvitationOfficialActivityData:EntityBase
+    {
+        /// <summary>
+        /// 邀请方国家
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="varchar(150)")]
+        public string Country { get; set; }
+        /// <summary>
+        /// 城市
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(150)")]
+        public string City { get; set; }
+        /// <summary>
+        /// 邀请方名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(MAX)")]
+        public string UnitName { get; set; }
+        /// <summary>
+        ///邀请方官网
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string UnitWeb { get; set; }
+        /// <summary>
+        /// 涉及领域
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(150)")]
+        public string Field { get; set; }
+        /// <summary>
+        /// 邀请方地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(225)")]
+        public string Address { get; set; }
+        /// <summary>
+        /// 邀请方信息
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(MAX)")]
+        public string UnitInfo { get; set; }
+        /// <summary>
+        /// 联系人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string Contact { get; set; }
+        /// <summary>
+        /// 职务
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string Job { get; set; }
+        /// <summary>
+        /// 联系电话
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string Tel { get; set; }
+        /// <summary>
+        /// 电子邮箱
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string Email { get; set; }
+        /// <summary>
+        /// 微信
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string WeChat { get; set; }
+        /// <summary>
+        /// fb
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string FaceBook { get; set; }
+        /// <summary>
+        /// ins
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string Ins { get; set; }
+        /// <summary>
+        /// 团名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string Delegation { get; set; }
+        /// <summary>
+        /// 文件地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string FilePath { get; set; }
+        /// <summary>
+        /// 修改版文件地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string SndFilePath { get; set; }
+        /// <summary>
+        /// 其他信息
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(MAX)")]
+        public string OtherInformation { get; set; }
+        /// <summary>
+        /// 传真号码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(120)")]
+        public string Fax { get; set; }
+    }
+}

+ 2 - 1
OASystem/OASystem.Domain/Enums/DBEnum.cs

@@ -2,6 +2,7 @@
 {
     public enum DBEnum : int
     {
-        OA2023DB = 1
+        OA2023DB = 1,
+        OA2014DB = 2
     }
 }

+ 2 - 2
OASystem/OASystem.Domain/Enums/TencentOCREnum.cs

@@ -4,7 +4,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace OASystem.TencentOCR
+namespace OASystem.Domain.Enums
 {
     /// <summary>
     /// ocr 枚举类型
@@ -29,7 +29,7 @@ namespace OASystem.TencentOCR
         /// <summary>
         /// 户口本识别
         /// </summary>
-        ResidenceBooklet=1,
+        ResidenceBooklet = 1,
         /// <summary>
         /// 营业执照识别
         /// </summary>

+ 1 - 0
OASystem/OASystem.Domain/OASystem.Domain.csproj

@@ -16,6 +16,7 @@
     <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
     <PackageReference Include="AutoMapper" Version="12.0.0" />
     <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.0" />
+    <PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="2.2.0" />
     <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
     <PackageReference Include="SqlSugarCore" Version="5.1.3.32" />
   </ItemGroup>

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

@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.Groups
+{
+    /// <summary>
+    /// 团组增减款项返回视图
+    /// </summary>
+    public class DecreasePaymentsView
+    {
+        public int Id { get; set; }
+        /// <summary>
+        /// 团组外键编号
+        /// </summary>
+        public int DiId { get; set; }
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        public string PriceName { get; set; }
+        /// <summary>
+        /// 费用金额
+        /// </summary>
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 费用币种
+        /// </summary>
+        public string Currency { get; set; }
+        /// <summary>
+        /// 附件地址
+        /// </summary>
+        public string FilePath { get; set; }
+        public string CreateUserName { get; set; }
+        public DateTime CreateTime { get; set; }
+        public int isAudit { get; set; }
+    }
+}

+ 52 - 0
OASystem/OASystem.Domain/ViewModels/Groups/InvitationOfficialActivitiesView.cs

@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.Groups
+{
+    public class InvitationOfficialActivitiesView
+    {
+        /// <summary>
+        /// 主键Id
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int DiId { get; set; }
+        /// <summary>
+        /// 邀请方地区
+        /// </summary>
+        public string InviterArea { get; set; }
+        /// <summary>
+        /// 邀请方
+        /// </summary>
+        public string Inviter { get; set; }
+        /// <summary>
+        /// 邀请时间
+        /// </summary>
+        public DateTime InviteTime { get; set; }
+        /// <summary>
+        /// 费用
+        /// </summary>
+        public decimal InviteCosts { get; set; }
+        /// <summary>
+        /// 币种
+        /// </summary>
+        public string Currency { get; set; }
+        /// <summary>
+        /// 是否到场
+        /// </summary>
+        public int IsGoOfficaiaBussiness { get; set; }
+        /// <summary>
+        /// 文件地址
+        /// </summary>
+        public string Attachment { get; set; }
+        /// <summary>
+        /// 是否审核
+        /// </summary>
+        public int isAudit { get; set; }
+    }
+}

+ 390 - 0
OASystem/OASystem.Domain/ViewModels/Groups/OA2021_DelegationInfo.cs

@@ -0,0 +1,390 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.Groups
+{
+    /// <summary>
+    /// 团组信息类
+    /// </summary>
+    public class OA2021_DelegationInfo
+    {
+        int id;
+
+        /// <summary>
+        /// 主键编号
+        /// </summary>
+        public int Id
+        {
+            get { return id; }
+            set { id = value; }
+        }
+
+        string salesQuoteNo;
+
+        /// <summary>
+        /// 销售报价号
+        /// </summary>
+        public string SalesQuoteNo
+        {
+            get { return salesQuoteNo; }
+            set { salesQuoteNo = value; }
+        }
+
+        string salesDate;
+
+        /// <summary>
+        /// 销售日期
+        /// </summary>
+        public string SalesDate
+        {
+            get { return salesDate; }
+            set { salesDate = value; }
+        }
+
+        string clientName;
+
+        /// <summary>
+        /// 客户名称
+        /// </summary>
+        public string ClientName
+        {
+            get { return clientName; }
+            set { clientName = value; }
+        }
+
+        string clientUnit;
+
+        /// <summary>
+        /// 客户单位
+        /// </summary>
+        public string ClientUnit
+        {
+            get { return clientUnit; }
+            set { clientUnit = value; }
+        }
+
+        string tourCode;
+
+        /// <summary>
+        /// 团组号
+        /// </summary>
+        public string TourCode
+        {
+            get { return tourCode; }
+            set { tourCode = value; }
+        }
+
+        string teamName;
+
+        /// <summary>
+        /// 团组名称
+        /// </summary>
+        public string TeamName
+        {
+            get { return teamName; }
+            set { teamName = value; }
+        }
+
+        int teamDid;
+
+        /// <summary>
+        /// 团组类型(设置数据外键编号)
+        /// </summary>
+        public int TeamDid
+        {
+            get { return teamDid; }
+            set { teamDid = value; }
+        }
+
+        string visitDate;
+
+        /// <summary>
+        /// 出访时间
+        /// </summary>
+        public string VisitDate
+        {
+            get { return visitDate; }
+            set { visitDate = value; }
+        }
+
+        string visitStartDate;
+
+        /// <summary>
+        /// 出团时间起
+        /// </summary>
+        public string VisitStartDate
+        {
+            get { return visitStartDate; }
+            set { visitStartDate = value; }
+        }
+
+        string visitEndDate;
+
+        /// <summary>
+        /// 出团时间止
+        /// </summary>
+        public string VisitEndDate
+        {
+            get { return visitEndDate; }
+            set { visitEndDate = value; }
+        }
+
+        string visitCountry;
+
+        /// <summary>
+        /// 出访国家
+        /// </summary>
+        public string VisitCountry
+        {
+            get { return visitCountry; }
+            set { visitCountry = value; }
+        }
+
+        string visitPurpose;
+
+        /// <summary>
+        /// 出访目的
+        /// </summary>
+        public string VisitPurpose
+        {
+            get { return visitPurpose; }
+            set { visitPurpose = value; }
+        }
+
+        int visitDays;
+
+        /// <summary>
+        /// 出访天数
+        /// </summary>
+        public int VisitDays
+        {
+            get { return visitDays; }
+            set { visitDays = value; }
+        }
+
+        int visitPNumber;
+
+        /// <summary>
+        /// 出访人数
+        /// </summary>
+        public int VisitPNumber
+        {
+            get { return visitPNumber; }
+            set { visitPNumber = value; }
+        }
+
+        string speciaNeeds;
+
+        /// <summary>
+        /// 特殊需求
+        /// </summary>
+        public string SpecialNeeds
+        {
+            get { return speciaNeeds; }
+            set { speciaNeeds = value; }
+        }
+
+        string otherNeeds;
+
+        /// <summary>
+        /// 其他需求
+        /// </summary>
+        public string OtherNeeds
+        {
+            get { return otherNeeds; }
+            set { otherNeeds = value; }
+        }
+
+        string clientNeeds;
+
+        /// <summary>
+        /// 客户需求
+        /// </summary>
+        public string ClientNeeds
+        {
+            get { return clientNeeds; }
+            set { clientNeeds = value; }
+        }
+
+        string remark;
+
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark
+        {
+            get { return remark; }
+            set { remark = value; }
+        }
+
+        int isState;
+
+        /// <summary>
+        /// 状态标识
+        /// </summary>
+        public int IsState
+        {
+            get { return isState; }
+            set { isState = value; }
+        }
+
+        int jietuanOperator;
+
+        /// <summary>
+        /// 接团操作人
+        /// </summary>
+        public int JietuanOperator
+        {
+            get { return jietuanOperator; }
+            set { jietuanOperator = value; }
+        }
+
+        string jietuanTime;
+
+        /// <summary>
+        /// 接团操作时间
+        /// </summary>
+        public string JietuanTime
+        {
+            get { return jietuanTime; }
+            set { jietuanTime = value; }
+        }
+
+        int groupsOperator;
+
+        /// <summary>
+        /// 团信息操作人
+        /// </summary>
+        public int GroupsOperator
+        {
+            get { return groupsOperator; }
+            set { groupsOperator = value; }
+        }
+
+        string groupsTime;
+
+        /// <summary>
+        /// 团信息操作时间
+        /// </summary>
+        public string GroupsTime
+        {
+            get { return groupsTime; }
+            set { groupsTime = value; }
+        }
+
+        int isDel;
+
+        /// <summary>
+        /// 删除标识
+        /// </summary>
+        public int IsDel
+        {
+            get { return isDel; }
+            set { isDel = value; }
+        }
+
+        string budgetCost;
+
+        /// <summary>
+        /// 预算成本
+        /// </summary>
+        public string BudgetCost
+        {
+            get { return budgetCost; }
+            set { budgetCost = value; }
+        }
+        int isSure;
+
+        /// <summary>
+        /// 是否操作完成
+        /// </summary>
+        public int IsSure
+        {
+            get { return isSure; }
+            set { isSure = value; }
+        }
+        DateTime sureTime;
+
+        /// <summary>
+        /// 预算成本
+        /// </summary>
+        public DateTime SureTime
+        {
+            get { return sureTime; }
+            set { sureTime = value; }
+        }
+
+        string tellPhone;
+
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        public string TellPhone
+        {
+            get { return tellPhone; }
+            set { tellPhone = value; }
+        }
+
+
+        string teamLev;
+        /// <summary>
+        /// 团组客户级别
+        /// </summary>
+        public string TeamLev
+        {
+            get { return teamLev; }
+            set { teamLev = value; }
+        }
+        /// <summary>
+        /// 酒店投诉标识:0-未投诉;1-已投诉
+        /// </summary>
+        public int HotelComplain { get; set; }
+        /// <summary>
+        /// OP投诉标识:0-未投诉;1-已投诉
+        /// </summary>
+        public int OPComplain { get; set; }
+        /// <summary>
+        /// 签证投诉标识:0-未投诉;1-已投诉
+        /// </summary>
+        public int VisaComplain { get; set; }
+        /// <summary>
+        /// 商邀投诉标识:0-未投诉;1-已投诉
+        /// </summary>
+        public int OAComplain { get; set; }
+        /// <summary>
+        /// 机票投诉标识:0-未投诉;1-已投诉
+        /// </summary>
+        public int AirComplain { get; set; }
+        /// <summary>
+        /// 团组负责人标识(会展会务、策划、销售算提成需要查看团组负责人)
+        /// </summary>
+        public int Director { get; set; }
+
+        /// <summary>
+        /// 合同时间
+        /// </summary>
+        public string TontractTime { get; set; }
+
+        /// <summary>
+        /// 支付款项(预付)
+        /// </summary>
+        public string PaymentMoney { get; set; }
+
+        /// <summary>
+        /// 预付期限
+        /// </summary>
+        public string PayDay { get; set; }
+
+        #region 新增字段  出国任务审批部门名称、批件文号等 
+        public string CGRWSPBMMC { get; set; }
+        public string CGRWSPWH { get; set; }
+        public string ZZSCBMMC { get; set; }
+        public string ZZSCSPWH { get; set; }
+
+        #endregion
+
+    }
+}

+ 72 - 68
OASystem/OASystem.Infrastructure/Repositories/Resource/AirTicketResRepository.cs

@@ -29,7 +29,7 @@ using Aspose.Words.Tables;
 using Aspose.Words;
 using System.Reflection;
 
-namespace OASystem.Infrastructure.Repositories.Resource
+namespace OASystem.Infrastructure.Repositories.Groups
 {
     public class AirTicketResRepository : BaseRepository<Grp_AirTicketReservations, Grp_AirTicketReservations>
     {
@@ -44,7 +44,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
             Result result = new Result() { Code = -2, Msg = "未知错误" };
             try
             {
-                Grp_AirTicketReservations grp_AirTicket = _sqlSugar.Queryable<Grp_AirTicketReservations>().First(a=>a.Id==dto.Id && a.IsDel==0);
+                Grp_AirTicketReservations grp_AirTicket = _sqlSugar.Queryable<Grp_AirTicketReservations>().First(a => a.Id == dto.Id && a.IsDel == 0);
                 if (grp_AirTicket == null)
                 {
                     return result = new Result() { Code = -1, Msg = "暂无数据" };
@@ -53,11 +53,15 @@ namespace OASystem.Infrastructure.Repositories.Resource
                 {
                     Grp_CreditCardPayment grp_CreditCard = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == grp_AirTicket.Id && a.IsDel == 0);
                     if (grp_CreditCard == null) { return result = new Result() { Code = -1, Msg = "暂无数据" }; }
-                    return result = new Result() { Code = 0, Msg = "查询成功!",Data=new
+                    return result = new Result()
                     {
-                        AirTicket= grp_AirTicket,
-                        CreditCard= grp_CreditCard,
-                    }
+                        Code = 0,
+                        Msg = "查询成功!",
+                        Data = new
+                        {
+                            AirTicket = grp_AirTicket,
+                            CreditCard = grp_CreditCard,
+                        }
                     };
                 }
             }
@@ -235,7 +239,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
             {
                 #region 团组下拉框
 
-                
+
                 List<Grp_GroupsTaskAssignment> grp_GroupsTaskAssignment = Query<Grp_GroupsTaskAssignment>(a => a.IsDel == 0 && a.UId == dto.UserId && a.CTId == 85).ToList();
 
                 string DiId = "";
@@ -262,7 +266,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
 
                 #region 其他下拉框查询
                 //舱位类型
-                List<Sys_SetData> TicketClass = _sqlSugar.Queryable<Sys_SetData>().Where(a=>a.STid==44 && a.IsDel==0).ToList();
+                List<Sys_SetData> TicketClass = _sqlSugar.Queryable<Sys_SetData>().Where(a => a.STid == 44 && a.IsDel == 0).ToList();
                 List<SetDataInfoView> _TicketClassa = _mapper.Map<List<SetDataInfoView>>(TicketClass);
                 //支付方式
                 List<Sys_SetData> Payment = _sqlSugar.Queryable<Sys_SetData>().Where(a => a.STid == 14 && a.IsDel == 0).ToList();
@@ -271,7 +275,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                 List<Sys_SetData> CardType = _sqlSugar.Queryable<Sys_SetData>().Where(a => a.STid == 15 && a.IsDel == 0).ToList();
                 List<SetDataInfoView> _CardType = _mapper.Map<List<SetDataInfoView>>(CardType);
                 //合作方资料
-                List<Res_AirTicketAgent> _AirTicketAgents = _sqlSugar.Queryable<Res_AirTicketAgent>().Where(a=>a.IsDel == 0).ToList();
+                List<Res_AirTicketAgent> _AirTicketAgents = _sqlSugar.Queryable<Res_AirTicketAgent>().Where(a => a.IsDel == 0).ToList();
 
                 #endregion
                 var data = new
@@ -280,9 +284,9 @@ namespace OASystem.Infrastructure.Repositories.Resource
                     Payment = _Payment,
                     CardType = _CardType,
                     GroupName = grp_NameView,
-                    AirTicketAgents= _AirTicketAgents
+                    AirTicketAgents = _AirTicketAgents
                 };
-                return result = new Result() { Code = 0, Msg = "查询成功!", Data=data };
+                return result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
             }
             catch (Exception ex)
             {
@@ -299,7 +303,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                 BeginTran();
                 int id = 0;
                 Grp_AirTicketReservations grp_AirTicket = _mapper.Map<Grp_AirTicketReservations>(dto.AirTicketResOpData);
-                if (dto.Status==1)
+                if (dto.Status == 1)
                 {
                     string selectSql = string.Format(@"select * from Grp_AirTicketReservations where ClientName='{0}' and IsDel={1}"
                                                      , dto.AirTicketResOpData.ClientName, 0);
@@ -310,7 +314,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                     }
                     else//不存在,可添加
                     {
-                       
+
                         id = await AddAsyncReturnId(grp_AirTicket);
                         if (id == 0)
                         {
@@ -321,14 +325,14 @@ namespace OASystem.Infrastructure.Repositories.Resource
                         {
                             result = new Result() { Code = 0, Msg = "添加成功!" };
                         }
-                        
+
                     }
-                    if (result.Code==0)
+                    if (result.Code == 0)
                     {
                         Grp_CreditCardPayment grp_CreditCard = _mapper.Map<Grp_CreditCardPayment>(dto.CardPaymentOpData);
                         //换算
-                        Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0 && a.CTable==85);
-                        if (_TeamRate!=null)
+                        Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0 && a.CTable == 85);
+                        if (_TeamRate != null)
                         {
                             if (grp_CreditCard.PaymentCurrency == 49)
                             {
@@ -353,18 +357,18 @@ namespace OASystem.Infrastructure.Repositories.Resource
                             grp_CreditCard.DayRate = "1";
                             grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney;
                         }
-                        
+
                         //判断是否超出成本
-                        Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel==0);
-                        if (grp_AirTicket.CType==460)//经济舱
+                        Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0);
+                        if (grp_AirTicket.CType == 460)//经济舱
                         {
-                            if((Convert.ToDecimal(_GroupCostParameter.JJCCB)* Convert.ToDecimal(grp_AirTicket.ClientNum))> grp_CreditCard.RMBPrice)
+                            if (Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum) > grp_CreditCard.RMBPrice)
                             {
                                 grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
                                 grp_CreditCard.IsAuditGM = 3;//3 为自动审核
                                 grp_CreditCard.AuditGMOperate = 0;
-                                grp_CreditCard.AuditGMDate = DateTime.Now;
-                                grp_CreditCard.IsPay = 1;
+                                grp_CreditCard.AuditGMDate = "";
+                                grp_CreditCard.IsPay = 0;
                             }
                             else
                             {
@@ -373,20 +377,20 @@ namespace OASystem.Infrastructure.Repositories.Resource
                                 grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
                                 grp_CreditCard.IsAuditGM = 0;//3 为自动审核
                                 grp_CreditCard.AuditGMOperate = 21;
-                                grp_CreditCard.AuditGMDate =new DateTime();
-                                grp_CreditCard.IsPay = 1;
+                                grp_CreditCard.AuditGMDate = "";
+                                grp_CreditCard.IsPay = 0;
                             }
-                            
+
                         }
-                        else if(grp_AirTicket.CType==458)
+                        else if (grp_AirTicket.CType == 458)
                         {
-                            if ((Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum)) > grp_CreditCard.RMBPrice)
+                            if (Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum) > grp_CreditCard.RMBPrice)
                             {
                                 grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
                                 grp_CreditCard.IsAuditGM = 3;//3 为自动审核
                                 grp_CreditCard.AuditGMOperate = 21;
-                                grp_CreditCard.AuditGMDate = DateTime.Now;
-                                grp_CreditCard.IsPay = 1;
+                                grp_CreditCard.AuditGMDate = "";
+                                grp_CreditCard.IsPay = 0;
                             }
                             else
                             {
@@ -395,17 +399,17 @@ namespace OASystem.Infrastructure.Repositories.Resource
                                 grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
                                 grp_CreditCard.IsAuditGM = 0;//3 为自动审核
                                 grp_CreditCard.AuditGMOperate = 21;
-                                grp_CreditCard.AuditGMDate = new DateTime();
-                                grp_CreditCard.IsPay = 1;
+                                grp_CreditCard.AuditGMDate = "";
+                                grp_CreditCard.IsPay = 0;
                             }
                         }
-                       
+
 
                         grp_CreditCard.CId = id;
                         grp_CreditCard.CTable = 85;
                         grp_CreditCard.PayPercentage = 100;
                         //查询上一次付款信息
-                        Grp_CreditCardPayment _CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().OrderByDescending(x=>x.CreateUserId).First(a => a.DIId == grp_AirTicket.DIId && a.IsDel == 0 && a.IsPay==1);
+                        Grp_CreditCardPayment _CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().OrderByDescending(x => x.CreateUserId).First(a => a.DIId == grp_AirTicket.DIId && a.IsDel == 0 && a.IsPay == 1);
                         if (_CreditCardPayment != null)
                         {
                             grp_CreditCard.PayPercentageOld = _CreditCardPayment.PayPercentageOld;// 上次付款百分比 查询并计算最近一次
@@ -414,17 +418,17 @@ namespace OASystem.Infrastructure.Repositories.Resource
                         }
                         else
                         {
-                            grp_CreditCard.PayPercentageOld =0;// 上次付款百分比 查询并计算最近一次
-                            grp_CreditCard.PayThenMoneyOld =0;// 上次付款金额 查询上一次
-                            grp_CreditCard.UpdateDate =new DateTime();// 上次付款时间 查询上一次
+                            grp_CreditCard.PayPercentageOld = 0;// 上次付款百分比 查询并计算最近一次
+                            grp_CreditCard.PayThenMoneyOld = 0;// 上次付款金额 查询上一次
+                            grp_CreditCard.UpdateDate = "";// 上次付款时间 查询上一次
                         }
-                        
+
                         id = await _sqlSugar.Insertable(grp_CreditCard).ExecuteReturnIdentityAsync();
                         if (id == 0)
                         {
                             RollbackTran();
                             return result = new Result() { Code = -1, Msg = "添加失败!" };
-                            
+
                         }
                         CommitTran();
                         return result = new Result() { Code = 0, Msg = "添加成功!" };
@@ -434,10 +438,10 @@ namespace OASystem.Infrastructure.Repositories.Resource
                     {
                         RollbackTran();
                         return result = new Result() { Code = -1, Msg = "添加失败!" };
-                        
+
                     }
                 }
-                else if (dto.Status==2) 
+                else if (dto.Status == 2)
                 {
                     id = dto.AirTicketResOpData.Id;
 
@@ -461,13 +465,10 @@ namespace OASystem.Infrastructure.Repositories.Resource
                         PriceDescription = dto.AirTicketResOpData.PriceDescription,
                         Remark = dto.AirTicketResOpData.Remark,
                     });
-                    if (!res)
-                    {
-                        result = new Result() { Code = -1, Msg = "修改失败!" };
-                    }
+                    if (!res){result = new Result() { Code = -1, Msg = "修改失败!" }; }
                     else { result = new Result() { Code = 0, Msg = "修改成功!" }; }
-                    
-                    if (result.Code==0)
+
+                    if (result.Code == 0)
                     {
                         //C表操作
                         Grp_CreditCardPayment grp_CreditCard = _mapper.Map<Grp_CreditCardPayment>(dto.CardPaymentOpData);
@@ -504,12 +505,12 @@ namespace OASystem.Infrastructure.Repositories.Resource
                         Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0);
                         if (grp_AirTicket.CType == 460)//经济舱
                         {
-                            if ((Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum)) > grp_CreditCard.RMBPrice)
+                            if (Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum) > grp_CreditCard.RMBPrice)
                             {
                                 grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
                                 grp_CreditCard.IsAuditGM = 3;//3 为自动审核
                                 grp_CreditCard.AuditGMOperate = 0;
-                                grp_CreditCard.AuditGMDate = DateTime.Now;
+                                grp_CreditCard.AuditGMDate = "";
                                 grp_CreditCard.IsPay = 1;
                             }
                             else
@@ -519,19 +520,19 @@ namespace OASystem.Infrastructure.Repositories.Resource
                                 grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
                                 grp_CreditCard.IsAuditGM = 0;//3 为自动审核
                                 grp_CreditCard.AuditGMOperate = 21;
-                                grp_CreditCard.AuditGMDate = new DateTime();
+                                grp_CreditCard.AuditGMDate = "";
                                 grp_CreditCard.IsPay = 1;
                             }
 
                         }
                         else if (grp_AirTicket.CType == 458)
                         {
-                            if ((Convert.ToDecimal(_GroupCostParameter.GWCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum)) > grp_CreditCard.RMBPrice)
+                            if (Convert.ToDecimal(_GroupCostParameter.GWCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum) > grp_CreditCard.RMBPrice)
                             {
                                 grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
                                 grp_CreditCard.IsAuditGM = 3;//3 为自动审核
                                 grp_CreditCard.AuditGMOperate = 21;
-                                grp_CreditCard.AuditGMDate = DateTime.Now;
+                                grp_CreditCard.AuditGMDate = "";
                                 grp_CreditCard.IsPay = 1;
                             }
                             else
@@ -541,7 +542,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                                 grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
                                 grp_CreditCard.IsAuditGM = 0;//3 为自动审核
                                 grp_CreditCard.AuditGMOperate = 21;
-                                grp_CreditCard.AuditGMDate = new DateTime();
+                                grp_CreditCard.AuditGMDate = "";
                                 grp_CreditCard.IsPay = 1;
                             }
                         }
@@ -562,9 +563,9 @@ namespace OASystem.Infrastructure.Repositories.Resource
                         {
                             grp_CreditCard.PayPercentageOld = 0;// 上次付款百分比 查询并计算最近一次
                             grp_CreditCard.PayThenMoneyOld = 0;// 上次付款金额 查询上一次
-                            grp_CreditCard.UpdateDate = new DateTime();// 上次付款时间 查询上一次
+                            grp_CreditCard.UpdateDate = "";// 上次付款时间 查询上一次
                         }
-                        int CTable=await _sqlSugar.Updateable<Grp_CreditCardPayment>().Where(a => a.Id == dto.CardPaymentOpData.Id).SetColumns(a => new Grp_CreditCardPayment
+                        int CTable = await _sqlSugar.Updateable<Grp_CreditCardPayment>().Where(a => a.Id == dto.CardPaymentOpData.Id).SetColumns(a => new Grp_CreditCardPayment
                         {
                             PayDId = grp_CreditCard.PayDId,
                             ConsumptionPatterns = grp_CreditCard.ConsumptionPatterns,
@@ -638,12 +639,12 @@ namespace OASystem.Infrastructure.Repositories.Resource
                                 c.Payee,a.PriceDescription,(select Name from Sys_SetData where Id=a.Currency) as 'CurrencyStr',(select Name from Sys_SetData where Id=c.CTDId) as BankType
                                 from Grp_AirTicketReservations a,Grp_CreditCardPayment c ,Grp_DelegationInfo d where  a.id=c.CId and d.Id=a.DIId  and a.isdel=0
                                 and a.DIId={0} Order By a.CreateTime desc", dto.DiId, 0);
-                List<AirTicketReservationsPayView>  _AirTicketReservations = _sqlSugar.SqlQueryable<AirTicketReservationsPayView>(sql).ToList();
+                List<AirTicketReservationsPayView> _AirTicketReservations = _sqlSugar.SqlQueryable<AirTicketReservationsPayView>(sql).ToList();
                 if (_AirTicketReservations.Count != 0)
                 {
-                    Grp_DelegationInfo grp_Delegation =_sqlSugar.Queryable<Grp_DelegationInfo>().First(a => a.Id ==dto.DiId && a.IsDel==0);
-                    Sys_Users _Users= _sqlSugar.Queryable<Sys_Users>().First(a => a.Id ==dto.UserId && a.IsDel == 0);
-                    return result = new Result() { Code = 0, Msg = "成功", Data = new { Delegation = grp_Delegation, AirTicketRes = _AirTicketReservations, Users=_Users } };
+                    Grp_DelegationInfo grp_Delegation = _sqlSugar.Queryable<Grp_DelegationInfo>().First(a => a.Id == dto.DiId && a.IsDel == 0);
+                    Sys_Users _Users = _sqlSugar.Queryable<Sys_Users>().First(a => a.Id == dto.UserId && a.IsDel == 0);
+                    return result = new Result() { Code = 0, Msg = "成功", Data = new { Delegation = grp_Delegation, AirTicketRes = _AirTicketReservations, Users = _Users } };
                 }
                 else
                 {
@@ -666,7 +667,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                                                 as 'CurrencyStr' from Grp_AirTicketReservations a,Grp_CreditCardPayment c where  a.id=c.CId  and a.isdel={1}
                                                 and a.DIId={0} Order By a.CreateTime desc", dto.DiId, 0);
                 List<AirTicketReservationsView> _AirTicketReservations = _sqlSugar.SqlQueryable<AirTicketReservationsView>(sql).ToList();
-                if (_AirTicketReservations.Count==0)
+                if (_AirTicketReservations.Count == 0)
                 {
                     return result = new Result() { Code = -1, Msg = "暂无数据", Data = null };
                 }
@@ -705,7 +706,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                 Qtext = Qtext.Substring(0, Qtext.Length - 1);
             }
 
-            Dictionary<String, String> dic = new Dictionary<String, String>();
+            Dictionary<string, string> dic = new Dictionary<string, string>();
 
             string url = "https://openapi.youdao.com/v2/api";
 
@@ -776,7 +777,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
             }
             return result;
         }
-        protected string TransSync(string url, Dictionary<String, String> dic)
+        protected string TransSync(string url, Dictionary<string, string> dic)
         {
             string result = "";
             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
@@ -833,7 +834,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
             {
                 if (File.Exists(FilePath))
                     File.Delete(FilePath);
-                Stream outStream =File.Create(FilePath);
+                Stream outStream = File.Create(FilePath);
                 Stream inStream = response.GetResponseStream();
 
                 int l;
@@ -856,8 +857,8 @@ namespace OASystem.Infrastructure.Repositories.Resource
         }
         protected static string ComputeHash(string input, HashAlgorithm algorithm)
         {
-            Byte[] inputBytes = Encoding.UTF8.GetBytes(input);
-            Byte[] hashedBytes = algorithm.ComputeHash(inputBytes);
+            byte[] inputBytes = Encoding.UTF8.GetBytes(input);
+            byte[] hashedBytes = algorithm.ComputeHash(inputBytes);
             return BitConverter.ToString(hashedBytes).Replace("-", "");
         }
         protected static string Truncate(string q)
@@ -867,7 +868,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                 return null;
             }
             int len = q.Length;
-            return len <= 20 ? q : (q.Substring(0, 10) + len + q.Substring(len - 10, 10));
+            return len <= 20 ? q : q.Substring(0, 10) + len + q.Substring(len - 10, 10);
         }
         public static DateTime GetBeijingTime()
         {
@@ -912,6 +913,9 @@ namespace OASystem.Infrastructure.Repositories.Resource
             }
 
         }
+
+
+
         public class TranslateResult
         {
             public string Query { get; set; }
@@ -921,7 +925,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
             public string Type { get; set; }
 
             public string VerifyResult { get; set; }
-        
+
+        }
     }
 }
-}

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

@@ -0,0 +1,333 @@
+using AutoMapper;
+using OASystem.Domain;
+using OASystem.Domain.Dtos.Groups;
+using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.Entities.Resource;
+using OASystem.Domain.ViewModels.Groups;
+using OASystem.Infrastructure.Repositories.System;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Intrinsics.Arm;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.Groups
+{
+    public class DecreasePaymentsRepository : BaseRepository<Grp_DecreasePayments, Grp_DecreasePayments>
+    {
+        private readonly IMapper _mapper;
+        public DecreasePaymentsRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar)
+        {
+            this._mapper = mapper;
+        }
+        /// <summary>
+        /// 根据团组Id查询数据
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> DecreasePaymentsList(DecreasePaymentsListDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            try
+            {
+                string sql = string.Format(@"select Id,DiId,PriceName,Price,(select name from Sys_SetData where id=s.Currency) as Currency,FilePath,
+                                            (select CnName from Sys_Users where Id=s.CreateUserId) as 'CreateUserName',CreateTime,(select IsAuditGM from 
+                                            Grp_CreditCardPayment where CTable=98 and CId=s.Id and IsDel=0) as 'isAudit' from Grp_DecreasePayments s where DIID={0} and IsDel=0 ", dto.DiId);
+                List<DecreasePaymentsView> _DecreasePayments = await _sqlSugar.SqlQueryable<DecreasePaymentsView>(sql).ToListAsync();
+                if (_DecreasePayments.Count != 0)
+                {
+                    result = new Result() { Code = 0, Msg = "查询成功!", Data = _DecreasePayments };
+                }
+                else
+                {
+                    result = new Result() { Code = 0, Msg = "暂无数据!", Data = _DecreasePayments };
+                }
+            }
+            catch (Exception ex)
+            {
+                result = new Result() { Code = -2, Msg = "未知错误" };
+            }
+            return result;
+        }
+
+        public async Task<Result> DecreasePaymentsSelect(DecreasePaymentsDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            try
+            {
+                #region 团组下拉框
+
+
+                List<Grp_GroupsTaskAssignment> grp_GroupsTaskAssignment = Query<Grp_GroupsTaskAssignment>(a => a.IsDel == 0 && a.UId == dto.UserId && a.CTId == dto.CTId).ToList();
+
+                string DiId = "";
+                foreach (var item in grp_GroupsTaskAssignment)
+                {
+                    DiId += item.DIId + ",";
+                }
+                DiId = DiId.Substring(0, DiId.Length - 1);
+                string sql = string.Format(@"select * from Grp_DelegationInfo where Id in({0}) and IsDel={1}", DiId, 0);
+                List<Grp_DelegationInfo> grp_Delegations = _sqlSugar.SqlQueryable<Grp_DelegationInfo>(sql).ToList();
+                if (grp_Delegations.Count == 0)
+                {
+                    return result = new Result() { Code = -1, Msg = "查询失败!" };
+                }
+                #endregion
+
+                #region 其他下拉框查询
+
+                //支付方式
+                List<Sys_SetData> Payment = _sqlSugar.Queryable<Sys_SetData>().Where(a => a.STid == 14 && a.IsDel == 0).ToList();
+                List<SetDataInfoView> _Payment = _mapper.Map<List<SetDataInfoView>>(Payment);
+                #endregion
+                var data = new
+                {
+                    Payment = _Payment,
+                    GroupName = grp_Delegations,
+                };
+                return result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
+            }
+            catch (Exception ex)
+            {
+                return result = new Result() { Code = -2, Msg = "程序错误" };
+                throw;
+            }
+        }
+
+        public async Task<Result> OpDecreasePayments(DecreasePaymentsOpDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            BeginTran();
+            try
+            {
+                int id = 0;
+                Grp_DecreasePayments grp_Decrease = _mapper.Map<Grp_DecreasePayments>(dto);
+                if (dto.Status == 1)//添加
+                {
+                    string selectSql = string.Format(@"select * from Grp_DecreasePayments where PriceName='{0}' and IsDel={1} and DiId={2}"
+                                                    , dto.PriceName, 0, dto.DiId);
+                    var DecreasePayments = await _sqlSugar.SqlQueryable<Grp_DecreasePayments>(selectSql).FirstAsync();//查询是否存在
+                    if (DecreasePayments != null)
+                    {
+                        return result = new Result() { Code = -1, Msg = "该客户已存在,请勿重复添加!" };
+                    }
+                    else//不存在,可添加
+                    {
+
+                        id = await AddAsyncReturnId(grp_Decrease);
+                        if (id != 0)
+                        {
+                            result = new Result() { Code = 0, Msg = "添加成功!" };
+                        }
+                        else
+                        {
+                            result = new Result() { Code = 0, Msg = "添加失败!" };
+                        }
+                        if (result.Code == 0)
+                        {
+                            //进行C表添加
+                            Grp_CreditCardPayment C = new Grp_CreditCardPayment();
+                            C.PayDId = dto.PayDId;
+                            C.ConsumptionPatterns = "";
+                            C.ConsumptionDate = "";
+                            C.CTDId = 0;
+                            C.BankNo = "";
+                            C.CardholderName = "";
+                            C.PayMoney = grp_Decrease.Price;
+                            C.PaymentCurrency = grp_Decrease.Currency;
+                            //当天汇率
+                            //if (!string.IsNullOrEmpty(hfRate.Value))
+                            //    C.DayRate = hfRate.Value;
+                            //else
+                            //C.DayRate = "";
+                            C.CompanyBankNo = "";
+                            C.OtherBankName = "";
+                            C.OtherSideNo = "";
+                            C.OtherSideName = "";
+                            C.Remark = "";
+                            C.CreateUserId = grp_Decrease.CreateUserId;
+                            C.MFOperator = "";
+                            C.MFOperatorDate = "";
+                            C.IsAuditDM = 0;
+                            C.AuditDMOperate = 0;
+                            C.AuditDMDate = "";
+                            C.IsAuditMF = 0;
+                            C.AuditMFOperate = 0;
+                            C.AuditMFDate = "";
+                            C.IsAuditGM = 0;
+                            C.AuditGMOperate = 21;
+                            C.AuditGMDate = "";
+                            C.IsPay = 0;
+                            C.DIId = grp_Decrease.DiId;
+                            C.CId = id;
+                            C.CTable = 98;
+                            C.PayPercentage = 0;
+                            C.PayThenMoney = 0;
+                            C.PayPercentageOld = 0;
+                            C.PayThenMoneyOld = 0;
+                            C.UpdateDate = "";
+                            C.Payee = dto.Payee;
+                            C.OrbitalPrivateTransfer = dto.OrbitalPrivateTransfer;
+                            C.ExceedBudget = 0;
+                            //C.RMBPrice = 0.00f;
+
+                            //设置该团组的汇率
+                            Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_Decrease.DiId && a.IsDel == 0 && a.CTable == 98);
+                            if (_TeamRate != null)
+                            {
+                                if (grp_Decrease.Currency == 49)
+                                {
+                                    C.DayRate = _TeamRate.RateU;
+                                    C.RMBPrice = C.PayMoney * Convert.ToDecimal(_TeamRate.RateU);
+                                    //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateU); 
+                                }
+                                else if (grp_Decrease.Currency == 51)
+                                {
+                                    C.DayRate = _TeamRate.RateE;
+                                    C.RMBPrice = C.PayMoney * Convert.ToDecimal(_TeamRate.RateE);
+                                    //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateE); 
+                                }
+                                else
+                                {
+                                    C.DayRate = "1";
+                                    C.RMBPrice = C.PayMoney;
+                                }
+                            }
+                            else
+                            {
+                                C.DayRate = "1";
+                                C.RMBPrice = C.PayMoney;
+                            }
+                            int cId = await _sqlSugar.Insertable(C).ExecuteReturnIdentityAsync();
+                            if (cId != 0)
+                            {
+                                result = new Result() { Code = 0, Msg = "添加成功!" };
+                            }
+                            else
+                            {
+                                RollbackTran();
+                                result = new Result() { Code = -1, Msg = "添加失败!" };
+                            }
+                        }
+                        else
+                        {
+                            result = new Result() { Code = -1, Msg = "添加失败!" };
+                        }
+                    }
+
+                }
+                else if (dto.Status == 2)
+                {
+                    bool res = await UpdateAsync(a => a.Id == grp_Decrease.Id, a => new Grp_DecreasePayments
+                    {
+                        DiId = grp_Decrease.DiId,
+                        PriceName = grp_Decrease.PriceName,
+                        Price = grp_Decrease.Price,
+                        Currency = grp_Decrease.Currency,
+                        FilePath = grp_Decrease.FilePath,
+                        Remark = grp_Decrease.Remark,
+                    });
+                    if (res)
+                    {
+                        Grp_CreditCardPayment grp_CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == grp_Decrease.Id && a.IsDel == 0);
+                        if (grp_CreditCardPayment != null)
+                        {
+                            Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_Decrease.DiId && a.IsDel == 0 && a.CTable == 85);
+                            if (_TeamRate != null)
+                            {
+
+                                if (grp_Decrease.Currency == 49)
+                                {
+                                    grp_CreditCardPayment.DayRate = _TeamRate.RateU;
+                                    grp_CreditCardPayment.RMBPrice = grp_Decrease.Price * Convert.ToDecimal(_TeamRate.RateU);
+                                    //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateU); 
+                                }
+                                else if (grp_Decrease.Currency == 51)
+                                {
+                                    grp_CreditCardPayment.DayRate = _TeamRate.RateE;
+                                    grp_CreditCardPayment.RMBPrice = grp_Decrease.Price * Convert.ToDecimal(_TeamRate.RateE);
+                                    //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateE); 
+                                }
+                                else
+                                {
+                                    grp_CreditCardPayment.DayRate = "1";
+                                    grp_CreditCardPayment.RMBPrice = grp_Decrease.Price;
+                                }
+                            }
+                            else
+                            {
+                                grp_CreditCardPayment.DayRate = "1";
+                                grp_CreditCardPayment.RMBPrice = grp_Decrease.Price;
+                            }
+                            int CTable = await _sqlSugar.Updateable<Grp_CreditCardPayment>().Where(a => a.Id == grp_CreditCardPayment.Id).SetColumns(a => new Grp_CreditCardPayment
+                            {
+                                PayDId = dto.PayDId,
+                                PayMoney = grp_Decrease.Price,
+                                PaymentCurrency = grp_Decrease.Currency,
+                                Payee = dto.Payee,
+                                OrbitalPrivateTransfer = dto.OrbitalPrivateTransfer,
+                                DayRate = grp_CreditCardPayment.DayRate,
+                                RMBPrice = grp_CreditCardPayment.RMBPrice,
+
+                            }).ExecuteCommandAsync();
+                            if (CTable != 0)
+                            {
+                                result = new Result() { Code = 0, Msg = "修改成功!" };
+                            }
+                            else
+                            {
+                                result = new Result() { Code = -1, Msg = "修改失败!" };
+                                RollbackTran();
+                            }
+                        }
+                        else
+                        {
+                            RollbackTran();
+                            result = new Result() { Code = -1, Msg = "修改失败!" };
+                        }
+                    }
+                    else
+                    {
+                        result = new Result() { Code = -1, Msg = "修改失败!" };
+                    }
+                }
+                CommitTran();
+            }
+            catch (Exception ex)
+            {
+                RollbackTran();
+                result = new Result() { Code = -2, Msg = "未知错误" };
+            }
+            return result;
+        }
+
+        /// <summary>
+        /// 根据团组增减款项表Id查询数据
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public async Task<Result> QueryDecreasePaymentsById(DecreasePaymentsByIdDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "程序错误" };
+            try
+            {
+                Grp_DecreasePayments grp_Decrease = _sqlSugar.Queryable<Grp_DecreasePayments>().First(a=>a.Id==dto.Id && a.IsDel==0);
+                Grp_CreditCardPayment grp_CreditCard= _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == dto.Id && a.IsDel == 0);
+                var data = new
+                {
+                    _Decrease = grp_Decrease,
+                    _CreditCard = grp_CreditCard,
+                };
+                result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
+            }
+            catch (Exception ex)
+            {
+                result = new Result() { Code = -2, Msg = "程序错误" };
+                throw;
+            }
+            return result;
+        }
+    }
+}

+ 380 - 0
OASystem/OASystem.Infrastructure/Repositories/Groups/InvitationOfficialActivitiesRepository.cs

@@ -0,0 +1,380 @@
+using AutoMapper;
+using MathNet.Numerics.Statistics.Mcmc;
+using NPOI.SS.Formula.Functions;
+using OASystem.Domain;
+using OASystem.Domain.Dtos.Groups;
+using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.Entities.Resource;
+using OASystem.Domain.ViewModels.Groups;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.Groups
+{
+    public class InvitationOfficialActivitiesRepository : BaseRepository<Grp_InvitationOfficialActivities, InvitationOfficialActivitiesListDto>
+    {
+        private readonly IMapper _mapper;
+        public InvitationOfficialActivitiesRepository(SqlSugarClient sqlSugar, IMapper mapper) :
+            base(sqlSugar)
+        {
+            this._mapper = mapper;
+        }
+        /// <summary>
+        /// 根据商邀费用Id查询C表和商邀资料及费用表
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> InvitationOfficialActivitiesById(InvitationOfficialActivitiesByIdDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "程序错误" };
+            try
+            {
+                Grp_InvitationOfficialActivities grp_Invitation = _sqlSugar.Queryable<Grp_InvitationOfficialActivities>().First(a => a.Id == dto.Id && a.IsDel == 0);
+                Grp_CreditCardPayment grp_CreditCard = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == dto.Id && a.IsDel == 0);
+                Res_InvitationOfficialActivityData res_InvitationOfficialActivityData = new Res_InvitationOfficialActivityData();
+                if (grp_Invitation!=null)
+                {
+                    res_InvitationOfficialActivityData = _sqlSugar.Queryable<Res_InvitationOfficialActivityData>().First(a =>a.Country==grp_Invitation.InviterArea && a.UnitName==grp_Invitation.Inviter && a.IsDel == 0);
+                }
+                var data = new
+                {
+                    _Invitation = grp_Invitation,
+                    _InvitationData = res_InvitationOfficialActivityData,
+                    _CreditCard = grp_CreditCard,
+                };
+                result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
+            }
+            catch (Exception)
+            {
+                result = new Result() { Code = -2, Msg = "程序错误" };
+                throw;
+            }
+            return result;
+        }
+        /// <summary>
+        /// 根据团组id查询商邀费用数据
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> InvitationOfficialActivitiesList(InvitationOfficialActivitiesListDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            try
+            {
+                string sqlWhere = string.Empty;
+                if (!string.IsNullOrWhiteSpace(dto.Inviter))
+                {
+                    sqlWhere += string.Format(@" And Inviter={0}", dto.Inviter);
+                }
+                if (!string.IsNullOrWhiteSpace(dto.StartInviteTime) && !string.IsNullOrWhiteSpace(dto.EndInviteTime))
+                {
+                    sqlWhere += string.Format(@" And i.InviteTime between '{0}' and '{1}'", dto.StartInviteTime, dto.EndInviteTime);
+                }
+                sqlWhere += string.Format(@" And i.DiId={0} And i.IsDel={1}", dto.DiId, 0);
+
+                if (!string.IsNullOrEmpty(sqlWhere.Trim()))
+                {
+                    Regex r = new Regex("And");
+                    sqlWhere = r.Replace(sqlWhere, "Where", 1);
+                }
+                string sql = string.Format(@"select Id,DiId,InviterArea,Inviter,InviteTime,InviteCosts,(select name from Sys_SetData where id=i.Currency and IsDel={0}) 
+                                             as Currency,IsGoOfficaiaBussiness,(select IsAuditGM from Grp_CreditCardPayment where CTable=81 and CId=i.Id 
+                                             and IsDel={0}) as 'isAudit',Attachment from Grp_InvitationOfficialActivities i  {1}", 0, sqlWhere);
+                List<InvitationOfficialActivitiesView> _DecreasePayments = await _sqlSugar.SqlQueryable<InvitationOfficialActivitiesView>(sql).ToListAsync();
+                if (_DecreasePayments.Count != 0)
+                {
+                    result = new Result() { Code = 0, Msg = "查询成功!", Data = _DecreasePayments };
+                }
+                else
+                {
+                    result = new Result() { Code = 0, Msg = "暂无数据!", Data = _DecreasePayments };
+                }
+            }
+            catch (Exception ex)
+            {
+                result = new Result() { Code = -2, Msg = "未知错误" };
+            }
+            return result;
+        }
+        /// <summary>
+        /// 商邀费用操作(Status:1.新增,2.修改)
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> OpInvitationOfficialActivities(OpInvitationOfficialActivitiesDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "程序错误!" };
+            BeginTran();
+            try
+            {
+                int id = 0;
+                Grp_InvitationOfficialActivities grp_Invitation = _mapper.Map<Grp_InvitationOfficialActivities>(dto);
+                if (dto.Status == 1)//添加
+                {
+                    string selectSql = string.Format(@"select * from Grp_InvitationOfficialActivities where InviterArea='{0}' and Inviter='{1}' and DiId={2} and IsDel={3}"
+                                                    , dto.InviterArea, dto.Inviter, dto.DiId, 0);
+                    var _InvitationOfficialActivities = await _sqlSugar.SqlQueryable<Grp_InvitationOfficialActivities>(selectSql).FirstAsync();//查询是否存在
+                    if (_InvitationOfficialActivities != null)
+                    {
+                        return result = new Result() { Code = -1, Msg = "该客户已存在,请勿重复添加!" };
+                    }
+                    else
+                    {
+                        id = await AddAsyncReturnId(grp_Invitation);
+                        if (id != 0)//修改或添加商邀资料
+                        {
+                            Res_InvitationOfficialActivityData res_InvitationData = _mapper.Map<Res_InvitationOfficialActivityData>(dto);
+                            res_InvitationData.Remark = "";
+                            int DataID = 0;
+                            if (dto.DataId == 0)
+                            {
+                                DataID = await _sqlSugar.Insertable(res_InvitationData).ExecuteReturnIdentityAsync();
+                                if (DataID != 0)
+                                {
+                                    result = new Result() { Code = 0, Msg = "添加成功!" };
+                                }
+                                else
+                                {
+                                    RollbackTran();
+                                    result = new Result() { Code = -1, Msg = "添加失败!" };
+                                }
+                            }
+                            else
+                            {
+                                res_InvitationData.Id = dto.DataId;
+                                DataID = await _sqlSugar.Updateable<Res_InvitationOfficialActivityData>().Where(b => b.Id == res_InvitationData.Id).SetColumns(b => new Res_InvitationOfficialActivityData
+                                {
+                                    Country = res_InvitationData.Country,
+                                    UnitName = res_InvitationData.UnitName,
+                                    Address = res_InvitationData.Address,
+                                    Contact = res_InvitationData.Contact,
+                                    Job = res_InvitationData.Job,
+                                    Tel = res_InvitationData.Tel,
+                                    Email = res_InvitationData.Email,
+                                    OtherInformation = res_InvitationData.OtherInformation,
+                                    Fax = res_InvitationData.Fax
+                                }).ExecuteCommandAsync();
+                            }
+                            if (DataID != 0)//添加C表
+                            {
+                                Grp_CreditCardPayment C = new Grp_CreditCardPayment();
+                                C.PayDId = dto.PayDId;
+                                C.ConsumptionPatterns = "";
+                                C.ConsumptionDate = "";
+                                C.CTDId = 0;
+                                C.BankNo = "";
+                                C.CardholderName = "";
+                                C.PayMoney = dto.InviteCosts + dto.SendCost;
+                                C.PaymentCurrency = dto.Currency;
+                                //当天汇率
+                                //if (!string.IsNullOrEmpty(hfRate.Value))
+                                //    C.DayRate = hfRate.Value;
+                                //else
+                                //C.DayRate = "";
+                                C.CompanyBankNo = "";
+                                C.OtherBankName = "";
+                                C.OtherSideNo = "";
+                                C.OtherSideName = "";
+                                C.Remark = "";
+                                C.CreateUserId = dto.CreateUserId;
+                                C.MFOperator = "";
+                                C.MFOperatorDate = "";
+                                C.IsAuditDM = 0;
+                                C.AuditDMOperate = 0;
+                                C.AuditDMDate = "";
+                                C.IsAuditMF = 0;
+                                C.AuditMFOperate = 0;
+                                C.AuditMFDate = "";
+                                C.IsAuditGM = 0;
+                                C.AuditGMOperate = 21;
+                                C.AuditGMDate = "";
+                                C.IsPay = 0;
+                                C.DIId = dto.DiId;
+                                C.CId = id;
+                                C.CTable = 81;
+                                C.PayPercentage = 0;
+                                C.PayThenMoney = 0;
+                                C.PayPercentageOld = 0;
+                                C.PayThenMoneyOld = 0;
+                                C.UpdateDate = "";
+                                C.Payee = dto.Payee;
+                                C.OrbitalPrivateTransfer = dto.OrbitalPrivateTransfer;
+                                C.ExceedBudget = 0;
+                                //C.RMBPrice = 0.00f;
+
+                                //设置该团组的汇率
+                                Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == dto.DiId && a.IsDel == 0 && a.CTable == 81);
+                                if (_TeamRate != null)
+                                {
+                                    if (dto.Currency == 49)
+                                    {
+                                        C.DayRate = _TeamRate.RateU;
+                                        C.RMBPrice = C.PayMoney * Convert.ToDecimal(_TeamRate.RateU);
+                                        //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateU); 
+                                    }
+                                    else if (dto.Currency == 51)
+                                    {
+                                        C.DayRate = _TeamRate.RateE;
+                                        C.RMBPrice = C.PayMoney * Convert.ToDecimal(_TeamRate.RateE);
+                                        //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateE); 
+                                    }
+                                    else
+                                    {
+                                        C.DayRate = "1";
+                                        C.RMBPrice = C.PayMoney;
+                                    }
+                                }
+                                else
+                                {
+                                    C.DayRate = "1";
+                                    C.RMBPrice = C.PayMoney;
+                                }
+                                int cId = await _sqlSugar.Insertable(C).ExecuteReturnIdentityAsync();
+                                if (cId != 0)
+                                {
+                                    result = new Result() { Code = 0, Msg = "添加成功!" };
+                                }
+                                else
+                                {
+                                    RollbackTran();
+                                    result = new Result() { Code = -1, Msg = "添加失败!" };
+                                }
+                            }
+                        }
+                    }
+                }
+                else//修改
+                {
+                    bool res = await UpdateAsync(a => a.Id == grp_Invitation.Id, a => new Grp_InvitationOfficialActivities
+                    {
+                        DiId = dto.DiId,
+                        InviterArea = dto.InviterArea,
+                        Inviter = dto.Inviter,
+                        InviteTime = dto.InviteTime,
+                        Attachment = dto.Attachment,
+                        InviteCosts = dto.InviteCosts,
+                        Currency = dto.Currency,
+                        SendCost = dto.SendCost,
+                        IsGoOfficaiaBussiness = dto.IsGoOfficaiaBussiness,
+                        Remark = dto.Remark,
+                    });
+                    if (res)
+                    {
+                        Res_InvitationOfficialActivityData res_InvitationData = _mapper.Map<Res_InvitationOfficialActivityData>(dto);
+                        res_InvitationData.Remark = "";
+                        int DataID = 0;
+                        if (dto.DataId == 0)///添加或修改商邀资料
+                        {
+                            DataID = await _sqlSugar.Insertable(res_InvitationData).ExecuteReturnIdentityAsync();
+                            if (DataID != 0)
+                            {
+                                result = new Result() { Code = 0, Msg = "添加成功!" };
+                            }
+                            else
+                            {
+                                RollbackTran();
+                                result = new Result() { Code = -1, Msg = "添加失败!" };
+                            }
+                        }
+                        else
+                        {
+                            res_InvitationData.Id = dto.DataId;
+                            DataID = await _sqlSugar.Updateable<Res_InvitationOfficialActivityData>().Where(b => b.Id == res_InvitationData.Id).SetColumns(b => new Res_InvitationOfficialActivityData
+                            {
+                                Country = res_InvitationData.Country,
+                                UnitName = res_InvitationData.UnitName,
+                                Address = res_InvitationData.Address,
+                                Contact = res_InvitationData.Contact,
+                                Job = res_InvitationData.Job,
+                                Tel = res_InvitationData.Tel,
+                                Email = res_InvitationData.Email,
+                                OtherInformation = res_InvitationData.OtherInformation,
+                                Fax = res_InvitationData.Fax
+                            }).ExecuteCommandAsync();
+                        }
+                        if (DataID != 0)//修改C表
+                        {
+                            Grp_CreditCardPayment grp_CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId ==grp_Invitation.Id && a.IsDel == 0);
+                            if (grp_CreditCardPayment != null)
+                            {
+                                grp_CreditCardPayment.PayMoney = dto.InviteCosts + dto.SendCost;
+                                Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_Invitation.DiId && a.IsDel == 0 && a.CTable == 81);
+                                if (_TeamRate != null)
+                                {
+
+                                    if (grp_Invitation.Currency == 49)
+                                    {
+                                        grp_CreditCardPayment.DayRate = _TeamRate.RateU;
+                                        grp_CreditCardPayment.RMBPrice = grp_CreditCardPayment.PayMoney * Convert.ToDecimal(_TeamRate.RateU);
+                                        //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateU); 
+                                    }
+                                    else if (grp_Invitation.Currency == 51)
+                                    {
+                                        grp_CreditCardPayment.DayRate = _TeamRate.RateE;
+                                        grp_CreditCardPayment.RMBPrice = grp_CreditCardPayment.PayMoney * Convert.ToDecimal(_TeamRate.RateE);
+                                        //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateE); 
+                                    }
+                                    else
+                                    {
+                                        grp_CreditCardPayment.DayRate = "1";
+                                        grp_CreditCardPayment.RMBPrice = grp_CreditCardPayment.PayMoney;
+                                    }
+                                }
+                                else
+                                {
+                                    grp_CreditCardPayment.DayRate = "1";
+                                    grp_CreditCardPayment.RMBPrice = grp_CreditCardPayment.PayMoney;
+                                }
+                                int CTable = await _sqlSugar.Updateable<Grp_CreditCardPayment>().Where(a => a.Id == grp_CreditCardPayment.Id).SetColumns(a => new Grp_CreditCardPayment
+                                {
+                                    PayDId = dto.PayDId,
+                                    PayMoney = grp_CreditCardPayment.PayMoney,
+                                    PaymentCurrency = grp_Invitation.Currency,
+                                    Payee = dto.Payee,
+                                    OrbitalPrivateTransfer = dto.OrbitalPrivateTransfer,
+                                    DayRate = grp_CreditCardPayment.DayRate,
+                                    RMBPrice = grp_CreditCardPayment.RMBPrice,
+
+                                }).ExecuteCommandAsync();
+                                if (CTable != 0)
+                                {
+                                    result = new Result() { Code = 0, Msg = "修改成功!" };
+                                }
+                                else
+                                {
+                                    result = new Result() { Code = -1, Msg = "修改失败!" };
+                                    RollbackTran();
+                                }
+                            }
+                            else
+                            {
+                                RollbackTran();
+                                result = new Result() { Code = -1, Msg = "修改失败!" };
+                            }
+                        }
+                        else
+                        {
+                            RollbackTran();
+                            result = new Result() { Code = -1, Msg = "修改失败!" };
+                        }
+                    }
+                    else
+                    {
+                        RollbackTran();
+                        result = new Result() { Code = -1, Msg = "修改失败!" };
+                    }
+                }
+                CommitTran();
+            }
+            catch (Exception ex)
+            {
+                result = new Result() { Code = -2, Msg = "程序错误!" };
+                throw;
+            }
+            return result;
+        }
+    }
+}

+ 1 - 1
OASystem/OASystem.Infrastructure/Repositories/Resource/AirTicketAgentRepository.cs

@@ -9,7 +9,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace OASystem.Infrastructure.Repositories.Resource
+namespace OASystem.Infrastructure.Repositories.Groups
 {
     public class AirTicketAgentRepository : BaseRepository<Res_AirTicketAgent, Res_AirTicketAgent>
     {

+ 226 - 5
OASystem/_Doc/OA2023数据字典.docx

@@ -2917,7 +2917,7 @@ Null
 人民币费用
 
 OrbitalPrivateTransfer
-varchar(20)
+Int
 Null
 
 费用标识
@@ -3115,6 +3115,106 @@ Null
 启用标识
 0否1是
 
+16) 团组增减款项表:Grp_DecreasePayments
+                                   字段名
+                                 类型长度
+                                 字段属性
+                                 字段约束
+                                 字段描述
+                                    备注
+DiId
+Int
+Null
+
+团组外键编号
+Grp_DelegationInfo.id
+PriceName
+varchar(225)
+Null
+
+费用名称
+
+Price
+decimal(10,2)
+Null
+
+费用金额
+
+Currency
+int
+Null
+
+费用币种
+
+FilePath
+varchar(MAX)
+Null
+
+附件地址
+
+
+17) 商邀费用录入表:Grp_InvitationOfficialActivities
+                                   字段名
+                                 类型长度
+                                 字段属性
+                                 字段约束
+                                 字段描述
+                                    备注
+DiId
+Int
+Null
+
+团组外键编号
+Grp_DelegationInfo.id
+InviterArea
+varchar(225)
+Null
+
+邀请方地区
+
+Inviter
+varchar(225)
+Null
+
+邀请方
+
+InviteTime
+DateTime
+Null
+
+邀请时间
+
+Attachment
+varchar(225)
+Null
+
+附件
+
+InviteCosts
+decimal(10,2)
+Null
+
+邀请费用
+
+Currency
+int
+Null
+
+币种
+
+SendCost
+decimal(10,2)
+Null
+
+快递费用
+
+IsGoOfficaiaBussiness
+int
+Null
+
+公务标识
+
+
 1. 资源板块
 1) 酒店数据表:Res_HotelData(挪用)
                                    字段名
@@ -3365,9 +3465,130 @@ Null
 
 签证地址
 
-1. 机票板块
 
-2. 财务板块
+6) 商邀资料:Res_InvitationOfficialActivityData
+                                   字段名
+                                 类型长度
+                                 字段属性
+                                 字段约束
+                                 字段描述
+                                    备注
+Country
+varchar(150)
+Null
+
+邀请方国家
+
+City
+varchar(150)
+Null
+
+城市
+
+UnitName
+varchar(MAX)
+Null
+
+邀请方名称
+
+UnitWeb
+varchar(120)
+Null
+
+邀请方官网
+
+Field
+varchar(150)
+Null
+
+涉及领域
+
+Address
+varchar(225)
+Null
+
+邀请方地址
+
+UnitInfo
+varchar(MAX)
+Null
+
+邀请方信息
+
+Contact
+varchar(120)
+Null
+
+联系人
+
+Job
+varchar(120)
+Null
+
+职务
+
+Tel
+varchar(120)
+Null
+
+联系电话
+
+Email
+varchar(120)
+Null
+
+电子邮箱 
+
+WeChat
+varchar(120)
+Null
+
+微信
+
+FaceBook
+varchar(120)
+Null
+
+fb
+
+Ins
+varchar(120)
+Null
+
+ins
+
+Delegation
+varchar(120)
+Null
+
+团名
+
+FilePath
+varchar(120)
+Null
+
+文件地址
+
+SndFilePath
+varchar(120)
+Null
+
+修改版文件地址
+
+OtherInformation
+varchar(MAX)
+Null
+
+其他信息
+
+Fax
+varchar(120)
+Null
+
+传真号码
+
+
+1. 财务板块
 1) 团组成本表:Grp_GroupCostParameter(挪用)
                                    字段名
                                  类型长度
@@ -3665,5 +3886,5 @@ Null
                             0:未完成 1:完成
 
 
-
-
+ 
+