123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- using AutoMapper;
- using OASystem.Domain.Dtos.PersonnelModule;
- using OASystem.Domain.Entities.PersonnelModule;
- using OASystem.Domain.ViewModels.PersonnelModule;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using SqlSugar;
- using Result = OASystem.Domain.Result;
- using Newtonsoft.Json;
- namespace OASystem.Infrastructure.Repositories.PersonnelModule
- {
- /// <summary>
- /// 人事模块 工资表 仓库
- /// </summary>
- public class WageSheetRepository : BaseRepository<Pm_WageSheet, WageSheetView>
- {
- private readonly IMapper _mapper;
- private Result _result;
- public WageSheetRepository(SqlSugarClient sqlSugar, IMapper mapper)
- : base(sqlSugar)
- {
- _mapper = mapper;
- _result = new Result();
- }
- /// <summary>
- /// 查询工资 List
- /// </summary>
- /// <returns></returns>
- public async Task<Result> Get_WageSheet_ListByYearMonthAsync(string yearMonth )
- {
- if (string.IsNullOrEmpty(yearMonth))
- {
- _result.Msg = "参数为空";
- return _result;
- }
- string sql = string.Format(@"Select sys_u1.CnName Name,sys_u2.CnName LastUpdateUserName,pm_ws.LastUpdateDt, pm_ws.Id,
- pm_ws.YearMonth,pm_ws.StartDate,pm_ws.EndDate,pm_ws.UserId,pm_ws.Should,
- pm_ws.TotalDeductions,pm_ws.Ex_ItemsRemark,TotalRealHair,pm_ws.WithholdingTax,pm_ws.AfterTax
- 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
- Where pm_ws.IsDel = 0 And pm_ws.YearMonth = '{0}'", yearMonth);
- var wageSheetList = await _sqlSugar.SqlQueryable<WageSheetItemInfoView>(sql).ToListAsync();
- if (wageSheetList.Count <= 0 )
- {
- _result.Msg = "暂无数据!";
- return _result;
- }
- //wageSheetList = wageSheetList.Select(it => {
- // if (!string.IsNullOrEmpty(it.Ex_ItemsRemark))
- // {
- // List<Ex_Items>? data = new List<Ex_Items>();
- // data = JsonConvert.DeserializeObject<List<Ex_Items>>(it.Ex_ItemsRemark);
- // it.Ex_Items = data;
- // }
- // return it;
-
- //}).ToList();
- _result.Code = 0;
- _result.Msg = "查询成功!";
- _result.Data = wageSheetList;
- return _result;
- }
- /// <summary>
- /// 查询工资 Info
- /// </summary>
- /// <returns></returns>
- public async Task<Result> Get_WageSheet_InfoByIdAsync(int id)
- {
- string sql = string.Format(@"Select 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
- Where pm_ws.IsDel = 0 And pm_ws.Id = {0}", id);
- var wageSheetInfo = await _sqlSugar.SqlQueryable<WageSheetInfoView>(sql).FirstAsync();
- if (wageSheetInfo != null)
- {
- _result.Code = 0;
- _result.Msg = "查询成功!";
- _result.Data = wageSheetInfo;
- }
-
- return _result;
- }
- /// <summary>
- /// 修改
- /// </summary>
- /// <returns></returns>
- public async Task<Result> Post_WageSheet_AddOrEditAsync(WageAddOrEditDto dto)
- {
- Pm_WageSheet pm_WageSheet = new Pm_WageSheet();
- pm_WageSheet = _mapper.Map<Pm_WageSheet>(dto);
- pm_WageSheet.LastUpdateUserId = dto.CreateUserId;
- #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;
- //扣款合计
- decimal totalDeduction = pm_WageSheet.SickLeave + pm_WageSheet.SomethingFalse + pm_WageSheet.LateTo + pm_WageSheet.LeaveEarly + pm_WageSheet.Absenteeism + pm_WageSheet.NotPunch +
- pm_WageSheet.OtherDeductions;
- //实发合计 不含个税
- decimal actualTotal = salary - totalDeduction;
- pm_WageSheet.Should = salary;
- pm_WageSheet.TotalDeductions = totalDeduction;
- pm_WageSheet.TotalRealHair = actualTotal;
- pm_WageSheet.AfterTax = actualTotal - pm_WageSheet.WithholdingTax;
- #endregion
- if (dto.Status == 1) //添加
- {
- var select = await _sqlSugar.Queryable<Pm_WageSheet>().
- Where(it => it.IsDel == 0 && it.UserId == pm_WageSheet.UserId && it.YearMonth == pm_WageSheet.YearMonth).
- FirstAsync();
- if (select != null)
- {
- _result.Msg = "该用户 "+ pm_WageSheet.YearMonth + " 工资信息已存在,请前往修改!";
- return _result;
- }
- int add = await _sqlSugar.Insertable(pm_WageSheet).ExecuteReturnIdentityAsync();
- if (add <= 0)
- {
- _result.Msg = "操作失败!";
- return _result;
- }
- }
- else if(dto.Status == 2) //修改
- {
- int update = await _sqlSugar.Updateable(pm_WageSheet)
- .IgnoreColumns(it => new { it.CreateUserId, it.CreateTime,it.DeleteUserId,it.DeleteTime })
- .WhereColumns(it => new { it.Id })
- .ExecuteCommandAsync();
- if (update <= 0)
- {
- _result.Msg = "操作失败!";
- return _result;
- }
- }
- else{
- _result.Msg = "请输入操作状态!1 添加 2 修改";
- }
- _result.Code = 0;
- _result.Msg = "操作成功!";
- return _result;
- }
- /// <summary>
- /// 删除
- /// </summary>
- /// <returns></returns>
- public async Task<Result> Post_WageSheet_DelAsync(WageDelDto dto)
- {
- Pm_WageSheet pm_WageSheet = new Pm_WageSheet()
- {
- Id = dto.Id,
- DeleteUserId = dto.UserId,
- DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
- LastUpdateUserId = dto.UserId,
- IsDel = 1
- };
- int update = await _sqlSugar.Updateable(pm_WageSheet)
- .UpdateColumns(it => new { it.DeleteUserId, it.DeleteTime, it.IsDel, it.LastUpdateUserId, it.LastUpdateDt })
- .WhereColumns(it => new { it.Id })
- .ExecuteCommandAsync();
- if (update <= 0)
- {
- _result.Msg = "操作失败!";
- return _result;
- }
- _result.Code = 0;
- _result.Msg = "操作成功!";
- return _result;
- }
- }
- }
|