Browse Source

Merge branch 'develop' of http://132.232.92.186:3000/XinXiBu/OA2023 into develop

leiy 1 year ago
parent
commit
0fc463d17e

+ 2 - 1
OASystem/EntitySync/Program.cs

@@ -104,6 +104,7 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Grp_DelegationEnData),
     //typeof(Grp_DelegationEnData),
     //typeof(Grp_EnterExitCost),
     //typeof(Grp_EnterExitCost),
     //typeof(Grp_DayAndCost), 
     //typeof(Grp_DayAndCost), 
-    typeof(Grp_NationalTravelFee)
+    //typeof(Grp_NationalTravelFee)
+    typeof(Air_TicketBlackCode)
 });
 });
 Console.WriteLine("数据库结构同步完成!");
 Console.WriteLine("数据库结构同步完成!");

+ 36 - 0
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -853,6 +853,42 @@ namespace OASystem.API.Controllers
                 throw;
                 throw;
             }
             }
         }
         }
+        /// <summary>
+        /// 根据舱位类型查询接团客户名单信息
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> tankType(AirTicketResByIdDto dto)
+        {
+            try
+            {
+                List<Crm_GroupCustomer> crm_Groups = _sqlSugar.Queryable<Crm_GroupCustomer>().Where(a=>a.IsDel==0 && a.AirType==dto.Id).ToList();
+                if (crm_Groups.Count!=0)
+                {
+                    List<dynamic> Customer = new List<dynamic>();
+                    foreach (var item in crm_Groups)
+                    {
+                        var data = new
+                        {
+                            Id = item.Id,
+                            Pinyin = item.Pinyin,
+                            Name = item.LastName+item.FirstName
+                        };
+                        Customer.Add(data);
+                    }
+                    return Ok(JsonView(true, "查询成功!", Customer));
+                }
+                return Ok(JsonView(true, "暂无数据", crm_Groups));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+
         /// <summary>
         /// <summary>
         /// 机票费用录入,删除
         /// 机票费用录入,删除
         /// </summary>
         /// </summary>

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

@@ -32,12 +32,13 @@ namespace OASystem.API.Controllers
         private readonly OfficialActivitiesRepository _officialActivitiesRep;
         private readonly OfficialActivitiesRepository _officialActivitiesRep;
         private readonly AskDataRepository _askDataRep;
         private readonly AskDataRepository _askDataRep;
         private readonly SqlSugarClient _sqlSugar;
         private readonly SqlSugarClient _sqlSugar;
+        private readonly TicketBlackCodeRepository _ticketBlackCodeRep;
 
 
         public ResourceController(IMapper mapper, IConfiguration config, SqlSugarClient sqlSugar, CarDataRepository carDataRep,
         public ResourceController(IMapper mapper, IConfiguration config, SqlSugarClient sqlSugar, CarDataRepository carDataRep,
             LocalGuideDataRepository localGuideDataRep, ThreeCodeRepository threeCodeRep,
             LocalGuideDataRepository localGuideDataRep, ThreeCodeRepository threeCodeRep,
             HotelDataRepository hotelDataRep, ResItemInfoRepository resItemInfoRep, SetDataRepository setDataRepository,
             HotelDataRepository hotelDataRep, ResItemInfoRepository resItemInfoRep, SetDataRepository setDataRepository,
             CountryFeeRepository countryFeeRep, SetDataTypeRepository setDataTypeRep, AirTicketAgentRepository airTicketAgentRep,
             CountryFeeRepository countryFeeRep, SetDataTypeRepository setDataTypeRep, AirTicketAgentRepository airTicketAgentRep,
-            InvitationOfficialActivityDataRepository invitationOfficialActivityDataRep, OfficialActivitiesRepository officialActivitiesRep, AskDataRepository askDataRep)
+            InvitationOfficialActivityDataRepository invitationOfficialActivityDataRep, OfficialActivitiesRepository officialActivitiesRep, AskDataRepository askDataRep, TicketBlackCodeRepository ticketBlackCodeRep)
         {
         {
             _mapper = mapper;
             _mapper = mapper;
             _config = config;
             _config = config;
@@ -54,6 +55,7 @@ namespace OASystem.API.Controllers
             _InvitationOfficialActivityDataRep = invitationOfficialActivityDataRep;
             _InvitationOfficialActivityDataRep = invitationOfficialActivityDataRep;
             _officialActivitiesRep = officialActivitiesRep;
             _officialActivitiesRep = officialActivitiesRep;
             _askDataRep = askDataRep;
             _askDataRep = askDataRep;
+            _ticketBlackCodeRep=ticketBlackCodeRep;
         }
         }
 
 
 
 
@@ -1821,6 +1823,106 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
             }
             }
         }
         }
         #endregion
         #endregion
