Quellcode durchsuchen

增加 Group deng....

leiy vor 2 Jahren
Ursprung
Commit
a8831e58f0
24 geänderte Dateien mit 708 neuen und 150 gelöschten Zeilen
  1. 67 0
      OASystem/OASystem.Api/Controllers/GroupsController.cs
  2. 229 51
      OASystem/OASystem.Api/Controllers/SystemController.cs
  3. 22 0
      OASystem/OASystem.Api/OAMethodLib/DateTimeJsonConverter.cs
  4. 11 15
      OASystem/OASystem.Api/Program.cs
  5. 1 1
      OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs
  6. 3 0
      OASystem/OASystem.Domain/Dtos/DtoBase.cs
  7. 35 0
      OASystem/OASystem.Domain/Dtos/Groups/Grp_ScheduleDto.cs
  8. 5 0
      OASystem/OASystem.Domain/Dtos/System/CompanyDto.cs
  9. 15 0
      OASystem/OASystem.Domain/Dtos/System/QueryUserAuthDto.cs
  10. 19 0
      OASystem/OASystem.Domain/Dtos/System/SaveJobDto.cs
  11. 10 4
      OASystem/OASystem.Domain/Entities/Groups/Grp_ScheduleInfo.cs
  12. 6 0
      OASystem/OASystem.Domain/Entities/System/Sys_UserAuthority.cs
  13. 39 0
      OASystem/OASystem.Domain/Enums/EnumHelper.cs
  14. 6 0
      OASystem/OASystem.Domain/Enums/GrpScheduleEnum.cs
  15. 9 0
      OASystem/OASystem.Domain/ViewModels/CompanyView.cs
  16. 69 0
      OASystem/OASystem.Domain/ViewModels/Groups/Grp_ScheduleView.cs
  17. 18 0
      OASystem/OASystem.Domain/ViewModels/System/DepartmentView.cs
  18. 33 0
      OASystem/OASystem.Domain/ViewModels/System/UserAuthorityView.cs
  19. 12 4
      OASystem/OASystem.Domain/ViewModels/System/UserInfoView.cs
  20. 18 1
      OASystem/OASystem.Infrastructure/Repositories/BaseRepository.cs
  21. 64 0
      OASystem/OASystem.Infrastructure/Repositories/Groups/GrpScheduleRepository.cs
  22. 10 0
      OASystem/OASystem.Infrastructure/Repositories/System/UserAuthorityRepository.cs
  23. 1 1
      OASystem/OASystem.Infrastructure/Repositories/System/UsersRepository.cs
  24. 6 73
      OASystem/_Doc/OA2023数据字典.docx

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

@@ -0,0 +1,67 @@
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json.Serialization;
+using OASystem.Domain.Dtos.Groups;
+using OASystem.Domain.ViewModels.Groups;
+using OASystem.Infrastructure.Repositories.Groups;
+
+namespace OASystem.API.Controllers
+{
+    /// <summary>
+    /// 团组
+    /// </summary>
+    //[Authorize]
+    [Route("api/[controller]/[action]")]
+    public class GroupsController : ControllerBase
+    {
+        private readonly GrpScheduleRepository _grpScheduleRep;
+        private readonly IMapper _mapper;
+        public GroupsController(IMapper mapper, GrpScheduleRepository grpScheduleRep)
+        {
+            _mapper = mapper;
+            _grpScheduleRep = grpScheduleRep;
+        }
+
+        #region 流程管控
+
+        /// <summary>
+        /// 获取团组流程管控信息
+        /// </summary>
+        /// <param name="paras">参数Json字符串</param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostGrpSchedule(string paras)
+        {
+            if (string.IsNullOrEmpty(paras))
+            {
+                return Ok(JsonView(false, "参数为空"));
+            }
+
+            Grp_ScheduleDto _ScheduleDto = JsonConvert.DeserializeObject<Grp_ScheduleDto>(paras);
+            if (_ScheduleDto != null)
+            {
+                if (_ScheduleDto.SearchType == 2)//获取列表
+                {
+
+                }
+                else//获取对象
+                {
+                    Grp_ScheduleView _grpScheduleView = await _grpScheduleRep.GetView_GrpSchedule(_ScheduleDto);
+                    if (_grpScheduleView != null)
+                    {
+                        return Ok(JsonView(0, "获取成功", _grpScheduleView));
+                    }
+                }
+            }
+            else
+            {
+                return Ok(JsonView(false, "参数反序列化失败"));
+            }
+
+            return Ok(JsonView(false, "暂无数据!"));
+        }
+
+        #endregion
+
+    }
+}

+ 229 - 51
OASystem/OASystem.Api/Controllers/SystemController.cs

@@ -1,4 +1,5 @@
 using System.Collections;
