Browse Source

合并项目

jiangjc 2 years ago
parent
commit
53ecc58c30
51 changed files with 3419 additions and 439 deletions
  1. 33 3
      OASystem/EntitySync/Program.cs
  2. 76 17
      OASystem/OASystem.Api/Controllers/AuthController.cs
  3. 119 14
      OASystem/OASystem.Api/Controllers/SystemController.cs
  4. 0 30
      OASystem/OASystem.Api/OAMethodLib/LoginLib.cs
  5. 4 11
      OASystem/OASystem.Api/OASystem.API.csproj
  6. 28 29
      OASystem/OASystem.Api/Program.cs
  7. 13 6
      OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs
  8. 0 20
      OASystem/OASystem.Domain/Dtos/LoginDto.cs
  9. 2 2
      OASystem/OASystem.Domain/Dtos/Sys_DepartmentDto.cs
  10. 23 0
      OASystem/OASystem.Domain/Dtos/System/UserDto.cs
  11. 19 0
      OASystem/OASystem.Domain/Dtos/UserDto/LoginDto.cs
  12. 125 0
      OASystem/OASystem.Domain/Dtos/UserDto/RegisterDto.cs
  13. 24 0
      OASystem/OASystem.Domain/Dtos/UserDto/UpdateDto.cs
  14. 58 0
      OASystem/OASystem.Domain/Entities/Customer/Crm_CustomerCert.cs
  15. 36 0
      OASystem/OASystem.Domain/Entities/Customer/Crm_CustomerCompany.cs
  16. 36 0
      OASystem/OASystem.Domain/Entities/Customer/Crm_CustomerFile.cs
  17. 458 0
      OASystem/OASystem.Domain/Entities/Customer/Crm_DeleClient.cs
  18. 61 0
      OASystem/OASystem.Domain/Entities/Customer/Crm_VisaCustomerCompany.cs
  19. 87 0
      OASystem/OASystem.Domain/Entities/Customer/Crm_VisaCustomerFamily.cs
  20. 51 0
      OASystem/OASystem.Domain/Entities/Customer/Crm_VisaCustomerSchool.cs
  21. 1 1
      OASystem/OASystem.Domain/Entities/EntityBase.cs
  22. 91 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_AirInquiry.cs
  23. 81 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_AirPrice.cs
  24. 201 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_CreditCardPayment.cs
  25. 66 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_DeleClientNeeds.cs
  26. 41 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_DeleFile.cs
  27. 61 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_DeleMeetingNeeds.cs
  28. 216 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_DelegationInfo.cs
  29. 26 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_DelegationJoinCustomer.cs
  30. 202 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_HotelReservations.cs
  31. 91 0
      OASystem/OASystem.Domain/Entities/Groups/Grp_VisaProgress.cs
  32. 31 0
      OASystem/OASystem.Domain/Entities/Resource/Res_AirCompany.cs
  33. 31 0
      OASystem/OASystem.Domain/Entities/Resource/Res_AirTicketAgent.cs
  34. 77 0
      OASystem/OASystem.Domain/Entities/Resource/Res_CarGuides.cs
  35. 62 0
      OASystem/OASystem.Domain/Entities/Resource/Res_CarInfo.cs
  36. 62 0
      OASystem/OASystem.Domain/Entities/Resource/Res_GuidesInfo.cs
  37. 61 0
      OASystem/OASystem.Domain/Entities/Resource/Res_HotelData.cs
  38. 61 0
      OASystem/OASystem.Domain/Entities/Resource/Res_ScenicSpotInfo.cs
  39. 46 0
      OASystem/OASystem.Domain/Entities/Resource/Res_ThreeCode.cs
  40. 1 1
      OASystem/OASystem.Domain/Result.cs
  41. 17 0
      OASystem/OASystem.Domain/ViewModels/CompanyView.cs
  42. 2 2
      OASystem/OASystem.Domain/ViewModels/JsonView.cs
  43. 14 0
      OASystem/OASystem.Domain/ViewModels/System/DepartmentView.cs
  44. 0 16
      OASystem/OASystem.Domain/ViewModels/System/Sys_DepartmentView.cs
  45. 137 0
      OASystem/OASystem.Domain/ViewModels/System/UserInfoView.cs
  46. 83 0
      OASystem/OASystem.Infrastructure/Repositories/Login/LoginRepository.cs
  47. 18 0
      OASystem/OASystem.Infrastructure/Repositories/System/CompanyRepository.cs
  48. 2 2
      OASystem/OASystem.Infrastructure/Repositories/System/Sys_DepartmentRepository.cs
  49. 68 0
      OASystem/OASystem.Infrastructure/Repositories/System/UsersRepository.cs
  50. 2 6
      OASystem/OASystem.Infrastructure/Tools/RedisHelper.cs
  51. 314 279
      OASystem/_Doc/OA2023数据字典.docx

+ 33 - 3
OASystem/EntitySync/Program.cs

@@ -1,4 +1,7 @@
 using OASystem.Domain.Entities;
+using OASystem.Domain.Entities.Customer;
+using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.Entities.Resource;
 using OASystem.Domain.Entities.System;
 using SqlSugar;
 
@@ -37,8 +40,35 @@ else
 db.DbMaintenance.CreateDatabase();
 db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
 {
-   typeof(Sys_PageFunctionPermission)
-   ,typeof(Sys_SystemMenuAndFunction)
-   ,typeof(Sys_SystemMenuPermission)
+    //typeof(Sys_PageFunctionPermission)
+    //,typeof(Sys_SystemMenuAndFunction)
+    //,typeof(Sys_SystemMenuPermission)
+    //,typeof(Sys_JobPostAuthority)
+    //,typeof(Sys_UserAuthority)
+    //typeof(Crm_CustomerCert),
+    //typeof(Crm_CustomerCompany),
+    //typeof(Crm_CustomerFile),
+    //typeof(Crm_DeleClient)
+    //typeof(Crm_VisaCustomerCompany),
+    //typeof(Crm_VisaCustomerFamily),
+    //typeof(Crm_VisaCustomerSchool)
+    //typeof(Grp_AirInquiry),
+    //typeof(Grp_AirPrice),
+    //typeof(Grp_CreditCardPayment),
+    //typeof(Grp_DeleFile),
+    //typeof(Grp_DelegationInfo),
+    //typeof(Grp_DelegationJoinCustomer),
+    //typeof(Grp_DeleMeetingNeeds),
+    //typeof(Grp_HotelReservations),
+    //typeof(Grp_VisaProgress),
+    //typeof(Grp_DeleClientNeeds),
+    //typeof(Res_AirCompany),
+    //typeof(Res_AirTicketAgent),
+    //typeof(Res_HotelData),
+    //typeof(Res_ThreeCode)
+    //typeof(Res_ScenicSpotInfo),
+    //typeof(Res_CarGuides),
+    //typeof(Res_CarInfo),
+    //typeof(Res_GuidesInfo)
 });
 Console.WriteLine("数据库结构同步完成!");

+ 76 - 17
OASystem/OASystem.Api/Controllers/AuthController.cs

@@ -4,20 +4,24 @@ using OASystem.Infrastructure.Repositories.Login;
 using System.IdentityModel.Tokens.Jwt;
 using System.Security.Claims;
 using StackExchange.Redis;
