浏览代码

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

jiangjc 1 年之前
父节点
当前提交
d987874d91

+ 86 - 19
OASystem/OASystem.Api/Controllers/AuthController.cs

@@ -125,6 +125,73 @@ namespace OASystem.API.Controllers
             return Ok(JsonView(view));
         }
 
+        /// <summary>
+        /// 申请注册 数据Data
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        //[Authorize]
+        [HttpPost]
+        [Route("register/daraSource")]
+        public async Task<IActionResult> RegisterDataSource()
+        {
+            string sql = string.Format(@"Select sc.Id CompanyId,sc.CompanyName,sd.Id DepId,sd.DepName,sjp.Id JobId,sjp.JobName  From Sys_Company sc
+                                         Left Join Sys_Department sd On sd.IsDel = 0 And sc.Id = sd.CompanyId
+                                         Left Join Sys_JobPost sjp On sjp.IsDel = 0 And sjp.DepId = sd.Id 
+                                         Where sc.IsDel = 0");
+
+            var companyDetails = _loginRep._sqlSugar.SqlQueryable<CompanyDetailsView>(sql).ToList();
+
+            List<CompanyDetailsView1> detailsView1 = new List<CompanyDetailsView1>();
+
+            if (companyDetails.Count > 0)
+            {
+                var companyDetails1 = companyDetails.GroupBy(it => it.CompanyId).Select(it => it.First()).ToList();
+
+
+                detailsView1 = companyDetails1.Select(it =>
+                {
+                    CompanyDetailsView1 itemCompany = new CompanyDetailsView1();
+                    List<DepDetailsView> depDetailsView = new List<DepDetailsView>();
+
+                    var companyDetails2 = companyDetails.GroupBy(it => it.DepId).Select(it => it.First()).ToList();
+                    //部门
+                    depDetailsView = companyDetails2.Where(depIt => depIt.CompanyId == it.CompanyId).Select(depIt => {
+
+                        DepDetailsView depDetails = new DepDetailsView();
+                        List<JobDetailsView> jobDetails = new List<JobDetailsView>();
+
+                        //岗位
+                        jobDetails = companyDetails.Where(jobIt => jobIt.DepId == depIt.DepId).Select(jobIt => {
+
+                            JobDetailsView jobDetail = new JobDetailsView() { 
+                                JobId = jobIt.JobId,
+                                JobName = jobIt.JobName,
+                            };
+
+                            return jobDetail;
+                        }).ToList();
+
+                        depDetails.DepId = depIt.DepId;
+                        depDetails.DepName = depIt.DepName;
+                        depDetails.SubJob = jobDetails;
+                        return depDetails;
+                    }).ToList();
+
+                    itemCompany.CompanyId = it.CompanyId;
+                    itemCompany.CompanyName = it.CompanyName;
+                    itemCompany.SubDep = depDetailsView;
+                    return itemCompany;
+                }).ToList();
+
+            }
+
+
+
+
+            return Ok(new { Code = 200, Msg = "查询成功!", Data = detailsView1 });
+        }
+
         /// <summary>
         /// 申请注册
         /// </summary>
@@ -137,26 +204,26 @@ namespace OASystem.API.Controllers
         {
             #region 企业微信添加员工
 
-            string lastName = dto.CnName.Substring(0, 1);
-            string lastNamePy = string.Empty;
-            if (PinyinHelper.IsChinese(Convert.ToChar(lastName)))
-            {
-                lastNamePy = PinyinHelper.GetPinyin(lastName);
-            }
-
-            string userId = string.Format("{0}.{1}", dto.EnName, lastNamePy.ToLower());
-            Create_Request request = new Create_Request()
-            {
-                userid = userId,
-                name = dto.CnName,
-                mobile = dto.Phone,
-                department = new List<long>() { dto.DepId },
-                position = dto.JobPostId.ToString(),
-                gender = dto.Sex == 0 ? 1 : dto.Sex == 1 ? 2 : 1,
-                biz_mail = dto.Email
-            };
+            //string lastName = dto.CnName.Substring(0, 1);
+            //string lastNamePy = string.Empty;
+            //if (PinyinHelper.IsChinese(Convert.ToChar(lastName)))
+            //{
+            //    lastNamePy = PinyinHelper.GetPinyin(lastName);
+            //}
 
-            var qiYeWeChatCreateData = await _qiYeWeChatApiServic.CreateAsync(request);
+            //string userId = string.Format("{0}.{1}", dto.EnName, lastNamePy.ToLower());
+            //Create_Request request = new Create_Request()
+            //{
+            //    userid = userId,
+            //    name = dto.CnName,
+            //    mobile = dto.Phone,
+            //    department = new List<long>() { dto.DepId },
+            //    position = dto.JobPostId.ToString(),
+            //    gender = dto.Sex == 0 ? 1 : dto.Sex == 1 ? 2 : 1,
+            //    biz_mail = dto.Email
+            //};
+
+            //var qiYeWeChatCreateData = await _qiYeWeChatApiServic.CreateAsync(request);
             #endregion
 
 

+ 20 - 21
OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

@@ -272,34 +272,33 @@ namespace OASystem.API.Controllers
 
             wageSheets = _result.Data;
 
-            //var add = await _wageSheetRep._sqlSugar.Insertable(wageSheets).ExecuteCommandAsync();
-            //if (add <= 0)
-            //{
-            //    return Ok(JsonView(false, "操作失败!"));
-            //}
+            var add = await _wageSheetRep._sqlSugar.Insertable(wageSheets).ExecuteCommandAsync();
+            if (add <= 0)
+            {
+                return Ok(JsonView(false, "操作失败!"));
+            }
 
             #endregion
 
             #region 处理返回数据
-
-            List <WageSheetItemInfoView> wageSheetItems = new List<WageSheetItemInfoView>();
-            wageSheetItems = _mapper.Map<List<WageSheetItemInfoView>>(wageSheets);
-            wageSheetItems = wageSheetItems.Select(it => 
-                    {
-                        UserNameView? uName1 = new UserNameView();
-                        UserNameView? uName2 = new UserNameView();
-                        uName1 = userNames.Where(it1 => it.UserId == it1.Id).FirstOrDefault();
-                        if (uName1 != null)  it.Name = uName1.CnName;
-
-                        uName2 = userNames.Where(it1 => it.LastUpdateUserId == it1.Id).FirstOrDefault();
-                        if (uName2 != null) it.LastUpdateUserName = uName2.CnName;
-
-                        return it; }
-                    ).ToList();
+            //List <WageSheetItemInfoView> wageSheetItems = new List<WageSheetItemInfoView>();
+            //wageSheetItems = _mapper.Map<List<WageSheetItemInfoView>>(wageSheets);
+            //wageSheetItems = wageSheetItems.Select(it => 
+            //        {
+            //            UserNameView? uName1 = new UserNameView();
+            //            UserNameView? uName2 = new UserNameView();
+            //            uName1 = userNames.Where(it1 => it.UserId == it1.Id).FirstOrDefault();
+            //            if (uName1 != null)  it.Name = uName1.CnName;
+
+            //            uName2 = userNames.Where(it1 => it.LastUpdateUserId == it1.Id).FirstOrDefault();
+            //            if (uName2 != null) it.LastUpdateUserName = uName2.CnName;
+
+            //            return it; }
+            //        ).ToList();
             #endregion
 
             sw.Stop();
-            return Ok(JsonView(true, "操作成功! 耗时:" + sw.ElapsedMilliseconds + "ms", wageSheetItems));
+            return Ok(JsonView(true, "操作成功! 耗时:" + sw.ElapsedMilliseconds + "ms"));
         }
 
 

+ 2 - 41
OASystem/OASystem.Api/OAMethodLib/JsonConvertOverride.cs

@@ -1,4 +1,4 @@
-using Newtonsoft.Json.Serialization;
+using Newtonsoft.Json;
 using System.Text.Json;
 using System.Text.Json.Serialization;
 
@@ -61,46 +61,7 @@ namespace OASystem.API.OAMethodLib
 
 
     #region decimal格式化
-
-    ///// <summary>
-    ///// decimal格式化
-    ///// </summary>
-    //public class JsonConverterDecimal : Newtonsoft.Json.JsonConverter
-    //{
-    //    /// <summary>
-    //    /// 是否可以转换
-    //    /// </summary>
-    //    /// <param name="objectType"></param>
-    //    /// <returns></returns>
-    //    public override bool CanConvert(Type objectType)
-    //    {
-    //        return objectType == typeof(decimal) || objectType == typeof(decimal?);
-    //    }
-
-    //    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer)
-    //    {
-    //        if (reader.ValueType == null && reader.Value == null)
-
-    //        {
-    //            return null;
-    //        }
-    //        else
-    //        {
-    //            decimal.TryParse(reader.Value != null ? reader.Value.ToString() : "", out decimal value);
-    //            return value.ToString("F2");
-    //        }
-
-    //    }
-
-    //    public override void WriteJson(JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
-    //    {
-    //        if (value == null)
-
-    //            writer.WriteValue(value);
-    //        else
-    //            writer.WriteValue(value + "");
-    //    }
-    //}
+   
 
     #endregion
 

+ 2 - 2
OASystem/OASystem.Api/OAMethodLib/PayrollComputation.cs

@@ -113,7 +113,7 @@ namespace OASystem.API.OAMethodLib
 
                 //月 - 应发工资
                 decimal amountPayable = pm_wsInfo.Basic + pm_wsInfo.Floats + pm_wsInfo.PostAllowance + pm_wsInfo.GarmentWashSubsidies + pm_wsInfo.CommunicationSubsidies +
-                    pm_wsInfo.TrafficSubsidies + pm_wsInfo.InformationSecurityFee + pm_wsInfo.OperationBonus + pm_wsInfo.SpecialAllowance + pm_wsInfo.OtherSubsidies + pm_wsInfo.GroupCost;
+                    pm_wsInfo.TrafficSubsidies + pm_wsInfo.InformationSecurityFee + pm_wsInfo.OperationBonus + pm_wsInfo.OtherSubsidies + pm_wsInfo.GroupCost;
 
                 // 日薪 = *计算方式:日平均工资 = 月工资/当月应出勤天数。
                 decimal dailyWage = ConvertToDecimal(amountPayable / work_days);
@@ -608,7 +608,7 @@ namespace OASystem.API.OAMethodLib
                 #region 应发合计 实发合计 扣款合计(假勤扣款,其他扣款,社保扣款,公积金代扣,个税扣款)
 
                 decimal mealTotal = meal_subsidy - meal_deduction;  //餐补
-                decimal salaryTotal = amountPayable + mealTotal;    //应发合计
+                decimal salaryTotal = amountPayable + mealTotal + pm_wsInfo.SpecialAllowance;    //应发合计
 
                 //扣款合计 不含个税
                 decimal eductionTotal = sickLeaveTotal + personalLeaveTotal + beLate_deduction + early_deduction + absenteeism_deduction + unprinted_deduction + other_deduction +

+ 3 - 1
OASystem/OASystem.Domain/Dtos/Groups/AirTicketResDto.cs

@@ -9,10 +9,12 @@ namespace OASystem.Domain.Dtos.Groups
     /// <summary>
     /// 根据登录用户查询
     /// </summary>
-    public class AirTicketResDto
+    public class AirTicketResDto:DtoBase
     {
         public int DiId { get; set; } = 0;
         public int UserId { get; set; } = 0;
+
+        
     }
    public class ItineraryAirTicketResDto
     {

+ 6 - 6
OASystem/OASystem.Domain/Dtos/UserDto/RegisterDto.cs

@@ -63,14 +63,9 @@ namespace OASystem.Domain.Dtos.UserDto
         /// </summary>
         public string? IdCrad { get; set; }
 
-        /// <summary>
-        /// 出生日期
-        /// </summary>
-        public DateTime BirthDay { get; set; }
-
         /// <summary>
         /// 学历
-        /// 0 未设置 1 大专 2 本科 3 研究生
+        /// 0 未设置 1 小学、2 初中、3 高中、4 专科、5 本科、6 研究生
         /// </summary>
         public int Education { get; set; }
 
@@ -121,5 +116,10 @@ namespace OASystem.Domain.Dtos.UserDto
         /// 工作经历
         /// </summary>
         public string? WorkExperience { get; set; }
+
+        /// <summary>
+        /// 入职时间
+        /// </summary>
+        public DateTime Edate  { get; set; }
     }
 }

