Browse Source

合并服务器代码

yuanrf 2 years ago
parent
commit
e0a225ebf8

+ 6 - 2
OASystem/EntitySync/Program.cs

@@ -71,7 +71,11 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Res_CarInfo),
     //typeof(Res_CarInfo),
     //typeof(Res_GuidesInfo)
     //typeof(Res_GuidesInfo)
     
     
-    typeof(Res_CarData),
-    typeof(Res_LocalGuideData)
+    //typeof(Res_CarData),
+    //typeof(Res_LocalGuideData)
+
+    typeof(Grp_ScheduleInfo),
+    typeof(Grp_ScheduleDetailInfo),
+    typeof(Grp_SchedulePersonInfo)
 });
 });
 Console.WriteLine("数据库结构同步完成!");
 Console.WriteLine("数据库结构同步完成!");

+ 210 - 41
OASystem/OASystem.Api/Controllers/SystemController.cs

@@ -1,7 +1,4 @@
-
-
-using OASystem.Infrastructure.Repositories.System;
-using System.Collections;
+using System.Collections;
 
 
 namespace OASystem.API.Controllers
 namespace OASystem.API.Controllers
 {
 {
@@ -24,11 +21,13 @@ namespace OASystem.API.Controllers
         private readonly PageFunctionPermissionRepository _PageFunctionPermissionRepository;
         private readonly PageFunctionPermissionRepository _PageFunctionPermissionRepository;
         private readonly SystemMenuAndFunctionRepository _SystemMenuAndFunctionRepository;
         private readonly SystemMenuAndFunctionRepository _SystemMenuAndFunctionRepository;
         private readonly JobPostAuthorityRepository _JobPostAuthorityRepository;
         private readonly JobPostAuthorityRepository _JobPostAuthorityRepository;
+        private readonly JobPostRepository _jobRep;
 
 
         public SystemController( CompanyRepository syscom, DepartmentRepository sysDepRep, UsersRepository userRep,
         public SystemController( CompanyRepository syscom, DepartmentRepository sysDepRep, UsersRepository userRep,
             IMapper mapper, SetDataRepository setDataRepository, CompanyRepository companyRepository,
             IMapper mapper, SetDataRepository setDataRepository, CompanyRepository companyRepository,
             SystemMenuPermissionRepository systemMenuPermissionRepository, PageFunctionPermissionRepository pageFunctionPermissionRepository,
             SystemMenuPermissionRepository systemMenuPermissionRepository, PageFunctionPermissionRepository pageFunctionPermissionRepository,
-            SystemMenuAndFunctionRepository systemMenuAndFunctionRepository, JobPostAuthorityRepository jobPostAuthorityRepository)
+            SystemMenuAndFunctionRepository systemMenuAndFunctionRepository, JobPostAuthorityRepository jobPostAuthorityRepository, JobPostRepository jobRep)
+            
         {
         {
             _syscomRep = syscom;
             _syscomRep = syscom;
             _sysDepRep = sysDepRep;
             _sysDepRep = sysDepRep;
@@ -42,35 +41,6 @@ namespace OASystem.API.Controllers
             _JobPostAuthorityRepository = jobPostAuthorityRepository;
             _JobPostAuthorityRepository = jobPostAuthorityRepository;
         }
         }
 
 
-        #region user 操作
-        /// <summary>
-        /// 查询所有员工(web)
-        /// </summary>
-        /// <param name="dto"></param>
-        /// <returns></returns>
-        [HttpPost]
-        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
-        public async Task<IActionResult> GetUserList(DtoBase dto)
-        {
-            try
-            {
-                var result = _userRep.GetUserList(dto.PortType,string.Empty);
-                if (result.Result.Code != 0)
-                {
-                    return Ok(JsonView(false, "暂无数据!"));
-
-                }
-                return Ok(JsonView(true,"查询成功!",result.Result.Data));
-            }
-            catch (Exception)
-            {
-                return Ok(JsonView(false, "程序错误!"));
-                throw;
-            }
-        }
-
-        #endregion
-
         #region 企业操作
         #region 企业操作
         /// <summary>
         /// <summary>
         /// 查询企业数据
         /// 查询企业数据
@@ -85,7 +55,13 @@ namespace OASystem.API.Controllers
             {
             {
                 if (dto.PortType == 1)
                 if (dto.PortType == 1)
                 {
                 {
-                    return Ok(JsonView(false, "暂无数据!"));
+                    var CompanyDataResult = _CompanyRepository.GetCompanyData();
+                    if (CompanyDataResult.Code != 0)
+                    {
+                        return Ok(JsonView(CompanyDataResult.Msg));
+                    }
+
+                    return Ok(JsonView(true, "查询成功!", CompanyDataResult.Data));
                 }
                 }
                 else if (dto.PortType == 2)
                 else if (dto.PortType == 2)
                 {
                 {
@@ -229,7 +205,7 @@ namespace OASystem.API.Controllers
         /// </summary>
         /// </summary>
         /// <param name="dto"></param>
         /// <param name="dto"></param>
         /// <returns></returns>
         /// <returns></returns>
-        //[Authorize]
+        
         [HttpPost]
         [HttpPost]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> QueryDepartmentList(DepartmentDto dto)
         public async Task<IActionResult> QueryDepartmentList(DepartmentDto dto)
@@ -329,7 +305,7 @@ namespace OASystem.API.Controllers
                         DepName=dto.DepName,
                         DepName=dto.DepName,
                         ParentDepId=dto.ParentDepId,
                         ParentDepId=dto.ParentDepId,
                         Remark=dto.Remark,
                         Remark=dto.Remark,
-    });
+                     });
                     if (!res)
                     if (!res)
                     {
                     {
                         return Ok(JsonView(false, "修改失败!"));
                         return Ok(JsonView(false, "修改失败!"));
@@ -404,7 +380,7 @@ namespace OASystem.API.Controllers
                 }
                 }
                 else if (dto.PortType == 2)
                 else if (dto.PortType == 2)
                 {
                 {
-                    var result = _sysDepRep.QueryDto<Sys_JobPost, JobPostView>(s => s.CompanyId == dto.CompanyId && s.DepId==dto.DepId).ToList();
+                    var result = _jobRep.QueryDto<Sys_JobPost, JobPostView>(s => s.CompanyId == dto.CompanyId && s.DepId==dto.DepId).ToList();
                     if (result.Count == 0)
                     if (result.Count == 0)
                     {
                     {
                         return Ok(JsonView(false, "暂无数据!"));
                         return Ok(JsonView(false, "暂无数据!"));
@@ -426,9 +402,114 @@ namespace OASystem.API.Controllers
                 throw;
                 throw;
             }
             }
         }
         }
+        /// <summary>
+        /// 添加岗位
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> AddJobPost(AddJobPostDto dto)
+        {
+            try
+            {
+                Sys_JobPost sys_Job = _mapper.Map<Sys_JobPost>(dto);
+                int id = await _jobRep.AddAsyncReturnId(sys_Job);
+                if (id == 0)
+                {
+                    return Ok(JsonView(false, "添加失败"));
+                }
+                return Ok(JsonView(true, "添加成功", new { Id = id }));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        /// <summary>
+        /// 修改岗位
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> EditJobPost(EditJobPostDto dto)
+        {
+            try
+            {
+                bool res = await _jobRep.UpdateAsync<Sys_JobPost>(a=>a.Id==dto.Id,a =>new Sys_JobPost
+                {
+                    CompanyId=dto.CompanyId,
+                    DepId=dto.DepId,
+                    JobName=dto.JobName,
+                    Remark=dto.Remark,
+                });
+                if (!res)
+                {
+                    return Ok(JsonView(false, "修改失败"));
+                }
+                return Ok(JsonView(true, "修改成功"));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        /// <summary>
+        /// 删除岗位
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> DelJobPost(DelJobPostDto dto)
+        {
+            try
+            {
+                bool res = await _jobRep.SoftDeleteAsync<Sys_JobPost>(dto.Id.ToString());
+                if (!res)
+                {
+                    return Ok(JsonView(false, "删除失败!"));
+                }
+                return Ok(JsonView(true, "删除成功"));
+            }
+            catch (Exception)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
         #endregion
         #endregion
 
 
         #region 用户操作
         #region 用户操作
+        /// <summary>
+        /// 查询所有员工(web)
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GetUserList(DtoBase dto)
+        {
+            try
+            {
+                var result = _userRep.GetUserList(dto.PortType, string.Empty);
+                if (result.Result.Code != 0)
+                {
+                    return Ok(JsonView(false, "暂无数据!"));
+
+                }
+                return Ok(JsonView(true, "查询成功!", result.Result.Data));
+            }
+            catch (Exception)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+
         /// <summary>
         /// <summary>
         /// 查询用户数据
         /// 查询用户数据
         /// </summary>
         /// </summary>
@@ -470,12 +551,100 @@ namespace OASystem.API.Controllers
            
            
         }
         }
 
 
+        /// <summary>
+        /// 修改用户信息(上级修改/分配 公司、部门、岗位、工号等信息)
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> EditUser(EditUserDto dto)
+        {
+            try
+            {
+                bool res = await _userRep.UpdateAsync<Sys_Users>(a => a.Id == dto.Id, a => new Sys_Users
+                {
+                    Number = dto.Number,
+                    CompanyId = dto.CompanyId,
+                    DepId = dto.DepId,
+                    JobPostId = dto.JobPostId,
+                    Ext = dto.Ext,
+                    UsePeriod = dto.UsePeriod,
+                    HrAudit = dto.HrAudit
+                });
+                if (!res) 
+                {
+                    return Ok(JsonView(false, "修改失败!"));
+                }
+                return Ok(JsonView(true, "修改成功!"));
+            }
+            catch (Exception)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+
+        /// <summary>
+        /// 修改用户信息(登录用户修改个人信息)
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
         [HttpPost]
         [HttpPost]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
-        public async Task<IActionResult> AddUser(AddUserDto dto)
+        public async Task<IActionResult> EditMyUser(EditMyUserDto dto)
         {
         {
-            int id = 0;
-            return Ok(JsonView(true, "添加成功!", new { Id = id }));
+            try
+            {
+                if (string.IsNullOrWhiteSpace(dto.CnName) || string.IsNullOrWhiteSpace(dto.Address) || string.IsNullOrWhiteSpace(dto.IDCard) || dto.Sex != 0 && dto.Sex != 1 ||
+                    string.IsNullOrWhiteSpace(dto.MaritalStatus) || string.IsNullOrWhiteSpace(dto.HomeAddress)|| dto.Birthday>=DateTime.Now.AddYears(-1))
+                {
+                    return Ok(JsonView(false, "请完善你的个人信息!"));
+                }
+                else if (string.IsNullOrWhiteSpace(dto.GraduateInstitutions) || string.IsNullOrWhiteSpace(dto.Professional) || dto.Education == 0 || string.IsNullOrWhiteSpace(dto.GraduateInstitutions))
+                {
+                    return Ok(JsonView(false, "请完善你的学历信息!"));
+                }
+                else if (string.IsNullOrWhiteSpace(dto.Phone) || string.IsNullOrWhiteSpace(dto.UrgentPhone) || string.IsNullOrWhiteSpace(dto.Email))
+                {
+                    return Ok(JsonView(false, "请检查联系方式、紧急联系人及邮箱输写是否正确!"));
+                }
+                else
+                {
+                    bool res = await _userRep.UpdateAsync<Sys_Users>(a => a.Id == dto.Id, a => new Sys_Users
+                    {
+                        CnName = dto.CnName,
+                        EnName = dto.EnName,
+                        Sex = dto.Sex,
+                        Phone = dto.Phone,
+                        UrgentPhone = dto.UrgentPhone,
+                        Email = dto.Email,
+                        Address = dto.Address,
+                        Edate = dto.Edate,
+                        Birthday = dto.Birthday,
+                        IDCard = dto.IDCard,
+                        GraduateInstitutions = dto.GraduateInstitutions,
+                        Professional = dto.Professional,
+                        Education = dto.Education,
+                        TheOrAdultEducation = dto.TheOrAdultEducation,
+                        MaritalStatus = dto.MaritalStatus,
+                        HomeAddress = dto.HomeAddress,
+                        WorkExperience = dto.WorkExperience,
+                        Certificate = dto.Certificate
+                    });
+                    if (!res)
+                    {
+                        return Ok(JsonView(false, "修改失败!"));
+                    }
+                    return Ok(JsonView(true, "修改成功!"));
+                }
+                
+            }
+            catch (Exception)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
         }
         }
         #endregion
         #endregion
 
 

+ 9 - 2
OASystem/OASystem.Api/OASystemAuthentication.cs

@@ -1,6 +1,13 @@
-namespace OASystem.API
+using Microsoft.AspNetCore.Mvc.Filters;
+using Microsoft.IdentityModel.Tokens;
+using System.IdentityModel.Tokens.Jwt;
+using IAuthorizationFilter = Microsoft.AspNetCore.Mvc.Filters.IAuthorizationFilter;
+
+namespace OASystem.API
 {
 {
-    public class OASystemAuthentication
+    public class OASystemAuthentication : AuthorizeAttribute
     {
     {
+
+
     }
     }
 }
 }

+ 22 - 4
OASystem/OASystem.Api/Program.cs

@@ -1,9 +1,13 @@
 
 
 using StackExchange.Redis;
 using StackExchange.Redis;
 using Autofac.Core;
 using Autofac.Core;
+using OASystem.API;
+using OASystem.RedisRepository.RedisAsyncHelper;
+using OASystem.RedisRepository.Config;
 
 
 var builder = WebApplication.CreateBuilder(args);
 var builder = WebApplication.CreateBuilder(args);
 var basePath = AppContext.BaseDirectory;
 var basePath = AppContext.BaseDirectory;
+
 //引入配置文件
 //引入配置文件
 var _config = new ConfigurationBuilder()
 var _config = new ConfigurationBuilder()
                  .SetBasePath(basePath)
                  .SetBasePath(basePath)
@@ -14,11 +18,21 @@ builder.Services.AddSingleton(new AppSettingsHelper(_config));
 // Add services to the container.
 // Add services to the container.
 builder.Services.AddControllersWithViews();
 builder.Services.AddControllersWithViews();
 
 
-#region redis
+#region Cors
+
+builder.Services.AddCors(policy =>
+{
+    policy.AddPolicy("Cors", opt => opt
+    .AllowAnyOrigin()
+    .AllowAnyHeader()
+    .AllowAnyMethod()
+    .WithExposedHeaders("X-Pagination"));
+});
 
 
 #endregion
 #endregion
 
 
 
 
+
 #region 接口分组
 #region 接口分组
 var groups = new List<Tuple<string, string>>
 var groups = new List<Tuple<string, string>>
 {
 {
@@ -124,6 +138,8 @@ if (AppSettingsHelper.Get("UseSwagger").ToBool())
 #endregion
 #endregion
 
 
 #region 添加校验
 #region 添加校验
+
+//builder.Services.AddTransient<OASystemAuthentication>();
 builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
 builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
 {
 {
     options.TokenValidationParameters = new TokenValidationParameters
     options.TokenValidationParameters = new TokenValidationParameters
@@ -135,6 +151,8 @@ builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJw
         ValidAudience = "OASystem.com",
         ValidAudience = "OASystem.com",
         ValidIssuer = "OASystem.com",
         ValidIssuer = "OASystem.com",
         IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["JwtSecurityKey"])),
         IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["JwtSecurityKey"])),
+        ClockSkew = TimeSpan.FromSeconds(30), //过期时间容错值,解决服务器端时间不同步问题(秒)
+        RequireExpirationTime = true,
     };
     };
 });
 });
 #endregion
 #endregion
@@ -198,9 +216,9 @@ if (!app.Environment.IsDevelopment())
 app.UseStaticFiles();
 app.UseStaticFiles();
 
 
 app.UseRouting();
 app.UseRouting();
-app.UseAuthentication();
-app.UseAuthorization();
-
+app.UseAuthentication(); // 认证
+app.UseAuthorization();  // 授权
+app.UseCors("Cors");  //Cors
 
 
 #region 启用swaggerUI
 #region 启用swaggerUI
 if (AppSettingsHelper.Get("UseSwagger").ToBool())
 if (AppSettingsHelper.Get("UseSwagger").ToBool())

+ 1 - 1
OASystem/OASystem.Api/appsettings.json

@@ -3,6 +3,6 @@
     "OA2023DB": "server=132.232.92.186;uid=sa;pwd=Yjx@158291;database=OA2023DB;"
     "OA2023DB": "server=132.232.92.186;uid=sa;pwd=Yjx@158291;database=OA2023DB;"
   },
   },
   "JwtSecurityKey": "48d3f4fe770940a1068052f581536b81", //jwt密钥
   "JwtSecurityKey": "48d3f4fe770940a1068052f581536b81", //jwt密钥
