瀏覽代碼

合并服务器代码

yuanrf 2 年之前
父節點
當前提交
e0a225ebf8

+ 6 - 2
OASystem/EntitySync/Program.cs

@@ -71,7 +71,11 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Res_CarInfo),
     //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("数据库结构同步完成!");

+ 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
 {
@@ -24,11 +21,13 @@ namespace OASystem.API.Controllers
         private readonly PageFunctionPermissionRepository _PageFunctionPermissionRepository;
         private readonly SystemMenuAndFunctionRepository _SystemMenuAndFunctionRepository;
         private readonly JobPostAuthorityRepository _JobPostAuthorityRepository;
+        private readonly JobPostRepository _jobRep;
 
         public SystemController( CompanyRepository syscom, DepartmentRepository sysDepRep, UsersRepository userRep,
             IMapper mapper, SetDataRepository setDataRepository, CompanyRepository companyRepository,
             SystemMenuPermissionRepository systemMenuPermissionRepository, PageFunctionPermissionRepository pageFunctionPermissionRepository,
-            SystemMenuAndFunctionRepository systemMenuAndFunctionRepository, JobPostAuthorityRepository jobPostAuthorityRepository)
+            SystemMenuAndFunctionRepository systemMenuAndFunctionRepository, JobPostAuthorityRepository jobPostAuthorityRepository, JobPostRepository jobRep)
+            
         {
             _syscomRep = syscom;
             _sysDepRep = sysDepRep;
@@ -42,35 +41,6 @@ namespace OASystem.API.Controllers
             _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 企业操作
         /// <summary>
         /// 查询企业数据
@@ -85,7 +55,13 @@ namespace OASystem.API.Controllers
             {
                 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)
                 {
@@ -229,7 +205,7 @@ namespace OASystem.API.Controllers
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
-        //[Authorize]
+        
         [HttpPost]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> QueryDepartmentList(DepartmentDto dto)
@@ -329,7 +305,7 @@ namespace OASystem.API.Controllers
                         DepName=dto.DepName,
                         ParentDepId=dto.ParentDepId,
                         Remark=dto.Remark,
-    });
+                     });
                     if (!res)
                     {
                         return Ok(JsonView(false, "修改失败!"));
@@ -404,7 +380,7 @@ namespace OASystem.API.Controllers
                 }
                 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)
                     {
                         return Ok(JsonView(false, "暂无数据!"));
@@ -426,9 +402,114 @@ namespace OASystem.API.Controllers
                 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
 
         #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>
@@ -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]
         [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
 

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

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

@@ -6,6 +6,9 @@ using System.Threading.Tasks;
 
 namespace OASystem.Domain.Dtos.System
 {
+    /// <summary>
+    /// 查询岗位
+    /// </summary>
     public class QueryJobPostDto : DtoBase
     {
         /// <summary>
@@ -18,4 +21,67 @@ namespace OASystem.Domain.Dtos.System
         /// </summary>
         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.Linq;
 using System.Text;
+using System.Text.RegularExpressions;
 using System.Threading.Tasks;
 
 namespace OASystem.Domain.Dtos.System
@@ -21,10 +22,177 @@ namespace OASystem.Domain.Dtos.System
         public int DepId { get;set; }
     }
     /// <summary>
-    /// 员工添加dto
+    /// 修改用户信息
     /// </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; }
         /// <summary>
         /// 酒店星级
+        /// 一星 二星级 三星 四星  
+        /// 普通五星 精品五星 奢华五星 豪华五星
+        /// 多个 普通五星|豪华五星
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
         public string HotelStarRank { get; set; }
         /// <summary>
         /// 酒店其他需求

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

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

+ 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; }
         /// <summary>
         /// 生日
-        /// </summary>
+        /// </summary> 
         [SugarColumn(IsNullable = true,ColumnDataType = "DateTime")]
         public DateTime Birthday { get; set; }
         /// <summary>
@@ -114,7 +114,7 @@ namespace OASystem.Domain.Entities.System
         [SugarColumn(IsNullable = true,ColumnDataType ="varchar(50)")]
         public string Professional { get; set; }
         /// <summary>
-        /// 专业
+        /// 学历
         /// </summary>
         [SugarColumn(IsNullable = true,ColumnDataType ="int")]
         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)
         {
             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);
             Sys_Users _entity = await GetSingleInfoBySqlWithNolockAsync(sql);
 
-
             if (_entity == null)
             {
-                result.Msg = "暂无该账号信息!";
+                result.Msg = "暂无该账户信息!";
+                return result;
+            }
+
+            if (_entity.Password != loginDto.Password)
+            {
+                result.Msg = "账户或密码错误!";
                 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) 酒店数据表:Res_HotelData(挪用)