+ 3 - 1
OASystem/OASystem.Domain/Entities/PersonnelModule/Pm_WageSheet.cs

@@ -86,7 +86,8 @@ namespace OASystem.Domain.Entities.PersonnelModule
         public decimal OperationBonus { get; set; }
 
         /// <summary>
-        /// 特殊津贴
+        /// 过节费
+        /// 不纳入计算日工资
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "decimal(8,2)")]
         public decimal SpecialAllowance { get; set; } = 0.00M;
@@ -105,6 +106,7 @@ namespace OASystem.Domain.Entities.PersonnelModule
 
         /// <summary>
         /// 餐补
+        /// 不纳入日工资计算
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "decimal(8,2)")]
         public decimal Mealsupplement { get; set; }

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

@@ -42,7 +42,7 @@ namespace OASystem.Domain.Entities.System
         /// 密码
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
-        public string Password { get; set; }
+        public string Password { get; set; } = "123456"; //默认密码
         /// <summary>
         /// 性别0 男1 女  2 未设置
         /// </summary>

+ 94 - 0
OASystem/OASystem.Domain/ViewModels/System/CompanyDetailsView.cs

@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.System
+{
+    /// <summary>
+    /// 公司详情
+    /// </summary>
+    public class CompanyDetailsView
+    {
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string? CompanyName { get; set; }
+
+        /// <summary>
+        /// 部门Id
+        /// </summary>
+        public int DepId { get; set; }
+
+        /// <summary>
+        /// 部门名称
+        /// </summary>
+        public string? DepName { get; set; }
+
+        /// <summary>
+        /// 岗位Id
+        /// </summary>
+        public int JobId { get; set; }
+
+        /// <summary>
+        /// 岗位名称
+        /// </summary>
+        public string? JobName { get; set; }
+    }
+
+    public class CompanyDetailsView1
+    {
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string? CompanyName { get; set; }
+
+        /// <summary>
+        /// 公司下的部门
+        /// </summary>
+        public List<DepDetailsView> SubDep { get; set; }
+    }
+
+    public class DepDetailsView
+    {
+        /// <summary>
+        /// 部门Id
+        /// </summary>
+        public int DepId { get; set; }
+
+        /// <summary>
+        /// 部门名称
+        /// </summary>
+        public string? DepName { get; set; }
+
+
+        /// <summary>
+        /// 部门下的岗位
+        /// </summary>
+        public List<JobDetailsView> SubJob { get; set; }
+    }
+
+    public class JobDetailsView
+    {
+        /// <summary>
+        /// 岗位Id
+        /// </summary>
+        public int JobId { get; set; }
+
+        /// <summary>
+        /// 岗位名称
+        /// </summary>
+        public string? JobName { get; set; }
+    }
+}

