public string update(time_config timeConfig) { try { UserInfoService us = new UserInfoService(); string quanxian_save1 = us.new_quanxian("upd", "工作时间及休息日"); if (quanxian_save1 != null && quanxian_save1.Length > 0 && quanxian_save1 == "是") { } else { return(ResultUtil.error("没有权限!")); } tcs = new TimeConfigService(); if (tcs.update(timeConfig)) { return(ResultUtil.success("保存成功")); } else { return(ResultUtil.success("未保存")); } } catch (ErrorUtil err) { return(ResultUtil.fail(401, err.Message)); } catch { return(ResultUtil.error("修改失败")); } }
/// <summary> /// 检查时间配置信息,为空改为null /// </summary> /// <param name="time"></param> /// <returns></returns> public time_config checkTime(time_config time) { time.morning_start = time.morning_start.Equals(string.Empty) ? null : time.morning_start; time.morning_end = time.morning_end.Equals(string.Empty) ? null : time.morning_end; time.noon_start = time.noon_start.Equals(string.Empty) ? null : time.noon_start; time.noon_end = time.noon_end.Equals(string.Empty) ? null : time.noon_end; time.night_start = time.night_start.Equals(string.Empty) ? null : time.night_start; time.night_end = time.night_end.Equals(string.Empty) ? null : time.night_end; return(time); }
public double workHour(DateTime startDateTime) { getHolidayList(); if (holidayList.Find(h => h.day_or_reset.Date == startDateTime.Date) != null) { return(0); } getTimeList(); int week = startDateTime.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)startDateTime.DayOfWeek; time_config timeConfig = timeList.Find(t => t.week == week); DateTimeFormatInfo format = new DateTimeFormatInfo(); format.ShortDatePattern = "HH:mm"; TimeSpan mStart = Convert.ToDateTime(timeConfig.morning_start, format).TimeOfDay; TimeSpan startTime = startDateTime.TimeOfDay.Hours == 0 ? mStart : startDateTime.TimeOfDay; TimeSpan mEnd = Convert.ToDateTime(timeConfig.morning_end, format).TimeOfDay; TimeSpan mHour = mEnd <= startTime ? new TimeSpan(0, 0, 0) : mEnd - mStart; TimeSpan oStart = Convert.ToDateTime(timeConfig.noon_start, format).TimeOfDay; TimeSpan oEnd = Convert.ToDateTime(timeConfig.noon_end, format).TimeOfDay; TimeSpan oHour = oEnd <= startTime ? new TimeSpan(0, 0, 0) : oEnd - oStart; TimeSpan nStart = Convert.ToDateTime(timeConfig.night_start, format).TimeOfDay; TimeSpan nEnd = Convert.ToDateTime(timeConfig.night_end, format).TimeOfDay; TimeSpan nHour = nEnd <= startTime ? new TimeSpan(0, 0, 0) : nEnd - nStart; if (mHour.Hours > 24 || oHour.Hours > 24 || nHour.Hours > 24) { throw new TimeError("请检查工作时间配置是否正确"); } else { TimeSpan result = new TimeSpan(); if (startTime <= nEnd) { result = nEnd - startTime; } if (startTime <= oEnd) { result = (nEnd - nStart) + (oEnd - startTime); } if (startTime <= mEnd) { result = (nEnd - nStart) + (oEnd - oStart) + (mEnd - startTime); } return(result.TotalHours); } }
/// <summary> /// 修改 /// </summary> /// <param name="timeConfig"></param> /// <returns></returns> public Boolean update(time_config timeConfig) { return(cd.update <time_config>(checkTime(timeConfig))); }
/// <summary> /// 新增 /// </summary> /// <param name="timeConfig"></param> /// <returns></returns> public time_config save(time_config timeConfig) { timeConfig.company = user.company; return(cd.save <time_config>(checkTime(timeConfig))); }