+
+        #region 机票黑屏代码
+        /// <summary>
+        /// 根据团组Id查询黑屏代码列表
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> QueryTicketBlackCodeByDiId(QueryTicketBlackCodeByDiIdDto dto)
+        {
+            try
+            {
+                Result groupData = await _ticketBlackCodeRep.QueryTicketBlackCodeByDiId(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> QueryTicketBlackCodeById(QueryTicketBlackCodeByIdDto dto)
+        {
+            try
+            {
+                Result groupData = await _ticketBlackCodeRep.QueryTicketBlackCodeById(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> OpTicketBlackCode(OpTicketBlackCodeDto dto)
+        {
+            try
+            {
+                Result groupData = await _ticketBlackCodeRep.OpTicketBlackCode(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> DelTicketBlackCode(DelBaseDto dto)
+        {
+            try
+            {
+                var res = await _ticketBlackCodeRep.SoftDeleteByIdAsync<Air_TicketBlackCode>(dto.Id.ToString(), dto.DeleteUserId);
+                if (!res)
+                {
+                    return Ok(JsonView(false, "删除失败"));
+                }
+                return Ok(JsonView(true, "删除成功!"));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        #endregion
     }
     }
 
 
 
 

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

@@ -163,6 +163,10 @@ namespace OASystem.Domain.AutoMappers
             #region 请示数据库
             #region 请示数据库
             CreateMap<OpAskDataDto, Res_AskData>();
             CreateMap<OpAskDataDto, Res_AskData>();
             #endregion
             #endregion
+
+            #region 黑屏代码录入
+            CreateMap<OpTicketBlackCodeDto, Air_TicketBlackCode>();
+            #endregion
             #endregion
             #endregion
 
 
             #region Crm
             #region Crm

+ 11 - 2
OASystem/OASystem.Domain/Dtos/Groups/AirTicketResDto.cs

@@ -106,6 +106,15 @@ namespace OASystem.Domain.Dtos.Groups
         /// </summary>
         /// </summary>
         public int IsTrain { get; set; }
         public int IsTrain { get; set; }
         /// <summary>
         /// <summary>
+        /// 航班日期
+        /// </summary>
+        public string FlightsDate { get; set; }
+
+        /// <summary>
+        /// 航班时间
+        /// </summary>
+        public string FlightsTime { get; set; }
+        /// <summary>
         /// 航班号
         /// 航班号
         /// </summary>
         /// </summary>
         public string FlightsCode { get; set; }
         public string FlightsCode { get; set; }
@@ -152,7 +161,7 @@ namespace OASystem.Domain.Dtos.Groups
         /// <summary>
         /// <summary>
         /// 消费日期
         /// 消费日期
         /// </summary>
         /// </summary>
-        public DateTime ConsumptionDate { get; set; }
+        public string ConsumptionDate { get; set; }
         /// <summary>
         /// <summary>
         /// 卡类型
         /// 卡类型
         /// </summary>
         /// </summary>
@@ -200,7 +209,7 @@ namespace OASystem.Domain.Dtos.Groups
         /// <summary>
         /// <summary>
         /// 财务操作时间
         /// 财务操作时间
         /// </summary>
         /// </summary>
-        public DateTime MFOperatorDate { get; set; }
+        public string MFOperatorDate { get; set; }
         ///// <summary>
         ///// <summary>
         ///// 部门经理是否审核 0否1是
         ///// 部门经理是否审核 0否1是
         ///// </summary>
         ///// </summary>

+ 70 - 0
OASystem/OASystem.Domain/Dtos/Resource/TicketBlackCodeDto.cs

@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Resource
+{
+    public class QueryTicketBlackCodeByDiIdDto
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int DiId { get; set; }
+    }
+    /// <summary>
+    /// 根据黑屏代码Id查询数据
+    /// </summary>
+    public class QueryTicketBlackCodeByIdDto
+    {
+        public int Id{ get; set; }
+
+        public int DiId { get; set; }
+    }
+    public class OpTicketBlackCodeDto
+    {
+        /// <summary>
+        /// 操作状态
+        /// 1 添加 
+        /// 2 修改 
+        /// </summary>
+        public int Status { get; set; }
+        /// <summary>
+        /// 编号
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        ///  团组Id
+        /// </summary>
+        public int DiId { get; set; }
+        /// <summary>
+        ///   黑屏代码
+        /// </summary>
+        public string BlackCode { get; set; }
+        /// <summary>
+        ///  报价
+        /// <summary>
+        public string Price { get; set; }
+        /// <summary>
+        ///  最新报价
+        /// <summary>
+        public string NowPrice { get; set; }
+        /// <summary>
+        /// 公务舱单价
+        /// </summary>
+        public decimal BCPrice { get; set; }
+        /// <summary>
+        ///经济舱单价
+        /// </summary>
+        public decimal ECPrice { get; set; }
+        /// <summary>
+        /// 创建者Id
+        /// </summary>
+        public int CreateUserId { get; set; }
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+    }
+}

+ 114 - 0
OASystem/OASystem.Domain/Entities/Customer/Crm_GroupCustomer.cs

@@ -0,0 +1,114 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Customer
+{
+    /// <summary>
+    /// 接团信息客户表
+    /// </summary>
+    [SugarTable("Crm_GroupCustomer")]
+    public class Crm_GroupCustomer:EntityBase
+    {
+        /// <summary>
+        ///  团组Id
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int DiId { get; set; }
+
+        /// <summary>
+        ///  名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string FirstName { get; set; }
+        /// <summary>
+        ///  姓
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string LastName { get; set; }
+        /// <summary>
+        ///  拼音姓名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string Pinyin { get; set; }
+        /// <summary>
+        ///  单位
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string Company { get; set; }
+        /// <summary>
+        ///  职务
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string Job { get; set; }
+        /// <summary>
+        ///  手机电话
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Phone { get; set; }
+        /// <summary>
+        ///  性别
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Sex { get; set; }
+        /// <summary>
+        ///  身份证
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string IDcard { get; set; }
+        /// <summary>
+        ///  护照类型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string PassprotType { get; set; }
+        /// <summary>
+        /// 签发国家码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string passportCountry { get; set; }
+        /// <summary>
+        ///  护照编号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string PassportNo { get; set; }
+        /// <summary>
+        ///  护照签发地
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string IssuePlace { get; set; }
+        /// <summary>
+        ///  护照签发日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "date")]
+        public DateTime IssueDate { get; set; }
+
+        /// <summary>
+        ///  护照有效期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "date")]
+        public DateTime ExpiryDate { get; set; }
+        /// <summary>
+        ///  生日
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Birthday { get; set; }
+        /// <summary>
+        ///  舱位类型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int AirType { get; set; }
+        /// <summary>
+        ///  舱位备注
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string AirRemark { get; set; }
+        /// <summary>
+        ///  房型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string RoomType { get; set; }
+
+    }
+}

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

@@ -116,7 +116,7 @@ namespace OASystem.Domain.Entities.Groups
         /// 财务部审核时间
         /// 财务部审核时间
         /// </summary>
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
-        public string? AuditMFDate { get; set; }
+        public string  AuditMFDate { get; set; }
 
 
         /// <summary>
         /// <summary>
         /// 总经理是否审核  0 未审核 1已通过 2未通过
         /// 总经理是否审核  0 未审核 1已通过 2未通过

+ 56 - 0
OASystem/OASystem.Domain/Entities/Resource/Air_TicketBlackCode.cs

@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 机票黑屏代码
+    /// </summary>
+    [SugarTable("Air_TicketBlackCode")]
+    public class Air_TicketBlackCode:EntityBase
+    {
+        /// <summary>
+        ///  团组Id
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int DiId { get; set; }
+        /// <summary>
+        ///   黑屏代码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(800)")]
+        public string LeaveCode { get; set; }
+        /// <summary>
+        ///   黑屏代码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(800)")]
+        public string BlackCode { get; set; }
+        /// <summary>
+        ///   黑屏代码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(800)")]
+        public string ReturnCode { get; set; }
+        /// <summary>
+        ///  报价
+        /// <summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string Price { get; set; }
+        /// <summary>
+        ///  最新报价
+        /// <summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string NowPrice { get; set; }
+        /// <summary>
+        /// 公务舱单价
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal BCPrice { get; set; }
+        /// <summary>
+        ///经济舱单价
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal ECPrice { get; set; }
+    }
+}

+ 0 - 1
OASystem/OASystem.Domain/Entities/Resource/Res_AskData.cs

@@ -19,7 +19,6 @@ namespace OASystem.Domain.Entities.Resource
         public string DeleName { get; set; } = "";
         public string DeleName { get; set; } = "";
         /// <summary>
         /// <summary>
         /// 国家
         /// 国家
-        /// 
         /// </summary>
         /// </summary>
         [SugarColumn(IsNullable =true,ColumnDataType ="varchar(100)")]
         [SugarColumn(IsNullable =true,ColumnDataType ="varchar(100)")]
         public string Country { get; set; }
         public string Country { get; set; }

+ 1 - 0
OASystem/OASystem.Domain/ViewModels/Groups/AirTicketReservationsView.cs

@@ -21,6 +21,7 @@ namespace OASystem.Domain.ViewModels.Groups
         public string CurrencyStr { get; set; }
         public string CurrencyStr { get; set; }
 
 
         public string FlightDescription { get; set; }
         public string FlightDescription { get; set; }
+        public string ClientNameStr { get; set; }
     }
     }
 
 
     public class AirGroupCostParameterView
     public class AirGroupCostParameterView

+ 14 - 0
OASystem/OASystem.Domain/ViewModels/Resource/TicketBlackCodeView.cs

@@ -0,0 +1,14 @@
+using OASystem.Domain.Entities.Resource;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.Resource
+{
+    public class TicketBlackCodeView:Air_TicketBlackCode
+    {
+        public string CreateName { get; set; }
+    }
+}

+ 103 - 33
OASystem/OASystem.Infrastructure/Repositories/Groups/AirTicketResRepository.cs

@@ -75,14 +75,14 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
 
         public async Task<Result> AirTicketResList(AirTicketResDto dto)
         public async Task<Result> AirTicketResList(AirTicketResDto dto)
         {
         {
-            Result result = new Result() { Code = -2, Msg = "未知错误" };
+                Result result = new Result() { Code = -2, Msg = "未知错误" };
 
 
             Grp_DelegationInfo _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().First(it => it.Id == dto.DiId);
             Grp_DelegationInfo _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().First(it => it.Id == dto.DiId);
             if (_DelegationInfo != null)
             if (_DelegationInfo != null)
             {
             {
                 string sql = string.Format(@"select a.*,c.IsAuditGM,(select Name from Sys_SetData where Id=a.cType) as 'CTypeName',(select Name from 
                 string sql = string.Format(@"select a.*,c.IsAuditGM,(select Name from Sys_SetData where Id=a.cType) as 'CTypeName',(select Name from 
                                                 Sys_SetData where Id=a.PreCurrency) as 'PreCurrencyStr',(select Name from Sys_SetData where Id=a.Currency)
                                                 Sys_SetData where Id=a.PreCurrency) as 'PreCurrencyStr',(select Name from Sys_SetData where Id=a.Currency)
-                                                as 'CurrencyStr' from Grp_AirTicketReservations a,Grp_CreditCardPayment c where  a.id=c.CId  and a.isdel={1}
+                                                as 'CurrencyStr' from Grp_AirTicketReservations a,Grp_CreditCardPayment c where  a.id=c.CId  and a.isdel={1} and c.IsDel={1}
                                                 and a.DIId={0} Order By a.CreateTime desc", dto.DiId, 0);
                                                 and a.DIId={0} Order By a.CreateTime desc", dto.DiId, 0);
                 List<AirTicketReservationsView> _AirTicketReservations = _sqlSugar.SqlQueryable<AirTicketReservationsView>(sql).ToList();
                 List<AirTicketReservationsView> _AirTicketReservations = _sqlSugar.SqlQueryable<AirTicketReservationsView>(sql).ToList();
 
 
@@ -103,7 +103,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                                 Res_ThreeCode arrData = _sqlSugar.Queryable<Res_ThreeCode>().First(it => it.IsDel == 0 && it.Three == arrCode);
                                 Res_ThreeCode arrData = _sqlSugar.Queryable<Res_ThreeCode>().First(it => it.IsDel == 0 && it.Three == arrCode);
 
 
                                 string day = spDotandEmpty[2].Substring(2, 2);//日
                                 string day = spDotandEmpty[2].Substring(2, 2);//日
-                                string monthAbbreviations = spDotandEmpty[1].Substring(4, 3).ToUpper();//月份
+                                string monthAbbreviations = spDotandEmpty[2].Substring(4, 3).ToUpper();//月份
                                 switch (monthAbbreviations)
                                 switch (monthAbbreviations)
                                 {
                                 {
                                     case "JAN":
                                     case "JAN":
@@ -146,7 +146,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                                 string tate = $"{monthAbbreviations}月{day}日";
                                 string tate = $"{monthAbbreviations}月{day}日";
                                 item.FlightDescription += rowindex + ". " + depData.AirPort + " " + arrData.AirPort + "  (" + tate + ")\r\n";
                                 item.FlightDescription += rowindex + ". " + depData.AirPort + " " + arrData.AirPort + "  (" + tate + ")\r\n";
                             }
                             }
-                            catch (Exception)
+                            catch (Exception ex)
                             {
                             {
                                 item.FlightDescription = "录入数据不规范!请检查";
                                 item.FlightDescription = "录入数据不规范!请检查";
                                 break;
                                 break;
@@ -214,10 +214,20 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     }
                     }
                 }
                 }
                 //团组成本预算表查询
                 //团组成本预算表查询
-                Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == dto.DiId);
+                Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == dto.DiId && a.IsDel==0);
 
 
                 AirGroupCostParameterView _AirgroupCostParameter = _mapper.Map<AirGroupCostParameterView>(_GroupCostParameter);
                 AirGroupCostParameterView _AirgroupCostParameter = _mapper.Map<AirGroupCostParameterView>(_GroupCostParameter);
-
+                for (int i = 0; i <_AirTicketReservations.Count; i++)
+                {
+                  string [] ClientArr=  _AirTicketReservations[i].ClientName.Split(',');
+                    
+                    foreach (var item in ClientArr)
+                    {
+                        Crm_GroupCustomer crm_GroupCustomer = _sqlSugar.Queryable<Crm_GroupCustomer>().Where(a => a.IsDel==0 && a.Id==int.Parse(item)).First();
+                        _AirTicketReservations[i].ClientNameStr+=crm_GroupCustomer.Pinyin+',';
+                    }
+                    _AirTicketReservations[i].ClientNameStr=_AirTicketReservations[i].ClientNameStr.Substring(0, _AirTicketReservations[i].ClientNameStr.Length-1);
+                }
                 var data = new
                 var data = new
                 {
                 {
                     DelegationInfo = _DelegationInfo,
                     DelegationInfo = _DelegationInfo,
@@ -242,20 +252,24 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
 
 
 
                 List<Grp_GroupsTaskAssignment> grp_GroupsTaskAssignment = Query<Grp_GroupsTaskAssignment>(a => a.IsDel == 0 && a.UId == dto.UserId && a.CTId == 85).ToList();
                 List<Grp_GroupsTaskAssignment> grp_GroupsTaskAssignment = Query<Grp_GroupsTaskAssignment>(a => a.IsDel == 0 && a.UId == dto.UserId && a.CTId == 85).ToList();
-
+                List<GroupNameView> grp_NameView = new List<GroupNameView>();
                 string DiId = "";
                 string DiId = "";
                 foreach (var item in grp_GroupsTaskAssignment)
                 foreach (var item in grp_GroupsTaskAssignment)
                 {
                 {
                     DiId += item.DIId + ",";
                     DiId += item.DIId + ",";
                 }
                 }
-                DiId = DiId.Substring(0, DiId.Length - 1);
+                if (DiId.Length>1)
+                {
+                    DiId = DiId.Substring(0, DiId.Length - 1);
+                
                 string sql = string.Format(@"select * from Grp_DelegationInfo where Id in({0}) and IsDel={1}", DiId, 0);
                 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();
                 List<Grp_DelegationInfo> grp_Delegations = _sqlSugar.SqlQueryable<Grp_DelegationInfo>(sql).ToList();
-                if (grp_Delegations.Count == 0)
+                    
+                    if (grp_Delegations.Count == 0)
                 {
                 {
                     return result = new Result() { Code = -1, Msg = "查询失败!" };
                     return result = new Result() { Code = -1, Msg = "查询失败!" };
                 }
                 }
-                List<GroupNameView> grp_NameView = new List<GroupNameView>();
+                
                 foreach (var item in grp_Delegations)
                 foreach (var item in grp_Delegations)
                 {
                 {
                     GroupNameView groupNameView = new GroupNameView();
                     GroupNameView groupNameView = new GroupNameView();
@@ -263,6 +277,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     groupNameView.GroupName = item.TeamName;
                     groupNameView.GroupName = item.TeamName;
                     grp_NameView.Add(groupNameView);
                     grp_NameView.Add(groupNameView);
                 }
                 }
+                }
                 #endregion
                 #endregion
 
 
                 #region 其他下拉框查询
                 #region 其他下拉框查询
@@ -306,8 +321,8 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 Grp_AirTicketReservations grp_AirTicket = _mapper.Map<Grp_AirTicketReservations>(dto.AirTicketResOpData);
                 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);
+                    string selectSql = string.Format(@"select * from Grp_AirTicketReservations where ClientName='{0}' and IsDel={1} and FlightsCode='{2}'"
+                                                     , dto.AirTicketResOpData.ClientName, 0,dto.AirTicketResOpData.FlightsCode);
                     var DeleClient = await _sqlSugar.SqlQueryable<Grp_AirTicketReservations>(selectSql).FirstAsync();//查询是否存在
                     var DeleClient = await _sqlSugar.SqlQueryable<Grp_AirTicketReservations>(selectSql).FirstAsync();//查询是否存在
                     if (DeleClient != null)
                     if (DeleClient != null)
                     {
                     {
@@ -363,19 +378,32 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0);
                         Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0);
                         if (grp_AirTicket.CType == 460)//经济舱
                         if (grp_AirTicket.CType == 460)//经济舱
                         {
                         {
-                            if (Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum) > grp_CreditCard.RMBPrice)
+                            if (_GroupCostParameter != null)
                             {
                             {
-                                grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
-                                grp_CreditCard.IsAuditGM = 3;//3 为自动审核
-                                grp_CreditCard.AuditGMOperate = 0;
-                                grp_CreditCard.AuditGMDate = "";
-                                grp_CreditCard.IsPay = 0;
+
+                                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 = "";
+                                    grp_CreditCard.IsPay = 0;
+                                }
+                                else
+                                {
+                                    var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.JJCCB);
+                                    var b = a / Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
+                                    grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
+                                    grp_CreditCard.IsAuditGM = 0;//3 为自动审核
+                                    grp_CreditCard.AuditGMOperate = 21;
+                                    grp_CreditCard.AuditGMDate = "";
+                                    grp_CreditCard.IsPay = 0;
+                                }
+
                             }
                             }
                             else
                             else
                             {
                             {
-                                var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.JJCCB);
-                                var b = a / Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
-                                grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
+                                grp_CreditCard.ExceedBudget = 0.00M;// 超出预算比例 换算
                                 grp_CreditCard.IsAuditGM = 0;//3 为自动审核
                                 grp_CreditCard.IsAuditGM = 0;//3 为自动审核
                                 grp_CreditCard.AuditGMOperate = 21;
                                 grp_CreditCard.AuditGMOperate = 21;
                                 grp_CreditCard.AuditGMDate = "";
                                 grp_CreditCard.AuditGMDate = "";
@@ -385,27 +413,46 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         }
                         }
                         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 (_GroupCostParameter != null)
                             {
                             {
-                                grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
-                                grp_CreditCard.IsAuditGM = 3;//3 为自动审核
-                                grp_CreditCard.AuditGMOperate = 21;
-                                grp_CreditCard.AuditGMDate = "";
-                                grp_CreditCard.IsPay = 0;
+
+
+                                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 = "";
+                                    grp_CreditCard.IsPay = 0;
+                                }
+                                else
+                                {
+                                    var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.GWCB);
+                                    var b = a / Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
+                                    grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
+                                    grp_CreditCard.IsAuditGM = 0;//3 为自动审核
+                                    grp_CreditCard.AuditGMOperate = 21;
+                                    grp_CreditCard.AuditGMDate = "";
+                                    grp_CreditCard.IsPay = 0;
+                                }
                             }
                             }
                             else
                             else
                             {
                             {
-                                var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.GWCB);
-                                var b = a / Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
-                                grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
+                                grp_CreditCard.ExceedBudget = 0.00M;// 超出预算比例 换算
                                 grp_CreditCard.IsAuditGM = 0;//3 为自动审核
                                 grp_CreditCard.IsAuditGM = 0;//3 为自动审核
                                 grp_CreditCard.AuditGMOperate = 21;
                                 grp_CreditCard.AuditGMOperate = 21;
                                 grp_CreditCard.AuditGMDate = "";
                                 grp_CreditCard.AuditGMDate = "";
                                 grp_CreditCard.IsPay = 0;
                                 grp_CreditCard.IsPay = 0;
                             }
                             }
                         }
                         }