+using OASystem.Domain.Dtos.UserDto;
+using OASystem.Domain.Entities.System;
+using OASystem.Domain;
 
 namespace OASystem.API.Controllers
 {
     /// <summary>
     /// 鉴权相关
     /// </summary>
+    [Route("api/")]
     public class AuthController : ControllerBase
     {
+        private readonly IMapper _mapper;
         private readonly IConfiguration _config;
         private readonly LoginRepository _loginRep;
-        private readonly IMapper _mapper;
-        private IDatabase _redis;
-        private RedisHelper _redisHelper;
-        public AuthController(IConfiguration config, LoginRepository loginRep, IMapper mapper, RedisHelper client)
+        //private IDatabase _redis;
+        //private RedisHelper _redisHelper;
+        public AuthController(IConfiguration config, LoginRepository loginRep, IMapper mapper)
         {
             _config = config;
             _loginRep = loginRep;
@@ -32,25 +36,39 @@ namespace OASystem.API.Controllers
         /// <param name="dto"></param>
         /// <returns></returns>
         [AllowAnonymous]
-        [HttpPost("login")]
+        [Route("login")]
+        [HttpPost]
         [ProducesResponseType(typeof(LoginView), StatusCodes.Status200OK)]
         public async Task<IActionResult> LoginAsync(LoginDto dto)
         {
             #region 校验用户信息,假设此处我们已经校验成功
-            var userData = OAMethodLib.LoginLib.Api_Login(_loginRep,dto);
+            var userData = _loginRep.Login(_loginRep, dto);
             if (userData.Result.Code != 0)
             {
-                if (userData.Result.Code != 0) { return Ok(JsonView(false, userData.Result.Message)); }
+                if (userData.Result.Code != 0) { return Ok(JsonView(false, userData.Result.Msg)); }
+
+                return Ok(JsonView(false, "暂无该员工信息!"));
+            }
+
+            //人事审核是否通过
+            if (userData.Result.Data.HrAudit != 1)
+            {
+                return Ok(JsonView(false, "该员工账号暂无登录权限,人事审核未通过!"));
+            }
 
-                return Ok(JsonView(false,"暂无该员工信息!"));
+            //该用户是否已删除
+            if (userData.Result.Data.HrAudit != 1)
+            {
+                return Ok(JsonView(false, "已离职员工没有登录权限"));
             }
 
+
             #endregion
             var view = new LoginView
             {
                 Expires = DateTime.Now.AddMinutes(30)
             };
-           
+
             string authorId = dto.Number + "Token";
 
             var claims = new[] { new Claim(ClaimTypes.NameIdentifier, "Future") };
@@ -64,17 +82,58 @@ namespace OASystem.API.Controllers
                 signingCredentials: creds);
             view.Token = new JwtSecurityTokenHandler().WriteToken(token);
 
+            return Ok(JsonView(view));
+        }
 
-            // 往Redis里面存入数据
-            _redis.StringSet(authorId, view.Token);
-
+        /// <summary>
+        /// 申请注册
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [Authorize]
+        [HttpPost]
+        [Route("register")]
+        public async Task<IActionResult> Register(RegisterDto dto)
+        {
+            var userData = _loginRep.Register(_loginRep, dto);
+            if (userData.Result.Code != 0)
+            {
+                if (userData.Result.Code != 0) { return Ok(JsonView(false, userData.Result.Msg)); }
 
-            // 从Redis里面取数据
-            string name = _redis.StringGet(authorId);
+                return Ok(JsonView(false, "注册失败!"));
+            }
 
-            return Ok(JsonView(view));
+            return Ok(new { Code = 0, Msg = userData.Result.Msg });
         }
 
+        /// <summary>
+        /// 修改密码
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [Authorize]
+        [HttpPost]
+        [Route("UpdPassword")]
+        public async Task<IActionResult> UpdateUserPassword(UpdateDto dto)
+        {
+            Result result = new Result();
+
+            Sys_Users sys_Users = _mapper.Map<Sys_Users>(dto);
+            var _UpdateState = await _loginRep.UpdateAsync(s => s.Id == dto.UserId, ss => sys_Users);
+            if (_UpdateState)
+            {
+                result.Code = 0;
+                result.Msg = "申请成功!人事主管审核后且信息部经理分配了登录账号,可登录OA!";
+            }
+            else
+            {
+                result.Code = -2;
+                result.Msg = "用户修改失败!";
+            }
+
+
+            return Ok(JsonView(result));
+        }
 
         /// <summary>
         /// 测试auth
@@ -88,8 +147,8 @@ namespace OASystem.API.Controllers
         {
             string authorId = dto.Number + "Token";
             // 从Redis里面取数据
-            string userToken = _redis.StringGet(authorId);
-
+            //string userToken = _redis.StringGet(authorId);
+            string userToken = "";
             var view = new LoginView
             {
                 Token = authorId + ":" + userToken

+ 119 - 14
OASystem/OASystem.Api/Controllers/SystemController.cs

@@ -1,8 +1,9 @@
 
 using MySqlX.XDevAPI.Common;
-using OASystem.Domain.Dtos;
+using OASystem.Domain.Dtos.System;
 using OASystem.Domain.Entities.System;
 using OASystem.Domain.ViewModels.System;
+using OASystem.Infrastructure.Repositories.Login;
 using OASystem.Infrastructure.Repositories.System;
 
 namespace OASystem.API.Controllers
@@ -10,34 +11,138 @@ namespace OASystem.API.Controllers
     /// <summary>
     /// 系统设置
     /// </summary>
-    [Route("[controller]/[action]")]
+    [Authorize]
+    [Route("api/[controller]/[action]")]
     public class SystemController : ControllerBase
     {
-        readonly Sys_DepartmentRepository _sysDepRep;
-        readonly IMapper _mapper;
+        private readonly CompanyRepository _syscomRep;
+        private readonly DepartmentRepository _sysDepRep;
+        private readonly UsersRepository _userRep;
+        private readonly IMapper _mapper;
 
-        public SystemController(Sys_DepartmentRepository sysDepRep, IMapper mapper)
+        public SystemController( CompanyRepository syscom,DepartmentRepository sysDepRep, UsersRepository userRep,
+            IMapper mapper)
         {
+            _syscomRep = syscom;
             _sysDepRep = sysDepRep;
+            _userRep = userRep;
             _mapper = mapper;
         }
 
+        #region user 操作
+
+       
+        [HttpGet]
+        [ProducesResponseType(typeof(LoginView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GetUserList()
+        {
+           var userList = _userRep.GetUserList(_userRep);
+            
+            if (userList.Result.Code != 0)
+            {
+                return Ok(JsonView(false, userList.Result.Msg));
+            }
+            
+            return Ok(JsonView(userList.Result.Data));
+        }
+
+        #endregion
+
+        #region 企业操作
+        [HttpGet]
+        [ProducesResponseType(typeof(LoginView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> getCompanyList()
+        {
+            try
+            {
+                //var companyList = _sysDepRep.QueryDto<Sys_Company, CompanyView>(c=>c.IsDel!=null).ToList();
+                string sqlWhere = "select * from Sys_Company";
+                var companyList = _syscomRep.GetListBySqlWithNolock(sqlWhere);
+                List<CompanyView> DataList = _mapper.Map<List<CompanyView>>(companyList);
+                if (DataList.Count == 0)
+                {
+                    return Ok(JsonView(false, "暂无数据!"));
+                }
+                return Ok(JsonView(DataList));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        #endregion
+
+        #region 部门操作
+
+       
         //[Authorize]
         [HttpPost]
         [ProducesResponseType(typeof(LoginView), StatusCodes.Status200OK)]
-        public async Task<IActionResult> fnQueryDepartment(Sys_DepartmentDto dto)
+        public async Task<IActionResult> QueryDepartmentList(DepartmentDto dto)
         {
-            _sysDepRep.BeginTran();
-            var result = _sysDepRep.QueryDto<Sys_Department,Sys_DepartmentView>(s => s.CompanyId == dto.CompanyId).ToList();
-            foreach (var item in result)
+            try
+            {
+                var result = _sysDepRep.QueryDto<Sys_Department, DepartmentView>(s => s.CompanyId == dto.CompanyId).ToList();
+                if (result.Count==0)
+                {
+                    return Ok(JsonView(false, "暂无数据!"));
+                }
+                return Ok(JsonView(result));
+            }
+            catch (Exception ex)
             {
-                item.a = "123";
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+         
+            //return Ok(JsonView(0, "调用完成:", result));
+        }
+        #endregion
+
+        #region 用户操作
+        [HttpPost]
+        [ProducesResponseType(typeof(LoginView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> QueryUserList(UserDto dto)
+        {
+            try
+            {
+                string sqlWhere = string.Empty;
+                if (dto.CompanyId!=0)
+                {
+                    sqlWhere += string.Format(@" And su.CompanyId={0}", dto.CompanyId);
+                }
+                if (dto.DepId != 0)
+                {
+                    sqlWhere += string.Format(@" And su.DepId={0}", dto.DepId);
+                }
+                string userSqlWhere = string.Format(@"Select sjp.JobName,sd.DepName,sc.CompanyName,su.* From Sys_Users su 
+                                                  Inner Join Sys_Company sc On su.CompanyId = sc.Id
+                                                  Inner Join Sys_Department sd On su.DepId = sd.Id
+                                                  Inner Join Sys_JobPost sjp On su.JobPostId = sjp.Id where 1=1 {0}",sqlWhere);
+                var _userList = _userRep.GetListBySqlWithNolock(userSqlWhere);
+                List<UserInfoListView> _userDataList = _mapper.Map<List<UserInfoListView>>(_userList);//这一步,映射不上JobName,DepName,CompanyName,
+
+                if (_userDataList.Count==0)
+                {
+                    return Ok(JsonView(false, "暂无数据!"));
+                }
+                for (int i = 0; i < _userDataList.Count; i++)
+                {
+                    _userDataList[i].CompanyName = _userList[i].CompanyName;
+                    _userDataList[i].DepName = _userList[i].DepName;
+                    _userDataList[i].JobName = _userList[i].JobName;
+                }
+                return Ok(JsonView(_userDataList));
+            }
+            catch (Exception)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
             }
-            //string sql = "select * from Sys_Department where CompanyId='2'";
-            //var result2 = _sysDepRep.GetListBySqlWithNolock(sql);
-            //List<Sys_DepartmentView> dep = _mapper.Map<List<Sys_DepartmentView>>(result2);
            
-            return Ok(JsonView(0, "调用完成:", result));
         }
+        #endregion
+
     }
 }

+ 0 - 30
OASystem/OASystem.Api/OAMethodLib/LoginLib.cs

@@ -1,30 +0,0 @@
-using AutoMapper;
-using OASystem.Domain;
-using OASystem.Domain.Dtos;
-using OASystem.Infrastructure.Repositories.Login;
-
-namespace OASystem.API.OAMethodLib
-{
-    public static class LoginLib
-    {
-        public static async Task<Result> Api_Login(LoginRepository _loginRep,LoginDto loginDto)
-        {
-            Result result = new Result();
-            string SQLWhere = string.Format("Where Number='{0}' And Password='{1}'", loginDto.Number,loginDto.Password);
-            string sql = string.Format("Select * From S_Users With(NoLock) {0}", SQLWhere);
-            var _entity = await _loginRep.GetSingleInfoBySqlWithNolockAsync(sql);
-            if (_entity == null) 
-            {
-                result.Code = -2;
-                result.Message = "暂无该账号信息!";
-
-                return result;
-            }
-            result.Code = 0;
-            result.Message = "成功!";
-            result.Data = _entity;
-            return result;
-
-        }
-    }
-}

+ 4 - 11
OASystem/OASystem.Api/OASystem.API.csproj

@@ -8,9 +8,13 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <Compile Remove="Include\**" />
     <Compile Remove="Logs\**" />
+    <Content Remove="Include\**" />
     <Content Remove="Logs\**" />
+    <EmbeddedResource Remove="Include\**" />
     <EmbeddedResource Remove="Logs\**" />
+    <None Remove="Include\**" />
     <None Remove="Logs\**" />
   </ItemGroup>
 
@@ -32,17 +36,6 @@
   <ItemGroup>
     <ProjectReference Include="..\OASystem.Domain\OASystem.Domain.csproj" />
     <ProjectReference Include="..\OASystem.Infrastructure\OASystem.Infrastructure.csproj" />
-    <ProjectReference Include="..\OASystem.RedisRepository\OASystem.RedisRepository.csproj" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <Folder Include="Include\" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <Content Update="appsettings.json">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Content>
   </ItemGroup>
 
   <ProjectExtensions><VisualStudio><UserProperties properties_4launchsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>

+ 28 - 29
OASystem/OASystem.Api/Program.cs

@@ -1,12 +1,10 @@
-
+
 using StackExchange.Redis;
 using Autofac.Core;
-using System.Configuration;
-using static Org.BouncyCastle.Math.EC.ECCurve;
 
 var builder = WebApplication.CreateBuilder(args);
 var basePath = AppContext.BaseDirectory;
-//寮曞叆閰嶇疆鏂囦欢
+//引入配置文件
 var _config = new ConfigurationBuilder()
                  .SetBasePath(basePath)
                  .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
@@ -15,30 +13,31 @@ builder.Services.AddSingleton(new AppSettingsHelper(_config));
 
 // Add services to the container.
 builder.Services.AddControllersWithViews();
+
 #region redis
 
-//redis缂撳瓨
-//var section = builder.Configuration.GetSection("Redis:Default");
-////连接字符串
-//string _connectionString = section.GetSection("Connection").Value;
-////瀹炰緥鍚嶇О
-//string _instanceName = section.GetSection("InstanceName").Value;
-////默认数据库 
-//int _defaultDB = int.Parse(section.GetSection("DefaultDB").Value ?? "0");
-//builder.Services.AddSingleton(new RedisHelper1(_connectionString+",password=123456", _instanceName, _defaultDB));
+//redis缓存
+var section = builder.Configuration.GetSection("Redis:Default");
+//连接字符串
+string _connectionString = section.GetSection("Connection").Value;
+//实例名称
+string _instanceName = section.GetSection("InstanceName").Value;
+//默认数据库 
+int _defaultDB = int.Parse(section.GetSection("DefaultDB").Value ?? "0");
+builder.Services.AddSingleton(new RedisHelper(_connectionString+",password=123456", _instanceName, _defaultDB));
 
 #endregion
 
 
-#region 鎺ュ彛鍒嗙粍
+#region 接口分组
 var groups = new List<Tuple<string, string>>
 {
-    //new Tuple<string, string>("Group1","鍒嗙粍涓€"),
-    //new Tuple<string, string>("Group2","分组二")
+    //new Tuple<string, string>("Group1","分组一"),
+    //new Tuple<string, string>("Group2","分组二")
 };
 #endregion
 
-#region 注入数据库
+#region 注入数据库
 builder.Services.AddScoped(options =>
 {
     return new SqlSugarClient(new List<ConnectionConfig>()
@@ -51,7 +50,7 @@ builder.Services.AddScoped(options =>
 });
 #endregion
 
-#region 娉ㄥ叆Swagger娉ㄩ噴(鍚�敤)
+#region 注入Swagger注释(启用)
 
 if (AppSettingsHelper.Get("UseSwagger").ToBool())
 {
@@ -61,11 +60,11 @@ if (AppSettingsHelper.Get("UseSwagger").ToBool())
         {
             Version = "v1",
             Title = "Api",
-            Description = "Api鎺ュ彛鏂囨。"
+            Description = "Api接口文档"
         });
         foreach (var item in groups)
         {
-            a.SwaggerDoc(item.Item1, new OpenApiInfo { Version = item.Item1, Title = item.Item2, Description = $"{item.Item2}鎺ュ彛鏂囨。" });
+            a.SwaggerDoc(item.Item1, new OpenApiInfo { Version = item.Item1, Title = item.Item2, Description = $"{item.Item2}接口文档" });
         }
         a.DocumentFilter<SwaggerApi>();
         a.IncludeXmlComments(Path.Combine(basePath, "OASystem.Api.xml"), true);
@@ -93,7 +92,7 @@ if (AppSettingsHelper.Get("UseSwagger").ToBool())
 }
 #endregion
 
-#region 娣诲姞swagger娉ㄩ噴
+#region 添加swagger注释
 //if (AppSettingsHelper.Get("UseSwagger").ToBool())
 //{
 //    builder.Services.AddSwaggerGen(c =>
@@ -101,8 +100,8 @@ if (AppSettingsHelper.Get("UseSwagger").ToBool())
 //        c.SwaggerDoc("v1", new OpenApiInfo
 //        {
 //            Version = "v1",
-//            Title = "鏂囧崕鍟嗘梾鏀�粯娴嬭瘯鎺ュ彛",
-//            Description = "璇峰厛浠嶢uth閴存潈=>login鑾峰彇token杩涜�璁よ瘉,杈撳叆:token杩涜�璁よ瘉(Bearer)"
+//            Title = "文华商旅支付测试接口",
+//            Description = "请先从Auth鉴权=>login获取token进行认证,输入:token进行认证(Bearer)"
 //        });
 //        c.DocumentFilter<SwaggerApi>();
 //        var xmlPath = Path.Combine(basePath, "OASystem.API.xml");
@@ -134,7 +133,7 @@ if (AppSettingsHelper.Get("UseSwagger").ToBool())
 //}
 #endregion
 
-#region 娣诲姞鏍¢獙
+#region 添加校验
 builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
 {
     options.TokenValidationParameters = new TokenValidationParameters
@@ -150,14 +149,14 @@ builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJw
 });
 #endregion
 
-#region 初始化日志
+#region 初始化日志
 Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Debug()
        .WriteTo.File(Path.Combine("Logs", @"Log.txt"), rollingInterval: RollingInterval.Day)
        .CreateLogger();
 #endregion
 
-#region 引入注册Autofac OASystem.Infrastructure中所有以Repository结尾的文件都会被注入到项目
+#region 引入注册Autofac OASystem.Infrastructure中所有以Repository结尾的文件都会被注入到项目
 builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
 var hostBuilder = builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
 {
@@ -175,11 +174,11 @@ var hostBuilder = builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
 
 #region AutoMapper
 
-AutoMapper.IConfigurationProvider mapperConfig = new MapperConfiguration(cfg =>
+AutoMapper.IConfigurationProvider config = new MapperConfiguration(cfg =>
 {
     cfg.AddProfile<_baseMappingProfile>();
 });
-builder.Services.AddSingleton(mapperConfig);
+builder.Services.AddSingleton(config);
 builder.Services.AddScoped<IMapper, Mapper>();
 
 #endregion
@@ -198,7 +197,7 @@ app.UseAuthentication();
 app.UseAuthorization();
 
 
-#region 鍚�敤swaggerUI
+#region 启用swaggerUI
 if (AppSettingsHelper.Get("UseSwagger").ToBool())
 {
     app.UseSwagger();

+ 13 - 6
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -1,4 +1,5 @@
-using OASystem.Domain.Dtos;
+using OASystem.Domain.Dtos.System;
+using OASystem.Domain.Dtos.UserDto;
 using OASystem.Domain.Entities;
 using OASystem.Domain.Entities.System;
 using OASystem.Domain.ViewModels;
@@ -15,15 +16,21 @@ namespace OASystem.Domain.AutoMappers
             CreateMap<LoginDto, Sys_Users>();
             #endregion
 
-            #region 系统设置
+            #region 公司板块
+            CreateMap<Sys_Company, CompanyView>();
+            #endregion
 
-           
-            #region 部门
-            CreateMap<Sys_DepartmentDto, Sys_Department>();
-            CreateMap<Sys_Department, Sys_DepartmentView>();
+            #region 部门板块
+            CreateMap<DepartmentDto, Sys_Department>();
+            CreateMap<Sys_Department, DepartmentView>();
             #endregion
 
+            #region 用户板块
+            CreateMap<UserDto, Sys_Users>();
+            CreateMap<Sys_Users, UserInfoView>();
+            CreateMap<Sys_Users,UserInfoListView>();
             #endregion
+
         }
     }
 }

+ 0 - 20
OASystem/OASystem.Domain/Dtos/LoginDto.cs

@@ -1,20 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-
-namespace OASystem.Domain.Dtos;
-
-/// <summary>
-/// 申请登录
-/// </summary>
-public class LoginDto
-{
-    /// <summary>
-    /// 登录账号
-    /// </summary>
-    [Required(ErrorMessage = "账号不能为空!")]
-    public string Number { get; set; }
-    /// <summary>
-    /// 密码
-    /// </summary>
-    [Required(ErrorMessage = "密码不能为空!")]
-    public string Password { get; set; }
-}

+ 2 - 2
OASystem/OASystem.Domain/Dtos/Sys_DepartmentDto.cs

@@ -5,9 +5,9 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace OASystem.Domain.Dtos
+namespace OASystem.Domain.Dtos.System
 {
-    public class Sys_DepartmentDto
+    public class DepartmentDto
     {
         /// <summary>
         /// 公司Id

+ 23 - 0
OASystem/OASystem.Domain/Dtos/System/UserDto.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.System
+{
+    /// <summary>
+    /// 员工表查询dto
+    /// </summary>
+    public class UserDto
+    {
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+        /// <summary>
+        /// 部门Id
+        /// </summary>
+        public int DepId { get;set; }
+    }
+}

+ 19 - 0
OASystem/OASystem.Domain/Dtos/UserDto/LoginDto.cs

@@ -0,0 +1,19 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace OASystem.Domain.Dtos.UserDto;
+
+/// <summary>
+/// 用户登录
+/// 提交DTO
+/// </summary>
+public class LoginDto
+{
+    /// <summary>
+    /// 登录账号
+    /// </summary>
+    public string? Number { get; set; }
+    /// <summary>
+    /// 密码
+    /// </summary>
+    public string? Password { get; set; }
+}

+ 125 - 0
OASystem/OASystem.Domain/Dtos/UserDto/RegisterDto.cs

@@ -0,0 +1,125 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.UserDto
+{
+    /// <summary>
+    /// 注册用户 
+    /// 提交DTO
+    /// </summary>
+    public class RegisterDto
+    {
+        /// <summary>
+        /// 申请注册UserId
+        /// </summary>
+        public int CreateUserId { get; set; }
+
+        /// <summary>
+        /// 中文名
+        /// </summary>
+        public string? CnName { get; set; }
+
+        /// <summary>
+        /// 英文名称
+        /// </summary>
+        public string? EnName { get; set; }
+
+        /// <summary>
+        /// 邮箱
+        /// </summary>
+        public string? Email { get; set; }
+
+        /// <summary>
+        /// 性别
+        /// 0 男 1 女
+        /// </summary>
+        public int Sex { get; set; }
+
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        public string? Phone { get; set; }
+
+        /// <summary>
+        /// 紧急联系人手机号
+        /// </summary>
+        public string? UrgencyPhone { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public int Password { get; set; }
+
+        /// <summary>
+        /// 现在居住住址
+        /// </summary>
+        public string Address { get; set; }
+
+        /// <summary>
+        /// 身份证号
+        /// </summary>
+        public string? IdCrad { get; set; }
+
+        /// <summary>
+        /// 出生日期
+        /// </summary>
+        public DateTime BirthDay { get; set; }
+
+        /// <summary>
+        /// 学历
+        /// 0 未设置 1 大专 2 本科 3 研究生
+        /// </summary>
+        public int Education { get; set; }
+
+        /// <summary>
+        /// 专业
+        /// 英语/数学 等等
+        /// </summary>
+        public string? Major { get; set; }
+
+        /// <summary>
+        /// 毕业学校
+        /// </summary>
+        public string? GraduationSchhol { get; set; }
+
+        /// <summary>
+        /// 教育类型
+        /// 统招/成教
+        /// </summary>
+        public int EducationType { get; set; }
+
+        /// <summary>
+        /// 婚姻状态
+        /// 已婚/未婚
+        /// </summary>
+        public string? MaritalStatus{ get; set; }
+
+        /// <summary>
+        /// 家庭地址
+        /// </summary>
+        public string? HomeAddress { get; set; }
+
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+
+        /// <summary>
+        /// 部门Id
+        /// </summary>
+        public int DepId { get; set; }
+
+        /// <summary>
+        /// 岗位Id
+        /// </summary>
+        public int JobPostId { get; set; }
+
+        /// <summary>
+        /// 工作经历
+        /// </summary>
+        public string? WorkExperience { get; set; }
+    }
+}

+ 24 - 0
OASystem/OASystem.Domain/Dtos/UserDto/UpdateDto.cs

@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.UserDto
+{
+    /// <summary>
+    /// 用户修改密码
+    /// </summary>
+    public class UpdateDto
+    {
+        /// <summary>
+        /// 用户Id
+        /// </summary>
+        public int UserId { get; set; }
+
+        /// <summary>
+        /// 修改后的密码
+        /// </summary>
+        public string Password { get; set; }
+    }
+}

+ 58 - 0
OASystem/OASystem.Domain/Entities/Customer/Crm_CustomerCert.cs

@@ -0,0 +1,58 @@
+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_CustomerCert")]
+    public class Crm_CustomerCert:EntityBase
+
+    {
+        /// <summary>
+        /// 客户信息表Id
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int DcId { get; set; }
+        /// <summary>
+        /// 证件类型表Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public string SdId { get; set; }
+        /// <summary>
+        /// 证件号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(30)")]
+        public string CertNo { get; set; }
+        /// <summary>
+        /// 签发国
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Country { get; set; }
+        /// <summary>
+        /// 目的地国家
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string TargetCountry { get; set; }
+        /// <summary>
+        /// 签发地区
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Area { get; set; }
+        /// <summary>
+        /// 有效期起始时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime IssueDt { get; set; }
+        /// <summary>
+        /// 有效期截止时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public string ExpiryDt { get; set; }
+    }
+
+}

+ 36 - 0
OASystem/OASystem.Domain/Entities/Customer/Crm_CustomerCompany.cs

@@ -0,0 +1,36 @@
+
+namespace OASystem.Domain.Entities.Customer
+{
+    /// <summary>
+    /// 客户公司表
+    /// </summary>
+    [SugarTable("Crm_CustomerCompany")]
+    public class Crm_CustomerCompany:EntityBase
+    {
+        /// <summary>
+        /// 客户公司名称
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType = "varchar(80)")]
+        public string CompanyName { get; set; }
+        /// <summary>
+        /// 公司地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
+        public string Address { get; set; }
+        /// <summary>
+        /// 邮政编码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(80)")]
+        public string PostCodes { get; set; }
+        /// <summary>
+        /// 最后操作人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int LastedOpUserId { get; set; }
+        /// <summary>
+        /// 客户公司名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime LastedOpDt { get; set; }
+    }
+}

+ 36 - 0
OASystem/OASystem.Domain/Entities/Customer/Crm_CustomerFile.cs

@@ -0,0 +1,36 @@
+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_CustomerFile")]
+    public class Crm_CustomerFile:EntityBase
+    {
+        /// <summary>
+        /// 客户Id
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int DcId { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="varchar(80)")]
+        public string Publisher { get; set; }
+        /// <summary>
+        /// 文件名
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="varchar(300)")]
+        public string FileName { get; set; }
+        /// <summary>
+        /// 所属环节
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int FileBusiType { get; set; }
+    }
+}

+ 458 - 0
OASystem/OASystem.Domain/Entities/Customer/Crm_DeleClient.cs

@@ -0,0 +1,458 @@
+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_DeleClient")]
+    public class Crm_DeleClient:EntityBase
+    {
+        /// <summary>
+        /// 客户公司表Id
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int CompanyId { get; set; }
+        /// <summary>
+        /// 机票喜好舱位
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType = "varchar(300)")]
+        public string AirType { get; set; }
+        /// <summary>
+        /// 是否靠窗
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int SeatPref { get; set; }
+        /// <summary>
+        /// 机票备注
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string AirRemark { get; set; }
+        /// <summary>
+        /// 酒店喜好房型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string RoomType { get; set; }
+        /// <summary>
+        /// 酒店需求
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string RoomPref { get; set; }
+        /// <summary>
+        /// 中文姓名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string LastName { 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 OldName { get; set; }
+        /// <summary>
+        /// 名字拼音
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Pinyin { get; set; }
+        /// <summary>
+        /// 性别 0男1女
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Sex { get; set; }
+        /// <summary>
+        /// 婚姻状况 0、1、2 (已婚、未婚、离异等)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Marriage { get; set; }
+        /// <summary>
+        /// 客户手机号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Phone { get; set; }
+        /// <summary>
+        /// 出生省份
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string BirthProvince { get; set; }
+        /// <summary>
+        /// 出生城市
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string BirthCity { get; set; }
+        /// <summary>
+        /// 出生日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public string BirthDay { get; set; }
+        /// <summary>
+        /// 客户联系方式
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Tel { get; set; }
+        /// <summary>
+        /// 客户电子邮件
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Email { get; set; }
+        /// <summary>
+        /// 住址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string Address { get; set; }
+        /// <summary>
+        /// 最高学历
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string HighestEducation { get; set; }
+        /// <summary>
+        /// 邮编
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string PostCodes { get; set; }
+        /// <summary>
+        /// 职位
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Job { get; set; }
+        /// <summary>
+        /// 本人工作内容
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string WorkState { get; set; }
+        /// <summary>
+        /// 入职时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "Datetime")]
+        public string WorkDate { get; set; }
+        /// <summary>
+        /// 薪资
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Wage { get; set; }
+        /// <summary>
+        /// (单位/部门)电话
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string ClientPhone { get; set; }
+        /// <summary>
+        /// (单位/部门)传真
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ClientFax { get; set; }
+        /// <summary>
+        /// (单位/部门)邮箱
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ClientEmail { get; set; }
+        /// <summary>
+        /// (单位/部门)负责人姓名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string ClientLeader { get; set; }
+        /// <summary>
+        /// (单位/部门)负责人职务
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string ClientLeaderJob { get; set; }
+        /// <summary>
+        /// 是否有获批的申根签证 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsGetSchengen { get; set; }
+        /// <summary>
+        /// 申根有效期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime StartTime { get; set; }
+        /// <summary>
+        /// 申根有效期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "Datetime")]
+        public DateTime EndTime { get; set; }
+        /// <summary>
+        /// 申根是否在使馆有指纹记录 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int IsFinger { get; set; }
+        /// <summary>
+        /// 申根指纹录入时间
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="DateTime")]
+        public DateTime FingerDate { get; set; }
+        /// <summary>
+        /// 是否因公去过美国/加拿大
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsVisitUC { get; set; }
+        /// <summary>
+        /// 美国抵达日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime USADate { get; set; }
+        /// <summary>
+        /// 美国停留天数
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int USADays { get; set; }
+        /// <summary>
+        /// 加拿大抵达日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime CanDate { get; set; }
+        /// <summary>
+        /// 加拿大停留天数
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int CanDays { get; set; }
+        /// <summary>
+        /// 是否曾获得过因公美国签证 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsUSAVia { get; set; }
+        /// <summary>
+        /// 因公美国签证最近获得时间
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="DateTime")]
+        public DateTime GetUSAVisaDate { get; set; }
+        /// <summary>
+        /// 因公美国签证地点
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType = "varchar(50)")]
+        public string GetUPPlace { get; set; }
+        /// <summary>
+        /// 因公美国签证种类
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string USAVisaCate { get; set; }
+        /// <summary>
+        /// 因公美国签证编码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string USAVisaCode { get; set; }
+        /// <summary>
+        /// 是否在使馆留过十指的指纹 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int USAFinger { get; set; }
+        /// <summary>
+        /// 是否曾经被拒签 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsRejected { get; set; }
+        /// <summary>
+        /// 被拒时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime RejectedDate { get; set; }
+        /// <summary>
+        /// 被拒地点
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RejectedPlace { get; set; }
+        /// <summary>
+        /// 被拒签证种类
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RejectedVisa { get; set; }
+        /// <summary>
+        /// 美国签证是否被吊销过 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsRevoke { get; set; }
+        /// <summary>
+        /// 护照是否曾经丢失 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsLose { get; set; }
+        /// <summary>
+        /// 丢失护照时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime LoseDate { get; set; }
+        /// <summary>
+        /// 丢失护照编号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string LoseCode { get; set; }
+        /// <summary>
+        /// 丢失的护照是否有美国签证 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsUSAVisa { get; set; }
+        /// <summary>
+        /// 夫/妻是否已在美国 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int MateUSA { get; set; }
+        /// <summary>
+        /// 夫/妻身份
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string MateIden { get; set; }
+        /// <summary>
+        /// 未婚夫/妻是否已在美国 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int WHUSA { get; set; }
+        /// <summary>
+        /// 未婚夫/妻身份
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="varchar(50)")]
+        public string WHIden { get; set; }
+        /// <summary>
+        /// 父/母是否已在美国 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int ParentUSA { get; set; }
+        /// <summary>
+        /// 父/母身份
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ParentIden { get; set; }
+        /// <summary>
+        /// 子/女是否已在美国 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public string ChildUSA { get; set; }
+        /// <summary>
+        /// 子/女身份
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ChildIden { get; set; }
+        /// <summary>
+        /// 兄弟/姐妹是否已在美国 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public string BroUSA { get; set; }
+        /// <summary>
+        /// 兄弟/姐妹身份
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string BroIden { get; set; }
+        /// <summary>
+        /// 所属/捐助/工作过的职业协会、社会团体和慈善机构
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string Social { get; set; }
+        /// <summary> 
+        /// 是否参军  0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public string IsArmy { get; set; }
+        /// <summary>
+        /// 参军详情
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string ArmyState { get; set; }
+        /// <summary>
+        /// 在外期间费用承担人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string CostBearers { get; set; }
+        /// <summary>
+        /// 填表经办人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string TableOpName { get; set; }
+        /// <summary>
+        /// 填表经办人联系电话
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string TableOpTel { get; set; }
+        /// <summary>
+        /// 填表日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime TableDate { get; set; }
+        /// <summary>
+        /// 所属党派或宗教
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Party { get; set; }
+        /// <summary>
+        /// 家庭成员国籍
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Nationality { get; set; }
+        /// <summary>
+        /// 结婚日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime WeddingDate { get; set; }
+        /// <summary>
+        /// 离婚日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime DivorceDate { get; set; }
+        /// <summary>
+        /// 配偶姓名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string MateName { get; set; }
+        /// <summary>
+        /// 配偶出生日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime MateBirthDay { get; set; }
+        /// <summary>
+        /// 配偶出生城市
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string MateBirthCity { get; set; }
+        /// <summary>
+        /// 配偶出生国家省份
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string MateBirthCountry { get; set; }
+        /// <summary>
+        /// 配偶住址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string MateAddress { get; set; }
+        /// <summary>
+        /// 配偶工作单位
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string MateClient { get; set; }
+        /// <summary>
+        /// 配偶工作单位地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string MateClientAddress { get; set; }
+        /// <summary>
+        /// 配偶职务
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string MateJob { get; set; }
+        /// <summary>
+        /// 因公出访国家
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string VisitCountry { get; set; }
+        /// <summary>
+        /// 发表的期刊/论文
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string Paper { get; set; }
+        /// <summary>
+        /// 专利
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string Papent { get; set; }
+        /// <summary>
+        /// 发表的博士论文
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string PhD { get; set; }
+    }
+
+}