+ 48 - 8
OASystem/OASystem.Infrastructure/Repositories/Groups/AirTicketResRepository.cs

@@ -75,7 +75,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
         public async Task<Result> AirTicketResList(AirTicketResDto dto)
         {
-                Result result = new Result() { Code = -2, Msg = "未知错误" };
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
 
             Grp_DelegationInfo _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().First(it => it.Id == dto.DiId);
             if (_DelegationInfo != null)
@@ -83,7 +83,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 string sql = string.Format(@"select a.*,c.IsAuditGM,(select Name from Sys_SetData where Id=a.cType) as 'CTypeName',(select Name from 
                                                 Sys_SetData where Id=a.PreCurrency) as 'PreCurrencyStr',(select Name from Sys_SetData where Id=a.Currency)
                                                 as 'CurrencyStr' from Grp_AirTicketReservations a,Grp_CreditCardPayment c where  a.id=c.CId  and a.isdel={1} and c.IsDel={1}
-                                                and a.DIId={0} Order By a.CreateTime desc", dto.DiId, 0);
+                                                and a.DIId={0} and a.CreateUserId={2} Order By a.CreateTime desc", dto.DiId, 0,dto.UserId);
                 List<AirTicketReservationsView> _AirTicketReservations = _sqlSugar.SqlQueryable<AirTicketReservationsView>(sql).ToList();
 
                 foreach (var item in _AirTicketReservations)
@@ -228,13 +228,53 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     }
                     _AirTicketReservations[i].ClientNameStr=_AirTicketReservations[i].ClientNameStr.Substring(0, _AirTicketReservations[i].ClientNameStr.Length-1);
                 }