-  "UseSwagger": "true", //启用Swagger
+  "UseSwagger": "true" //启用Swagger
 
 
 }
 }

+ 3 - 2
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -24,12 +24,13 @@ namespace OASystem.Domain.AutoMappers
 
 
             #region 部门板块
             #region 部门板块
             CreateMap<Sys_Department, DepartmentIView>();
             CreateMap<Sys_Department, DepartmentIView>();
-            CreateMap<AddDepartmentDto,Sys_Department>();
-            CreateMap<EditDepartmentDto,Sys_Department>();
+            CreateMap<AddDepartmentDto, Sys_Department>();
+            CreateMap<EditDepartmentDto, Sys_Department>();
             #endregion
             #endregion
 
 
             #region 岗位板块
             #region 岗位板块
             CreateMap<Sys_JobPost, JobPostView>();
             CreateMap<Sys_JobPost, JobPostView>();
+            CreateMap<AddJobPostDto,Sys_JobPost>();
             #endregion
             #endregion
 
 
             #region 用户板块
             #region 用户板块

+ 66 - 0
OASystem/OASystem.Domain/Dtos/System/JobPostDto.cs

@@ -6,6 +6,9 @@ using System.Threading.Tasks;
 
 
 namespace OASystem.Domain.Dtos.System
 namespace OASystem.Domain.Dtos.System
 {
 {
+    /// <summary>
+    /// 查询岗位
+    /// </summary>
     public class QueryJobPostDto : DtoBase
     public class QueryJobPostDto : DtoBase
     {
     {
         /// <summary>
         /// <summary>
@@ -18,4 +21,67 @@ namespace OASystem.Domain.Dtos.System
         /// </summary>
         /// </summary>
         public int DepId { get; set; }
         public int DepId { get; set; }
     }
     }
+    /// <summary>
+    /// 添加岗位dto
+    /// </summary>
+    public class AddJobPostDto
+    {
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+        /// <summary>
+        /// 部门Id
+        /// </summary>
+        public int DepId { get; set; }
+        /// <summary>
+        /// 岗位名称
+        /// </summary>
+        public string JobName { get; set; }
+        /// <summary>
+        /// 创建者Id
+        /// </summary>
+        public int CreateUserId { get; set; }
+       
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+       
+    }
+    /// <summary>
+    /// 修改岗位dto
+    /// </summary>
+    public class EditJobPostDto
+    {
+        /// <summary>
+        /// 岗位Id
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+        /// <summary>
+        /// 部门Id
+        /// </summary>
+        public int DepId { get; set; }
+        /// <summary>
+        /// 岗位名称
+        /// </summary>
+        public string JobName { get; set; }
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+
+    }
+
+    public class DelJobPostDto
+    {
+        /// <summary>
+        /// 职位Id
+        /// </summary>
+        public int Id { get; set; }
+    }
 }
 }