+using static OpenAI.GPT3.ObjectModels.SharedModels.IOpenAiModels;
 
 namespace OASystem.API.Controllers
 {
@@ -9,12 +10,11 @@ namespace OASystem.API.Controllers
     [Route("api/[controller]/[action]")]
     public class SystemController : ControllerBase
     {
-        private readonly IMapper _mapper;
-
-        private readonly MessageRepository _message;
+      
         private readonly CompanyRepository _syscomRep;
         private readonly DepartmentRepository _sysDepRep;
         private readonly UsersRepository _userRep;
+        private readonly IMapper _mapper;
 
         private readonly SetDataRepository _setDataRepository;
         private readonly SystemMenuPermissionRepository _SystemMenuPermissionRepository;
@@ -23,14 +23,15 @@ namespace OASystem.API.Controllers
         private readonly SystemMenuAndFunctionRepository _SystemMenuAndFunctionRepository;
         private readonly JobPostAuthorityRepository _JobPostAuthorityRepository;
         private readonly JobPostRepository _jobRep;
+        private readonly UserAuthorityRepository _UserAuthorityRepository;
 
-        public SystemController(MessageRepository message, CompanyRepository syscom, DepartmentRepository sysDepRep, UsersRepository userRep,
+        public SystemController( CompanyRepository syscom, DepartmentRepository sysDepRep, UsersRepository userRep,
             IMapper mapper, SetDataRepository setDataRepository, CompanyRepository companyRepository,
             SystemMenuPermissionRepository systemMenuPermissionRepository, PageFunctionPermissionRepository pageFunctionPermissionRepository,
-            SystemMenuAndFunctionRepository systemMenuAndFunctionRepository, JobPostAuthorityRepository jobPostAuthorityRepository, 
-            JobPostRepository jobRep)
+            SystemMenuAndFunctionRepository systemMenuAndFunctionRepository, JobPostAuthorityRepository jobPostAuthorityRepository, JobPostRepository jobRep
+            , UserAuthorityRepository userAuthorityRepository)
+            
         {
-            _message = message;
             _syscomRep = syscom;
             _sysDepRep = sysDepRep;
             _userRep = userRep;
@@ -41,42 +42,9 @@ namespace OASystem.API.Controllers
             _PageFunctionPermissionRepository = pageFunctionPermissionRepository;
             _SystemMenuAndFunctionRepository = systemMenuAndFunctionRepository;
             _JobPostAuthorityRepository = jobPostAuthorityRepository;
+            _UserAuthorityRepository = userAuthorityRepository;
         }
 
-
-        #region 系统消息
-
-        /// <summary>
-        /// 获取消息List
-        /// </summary>
-        /// <param name="uId">用户Id</param>
-        /// <returns></returns>
-        [HttpPost]
-        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
-        public async Task<IActionResult> GetMsgList(int uId)
-        {
-            try
-            {
-                var msgResult = await _message.GetMsgList(uId);
-                if (msgResult.Code != 0)
-                {
-                    return Ok(JsonView(msgResult.Msg));
-                }
-                
-
-                return Ok(JsonView(true, "查询成功!", msgResult.Data));
-
-            }
-            catch (Exception ex)
-            {
-                return Ok(JsonView(false, ex.Message));
-                throw;
-            }
-        }
-
-
-        #endregion
-
         #region 企业操作
         /// <summary>
         /// 查询企业数据
@@ -103,6 +71,15 @@ namespace OASystem.API.Controllers
                         {
                             companyListView[i].ParentCompanyName = companyListView.Find(x => x.Id == companyListView[i].ParentCompanyId).CompanyName;
                         }
+                        if (companyListView[i].ContactUserId!=0)
+                        {
+                            var user = _userRep.QueryDto<Sys_Users,UserInfoWebView>(x => x.Id == companyListView[i].ContactUserId).ToList();
+                            if (user.Count!=0)
+                            {
+                                companyListView[i].ContactUserName = user[0].CnName;
+                            }
+                           
+                        }
 
                     }
                     return Ok(JsonView(true, "查询成功!", companyListView));
@@ -184,7 +161,7 @@ namespace OASystem.API.Controllers
         {
             try
             {
-                if (string.IsNullOrWhiteSpace(dto.CompanyName) || string.IsNullOrWhiteSpace(dto.CompanyCode) || string.IsNullOrWhiteSpace(dto.Address) || dto.ParentCompanyId == 0 || dto.ContactUserId == 0)
+                if (string.IsNullOrWhiteSpace(dto.CompanyName) || string.IsNullOrWhiteSpace(dto.CompanyCode) || string.IsNullOrWhiteSpace(dto.Address)  || dto.ContactUserId == 0)
                 {
                     return Ok(JsonView(false, "请检查信息是否输入完整!"));
                 }
@@ -202,6 +179,7 @@ namespace OASystem.API.Controllers
                         ParentCompanyId = dto.ParentCompanyId,
                         Tel = dto.Tel,
                         ContactUserId = dto.ContactUserId,
+                        Remark=dto.Remark,
                     });
                     if (!res) { return Ok(JsonView(false, "修改失败")); }
                     return Ok(JsonView(true,"修改成功!"));
@@ -258,12 +236,53 @@ namespace OASystem.API.Controllers
             {
                 if (dto.PortType==1)
                 {
-                    var result = _sysDepRep.QueryDto<Sys_Department, DepartmentIView>(s => s.CompanyId == dto.CompanyId).ToList();
-                    if (result.Count == 0)
+                    if (dto.CompanyId!=0)
                     {
-                        return Ok(JsonView(false, "暂无数据!"));
+                        var result = _sysDepRep.QueryDto<Sys_Department, DepartmentIView>(s => s.CompanyId == dto.CompanyId).ToList();
+                        if (result.Count == 0)
+                        {
+
+                            return Ok(JsonView(false, "暂无数据!"));
+                        }
+                        for (int i = 0; i < result.Count; i++)
+                        {
+                            if (result[i].ParentDepId != 0)
+                            {
+                                result[i].ParentDepName = result.Find(x => x.Id == result[i].ParentDepId).ParentDepName;
+                            }
+                            var company = _sysDepRep.QueryDto<Sys_Company, CompanyView>(s => s.Id == result[i].CompanyId).ToList();
+                            if (company.Count != 0)
+                            {
+                                result[i].CompanyName = company[0].CompanyName;
+                            }
+                            return Ok(JsonView(true, "查询成功!", result));
+                        }
                     }
-                    return Ok(JsonView(true, "查询成功!", result));
+                    else
+                    {
+                        var result = _sysDepRep.QueryDto<Sys_Department, DepartmentIView>(s => s.IsDel <=1).ToList();
+                        if (result.Count == 0)
+                        {
+
+                            return Ok(JsonView(false, "暂无数据!"));
+                        }
+                        for (int i = 0; i < result.Count; i++)
+                        {
+                            if (result[i].ParentDepId != 0)
+                            {
+                                result[i].ParentDepName = result.Find(x => x.Id == result[i].ParentDepId).ParentDepName;
+                            }
+                            var company = _sysDepRep.QueryDto<Sys_Company, CompanyView>(s => s.Id == result[i].CompanyId).ToList();
+                            if (company.Count != 0)
+                            {
+                                result[i].CompanyName = company[0].CompanyName;
+                            }
+                        }
+                        return Ok(JsonView(true, "查询成功!", result));
+                    }
+                    return Ok(JsonView(false, "暂无数据!"));
+
+
                 }
                 else if (dto.PortType==2)
                 {
@@ -584,13 +603,18 @@ namespace OASystem.API.Controllers
                     Regex r = new Regex("And");
                     sqlWhere = r.Replace(sqlWhere, "Where", 1);
                 }
-                var result=_userRep.GetUserList(dto.PortType,sqlWhere);
-                if (result.Result.Code!=0)
+                string userSqlWhere = string.Format(@"Select sc.CompanyName,sd.DepName,sjp.JobName,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 {0}", sqlWhere);
+                var _userList =_userRep.GetListBySqlWithNolock(userSqlWhere);
+                if (_userList.Count == 0)
                 {
+                    
                     return Ok(JsonView(false, "暂无数据!"));
-
                 }
-                return Ok(JsonView(true,"查询成功!",result.Result.Data));
+                List<UserInfoWebView> userList = _mapper.Map<List<UserInfoWebView>>(_userList);
+                return Ok(JsonView(true,"查询成功!", userList));
             }
             catch (Exception)
             {
@@ -860,9 +884,45 @@ namespace OASystem.API.Controllers
 
             _JobPostAuthorityRepository.BeginTran();
             try
-            {
+            {   //删除岗位
                 bool isdel = await _JobPostAuthorityRepository.DeleteAsync<Sys_JobPostAuthority>(x => x.JpId == dto.Jpid);
                 int UpRows = _JobPostAuthorityRepository.Adds<Sys_JobPostAuthority>(adds);
+
+                //获取所有职位员工
+                var jobUserAll = await QueryUserList(new UserDto { PortType = 2, JobPostId = dto.Jpid });
+                List<UserInfoWebView> users = null;
+                var QueryUserListApiResult = (((jobUserAll as OkObjectResult).Value) as OASystem.Domain.ViewModels.JsonView);
+                if (QueryUserListApiResult != null)
+                {
+                    if (QueryUserListApiResult.Code == 200)
+                    {
+                        users = QueryUserListApiResult.Data as List<UserInfoWebView>;
+                    }
+                }
+
+                if (users != null && users.Count > 0)
+                {
+                    List<Sys_UserAuthority> userAuth = null;
+                    foreach (var user in users)
+                    {
+                        //删除个人级岗位权限
+                        isdel = await _UserAuthorityRepository.DeleteAsync<Sys_UserAuthority>(x => x.IsTemp == 1 &&
+                        x.UId == user.Id);
+
+                        userAuth = adds.Select(x=> new Sys_UserAuthority
+                        {
+                            CreateTime = DateTime.Now,
+                            CreateUserId = 235,
+                            FId = x.FId,
+                            SmId = x.SmId,
+                            UId = user.Id,
+                            IsTemp = 1,
+                        }).ToList();
+
+                        //添加个人级别岗位
+                        int AddRows = _UserAuthorityRepository.Adds<Sys_UserAuthority>(userAuth);
+                    }
+                }
             }
             catch (Exception ex)
             {
@@ -874,6 +934,124 @@ namespace OASystem.API.Controllers
             return Ok(JsonView(200, "成功", new { }));
         }
 
+
+        /// <summary>
+        /// 获取员工权限
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public IActionResult QueryUserAuth(QueryUserAuthDto dto)
+        {
+            //选中的员工操作权限
+            var DBdata = _UserAuthorityRepository.QueryDto<Sys_UserAuthority, UserAuthorityView>(x => x.UId == dto.Userid).ToList();
+            var SystemMenuPermissionData = _SystemMenuPermissionRepository.QueryDto<Sys_SystemMenuPermission, SystemMenuPermissionView>(x => x.Mid == dto.moduleId).ToList();
+            if (SystemMenuPermissionData == null || SystemMenuPermissionData.Count() == 0)
+            {
+                return Ok(JsonView("暂无数据"));
+            }
+
+            //所有操作
+            var PageOperation = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>().ToList();
+
+            //获取所有关联页面
+            var Sys_SystemMenuAndFunction = _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
+
+            ArrayList viewData = new ArrayList();
+            //组合页面数据
+            foreach (var item in SystemMenuPermissionData)
+            {
+                ArrayList ids = new ArrayList();
+                foreach (var viewop in PageOperation)
+                {
+                    var op = Sys_SystemMenuAndFunction.FirstOrDefault(x => x.SmId == item.Id && x.FId == viewop.Id);
+                    if (op != null)
+                    {
+                        ids.Add(viewop.Id);
+                    }
+                }
+
+                //获取本员工拥有的权限
+                var DBwhere = DBdata.Where(x => x.SmId == item.Id && x.UId == dto.Userid).ToList();
+
+                viewData.Add(new
+                {
+                    Id = item.Id,
+                    Mid = item.Mid,
+                    Name = item.Name,
+                    SystemMenuCode = item.SystemMenuCode,
+                    opList = ids,
+                    selList = DBwhere.Select(x => x.FId)
+                });
+            }
+
+            return Ok(JsonView(200, "成功!", viewData));
+        }
+
+
+        /// <summary>
+        /// 保存员工权限
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> SaveUserAuth(SaveUserDto dto)
+        {
+            //获取所有关联页面
+            var Sys_SystemMenuAndFunction = _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
+
+            List<Sys_UserAuthority> adds = new List<Sys_UserAuthority>();
+            foreach (var item in dto.Savejobs)
+            {
+                foreach (var fid in item.FIds)
+                {
+                    var whereobj = Sys_SystemMenuAndFunction.FirstOrDefault(x => x.FId == fid && x.SmId == item.SmId);
+                    if (whereobj != null)
+                    {
+                        adds.Add(new Sys_UserAuthority
+                        {
+                            CreateTime = DateTime.Now,
+                            CreateUserId = 235,
+                            FId = fid,
+                            UId = dto.uid,
+                            SmId = item.SmId,
+                            IsTemp = 0
+                        });
+                    }
+                }
+            }
+
+            _JobPostAuthorityRepository.BeginTran();
+            try
+            {
+                List<Sys_UserAuthority> userAuth = null;
+                //删除个人级岗位权限
+                bool isdel = await _UserAuthorityRepository.DeleteAsync<Sys_UserAuthority>(x=> x.UId == dto.uid);
+
+                userAuth = adds.Select(x => new Sys_UserAuthority
+                {
+                    CreateTime = DateTime.Now,
+                    CreateUserId = 235,
+                    FId = x.FId,
+                    SmId = x.SmId,
+                    UId = dto.uid,
+                    IsTemp = 0,
+                }).ToList();
+
+                //添加个人级别岗位
+                int AddRows = _UserAuthorityRepository.Adds<Sys_UserAuthority>(userAuth);
+            }
+            catch (Exception ex)
+            {
+                _JobPostAuthorityRepository.RollbackTran();
+                return Ok(JsonView("系统错误!"));
+            }
+
+            _JobPostAuthorityRepository.CommitTran();
+            return Ok(JsonView(200, "成功", new { }));
+        }
         #endregion
     }
 }

+ 22 - 0
OASystem/OASystem.Api/OAMethodLib/DateTimeJsonConverter.cs

@@ -0,0 +1,22 @@
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace OASystem.API.OAMethodLib
+{
+    public class DateTimeJsonConverter : System.Text.Json.Serialization.JsonConverter<DateTime>
+    {
+        private readonly string Format;
+        public DateTimeJsonConverter(string format)
+        {
+            Format = format;
+        }
+        public override void Write(Utf8JsonWriter writer, DateTime date, JsonSerializerOptions options)
+        {
+            writer.WriteStringValue(date.ToString(Format));
+        }
+        public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+        {
+            return DateTime.ParseExact(reader.GetString(), Format, null);
+        }
+    }
+}

+ 11 - 15
OASystem/OASystem.Api/Program.cs

@@ -4,6 +4,8 @@ using Autofac.Core;
 using OASystem.API;
 using OASystem.RedisRepository.RedisAsyncHelper;
 using OASystem.RedisRepository.Config;
+using OASystem.API.OAMethodLib;
+using System.Text.Json.Serialization;
 
 var builder = WebApplication.CreateBuilder(args);
 var basePath = AppContext.BaseDirectory;
@@ -17,6 +19,15 @@ builder.Services.AddSingleton(new AppSettingsHelper(_config));
 
 // Add services to the container.
 builder.Services.AddControllersWithViews();
+builder.Services.AddControllers()
+    .AddJsonOptions(options =>
+    {
+        //空字段不响应Response
+        options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
+        //时间格式化响应
+        options.JsonSerializerOptions.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss"));
+    });
+
 
 #region Cors
 
@@ -190,23 +201,8 @@ builder.Services.AddScoped<IMapper, Mapper>();
 
 #endregion
 
-#region 跨域配置
-builder.Services.AddCors(c =>
-{
-    c.AddPolicy("AllowAllOrigins", policy =>
-    {
-        policy.AllowAnyOrigin()
-        .AllowAnyMethod()
-        .AllowAnyHeader();
-    });
-});
-#endregion
-
-
 var app = builder.Build();
 
-app.UseCors("AllowAllOrigins");
-
 // Configure the HTTP request pipeline.
 if (!app.Environment.IsDevelopment())
 {

+ 1 - 1
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -45,7 +45,7 @@ namespace OASystem.Domain.AutoMappers
             #region 用户板块
             CreateMap<UserDto, Sys_Users>();
             CreateMap<Sys_Users, UserInfo>();
-
+            CreateMap<UserInfo,UserInfoWebView>();
 
             #endregion
 

+ 3 - 0
OASystem/OASystem.Domain/Dtos/DtoBase.cs

@@ -16,5 +16,8 @@ namespace OASystem.Domain.Dtos
         /// 1 Web 2 Android 3 IOS
         /// </summary>
         public int PortType { get; set; }
+
+        public int PageIndex { get; set; }
+        public int PageSize { get; set; }
     }
 }

