Browse Source

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

wangh 1 year ago
parent
commit
27c7fee3c0

+ 45 - 4
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -261,13 +261,54 @@ namespace OASystem.API.Controllers
         {
             if (dto == null) return Ok(JsonView(false, "请输入搜索搜索条件!"));
 
-            var groupData = await _groupRepository.PostGroupPageList(dto);
-            if (groupData.Code != 0)
+            if (dto.PortType == 1 || dto.PortType == 2) // web/Android
             {
-                return Ok(JsonView(false, groupData.Msg));
+                string sqlWhere = string.Empty;
+                if (dto.IsSure == 0) //未完成
+                {
+                    sqlWhere += string.Format(@" And IsSure = 0");
+                }
+                else if (dto.IsSure == 1) //已完成
+                {
+                    sqlWhere += string.Format(@" And IsSure = 1");
+                }
+
+                if (!string.IsNullOrEmpty(dto.SearchCriteria))
+                {
+                    string tj = dto.SearchCriteria;
+                    sqlWhere += string.Format(@"And (ssd.Name Like '%{0}%' Or TeamName Like '%{1}%' Or ClientName Like '%{2}%' Or  ClientName Like '%{3}%' Or su.CnName  Like '%{4}%')",
+                       tj, tj, tj, tj, tj);
+                }
+
+                string sql = string.Format(@"Select Row_Number,SalesQuoteNo,TourCode,TeamTypeId, TeamType,
+					                              TeamLevId,TeamLev,TeamName,ClientName,ClientUnit,
+					                              VisitDate,VisitDays,VisitPNumber,JietuanOperator,IsSure,CreateTime
+					                              From (
+					                              Select row_number() over(order by gdi.CreateTime Desc) as Row_Number,
+					                              gdi.Id,SalesQuoteNo,TourCode,ssd.Id TeamTypeId, ssd.Name TeamType,
+					                              ssd1.Id TeamLevId,ssd1.Name TeamLev,TeamName,ClientName,ClientUnit,
+					                              VisitDate,VisitDays,VisitPNumber,su.CnName JietuanOperator,IsSure,gdi.CreateTime
+					                              From  Grp_DelegationInfo gdi
+					                              Inner Join Sys_SetData ssd On gdi.TeamDid = ssd.Id 
+					                              Inner Join Sys_SetData ssd1 On gdi.TeamLevSId = ssd1.Id
+					                              Left Join Sys_Users su On gdi.JietuanOperator = su.Id
+					                              Where gdi.IsDel = 0  {0}
+				                              ) temp  ", sqlWhere);
+
+                RefAsync<int> total = 0;//REF和OUT不支持异步,想要真的异步这是最优解
+                var _DelegationList = await _sqlSugar.SqlQueryable<DelegationListView>(sql).ToPageListAsync(dto.PageIndex, dto.PageSize, total);//ToPageAsync
+
+                return Ok(JsonView(true,"查询成功!",_DelegationList, total));
+
             }
+            else
+            {
+                return Ok(JsonView(false, "查询失败"));
+            }
+               
+           
 
-            return Ok(JsonView(groupData.Data));
+            
         }
 
         /// <summary>

+ 42 - 10
OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

@@ -27,6 +27,8 @@ namespace OASystem.API.Controllers
         private readonly WageSheetRepository _wageSheetRep;
         private readonly UsersRepository _usersRep;
 
+        private string url;
+        private string path;
 
         /// <summary>
         /// 初始化
@@ -42,6 +44,14 @@ namespace OASystem.API.Controllers
             _qiYeWeChatApiService = qiYeWeChatApiService;
             _wageSheetRep = wageSheetRep;
             _result = new Result();
+
+
+            url = AppSettingsHelper.Get("ExcelBaseUrl");
+            path = AppSettingsHelper.Get("ExcelBasePath");
+            if (!System.IO.Directory.Exists(path))
+            {
+                System.IO.Directory.CreateDirectory(path);//不存在就创建文件夹
+            }
         }
 
         #region 工资表单
@@ -360,7 +370,7 @@ namespace OASystem.API.Controllers
                 #region 计算工资
 
                 //月工资
-                decimal salary = pm_WageSheet.Basic + pm_WageSheet.Floats + pm_WageSheet.PostAllowance + pm_WageSheet.InformationSecurityFee + pm_WageSheet.OtherSubsidies;
+                decimal salary = pm_WageSheet.Basic + pm_WageSheet.Floats + pm_WageSheet.PostAllowance + pm_WageSheet.InformationSecurityFee + pm_WageSheet.OtherSubsidies + pm_WageSheet.OtherHandle;
                 //扣款合计
                 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;
@@ -397,7 +407,6 @@ namespace OASystem.API.Controllers
                 if (_result.Code != 0)
                 {
                     return Ok(JsonView(false, _result.Msg));
-
                 }
             }
             catch (Exception ex)