+ 170 - 2
OASystem/OASystem.Domain/Dtos/System/UserDto.cs

@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 using System.Text;
 using System.Text;
+using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 
 
 namespace OASystem.Domain.Dtos.System
 namespace OASystem.Domain.Dtos.System
@@ -21,10 +22,177 @@ namespace OASystem.Domain.Dtos.System
         public int DepId { get;set; }
         public int DepId { get;set; }
     }
     }
     /// <summary>
     /// <summary>
-    /// 员工添加dto
+    /// 修改用户信息
     /// </summary>
     /// </summary>
-    public class AddUserDto
+    public class EditUserDto
     {
     {
+        /// <summary>
+        /// 用户Id
+        /// </summary>
+        public int Id { 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>
+        /// 分机号
+        /// </summary>
+        public string Ext { get; set; }
+        /// <summary>
+        /// 试用期
+        /// </summary>
+        public string UsePeriod { get; set; }
+        /// <summary>
+        /// 人事审核 0未审核(初始状态) 1 已通过(可用)2已拒绝
+        /// </summary>
+        public int HrAudit { get; set; }
+    }
+
+    /// <summary>
+    /// 修改个人信息
+    /// </summary>
+    public class EditMyUserDto
+    {
+        /// <summary>
+        /// 用户Id
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 中文姓名
+        /// </summary>
+        public string CnName { get; set; }
+        /// <summary>
+        /// 英文姓名
+        /// </summary>
+        public string EnName { get; set; }
+
+        /// <summary>
+        /// 性别0 男1 女  2 未设置
+        /// </summary>
+        public int Sex { get; set; }
+
+        private string phone;
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        public string Phone
+        {
+            get
+            {
+                return phone;
+            }
+            set
+            {
+                if (Regex.IsMatch(value, @"^[1]+[2,3,4,5,6,7,8,9]+\d{9}"))
+                {
+                    phone = value;
+                }
+                else
+                {
+                    phone = "";
+                }
+            }
+        }
+        private string urgentPhone;
+        /// <summary>
+        /// 紧急联系人 手机号
+        /// </summary>
+        public string UrgentPhone
+        {
+            get { return urgentPhone; }
+            set
+            {
+                if (Regex.IsMatch(value, @"^[1]+[2,3,4,5,6,7,8,9]+\d{9}"))
+                {
+                    urgentPhone = value;
+                }
+                else
+                {
+                    urgentPhone = "";
+                }
+            }
+        }
+        private string email;
+        /// <summary>
+        /// 邮箱
+        /// </summary>
+        public string Email
+        {
+            get { return email; }
+            set
+            {
+                if (Regex.IsMatch(value, @"^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(com|cn|net)$"))
+                {
+                    email = value;
+                }
+                else
+                {
+                    email = "";
+                }
+            }
+        }
+        /// <summary>
+        /// 住址
+        /// </summary>
+        public string Address { get; set; }
+        /// <summary>
+        /// 入职时间
+        /// </summary>
+        public DateTime Edate { get; set; }
+        /// <summary>
+        /// 生日
+        /// </summary>
+        public DateTime Birthday { get; set; }
+        /// <summary>
+        /// 身份证号码
+        /// </summary>
+        public string IDCard { get; set; }
+
+        /// <summary>
+        /// 毕业学校
+        /// </summary>
+        public string GraduateInstitutions { get; set; }
+        /// <summary>
+        /// 专业
+        /// </summary>
+        public string Professional { get; set; }
+        /// <summary>
+        /// 学历
+        /// </summary>
+        public int Education { get; set; }
+        /// <summary>
+        /// 学历类型
+        /// </summary>
+        public int TheOrAdultEducation { get; set; }
+        /// <summary>
+        /// 婚姻状态
+        /// </summary>
+        public string MaritalStatus { get; set; }
+        /// <summary>
+        /// 家庭地址
+        /// </summary>
+        public string HomeAddress { get; set; }
+
+        /// <summary>
+        /// 工作经历
+        /// </summary>
+        public string WorkExperience { get; set; }
+        /// <summary>
+        /// 证书上传
+        /// </summary>
+        public string Certificate { get; set; }
 
 
     }
     }
 }
 }