+ 35 - 0
OASystem/OASystem.Domain/Dtos/Groups/Grp_ScheduleDto.cs

@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Groups
+{
+    public class Grp_ScheduleDto : DtoBase
+    {
+        /// <summary>
+        /// 查询类型(int)
+        /// <list type="table">
+        /// <item>1:对象</item>
+        /// <item>2:列表</item>
+        /// </list>
+        /// </summary>
+        public int SearchType { get; set; }
+
+        #region 对象
+
+        /// <summary>
+        /// 团组流程Id
+        /// </summary>
+        public int ScheduleId { get; set; }
+
+        #endregion
+
+        /// <summary>
+        /// 系统用户Id
+        /// </summary>
+        public int SysUserId { get; set; }
+
+    }
+}

+ 5 - 0
OASystem/OASystem.Domain/Dtos/System/CompanyDto.cs

@@ -118,6 +118,11 @@ namespace OASystem.Domain.Dtos.System
         /// </summary>
         public int ParentCompanyId { get; set; }
 
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+
     }
 
     /// <summary>

+ 15 - 0
OASystem/OASystem.Domain/Dtos/System/QueryUserAuthDto.cs

@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.System
+{
+    public class QueryUserAuthDto
+    {
+        public int Userid { get; set; }
+
+        public int moduleId { get; set; }
+    }
+}