+ 61 - 0
OASystem/OASystem.Domain/Entities/Customer/Crm_VisaCustomerCompany.cs

@@ -0,0 +1,61 @@
+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_VisaCustomerCompany")]
+    public class Crm_VisaCustomerCompany:EntityBase
+    {
+        /// <summary>
+        /// 客户表ID
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DcId { get; set; }
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string Company { get; set; }
+        /// <summary>
+        /// 公司地址
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="varchar(300)")]
+        public string CompanyAddress { get; set; }
+        /// <summary>
+        /// 公司电话
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Phone { get; set; }
+        /// <summary>
+        /// 职务
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Job { get; set; }
+        /// <summary>
+        /// 主管名字
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string LeaderName { get; set; }
+        /// <summary>
+        /// 雇佣起始年月日
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime WorkStart { get; set; }
+        /// <summary>
+        /// 雇佣结束年月日
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime WorkEnd { get; set; }
+        /// <summary>
+        /// 工作职责及内容简述
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string WorkState { get; set; }
+    }
+}

+ 87 - 0
OASystem/OASystem.Domain/Entities/Customer/Crm_VisaCustomerFamily.cs

@@ -0,0 +1,87 @@
+
+
+namespace OASystem.Domain.Entities.Customer
+{
+    /// <summary>
+    /// 客户家庭成员表
+    /// </summary>
+    [SugarTable("Crm_VisaCustomerFamily")]
+    public class Crm_VisaCustomerFamily:EntityBase
+    {
+        /// <summary>
+        /// 客户表ID
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DcId { get; set; }
+        /// <summary>
+        /// 家庭成员称谓
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Appellation { get; set; }
+        /// <summary>
+        /// 家庭成员姓名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Name { get; set; }
+        /// <summary>
+        /// 家庭成员出生日期
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="DateTime")]
+        public DateTime BirthDay { get; set; }
+        /// <summary>
+        /// 家庭成员出生地
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string BirthPlace { get; set; }
+        /// <summary>
+        /// 家庭成员政治面貌
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Politics { get; set; }
+        /// <summary>
+        /// 家庭成员工作单位
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(80)")]
+        public string Client { get; set; }
+        /// <summary>
+        /// 家庭地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(80)")]
+        public string Address { get; set; }
+        /// <summary>
+        /// 是否欧盟公民 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsEu { get; set; }
+        /// <summary>
+        /// 拥有欧盟、欧洲经济区或瑞士公民身份的家庭成员姓名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string NameSnd { get; set; }
+        /// <summary>
+        /// 拥有欧盟、欧洲经济区或瑞士公民身份的家庭成员生日
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime BirthDaySnd { get; set; }
+        /// <summary>
+        /// 拥有欧盟、欧洲经济区或瑞士公民身份的家庭成员国籍
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Nationality { get; set; }
+        /// <summary>
+        /// 拥有欧盟、欧洲经济区或瑞士公民身份的家庭成员旅行证件编号或身份证号码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string IDCard { get; set; }
+        /// <summary>
+        /// 拥有欧盟、欧洲经济区或瑞士公民身份的家庭成员与申请人的关系
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Reletionship { get; set; }
+        /// <summary>
+        /// 家庭成员是否在美国
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsUSA { get; set; }
+    }
+}

