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 AdmAttendanceDtlService: IAdmAttendanceDtlService { private readonly zhengcaioaContext _context; private readonly IMapper _mapper; public AdmAttendanceDtlService(zhengcaioaContext context, IMapper mapper) { _context = context; _mapper = mapper; } public ResultEntity save(AdmAttendanceDtlDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var AdmAttendanceDtl = _mapper.Map(dto); if (String.IsNullOrEmpty(AdmAttendanceDtl.Id)) { AdmAttendanceDtl.Id = Guid.NewGuid().ToString(); dto.Id = AdmAttendanceDtl.Id; _context.AdmAttendanceDtls.Add(AdmAttendanceDtl); } else { var updatepltRole = _context.AdmAttendanceDtls.Find(AdmAttendanceDtl.Id); if (updatepltRole != null) { updatepltRole.AttendanceId = AdmAttendanceDtl.AttendanceId; updatepltRole.SgninDate = AdmAttendanceDtl.SgninDate; updatepltRole.MorningIn = AdmAttendanceDtl.MorningIn; updatepltRole.MorningOut = AdmAttendanceDtl.MorningOut; updatepltRole.AfternoonIn = AdmAttendanceDtl.AfternoonIn; updatepltRole.AfternoonOut = AdmAttendanceDtl.AfternoonOut; updatepltRole.OvertimeIn = AdmAttendanceDtl.OvertimeIn; updatepltRole.OvertimeOut = AdmAttendanceDtl.OvertimeOut; updatepltRole.Qingjia = AdmAttendanceDtl.Qingjia; updatepltRole.Xiaojia = AdmAttendanceDtl.Xiaojia; updatepltRole.Creater = AdmAttendanceDtl.Creater; updatepltRole.Createtime = AdmAttendanceDtl.Createtime; updatepltRole.Modifier = AdmAttendanceDtl.Modifier; updatepltRole.Modifytime = AdmAttendanceDtl.Modifytime; updatepltRole.Shangwuchidaofenzhong = AdmAttendanceDtl.Shangwuchidaofenzhong; updatepltRole.Xiawuchidaofenzhong = AdmAttendanceDtl.Xiawuchidaofenzhong; updatepltRole.Shangwuzaotuifenzhong = AdmAttendanceDtl.Shangwuzaotuifenzhong; updatepltRole.Xiawuzaotuifenzhong = AdmAttendanceDtl.Xiawuzaotuifenzhong; updatepltRole.Kuanggongtianshu = AdmAttendanceDtl.Kuanggongtianshu; updatepltRole.Iswork = AdmAttendanceDtl.Iswork; updatepltRole.Daixinjia = AdmAttendanceDtl.Daixinjia; } } _context.SaveChanges(); resultEntity.ReturnID = AdmAttendanceDtl.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public AdmAttendanceDtlDTO Get(string id) { var entity = _context.AdmAttendanceDtls.Find(id); if (entity == null) { entity = new AdmAttendanceDtl(); } var AdmAttendanceDtlDTO = _mapper.Map(entity); return AdmAttendanceDtlDTO; } public AdmAttendanceDtlDTO GetByUserAndDate(string Attendanceid, DateTime SgninDate) { var entity = _context.AdmAttendanceDtls.Where(x => x.RecStatus == "A" && x.AttendanceId == Attendanceid && x.SgninDate == SgninDate ).FirstOrDefault(); AdmAttendanceDtlDTO dto = null; if (entity != null) { dto = _mapper.Map(entity); } return dto; } public ResultEntity ModifyStatus(string id, string userid) { ResultEntity result = new ResultEntity(); result.Result = true; var model = _context.AdmAttendanceDtls.Find(id); if (model != null) { _context.AdmAttendanceDtls.Remove(model); _context.SaveChanges(); } return result; } /// /// 获取所有有效科目 /// /// public List GetList(AdmAttendanceDtlDTOSearch searchEntity) { var query = (from a in _context.AdmAttendanceDtls//.Where(x => x.RecStatus == "A") where a.RecStatus == "A" && (string.IsNullOrWhiteSpace(searchEntity.AttendanceId) || a.AttendanceId == searchEntity.AttendanceId.Trim()) && ( !searchEntity.SgninDate.HasValue || a.SgninDate == searchEntity.SgninDate) select new AdmAttendanceDtlDTO { Id = a.Id, AttendanceId = a.AttendanceId, SgninDate = a.SgninDate, MorningIn = a.MorningIn, MorningOut = a.MorningOut, AfternoonIn = a.AfternoonIn, AfternoonOut = a.AfternoonOut, OvertimeIn = a.OvertimeIn, OvertimeOut = a.OvertimeOut, Qingjia = a.Qingjia, Xiaojia = a.Xiaojia, RecStatus = a.RecStatus, Creater = a.Creater, Createtime = a.Createtime, Modifier = a.Modifier, Modifytime = a.Modifytime, Daixinjia = a.Daixinjia, Shangwuchidaofenzhong = a.Shangwuchidaofenzhong, Xiawuchidaofenzhong = a.Xiawuchidaofenzhong, Shangwuzaotuifenzhong = a.Shangwuzaotuifenzhong, Xiawuzaotuifenzhong = a.Xiawuzaotuifenzhong, Kuanggongtianshu = a.Kuanggongtianshu, Iswork = a.Iswork }).OrderByDescending(x => x.Createtime).ToList(); return query; } /// /// 获取所有有效科目 /// /// public ResultDataEntity SearchByPaging(AdmAttendanceDtlDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); var query = (from a in _context.AdmAttendanceDtls//.Where(x => x.RecStatus == "A") where a.RecStatus == "A" && (string.IsNullOrWhiteSpace(searchEntity.AttendanceId) || a.AttendanceId == searchEntity.AttendanceId.Trim()) && (!searchEntity.SgninDate.HasValue || a.SgninDate == searchEntity.SgninDate) select new AdmAttendanceDtlDTO { Id = a.Id, AttendanceId = a.AttendanceId, SgninDate = a.SgninDate, MorningIn = a.MorningIn, Daixinjia = a.Daixinjia, MorningOut = a.MorningOut, AfternoonIn = a.AfternoonIn, AfternoonOut = a.AfternoonOut, OvertimeIn = a.OvertimeIn, OvertimeOut = a.OvertimeOut, Qingjia = a.Qingjia, Xiaojia = a.Xiaojia, RecStatus = a.RecStatus, Creater = a.Creater, Createtime = a.Createtime, Modifier = a.Modifier, Modifytime = a.Modifytime, Shangwuchidaofenzhong = a.Shangwuchidaofenzhong, Xiawuchidaofenzhong = a.Xiawuchidaofenzhong, Shangwuzaotuifenzhong = a.Shangwuzaotuifenzhong, Xiawuzaotuifenzhong = a.Xiawuzaotuifenzhong, Kuanggongtianshu = a.Kuanggongtianshu, Iswork = a.Iswork, SgninDateName = a.SgninDate.HasValue? a.SgninDate.Value.ToString("yyyy-MM-dd"):"", MorningInName = a.MorningIn.HasValue ? a.MorningIn.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", MorningOutName = a.MorningOut.HasValue ? a.MorningOut.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", AfternoonInName = a.AfternoonIn.HasValue ? a.AfternoonIn.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", AfternoonOutName = a.AfternoonOut.HasValue ? a.AfternoonOut.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", OvertimeInName = a.OvertimeIn.HasValue ? a.OvertimeIn.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", OvertimeOutName = a.OvertimeOut.HasValue ? a.OvertimeOut.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", }).OrderBy(x => x.SgninDate).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; } } }