-
-
+                        else
+                        {
+                            grp_CreditCard.ExceedBudget = 0.00M;// 超出预算比例 换算
+                            grp_CreditCard.IsAuditGM = 0;//3 为自动审核
+                            grp_CreditCard.AuditGMOperate = 21;
+                            grp_CreditCard.AuditGMDate = "";
+                            grp_CreditCard.IsPay = 0;
+                        }
                         grp_CreditCard.CId = id;
                         grp_CreditCard.CId = id;
                         grp_CreditCard.CTable = 85;
                         grp_CreditCard.CTable = 85;
                         grp_CreditCard.PayPercentage = 100;
                         grp_CreditCard.PayPercentage = 100;
@@ -506,6 +553,10 @@ namespace OASystem.Infrastructure.Repositories.Groups
                         Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0);
                         Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0);
                         if (grp_AirTicket.CType == 460)//经济舱
                         if (grp_AirTicket.CType == 460)//经济舱
                         {
                         {
+                            if (_GroupCostParameter != null)
+                            {
+
+                            
                             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.ExceedBudget = 0;// 超出预算比例 换算
@@ -524,10 +575,29 @@ namespace OASystem.Infrastructure.Repositories.Groups
                                 grp_CreditCard.AuditGMDate = "";
                                 grp_CreditCard.AuditGMDate = "";
                                 grp_CreditCard.IsPay = 1;
                                 grp_CreditCard.IsPay = 1;
                             }
                             }
-
+                            }
+                            else
+                            {
+                                grp_CreditCard.ExceedBudget = 0.00M;// 超出预算比例 换算
+                                grp_CreditCard.IsAuditGM = 0;//3 为自动审核
+                                grp_CreditCard.AuditGMOperate = 21;
+                                grp_CreditCard.AuditGMDate = "";
+                                grp_CreditCard.IsPay = 0;
+                            }
                         }
                         }
                         else if (grp_AirTicket.CType == 458)
                         else if (grp_AirTicket.CType == 458)
                         {
                         {
+                            if (_GroupCostParameter != null)
+                            {
+                            }
+                            else
+                            {
+                                grp_CreditCard.ExceedBudget = 0.00M;// 超出预算比例 换算
+                                grp_CreditCard.IsAuditGM = 0;//3 为自动审核
+                                grp_CreditCard.AuditGMOperate = 21;
+                                grp_CreditCard.AuditGMDate = "";
+                                grp_CreditCard.IsPay = 0;
+                            }
                             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.ExceedBudget = 0;// 超出预算比例 换算

+ 171 - 0
OASystem/OASystem.Infrastructure/Repositories/Resource/TicketBlackCodeRepository.cs

@@ -0,0 +1,171 @@
+using AutoMapper;
+using OASystem.Domain;
+using OASystem.Domain.Dtos.Resource;
+using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.Entities.Resource;
+using OASystem.Domain.ViewModels.Groups;
+using OASystem.Domain.ViewModels.Resource;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.Resource
+{
+    public class TicketBlackCodeRepository : BaseRepository<Air_TicketBlackCode, TicketBlackCodeView>
+    {
+        private readonly IMapper _mapper;
+        public TicketBlackCodeRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar)
+        {
+            _mapper = mapper;
+        }
+
+        /// <summary>
+        /// 黑屏代码操作(Status:1.新增,2.修改)
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public async Task<Result> OpTicketBlackCode(OpTicketBlackCodeDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            try
+            {
+                if (dto.Status == 1)//添加
+                {
+                   
+                    Air_TicketBlackCode _TicketBlackCode = await _sqlSugar.Queryable<Air_TicketBlackCode>().FirstAsync(a=>a.IsDel==0 && a.BlackCode==dto.BlackCode);//查询是否存在
+                    if (_TicketBlackCode != null)
+                    {
+                        return result = new Result() { Code = -1, Msg = "该信息已存在,请勿重复添加!" };
+
+                    }
+                    else//不存在,可添加
+                    {
+
+                        Air_TicketBlackCode air_TicketBlack = _mapper.Map<Air_TicketBlackCode>(dto);
+                        int id = await _sqlSugar.Insertable(air_TicketBlack).ExecuteReturnIdentityAsync();
+                        if (id == 0)
+                        {
+                            return result = new Result() { Code = -1, Msg = "添加失败!" };
+
+                        }
+                        return result = new Result() { Code = 0, Msg = "添加成功!", Data = new { Id = id } };
+                    }
+                }
+                else if (dto.Status == 2)//修改
+                {
+                    bool res = await UpdateAsync(a => a.Id == dto.Id, a => new Air_TicketBlackCode
+                    {
+                        DiId=dto.DiId,
+                        BlackCode=dto.BlackCode,
+                        Price=dto.Price,
+                        NowPrice=dto.NowPrice,
+                        BCPrice=dto.BCPrice,
+                        ECPrice=dto.ECPrice,
+                        CreateUserId = dto.CreateUserId,
+                        Remark = dto.Remark,
+                    });
+                    if (!res)
+                    {
+                        return result = new Result() { Code = -1, Msg = "修改失败!" };
+                    }
+                    return result = new Result() { Code = 0, Msg = "修改成功!", Data = new { Id = dto.Id } };
+                }
+                else
+                {
+                    return result = new Result() { Code = -1, Msg = "请传入Status参数,1添加 2修改!" };
+                }
+            }
+            catch (Exception ex)
+            {
+                return result = new Result() { Code = -2, Msg = "程序错误!" };
+            }
+        }
+
+        public async Task<Result> QueryTicketBlackCodeByDiId(QueryTicketBlackCodeByDiIdDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            try
+            {
+                string sqlWhere = string.Empty;
+
+                sqlWhere += string.Format(@" And a.IsDel={0} And a.DiId={1}", 0, dto.DiId);
+                if (!string.IsNullOrEmpty(sqlWhere.Trim()))
+                {
+                    Regex r = new Regex("And");
+                    sqlWhere = r.Replace(sqlWhere, "Where", 1);
+                }
+
+                string sql = string.Format(@"select *,(select CnName from Sys_Users where id=a.CreateUserId) as CreateName from Air_TicketBlackCode a  {0}", sqlWhere);
+                List<TicketBlackCodeView> _TicketBlackCodes = await _sqlSugar.SqlQueryable<TicketBlackCodeView>(sql).ToListAsync();
+                Grp_DelegationInfo _DelegationInfo=await _sqlSugar.Queryable<Grp_DelegationInfo>().FirstAsync(a=>a.IsDel==0 && a.Id==dto.DiId);
+                if (_TicketBlackCodes.Count!=0)
+                {
+                    return result = new Result()
+                    {
+                        Code = 0,
+                        Msg = "查询成功",
+                        Data = new
+                        {
+                            TicketBlackCodes= _TicketBlackCodes,
+                            DelegationInfo= _DelegationInfo
+                        },
+                    };
+                }
+                else
+                {
+                    return result = new Result()
+                    {
+                        Code = 0,
+                        Msg = "暂无数据",
+                        Data = new
+                        {
+                            TicketBlackCodes = _TicketBlackCodes,
+                            DelegationInfo = _DelegationInfo
+                        },
+                    };
+                }
+            }
+            catch (Exception)
+            {
+                return result;
+                throw;
+            }
+        }
+
+        public async Task<Result> QueryTicketBlackCodeById(QueryTicketBlackCodeByIdDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            try
+            {
+                //查询成本和团组信息
+                Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == dto.DiId && a.IsDel==0);//团组成本
+                AirGroupCostParameterView _AirgroupCostParameter = _mapper.Map<AirGroupCostParameterView>(_GroupCostParameter);
+                Grp_DelegationInfo _DelegationInfo=_sqlSugar.Queryable<Grp_DelegationInfo>().First(a=>a.Id == dto.DiId && a.IsDel==0);//团组信息
+                Air_TicketBlackCode _TicketBlackCode=new Air_TicketBlackCode();
+                if (dto.Id!=0 && !string.IsNullOrWhiteSpace(dto.Id.ToString()))
+                {
+                    _TicketBlackCode = _sqlSugar.Queryable<Air_TicketBlackCode>().First(a => a.IsDel==0 && a.Id==dto.Id);
+                }
+                return result = new Result()
+                {
+                    Code = 0,
+                    Msg = "查询成功!",
+                    Data = new
+                    {
+                        GroupCostParameter = _AirgroupCostParameter,
+                        DelegationInfo = _DelegationInfo,
+                        TicketBlackCode = _TicketBlackCode
+                    },
+                };
+            }
+            catch (Exception)
+            {
+                return result;
+                throw;
+            }
+        }
+    }
+}