+ 51 - 0
OASystem/OASystem.Domain/Entities/Customer/Crm_VisaCustomerSchool.cs

@@ -0,0 +1,51 @@
+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_VisaCustomerSchool")]
+    public class Crm_VisaCustomerSchool:EntityBase
+    {
+        /// <summary>
+        /// 客户表ID
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int DcId { get; set; }
+        /// <summary>
+        /// 学校名称和学历
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType = "varchar(100)")]
+        public string School { get; set; }
+        /// <summary>
+        /// 学校地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string Address { get; set; }
+        /// <summary>
+        /// 指导老师
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Teacher { get; set; }
+        /// <summary>
+        /// 所学课程或专业名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Subject { get; set; }
+        /// <summary>
+        /// 就读起始日
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime StudyStart { get; set; }
+        /// <summary>
+        /// 就读结束日
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime StudyEnd { get; set; }
+    }
+}

+ 1 - 1
OASystem/OASystem.Domain/Entities/EntityBase.cs

@@ -24,7 +24,7 @@
         /// 删除者Id
         /// </summary>
         [SugarColumn(ColumnDescription = "删除者Id", IsNullable = true, ColumnDataType = "int")]
-        public int DeleteUserId { get; set; }
+        public int? DeleteUserId { get; set; }
         /// <summary>
         /// 删除时间
         /// </summary>

