public class MaintenanceDutyPsersonDto { /// <summary> /// 值班人员(组织兵力唯一标识) /// </summary> [StringLength(50)] public string MilitaryRowGuid { get; set; } /// <summary> /// 是否值班领导 /// </summary> [StringLength(50)] public string IsLeader { get; set; } /// <summary> /// 值班电话 /// </summary> [StringLength(50)] public string PhoneNumber { get; set; } /// <summary> /// 值班房间唯一标识 /// </summary> [StringLength(50)] public string RoomRowGuid { get; set; } /// <summary> /// 值班日期 /// </summary> //[StringLength(50)] public DateTime DutyDate { get; set; } /// <summary> /// 值班时段(数据字典) /// </summary> public string[] DutyPeriods { get; set; } /// <summary> /// 备注 /// </summary> [StringLength(100)] public string Remark { get; set; } /// <summary> /// 创建人 /// </summary> [StringLength(50)] public string Creater { get; set; } /// <summary> /// 创建时间 /// </summary> public DateTime? CreateTime { get; set; } /// <summary> /// 排班模式 /// </summary> [StringLength(50)] public string Dutymodel { get; set; } /// <summary> ///周 /// </summary> public string[] weeks { get; set; } /// <summary> /// 日 /// </summary> public string[] days { get; set; } /// <summary> /// 租户 /// </summary> public int? TenantId { get; set; } }
#region 新增排班 /// <summary> /// 新增排班 /// </summary> /// <param name="maintenanceDuty"></param> /// <returns></returns> [UnitOfWork(isTransactional: false)] public Task<bool> CreateMaintenanceDuty(List<MaintenanceDutyPsersonDto> maintenanceDuty) { try { foreach (MaintenanceDutyPsersonDto item in maintenanceDuty) { string yearandmonth = item.DutyDate.ToString("yyyy-MM"); int year = item.DutyDate.Year; int month = item.DutyDate.Month; int d = DateTime.DaysInMonth(year, month); //获取指定年月的天数 if (item.Dutymodel == "周")//按周排班 { string[] weeks = item.weeks; List<string> datelist1 = new List<string>(); for (int i = 0; i < weeks.Length; i++) { switch (weeks[i]) { case "周一": for (int a = 1; a <= d; a++) { DateTime dt = new DateTime(year, month, a); if (dt.DayOfWeek == DayOfWeek.Monday) { datelist1.Add(dt.ToShortDateString()); } } break; case "周二": for (int a = 1; a <= d; a++) { DateTime dt = new DateTime(year, month, a); if (dt.DayOfWeek == DayOfWeek.Tuesday) { datelist1.Add(dt.ToShortDateString()); } } break; case "周三": for (int a = 1; a <= d; a++) { DateTime dt = new DateTime(year, month, a); if (dt.DayOfWeek == DayOfWeek.Wednesday) { datelist1.Add(dt.ToShortDateString()); } } break; case "周四": for (int a = 1; a <= d; a++) { DateTime dt = new DateTime(year, month, a); if (dt.DayOfWeek == DayOfWeek.Thursday) { datelist1.Add(dt.ToShortDateString()); } } break; case "周五": for (int a = 1; a <= d; a++) { DateTime dt = new DateTime(year, month, a); if (dt.DayOfWeek == DayOfWeek.Friday) { datelist1.Add(dt.ToShortDateString()); } } break; case "周六": for (int a = 1; a <= d; a++) { DateTime dt = new DateTime(year, month, a); if (dt.DayOfWeek == DayOfWeek.Saturday) { datelist1.Add(dt.ToShortDateString()); } } break; case "周日": for (int a = 1; a <= d; a++) { DateTime dt = new DateTime(year, month, a); if (dt.DayOfWeek == DayOfWeek.Sunday) { datelist1.Add(dt.ToShortDateString()); } } break; default: break; } } string[] DutyPeriods = item.DutyPeriods; for (int c = 0; c < DutyPeriods.Length; c++) { for (int s = 0; s < datelist1.Count; s++) { string id = Guid.NewGuid().ToString(); _repository.Insert(new Model.Maintenance_Duty { Id = id, MilitaryRowGuid = item.MilitaryRowGuid, IsLeader = item.IsLeader, RoomRowGuid = item.RoomRowGuid, DutyDate =Convert.ToDateTime(datelist1[s]), DutyPeriod = DutyPeriods[c], TenantId = item.TenantId, Creater = "", CreateTime = DateTime.Now, Remark = item.Remark }); } } } else//按日排班 { string[] days = item.days; List<DateTime> datelist2 = new List<DateTime>(); for (int i = 0; i < days.Length; i++) { DateTime time = Convert.ToDateTime(yearandmonth + "-" + days[i]); datelist2.Add(time); } string[] DutyPeriods = item.DutyPeriods; for (int k = 0; k < DutyPeriods.Length; k++) { for (int j = 0; j < datelist2.Count; j++) { string id = Guid.NewGuid().ToString(); _repository.Insert(new Model.Maintenance_Duty { Id =id, MilitaryRowGuid = item.MilitaryRowGuid, IsLeader = item.IsLeader, RoomRowGuid = item.RoomRowGuid, DutyDate = datelist2[j], DutyPeriod = DutyPeriods[k], TenantId = item.TenantId, Creater = "", CreateTime = DateTime.Now, Remark=item.Remark }); } } } } return Task.FromResult(true); } catch (Exception e) { throw new UserFriendlyException(e.Message); } } #endregion