+ 213 - 21
OASystem/_Doc/OA2023数据字典.docx

@@ -1879,7 +1879,46 @@ Null
 政治审查部门审批文号
 政治审查部门审批文号
 
 
 
 
-3) 团组附件表:Grp_DeleFile
+3) 团组英文资料:Grp_DelegationEnData
+                                   字段名
+                                 类型长度
+                                 字段属性
+                                 字段约束
+                                 字段描述
+                                    备注
+Area
+varchar(50)
+Null
+
+区域
+
+Job
+varchar(50)
+Null
+
+职位(中文)
+
+JobEn
+varchar(50)
+Null
+
+职位(英文)
+
+DelegationSetting
+varchar(50)
+Null
+
+背景(中文)
+
+DelegationSettingEn
+varchar(50)
+Null
+
+背景(英文)
+
+
+
+4) 团组附件表:Grp_DeleFile
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -1888,36 +1927,36 @@ Null
                                     备注
                                     备注
 Diid
 Diid
 Int
 Int
-Nul
+Null
 
 
 团组Id
 团组Id
 团组表
 团组表
 Category
 Category
 Int
 Int
-Nul
+Null
 
 
 类别标识
 类别标识
 数据类型字表Id
 数据类型字表Id
 Kind
 Kind
 Int
 Int