+ 19 - 0
OASystem/OASystem.Domain/Dtos/System/SaveJobDto.cs

@@ -8,13 +8,32 @@ namespace OASystem.Domain.Dtos.System
 {
     public class SaveJobDto
     {
+        /// <summary>
+        /// 职位id
+        /// </summary>
         public int Jpid { get; set; }
         public List<savejob> Savejobs { get; set; }
     }
 
+    public class SaveUserDto
+    {
+        /// <summary>
+        /// 员工id
+        /// </summary>
+        public int uid { get; set; }
+        public List<savejob> Savejobs { get; set; }
+    }
+
     public class savejob
     {
+        /// <summary>
+        /// 页面id
+        /// </summary>
         public int SmId { get; set; }
+
+        /// <summary>
+        /// 功能id
+        /// </summary>
         public List<int> FIds { get; set; }
     }
 }

+ 10 - 4
OASystem/OASystem.Domain/Entities/Groups/Grp_ScheduleInfo.cs

@@ -20,16 +20,16 @@ namespace OASystem.Domain.Entities.Groups
         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; }
+        //[SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        //public int DetailStep { get; set; }
 
         /// <summary>
         /// 预计开始时间
@@ -92,6 +92,12 @@ namespace OASystem.Domain.Entities.Groups
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int ParentStep { get; set; }
 
