using AutoMapper; using DTO; using IServices; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using zhengcaioa.Models; namespace Services { public class HrSalaryService: IHrSalaryService { private readonly zhengcaioaContext _context; private readonly IMapper _mapper; public HrSalaryService(zhengcaioaContext context, IMapper mapper) { _context = context; _mapper = mapper; } public ResultEntity save(HrSalaryDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var model = _mapper.Map(dto); if (String.IsNullOrEmpty(model.Id)) { model.Id = Guid.NewGuid().ToString(); _context.HrSalaries.Add(model); } else { var updatepltRole = _context.HrSalaries.Find(model.Id); updatepltRole.Userid = model.Userid; updatepltRole.Year = model.Year; updatepltRole.Month = model.Month; updatepltRole.Jibengongzi = model.Jibengongzi; updatepltRole.Baomifei = model.Baomifei; updatepltRole.Gongzuobutie = model.Gongzuobutie; updatepltRole.Jiabangongzi = model.Jiabangongzi; updatepltRole.Shebao = model.Shebao; updatepltRole.Dianhuabutie = model.Dianhuabutie; updatepltRole.Quanqinjiang = model.Quanqinjiang; updatepltRole.Jiaotngbutie = model.Jiaotngbutie; updatepltRole.Jixiaoticheng = model.Jixiaoticheng; updatepltRole.Jiangjin = model.Jiangjin; updatepltRole.Bufagongzi = model.Bufagongzi; updatepltRole.Shebaokou = model.Shebaokou; updatepltRole.Geshui = model.Geshui; updatepltRole.Dianhuafei = model.Dianhuafei; updatepltRole.Queqin = model.Queqin; updatepltRole.Fakuan = model.Fakuan; updatepltRole.Peichang = model.Peichang; updatepltRole.Jiucuo = model.Jiucuo; updatepltRole.Daozhanggongzi = model.Daozhanggongzi; updatepltRole.Yufagongzi = model.Yufagongzi; updatepltRole.Yufagongziheji = model.Yufagongziheji; updatepltRole.Islock = model.Islock; updatepltRole.RecStatus = model.RecStatus; // updatepltRole.Creater = pltRole.Creater; //updatepltRole.Createtime = pltRole.Createtime; updatepltRole.Modifier = model.Modifier; updatepltRole.Modifytime = model.Modifytime; } _context.SaveChanges(); resultEntity.ReturnID = model.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } /// /// 保存工资核准 /// /// /// public ResultEntity SaveCheckSalary(HrSalaryUpDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var updatepltRole = _context.HrSalaries.Where(c=>c.Id==dto.Id).SingleOrDefault(); if(updatepltRole!=null) { //如果有未完成的工作交接,不能核准工资 var admAskJiaojies = _context.AdmAskJiaojies.Where(x => x.Creater == updatepltRole.Userid && x.RecStatus == "A" && x.ShenpiStatus == "D").ToList(); if(admAskJiaojies!=null && admAskJiaojies.Count > 0) { resultEntity.Result = false; resultEntity.Message = "有未完成的工作交接,不能核准工资"; return resultEntity; } //更新电话费用状态 var sim = _context.SimCost.Where(c => c.bill_year == updatepltRole.Year && c.bill_month <= updatepltRole.Month && c.user_id == updatepltRole.Userid && c.status == "0").ToList(); if(sim!=null) { foreach (var item in sim) { item.status = "1"; } } var user = _context.PltUsers.Where(c => c.Id == updatepltRole.Userid).SingleOrDefault(); var buchangqian = (updatepltRole.Jiangjin??0) + (updatepltRole.Bufagongzi ?? 0) + (updatepltRole.Jiucuo ?? 0) + (updatepltRole.Peichang ?? 0); var buchanghou = (dto.Jiangjin ?? 0) + (dto.Bufagongzi ?? 0) + (dto.Jiucuo ?? 0) + (dto.Peichang ?? 0); updatepltRole.Daozhanggongzi += (buchanghou - buchangqian); if (user.advancewages.HasValue && user.advancewages.Value > 0) { updatepltRole.Yufagongziheji += (buchanghou - buchangqian); } updatepltRole.Jiangjin = dto.Jiangjin; updatepltRole.Bufagongzi = dto.Bufagongzi; updatepltRole.Peichang = dto.Peichang; updatepltRole.Jiucuo = dto.Jiucuo; updatepltRole.Yufagongziheji = dto.Yufagongziheji; //updatepltRole.Daozhanggongzi = (updatepltRole.Daozhanggongzi ?? 0) + (updatepltRole.Jiangjin ?? 0) + (updatepltRole.Bufagongzi ?? 0) + (updatepltRole.Peichang ?? 0) + (updatepltRole.Jiucuo ?? 0); // //updatepltRole.Yufagongziheji = (updatepltRole.Yufagongziheji ?? 0) + (updatepltRole.Jiangjin ?? 0) + (updatepltRole.Bufagongzi ?? 0) + (updatepltRole.Peichang ?? 0) + (updatepltRole.Jiucuo ?? 0); //var sum_f = (updatepltRole.Jibengongzi ?? 0) + (updatepltRole.Baomifei ?? 0) + (updatepltRole.Gongzuobutie ?? 0) + // (updatepltRole.Jiabangongzi ?? 0) + (updatepltRole.Shebao ?? 0) + // (updatepltRole.Quanqinjiang ?? 0) + (updatepltRole.Jiaotngbutie ?? 0) + (updatepltRole.Jixiaoticheng ?? 0); //decimal dianhuafei = 0; //if ((updatepltRole.Dianhuabutie ?? 0) - (updatepltRole.Dianhuafei ?? 0) <= 0) //{ // dianhuafei = (updatepltRole.Dianhuafei ?? 0)-(updatepltRole.Dianhuabutie ?? 0); //} //var sum_k = (updatepltRole.Shebaokou ?? 0) + (updatepltRole.Geshui ?? 0) + dianhuafei + // (updatepltRole.Queqin ?? 0) + (updatepltRole.Fakuan ?? 0); //updatepltRole.Daozhanggongzi = sum_f - sum_k; ////计算预发工资 //{ // //上一次的工资 // var bf= _context.HrSalaries.Where(c => c.Userid == user.Id && c.Islock== "Q" && c.RecStatus=="A"). // OrderByDescending(c=>c.Year).ThenByDescending(c=>c.Month).FirstOrDefault(); // var pc = user.advancewages.Value; // if (sum_f - sum_k > pc) // { // updatepltRole.Daozhanggongzi = sum_f - sum_k; // updatepltRole.Yufagongzi = 0; // if(bf!=null) // { // updatepltRole.Yufagongziheji = bf.Yufagongziheji??0 - (updatepltRole.Daozhanggongzi-pc); // } // else // { // updatepltRole.Yufagongziheji = (pc - updatepltRole.Daozhanggongzi); // } // } // else // { // //预发 // updatepltRole.Daozhanggongzi = pc; // updatepltRole.Yufagongzi = pc - (sum_f - sum_k); // if (bf != null) // { // updatepltRole.Yufagongziheji =bf.Yufagongziheji??0+ updatepltRole.Yufagongzi; // } // else // { // updatepltRole.Yufagongziheji = updatepltRole.Yufagongzi; // } // } //} //else //{ // updatepltRole.Daozhanggongzi = sum_f - sum_k; //} updatepltRole.Islock = "H"; updatepltRole.Modifier = dto.Modifier; updatepltRole.Modifytime =DateTime.Now; var count= _context.SaveChanges(); resultEntity.ReturnID = dto.Id; resultEntity.Result = true; } } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public HrSalaryDTO Get(string id) { var entity = (from a in _context.HrSalaries join b in _context.PltUsers on a.Userid equals b.Id join c in _context.HrDepts on b.DeptId equals c.Id where a.RecStatus == "A" && a.Id == id select new HrSalaryDTO() { Id = a.Id, Userid = a.Userid, Usernumber = b.Usernumber, UserName = b.UserName, DeptName = c.DeptName, Year = a.Year, Month = a.Month, Jibengongzi = a.Jibengongzi, Baomifei = a.Baomifei, Gongzuobutie = a.Gongzuobutie, Jiabangongzi = a.Jiabangongzi, Shebao = a.Shebao, Dianhuabutie = a.Dianhuabutie, Quanqinjiang = a.Quanqinjiang, Jiaotngbutie = a.Jiaotngbutie, Jixiaoticheng = a.Jixiaoticheng, Jiangjin = a.Jiangjin, Bufagongzi = a.Bufagongzi, Shebaokou = a.Shebaokou, Geshui = a.Geshui, Dianhuafei = a.Dianhuafei, Queqin = a.Queqin, Fakuan = a.Fakuan, Peichang = a.Peichang, Jiucuo = a.Jiucuo, Daozhanggongzi = a.Daozhanggongzi, Yufagongzi = a.Yufagongzi, Yufagongziheji = a.Yufagongziheji }).SingleOrDefault(); if (entity==null) { entity = new HrSalaryDTO(); } else { var ss = _context.HrSalaryAppeal.Where(c => c.salary_id == id).SingleOrDefault(); if(ss!=null) { entity.amount = ss.amount; entity.basis = ss.basis; entity.reason = ss.reason; } } return entity; } public ResultDataEntity SearchByPaging(HrSalaryDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); //var listCode = (from a in _context.SysCodeDtls // join b in _context.SysCodes // on a.CodeId equals b.Id // where a.RecStatus == "A" // && b.RecStatus == "A" // select new CodeDataEntity() // { // CodeId = b.Id, // CodeTable = b.CodeTable, // CodeField = b.CodeField, // CodeSn = a.CodeSn, // Comments = a.Comments, // Contents = a.Contents, // RecStatus = a.RecStatus, // Sort = a.Sort // } // ); int year = 0; int month = 0; if (string.IsNullOrWhiteSpace(searchEntity.YearMonth)) { DateTime yearMonth = DateTime.Now;//.Parse(searchEntity.YearMonth + "-01"); year = yearMonth.Year; month = yearMonth.Month; } var query = (from a in _context.HrSalaries//.Where(x => x.RecStatus == "A") // join b in listCode.Where(x => x.CodeTable == "hr_jibengongzi" && x.CodeField == "dianhuabutie") //on a.Dianhuabutie equals b.CodeSn // into bsssss // from bbb in bsssss.DefaultIfEmpty() join f in _context.PltUsers on a.Userid equals f.Id // into fsssss //from fff in fsssss.DefaultIfEmpty() join g in _context.HrDepts on f.DeptId equals g.Id // into gsssss //from ggg in gsssss.DefaultIfEmpty() where a.RecStatus == "A" && a.Islock != "Q" && (string.IsNullOrWhiteSpace(searchEntity.Usernumber) || f.Usernumber == searchEntity.Usernumber.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.DeptId) || f.DeptId == searchEntity.DeptId.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.UserName) || f.UserName.Contains(searchEntity.UserName.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.YearMonth) || ( a.Year == year && a.Month == month )) select new HrSalaryDTO { Id = a.Id, Userid = a.Userid, Usernumber = f.Usernumber, UserName = f.UserName, DeptName = g.DeptName, Year = a.Year, Month = a.Month, Jibengongzi = a.Jibengongzi, Baomifei = a.Baomifei, Gongzuobutie = a.Gongzuobutie, Jiabangongzi = a.Jiabangongzi, Shebao = a.Shebao, Dianhuabutie = a.Dianhuabutie, Quanqinjiang = a.Quanqinjiang, Jiaotngbutie = a.Jiaotngbutie, Jixiaoticheng = a.Jixiaoticheng, Jiangjin = a.Jiangjin, Bufagongzi = a.Bufagongzi, Shebaokou = a.Shebaokou, Geshui = a.Geshui, Dianhuafei = a.Dianhuafei, Queqin = a.Queqin, Fakuan = a.Fakuan, Peichang = a.Peichang, Jiucuo = a.Jiucuo, Daozhanggongzi = a.Daozhanggongzi, Yufagongzi = a.Yufagongzi, Yufagongziheji = a.Yufagongziheji, JibengongziName = a.Jibengongzi.HasValue ? a.Jibengongzi.Value.ToString("F2") : "", BaomifeiName = a.Baomifei.HasValue ? a.Baomifei.Value.ToString("F2") : "", GongzuobutieName = a.Gongzuobutie.HasValue ? a.Gongzuobutie.Value.ToString("F2") : "", JiabangongziName = a.Jiabangongzi.HasValue ? a.Jiabangongzi.Value.ToString("F2") : "", ShebaoName = a.Shebao.HasValue ? a.Shebao.Value.ToString("F2") : "", DianhuabutieName = a.Dianhuabutie.HasValue ? a.Dianhuabutie.Value.ToString("F2") : "", QuanqinjiangName = a.Quanqinjiang.HasValue ? a.Quanqinjiang.Value.ToString("F2") : "", JiaotngbutieName = a.Jiaotngbutie.HasValue ? a.Jiaotngbutie.Value.ToString("F2") : "", JixiaotichengName = a.Jixiaoticheng.HasValue ? a.Jixiaoticheng.Value.ToString("F2") : "", JiangjinName = a.Jiangjin.HasValue ? a.Jiangjin.Value.ToString("F2") : "", BufagongziName = a.Bufagongzi.HasValue ? a.Bufagongzi.Value.ToString("F2") : "", ShebaokouName = a.Shebaokou.HasValue ? a.Shebaokou.Value.ToString("F2") : "", GeshuiName = a.Geshui.HasValue ? a.Geshui.Value.ToString("F2") : "", DianhuafeiName = a.Dianhuafei.HasValue ? a.Dianhuafei.Value.ToString("F2") : "", QueqinName = a.Queqin.HasValue ? a.Queqin.Value.ToString("F2") : "", FakuanName = a.Fakuan.HasValue ? a.Fakuan.Value.ToString("F2") : "", PeichangName = a.Peichang.HasValue ? a.Peichang.Value.ToString("F2") : "", JiucuoName = a.Jiucuo.HasValue ? a.Jiucuo.Value.ToString("F2") : "", DaozhanggongziName = a.Daozhanggongzi.HasValue ? a.Daozhanggongzi.Value.ToString("F2") : "", YufagongziName = a.Yufagongzi.HasValue ? a.Yufagongzi.Value.ToString("F2") : "", YufagongzihejiName = a.Yufagongziheji.HasValue ? a.Yufagongziheji.Value.ToString("F2") : "", Islock = a.Islock, RecStatus = a.RecStatus, Creater = a.Creater, Createtime = a.Createtime, Modifier = a.Modifier, Modifytime = a.Modifytime, }).OrderByDescending(x => x.Modifytime).ToList(); //if (searchEntity.totalrows == 0) searchEntity.totalrows = query.Count(); var rolelist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); data.LoadData(searchEntity, rolelist); return data; } /// /// 工资核准查询 /// /// /// public ResultDataEntity SearchSalaryByPaging(HrSalaryDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); var listCode = (from e in _context.SysCodes join c in _context.SysCodeDtls on e.Id equals c.CodeId where e.RecStatus == "A" && c.RecStatus == "A" && e.CodeTable == "t_sim_bind" && e.CodeField == "cardpro" select c).OrderBy(x => x.Sort).ToList(); int year = 0; int month = 0; if (string.IsNullOrWhiteSpace(searchEntity.YearMonth)) { DateTime yearMonth = DateTime.Now;//.Parse(searchEntity.YearMonth + "-01"); year = yearMonth.Year; month = yearMonth.Month; } else { var len = searchEntity.YearMonth.Split('-'); if(len.Length==2) { year =int.Parse(len[0]); month = int.Parse(len[1]); } } var query = (from a in (_context.HrSalaries.Where(x => x.RecStatus == "A")) //join b in listCode //on a.Dianhuabutie equals b.CodeSn //into bsssss //from bbb in bsssss.DefaultIfEmpty() join f in _context.PltUsers on a.Userid equals f.Id // into fsssss //from fff in fsssss.DefaultIfEmpty() join g in _context.HrDepts on f.DeptId equals g.Id // into gsssss //from ggg in gsssss.DefaultIfEmpty() where a.RecStatus == "A" && a.Islock!="Q" && (string.IsNullOrWhiteSpace(searchEntity.Usernumber) || f.Usernumber == searchEntity.Usernumber.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.DeptId) || f.DeptId == searchEntity.DeptId.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.UserName) || f.UserName.Contains(searchEntity.UserName.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.YearMonth) || ( a.Year == year && a.Month == month )) select new HrSalaryDTO { Id = a.Id, Userid = a.Userid, Usernumber = f.Usernumber, UserName = f.UserName, DeptName = g.DeptName, Year = a.Year, Month = a.Month, Jibengongzi = a.Jibengongzi, Baomifei = a.Baomifei, Gongzuobutie = a.Gongzuobutie, Jiabangongzi = a.Jiabangongzi, Shebao = a.Shebao, Dianhuabutie = a.Dianhuabutie, Quanqinjiang = a.Quanqinjiang, Jiaotngbutie = a.Jiaotngbutie, Jixiaoticheng = a.Jixiaoticheng, Jiangjin = a.Jiangjin, Bufagongzi = a.Bufagongzi, Shebaokou = a.Shebaokou, Geshui = a.Geshui, Dianhuafei = a.Dianhuafei, Queqin = a.Queqin, Fakuan = a.Fakuan, Peichang = a.Peichang, Jiucuo = a.Jiucuo, Daozhanggongzi = a.Daozhanggongzi, Yufagongzi = a.Yufagongzi, Yufagongziheji = a.Yufagongziheji, JibengongziName = a.Jibengongzi.HasValue ? a.Jibengongzi.Value.ToString("F2") : "", BaomifeiName = a.Baomifei.HasValue ? a.Baomifei.Value.ToString("F2") : "", GongzuobutieName = a.Gongzuobutie.HasValue ? a.Gongzuobutie.Value.ToString("F2") : "", JiabangongziName = a.Jiabangongzi.HasValue ? a.Jiabangongzi.Value.ToString("F2") : "", ShebaoName = a.Shebao.HasValue ? a.Shebao.Value.ToString("F2") : "", DianhuabutieName = a.Dianhuabutie.HasValue ? a.Dianhuabutie.Value.ToString("F2") : "", QuanqinjiangName = a.Quanqinjiang.HasValue ? a.Quanqinjiang.Value.ToString("F2") : "", JiaotngbutieName = a.Jiaotngbutie.HasValue ? a.Jiaotngbutie.Value.ToString("F2") : "", JixiaotichengName = a.Jixiaoticheng.HasValue ? a.Jixiaoticheng.Value.ToString("F2") : "", JiangjinName = a.Jiangjin.HasValue ? a.Jiangjin.Value.ToString("F2") : "", BufagongziName = a.Bufagongzi.HasValue ? a.Bufagongzi.Value.ToString("F2") : "", ShebaokouName = a.Shebaokou.HasValue ? a.Shebaokou.Value.ToString("F2") : "", GeshuiName = a.Geshui.HasValue ? a.Geshui.Value.ToString("F2") : "", DianhuafeiName = a.Dianhuafei.HasValue ? a.Dianhuafei.Value.ToString("F2") : "", QueqinName = a.Queqin.HasValue ? a.Queqin.Value.ToString("F2") : "", FakuanName = a.Fakuan.HasValue ? a.Fakuan.Value.ToString("F2") : "", PeichangName = a.Peichang.HasValue ? a.Peichang.Value.ToString("F2") : "", JiucuoName = a.Jiucuo.HasValue ? a.Jiucuo.Value.ToString("F2") : "", DaozhanggongziName = a.Daozhanggongzi.HasValue ? a.Daozhanggongzi.Value.ToString("F2") : "", YufagongziName = a.Yufagongzi.HasValue ? a.Yufagongzi.Value.ToString("F2") : "", YufagongzihejiName = a.Yufagongziheji.HasValue ? a.Yufagongziheji.Value.ToString("F2") : "", Islock =a.Islock, RecStatus = a.RecStatus, Creater = a.Creater, Createtime = a.Createtime, Modifier = a.Modifier, Modifytime = a.Modifytime, }).OrderBy(x => x.UserName).ToList(); //if (searchEntity.totalrows == 0) searchEntity.totalrows = query.Count(); var rolelist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); if(rolelist!=null && rolelist.Count>0) { foreach(var item in rolelist) { item.DianhuabutieChs = BackChs(listCode, item.Dianhuabutie); } } data.LoadData(searchEntity, rolelist); return data; } /// /// 注释 /// /// /// /// private string BackChs(List listCode ,decimal? code ) { string str = "无"; if(code.HasValue) { var st = ((int)code.Value).ToString(); var temp = listCode.Find(c => c.CodeSn == st); if(temp!=null) { str = temp.Comments; } } return str; } public ResultEntity ModifyStatus(string id, string userid) { ResultEntity result = new ResultEntity(); result.Result = true; var model = _context.HrSalaries.Find(id); if (model != null) { model.RecStatus = "D"; model.Modifier = userid; model.Modifytime = DateTime.Now; _context.SaveChanges(); } return result; } /// /// 获取所有有效角色 /// /// public List GetList() { var listPosition = _context.HrSalaries.Where(r => r.RecStatus == "A").ToList(); var list = _mapper.Map>(listPosition); return list; } /// /// 获取所有有效角色 /// /// public HrSalaryDTO GetListByUser(string Userid, int year, int month) { var listPosition = _context.HrSalaries.Where(r => r.RecStatus == "A" && r.Userid == Userid && r.Year == year && r.Month == month).FirstOrDefault(); HrSalaryDTO hrSalaryDTO = null; if (listPosition != null) { hrSalaryDTO = _mapper.Map(listPosition); } return hrSalaryDTO; } /// /// 工资核对 /// /// /// /// /// public List GetSalary(string userid,int year,int month) { var listCode = (from e in _context.SysCodes join c in _context.SysCodeDtls on e.Id equals c.CodeId where e.RecStatus == "A" && c.RecStatus == "A" && e.CodeTable == "t_sim_bind" && e.CodeField == "cardpro" select c).OrderBy(x => x.Sort).ToList(); var entity = (from a in _context.HrSalaries join b in _context.PltUsers on a.Userid equals b.Id join c in _context.HrDepts on b.DeptId equals c.Id where a.RecStatus=="A" && a.Islock!="D" && a.Userid == userid && a.Year == year && a.Month==month select new HrSalaryDTO() { Id = a.Id, Userid = a.Userid, Usernumber = b.Usernumber, UserName = b.UserName, DeptName = c.DeptName, Year = a.Year, Month = a.Month, Jibengongzi = a.Jibengongzi, Baomifei = a.Baomifei, Gongzuobutie = a.Gongzuobutie, Jiabangongzi = a.Jiabangongzi, Shebao = a.Shebao, Dianhuabutie = a.Dianhuabutie, Quanqinjiang = a.Quanqinjiang, Jiaotngbutie = a.Jiaotngbutie, Jixiaoticheng = a.Jixiaoticheng, Jiangjin = a.Jiangjin, Bufagongzi = a.Bufagongzi, Shebaokou = a.Shebaokou, Geshui = a.Geshui, Dianhuafei = a.Dianhuafei, Queqin = a.Queqin, Fakuan = a.Fakuan, Peichang = a.Peichang, Jiucuo = a.Jiucuo, Daozhanggongzi = a.Daozhanggongzi, Yufagongzi = a.Yufagongzi, Yufagongziheji = a.Yufagongziheji, Islock=a.Islock }).ToList(); if (entity == null) { entity = new List(); } else { foreach (var item in entity) { item.DianhuabutieChs = BackChs(listCode, item.Dianhuabutie); } } return entity; } /// /// 工资确认 /// /// /// /// public ResultEntity CheckOk(string id,string user) { ResultEntity resultEntity = new ResultEntity(); try { var updatepltRole = _context.HrSalaries.Where(c=>c.Id==id && c.Userid==user).FirstOrDefault(); if(updatepltRole!=null) { updatepltRole.Islock = "Q"; updatepltRole.Modifier = user; updatepltRole.Modifytime = DateTime.Now; _context.SaveChanges(); resultEntity.Result = true; } } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } /// /// 提交申诉 /// /// /// public ResultEntity CheckAppea(HrSalaryAppeal model) { ResultEntity resultEntity = new ResultEntity(); try { var salary = _context.HrSalaries.Where(c => c.Id == model.salary_id && c.RecStatus == "A" && c.Islock != "Q").SingleOrDefault(); if (salary != null) { salary.Islock = "S"; var temp = _context.HrSalaryAppeal.Where(e => e.salary_id == model.salary_id && e.sub_user==model.sub_user).SingleOrDefault(); if (temp != null && temp.status == "A") { temp.reason = model.reason; temp.amount = model.amount; temp.basis = model.basis; temp.shenpi_status = model.shenpi_status; } else { model.id = Guid.NewGuid().ToString(); model.year = salary.Year; model.month = salary.Month; model.sub_time = DateTime.Now; model.status = "A"; _context.HrSalaryAppeal.Add(model); } var i= _context.SaveChanges(); resultEntity.Result = true; } } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; ex.Message.ToString(); } return resultEntity; } /// /// 查申诉信息 /// /// /// /// public HrSalaryAppeal GetAppeal(string id = "", string user = "", string salaryId = "") { HrSalaryAppeal hd = new HrSalaryAppeal(); try { if (!string.IsNullOrEmpty(salaryId)) { hd = _context.HrSalaryAppeal.Where(e => e.salary_id == salaryId && e.sub_user == user && e.status == "A").FirstOrDefault(); } else { hd = _context.HrSalaryAppeal.Where(e => e.id == id && e.status == "A").FirstOrDefault(); } } catch (Exception er) { throw; } return hd; } /// /// 工资查询(查完成确认的) /// /// /// public ResultDataEntity SearchByPagingFinish(HrSalaryDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); var listCode = (from e in _context.SysCodes join c in _context.SysCodeDtls on e.Id equals c.CodeId where e.RecStatus == "A" && c.RecStatus == "A" && e.CodeTable == "t_sim_bind" && e.CodeField == "cardpro" select c).OrderBy(x => x.Sort).ToList(); DateTime st = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date; DateTime et = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddSeconds(-1); int month = 0; if (!string.IsNullOrEmpty(searchEntity.searchDatestart)) { st = DateTime.Parse(searchEntity.searchDatestart + "-01"); } if (!string.IsNullOrEmpty(searchEntity.searchDateend)) { et = DateTime.Parse(searchEntity.searchDateend + "-01"); } var query = (from a in _context.HrSalaries where a.Year >= st.Year && a.Month >= st.Month && a.Year <= et.Year && a.Month <= et.Month select a); var list = (from a in query join f in _context.PltUsers on a.Userid equals f.Id join g in _context.HrDepts on f.DeptId equals g.Id where a.RecStatus == "A" && a.Islock=="Q" && (string.IsNullOrWhiteSpace(searchEntity.Usernumber) || f.Usernumber == searchEntity.Usernumber.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.DeptId) || f.DeptId == searchEntity.DeptId.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.UserName) || f.UserName.Contains(searchEntity.UserName.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.UserId) || a.Userid.Contains(searchEntity.UserId.Trim())) select new HrSalaryDTO { Id = a.Id, Userid = a.Userid, Usernumber = f.Usernumber, UserName = f.UserName, DeptName = g.DeptName, Year = a.Year, Month = a.Month, Jibengongzi = a.Jibengongzi, Baomifei = a.Baomifei, Gongzuobutie = a.Gongzuobutie, Jiabangongzi = a.Jiabangongzi, Shebao = a.Shebao, Dianhuabutie = a.Dianhuabutie, Quanqinjiang = a.Quanqinjiang, Jiaotngbutie = a.Jiaotngbutie, Jixiaoticheng = a.Jixiaoticheng, Jiangjin = a.Jiangjin, Bufagongzi = a.Bufagongzi, Shebaokou = a.Shebaokou, Geshui = a.Geshui, Dianhuafei = a.Dianhuafei, Queqin = a.Queqin, Fakuan = a.Fakuan, Peichang = a.Peichang, Jiucuo = a.Jiucuo, Daozhanggongzi = a.Daozhanggongzi, Yufagongzi = a.Yufagongzi, Yufagongziheji = a.Yufagongziheji, JibengongziName = a.Jibengongzi.HasValue ? a.Jibengongzi.Value.ToString("F2") : "", BaomifeiName = a.Baomifei.HasValue ? a.Baomifei.Value.ToString("F2") : "", GongzuobutieName = a.Gongzuobutie.HasValue ? a.Gongzuobutie.Value.ToString("F2") : "", JiabangongziName = a.Jiabangongzi.HasValue ? a.Jiabangongzi.Value.ToString("F2") : "", ShebaoName = a.Shebao.HasValue ? a.Shebao.Value.ToString("F2") : "", DianhuabutieName = a.Dianhuabutie.HasValue ? a.Dianhuabutie.Value.ToString("F2") : "", QuanqinjiangName = a.Quanqinjiang.HasValue ? a.Quanqinjiang.Value.ToString("F2") : "", JiaotngbutieName = a.Jiaotngbutie.HasValue ? a.Jiaotngbutie.Value.ToString("F2") : "", JixiaotichengName = a.Jixiaoticheng.HasValue ? a.Jixiaoticheng.Value.ToString("F2") : "", JiangjinName = a.Jiangjin.HasValue ? a.Jiangjin.Value.ToString("F2") : "", BufagongziName = a.Bufagongzi.HasValue ? a.Bufagongzi.Value.ToString("F2") : "", ShebaokouName = a.Shebaokou.HasValue ? a.Shebaokou.Value.ToString("F2") : "", GeshuiName = a.Geshui.HasValue ? a.Geshui.Value.ToString("F2") : "", DianhuafeiName = a.Dianhuafei.HasValue ? a.Dianhuafei.Value.ToString("F2") : "", QueqinName = a.Queqin.HasValue ? a.Queqin.Value.ToString("F2") : "", FakuanName = a.Fakuan.HasValue ? a.Fakuan.Value.ToString("F2") : "", PeichangName = a.Peichang.HasValue ? a.Peichang.Value.ToString("F2") : "", JiucuoName = a.Jiucuo.HasValue ? a.Jiucuo.Value.ToString("F2") : "", DaozhanggongziName = a.Daozhanggongzi.HasValue ? a.Daozhanggongzi.Value.ToString("F2") : "", YufagongziName = a.Yufagongzi.HasValue ? a.Yufagongzi.Value.ToString("F2") : "", YufagongzihejiName = a.Yufagongziheji.HasValue ? a.Yufagongziheji.Value.ToString("F2") : "", Islock = a.Islock, RecStatus = a.RecStatus, Creater = a.Creater, Createtime = a.Createtime, Modifier = a.Modifier, Modifytime = a.Modifytime, }).OrderByDescending(x => x.Modifytime).ToList(); //if (searchEntity.totalrows == 0) searchEntity.totalrows = list.Count(); var rolelist = list.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); if (rolelist != null && rolelist.Count > 0) { foreach (var item in rolelist) { item.DianhuabutieChs = BackChs(listCode, item.Dianhuabutie); } } data.LoadData(searchEntity, rolelist); return data; } public void AutoCheck() { try { var salary = _context.Database.ExecuteSqlRaw("update [hr_salary] set islock='Q',[modifier]='e4c93811-b9b1-4998-89f5-c416ebab0c07',modifytime=getdate() where islock = 'H' and DATEDIFF(hh,[modifytime], getdate()) > 72"); } catch (Exception) { throw; } } } }