ソースを参照

计算工资 5.11

leiy 1 年間 前
コミット
e01859cc59

+ 17 - 5
OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

@@ -59,15 +59,23 @@ namespace OASystem.API.Controllers
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> GetWageSheetBasicsDataSource()
         {
+            string companySql = string.Format("Select * From Sys_Company Where IsDel = 0");
+            var compnayData = await _wageSheetRep._sqlSugar.SqlQueryable<CompanyNameView>(companySql).ToListAsync();
+
+            string depSql = string.Format("Select * From Sys_Department Where IsDel = 0");
+            var depData = await _wageSheetRep._sqlSugar.SqlQueryable<Domain.ViewModels.System.DepartmentView>(depSql).ToListAsync();
 
             //获取OA系统内所有用户
             var nameData = await _usersRep.GetUserNameList(1);
+
             if (nameData.Code != 0)
             {
                 return Ok(JsonView(false, nameData.Msg));
             }
 
             var data = new {
+                compnayData = compnayData,
+                depData = depData,
                 userNames = nameData.Data
         };
 
@@ -208,7 +216,6 @@ namespace OASystem.API.Controllers
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> SalaryCalculatorAsync(SalaryCalculatorDto dto)
         {
-            //var tepDetail = await PayrollComputation.GetVacationReissueCardTypes("C4RdAPs6gcGyLdSG1RTfKV6kKiRJzXSwF27LaJbyf");
 
             Result result = new Result();
             Stopwatch sw = new Stopwatch();
@@ -245,14 +252,19 @@ namespace OASystem.API.Controllers
             {
                 return Ok(JsonView(false, thisYearMonth + " 上月工资数据不存在,请手动添加!"));
             }
-
-            //获取OA系统内所有用户
-            var nameData = await _usersRep.GetUserNameList(1);
+            //处理上个月同月同人 多条数据
+            List<Pm_WageSheet> preWageSheetItems1 = new List<Pm_WageSheet>();
+            preWageSheetItems1 = preWageSheetItems.GroupBy(it => new { it.YearMonth,it.UserId })
+                                                  .Select(it => it.FirstOrDefault(item => item.Basic !=0))
+                                                  .ToList();
+
+             //获取OA系统内所有用户
+             var nameData = await _usersRep.GetUserNameList(1);
             List<UserNameView>? userNames = nameData.Data;
 
             List<Pm_WageSheet> wageSheets = new List<Pm_WageSheet>();
 
-            _result = await PayrollComputation.SalaryCalculatorAsync(preWageSheetItems, userNames,dto.UserId, thisYearMonth, thisStartDt, thisEndDt);
+            _result = await PayrollComputation.SalaryCalculatorAsync(preWageSheetItems1, userNames,dto.UserId, thisYearMonth, thisStartDt, thisEndDt);
 
             #region 批量添加
 

+ 9 - 0
OASystem/OASystem.Domain/ViewModels/PersonnelModule/WageSheetView.cs

@@ -195,11 +195,20 @@ namespace OASystem.Domain.ViewModels.PersonnelModule
         /// </summary>
         public int Row_Number { get; set; }
 
+        /// <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>

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

@@ -47,4 +47,22 @@ namespace OASystem.Domain.ViewModels.System
         /// </summary>
         public string Remark { get; set; }
     }
+    public class DepartmentView
+    {
+        /// <summary>
+        /// id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+
+        /// <summary>
+        /// 部门名称
+        /// </summary>
+        public string? DepName { get; set; }
+
+    }
 }

+ 8 - 7
OASystem/OASystem.Infrastructure/Repositories/PersonnelModule/WageSheetRepository.cs

@@ -51,13 +51,14 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
 
             //公司部门
             string sql = string.Format(@"Select row_number() over(order by pm_ws.Id) as Row_Number,
-                                	sc.CompanyName,sd.DepName, sys_u1.CnName Name,sys_u2.CnName LastUpdateUserName,pm_ws.* 
-                                From Pm_WageSheet pm_ws
-                                Left Join Sys_Users sys_u1 On pm_ws.UserId = sys_u1.Id
-                                Left Join Sys_Users sys_u2 On pm_ws.LastUpdateUserId = sys_u2.Id
-                                Left Join Sys_Company sc On  sys_u1.companyId = sc.Id
-                                Left Join Sys_Department sd On sys_u1.DepId = sd.Id
-                                Where pm_ws.IsDel = 0 And pm_ws.YearMonth = '{0}'", yearMonth);
+                                         	sc.Id as CompanyId,sc.CompanyName,sd.Id as DepId,sd.DepName, 
+                                         	sys_u1.CnName Name,sys_u2.CnName LastUpdateUserName,pm_ws.* 
+                                         From Pm_WageSheet pm_ws
+                                         Left Join Sys_Users sys_u1 On pm_ws.UserId = sys_u1.Id
+                                         Left Join Sys_Users sys_u2 On pm_ws.LastUpdateUserId = sys_u2.Id
+                                         Left Join Sys_Company sc On  sys_u1.companyId = sc.Id
+                                         Left Join Sys_Department sd On sys_u1.DepId = sd.Id
+                                         Where pm_ws.IsDel = 0 And pm_ws.YearMonth = '{0}'", yearMonth);
             var wageSheetList = await _sqlSugar.SqlQueryable<WageSheetItemInfoView>(sql).ToListAsync();
 
             if (wageSheetList.Count <= 0 )