+ 4 - 1
OASystem/OASystem.Domain/Entities/Groups/Grp_DeleClientNeeds.cs

@@ -29,8 +29,11 @@ namespace OASystem.Domain.Entities.Groups
         public string HotelAddress { get; set; }
         public string HotelAddress { get; set; }
         /// <summary>
         /// <summary>
         /// 酒店星级
         /// 酒店星级
+        /// 一星 二星级 三星 四星  
+        /// 普通五星 精品五星 奢华五星 豪华五星
+        /// 多个 普通五星|豪华五星
         /// </summary>
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
         public string HotelStarRank { get; set; }
         public string HotelStarRank { get; set; }
         /// <summary>
         /// <summary>
         /// 酒店其他需求
         /// 酒店其他需求

+ 10 - 9
OASystem/OASystem.Domain/Entities/Groups/Grp_DelegationInfo.cs

@@ -7,7 +7,7 @@ using System.Threading.Tasks;
 namespace OASystem.Domain.Entities.Groups
 namespace OASystem.Domain.Entities.Groups
 {
 {
     /// <summary>
     /// <summary>
-    /// 团组表
+    /// 团组信息
     /// </summary>
     /// </summary>
     [SugarTable("Grp_DelegationInfo")]
     [SugarTable("Grp_DelegationInfo")]
     public class Grp_DelegationInfo:EntityBase
     public class Grp_DelegationInfo:EntityBase
@@ -65,7 +65,7 @@ namespace OASystem.Domain.Entities.Groups
         /// <summary>
         /// <summary>
         /// 出访国家
         /// 出访国家
         /// </summary>
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
         public string VisitCountry { get; set; }
         public string VisitCountry { get; set; }
         /// <summary>
         /// <summary>
         /// 出访目的
         /// 出访目的
@@ -125,10 +125,11 @@ namespace OASystem.Domain.Entities.Groups
         /// <summary>
         /// <summary>
         /// 预算成本
         /// 预算成本
         /// </summary>
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
-        public string BudgetCost { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal BudgetCost { get; set; }
         /// <summary>
         /// <summary>
-        /// 是否操作完成 0否1是
+        /// 是否操作完成 
+        /// 0否1是
         /// </summary>
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int IsSure { get; set; }
         public int IsSure { get; set; }
@@ -140,12 +141,12 @@ namespace OASystem.Domain.Entities.Groups
         /// <summary>
         /// <summary>
         /// 手机号
         /// 手机号
         /// </summary>
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
         public string TellPhone { get; set; }
         public string TellPhone { get; set; }
         /// <summary>
         /// <summary>
         /// 团组客户级别
         /// 团组客户级别
         /// </summary>
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
         public string TeamLev { get; set; }
         public string TeamLev { get; set; }
         /// <summary>
         /// <summary>
         /// 酒店投诉标识 0-未投诉1-已投诉
         /// 酒店投诉标识 0-未投诉1-已投诉
@@ -185,8 +186,8 @@ namespace OASystem.Domain.Entities.Groups
         /// <summary>
         /// <summary>
         /// 支付款项(预付)
         /// 支付款项(预付)
         /// </summary>
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
-        public string PaymentMoney { get; set; }
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal PaymentMoney { get; set; }
         /// <summary>
         /// <summary>
         /// 预付期限
         /// 预付期限
         /// </summary>
         /// </summary>

+ 163 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_ScheduleInfo.cs

@@ -0,0 +1,163 @@
+using OASystem.Domain.Enums;
+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_Schedule")]
+    public class Grp_ScheduleInfo : EntityBase
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DiId { get; set; }
+
+        /// <summary>
+        /// 主流程
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public GrpSchedulePrimaryStepEnum PrimaryStep { get; set; }
+
+        /// <summary>
+        /// 子流程
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DetailStep { get; set; }
+
+        /// <summary>
+        /// 预计开始时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
+        public DateTime ExpectBeginDt { get; set; }
+
+        /// <summary>
+        /// 预计结束时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
+        public DateTime ExpectEndDt { get; set; }
+
+        /// <summary>
+        /// 实际开始时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
+        public DateTime RealBeginDt { get; set; }
+
+        /// <summary>
+        /// 实际结束时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
+        public DateTime RealEndDt { get; set; }
+
+        /// <summary>
+        /// 总负责人(SysUser.Id)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Leader { get; set; }
+        /// <summary>
+        /// 异常状态0:正常,1:异常
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Exception { get; set; }
+    }
+
+
+    /// <summary>
+    /// 团组流程管控详细进度
+    /// </summary>
+    [SugarTable("Grp_ScheduleDetail")]
+    public class Grp_ScheduleDetailInfo : EntityBase
+    {
+        /// <summary>
+        /// 团组流程Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int ScheduleId { get; set; }
+
+        /// <summary>
+        /// 流程
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Step { get; set; }
+
+        /// <summary>
+        /// 父级流程
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int ParentStep { get; set; }
+
+        /// <summary>
+        /// 负责人员(SysUser.Id)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Duty { get; set; }
+
+        /// <summary>
+        /// 预计开始时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
+        public DateTime ExpectBeginDt { get; set; }
+
+        /// <summary>
+        /// 预计结束时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
+        public DateTime ExpectEndDt { get; set; }
+
+        /// <summary>
+        /// 实际开始时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
+        public DateTime RealBeginDt { get; set; }
+
+        /// <summary>
+        /// 实际结束时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "datetime")]
+        public DateTime RealEndDt { get; set; }
+
+        /// <summary>
+        /// 异常状态0:正常,1:异常
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Exception { get; set; }
+    }
+
+    /// <summary>
+    /// 团组流程管控人员配置
+    /// </summary>
+    [SugarTable("Grp_SchedulePerson")]
+    public class Grp_SchedulePersonInfo : EntityBase
+    {
+        /// <summary>
+        /// 流程Id
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int ScheduleId { get; set; }
+
+        /// <summary>
+        /// 人员编号(SysUser.Id)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int SysUserId { get; set; }
+
+        /// <summary>
+        /// 人员姓名
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string SysUserName { get; set; }
+
+        /// <summary>
+        /// 负责工作
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string JobStr { get; set; }
+
+    }
+}

+ 2 - 2
OASystem/OASystem.Domain/Entities/System/Sys_Users.cs

@@ -90,7 +90,7 @@ namespace OASystem.Domain.Entities.System
         public int Seniority { get; set; }
         public int Seniority { get; set; }
         /// <summary>
         /// <summary>
         /// 生日
         /// 生日
-        /// </summary>
+        /// </summary> 
         [SugarColumn(IsNullable = true,ColumnDataType = "DateTime")]
         [SugarColumn(IsNullable = true,ColumnDataType = "DateTime")]
         public DateTime Birthday { get; set; }
         public DateTime Birthday { get; set; }
         /// <summary>
         /// <summary>
@@ -114,7 +114,7 @@ namespace OASystem.Domain.Entities.System
         [SugarColumn(IsNullable = true,ColumnDataType ="varchar(50)")]
         [SugarColumn(IsNullable = true,ColumnDataType ="varchar(50)")]
         public string Professional { get; set; }
         public string Professional { get; set; }
         /// <summary>
         /// <summary>
-        /// 专业
+        /// 学历
         /// </summary>
         /// </summary>
         [SugarColumn(IsNullable = true,ColumnDataType ="int")]
         [SugarColumn(IsNullable = true,ColumnDataType ="int")]
         public int Education { get; set; }
         public int Education { get; set; }

+ 99 - 0
OASystem/OASystem.Domain/Enums/GrpScheduleEnum.cs

@@ -0,0 +1,99 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Enums
+{
+    /// <summary>
+    /// 团组流程
+    /// </summary>
+    public enum GrpSchedulePrimaryStepEnum
+    {
+        /// <summary>
+        /// 确认出团
+        /// </summary>
+        [Description("确认出团")]
+        Confirm = 1,
+
+        /// <summary>
+        /// 经费预算
+        /// </summary>
+        [Description("经费预算")]
+        Budget = 2,
+
+        /// <summary>
+        /// 市场部人员对接反馈
+        /// </summary>
+        [Description("市场部人员对接反馈")]
+        Feedback = 3,
+
+        /// <summary>
+        /// 报批流程
+        /// </summary>
+        [Description("报批流程")]
+        Puote = 4,
+
+        /// <summary>
+        /// 护照签证
+        /// </summary>
+        [Description("护照签证")]
+        Visa = 5,
+
+        /// <summary>
+        /// 业务流程
+        /// </summary>
+        [Description("业务操作")]
+        Business = 6,
+
+        /// <summary>
+        /// 费用审批
+        /// </summary>
+        [Description("费用审批")]
+        CostAudit = 7,
+
+        /// <summary>
+        /// 付款给供应商
+        /// </summary>
+        [Description("付款给供应商")]
+        Pay = 8,
+
+        /// <summary>
+        /// 出行事项会议
+        /// </summary>
+        [Description("出行事项会议")]
+        Training = 9,
+
+        /// <summary>
+        /// 送机
+        /// </summary>
+        [Description("送机")]
+        DropOff = 10,
+
+        /// <summary>
+        /// 接机
+        /// </summary>
+        [Description("接机")]
+        PickUp = 11,
+
+        /// <summary>
+        /// 收款
+        /// </summary>
+        [Description("收款")]
+        Collect = 12,
+
+        /// <summary>
+        /// 团组完成
+        /// </summary>
+        [Description("团组完成")]
+        Finish = 13,
+
+        /// <summary>
+        /// 团组取消
+        /// </summary>
+        [Description("团组取消")]
+        Cancel = 14,
+    }
+}

+ 0 - 26
OASystem/OASystem.Domain/Enums/RedisEnum.cs

@@ -1,26 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace OASystem.Domain.Enums
-{
-    /// <summary>
-    /// redis DBEnum
-    /// </summary>
-    public enum RedisEnum : int
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        [Description("redis 通用")]
-        Common = 0,
-        /// <summary>
-        /// 
-        /// </summary>
-        [Description("消息推送")]
-        Message = 1,  
-    }
-}