@@ -662,21 +671,44 @@ namespace OASystem.API.Controllers
                 List<string> names = new List<string>();
 
                 List<UserNameView> users = new List<UserNameView>();
+                names.Add("管理员");
+                names.Add("国交共享号");
+                names.Add("人事审核号");
+                names.Add("国交主管号");
+
+                List<TaxTemlateViuw> taxs = new List<TaxTemlateViuw>();
                 users = JsonConvert.DeserializeObject<List<UserNameView>>(JsonConvert.SerializeObject(userNames));
 
                 foreach (UserNameView item in users)
                 {
-                    names.Add(item.CnName);
+                    string uName = item.CnName;
+                    if (!names.Contains(uName))
+                    {
+                        taxs.Add(new TaxTemlateViuw { UserName = item.CnName });
+                    }
                 }
 
-                names.Remove("管理员");
-                names.Remove("国交共享号");
-                names.Remove("人事审核号");
-                names.Remove("国交主管号");
-
-                if (names.Count > 0)
+                if (taxs.Count > 0)
                 {
-                    return Ok(JsonView(true, "操作成功!", new { FileUrl = serverUrl + "Office/WageSheetFile/个税导入模板.xlsx" }));
+                    WorkbookDesigner designer = new WorkbookDesigner();
+                    designer.Workbook = new Workbook(AppSettingsHelper.Get("ExcelBasePath") + "Template/个税导入模板.xlsx");
+                    designer.Workbook.Worksheets[0].Name = "个税模板";
+                    designer.SetDataSource("TaxTemp", taxs);
+                    designer.Process();
+
+                    string fileName = "WageSheetTaxFile/个税模板" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
+                    string path = AppSettingsHelper.Get("ExcelBasePath");
+                    designer.Workbook.Save(path + fileName);
+                    designer = null;
+
+                    string excelPath = AppSettingsHelper.Get("ExcelFtpPath") + fileName;
+                    string url = AppSettingsHelper.Get("ExcelBaseUrl");
+                    string fileUrl = url + excelPath;
+
+
+
+
+                    return Ok(JsonView(true, "操作成功!", new { FileUrl = fileUrl }));
                 }
 
             }

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

@@ -141,7 +141,8 @@ namespace OASystem.API.OAMethodLib
                     #region 计算日工资 正常日薪 事假日薪 病假日薪
 
                     //月 - 应发工资
-                    decimal amountPayable = pm_wsInfo.Basic + pm_wsInfo.Floats + pm_wsInfo.PostAllowance + pm_wsInfo.InformationSecurityFee + pm_wsInfo.OtherSubsidies;
+                    decimal amountPayable = pm_wsInfo.Basic + pm_wsInfo.Floats + pm_wsInfo.PostAllowance + pm_wsInfo.InformationSecurityFee + 
+                                            pm_wsInfo.OtherSubsidies + pm_wsInfo.OtherHandle;
 
                     // 日薪 = *计算方式:日平均工资 = 月工资/当月应出勤天数。
                     decimal dailyWage = amountPayable / work_days;

+ 3 - 1
OASystem/OASystem.Api/appsettings.json

@@ -126,6 +126,8 @@
   "VisaProgressImageFtpPath": "Image/Visa/",
 
   "WageSheetExcelBaseUrl": "http://132.232.92.186:24/",
-  "WageSheetExcelFptPath": "C:/Server/File/OA2023/Office/WageSheetFile/"
+  "WageSheetExcelFptPath": "C:/Server/File/OA2023/Office/WageSheetFile/",
 
+  "WageSheetTaxExcelBaseUrl": "http://132.232.92.186:24/",
+  "WageSheetTaxExcelFptPath": "C:/Server/File/OA2023/Office/Excel/WageSheetTaxFile/"
 }

+ 6 - 0
OASystem/OASystem.Domain/Dtos/Groups/GroupListDto.cs

@@ -20,6 +20,12 @@ namespace OASystem.Domain.Dtos.Groups
     /// </summary>
     public class GroupPageListDto : DtoBase
     {
+        /// <summary>
+        /// 是否操作完成 
+        /// -1 全部 0否 1是
+        /// </summary>
+        public int IsSure { get; set; }
+
         /// <summary>
         /// 搜索条件
         /// 团组类型/团队名称/客户名称/客户单位/接团操作人

+ 11 - 2
OASystem/OASystem.Domain/Dtos/PersonnelModule/WageSheetDto.cs

@@ -111,6 +111,11 @@ namespace OASystem.Domain.Dtos.PersonnelModule
         /// </summary>
         public decimal InformationSecurityFee { get; set; }
 
+        /// <summary>
+        /// 其他应发
+        /// </summary>
+        public decimal OtherHandle { get; set; }
+
         /// <summary>
         /// 月度补贴/其他补贴
         /// </summary>
@@ -268,6 +273,12 @@ namespace OASystem.Domain.Dtos.PersonnelModule
         /// </summary>
         public decimal InformationSecurityFee { get; set; }
 
+        /// <summary>
+        /// 其他应付
+        /// 主要用来填比如补发工资之类
+        /// </summary>
+        public decimal otherHandle { get; set; }
+
         /// <summary>
         /// 月度补贴/其他补贴
         /// </summary>
@@ -290,6 +301,4 @@ namespace OASystem.Domain.Dtos.PersonnelModule
         /// <summary>
        /// 其他扣款
        /// </summary>                                 
        public decimal OtherDeductions { get; set; }
 
     }