+        /// <summary>
+        /// 流程状态(0/1/2 未完成/进行中/已完成)
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int StepStatus { get; set; }
+
         /// <summary>
         /// 负责人员(SysUser.Id)
         /// </summary>

+ 6 - 0
OASystem/OASystem.Domain/Entities/System/Sys_UserAuthority.cs

@@ -27,5 +27,11 @@ namespace OASystem.Domain.Entities.System
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int FId { get; set; }
+
+        /// <summary>
+        /// 是否由职位模板导入
+        /// </summary>
+        [SugarColumn(ColumnDescription = "是否由职位模板导入", IsNullable = true, ColumnDataType = "int")]
+        public int IsTemp { get; set; }
     }
 }

+ 39 - 0
OASystem/OASystem.Domain/Enums/EnumHelper.cs

@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Enums
+{
+    public static class EnumHelper
+    {
+        //--extension
+        /// <summary>
+        /// 获取当前枚举描述
+        /// </summary>
+        /// <param name="enumValue"></param>
+        /// <returns></returns>
+        public static string GetEnumDescription(this Enum enumValue)
+        {
+            try
+            {
+                Type type = enumValue.GetType();
+                MemberInfo[] memInfo = type.GetMember(enumValue.ToString());
+                if (null != memInfo && memInfo.Length > 0)
+                {
+                    object[] attrs = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
+                    if (null != attrs && attrs.Length > 0)
+                        return ((DescriptionAttribute)attrs[0]).Description;
+                }
+                return enumValue.ToString();
+            }
+            catch (Exception)
+            {
+                return "";
+            }
+        }
+    }
+}

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