-Nul
+Null
 
 
 次级类别
 次级类别
 
 
 FileName
 FileName
 Varchar(100)
 Varchar(100)
-Nul
+Null
 
 
 文件名
 文件名
 
 
 FilePath
 FilePath
 Varchar(100)
 Varchar(100)
-Nul
+Null
 
 
 文件路径
 文件路径
 
 
 
 
-4) 团组公共需求表:Grp_DeleClientNeeds
+5) 团组公共需求表:Grp_DeleClientNeeds
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -1985,7 +2024,7 @@ Null
 用餐需求备注
 用餐需求备注
 
 
 
 
-5) 团组会议需求表:Grp_DeleMeetingNeeds
+6) 团组会议需求表:Grp_DeleMeetingNeeds
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -2048,7 +2087,7 @@ Null
 
 
 
 
 
 
-6) 签证进度表:Grp_VisaProgress(挪用)
+7) 签证进度表:Grp_VisaProgress(挪用)
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -2146,7 +2185,7 @@ Null
 护照接收者
 护照接收者
 
 
 
 
-7) 机票黑屏代码、询价表:Grp_AirInquiry
+8) 机票黑屏代码、询价表:Grp_AirInquiry
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -2244,7 +2283,7 @@ Null
 业务人员查询时间
 业务人员查询时间
 
 
 
 