-
-   
 }

+ 7 - 0
OASystem/OASystem.Domain/Entities/PersonnelModule/Pm_WageSheet.cs

@@ -73,6 +73,13 @@ namespace OASystem.Domain.Entities.PersonnelModule
         [SugarColumn(IsNullable = true, ColumnDataType = "decimal(8,2)")]
         public decimal InformationSecurityFee { get; set; }
 
+        /// <summary>
+        /// 其他应付
+        /// 主要用来填比如补发工资之类
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(8,2)")]
+        public decimal OtherHandle { get; set; }
+
         /// <summary>
         /// 服装洗理补贴 弃用
         /// </summary>

+ 2 - 0
OASystem/OASystem.Domain/ViewModels/Groups/DelegationInfoView.cs

@@ -332,6 +332,8 @@ namespace OASystem.Domain.ViewModels.Groups
         public int IsSure { get; set; }
     }
 
+    
+
     /// <summary>
     /// 团组信息 Page List
     /// </summary>

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

@@ -90,6 +90,10 @@ namespace OASystem.Domain.ViewModels.PersonnelModule
         /// </summary>
         public decimal InformationSecurityFee { get; set; }
 
+        /// <summary>
+        /// 其他应付
+        /// </summary>
+        public decimal OtherHandle { get; set; }
 
         /// <summary>
         /// 月度补贴/其他补贴
@@ -323,6 +327,16 @@ namespace OASystem.Domain.ViewModels.PersonnelModule
         public DateTime? LastUpdateDt { get; set; }
     }
 
+    /// <summary>
+    /// 个税模板 View
+    /// </summary>
+    public class TaxTemlateViuw
+    {
+        public string? UserName { get; set; }
+
+        public decimal Tax { get; set; } = 0.00M;
+    }
+
 
     public class ExportWageSheetItemView:Pm_WageSheet
     {

+ 1 - 37
OASystem/OASystem.Infrastructure/Repositories/Groups/DelegationInfoRepository.cs

@@ -1,4 +1,5 @@
 using Newtonsoft.Json;
+using NPOI.OpenXmlFormats.Wordprocessing;
 using OASystem.Domain;
 using OASystem.Domain.Dtos;
 using OASystem.Domain.Dtos.Financial;
@@ -216,43 +217,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
         }
 
-        /// <summary>
-        /// 获取接团信息 Page List
-        /// </summary>
-        /// <param name="dto"></param>
-        /// <returns></returns>
-        public async Task<Result> PostGroupPageList(GroupPageListDto dto)
-        {
-            Result result = new Result() { Code = -2, Msg = "未知错误" };
-
-            if (dto.PortType == 1 || dto.PortType == 2) // web/Android
-            {
-                string sql = string.Format(@"Select gdi.Id,SalesQuoteNo,TourCode,ssd.Id TeamTypeId, ssd.Name TeamType,ssd1.Id TeamLevId,ssd1.Name TeamLev,TeamName,ClientName,ClientUnit,VisitDate,VisitDays,VisitPNumber,su.CnName JietuanOperator,IsSure
-                  From  Grp_DelegationInfo gdi
-                  Inner Join Sys_SetData ssd On gdi.TeamDid = ssd.Id 
-                  Inner Join Sys_SetData ssd1 On gdi.TeamLevSId = ssd1.Id
-                  Left Join Sys_Users su On gdi.JietuanOperator = su.Id
-                  Where gdi.IsDel = 0 
-                  Order By gdi.CreateTime Desc");
-
-                var _DelegationList = await _sqlSugar.SqlQueryable<DelegationListView>(sql).ToListAsync();
-                if (_DelegationList.Count > 0)
-                {
-                    result.Code = 0;
-                    result.Msg = "成功!";
-                    result.Data = _DelegationList;
-                }
-                else
-                {
-                    result.Msg = "暂无该团组信息";
-                }
-            }
-
-
-            return result;
-
-        }
-
         /// <summary>
         /// 获取接团信息Info
         /// </summary>

+ 1 - 1
OASystem/OASystem.Infrastructure/Repositories/PersonnelModule/WageSheetRepository.cs

@@ -50,7 +50,7 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
             //                              Where pm_ws.IsDel = 0 And pm_ws.YearMonth =  '{0}'", yearMonth);
 
             //公司部门
-            string sql = string.Format(@"Select row_number() over(order by pm_ws.Id) as Row_Number,
+            string sql = string.Format(@"Select row_number() over(order by pm_ws.UserId) as Row_Number,
                                          	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