@@ -12,6 +12,12 @@ namespace OASystem.Domain.Enums
     /// </summary>
     public enum GrpSchedulePrimaryStepEnum
     {
+        /// <summary>
+        /// 未开始
+        /// </summary>
+        [Description("未开始")]
+        Wait = 0,
+
         /// <summary>
         /// 确认出团
         /// </summary>

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

@@ -30,6 +30,10 @@ namespace OASystem.Domain.ViewModels
         /// </summary>
         public int ContactUserId { get; set; }
         /// <summary>
+        /// 负责人名字
+        /// </summary>
+        public string ContactUserName { get; set; }
+        /// <summary>
         /// 联系方式
         /// </summary>
         public string Tel { get; set; }
@@ -42,6 +46,11 @@ namespace OASystem.Domain.ViewModels
         /// 父级公司Name
         /// </summary>
         public string ParentCompanyName { get; set; }
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+
     }
 
 }

+ 69 - 0
OASystem/OASystem.Domain/ViewModels/Groups/Grp_ScheduleView.cs

@@ -0,0 +1,69 @@
+using Newtonsoft.Json;
+using OASystem.Domain.Enums;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.Groups
+{
+    public class Grp_ScheduleView
+    {
+        /// <summary>
+        /// 流程管控Id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int DiId { get; set; }
+
+        /// <summary>
+        /// 团组名称
+        /// </summary>
+        public string DeleName { get; set; }
+
+        /// <summary>
+        /// 主流程(枚举)
+        /// </summary>
+        public GrpSchedulePrimaryStepEnum PrimaryStep { get; set; }
+
+        /// <summary>
+        /// 主流程中文描述
+        /// </summary>
+        public string PrimaryStep_Text
+        {
+            get
+            {
+                return EnumHelper.GetEnumDescription(PrimaryStep);
+            }
+        }
+
+        /// <summary>
+        /// 预计开始时间
+        /// </summary>
+        public DateTime ExpectBeginDt { get; set; }
+
+        /// <summary>
+        /// 预计结束时间
+        /// </summary>
+        public DateTime ExpectEndDt { get; set; }
+
+        /// <summary>
+        /// 总负责人Id
+        /// </summary>
+        public int Leader { get; set; }
+
+        /// <summary>
+        /// 总负责人
+        /// </summary>
+        public string LeaderName { get; set; }
+
+        /// <summary>
+        /// 异常状态0:正常 1:异常
+        /// </summary>
+        public int Exception { get; set; }
+    }
+}

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