-                var data = new
+
+                if (dto.PortType==1)
                 {
-                    DelegationInfo = _DelegationInfo,
-                    AirTicketReservations = _AirTicketReservations,
-                    AirGroupCostParameter = _AirgroupCostParameter
-                };
-                return result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
+                    var data = new
+                    {
+                        DelegationInfo = _DelegationInfo,
+                        AirTicketReservations = _AirTicketReservations,
+                        AirGroupCostParameter = _AirgroupCostParameter
+                    };
+                    return result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
+                }
+                else if(dto.PortType == 2 || dto.PortType==3)
+                {
+                    int count = _AirTicketReservations.Count;
+                    float totalPage = (float)count / dto.PageSize;//总页数
+                    if (totalPage == 0) totalPage = 1;
+                    else totalPage = (int)Math.Ceiling((double)totalPage);
+
+                    List<AirTicketReservationsView> grp_AirTickets = new List<AirTicketReservationsView>();
+                    for (int i = 0; i < dto.PageSize; i++)
+                    {
+                        var RowIndex = i + (dto.PageIndex - 1) * dto.PageSize;
+                        if (RowIndex < _AirTicketReservations.Count)
+                        {
+                            grp_AirTickets.Add(_AirTicketReservations[RowIndex]);
+                        }
+                        else
+                        {
+                            break;
+                        }
+                    }
+                    ListViewBase<AirTicketReservationsView> rst = new ListViewBase<AirTicketReservationsView>();
+                    rst.DataList = grp_AirTickets;
+                    rst.DataCount = count;
+                    rst.CurrPageIndex = dto.PageIndex;
+                    rst.CurrPageSize = dto.PageSize;
+                    var data = new
+                    {
+                        AirData= rst,
+                        AirGroupCostParameter = _AirgroupCostParameter
+                    };
+                    return result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
+                }
+                else
+                {
+                    return result = new Result() { Code = -1, Msg = "请传入PortType参数!1:Web,2:Android,3:IOS!" };
+                }
             }
             else
             {

+ 5 - 1
OASystem/OASystem.Infrastructure/Repositories/Login/LoginRepository.cs

@@ -97,6 +97,10 @@ namespace OASystem.Infrastructure.Repositories.Login
         public async Task<Result> Register(LoginRepository _loginRep, RegisterDto registerDto)
         {
             Result result = new Result();
+
+            string IdCrad = registerDto.IdCrad;
+            string birthDay = IdCrad.Substring(6, 4) + "-" + IdCrad.Substring(10, 2) + "-" + IdCrad.Substring(12, 2);
+
             Sys_Users _userInfo = new Sys_Users()
             {
                 CnName = registerDto.CnName,
@@ -114,7 +118,7 @@ namespace OASystem.Infrastructure.Repositories.Login
                 Edate = DateTime.Now,  //入职时间默认当前数据提交时间
                 Rdate = new DateTime(1990, 1, 1),  //离职时间默认最原始时间
                 Seniority = 0, //工龄默认 0
-                Birthday = registerDto.BirthDay,
+                Birthday = Convert.ToDateTime(birthDay),
                 IDCard = registerDto.IdCrad,
                 StartWorkDate = new DateTime(1990, 1, 1),  //开始工作时间默认最原始时间
                 GraduateInstitutions = registerDto.GraduationSchhol,

+ 10 - 4
OASystem/OASystem.Infrastructure/Repositories/PersonnelModule/WageSheetRepository.cs

@@ -107,17 +107,16 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
 
             #region 计算工资
 
-            //应发合计
+            //应发合计 //计算日工资
             decimal salary = pm_WageSheet.Basic + pm_WageSheet.Floats + pm_WageSheet.PostAllowance + pm_WageSheet.GarmentWashSubsidies + pm_WageSheet.CommunicationSubsidies + pm_WageSheet.GroupCost +
-                             pm_WageSheet.TrafficSubsidies + pm_WageSheet.InformationSecurityFee + pm_WageSheet.OperationBonus + pm_WageSheet.SpecialAllowance + pm_WageSheet.OtherSubsidies + 
-                             pm_WageSheet.Mealsupplement;
+                             pm_WageSheet.TrafficSubsidies + pm_WageSheet.InformationSecurityFee + pm_WageSheet.OperationBonus + pm_WageSheet.OtherSubsidies;
             //扣款合计
             decimal totalDeduction = pm_WageSheet.SickLeave + pm_WageSheet.SomethingFalse + pm_WageSheet.LateTo + pm_WageSheet.LeaveEarly + pm_WageSheet.Absenteeism + pm_WageSheet.NotPunch +
                                      pm_WageSheet.ReservedFunds + pm_WageSheet.WithholdingInsurance + pm_WageSheet.OtherDeductions + pm_WageSheet.OtherDeductions;
 
             //实发合计 不含个税
             decimal actualTotal = salary - totalDeduction;
-            pm_WageSheet.Should = salary;
+            pm_WageSheet.Should = salary + pm_WageSheet.SpecialAllowance + pm_WageSheet.Mealsupplement;
             pm_WageSheet.TotalDeductions = totalDeduction;
             pm_WageSheet.TotalRealHair = actualTotal;
             pm_WageSheet.AfterTax = actualTotal - pm_WageSheet.WithholdingTax;
@@ -145,6 +144,13 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
             }
             else if(dto.Status == 2) //修改
             {
+                //修改时 更改其他 费用基数时 假勤 费用也将更改 
+                if (string.IsNullOrEmpty(dto.Ex_ItemsRemark))
+                {
+                    List<Ex_Items> ex_Items = new List<Ex_Items>();
+
+                }
+
                 int update = await _sqlSugar.Updateable(pm_WageSheet)
                                             .IgnoreColumns(it =>  new { it.CreateUserId, it.CreateTime,it.DeleteUserId,it.DeleteTime })
                                             .WhereColumns(it => new { it.Id })