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 AdmAttendanceService: IAdmAttendanceService { private readonly zhengcaioaContext _context; private readonly IMapper _mapper; public AdmAttendanceService(zhengcaioaContext context, IMapper mapper) { _context = context; _mapper = mapper; } public ResultEntity save(AdmAttendanceDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var AdmAttendance = _mapper.Map(dto); if (String.IsNullOrEmpty(AdmAttendance.Id)) { AdmAttendance.Id = Guid.NewGuid().ToString(); dto.Id = AdmAttendance.Id; _context.AdmAttendances.Add(AdmAttendance); } else { var updatepltRole = _context.AdmAttendances.Find(AdmAttendance.Id); if (updatepltRole != null) { updatepltRole.Userid = AdmAttendance.Userid; updatepltRole.Year = AdmAttendance.Year; updatepltRole.Month = AdmAttendance.Month; updatepltRole.Yingchuqin = AdmAttendance.Yingchuqin; updatepltRole.Offdays = AdmAttendance.Offdays; updatepltRole.Shijichuqin = AdmAttendance.Shijichuqin; updatepltRole.Qingjia = AdmAttendance.Qingjia; updatepltRole.Jiaban = AdmAttendance.Jiaban; updatepltRole.Xiaojia = AdmAttendance.Xiaojia; updatepltRole.Islock = AdmAttendance.Islock; updatepltRole.RecStatus = AdmAttendance.RecStatus; updatepltRole.Creater = AdmAttendance.Creater; updatepltRole.Createtime = AdmAttendance.Createtime; updatepltRole.Modifier = AdmAttendance.Modifier; updatepltRole.Modifytime = AdmAttendance.Modifytime; updatepltRole.Daixinjia = AdmAttendance.Daixinjia; updatepltRole.Chidao = AdmAttendance.Chidao; updatepltRole.Zaotui = AdmAttendance.Zaotui; updatepltRole.Kuanggong = AdmAttendance.Kuanggong; } } _context.SaveChanges(); resultEntity.ReturnID = AdmAttendance.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public AdmAttendanceDTO Get(string id) { var entity = _context.AdmAttendances.Find(id); if (entity == null) { entity = new AdmAttendance(); } var AdmAttendanceDTO = _mapper.Map(entity); return AdmAttendanceDTO; } public AdmAttendanceDTO GetByUserAndDate(string userid, int year, int month) { var entity = _context.AdmAttendances.Where(x=>x.RecStatus=="A" && x.Userid == userid && x.Year == year && x.Month == month).FirstOrDefault(); AdmAttendanceDTO dto = null; if (entity != null) { dto = _mapper.Map(entity); } return dto; } public ResultDataEntity SearchByPaging(AdmAttendanceDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); var query = (from a in _context.AdmAttendances//.Where(x => x.RecStatus == "A") join b in _context.PltUsers on a.Userid equals b.Id where a.RecStatus == "A" && (string.IsNullOrWhiteSpace(searchEntity.Year) || a.Year == int.Parse(searchEntity.Year.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Month) || a.Month == int.Parse(searchEntity.Month.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.DeptId) || b.DeptId == searchEntity.DeptId.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Userid) || b.DeptId == searchEntity.Userid.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.UserName) || b.UserName.Contains(searchEntity.UserName.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.YearMonth) || a.Year == DateTime.Parse(searchEntity.YearMonth.Trim()+"-01").Year) && (string.IsNullOrWhiteSpace(searchEntity.YearMonth) || a.Month == DateTime.Parse(searchEntity.YearMonth.Trim() + "-01").Month) select new AdmAttendanceDTO { Id = a.Id, Userid = a.Userid, UserName = b.UserName, Year = a.Year, Month = a.Month, Yingchuqin = a.Yingchuqin, Offdays = a.Offdays, Shijichuqin = a.Shijichuqin, Qingjia = a.Qingjia, Jiaban = a.Jiaban, Daixinjia = a.Daixinjia, Xiaojia = a.Xiaojia, Islock = a.Islock, RecStatus = a.RecStatus, Creater = a.Creater, Createtime = a.Createtime, Modifier = a.Modifier, Modifytime = a.Modifytime, Chidao = a.Chidao, Zaotui = a.Zaotui, Kuanggong = a.Kuanggong, }).OrderByDescending(x => x.Year).ThenByDescending(x=>x.Month).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.AdmAttendances.Find(id); if (model != null) { _context.AdmAttendances.Remove(model); _context.SaveChanges(); } return result; } /// /// 获取所有有效科目 /// /// public List GetList(AdmAttendanceDTOSearch searchEntity) { var query = (from a in _context.AdmAttendances//.Where(x => x.RecStatus == "A") join b in _context.PltUsers on a.Userid equals b.Id where a.RecStatus == "A" && (string.IsNullOrWhiteSpace(searchEntity.Year) || a.Year == int.Parse(searchEntity.Year.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Month) || a.Month == int.Parse(searchEntity.Month.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.DeptId) || b.DeptId == searchEntity.DeptId.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Userid) || b.DeptId == searchEntity.Userid.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.UserName) || b.UserName.Contains(searchEntity.UserName.Trim())) select new AdmAttendanceDTO { Id = a.Id, Userid = a.Userid, UserName = b.UserName, Year = a.Year, Month = a.Month, Yingchuqin = a.Yingchuqin, Offdays = a.Offdays, Shijichuqin = a.Shijichuqin, Qingjia = a.Qingjia, Jiaban = a.Jiaban, Daixinjia = a.Daixinjia, Xiaojia = a.Xiaojia, Islock = a.Islock, RecStatus = a.RecStatus, Creater = a.Creater, Createtime = a.Createtime, Modifier = a.Modifier, Modifytime = a.Modifytime, Chidao = a.Chidao, Zaotui = a.Zaotui, Kuanggong = a.Kuanggong, }).OrderByDescending(x => x.Year).ThenByDescending(x => x.Month).ToList(); return query; } } }