@@ -14,10 +14,19 @@ namespace OASystem.Domain.ViewModels.System
         /// </summary>
         public int Id { get; set; }
 
+        /// <summary>
+        /// 部门code
+        /// </summary>
+        public string DepCode { get; set; }
+
         /// <summary>
         /// 公司Id
         /// </summary>
         public int CompanyId { get; set; }
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string CompanyName { get; set; }
 
         /// <summary>
         /// 部门名称
@@ -28,5 +37,14 @@ namespace OASystem.Domain.ViewModels.System
         /// 父级部门Id
         /// </summary>
         public int ParentDepId { get; set; }
+        /// <summary>
+        /// 父级部门Name
+        /// </summary>
+        public string ParentDepName { get; set; }
+
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
     }
 }

+ 33 - 0
OASystem/OASystem.Domain/ViewModels/System/UserAuthorityView.cs

@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.System
+{
+    public class UserAuthorityView
+    {
+        /// <summary>
+        /// 数据id
+        /// </summary>
+        public int ID { get; set; }
+        /// 用户Id
+        /// </summary>
+        public int UId { get; set; }
+        /// <summary>
+        /// 页面权限Id
+        /// </summary>
+        public int SmId { get; set; }
+        /// <summary>
+        /// 页面功能Id
+        /// </summary>
+        public int FId { get; set; }
+
+        /// <summary>
+        /// 是否由职位模板导入
+        /// </summary>
+        public int IsTemp { get; set; }
+
+    }
+}

+ 12 - 4
OASystem/OASystem.Domain/ViewModels/System/UserInfoView.cs

@@ -14,6 +14,10 @@ namespace OASystem.Domain.ViewModels.System
     /// </summary>
     public class UserInfoWebView
     {
+        /// <summary>
+        /// 用户Id
+        /// </summary>
+        public int Id { get; set; }
         /// <summary>
         /// 公司Id
         /// </summary>
@@ -43,10 +47,6 @@ namespace OASystem.Domain.ViewModels.System
         /// </summary>
         public string JobName { get; set; }
         /// <summary>
-        /// 用户Id
-        /// </summary>
-        public int UserId { get; set; }
-        /// <summary>
         /// 中文姓名
         /// </summary>
 
@@ -78,6 +78,14 @@ namespace OASystem.Domain.ViewModels.System
         /// </summary>
 
         public string Email { get; set; }
+        /// <summary>
+        /// 试用期
+        /// </summary>
+        public string UsePeriod { get; set; }
+        /// <summary>
+        /// 人事审核 0未审核(初始状态) 1 已通过(可用)2已拒绝
+        /// </summary>
+        public int HrAudit { get; set; }
     }
 
 

+ 18 - 1
OASystem/OASystem.Infrastructure/Repositories/BaseRepository.cs

@@ -82,7 +82,7 @@ namespace OASystem.Infrastructure.Repositories
         #region Extension
 
         /// <summary>
-        /// Sql语句 无锁
+        ///  获取单个对象  异步
         /// </summary>
         /// <param name="sql"></param>
         /// <returns></returns>
@@ -90,15 +90,32 @@ namespace OASystem.Infrastructure.Repositories
         {
             return await _sqlSugar.SqlQueryable<TEntity>(sql).FirstAsync();
         }
+
+        /// <summary>
+        /// 获取单个对象 
+        /// </summary>
+        /// <param name="sql"></param>
+        /// <returns></returns>
         public virtual TEntity GetSingleInfoBySqlWithNolock(string sql)
         {
             return _sqlSugar.SqlQueryable<TEntity>(sql).First();
         }
 
+        /// <summary>
+        /// 获取集合 异步
+        /// </summary>
+        /// <param name="sql"></param>
+        /// <returns></returns>
         public virtual async Task<List<TEntity>> GetListBySqlWithNolockAsync(string sql)
         {
             return await _sqlSugar.SqlQueryable<TEntity>(sql).ToListAsync();
         }