-8) 暂时没用--机票费用表:Grp_AirPrice(费用录入页面)
+9) 暂时没用--机票费用表:Grp_AirPrice(费用录入页面)
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -2329,7 +2368,7 @@ Null
 
 
 报价说明
 报价说明
 
 
-9) 机票费用录入表:Grp_AirTicketReservations(挪用)
+10) 机票费用录入表:Grp_AirTicketReservations(挪用)
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -2469,7 +2508,7 @@ Null
 舱类型
 舱类型
 
 
 
 
-10) 酒店表:Grp_HotelReservations(挪用)
+11) 酒店表:Grp_HotelReservations(挪用)
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -2699,7 +2738,7 @@ Null
 是否住了其他房型
 是否住了其他房型
 0否1是
 0否1是
 
 
-11) 付款信息表:Grp_CreditCardPayment(挪用)
+12) 付款信息表:Grp_CreditCardPayment(挪用)
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -2928,7 +2967,7 @@ Null
 
 
 超出预算比例
 超出预算比例
 
 
-12) 团组流程管控表:Grp_Schedule
+13) 团组流程管控表:Grp_Schedule
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -2989,7 +3028,7 @@ Null
 
 
 异常标识
 异常标识
 
 
-13) 团组流程管控详细进度表:Grp_ScheduleDetail
+14) 团组流程管控详细进度表:Grp_ScheduleDetail
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -3051,7 +3090,7 @@ Null
 异常标识
 异常标识
 
 
 
 