+ 91 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_AirInquiry.cs

@@ -0,0 +1,91 @@
+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_AirInquiry")]
+    public class Grp_AirInquiry:EntityBase
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DiId { get; set; }
+        /// <summary>
+        /// 黑屏代码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
+        public string BlackCode { get; set; }
+        /// <summary>
+        /// 航段
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Routing { get; set; }
+        /// <summary>
+        /// 3U
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Carrier { get; set; }
+        /// <summary>
+        /// 航班号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string FlightNo { get; set; }
+        /// <summary>
+        /// 航班出发日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime DepartDate { get; set; }
+        /// <summary>
+        /// 航班起飞时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime DepartTime { get; set; }
+        /// <summary>
+        /// 航班落地时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime ArrivalTime { get; set; }
+        /// <summary>
+        /// 头等舱单价(全价)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal FirstYPrice { get; set; }
+        /// <summary>
+        /// 头等舱单价(即时)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal FirstCabinPrice { get; set; }
+        /// <summary>
+        /// 头等舱单价(全价)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal BusinessYPrice { get; set; }
+        /// <summary>
+        /// 头等舱单价(即时)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal BusinessCabinPrice { get; set; }
+        /// <summary>
+        /// 经济舱单价(全价)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal YPrice { get; set; }
+        /// <summary>
+        /// 经济舱单价(即时)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal CabinPrice { get; set; }
+        /// <summary>
+        /// 业务人员查询时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "dateTime")]
+        public DateTime SearchDt { get; set; }
+    }
+}

+ 81 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_AirPrice.cs

@@ -0,0 +1,81 @@
+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_AirPrice")]
+    public class Grp_AirPrice:EntityBase
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DiId { get; set; }
+        /// <summary>
+        /// 机票黑屏代码、询价表Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int AiId { get; set; }
+        /// <summary>
+        /// 舱位编码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string CabinCode { get; set; }
+        /// <summary>
+        /// 出票前单人票价
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal SinglePrice { get; set; }
+        /// <summary>
+        /// 币种
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string SingleCurency { get; set; }
+        /// <summary>
+        /// 人数
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Count { get; set; }
+        /// <summary>
+        /// 出票前总票价
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal TotalPrice { get; set; }
+        /// <summary>
+        /// 币种
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string TotalCurency { get; set; }
+        /// <summary>
+        /// 是否值机0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsCheck { get; set; }
+        /// <summary>
+        /// 是否选座0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsSeat { get; set; }
+        /// <summary>
+        /// 是否购买行李0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsPackage { get; set; }
+        /// <summary>
+        /// 是否行李直挂0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsBag { get; set; }
+        /// <summary>
+        /// 报价说明0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string PriceRemark { get; set; }
+    }
+}

+ 201 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_CreditCardPayment.cs

@@ -0,0 +1,201 @@
+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_CreditCardPayment")]
+    public class Grp_CreditCardPayment:EntityBase
+    {
+        /// <summary>
+        /// 支付方式
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int PayDId { get; set; }
+        /// <summary>
+        /// 消费方式
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
+        public string ConsumptionPatterns { get; set; }
+        /// <summary>
+        /// 消费日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime ConsumptionDate { get; set; }
+        /// <summary>
+        /// 卡类型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int CTDId { get; set; }
+        /// <summary>
+        /// 银行卡号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
+        public string BankNo { get; set; }
+        /// <summary>
+        /// 持卡人姓名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
+        public string CardholderName { get; set; }
+        /// <summary>
+        /// 付款金额
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal PayMoney { get; set; }
+        /// <summary>
+        /// 付款币种 数据类型Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int PaymentCurrency { get; set; }
+        /// <summary>
+        /// 当天汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(MAX)")]
+        public string DayRate { get; set; }
+        /// <summary>
+        /// 公司银行卡号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string CompanyBankNo { get; set; }
+        /// <summary>
+        /// 对方开户行
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
+        public string OtherBankName { get; set; }
+        /// <summary>
+        /// 对方银行账号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
+        public string OtherSideNo { get; set; }
+        /// <summary>
+        /// 对方姓名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(125)")]
+        public string OtherSideName { get; set; }
+        /// <summary>
+        /// 财务操作人 用户Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public string MFOperator { get; set; }
+        /// <summary>
+        /// 财务操作时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime MFOperatorDate { get; set; }
+        /// <summary>
+        /// 部门经理是否审核 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsAuditDM { get; set; }
+        /// <summary>
+        /// 部门经理审核人 用户Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int AuditDMOperate { get; set; }
+        /// <summary>
+        /// 部门经理审核时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime AuditDMDate { get; set; }
+        /// <summary>
+        /// 财务部是否审核  0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsAuditMF { get; set; }
+        /// <summary>
+        /// 财务部审核人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int AuditMFOperate { get; set; }
+        /// <summary>
+        /// 财务部审核时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime AuditMFDate { get; set; }
+        /// <summary>
+        /// 总经理是否审核  0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsAuditGM { get; set; }
+        /// <summary>
+        /// 总经理审核人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int AuditGMOperate { get; set; }
+        /// <summary>
+        /// 总经理审核时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime AuditGMDate { get; set; }
+        /// <summary> 
+        /// 是否付款  0否1是
+        /// </summary> 
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsPay { get; set; }
+        /// <summary>
+        /// 团组外键编号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DIId { get; set; }
+        /// <summary>
+        /// 指向表外键编号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int CId { get; set; }
+        /// <summary>
+        /// 指向标识 设置数据外键编号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int CTable { get; set; }
+        /// <summary>
+        /// 此次付款百分比
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal PayPercentage { get; set; }
+        /// <summary>
+        /// 此次付款金额
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal PayThenMoney { get; set; }
+        /// <summary>
+        /// 上次付款百分比
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal PayPercentageOld { get; set; }
+        /// <summary>
+        /// 上次付款金额
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal PayThenMoneyOld { get; set; }
+        /// <summary>
+        /// 上次付款时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime UpdateDate { get; set; }
+        /// <summary>
+        /// 收款方
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Payee { get; set; }
+        /// <summary>
+        /// 人民币费用
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal RMBPrice { get; set; }
+        /// <summary>
+        /// 费用标识
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string OrbitalPrivateTransfer { get; set; }
+        /// <summary>
+        /// 超出预算比例
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal ExceedBudget { get; set; }
+    }
+}

