username@email.com
2021-06-25 274fb67703d0ffcc7e3398d41855c5c8bfb3383b
zhengcaioa/Services/HrSalaryService.cs
@@ -93,16 +93,160 @@
            return resultEntity;
        }
        public ResultEntity SaveCheckSalary(HrSalaryDTO dto)
        {
            ResultEntity resultEntity = new ResultEntity();
            try
            {
                var updatepltRole = _context.HrSalaries.Where(c=>c.Id==dto.Id).SingleOrDefault();
                if(updatepltRole!=null)
                {
                    var user = _context.PltUsers.Where(c => c.Id == updatepltRole.Userid).SingleOrDefault();
                    updatepltRole.Jiangjin = dto.Jiangjin;
                    updatepltRole.Bufagongzi = dto.Bufagongzi;
                    var sum_f = ((updatepltRole.Jibengongzi ?? 0) + (updatepltRole.Baomifei ?? 0) + (updatepltRole.Gongzuobutie ?? 0) +
                        (updatepltRole.Jiabangongzi ?? 0) + (updatepltRole.Shebao ?? 0) + (updatepltRole.Dianhuabutie ?? 0) +
                        (updatepltRole.Quanqinjiang ?? 0) + (updatepltRole.Jiaotngbutie ?? 0) + (updatepltRole.Jixiaoticheng ?? 0) +
                        dto.Jiangjin + dto.Bufagongzi);
                    updatepltRole.Peichang = dto.Peichang;
                    updatepltRole.Jiucuo = dto.Jiucuo;
                    var sum_k= (updatepltRole.Shebaokou ?? 0) + (updatepltRole.Geshui ?? 0) + (updatepltRole.Dianhuafei ?? 0) +
                        (updatepltRole.Queqin ?? 0) + (updatepltRole.Fakuan ?? 0) + dto.Peichang + dto.Jiucuo;
                    //计算预发工资
                    //var lyear = updatepltRole.Year;
                    //var lmonth = updatepltRole.Month-1;
                    //if(lmonth==0)
                    //{
                    //    lyear = lyear - 1;
                    //    lmonth = 12;
                    //}
                    //var sumyfhj = _context.HrSalaries.Where(c => c.Year == lyear && c.Month == lmonth && c.Userid == updatepltRole.Userid).SingleOrDefault();
                    if(DateTime.Today> user.ShiyongDateEnd)
                    {
                        if(string.IsNullOrEmpty(user.BasicPrice))
                        {
                            updatepltRole.Daozhanggongzi = sum_f - sum_k;
                            updatepltRole.Yufagongzi = 0;
                        }
                        else
                        {
                            var pc = decimal.Parse(user.BasicPrice);
                            if (sum_f - sum_k > pc)
                            {
                                updatepltRole.Daozhanggongzi = sum_f - sum_k;
                                updatepltRole.Yufagongzi = 0;
                                updatepltRole.Yufagongziheji = updatepltRole.Yufagongziheji - (sum_f - sum_k - pc);
                            }
                            else
                            {
                                updatepltRole.Daozhanggongzi = pc;
                                updatepltRole.Yufagongzi = pc-(sum_f - sum_k);
                                updatepltRole.Yufagongziheji = updatepltRole.Yufagongziheji + updatepltRole.Yufagongzi;
                            }
                        }
                    }
                    else
                    {
                        if (user.ShiyongPrice.HasValue)
                        {
                            var pc = user.ShiyongPrice.Value;
                            if (sum_f - sum_k > pc)
                            {
                                updatepltRole.Daozhanggongzi = sum_f - sum_k;
                                updatepltRole.Yufagongzi = 0;
                                updatepltRole.Yufagongziheji = updatepltRole.Yufagongziheji - (sum_f - sum_k - pc);
                            }
                            else
                            {
                                updatepltRole.Daozhanggongzi = pc;
                                updatepltRole.Yufagongzi = pc - (sum_f - sum_k);
                                updatepltRole.Yufagongziheji = updatepltRole.Yufagongziheji + updatepltRole.Yufagongzi;
                            }
                        }
                        else
                        {
                            updatepltRole.Daozhanggongzi = sum_f - sum_k;
                            updatepltRole.Yufagongzi = 0;
                        }
                    }
                    updatepltRole.Islock = "Q";
                    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 = _context.HrSalaries.Find(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.RecStatus != "A")
            if (entity==null)
            {
                entity = new HrSalary();
                entity = new HrSalaryDTO();
            }
            var HrSalaryDTO = _mapper.Map<HrSalaryDTO>(entity);
            return 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<HrSalaryDTO> SearchByPaging(HrSalaryDTOSearch searchEntity)
@@ -131,10 +275,142 @@
            int month = 0;
            if (string.IsNullOrWhiteSpace(searchEntity.YearMonth))
            {
              DateTime yearMonth =  DateTime.Parse(searchEntity.YearMonth + "-01");
                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<HrSalaryDTO> SearchSalaryByPaging(HrSalaryDTOSearch searchEntity)
        {
            ResultDataEntity<HrSalaryDTO> data = new ResultDataEntity<HrSalaryDTO>();
            //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
@@ -151,11 +427,321 @@
                         // into gsssss
                         //from ggg in gsssss.DefaultIfEmpty()
                         where a.RecStatus == "A"
                         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 ))
                              //&& (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 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;
        }
        /// <summary>
        /// 获取所有有效角色
        /// </summary>
        /// <returns></returns>
        public List<HrSalaryDTO> GetList()
        {
            var listPosition = _context.HrSalaries.Where(r => r.RecStatus == "A").ToList();
            var list = _mapper.Map<List<HrSalaryDTO>>(listPosition);
            return list;
        }
        /// <summary>
        /// 获取所有有效角色
        /// </summary>
        /// <returns></returns>
        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<HrSalaryDTO>(listPosition);
            }
            return hrSalaryDTO;
        }
        /// <summary>
        /// 工资核对
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="year"></param>
        /// <param name="month"></param>
        /// <returns></returns>
        public List<HrSalaryDTO> GetSalary(string userid,int year,int month)
        {
            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.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<HrSalaryDTO>();
            }
            return entity;
        }
        /// <summary>
        /// 工资确认
        /// </summary>
        /// <param name="id"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        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;
        }
        /// <summary>
        /// 提交申诉
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        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.sub_time = DateTime.Now;
                    }
                    else
                    {
                        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;
        }
        /// <summary>
        /// 查申诉信息
        /// </summary>
        /// <param name="id"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public HrSalaryAppeal GetAppeal(string id,string user)
        {
            HrSalaryAppeal hd = new HrSalaryAppeal();
            try
            {
                hd = _context.HrSalaryAppeal.Where(e => e.salary_id == id && e.sub_user == user).SingleOrDefault();
            }
            catch (Exception er)
            {
                throw;
            }
            return hd;
        }
        /// <summary>
        /// 工资查询(查完成确认的)
        /// </summary>
        /// <param name="searchEntity"></param>
        /// <returns></returns>
        public ResultDataEntity<HrSalaryDTO> SearchByPagingFinish(HrSalaryDTOSearch searchEntity)
        {
            ResultDataEntity<HrSalaryDTO> data = new ResultDataEntity<HrSalaryDTO>();
            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.searchDate))
            {
                var times = searchEntity.searchDate.Split('|');
                if (times.Length == 2)
                {
                    st = DateTime.Parse(times[0]);
                    et= DateTime.Parse(times[1]);
                }
            }
            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()))
                         select new HrSalaryDTO
                         {
                             Id = a.Id,
@@ -216,9 +802,7 @@
                             YufagongziName = a.Yufagongzi.HasValue ? a.Yufagongzi.Value.ToString("F2") : "",
                             YufagongzihejiName = a.Yufagongziheji.HasValue ? a.Yufagongziheji.Value.ToString("F2") : "",
                             Islock =a.Islock,
                             Islock = a.Islock,
                             RecStatus = a.RecStatus,
                             Creater = a.Creater,
                             Createtime = a.Createtime,
@@ -228,70 +812,12 @@
                         }).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();
                searchEntity.totalrows = list.Count();
            var rolelist = list.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList();
            data.LoadData(searchEntity, rolelist);
            return data;
        }
        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;
        }
        /// <summary>
        /// 获取所有有效角色
        /// </summary>
        /// <returns></returns>
        public List<HrSalaryDTO> GetList()
        {
            var listPosition = _context.HrSalaries.Where(r => r.RecStatus == "A").ToList();
            var list = _mapper.Map<List<HrSalaryDTO>>(listPosition);
            return list;
        }
        /// <summary>
        /// 获取所有有效角色
        /// </summary>
        /// <returns></returns>
        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<HrSalaryDTO>(listPosition);
            }
            return hrSalaryDTO;
        }
    }
}