/// <summary> /// 更新排班信息方法 /// </summary> /// <param name="context"></param> public void UpdateDistributeWork(HttpContext context) { var distriModelList = JsonConvert.DeserializeObject <List <DistributeWorkModel> >(Common.GetRequest("distributeWorkJson")); var distriID = Convert.ToInt32(Common.GetRequest("distriID")); var count = distriModelList.Count; Type temp = typeof(DistributeWorkModel); PropertyInfo[] propertyArray = temp.GetProperties(); DataTable dt = new DataTable(); dt.TableName = "DistributeWork"; dt.Columns.Add("DWID", typeof(Int32)); dt.Columns.Add("CWID", typeof(Int32)); dt.Columns.Add("CSID", typeof(Int32)); dt.Columns.Add("QTID", typeof(Int32)); dt.Columns.Add("DWServiceUserAmount", typeof(Int32)); dt.Columns.Add("DWStartDate", typeof(DateTime)); dt.Columns.Add("DWEndDate", typeof(DateTime)); dt.Columns.Add("DWDistributeWeek", typeof(string)); dt.Columns.Add("DWStartHourAndMinutes", typeof(string)); dt.Columns.Add("DWEndHourAndMinutes", typeof(string)); dt.Columns.Add("DWMoveUpAppTime", typeof(Int32)); dt.Columns.Add("DWConsultPlace", typeof(string)); dt.Columns.Add("DWConsultTeacher", typeof(Int32)); dt.Columns.Add("DWCreatePerson", typeof(Int32)); dt.Columns.Add("DWCreateTime", typeof(DateTime)); dt.Columns.Add("IsDelete", typeof(Int32)); for (int i = 0; i < count; i++) { DistributeWorkModel model = distriModelList[i]; model.DWCreateTime = DateTime.Now; DataRow dr = dt.NewRow(); if (distriModelList.Count == 1) { dr["DWID"] = distriID; } foreach (var item in propertyArray) { if (item.Name != "ExtensionData" && item.Name != "DWID") { dr[item.Name] = Common.GetObjectPropertyValue <DistributeWorkModel>(model, item.Name); } } dt.Rows.Add(dr); } var result = MgrServices.AppointmentConsultService.UpdateAppointmentInfo(dt, distriID); if (result) { context.Response.Write(JsonConvert.SerializeObject(new { State = true, Data = "修改成功" })); context.Response.End(); } context.Response.Write(JsonConvert.SerializeObject(new { State = false, Data = "修改失败" })); }
/// <summary> /// 日期判重方法 /// </summary> /// <param name="modelList"></param> /// <param name="model"></param> /// <returns></returns> public bool JudgeDateRepeat(List <DistributeWorkViewModel> modelList, DistributeWorkModel model) { var count = modelList.Count; var isAdd = true; var isContainWeek = false; string[] newWeekArray = model.DWDistributeWeek.Split(','); var newWeekArrayLength = newWeekArray.Length; for (int i = 0; i < count; i++) { isContainWeek = false; string[] beforeWeekArray = modelList[i].DistributeWeek.Split(','); if (model.DWEndDate < Convert.ToDateTime(modelList[i].StartDate) || model.DWStartDate > Convert.ToDateTime(modelList[i].EndDate)) { continue; } for (int j = 0; j < newWeekArrayLength; j++) { if (beforeWeekArray.Contains(newWeekArray[j])) { isContainWeek = true; break; } } if (!isContainWeek) { continue; } if (!(Convert.ToDateTime(model.DWEndHourAndMinutes) <= Convert.ToDateTime(modelList[i].StartHourAndMinutes) || Convert.ToDateTime(model.DWStartHourAndMinutes) >= Convert.ToDateTime(modelList[i].EndHourAndMinutes))) { if (startDate == null) { startDate = new List <string>(); endDate = new List <string>(); startHourAndMinutes = new List <string>(); endHourAndMinutes = new List <string>(); } if (model.DWStartDate == model.DWEndDate && model.DWStartDate == Convert.ToDateTime(modelList[i].StartDate)) { if (startDate.Where(m => m.ToString() == model.DWStartDate.ToString("yyyy-MM-dd")).ToList().Count == 0 && endDate.Where(m => m.ToString() == model.DWEndDate.ToString("yyyy-MM-dd")).ToList().Count == 0) { startDate.Add(model.DWStartDate.ToString("yyyy-MM-dd")); endDate.Add(model.DWEndDate.ToString("yyyy-MM-dd")); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } if (startDate.Where(m => m.ToString() == model.DWStartDate.ToString("yyyy-MM-dd")).ToList().Count > 0 && endDate.Where(m => m.ToString() == model.DWEndDate.ToString("yyyy-MM-dd")).ToList().Count > 0 && startHourAndMinutes.Where(m => m.ToString() == modelList[i].StartHourAndMinutes).ToList().Count == 0 && endHourAndMinutes.Where(m => m.ToString() == model.DWEndHourAndMinutes).ToList().Count == 0) { startDate.Add(model.DWStartDate.ToString("yyyy-MM-dd")); endDate.Add(model.DWEndDate.ToString("yyyy-MM-dd")); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } } if (model.DWStartDate == model.DWEndDate && model.DWEndDate == Convert.ToDateTime(modelList[i].EndDate)) { if (startDate.Where(m => m.ToString() == model.DWStartDate.ToString("yyyy-MM-dd")).ToList().Count == 0 && endDate.Where(m => m.ToString() == model.DWEndDate.ToString("yyyy-MM-dd")).ToList().Count == 0) { startDate.Add(model.DWStartDate.ToString("yyyy-MM-dd")); endDate.Add(model.DWEndDate.ToString("yyyy-MM-dd")); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } if (startDate.Where(m => m.ToString() == model.DWStartDate.ToString("yyyy-MM-dd")).ToList().Count > 0 && endDate.Where(m => m.ToString() == model.DWEndDate.ToString("yyyy-MM-dd")).ToList().Count > 0 && startHourAndMinutes.Where(m => m.ToString() == modelList[i].StartHourAndMinutes).ToList().Count == 0 && endHourAndMinutes.Where(m => m.ToString() == model.DWEndHourAndMinutes).ToList().Count == 0) { startDate.Add(model.DWStartDate.ToString("yyyy-MM-dd")); endDate.Add(model.DWEndDate.ToString("yyyy-MM-dd")); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } } if (model.DWStartDate != model.DWEndDate && modelList[i].StartDate == modelList[i].EndDate) { if (startDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count == 0 && endDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count == 0) { startDate.Add(modelList[i].StartDate); endDate.Add(modelList[i].EndDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } if (startDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count > 0 && endDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count > 0 && startHourAndMinutes.Where(m => m.ToString() == modelList[i].StartHourAndMinutes).ToList().Count == 0 && endHourAndMinutes.Where(m => m.ToString() == model.DWEndHourAndMinutes).ToList().Count == 0) { startDate.Add(modelList[i].StartDate); endDate.Add(modelList[i].EndDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } } if (model.DWStartDate > Convert.ToDateTime(modelList[i].StartDate) && model.DWEndDate < Convert.ToDateTime(modelList[i].EndDate)) { if (startDate.Where(m => m.ToString() == model.DWStartDate.ToString("yyyy-MM-dd")).ToList().Count == 0 && endDate.Where(m => m.ToString() == model.DWEndDate.ToString("yyyy-MM-dd")).ToList().Count == 0) { startDate.Add(model.DWStartDate.ToString("yyyy-MM-dd")); endDate.Add(model.DWEndDate.ToString("yyyy-MM-dd")); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } if (startDate.Where(m => m.ToString() == model.DWStartDate.ToString("yyyy-MM-dd")).ToList().Count > 0 && endDate.Where(m => m.ToString() == model.DWEndDate.ToString("yyyy-MM-dd")).ToList().Count > 0 && startHourAndMinutes.Where(m => m.ToString() == modelList[i].StartHourAndMinutes).ToList().Count == 0 && endHourAndMinutes.Where(m => m.ToString() == model.DWEndHourAndMinutes).ToList().Count == 0) { startDate.Add(model.DWStartDate.ToString("yyyy-MM-dd")); endDate.Add(model.DWEndDate.ToString("yyyy-MM-dd")); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } } if (model.DWStartDate < Convert.ToDateTime(modelList[i].StartDate) && model.DWEndDate == Convert.ToDateTime(modelList[i].StartDate)) { if (startDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count == 0 && endDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count == 0) { startDate.Add(modelList[i].StartDate); endDate.Add(modelList[i].StartDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } if (startDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count > 0 && endDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count > 0 && startHourAndMinutes.Where(m => m.ToString() == modelList[i].StartHourAndMinutes).ToList().Count == 0 && endHourAndMinutes.Where(m => m.ToString() == model.DWEndHourAndMinutes).ToList().Count == 0) { startDate.Add(modelList[i].StartDate); endDate.Add(modelList[i].StartDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } } if (model.DWStartDate == Convert.ToDateTime(modelList[i].EndDate) && model.DWEndDate > Convert.ToDateTime(modelList[i].EndDate)) { if (startDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count == 0 && endDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count == 0) { startDate.Add(modelList[i].EndDate); endDate.Add(modelList[i].EndDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } if (startDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count > 0 && endDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count > 0 && startHourAndMinutes.Where(m => m.ToString() == modelList[i].StartHourAndMinutes).ToList().Count == 0 && endHourAndMinutes.Where(m => m.ToString() == model.DWEndHourAndMinutes).ToList().Count == 0) { startDate.Add(modelList[i].EndDate); endDate.Add(modelList[i].EndDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } } if (model.DWStartDate < Convert.ToDateTime(modelList[i].StartDate) && model.DWEndDate > Convert.ToDateTime(modelList[i].EndDate)) { if (startDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count == 0 && endDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count == 0) { startDate.Add(modelList[i].StartDate); endDate.Add(modelList[i].EndDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } if (startDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count > 0 && endDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count > 0 && startHourAndMinutes.Where(m => m.ToString() == modelList[i].StartHourAndMinutes).ToList().Count == 0 && endHourAndMinutes.Where(m => m.ToString() == model.DWEndHourAndMinutes).ToList().Count == 0) { startDate.Add(modelList[i].StartDate); endDate.Add(modelList[i].EndDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } } if (model.DWStartDate < Convert.ToDateTime(modelList[i].StartDate) && model.DWEndDate > Convert.ToDateTime(modelList[i].StartDate) && model.DWEndDate < Convert.ToDateTime(modelList[i].EndDate)) { if (startDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count == 0 && endDate.Where(m => m.ToString() == model.DWEndDate.ToString("yyyy-MM-dd")).ToList().Count == 0) { startDate.Add(modelList[i].StartDate); endDate.Add(model.DWEndDate.ToString("yyyy-MM-dd")); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } if (startDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count > 0 && endDate.Where(m => m.ToString() == model.DWEndDate.ToString("yyyy-MM-dd")).ToList().Count > 0 && startHourAndMinutes.Where(m => m.ToString() == modelList[i].StartHourAndMinutes).ToList().Count == 0 && endHourAndMinutes.Where(m => m.ToString() == model.DWEndHourAndMinutes).ToList().Count == 0) { startDate.Add(modelList[i].StartDate); endDate.Add(model.DWEndDate.ToString("yyyy-MM-dd")); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } } if (model.DWStartDate > Convert.ToDateTime(modelList[i].StartDate) && model.DWEndDate > Convert.ToDateTime(modelList[i].EndDate) && model.DWStartDate < Convert.ToDateTime(modelList[i].EndDate)) { if (startDate.Where(m => m.ToString() == model.DWStartDate.ToString("yyyy-MM-dd")).ToList().Count == 0 && endDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count == 0) { startDate.Add(model.DWStartDate.ToString("yyyy-MM-dd")); endDate.Add(modelList[i].EndDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } if (startDate.Where(m => m.ToString() == model.DWStartDate.ToString("yyyy-MM-dd")).ToList().Count > 0 && endDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count > 0 && startHourAndMinutes.Where(m => m.ToString() == modelList[i].StartHourAndMinutes).ToList().Count == 0 && endHourAndMinutes.Where(m => m.ToString() == model.DWEndHourAndMinutes).ToList().Count == 0) { startDate.Add(model.DWStartDate.ToString("yyyy-MM-dd")); endDate.Add(modelList[i].EndDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } } if (model.DWStartDate <= Convert.ToDateTime(modelList[i].StartDate) && model.DWEndDate >= Convert.ToDateTime(modelList[i].EndDate)) { if (startDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count == 0 && endDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count == 0) { startDate.Add(modelList[i].StartDate); endDate.Add(modelList[i].EndDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } if (startDate.Where(m => m.ToString() == modelList[i].StartDate).ToList().Count > 0 && endDate.Where(m => m.ToString() == modelList[i].EndDate).ToList().Count > 0 && startHourAndMinutes.Where(m => m.ToString() == modelList[i].StartHourAndMinutes).ToList().Count == 0 && endHourAndMinutes.Where(m => m.ToString() == model.DWEndHourAndMinutes).ToList().Count == 0) { startDate.Add(modelList[i].StartDate); endDate.Add(modelList[i].EndDate); startHourAndMinutes.Add(modelList[i].StartHourAndMinutes); endHourAndMinutes.Add(modelList[i].EndHourAndMinutes); } } isAdd = false; } } return(isAdd); }