+ 0 - 13
OASystem/OASystem.Domain/Enums/RedisFolderEnum.cs

@@ -1,13 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace OASystem.Domain.Enums
-{
-    public enum RedisFolderEnum : int
-    {
-        Root = 0,
-    }
-}

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

@@ -27,14 +27,19 @@ namespace OASystem.Infrastructure.Repositories.Login
         public async Task<Result> Login(LoginDto loginDto)
         public async Task<Result> Login(LoginDto loginDto)
         {
         {
             Result result = new Result() { Code = -2 };
             Result result = new Result() { Code = -2 };
-            string SQLWhere = string.Format("Where Number='{0}' And Password='{1}'", loginDto.Number, loginDto.Password);
+            string SQLWhere = string.Format("Where Number='{0}'", loginDto.Number);
             string sql = string.Format("Select * From Sys_Users With(NoLock) {0}", SQLWhere);
             string sql = string.Format("Select * From Sys_Users With(NoLock) {0}", SQLWhere);
             Sys_Users _entity = await GetSingleInfoBySqlWithNolockAsync(sql);
             Sys_Users _entity = await GetSingleInfoBySqlWithNolockAsync(sql);
 
 
-
             if (_entity == null)
             if (_entity == null)
             {
             {
-                result.Msg = "暂无该账号信息!";
+                result.Msg = "暂无该账户信息!";
+                return result;
+            }
+
+            if (_entity.Password != loginDto.Password)
+            {
+                result.Msg = "账户或密码错误!";
                 return result;
                 return result;
             }
             }
 
 

+ 154 - 0
OASystem/_Doc/OA2023数据字典.docx

@@ -2577,6 +2577,160 @@ Null
 
 
 超出预算比例
 超出预算比例
 
 
+11) 团组流程管控表:Grp_Schedule
+                                   字段名
+                                 类型长度
+                                 字段属性
+                                 字段约束
+                                 字段描述
+                                    备注
+DiId
+Int
+Null
+
+团组Id
+团组表Id
+PrimaryStep
+Int
+Null
+
+主流程标识枚举
+GrpSchedulePrimaryStepEnum
+DetailStep
+Int
+Null
+
+子流程标识
+
+ExpectBeginDt
+DateTime
+Null
+
+预计开始时间
+
+ExpectEndDt
+DateTime
+Null
+
+预计结束时间
+
+RealBeginDt
+Int
+Null
+
+实际开始时间
+
+RealEndDt
+decimal(10, 2)
+Null
+
+实际结束时间
+
+Leader
+varchar(50)
+Null
+
+总负责人
+Sys_Users.Id
+Exception
+Int
+Null
+
+异常标识
+
+12) 团组流程管控详细进度表:Grp_ScheduleDetail
+                                   字段名
+                                 类型长度
+                                 字段属性
+                                 字段约束
+                                 字段描述
+                                    备注
+ScheduleId
+Int
+Null
+
+团组流程表Id
+Grp_Schedule.Id
+Step
+Int
+Null
+
+流程
+
+ParentStep
+Int
+Null
+
+父级流程
+
+Duty
+Int
+Null
+
+负责人
+Sys_Users.Id
+ExpectBeginDt
+DateTime
+Null
+
+预计开始时间
+
+ExpectEndDt
+DateTime
+Null
+
+预计结束时间
+
+RealBeginDt
+Int
+Null
+
+实际开始时间
+
+RealEndDt
+decimal(10, 2)
+Null
+
+实际结束时间
+
+Exception
+Int
+Null
+
+异常标识
+
+
+13) 团组流程管控人员配置表:Grp_SchedulePerson
+                                   字段名
+                                 类型长度
+                                 字段属性
+                                 字段约束
+                                 字段描述
+                                    备注
+ScheduleId
+Int
+Null
+
+团组流程表Id
+Grp_Schedule.Id
+SysUserId
+Int
+Null
+
+负责人编号
+Sys_Users.Id
+SysUserName
+varchar(50)
+Null
+
+负责人姓名
+
+JobStr
+varchar(50)
+Null
+
+负责工作
+
 
 
 1. 资源板块
 1. 资源板块
 1) 酒店数据表:Res_HotelData(挪用)
 1) 酒店数据表:Res_HotelData(挪用)