-14) 团组流程管控人员配置表:Grp_SchedulePerson
+15) 团组流程管控人员配置表:Grp_SchedulePerson
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -3083,7 +3122,7 @@ Null
 负责工作
 负责工作
 
 
 
 
-15) 团组任务分配:Grp_GroupsTaskAssignment
+16) 团组任务分配:Grp_GroupsTaskAssignment
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -3115,7 +3154,7 @@ Null
 启用标识
 启用标识
 0否1是
 0否1是
 
 
-16) 团组增减款项表:Grp_DecreasePayments
+17) 团组增减款项表:Grp_DecreasePayments
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -3153,7 +3192,7 @@ Null
 附件地址
 附件地址
 
 
 
 
-17) 商邀费用录入表:Grp_InvitationOfficialActivities
+18) 商邀费用录入表:Grp_InvitationOfficialActivities
                                    字段名
                                    字段名
                                  类型长度
                                  类型长度
                                  字段属性
                                  字段属性
@@ -3214,7 +3253,6 @@ Null
 
 
 公务标识
 公务标识
 
 
-
 1. 资源板块
 1. 资源板块
 1) 酒店数据表:Res_HotelData(挪用)
 1) 酒店数据表:Res_HotelData(挪用)
                                    字段名
                                    字段名
@@ -3588,6 +3626,160 @@ Null
 传真号码
 传真号码
 
 
 
 
