Browse Source

计算工资
错误提示调整

leiy 11 months ago
parent
commit
5c9550c3c8

+ 2 - 9
OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

@@ -466,7 +466,6 @@ namespace OASystem.API.Controllers
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> SalaryCalculatorAsync(SalaryCalculatorDto dto)
         {
-
             Result result = new Result();
             Stopwatch sw = new Stopwatch();
             sw.Start();
@@ -485,8 +484,6 @@ namespace OASystem.API.Controllers
             string thisYearMonth = dto.yearMonth;
             string preYearMonth = yearMonthDt.AddMonths(-1).ToString("yyyy-MM");
 
-
-
             //计算本月工资起止时间 比如是2月的1号-28号,那就是2月1号的零点到3月1号的零点 
             DateTime thisStartDt = startDt;
             DateTime thisEndDt = endDt; //
@@ -512,8 +509,7 @@ namespace OASystem.API.Controllers
                                                   .ToList();
 
              //获取OA系统内所有用户
-             var nameData = await _usersRep.GetUserNameList(1);
-            List<UserNameView>? userNames = nameData.Data;
+            List<UserNameView> userNames =  _usersRep._sqlSugar.SqlQueryable<UserNameView>("Select Id,CnName From Sys_Users").ToList();
 
             List<Pm_WageSheet> wageSheets = new List<Pm_WageSheet>();
 
@@ -526,8 +522,6 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView(false, _result.Msg));
             }
 
-
-
             wageSheets = _result.Data;
 
             var add = await _wageSheetRep._sqlSugar.Insertable(wageSheets).ExecuteCommandAsync();
@@ -595,8 +589,7 @@ namespace OASystem.API.Controllers
 
             wageSheets.Add(wageSheet);
             //获取OA系统内所有用户
-            var nameData = await _usersRep.GetUserNameList(1);
-            List<UserNameView>? userNames = nameData.Data;
+            List<UserNameView> userNames = _usersRep._sqlSugar.SqlQueryable<UserNameView>("Select Id,CnName From Sys_Users").ToList();
 
             _result = await PayrollComputation.SalaryCalculatorAsync(wageSheets, userNames, dto.UserId, dto.YearMonth, startDt, endDt);
 

+ 17 - 24
OASystem/OASystem.Api/OAMethodLib/PayrollComputation.cs

@@ -49,24 +49,18 @@ namespace OASystem.API.OAMethodLib
                 return _result;
             }
 
-            if (userNames.Count <= 0)
-            {
-                var nameData = await _usersRep.GetUserNameList(1);
-                userNames = nameData.Data;
-            }
-
             //计算时间段内工作日
             int work_days = await GetWorkDays(thisYearMonth);
             if (work_days <=0)
             {
-                _result.Msg = thisYearMonth+" 工作日未设置,请前往《工作日管理页面》设置!";
+                _result.Msg = $"{thisYearMonth} 工作日未设置,请前往《工作日管理页面》设置!";
                 return _result;
             }
 
             UserIdListView userIdListView = await _qiYeWeChatApiService.GetUserIdListAsync();
             if (userIdListView.errcode != 0)
             {
-                _result.Msg = "【企业微信】【打卡】【获取员工ID】【Msg】" + userIdListView.errmsg;
+                _result.Msg = $"【企业微信】【打卡】【获取员工ID】【Msg】{userIdListView.errmsg}";
                 return _result;
             }
 
@@ -75,7 +69,7 @@ namespace OASystem.API.OAMethodLib
             CheckInDayDataView checkInDayDataView = await _qiYeWeChatApiService.GetCheckInDayDataAsync(qyWhchatIdList, startDt, endDt);
             if (checkInDayDataView.errcode != 0)
             {
-                _result.Msg = "【企业微信】【打卡】【获取时间段内所有日打卡】【Msg】" + checkInDayDataView.errmsg;
+                _result.Msg = $"【企业微信】【打卡】【获取时间段内所有日打卡】【Msg】{checkInDayDataView.errmsg}";
                 return _result;
             }
 
@@ -84,7 +78,7 @@ namespace OASystem.API.OAMethodLib
             checkInDataView = await _qiYeWeChatApiService.GetCheckinDataAsync(qyWhchatIdList, 3,startDt, endDt);
             if (checkInDataView.errcode != 0)
             {
-                _result.Msg = "【企业微信】【打卡】【获取时间段内所有日打卡记录】【Msg】" + checkInDataView.errmsg;
+                _result.Msg = $"【企业微信】【打卡】【获取时间段内所有日打卡记录】【Msg】{checkInDataView.errmsg}";
                 return _result;
             }
 
@@ -107,7 +101,7 @@ namespace OASystem.API.OAMethodLib
             CorpCheckInRuleView corpCheckInRole = await _qiYeWeChatApiService.GetCheckIn_CorpCheckInOptionAsync();
             if (corpCheckInRole.errcode != 0)
             {
-                _result.Msg = "【企业微信】【打卡】【获取企业打卡规则】【Msg】" + corpCheckInRole.errmsg;
+                _result.Msg = $"【企业微信】【打卡】【获取企业打卡规则】【Msg】{corpCheckInRole.errmsg}" ;
                 return _result;
             }
 