+ 66 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_DeleClientNeeds.cs

@@ -0,0 +1,66 @@
+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_DeleClientNeeds")]
+    public class Grp_DeleClientNeeds:EntityBase
+    {
+        /// <summary>
+        /// 团组表id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DiId { get; set; }
+        /// <summary>
+        /// 酒店名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string HotelName { get; set; }
+        /// <summary>
+        /// 酒店地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
+        public string HotelAddress { get; set; }
+        /// <summary>
+        /// 酒店星级
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string HotelStarRank { get; set; }
+        /// <summary>
+        /// 酒店其他需求
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string HotelNeedRemark { get; set; }
+        /// <summary>
+        /// 客户喜好舱位
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string CabinName { get; set; }
+        /// <summary>
+        /// 飞机其他需求备注
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string CabinNeedRemark { get; set; }
+        /// <summary>
+        /// 类型表ID
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int CarType { get; set; }
+        /// <summary>
+        /// 车其他需求备注
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string CarNeedRemark { get; set; }
+        /// <summary>
+        /// 用餐需求备注
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string FoodNeedRemark { get; set; }
+    }
+}

+ 41 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_DeleFile.cs

@@ -0,0 +1,41 @@
+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_DeleFile")]
+    public class Grp_DeleFile:EntityBase
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int Diid { get; set; }
+        /// <summary>
+        /// 类别标识
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Category { get; set; }
+        /// <summary>
+        /// 次级类别
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Kind { get; set; }
+        /// <summary>
+        /// 文件名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "Varchar(100)")]
+        public string FileName { get; set; }
+        /// <summary>
+        /// 文件路径
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "Varchar(100)")]
+        public string FilePath { get; set; }
+    }
+}

+ 61 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_DeleMeetingNeeds.cs

@@ -0,0 +1,61 @@
+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_DeleMeetingNeeds")]
+    public class Grp_DeleMeetingNeeds:EntityBase
+    {
+        /// <summary>
+        /// 团组公共需求表Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DeleClientNeedId { get; set; }
+        /// <summary>
+        /// 会议类型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int MeetingType { get; set; }
+        /// <summary>
+        /// 开会时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime MeetingDt { get; set; }
+        /// <summary>
+        /// 开会时长
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string MeethingSeptal { get; set; }
+        /// <summary>
+        /// 参会人数
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Person { get; set; }
+        /// <summary>
+        /// 会议金额预算
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string MeetingPrice { get; set; }
+        /// <summary>
+        /// 联系人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Contact { get; set; }
+        /// <summary>
+        /// 联系方式
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Mobile { get; set; }
+        /// <summary>
+        /// 其他需求
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string NeedsChoose { get; set; }
+    }
+}

+ 216 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_DelegationInfo.cs

@@ -0,0 +1,216 @@
+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_DelegationInfo")]
+    public class Grp_DelegationInfo:EntityBase
+    {
+        /// <summary>
+        /// 销售报价号
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType = "varchar(50)")]
+        public string SalesQuoteNo { get; set; }
+        /// <summary>
+        /// 销售日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime SalesDate { get; set; }
+        /// <summary>
+        /// 客户名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ClientName { get; set; }
+        /// <summary>
+        /// 客户单位
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ClientUnit { get; set; }
+        /// <summary>
+        /// 团组号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string TourCode { get; set; }
+        /// <summary>
+        /// 团组名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string TeamName { get; set; }
+        /// <summary>
+        /// 团组类型Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int TeamDid { get; set; }
+        /// <summary>
+        /// 出访时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime VisitDate { get; set; }
+        /// <summary>
+        /// 出团时间起
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime VisitStartDate { get; set; }
+        /// <summary>
+        /// 出团时间止
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime VisitEndDate { get; set; }
+        /// <summary>
+        /// 出访国家
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string VisitCountry { get; set; }
+        /// <summary>
+        /// 出访目的
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(300)")]
+        public string VisitPurpose { get; set; }
+        /// <summary>
+        /// 出访天数
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int VisitDays { get; set; }
+        /// <summary>
+        /// 出访人数
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int VisitPNumber { get; set; }
+        /// <summary>
+        /// 特殊需求
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string SpecialNeeds { get; set; }
+        /// <summary>
+        /// 其他需求
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string OtherNeeds { get; set; }
+        /// <summary>
+        /// 客户需求
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string ClientNeeds { get; set; }
+        /// <summary>
+        /// 状态标识
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int IsState { get; set; }
+        /// <summary>
+        /// 接团操作人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int JietuanOperator { get; set; }
+        /// <summary>
+        /// 接团操作时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime JietuanTime { get; set; }
+        /// <summary>
+        /// 团信息操作人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int GroupsOperator { get; set; }
+        /// <summary>
+        /// 团信息操作时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime GroupsTime { get; set; }
+        /// <summary>
+        /// 预算成本
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string BudgetCost { get; set; }
+        /// <summary>
+        /// 是否操作完成 0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsSure { get; set; }
+        /// <summary>
+        /// 预算成本时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime SureTime { get; set; }
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string TellPhone { get; set; }
+        /// <summary>
+        /// 团组客户级别
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string TeamLev { get; set; }
+        /// <summary>
+        /// 酒店投诉标识 0-未投诉1-已投诉
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int HotelComplain { get; set; }
+        /// <summary>
+        /// OP投诉标识 0-未投诉1-已投诉
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int OPComplain { get; set; }
+        /// <summary>
+        /// 签证投诉标识 0-未投诉1-已投诉
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int VisaComplain { get; set; }
+        /// <summary>
+        /// 商邀投诉标识 0-未投诉1-已投诉
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int OAComplain { get; set; }
+        /// <summary>
+        /// 机票投诉标识 0-未投诉1-已投诉
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int AirComplain { get; set; }
+        /// <summary>
+        /// 团组负责人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Director { get; set; }
+        /// <summary>
+        /// 合同时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime TontractTime { get; set; }
+        /// <summary>
+        /// 支付款项(预付)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string PaymentMoney { get; set; }
+        /// <summary>
+        /// 预付期限
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime PayDay { get; set; }
+        /// <summary>
+        /// 出国任务审批部门名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string CGRWSPBMMC { get; set; }
+        /// <summary>
+        /// 出国任务审批文号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string CGRWSPWH { get; set; }
+        /// <summary>
+        /// 政治审查部门名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ZZSCBMMC { get; set; }
+        /// <summary>
+        /// 政治审查部门审批文号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ZZSCSPWH { get; set; }
+    }
+}

+ 26 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_DelegationJoinCustomer.cs

@@ -0,0 +1,26 @@
+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_DelegationJoinCustomer")]
+    public class Grp_DelegationJoinCustomer:EntityBase
+    {
+        /// <summary>
+        /// 团组表id
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int DiId { get; set; }
+        /// <summary>
+        ///客户表Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DcId { get; set; }
+    }
+}

+ 202 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_HotelReservations.cs

@@ -0,0 +1,202 @@
+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_HotelReservations")]
+    public class Grp_HotelReservations:EntityBase
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DIId { get; set; }
+        /// <summary>
+        /// 客人类型 数据类型字表Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int GTId { get; set; }
+        /// <summary>
+        /// 入住卷号码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string CheckNumber { get; set; }
+        /// <summary>
+        /// 预订网站数据类型字表Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int ReservationsWebsite { get; set; }
+        /// <summary>
+        /// 预订号码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ReservationsNo { get; set; }
+        /// <summary>
+        /// 酒店确定编号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string DetermineNo { get; set; }
+        /// <summary>
+        /// 所在城市
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string City { get; set; }
+        /// <summary>
+        /// 酒店名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string HotelName { get; set; }
+        /// <summary>
+        /// 酒店地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
+        public string HotelAddress { get; set; }
+        /// <summary>
+        /// 酒店电话
+        /// </summary>
+
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string HotelTel { get; set; }
+        /// <summary>
+        /// 酒店传真
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string HotelFax { get; set; }
+        /// <summary>
+        /// 客人姓名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string GuestName { get; set; }
+        /// <summary>
+        /// 入住日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime CheckInDate { get; set; }
+        /// <summary>
+        /// 退房日期
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime CheckOutDate { get; set; }
+        /// <summary>
+        /// 实际金额
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal Budget { get; set; }
+        /// <summary>
+        /// 预算币种 数据类型字表Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int BudgetCurrency { get; set; }
+        /// <summary>
+        /// 单间数量
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int SingleRoomCount { get; set; }
+        /// <summary>
+        /// 单间单价
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal SingleRoomPrice { get; set; }
+        /// <summary>
+        /// 双间数量
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DoubleRoomCount { get; set; }
+        /// <summary>
+        /// 双间单价
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal DoubleRoomPrice { get; set; }
+        /// <summary>
+        /// 套房数量
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int SuiteRoomCount { get; set; }
+        /// <summary>
+        /// 套房单价
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal SuiteRoomPrice { get; set; }
+        /// <summary>
+        /// 其他房型数量
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int OtherRoomCount { get; set; }
+        /// <summary>
+        /// 其他房型单价
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal OtherRoomPrice { get; set; }
+        /// <summary>
+        /// 佣金
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal Commission { get; set; }
+        /// <summary>
+        /// 佣金币种
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")] 
+        public int CommissionCurrency { get; set; }
+        /// <summary>
+        /// 佣金标识0否 1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int CommissionMark { get; set; }
+        /// <summary>
+        /// 房间说明
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string RoomExplanation { get; set; }
+        /// <summary>
+        /// 附件
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string Attachment { get; set; }
+        /// <summary>
+        /// 信用卡金额
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal CardPrice { get; set; }
+        /// <summary>
+        /// 确认标识信用卡金额 0:未刷(红色)  1:已刷(绿色)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsCardPrice { get; set; }
+        /// <summary>
+        /// 早餐费
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        public decimal breakfastPrice { get; set; }
+        /// <summary>
+        /// 是否由地接支付0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsOppay { get; set; }
+        /// <summary>
+        /// 是否住了单间0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsCboOne { get; set; }
+        /// <summary>
+        /// 是否住了双间0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsCboTwo { get; set; }
+        /// <summary>
+        /// 是否住了酒店套房0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsCboThree { get; set; }
+        /// <summary>
+        /// 是否住了其他房型0否1是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsCboFour { get; set; }
+    }
+}