+
+        /// <summary>
+        /// 获取集合 
+        /// </summary>
+        /// <param name="sql"></param>
+        /// <returns></returns>
         public virtual List<TEntity> GetListBySqlWithNolock(string sql)
         {
             return _sqlSugar.SqlQueryable<TEntity>(sql).ToList();

+ 64 - 0
OASystem/OASystem.Infrastructure/Repositories/Groups/GrpScheduleRepository.cs

@@ -0,0 +1,64 @@
+using OASystem.Domain.Dtos.Groups;
+using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.ViewModels.Groups;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.Groups
+{
+    public class GrpScheduleRepository : BaseRepository<Grp_ScheduleInfo, Grp_ScheduleInfo>
+    {
+        public GrpScheduleRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
+        {
+        }
+
+        public string SetSqlWhere_GrpScheduleDto(Grp_ScheduleDto _dto)
+        {
+            string sqlWhere = string.Empty;
+
+            if (_dto.SysUserId > 0)
+            {
+                sqlWhere += string.Format(@" And s.Id in ( Select Id From Grp_SchedulePerson With(Nolock) Where SysUserId = '{0}' ) ", _dto.SysUserId);
+            }
+
+            if (_dto.ScheduleId > 0)
+            {
+                sqlWhere += string.Format(@" And s.Id = '{0}' ", _dto.ScheduleId);
+            }
+
+            if (!string.IsNullOrEmpty(sqlWhere.Trim()))
+            {
+                Regex r = new Regex("And");
+                sqlWhere = r.Replace(sqlWhere, "Where", 1);
+            }
+
+            return sqlWhere;
+        }
+
+        /// <summary>
+        /// 获取团组流程数据单个对象
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="_dto"></param>
+        /// <returns></returns>
+        public async Task<Grp_ScheduleView> GetView_GrpSchedule(Grp_ScheduleDto _dto)
+        {
+            Grp_ScheduleView _view = null;
+
+            string sqlWhere = this.SetSqlWhere_GrpScheduleDto(_dto);
+            string sql = string.Format(@" Select s.Id,s.DiId,di.TeamName as DeleName,s.PrimaryStep,s.ExpectBeginDt,s.ExpectEndDt,s.Leader,s.Exception,u.CnName as LeaderName
+            From Grp_Schedule as s With(Nolock) Inner Join Grp_DelegationInfo as di With(Nolock) On s.DiId=di.Id
+            Inner Join Sys_Users as u With(Nolock) On s.Leader=u.Id
+            {0} ", sqlWhere);
+
+            _view = await _sqlSugar.SqlQueryable<Grp_ScheduleView>(sql).FirstAsync();
+
+            return _view;
+        }
+
+
+    }
+}

+ 10 - 0
OASystem/OASystem.Infrastructure/Repositories/System/UserAuthorityRepository.cs

@@ -0,0 +1,10 @@
+
+namespace OASystem.Infrastructure.Repositories.System
+{
+    public class UserAuthorityRepository : BaseRepository<Sys_UserAuthority, UserAuthorityView>
+    {
+        public UserAuthorityRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
+        {
+        }
+    }
+}

+ 1 - 1
OASystem/OASystem.Infrastructure/Repositories/System/UsersRepository.cs

@@ -11,7 +11,7 @@ using System.Threading.Tasks;
 
 namespace OASystem.Infrastructure.Repositories.System
 {
-    public class UsersRepository : BaseRepository<UserInfo, JsonView>
+    public class UsersRepository : BaseRepository<UserInfo, UserInfoWebView>
     {
         public UsersRepository(SqlSugarClient sqlSugar) : base(sqlSugar){}
 

+ 6 - 73
OASystem/_Doc/OA2023数据字典.docx

@@ -43,79 +43,6 @@ Null
 删除时间
 
 
-1. 系统消息
-
-1) 存储消息表:Sys_Message
-                                   字段名
-                                 类型长度
-                                 字段属性
-                                 字段约束
-                                 字段描述
-                                    备注
-Type
-Int
-Null
-
-类型ID
-0 用户登录消息1 系统消息
-2 业务消息
-IssuerId
-Int
-Null
-
-发布者Id
-用户Id
-Title
-Varchar(100)
-Null
-
-消息标题
-
-Content
-Varchar(500)
-Null
-
-消息内容
-
-ReleaseTime
-DateTime
-Null
-
-发布时间
-
-
-2) 消息关联用户表:Sys_MessageReadAuth
-                                   字段名
-                                 类型长度
-                                 字段属性
-                                 字段约束
-                                 字段描述
-                                    备注
-MsgId
-Id
-Null
-
-消息Id
-Sys_Message
-ReadableUId
-Int
-Null
-
-可读用户Id
-用户Id
-IsRead
-Int
-Null
-
-是否已读
-0 未读1 已读
-ReadTime
-DateTime
-Null
-
-阅读时间
-
-
 1. 数据类型
 
 1) 数据类型表:Sys_SetDataType(挪用)
@@ -567,6 +494,12 @@ Null
 
 页面功能Id
 页面功能表Id
+IsTemp
+Int
+Null
+
+是否由职位模板导入
+是否由职位模板导入
 
 9) 岗位权限表:Sys_JobPostAuthority(新增)
                                    字段名