+7) 公务出访表:Res_OfficialActivities
+                                   字段名
+                                 类型长度
+                                 字段属性
+                                 字段约束
+                                 字段描述
+                                    备注
+DiId
+int
+Null
+
+团组外键编号
+Grp_DelegationInfo.id
+Type
+int
+Null
+
+邀请方 1  公务方 0 
+
+Client
+varchar(MAX)
+Null
+
+公务单位
+
+Date
+varchar(120)
+Null
+
+公务日期
+
+Time
+varchar(120)
+Null
+
+精确时间
+
+Address
+varchar(MAX)
+Null
+
+地址
+
+Contact
+varchar(120)
+Null
+
+联系人
+
+Job
+varchar(50)
+Null
+
+联系人职务
+
+Tel
+varchar(120)
+Null
+
+联系人电话
+
+OfficialForm
+int
+Null
+
+公务形式
+
+Setting
+varchar(MAX)
+Null
+
+公务方背景
+
+Dresscode
+varchar(120)
+Null
+
+着装要求
+
+Attendees
+varchar(MAX)
+Null
+
+参会人员
+
+IsNeedTrans
+int
+Null
+
+是否需要翻译
+0否1是
+Translators
+nvarchar(255)
+Null
+
+翻译人员
+
+language
+varchar(120)
+Null
+
+翻译语种
+
+Trip
+varchar(MAX)
+Null
+
+暂定行程
+
+
+请示数据库Res_AskData
+                                   字段名
+                                 类型长度
+                                 字段属性
+                                 字段约束
+                                 字段描述
+                                    备注
+DeleName
+varchar(100)
+Null
+
+关联团组
+
+Country
+varchar(100)
+Null
+
+国家
+
+Area
+varchar(500)
+Null
+
+地区
+
+UnitName
+varchar(200)
+Null
+
+公务方名称
+
+Field
+varchar(100)
+Null
+
+涉及领域
+
+TalkCase
+varchar(500)
+Null
+
+话术范例
+
+
 1. 财务板块
 1. 财务板块
 1) 团组成本表:Grp_GroupCostParameter(挪用)
 1) 团组成本表:Grp_GroupCostParameter(挪用)
                                    字段名
                                    字段名