+ 91 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_VisaProgress.cs

@@ -0,0 +1,91 @@
+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_VisaProgress")]
+    public class Grp_VisaProgress:EntityBase
+    {
+        /// <summary>
+        /// 团组表Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DiId { get; set; }
+        /// <summary>
+        /// 国家
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Country { get; set; }
+        /// <summary>
+        /// 收集资料
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string GetData { get; set; }
+        /// <summary>
+        /// 收集资料时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime GetDataTime { get; set; }
+        /// <summary>
+        /// 取护照
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string GetPassport { get; set; }
+        /// <summary>
+        /// 取护照时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime GetPassportTime { get; set; }
+        /// <summary>
+        /// 填资料
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string FillData { get; set; }
+        /// <summary>
+        /// 填资料时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime FillDataTime { get; set; }
+        /// <summary>
+        /// 送签
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string SendVisa { get; set; }
+        /// <summary>
+        /// 送签时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime SendVisaTime { get; set; }
+        /// <summary>
+        /// 出签
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string SignOut { get; set; }
+        /// <summary>
+        /// 出签时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime SignOutTime { get; set; }
+        /// <summary>
+        /// 归还护照
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string SendBackPassport { get; set; }
+        /// <summary>
+        /// 归还护照时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public string SendBackPassporTime { get; set; }
+        /// <summary>
+        /// 护照接收者
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Receiver { get; set; }
+    }
+}

+ 31 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_AirCompany.cs

@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 航司缩写资料表
+    /// </summary>
+    [SugarTable("Res_AirCompany")]
+    public class Res_AirCompany:EntityBase
+    {
+        /// <summary>
+        /// 缩写
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string ShortCode { get; set; }
+        /// <summary>
+        /// 中文名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string CnName { get; set; }
+        /// <summary>
+        /// 英文名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string EnName { get; set; }
+    }
+}

+ 31 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_AirTicketAgent.cs

@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 代理出票合作方资料表
+    /// </summary>
+    [SugarTable("Res_AirTicketAgent")]
+    public class Res_AirTicketAgent:EntityBase
+    {
+        /// <summary>
+        /// 代理商名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string Name { get; set; }
+        /// <summary>
+        /// 代理商账户
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string Account { get; set; }
+        /// <summary>
+        /// 代理商银行
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string Bank { get; set; }
+    }
+}

+ 77 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_CarGuides.cs

@@ -0,0 +1,77 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 
+    /// 团组成本 司兼导资料表
+    /// </summary>
+    [SugarTable("Res_CarGuides")]
+    public class Res_CarGuides : EntityBase
+    {
+        /// <summary>
+        /// 国家
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Country { get; set; }
+
+        /// <summary>
+        /// 城市
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string City { get; set; }
+
+        /// <summary>
+        /// 服务类型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ServiceType { get; set; }
+
+        /// <summary>
+        /// 车类型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string CarType { get; set; }
+
+        /// <summary>
+        /// 用车报价
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "decimal(10,2)")]
+        public decimal Offer { get; set; }
+
+        /// <summary>
+        /// 司兼导费用
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "decimal(10,2)")]
+        public decimal CGCost { get; set; }
+
+        /// <summary>
+        /// 用车时长
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int RuningTime { get; set; }
+
+        /// <summary>
+        /// 车超时费用/时
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "decimal(10,2)")]
+        public decimal OvertimeFee { get; set; }
+
+        /// <summary>
+        /// 司兼导超时费/时
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal CGOvertimeFee { get; set; }
+
+        /// <summary>
+        /// 币种
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "varchar(10)")]
+        public string Currency { get; set; }
+
+    }
+}

+ 62 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_CarInfo.cs

@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 团组数据 车数据
+    /// </summary>
+    public class Res_CarInfo :EntityBase
+    {
+        /// <summary>
+        /// 国家
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Country { get; set; }
+
+        /// <summary>
+        /// 城市
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string City { get; set; }
+
+        /// <summary>
+        /// 服务类型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ServiceType { get; set; }
+
+        /// <summary>
+        /// 车类型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string CarType { get; set; }
+
+        /// <summary>
+        /// 用车时长
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int RuningTime { get; set; }
+
+        /// <summary>
+        /// 用车报价
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 车超时费用/时
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal OvertimeFee { get; set; }
+
+        /// <summary>
+        /// 币种
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(10)")]
+        public string Currency { get; set; }
+    }
+}

+ 62 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_GuidesInfo.cs

@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 团组数据 导游数据
+    /// </summary>
+    public class Res_GuidesInfo:EntityBase
+    {
+        /// <summary>
+        /// 国家
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "varchar(50)")]
+        public string Country { get; set; }
+
+        /// <summary>
+        /// 城市
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "varchar(50)")]
+        public string City { get; set; }
+
+        /// <summary>
+        ///导游服务类型
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string ServiceType { get; set; }
+
+        /// <summary>
+        /// 工作时间
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "int")]
+        public int When { get; set; }
+
+        /// <summary>
+        /// 导游工资
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 翻译工资
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "decimal(10,2)")]
+        public decimal TranslationPrice { get; set; }
+
+        /// <summary>
+        /// 超时费用
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "decimal(10,2)")]
+        public decimal OvertimeFee { get; set; }
+
+        /// <summary>
+        /// 币种
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "varchar(10)")]
+        public string Currency { get; set; }
+    }
+}

+ 61 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_HotelData.cs

@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 酒店数据表
+    /// </summary>
+    [SugarTable("Res_HotelData")]
+    public class Res_HotelData:EntityBase
+    {
+        /// <summary>
+        /// 所在城市
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string City { get; set; }
+        /// <summary>
+        /// 酒店名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string Name { get; set; }
+        /// <summary>
+        /// 酒店星级
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string Level { get; set; }
+        /// <summary>
+        /// 酒店地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string Address { get; set; }
+        /// <summary>
+        /// 酒店电话
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Tel { get; set; }
+        /// <summary>
+        /// 酒店传真
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Fax { get; set; }
+        /// <summary>
+        /// 联系人
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Contact { get; set; }
+        /// <summary>
+        /// 联系方式
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string ContactPhone { get; set; }
+        /// <summary>
+        /// 酒店其他信息
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
+        public string OtherInformation { get; set; }
+    }
+}

+ 61 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_ScenicSpotInfo.cs

@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 团组数据 景点数据
+    /// </summary>
+    public class Res_ScenicSpotInfo:EntityBase
+    {
+        /// <summary>
+        /// 国家
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Country { get; set; }
+
+        /// <summary>
+        /// 城市
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string City { get; set; }
+
+        /// <summary>
+        /// 景点
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string ScenicSpot { get; set; }
+
+        /// <summary>
+        /// 景点项目描述
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string ScenicSpotDetail { get; set; }
+
+        /// <summary>
+        /// 景点价格
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal Rate { get; set; }
+
+        /// <summary>
+        /// 币种
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(10)")]
+        public string Currency { get; set; }
+        /// <summary>
+        /// 景点地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
+        public string Address { get; set; }
+    }
+}

+ 46 - 0
OASystem/OASystem.Domain/Entities/Resource/Res_ThreeCode.cs

@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Resource
+{
+    /// <summary>
+    /// 三字码资料表
+    /// </summary>
+    [SugarTable("Res_ThreeCode")]
+    public class Res_ThreeCode:EntityBase
+    {
+        /// <summary>
+        /// 三字码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Three { get; set; }
+        /// <summary>
+        /// 四字码
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        public string Four { get; set; }
+        /// <summary>
+        /// 国家
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string Country { get; set; }
+        /// <summary>
+        /// 城市
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string City { get; set; }
+        /// <summary>
+        /// 机场
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string AirPort { get; set; }
+        /// <summary>
+        /// 机场英文名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string AirPort_En { get; set; }
+    }
+}

+ 1 - 1
OASystem/OASystem.Domain/Result.cs

@@ -9,7 +9,7 @@ namespace OASystem.Domain
     public class Result
     {
         public int Code { get; set; } = -1;
-        public string Message { get; set; } = "未知错误";
+        public string Msg { get; set; } = "未知错误";
         public dynamic Data { get; set; } = null;
     }
 }

+ 17 - 0
OASystem/OASystem.Domain/ViewModels/CompanyView.cs

@@ -0,0 +1,17 @@
+using OASystem.Domain.Entities.System;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels
+{
+    /// <summary>
+    /// 公司视图表(返回数据model)
+    /// </summary>
+    public class CompanyView:Sys_Company
+    {
+        
+    }
+}

+ 2 - 2
OASystem/OASystem.Domain/ViewModels/JsonView.cs

@@ -12,7 +12,7 @@ public class JsonView
     /// <summary>
     /// 消息
     /// </summary>
-    public string Msg { get; set; }
+    public string? Msg { get; set; }
     /// <summary>
     /// 条数
     /// </summary>
@@ -20,5 +20,5 @@ public class JsonView
     /// <summary>
     /// 数据
     /// </summary>
-    public object Data { get; set; }
+    public object? Data { get; set; }
 }

+ 14 - 0
OASystem/OASystem.Domain/ViewModels/System/DepartmentView.cs

@@ -0,0 +1,14 @@
+using OASystem.Domain.Entities.System;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.System
+{
+    public class DepartmentView:Sys_Department
+    {
+       
+    }
+}

+ 0 - 16
OASystem/OASystem.Domain/ViewModels/System/Sys_DepartmentView.cs

@@ -1,16 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace OASystem.Domain.ViewModels.System
-{
-    public class Sys_DepartmentView
-    {
-        public int Id { get; set; }
-        public string DepName { get; set; }
-
-        public string a { get; set; }
-    }
-}

+ 137 - 0
OASystem/OASystem.Domain/ViewModels/System/UserInfoView.cs