@@ -137,17 +131,16 @@ namespace OASystem.API.OAMethodLib
             List<VacationLeaveTypeView> vacationLeaveTypes = await GetVacationLeaveTypes(leave_template_id);
             if (vacationLeaveTypes.Count <= 0)
             {
-                _result.Msg = "【企业微信】【审批】【获取审批类型】【Msg】" + startDt + " - " + endDt + "请假 类型数据 获取失败!";
+                _result.Msg = $"【企业微信】【审批】【获取审批类型】【Msg】{startDt} - {endDt}请假 类型数据 获取失败!";
                 return _result;
             }
 
-            string name = "";
+            string _name = "";
             try
             {
                 foreach (var pm_wsInfo in pm_WageSheetDattaSources)
                 {
-                    string itemName = userNames.Where(it => it.Id == pm_wsInfo.UserId).FirstOrDefault().CnName;
-                    name = itemName;
+                    _name = userNames.Find(it => it.Id == pm_wsInfo.UserId)?.CnName ?? "Unknown";
 
                     //补贴 金额
                     decimal meal_subsidy = 0.00M;  // 午餐(午餐10元/天)  补贴 * 计算方式:单日上午请假时长(小时)大于或者等于三小时 没有餐补
@@ -196,13 +189,13 @@ namespace OASystem.API.OAMethodLib
 
                     List<Root> userRoots = new List<Root>();
 
-                    if (itemName == "蔡雯")
+                    if (_name == "蔡雯")
                     {
                         userRoots = workday_userRoots.Where(it => it.base_info.name == "蔡蔡" || it.base_info.name == "蔡雯").ToList(); //工作日日报 1-固定上下班;
                     }
                     else
                     {
-                        userRoots = workday_userRoots.Where(it => it.base_info.name == itemName).ToList(); //工作日日报 1-固定上下班;
+                        userRoots = workday_userRoots.Where(it => it.base_info.name == _name).ToList(); //工作日日报 1-固定上下班;
                     } 
 
                     //userRoots = userRoots.Distinct().ToList();
@@ -217,11 +210,11 @@ namespace OASystem.API.OAMethodLib
                     meal_subsidy = dk_work_days * 10; //应发放餐补
 
 
-                    if (!itemName.Equals("张海麟"))
+                    if (!_name.Equals("张海麟"))
                     {
                         if (userRoots.Count <= 0)
                         {
-                            _result.Msg = "【企业微信】【打卡】【获取打卡数据】【Msg】" + startDt + " - " + endDt + "打卡日数据 获取失败!";
+                            _result.Msg = $"【{_name}】【企业微信】【打卡】【获取打卡数据】【Msg】{startDt} - {endDt} 打卡日数据 获取失败!";
                             continue;
                         }
 
@@ -536,7 +529,7 @@ namespace OASystem.API.OAMethodLib
                             sp_gooutpunch_details = await _qiYeWeChatApiService.GetApprovalDetailsAsync(startDt, endDt, acctid, 2, 4); //时间段内所有 已同意的 外出打卡 审批数据
                             if (sp_gooutpunch_details.Count <= 0)
                             {
-                                _result.Msg += startDt + " - " + endDt + "  " + itemName + "  外出打卡 审批数据获取未获取到!\r\n";
+                                _result.Msg +=  $"{_name}:{startDt} - {endDt}  外出打卡 审批数据获取未获取到!\r\n";
                             }
 
                             List<LeaveDetails> goOutPunchDetails = new List<LeaveDetails>();
@@ -732,7 +725,7 @@ namespace OASystem.API.OAMethodLib
                             sp_leave_details = await _qiYeWeChatApiService.GetApprovalDetailsAsync(startDt, endDt, acctid, 2, 1); //时间段内所有 已同意的 请假 审批数据
                             if (sp_leave_details.Count <= 0)
                             {
-                                _result.Msg += startDt + " - " + endDt + "  " + itemName + "  请假 审批数据获取未获取到!\r\n";
+                                _result.Msg +=  $"{_name}: {startDt} - {endDt}  请假 审批数据获取未获取到!\r\n";
                                 //continue;
                             }
                             List<Ex_Item> ex_ItemInfos = new List<Ex_Item>();
@@ -1235,7 +1228,7 @@ namespace OASystem.API.OAMethodLib
                             sp_leave_details = await _qiYeWeChatApiService.GetApprovalDetailsAsync(startDt, endDt, acctid, 2, 3); //时间段内所有 已同意的 出差 审批数据
                             if (sp_leave_details.Count <= 0)
                             {
-                                _result.Msg += startDt + " - " + endDt + "  " + itemName + "  请假 审批数据获取未获取到!\r\n";
+                                _result.Msg += $"{_name}: {startDt} - {endDt}  请假 审批数据获取未获取到!\r\n";
                                 //continue;
                             }
                             List<Ex_Item> cc_ex_ItemInfos = new List<Ex_Item>();
@@ -1410,7 +1403,7 @@ namespace OASystem.API.OAMethodLib
                     }
                     else
                     {
-                        if (itemName.Equals("张海麟"))
+                        if (_name.Equals("张海麟"))
                         {
                             salaryTotal = amountPayable + mealTotal + pm_wsInfo.OtherHandle;    //应发合计
                         }
@@ -1463,7 +1456,7 @@ namespace OASystem.API.OAMethodLib
             catch (Exception ex)
             {
 
-                _result.Msg = "【" + name + "】【Msg:" + ex.Message + "】";
+                _result.Msg = $"【{_name}】【Msg:{ex.Message}】";
 
                 return _result;
             }