private void updateSignalList() { SignalList.ItemsSource = null; if (SignalSourceGrid.SelectedCells == null || SignalSourceGrid.SelectedCells.Count <= 0) { return; } string data = SignalSourceGrid.SelectedCells[0].Column.Header.ToString(); int rowIdnex = SignalSourceGrid.Items.IndexOf(SignalSourceGrid.SelectedCells[0].Item); // 行坐标 DateTime dt = new DateTime(); try { dt = DateTime.ParseExact(data, "yyyy-MM-dd dddd", System.Globalization.CultureInfo.CurrentCulture); } catch (Exception ex) { string str = ex.Message; return; } if (dt == null) { return; } List <SignalSourceMsg> list = SignalSourceGrid.ItemsSource as List <SignalSourceMsg>; if (list != null) { CommContracts.SignalTime timeEnum = list.ElementAt(rowIdnex).ClinicVistTime; var department = this.departmentList.SelectedItem as CommContracts.Department; if (department == null) { return; } var vm = this.DataContext as HISGUIFeeVM; CommClient.WorkPlan workPlanClient = new CommClient.WorkPlan(); List <CommContracts.WorkPlanToSignalSource> myList = workPlanClient.GetAllWorkPlan111(department.ID, dt, dt); var query = from u in myList where u.WorkPlan.ShiftID == timeEnum.ShiftID select u; List <CommContracts.Registration> registrationList = vm?.GetDepartmentRegistrationList(department.ID, dt, dt); List <SignalSourceNums> numsList = new List <SignalSourceNums>(); foreach (var tem in query) { SignalSourceNums nums = new SignalSourceNums(); if (!(registrationList == null || registrationList.Count <= 0)) { int hasNum = 0; var query1 = from u in registrationList where u.SignalTime.ShiftID == timeEnum.ShiftID && u.SignalTypeID == tem.SignalType.ID select u; hasNum = query1.Count(); nums.hasUnUsedNum = tem.WorkPlan.MaxNum - hasNum; } else { nums.hasUnUsedNum = tem.WorkPlan.MaxNum; } nums.SignalSource = tem.WorkPlan; nums.SignalType = tem.SignalType; numsList.Add(nums); } SignalList.ItemsSource = numsList; } }
private List <SignalSourceMsg> updateSignalSourceGrid() { List <SignalSourceMsg> nullData = new List <SignalSourceMsg>(); var department = this.departmentList.SelectedItem as CommContracts.Department; if (department == null) { return(nullData); } CommClient.WorkPlan workPlanClient = new CommClient.WorkPlan(); List <CommContracts.WorkPlanToSignalSource> myList = workPlanClient.GetAllWorkPlan111(department.ID, DateTime.Now.Date, DateTime.Now.AddDays(6).Date); int n = myList.Count(); CommClient.SignalTime clinicVistClient = new CommClient.SignalTime(); List <CommContracts.SignalTime> vistTimeList = new List <CommContracts.SignalTime>(); vistTimeList = clinicVistClient.GetAllClinicVistTime(); if (vistTimeList == null) { return(null); } else { foreach (CommContracts.SignalTime tem in vistTimeList) { nullData.Add(new SignalSourceMsg(tem)); } } var vm = this.DataContext as HISGUIFeeVM; List <SignalSourceMsg> data = new List <SignalSourceMsg>(); bool bIsHasRegistration = false; List <CommContracts.Registration> registrationList = vm?.GetDepartmentRegistrationList(department.ID, DateTime.Now.Date, DateTime.Now.AddDays(6).Date); if (!(registrationList == null || registrationList.Count <= 0)) { bIsHasRegistration = true; } foreach (CommContracts.SignalTime tim in vistTimeList) { SignalSourceMsg msg = new SignalSourceMsg(tim); foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek))) { var query = from u in myList where u.WorkPlan.WorkPlanDate.Value.DayOfWeek == day && u.WorkPlan.ShiftID == tim.ShiftID select u.WorkPlan.MaxNum; int HaveNum = query.Sum(); int UsedNum = 0; if (bIsHasRegistration) { var regisQuery = from e in registrationList where e.SignalDate.DayOfWeek == day && e.SignalTime.ShiftID == tim.ShiftID select e; UsedNum = regisQuery.Count(); } string str = HaveNum - UsedNum == 0 ? "" : (HaveNum - UsedNum).ToString(); msg.weekStringList[(int)day] = str; } data.Add(msg); } return(data); }