@@ -0,0 +1,137 @@
+using OASystem.Domain.Entities.System;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.System
+{
+    /// <summary>
+    /// 用户表
+    /// 数据库查询接受实体类
+    /// </summary>
+    public class UserInfoView :Sys_Users
+    {
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string? CompanyName { get; set; }
+
+        /// <summary>
+        /// 部门名称
+        /// </summary>
+        public string? DepName { get; set; }
+
+        /// <summary>
+        /// 岗位名称
+        /// </summary>
+        public string? JobName { get; set; }
+    }
+
+    public class UserInfoListView
+    {
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string CompanyName { get; set; }
+
+        /// <summary>
+        /// 部门名称
+        /// </summary>
+        public string DepName { get; set; }
+
+        /// <summary>
+        /// 岗位名称
+        /// </summary>
+        public string JobName { get; set; }
+        /// <summary>
+        /// 用户Id
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 中文姓名
+        /// </summary>
+        
+        public string CnName { get; set; }
+        /// <summary>
+        /// 英文姓名
+        /// </summary>
+        
+        public string EnName { get; set; }
+        /// <summary>
+        /// 工号
+        /// </summary>
+        
+        public string Number { get; set; }
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+       
+        public int CompanyId { get; set; }
+        /// <summary>
+        /// 部门Id
+        /// </summary>
+        
+        public int DepId { get; set; }
+        /// <summary>
+        /// 岗位Id
+        /// </summary>
+        
+        public int JobPostId { get; set; }
+        
+        /// <summary>
+        /// 性别0 男1 女  2 未设置
+        /// </summary>
+        
+        public int Sex { get; set; }
+        /// <summary>
+        /// 分机号
+        /// </summary>
+        
+        public string Ext { get; set; }
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        
+        public string Phone { get; set; }
+        /// <summary>
+        /// 紧急联系人 手机号
+        /// </summary>
+        
+        public string UrgentPhone { get; set; }
+        /// <summary>
+        /// 邮箱
+        /// </summary>
+        
+        public string Email { get; set; }
+        /// <summary>
+        /// 住址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(200)")]
+        public string Address { get; set; }
+        /// <summary>
+        /// 入职时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime Edate { get; set; }
+        /// <summary>
+        /// 离职时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime Rdate { get; set; }
+        
+       
+        /// <summary>
+        /// 身份证号码
+        /// </summary>
+        public string IDCard { get; set; }
+        
+        
+        /// <summary>
+        /// 家庭地址
+        /// </summary>
+        public string HomeAddress { get; set; }
+        
+    }
+}

+ 83 - 0
OASystem/OASystem.Infrastructure/Repositories/Login/LoginRepository.cs

@@ -1,4 +1,6 @@
 
+using OASystem.Domain;
+using OASystem.Domain.Dtos.UserDto;
 using OASystem.Domain.Entities.System;
 
 namespace OASystem.Infrastructure.Repositories.Login
@@ -9,8 +11,89 @@ namespace OASystem.Infrastructure.Repositories.Login
         {
         }
 
+        /// <summary>
+        /// 用户登录
+        /// 返回Token
+        /// </summary>
+        /// <param name="_loginRep"></param>
+        /// <param name="loginDto"></param>
+        /// <returns></returns>
+        public async Task<Result> Login(LoginRepository _loginRep, LoginDto loginDto)
+        {
+            Result result = new Result();
+            string SQLWhere = string.Format("Where Number='{0}' And Password='{1}'", loginDto.Number, loginDto.Password);
+            string sql = string.Format("Select * From Sys_Users With(NoLock) {0}", SQLWhere);
+            Sys_Users _entity = await _loginRep.GetSingleInfoBySqlWithNolockAsync(sql);
+            if (_entity == null)
+            {
+                result.Code = -2;
+                result.Msg = "暂无该账号信息!";
+
+                return result;
+            }
+            result.Code = 0;
+            result.Msg = "登录成功!";
+            result.Data = _entity;
+            return result;
+
+        }
 
+        /// <summary>
+        /// 用户注册
+        /// </summary>
+        /// <param name="_loginRep"></param>
+        /// <param name="registerDto"></param>
+        /// <returns></returns>
+        public async Task<Result> Register(LoginRepository _loginRep, RegisterDto registerDto)
+        {
+            Result result = new Result();
+            Sys_Users _userInfo = new Sys_Users()
+            {
+                CnName = registerDto.CnName,
+                EnName = registerDto.EnName,
+                Sex = registerDto.Sex,
+                Number = "",    //员工编号 人事审核通过了 由信息部经理分配
+                CompanyId = registerDto.CompanyId,
+                DepId = registerDto.DepId,
+                JobPostId = registerDto.JobPostId,
+                Ext = "", //由部门主管/信息部经理 分配
+                Phone = registerDto.Phone,
+                UrgentPhone = registerDto.UrgencyPhone,
+                Email = registerDto.Email,
+                Address = registerDto.Address,
+                Edate = DateTime.Now,  //入职时间默认当前数据提交时间
+                Rdate = new DateTime(1990, 1, 1),  //离职时间默认最原始时间
+                Seniority = 0, //工龄默认 0
+                Birthday = registerDto.BirthDay,
+                IDCard = registerDto.IdCrad,
+                StartWorkDate = new DateTime(1990, 1, 1),  //开始工作时间默认最原始时间
+                GraduateInstitutions = registerDto.GraduationSchhol,
+                Professional = registerDto.Major,
+                Education = registerDto.Education, //学历类型
+                TheOrAdultEducation = registerDto.EducationType, //教育类型
+                MaritalStatus = registerDto.MaritalStatus, // 未婚/已婚
+                HomeAddress = registerDto.HomeAddress,  //身份证上 家庭住址
+                UsePeriod = "", //试用期 由该人员入职部门主管手动操作
+                Certificate = "", //证件上传地址  多个证件由 | 隔开
+                CreateUserId = registerDto.CreateUserId,
+                CreateTime = DateTime.Now, //默认当前时间
+                DeleteUserId = null,  //删除用户时操作该字段
+                DeleteTime = null,   //删除用户时操作该字段
+                Remark = "",         //备注
+                IsDel = 0
+            };
+            var _AddId = await _loginRep.AddAsyncReturnId(_userInfo);
+            if (_AddId < 0)
+            {
+                result.Code = -2;
+                result.Msg = "用户添加失败!";
 
+                return result;
+            }
+            result.Code = 0;
+            result.Msg = "申请成功!人事主管审核后且信息部经理分配了登录账号,可登录OA!";
+            return result;
+        }
 
     }
 }

+ 18 - 0
OASystem/OASystem.Infrastructure/Repositories/System/CompanyRepository.cs

@@ -0,0 +1,18 @@
+using OASystem.Domain.Entities.System;
+using OASystem.Domain.ViewModels.System;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.System
+{
+    public class CompanyRepository : BaseRepository<Sys_Company, CompanyView>
+    {
+        public CompanyRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
+        {
+
+        }
+    }
+}

+ 2 - 2
OASystem/OASystem.Infrastructure/Repositories/System/Sys_DepartmentRepository.cs

@@ -9,9 +9,9 @@ using System.Threading.Tasks;
 
 namespace OASystem.Infrastructure.Repositories.System
 {
-    public class Sys_DepartmentRepository : BaseRepository<Sys_Department, Sys_DepartmentView>
+    public class DepartmentRepository : BaseRepository<Sys_Department, DepartmentView>
     {
-        public Sys_DepartmentRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
+        public DepartmentRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
         {
         }
     }

+ 68 - 0
OASystem/OASystem.Infrastructure/Repositories/System/UsersRepository.cs

@@ -0,0 +1,68 @@
+using OASystem.Domain;
+
+using OASystem.Domain.ViewModels.System;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.System
+{
+    public class UsersRepository : BaseRepository<UserInfoView, JsonView>
+    {
+        public UsersRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
+        {
+        }
+
+        /// <summary>
+        /// 用户查询列表
+        /// </summary>
+        /// <param name="_userRep"></param>
+        /// <returns></returns>
+        public async Task<Result> GetUserList(UsersRepository _userRep)
+        {
+            Result result = new Result();
+            string userSqlWhere = string.Format(@"Select sjp.JobName,sd.DepName,sc.CompanyName,su.* From Sys_Users su 
+                                                  Inner Join Sys_Company sc On su.CompanyId = sc.Id
+                                                  Inner Join Sys_Department sd On su.DepId = sd.Id
+                                                  Inner Join Sys_JobPost sjp On su.JobPostId = sjp.Id ");
+            List<UserInfoView> _userList = await _userRep.GetListBySqlWithNolockAsync(userSqlWhere);
+            if (_userList.Count < 1)
+            {
+                result.Code = -2;
+                result.Msg = "暂无员工信息!";
+
+                return result;
+            }
+
+            List<dynamic> reultUserList = new List<dynamic>();
+            foreach (UserInfoView user in _userList)
+            {
+                var data = new
+                {
+                    Number = user.Number,
+                    UserId = user.Id,
+                    CnName = user.CnName,
+                    CompanyId = user.CompanyId,
+                    CompanyName = user.CompanyName,
+                    DepId = user.DepId,
+                    DepName = user.DepName,
+                    //JobPostId = user.JobPostId,
+                    //JobName = user.JobName,
+                    Ext = user.Ext,
+                    Phone = user.Phone,
+                    UrgentPhone = user.UrgentPhone,
+                    Email = user.Email
+                };
+                reultUserList.Add(data);
+            }
+
+            result.Code = 0;
+            result.Msg = "成功!";
+            result.Data = reultUserList;
+            return result;
+
+        }
+    }
+}

+ 2 - 6
OASystem/OASystem.Infrastructure/Tools/RedisHelper.cs

@@ -11,12 +11,8 @@ using System.Text;
 
 namespace OASystem.Infrastructure.Tools
 {
-    public class RedisHelper { 
-    
-    }
-
 
-    public class RedisHelper1 : IDisposable
+    public class RedisHelper : IDisposable
     {
         //连接字符串
         private string _connectionString;
@@ -26,7 +22,7 @@ namespace OASystem.Infrastructure.Tools
         private int _defaultDB;
 
         private ConcurrentDictionary<string, ConnectionMultiplexer> _connections;
-        public RedisHelper1(string connectionString, string instanceName, int defaultDB = 0)
+        public RedisHelper(string connectionString, string instanceName, int defaultDB = 0)
         {
             _connectionString = connectionString;
             _instanceName = instanceName;

File diff suppressed because it is too large
+ 314 - 279
OASystem/_Doc/OA2023数据字典.docx