using SchedulingSystem.EntityClass; using SchedulingSystemClient.EntityClass; using System; using System.Collections.Generic; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace SchedulingSystemClient { /// /// SYWindow.xaml 的交互逻辑 /// public partial class SYWindow : UserControl { SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); public SYWindow() { InitializeComponent(); } private void UserControl_Loaded(object sender, RoutedEventArgs e) { List listzsfs = new List(); listzsfs.Add(new ComboBoxBinding() { ID = 0, Name = "按手术室" }); listzsfs.Add(new ComboBoxBinding() { ID = 1, Name = "按手术日期" }); //listzsfs.Add(new ComboBoxBinding() { ID = 1, Name = "日间手术" }); zsfs.ItemsSource = listzsfs; zsfs.SelectedValuePath = "ID"; zsfs.DisplayMemberPath = "Name"; zsfs.SelectedIndex = 0; List listsss = new List(); listsss = (from tbsss in myModel.SYS_SSSB select new ComboBoxBinding { ID = tbsss.ID, Name = tbsss.SSSMC, }).ToList(); sss.ItemsSource = listsss; sss.SelectedValuePath = "ID"; sss.DisplayMemberPath = "Name"; sss.SelectedValue = 1; List listssrq = new List(); for (int i = 0; i < 6; i++) { string rq = DateTime.Now.AddDays(i).ToString("yyyy-MM-dd"); listssrq.Add(new ComboBoxBinding() { ID = i, Name = rq }); } ssrq.ItemsSource = listssrq; ssrq.SelectedValuePath = "ID"; ssrq.DisplayMemberPath = "Name"; ssrq.SelectedIndex = 0; for (int i = 0; i < 7; i++) { DateTime date = DateTime.Now; Label label = sssSJ.FindName("ssslabel" + i) as Label; label.Content = date.AddDays(i).Date.ToString("yyyy年MM月dd日"); } Scheduling.UpdateZT(); Scheduling.SmartScheduling(); //UpdateZT(); //SmartScheduling(); PaiBan(); } /// /// 排班UI生成 /// private void PaiBan() { if (zsfs.SelectedIndex == 0) { int sssid = Convert.ToInt32(sss.SelectedValue); DateTime kssj = DateTime.Now.AddDays(-1).Date; DateTime jssj = DateTime.Now.AddDays(7).Date; List listday = new List(); List listsspb = new List(); listsspb = (from tbsspbb in myModel.Bus_SSPBB join tbsssqb in myModel.Bus_SSSQB on tbsspbb.SQDH equals tbsssqb.SQDH join tbsssb in myModel.SYS_SSSB on tbsspbb.SSSID equals tbsssb.ID into joinsssb from sssb in joinsssb.DefaultIfEmpty() join tbssxxb in myModel.SYS_SSXXB on tbsssqb.SSID equals tbssxxb.ID join tbssdjb in myModel.SYS_SSDJB on tbssxxb.SSDJID equals tbssdjb.ID join tbqklxb in myModel.SYS_SSQKLXB on tbssxxb.SSQKLXID equals tbqklxb.ID join tbssscb in myModel.SYS_SSSCB on tbssxxb.SSSCID equals tbssscb.ID join tbqjscb in myModel.SYS_SSSCB on tbqklxb.QJSCID equals tbqjscb.ID join tbksb in myModel.SYS_KSB on tbsssqb.KSID equals tbksb.ID join tbysb in myModel.SYS_SSYSB on tbsssqb.ZDYSID equals tbysb.ID join tbmz1 in myModel.SYS_MZYSB on tbsspbb.MZYS1 equals tbmz1.ID into joinmz1 from mz1 in joinmz1.DefaultIfEmpty() join tbmz2 in myModel.SYS_MZYSB on tbsspbb.MZYS2 equals tbmz2.ID into joinmz2 from mz2 in joinmz2.DefaultIfEmpty() join tbmz3 in myModel.SYS_MZYSB on tbsspbb.MZYS3 equals tbmz3.ID into joinmz3 from mz3 in joinmz3.DefaultIfEmpty() join tbxs1 in myModel.SYS_HSB on tbsspbb.XSHS1 equals tbxs1.ID into joinxs1 from xs1 in joinxs1.DefaultIfEmpty() join tbxs2 in myModel.SYS_HSB on tbsspbb.XSHS2 equals tbxs2.ID into joinxs2 from xs2 in joinxs2.DefaultIfEmpty() join tbxh1 in myModel.SYS_HSB on tbsspbb.XHHS1 equals tbxh1.ID into joinxh1 from xh1 in joinxh1.DefaultIfEmpty() join tbxh2 in myModel.SYS_HSB on tbsspbb.XHHS2 equals tbxh2.ID into joinxh2 from xh2 in joinxh2.DefaultIfEmpty() join tbzs1 in myModel.SYS_SSYSB on tbsspbb.ZS1 equals tbzs1.ID into joinzs1 from zs1 in joinzs1.DefaultIfEmpty() join tbzs2 in myModel.SYS_SSYSB on tbsspbb.ZS2 equals tbzs2.ID into joinzs2 from zs2 in joinzs2.DefaultIfEmpty() join tbzs3 in myModel.SYS_SSYSB on tbsspbb.ZS3 equals tbzs3.ID into joinzs3 from zs3 in joinzs1.DefaultIfEmpty() join tbzt in myModel.SYS_PBZTB on tbsspbb.PBZT equals tbzt.ID join tbqklx in myModel.SYS_SSQKLXB on tbssxxb.SSQKLXID equals tbqklx.ID join tbssdj in myModel.SYS_SSDJB on tbssxxb.SSDJID equals tbssdj.ID where tbsspbb.SSSID == sssid && tbsspbb.SSKSSJ > kssj && tbsspbb.SSKSSJ < jssj select new Cus_SSPB { ID = tbsspbb.ID, BZ = tbsspbb.BZ, HZXM = tbsssqb.HZXM, KSID = tbsssqb.KSID, KSMC = tbksb.KSMC, SSMC = tbssxxb.SSMC, MZYS1 = mz1.YSMC, MZYS1ID = tbsspbb.MZYS1, MZYS2 = mz2.YSMC, MZYS2ID = tbsspbb.MZYS2, MZYS3 = mz3.YSMC, MZYS3ID = tbsspbb.MZYS3, PBZT = tbzt.Name, PBZTID = tbsspbb.PBZT, SQDH = tbsssqb.SQDH, SSKSSJ = tbsspbb.SSKSSJ, SSSID = tbsspbb.SSSID, SSSMC = sssb.SSSMC, SSZSC = tbssscb.SSSC, XSHS1 = xs1.HSMC, XSHS1ID = tbsspbb.XSHS1, XSHS2 = xs2.HSMC, XSHS2ID = tbsspbb.XSHS2, XHHS1 = xh1.HSMC, XHHS1ID = tbsspbb.XHHS1, XHHS2 = xh2.HSMC, XHHS2ID = tbsspbb.XHHS2, ZDYS = tbysb.YSXM, ZDYSID = tbsssqb.ZDYSID, ZS1 = zs1.YSXM, ZS1ID = tbsspbb.ZS1, ZS2 = zs2.YSXM, ZS2ID = tbsspbb.ZS2, ZS3 = zs3.YSXM, ZS3ID = tbsspbb.ZS3, QKLX = tbqklx.QKLX, SSDJ = tbssdj.SSDJ, QJSC = tbsspbb.QJSC, QZ = tbsspbb.QZ, SFJZ = tbsspbb.SFJZ, SQSJ = tbsspbb.SQSJ, SQZD = tbsspbb.SQZD, SSJSSJ = tbsspbb.SSJSSJ, SSRQ = tbsspbb.SSRQ, ZLKH = tbsspbb.ZLKH, ZYH = tbsspbb.ZYH, SSSC = tbsspbb.SSSC, }).ToList(); //List listpbb = (from tbpbb in myModel.Bus_SSPBB // join tbsssb in myModel.SYS_SSSB on tbpbb.SSSID equals tbsssb.ID // join tbksb in myModel.SYS_KSB on tbpbb. equals tbksb.ID // join tbysb in myModel.SYS_YSB on tbpbb.YSID equals tbysb.ID // join tbssqjd in myModel.SYS_SSQKLXB on tbpbb.SSQJD equals tbssqjd.ID // where tbpbb.SSSID == sssid && tbpbb.SSKSSJ > kssj && tbpbb.SSKSSJ < jssj // select new Cus_PBB // { // ID = tbpbb.ID, // SSSID = tbsssb.ID, // SSSMC = tbsssb.SSSMC, // YSID = tbysb.ID, // YSMC = tbysb.YSXM, // KSID = tbksb.ID, // KSMC = tbksb.KSMC, // KSSJ = tbpbb.KSSJ, // SSSC = tbpbb.SSSC, // PBZT = tbpbb.PBZT, // KSRQ = tbpbb.KSRQ, // SSMC = tbpbb.SSMC, // HZXM = tbpbb.HZXM, // SSZSC = tbpbb.SSZSC, // SSQJD = tbssqjd.SSQJD, // ZYH = tbpbb.ZYH, // QZ = tbpbb.QZ // }).ToList(); for (int i = 0; i < 7; i++) { DateTime date = DateTime.Now.AddDays(i).Date; listday = listsspb.Where(a => Convert.ToDateTime(a.SSKSSJ).Date == date).OrderBy(b => b.SSKSSJ).ToList(); DockPanel dock = sssSJ.FindName("sssdate" + i) as DockPanel; dock.Children.Clear(); for (int j = 0; j < listday.Count; j++) { Grid grid = new Grid(); grid.SetValue(DockPanel.DockProperty, Dock.Top); grid.Margin = new Thickness(10, 10, 10, 0); grid.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#badbf5")); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); Label lb0 = new Label(); Label lb1 = new Label(); Label lb2 = new Label(); Label lb3 = new Label(); Label lb4 = new Label(); Label lb5 = new Label(); Label lb6 = new Label(); Label lb7 = new Label(); lb0.Padding = new Thickness(0, 3, 0, 3); lb1.Padding = new Thickness(0, 3, 0, 3); lb2.Padding = new Thickness(0, 3, 0, 3); lb3.Padding = new Thickness(0, 3, 0, 3); lb4.Padding = new Thickness(0, 3, 0, 3); lb5.Padding = new Thickness(0, 3, 0, 3); lb6.Padding = new Thickness(0, 3, 0, 3); lb7.Padding = new Thickness(0, 3, 0, 3); lb0.SetValue(Grid.RowProperty, 0); lb1.SetValue(Grid.RowProperty, 1); lb2.SetValue(Grid.RowProperty, 2); lb3.SetValue(Grid.RowProperty, 3); lb4.SetValue(Grid.RowProperty, 4); lb5.SetValue(Grid.RowProperty, 5); lb6.SetValue(Grid.RowProperty, 6); lb7.SetValue(Grid.RowProperty, 7); lb0.HorizontalContentAlignment = HorizontalAlignment.Center; lb0.VerticalContentAlignment = VerticalAlignment.Center; lb1.HorizontalContentAlignment = HorizontalAlignment.Center; lb1.VerticalContentAlignment = VerticalAlignment.Center; lb2.HorizontalContentAlignment = HorizontalAlignment.Center; lb2.VerticalContentAlignment = VerticalAlignment.Center; lb3.HorizontalContentAlignment = HorizontalAlignment.Center; lb3.VerticalContentAlignment = VerticalAlignment.Center; lb4.HorizontalContentAlignment = HorizontalAlignment.Center; lb4.VerticalContentAlignment = VerticalAlignment.Center; lb5.HorizontalContentAlignment = HorizontalAlignment.Center; lb5.VerticalContentAlignment = VerticalAlignment.Center; lb6.HorizontalContentAlignment = HorizontalAlignment.Center; lb6.VerticalContentAlignment = VerticalAlignment.Center; lb7.HorizontalContentAlignment = HorizontalAlignment.Center; lb7.VerticalContentAlignment = VerticalAlignment.Center; lb0.FontSize = 16; lb1.FontSize = 16; lb2.FontSize = 16; lb3.FontSize = 16; lb4.FontSize = 16; lb5.FontSize = 16; lb6.FontSize = 16; lb0.Content = listday[j].SSMC; lb1.Content = "开始时间:" + listday[j].SSKSSJ.ToString().Substring(listday[j].SSKSSJ.ToString().LastIndexOf(" ")); lb2.Content = "手术总时长:" + listday[j].SSSC + "小时"; lb3.Content = "切口类型:" + listday[j].QKLX; lb4.Content = "主刀医生:" + listday[j].ZDYS; lb5.Content = "麻醉医生:" + listday[j].MZYS1; lb6.Content = "患者姓名:" + listday[j].HZXM; lb7.Content = "住院号:" + listday[j].ZYH; //lb1.Content = "开始时间:" + listday[j].KSSJ.ToString().Substring(listday[j].KSSJ.ToString().LastIndexOf(" ")); //lb2.Content = "手术总时长:" + listday[j].SSZSC + "小时"; //lb3.Content = "医生:" + listday[j].YSMC; //lb4.Content = "病人:" + listday[j].HZXM; //lb5.Content = "住院号:" + listday[j].ZYH; //lb6.Content = "权重:" + listday[j].QZ; lb1.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ff0000")); grid.Children.Add(lb0); grid.Children.Add(lb1); grid.Children.Add(lb2); grid.Children.Add(lb3); grid.Children.Add(lb4); grid.Children.Add(lb5); grid.Children.Add(lb6); grid.Children.Add(lb7); dock.Children.Add(grid); } } } if (zsfs.SelectedIndex == 1) { ssrqSSS.ColumnDefinitions.Clear(); ssrqPBLB.ColumnDefinitions.Clear(); ssrqSSS.Children.Clear(); ssrqPBLB.Children.Clear(); DateTime date = Convert.ToDateTime(ssrq.Text); DateTime kssj = date.Date; DateTime jssj = date.AddDays(1).Date.AddSeconds(-1); //List listpbb = (from tbpbb in myModel.Bus_SSPBB // join tbsssb in myModel.SYS_SSSB on tbpbb.SSSID equals tbsssb.ID // join tbksb in myModel.SYS_KSB on tbpbb.KSID equals tbksb.ID // join tbysb in myModel.SYS_YSB on tbpbb.YSID equals tbysb.ID // join tbssscb in myModel.SYS_SSSCB on tbpbb.SSSC equals tbssscb.ID // join tbqjdb in myModel.SYS_SSQKLXB on tbpbb.SSQJD equals tbqjdb.ID // where tbpbb.KSSJ >= kssj && tbpbb.KSSJ <= jssj // select new Cus_PBB // { // ID = tbpbb.ID, // SSSID = tbsssb.ID, // SSSMC = tbsssb.SSSMC, // YSID = tbysb.ID, // YSMC = tbysb.YSXM, // KSID = tbksb.ID, // KSMC = tbksb.KSMC, // KSSJ = tbpbb.KSSJ, // SSSC = tbpbb.SSSC, // PBZT = tbpbb.PBZT, // KSRQ = tbpbb.KSRQ, // SSMC = tbpbb.SSMC, // HZXM = tbpbb.HZXM, // SSZSC = tbpbb.SSZSC, // SSSJ = tbssscb.SSSC, // QJSC = tbqjdb.QJSJ, // SSQJD = tbqjdb.SSQJD, // ZYH = tbpbb.ZYH, // QZ = tbpbb.QZ // }).ToList(); List listsspb = new List(); listsspb = (from tbsspbb in myModel.Bus_SSPBB join tbsssqb in myModel.Bus_SSSQB on tbsspbb.SQDH equals tbsssqb.SQDH join tbsssb in myModel.SYS_SSSB on tbsspbb.SSSID equals tbsssb.ID into joinsssb from sssb in joinsssb.DefaultIfEmpty() join tbssxxb in myModel.SYS_SSXXB on tbsssqb.SSID equals tbssxxb.ID join tbssdjb in myModel.SYS_SSDJB on tbssxxb.SSDJID equals tbssdjb.ID join tbqklxb in myModel.SYS_SSQKLXB on tbssxxb.SSQKLXID equals tbqklxb.ID join tbssscb in myModel.SYS_SSSCB on tbssxxb.SSSCID equals tbssscb.ID join tbqjscb in myModel.SYS_SSSCB on tbqklxb.QJSCID equals tbqjscb.ID join tbksb in myModel.SYS_KSB on tbsssqb.KSID equals tbksb.ID join tbysb in myModel.SYS_SSYSB on tbsssqb.ZDYSID equals tbysb.ID join tbmz1 in myModel.SYS_MZYSB on tbsspbb.MZYS1 equals tbmz1.ID into joinmz1 from mz1 in joinmz1.DefaultIfEmpty() join tbmz2 in myModel.SYS_MZYSB on tbsspbb.MZYS2 equals tbmz2.ID into joinmz2 from mz2 in joinmz2.DefaultIfEmpty() join tbmz3 in myModel.SYS_MZYSB on tbsspbb.MZYS3 equals tbmz3.ID into joinmz3 from mz3 in joinmz3.DefaultIfEmpty() join tbxs1 in myModel.SYS_HSB on tbsspbb.XSHS1 equals tbxs1.ID into joinxs1 from xs1 in joinxs1.DefaultIfEmpty() join tbxs2 in myModel.SYS_HSB on tbsspbb.XSHS2 equals tbxs2.ID into joinxs2 from xs2 in joinxs2.DefaultIfEmpty() join tbxh1 in myModel.SYS_HSB on tbsspbb.XHHS1 equals tbxh1.ID into joinxh1 from xh1 in joinxh1.DefaultIfEmpty() join tbxh2 in myModel.SYS_HSB on tbsspbb.XHHS2 equals tbxh2.ID into joinxh2 from xh2 in joinxh2.DefaultIfEmpty() join tbzs1 in myModel.SYS_SSYSB on tbsspbb.ZS1 equals tbzs1.ID into joinzs1 from zs1 in joinzs1.DefaultIfEmpty() join tbzs2 in myModel.SYS_SSYSB on tbsspbb.ZS2 equals tbzs2.ID into joinzs2 from zs2 in joinzs2.DefaultIfEmpty() join tbzs3 in myModel.SYS_SSYSB on tbsspbb.ZS3 equals tbzs3.ID into joinzs3 from zs3 in joinzs1.DefaultIfEmpty() join tbzt in myModel.SYS_PBZTB on tbsspbb.PBZT equals tbzt.ID join tbqklx in myModel.SYS_SSQKLXB on tbssxxb.SSQKLXID equals tbqklx.ID join tbssdj in myModel.SYS_SSDJB on tbssxxb.SSDJID equals tbssdj.ID where tbsspbb.SSKSSJ > kssj && tbsspbb.SSKSSJ < jssj select new Cus_SSPB { ID = tbsspbb.ID, BZ = tbsspbb.BZ, HZXM = tbsssqb.HZXM, KSID = tbsssqb.KSID, KSMC = tbksb.KSMC, SSMC = tbssxxb.SSMC, MZYS1 = mz1.YSMC, MZYS1ID = tbsspbb.MZYS1, MZYS2 = mz2.YSMC, MZYS2ID = tbsspbb.MZYS2, MZYS3 = mz3.YSMC, MZYS3ID = tbsspbb.MZYS3, PBZT = tbzt.Name, PBZTID = tbsspbb.PBZT, SQDH = tbsssqb.SQDH, SSKSSJ = tbsspbb.SSKSSJ, SSSID = tbsspbb.SSSID, SSSMC = sssb.SSSMC, SSZSC = tbssscb.SSSC, XSHS1 = xs1.HSMC, XSHS1ID = tbsspbb.XSHS1, XSHS2 = xs2.HSMC, XSHS2ID = tbsspbb.XSHS2, XHHS1 = xh1.HSMC, XHHS1ID = tbsspbb.XHHS1, XHHS2 = xh2.HSMC, XHHS2ID = tbsspbb.XHHS2, ZDYS = tbysb.YSXM, ZDYSID = tbsssqb.ZDYSID, ZS1 = zs1.YSXM, ZS1ID = tbsspbb.ZS1, ZS2 = zs2.YSXM, ZS2ID = tbsspbb.ZS2, ZS3 = zs3.YSXM, ZS3ID = tbsspbb.ZS3, QKLX = tbqklx.QKLX, SSDJ = tbssdj.SSDJ, QJSC = tbsspbb.QJSC, QZ = tbsspbb.QZ, SFJZ = tbsspbb.SFJZ, SQSJ = tbsspbb.SQSJ, SQZD = tbsspbb.SQZD, SSJSSJ = tbsspbb.SSJSSJ, SSRQ = tbsspbb.SSRQ, ZLKH = tbsspbb.ZLKH, ZYH = tbsspbb.ZYH, SSSC = tbsspbb.SSSC, }).ToList(); var listsss = listsspb.GroupBy(a => a.SSSMC).ToList(); for (int i = 0; i < listsss.Count(); i++) { ssrqSSS.ColumnDefinitions.Add(new ColumnDefinition { }); ssrqSSS.ColumnDefinitions[i].Width = new GridLength(240, GridUnitType.Pixel); Border border = new Border(); Label sss = new Label(); sss.Content = listsss[i].Key; sss.HorizontalContentAlignment = HorizontalAlignment.Center; sss.VerticalContentAlignment = VerticalAlignment.Center; sss.FontSize = 18; sss.BorderThickness = new Thickness(1); sss.BorderBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#DDDDDD")); sss.SetValue(Grid.ColumnProperty, i); ssrqSSS.Children.Add(sss); ssrqPBLB.ColumnDefinitions.Add(new ColumnDefinition { }); ssrqPBLB.ColumnDefinitions[i].Width = new GridLength(240, GridUnitType.Pixel); Border bd = new Border(); bd.BorderBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#DDDDDD")); bd.BorderThickness = new Thickness(1,0,1,0); bd.SetValue(Grid.ColumnProperty, i); ssrqPBLB.Children.Add(bd); DockPanel dock = new DockPanel(); dock.LastChildFill = false; dock.SetValue(Grid.ColumnProperty, i); ssrqPBLB.Children.Add(dock); var list = listsspb.Where(a => a.SSSMC == listsss[i].Key).ToList(); for (int j = 0; j < list.Count; j++) { //Grid grid = new Grid(); //grid.SetValue(DockPanel.DockProperty, Dock.Top); //grid.Margin = new Thickness(10, 10, 10, 0); //grid.Width = 220; //grid.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#badbf5")); //grid.RowDefinitions.Add(new RowDefinition { }); //grid.RowDefinitions.Add(new RowDefinition { }); //grid.RowDefinitions.Add(new RowDefinition { }); //grid.RowDefinitions.Add(new RowDefinition { }); //grid.RowDefinitions.Add(new RowDefinition { }); //grid.RowDefinitions.Add(new RowDefinition { }); //grid.RowDefinitions.Add(new RowDefinition { }); //Label lb0 = new Label(); //Label lb1 = new Label(); //Label lb2 = new Label(); //Label lb3 = new Label(); //Label lb4 = new Label(); //Label lb5 = new Label(); //Label lb6 = new Label(); //lb0.Padding = new Thickness(0, 3, 0, 3); //lb1.Padding = new Thickness(0, 3, 0, 3); //lb2.Padding = new Thickness(0, 3, 0, 3); //lb3.Padding = new Thickness(0, 3, 0, 3); //lb4.Padding = new Thickness(0, 3, 0, 3); //lb5.Padding = new Thickness(0, 3, 0, 3); //lb6.Padding = new Thickness(0, 3, 0, 3); //lb0.SetValue(Grid.RowProperty, 0); //lb1.SetValue(Grid.RowProperty, 1); //lb2.SetValue(Grid.RowProperty, 2); //lb3.SetValue(Grid.RowProperty, 3); //lb4.SetValue(Grid.RowProperty, 4); //lb5.SetValue(Grid.RowProperty, 5); //lb6.SetValue(Grid.RowProperty, 6); //lb0.HorizontalContentAlignment = HorizontalAlignment.Center; //lb0.VerticalContentAlignment = VerticalAlignment.Center; //lb1.HorizontalContentAlignment = HorizontalAlignment.Center; //lb1.VerticalContentAlignment = VerticalAlignment.Center; //lb2.HorizontalContentAlignment = HorizontalAlignment.Center; //lb2.VerticalContentAlignment = VerticalAlignment.Center; //lb3.HorizontalContentAlignment = HorizontalAlignment.Center; //lb3.VerticalContentAlignment = VerticalAlignment.Center; //lb4.HorizontalContentAlignment = HorizontalAlignment.Center; //lb4.VerticalContentAlignment = VerticalAlignment.Center; //lb5.HorizontalContentAlignment = HorizontalAlignment.Center; //lb5.VerticalContentAlignment = VerticalAlignment.Center; //lb6.HorizontalContentAlignment = HorizontalAlignment.Center; //lb6.VerticalContentAlignment = VerticalAlignment.Center; //lb0.FontSize = 16; //lb1.FontSize = 16; //lb2.FontSize = 16; //lb3.FontSize = 16; //lb4.FontSize = 16; //lb5.FontSize = 16; //lb6.FontSize = 16; //lb0.Content = list[j].SSMC; ////lb1.Content = "开始时间:" + list[j].KSSJ.ToString().Substring(list[j].KSSJ.ToString().LastIndexOf(" ")); ////lb2.Content = "手术时长:" + list[j].SSSJ + "小时"; ////lb3.Content = "清洁时长:" + list[j].SSSJ + "小时"; ////lb4.Content = "医生:" + list[j].YSMC; ////lb5.Content = "病人:" + list[j].HZXM; ////lb6.Content = "住院号:" + list[j].ZYH; ////lb6.Content = "权重:" + list[j].QZ; //lb1.Content = "开始时间:" + list[j].KSSJ.ToString().Substring(list[j].KSSJ.ToString().LastIndexOf(" ")); //lb2.Content = "手术总时长:" + list[j].SSZSC + "小时"; //lb3.Content = "清洁类型:" + list[j].SSQJD ; //lb4.Content = "医生:" + list[j].YSMC; //lb5.Content = "病人:" + list[j].HZXM; //lb6.Content = "住院号:" + list[j].ZYH; ////lb6.Content = "权重:" + list[j].QZ; //lb1.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ff0000")); //grid.Children.Add(lb0); //grid.Children.Add(lb1); //grid.Children.Add(lb2); //grid.Children.Add(lb3); //grid.Children.Add(lb4); //grid.Children.Add(lb5); //grid.Children.Add(lb6); //dock.Children.Add(grid); Grid grid = new Grid(); grid.SetValue(DockPanel.DockProperty, Dock.Top); grid.Margin = new Thickness(10, 10, 10, 0); grid.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#badbf5")); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); Label lb0 = new Label(); Label lb1 = new Label(); Label lb2 = new Label(); Label lb3 = new Label(); Label lb4 = new Label(); Label lb5 = new Label(); Label lb6 = new Label(); Label lb7 = new Label(); lb0.Padding = new Thickness(0, 3, 0, 3); lb1.Padding = new Thickness(0, 3, 0, 3); lb2.Padding = new Thickness(0, 3, 0, 3); lb3.Padding = new Thickness(0, 3, 0, 3); lb4.Padding = new Thickness(0, 3, 0, 3); lb5.Padding = new Thickness(0, 3, 0, 3); lb6.Padding = new Thickness(0, 3, 0, 3); lb7.Padding = new Thickness(0, 3, 0, 3); lb0.SetValue(Grid.RowProperty, 0); lb1.SetValue(Grid.RowProperty, 1); lb2.SetValue(Grid.RowProperty, 2); lb3.SetValue(Grid.RowProperty, 3); lb4.SetValue(Grid.RowProperty, 4); lb5.SetValue(Grid.RowProperty, 5); lb6.SetValue(Grid.RowProperty, 6); lb7.SetValue(Grid.RowProperty, 7); lb0.HorizontalContentAlignment = HorizontalAlignment.Center; lb0.VerticalContentAlignment = VerticalAlignment.Center; lb1.HorizontalContentAlignment = HorizontalAlignment.Center; lb1.VerticalContentAlignment = VerticalAlignment.Center; lb2.HorizontalContentAlignment = HorizontalAlignment.Center; lb2.VerticalContentAlignment = VerticalAlignment.Center; lb3.HorizontalContentAlignment = HorizontalAlignment.Center; lb3.VerticalContentAlignment = VerticalAlignment.Center; lb4.HorizontalContentAlignment = HorizontalAlignment.Center; lb4.VerticalContentAlignment = VerticalAlignment.Center; lb5.HorizontalContentAlignment = HorizontalAlignment.Center; lb5.VerticalContentAlignment = VerticalAlignment.Center; lb6.HorizontalContentAlignment = HorizontalAlignment.Center; lb6.VerticalContentAlignment = VerticalAlignment.Center; lb7.HorizontalContentAlignment = HorizontalAlignment.Center; lb7.VerticalContentAlignment = VerticalAlignment.Center; lb0.FontSize = 16; lb1.FontSize = 16; lb2.FontSize = 16; lb3.FontSize = 16; lb4.FontSize = 16; lb5.FontSize = 16; lb6.FontSize = 16; lb0.Content = list[j].SSMC; lb1.Content = "开始时间:" + list[j].SSKSSJ.ToString().Substring(list[j].SSKSSJ.ToString().LastIndexOf(" ")); lb2.Content = "手术总时长:" + list[j].SSSC + "小时"; lb3.Content = "切口类型:" + list[j].QKLX; lb4.Content = "主刀医生:" + list[j].ZDYS; lb5.Content = "麻醉医生:" + list[j].MZYS1; lb6.Content = "患者姓名:" + list[j].HZXM; lb7.Content = "住院号:" + list[j].ZYH; //lb1.Content = "开始时间:" + listday[j].KSSJ.ToString().Substring(listday[j].KSSJ.ToString().LastIndexOf(" ")); //lb2.Content = "手术总时长:" + listday[j].SSZSC + "小时"; //lb3.Content = "医生:" + listday[j].YSMC; //lb4.Content = "病人:" + listday[j].HZXM; //lb5.Content = "住院号:" + listday[j].ZYH; //lb6.Content = "权重:" + listday[j].QZ; lb1.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ff0000")); grid.Children.Add(lb0); grid.Children.Add(lb1); grid.Children.Add(lb2); grid.Children.Add(lb3); grid.Children.Add(lb4); grid.Children.Add(lb5); grid.Children.Add(lb6); grid.Children.Add(lb7); dock.Children.Add(grid); } } } if (zsfs.SelectedIndex == 2) { ssrqSSS.ColumnDefinitions.Clear(); ssrqPBLB.ColumnDefinitions.Clear(); ssrqSSS.Children.Clear(); ssrqPBLB.Children.Clear(); DateTime date = Convert.ToDateTime(ssrq.Text); DateTime kssj = date.Date; DateTime jssj = date.AddDays(1).Date.AddSeconds(-1); List listsspb = new List(); listsspb = (from tbsspbb in myModel.Bus_RJSSB //join tbsssqb in myModel.Bus_SSSQB on tbsspbb.SQDH equals tbsssqb.SQDH join tbsssb in myModel.SYS_SSSB on tbsspbb.SSSID equals tbsssb.ID into joinsssb from sssb in joinsssb.DefaultIfEmpty() join tbssxxb in myModel.SYS_SSXXB on tbsspbb.SSID equals tbssxxb.ID join tbssdjb in myModel.SYS_SSDJB on tbssxxb.SSDJID equals tbssdjb.ID join tbqklxb in myModel.SYS_SSQKLXB on tbssxxb.SSQKLXID equals tbqklxb.ID join tbssscb in myModel.SYS_SSSCB on tbssxxb.SSSCID equals tbssscb.ID join tbqjscb in myModel.SYS_SSSCB on tbqklxb.QJSCID equals tbqjscb.ID join tbksb in myModel.SYS_KSB on tbsspbb.KSID equals tbksb.ID join tbysb in myModel.SYS_SSYSB on tbsspbb.ZDYS equals tbysb.ID join tbmz1 in myModel.SYS_MZYSB on tbsspbb.MZYS1 equals tbmz1.ID into joinmz1 from mz1 in joinmz1.DefaultIfEmpty() join tbmz2 in myModel.SYS_MZYSB on tbsspbb.MZYS2 equals tbmz2.ID into joinmz2 from mz2 in joinmz2.DefaultIfEmpty() join tbmz3 in myModel.SYS_MZYSB on tbsspbb.MZYS3 equals tbmz3.ID into joinmz3 from mz3 in joinmz3.DefaultIfEmpty() join tbxs1 in myModel.SYS_HSB on tbsspbb.XSHS1 equals tbxs1.ID into joinxs1 from xs1 in joinxs1.DefaultIfEmpty() join tbxs2 in myModel.SYS_HSB on tbsspbb.XSHS2 equals tbxs2.ID into joinxs2 from xs2 in joinxs2.DefaultIfEmpty() join tbxh1 in myModel.SYS_HSB on tbsspbb.XHHS1 equals tbxh1.ID into joinxh1 from xh1 in joinxh1.DefaultIfEmpty() join tbxh2 in myModel.SYS_HSB on tbsspbb.XHHS2 equals tbxh2.ID into joinxh2 from xh2 in joinxh2.DefaultIfEmpty() join tbzs1 in myModel.SYS_SSYSB on tbsspbb.ZS1 equals tbzs1.ID into joinzs1 from zs1 in joinzs1.DefaultIfEmpty() join tbzs2 in myModel.SYS_SSYSB on tbsspbb.ZS2 equals tbzs2.ID into joinzs2 from zs2 in joinzs2.DefaultIfEmpty() join tbzs3 in myModel.SYS_SSYSB on tbsspbb.ZS3 equals tbzs3.ID into joinzs3 from zs3 in joinzs1.DefaultIfEmpty() join tbzt in myModel.SYS_PBZTB on tbsspbb.PBZT equals tbzt.ID join tbqklx in myModel.SYS_SSQKLXB on tbssxxb.SSQKLXID equals tbqklx.ID join tbssdj in myModel.SYS_SSDJB on tbssxxb.SSDJID equals tbssdj.ID where tbsspbb.SSKSSJ > kssj && tbsspbb.SSKSSJ < jssj select new Cus_SSPB { ID = tbsspbb.ID, BZ = tbsspbb.BZ, HZXM = tbsspbb.HZXM, KSID = tbsspbb.KSID, KSMC = tbksb.KSMC, SSMC = tbssxxb.SSMC, MZYS1 = mz1.YSMC, MZYS1ID = tbsspbb.MZYS1, MZYS2 = mz2.YSMC, MZYS2ID = tbsspbb.MZYS2, MZYS3 = mz3.YSMC, MZYS3ID = tbsspbb.MZYS3, PBZT = tbzt.Name, PBZTID = tbsspbb.PBZT, SQDH = tbsspbb.SQDH, SSKSSJ = tbsspbb.SSKSSJ, SSSID = tbsspbb.SSSID, SSSMC = sssb.SSSMC, SSZSC = tbssscb.SSSC, XSHS1 = xs1.HSMC, XSHS1ID = tbsspbb.XSHS1, XSHS2 = xs2.HSMC, XSHS2ID = tbsspbb.XSHS2, XHHS1 = xh1.HSMC, XHHS1ID = tbsspbb.XHHS1, XHHS2 = xh2.HSMC, XHHS2ID = tbsspbb.XHHS2, ZDYS = tbysb.YSXM, ZDYSID = tbsspbb.ZDYS, ZS1 = zs1.YSXM, ZS1ID = tbsspbb.ZS1, ZS2 = zs2.YSXM, ZS2ID = tbsspbb.ZS2, ZS3 = zs3.YSXM, ZS3ID = tbsspbb.ZS3, QKLX = tbqklx.QKLX, SSDJ = tbssdj.SSDJ, QJSC = tbsspbb.QJSC, QZ = tbsspbb.QZ, SFJZ = tbsspbb.SFJZ, SQSJ = tbsspbb.SQSJ, SQZD = tbsspbb.SQZD, SSJSSJ = tbsspbb.SSJSSJ, SSRQ = tbsspbb.SSRQ, ZLKH = tbsspbb.ZLKH, ZYH = tbsspbb.ZYH, SSSC = tbsspbb.SSSC, }).ToList(); var listsss = listsspb.GroupBy(a => a.SSSMC).ToList(); for (int i = 0; i < listsss.Count(); i++) { ssrqSSS.ColumnDefinitions.Add(new ColumnDefinition { }); ssrqSSS.ColumnDefinitions[i].Width = new GridLength(240, GridUnitType.Pixel); Border border = new Border(); Label sss = new Label(); sss.Content = listsss[i].Key; sss.HorizontalContentAlignment = HorizontalAlignment.Center; sss.VerticalContentAlignment = VerticalAlignment.Center; sss.FontSize = 18; sss.BorderThickness = new Thickness(1); sss.BorderBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#DDDDDD")); sss.SetValue(Grid.ColumnProperty, i); ssrqSSS.Children.Add(sss); ssrqPBLB.ColumnDefinitions.Add(new ColumnDefinition { }); ssrqPBLB.ColumnDefinitions[i].Width = new GridLength(240, GridUnitType.Pixel); Border bd = new Border(); bd.BorderBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#DDDDDD")); bd.BorderThickness = new Thickness(1, 0, 1, 0); bd.SetValue(Grid.ColumnProperty, i); ssrqPBLB.Children.Add(bd); DockPanel dock = new DockPanel(); dock.LastChildFill = false; dock.SetValue(Grid.ColumnProperty, i); ssrqPBLB.Children.Add(dock); var list = listsspb.Where(a => a.SSSMC == listsss[i].Key).ToList(); for (int j = 0; j < list.Count; j++) { Grid grid = new Grid(); grid.SetValue(DockPanel.DockProperty, Dock.Top); grid.Margin = new Thickness(10, 10, 10, 0); grid.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#badbf5")); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); grid.RowDefinitions.Add(new RowDefinition { }); Label lb0 = new Label(); Label lb1 = new Label(); Label lb2 = new Label(); Label lb3 = new Label(); Label lb4 = new Label(); Label lb5 = new Label(); Label lb6 = new Label(); Label lb7 = new Label(); lb0.Padding = new Thickness(0, 3, 0, 3); lb1.Padding = new Thickness(0, 3, 0, 3); lb2.Padding = new Thickness(0, 3, 0, 3); lb3.Padding = new Thickness(0, 3, 0, 3); lb4.Padding = new Thickness(0, 3, 0, 3); lb5.Padding = new Thickness(0, 3, 0, 3); lb6.Padding = new Thickness(0, 3, 0, 3); lb7.Padding = new Thickness(0, 3, 0, 3); lb0.SetValue(Grid.RowProperty, 0); lb1.SetValue(Grid.RowProperty, 1); lb2.SetValue(Grid.RowProperty, 2); lb3.SetValue(Grid.RowProperty, 3); lb4.SetValue(Grid.RowProperty, 4); lb5.SetValue(Grid.RowProperty, 5); lb6.SetValue(Grid.RowProperty, 6); lb7.SetValue(Grid.RowProperty, 7); lb0.HorizontalContentAlignment = HorizontalAlignment.Center; lb0.VerticalContentAlignment = VerticalAlignment.Center; lb1.HorizontalContentAlignment = HorizontalAlignment.Center; lb1.VerticalContentAlignment = VerticalAlignment.Center; lb2.HorizontalContentAlignment = HorizontalAlignment.Center; lb2.VerticalContentAlignment = VerticalAlignment.Center; lb3.HorizontalContentAlignment = HorizontalAlignment.Center; lb3.VerticalContentAlignment = VerticalAlignment.Center; lb4.HorizontalContentAlignment = HorizontalAlignment.Center; lb4.VerticalContentAlignment = VerticalAlignment.Center; lb5.HorizontalContentAlignment = HorizontalAlignment.Center; lb5.VerticalContentAlignment = VerticalAlignment.Center; lb6.HorizontalContentAlignment = HorizontalAlignment.Center; lb6.VerticalContentAlignment = VerticalAlignment.Center; lb7.HorizontalContentAlignment = HorizontalAlignment.Center; lb7.VerticalContentAlignment = VerticalAlignment.Center; lb0.FontSize = 16; lb1.FontSize = 16; lb2.FontSize = 16; lb3.FontSize = 16; lb4.FontSize = 16; lb5.FontSize = 16; lb6.FontSize = 16; lb0.Content = list[j].SSMC; lb1.Content = "开始时间:" + list[j].SSKSSJ.ToString().Substring(list[j].SSKSSJ.ToString().LastIndexOf(" ")); lb2.Content = "手术总时长:" + list[j].SSSC + "小时"; lb3.Content = "切口类型:" + list[j].QKLX; lb4.Content = "主刀医生:" + list[j].ZDYS; lb5.Content = "麻醉医生:" + list[j].MZYS1; lb6.Content = "患者姓名:" + list[j].HZXM; lb7.Content = "住院号:" + list[j].ZYH; //lb1.Content = "开始时间:" + listday[j].KSSJ.ToString().Substring(listday[j].KSSJ.ToString().LastIndexOf(" ")); //lb2.Content = "手术总时长:" + listday[j].SSZSC + "小时"; //lb3.Content = "医生:" + listday[j].YSMC; //lb4.Content = "病人:" + listday[j].HZXM; //lb5.Content = "住院号:" + listday[j].ZYH; //lb6.Content = "权重:" + listday[j].QZ; lb1.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ff0000")); grid.Children.Add(lb0); grid.Children.Add(lb1); grid.Children.Add(lb2); grid.Children.Add(lb3); grid.Children.Add(lb4); grid.Children.Add(lb5); grid.Children.Add(lb6); grid.Children.Add(lb7); dock.Children.Add(grid); } } } } private void shuaxin_Click(object sender, RoutedEventArgs e) { PaiBan(); } private void btn_sx_Click(object sender, RoutedEventArgs e) { //UpdateZT(); //SmartScheduling(); PaiBan(); } private void btn_gb_Click(object sender, RoutedEventArgs e) { //this.Close(); } private void btn_xz_Click(object sender, RoutedEventArgs e) { //PBSQWindow window = new PBSQWindow(user); //window.Show(); } private void zsfs_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (zsfs.SelectedIndex == 0) { ssrq.Visibility = Visibility.Collapsed; ssrqlb.Visibility = Visibility.Collapsed; sss.Visibility = Visibility.Visible; ssslb.Visibility = Visibility.Visible; sss.SelectedIndex = 0; ASSS.Visibility = Visibility.Visible; ASSRQ.Visibility = Visibility.Collapsed; PaiBan(); } else { ssrq.Visibility = Visibility.Visible; ssrqlb.Visibility = Visibility.Visible; sss.Visibility = Visibility.Collapsed; ssslb.Visibility = Visibility.Collapsed; ssrq.SelectedValue = 0; ASSS.Visibility = Visibility.Collapsed; ASSRQ.Visibility = Visibility.Visible; PaiBan(); } } //#region 排班方法 ///// ///// 修改排班状态 ///// //private void UpdateZT() //{ // //1、查出最后修改时间 // int zhxgsj = Convert.ToInt32((from tbqtcs in myModel.Bus_SJCSB // select new // { // tbqtcs // }).Single().tbqtcs.ZHXGSJ.Replace("天内", "")); // //2、获取锁定时间 // DateTime sdsj = DateTime.Now.AddDays(zhxgsj).Date.AddSeconds(-1); // //3、查出状态不是已完成和已取消并且开始时间小于锁定时间的手术排班 // var listpbb = (from tbpbb in myModel.Bus_SSPBB // where tbpbb.PBZT != 3 && tbpbb.PBZT != 4 && tbpbb.KSSJ < sdsj // select new // { // tbpbb // }).ToList(); // try // { // for (int i = 0; i < listpbb.Count; i++) // { // Bus_SSPBB pbb = new Bus_SSPBB(); // pbb = listpbb[i].tbpbb; // //4、获取手术完成时间 // DateTime sswcsj = Convert.ToDateTime(pbb.KSSJ).AddHours(Convert.ToDouble(pbb.SSZSC)); // //5、如果手术完成时间小于当前时间修改状态为已完成 // if (sswcsj < DateTime.Now) // { // pbb.PBZT = 4; // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // } // //6、如果手术完成时间大于当前时间修改状态为已锁定 // else // { // if (listpbb[i].tbpbb.PBZT != 5) // { // pbb.PBZT = 2; // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // } // } // } // myModel.SaveChanges(); // } // catch (Exception ex) // { // MessageBox.Show(ex.ToString()); // } //} //double amsc = 0; //double pmsc = 0; //string mtkssj = string.Empty; //string mtpbjssj = string.Empty; //string sssxxsj = string.Empty; ///// ///// 智能排班(修改开始时间) ///// //private void SmartScheduling() //{ // //查询其他参数表 // var qtcs = (from tbqtcs in myModel.Bus_SJCSB // select new // { // tbqtcs // }).Single(); // //获取每天排班时间长 // int mtsssc = Convert.ToInt32(qtcs.tbqtcs.MTPBSC.Replace("小时", "")); // //获取锁定时间 // DateTime sdsj = DateTime.Now.AddDays(Convert.ToDouble(qtcs.tbqtcs.ZHXGSJ.Replace("天内", ""))).Date.AddSeconds(-1); // var qjdb = (from tbqjd in myModel.SYS_SSQKLXB select new { tbqjd }).ToList(); // //获取每天排班开始时间 // mtkssj = qtcs.tbqtcs.PBKSSJ; // //获取每天排班时长 // double mtpbsc = Convert.ToDouble(qtcs.tbqtcs.MTPBSC.Replace("小时", "")); // //获取手术室休息时间 // sssxxsj = qtcs.tbqtcs.STRXXSJ; // //获取手术室休息时长 // double sssxxsc = Convert.ToDouble(qtcs.tbqtcs.XXSC); // string pmkssj = string.Empty; // bool sfxx = sssxxsj == "不休息"; // //判断手术室是否有休息时间 // if (!sfxx) // { // //8、如果手术室需要休息获取休息前后两端时间的时长 // DateTime kspbjs = Convert.ToDateTime(DateTime.Now.Date.ToString("yyyy-MM-dd") + " " + mtkssj); // DateTime ksxxsj = Convert.ToDateTime(DateTime.Now.Date.ToString("yyyy-MM-dd") + " " + sssxxsj); // DateTime xwkssj = ksxxsj.AddHours(sssxxsc); // pmkssj = xwkssj.ToString("HH:mm:ss"); // TimeSpan ts = ksxxsj - kspbjs; // amsc = ts.TotalHours; // pmsc = mtpbsc - amsc; // } // //每天排班结束时间 // mtpbjssj = Convert.ToDateTime(DateTime.Now.Date.ToString("yyyy-MM-dd") + " " + mtkssj).AddHours(mtpbsc + sssxxsc).ToString("HH:mm:ss"); // DateTime dt = DateTime.Now.Date; // //1、查询出开始时间为空(未进行排班)和开始时间大于锁定时间的手术排班 // List listpbjl = (from tbpbb in myModel.Bus_SSPBB // where tbpbb.KSSJ == null || tbpbb.KSSJ > sdsj // select new Cus_SJKPBB // { // ID = tbpbb.ID, // HZXM = tbpbb.HZXM, // KSID = tbpbb.KSID, // KSSJ = tbpbb.KSSJ, // PBZT = tbpbb.PBZT, // QZ = tbpbb.QZ, // SQR = tbpbb.SQR, // SQSJ = tbpbb.SQSJ, // KSRQ = tbpbb.KSRQ, // SSLX = tbpbb.SSLX, // SSMC = tbpbb.SSMC, // SSQJD = tbpbb.SSQJD, // SSSC = tbpbb.SSSC, // SSSID = tbpbb.SSSID, // SSSQJSC = tbpbb.SSSQJSC, // SSZSC = tbpbb.SSZSC, // XGR = tbpbb.XGR, // XGSJ = tbpbb.XGSJ, // YSID = tbpbb.YSID, // ZLKH = tbpbb.ZLKH, // ZYH = tbpbb.ZYH // }).ToList(); // //2、将排班按照手术室分组获取手术室列表 // var listsss = listpbjl.GroupBy(a => a.SSSID).ToList(); // try // { // //3、使用for循环为每个手术室进行排班 // for (int j = 0; j < listsss.Count; j++) // { // int sssid = Convert.ToInt32(listsss[j].Key); // //4、获取每个手术室的排班并按权重进行排序 // List listssspb = listpbjl.Where(a => a.PBZT == 1 && a.SSSID == sssid).ToList(); // //5、获取排班开始时间 // DateTime pbkssj = Convert.ToDateTime(DateTime.Now.AddDays(1).Date.ToString("yyyy-MM-dd") + " " + mtkssj); // double pbsc = mtpbsc; // double am = amsc; // double pm = pmsc; // List ypb = new List(); // List listpb = new List(); // //手术室需要休息 // if (!sfxx) // { // //执行排班方法 // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // //myModel.SaveChanges(); // //MessageBox.Show("排班成功"); // } // catch (Exception ex) // { // MessageBox.Show(ex.ToString()); // } //} //#region 备份SmartScheduling方法 ////private void SmartScheduling() ////{ //// //1、查询其他参数表 //// var qtcs = (from tbqtcs in myModel.Bus_SJCSB //// select new //// { //// tbqtcs //// }).Single(); //// //2、获取每天排班时间长 //// int mtsssc = Convert.ToInt32(qtcs.tbqtcs.MTPBSC.Replace("小时", "")); //// //3、获取锁定时间 //// DateTime sdsj = DateTime.Now.AddDays(Convert.ToDouble(qtcs.tbqtcs.ZHXGSJ.Replace("天内", ""))).Date.AddSeconds(-1); //// var qjdb = (from tbqjd in myModel.SYS_SSQKLXB select new { tbqjd }).ToList(); //// //4、获取每天排班开始时间 //// string mtkssj = qtcs.tbqtcs.PBKSSJ; //// //4、获取每天排班时长 //// double mtpbsc = Convert.ToDouble(qtcs.tbqtcs.MTPBSC.Replace("小时", "")); //// //5、获取手术室休息时间 //// string sssxxsj = qtcs.tbqtcs.STRXXSJ; //// //6、获取手术室休息时长 //// double sssxxsc = Convert.ToDouble(qtcs.tbqtcs.XXSC); //// double amsc = 0; //// double pmsc = 0; //// string pmkssj = string.Empty; //// bool sfxx = sssxxsj == "不休息"; //// //判断手术室是否有休息时间 //// if (!sfxx) //// { //// //如果手术室需要休息获取休息前后两端时间的时长 //// DateTime kspbjs = Convert.ToDateTime(DateTime.Now.Date + "" + mtkssj); //// DateTime ksxxsj = Convert.ToDateTime(DateTime.Now.Date + "" + sssxxsj); //// DateTime xwkssj = ksxxsj.AddHours(sssxxsc); //// pmkssj = xwkssj.ToString("HH:mm:ss"); //// TimeSpan ts = ksxxsj - kspbjs; //// amsc = ts.TotalHours; //// pmsc = mtpbsc - amsc; //// } //// //每天排班结束时间 //// string mtpbjssj = Convert.ToDateTime(DateTime.Now.Date + mtkssj).AddHours(mtpbsc + sssxxsc).ToString("HH:mm:ss"); //// DateTime dt = DateTime.Now.Date; //// //7、查询出开始时间为空(未进行排班)和开始时间大于锁定时间的手术排班 //// var listpbjl = (from tbpbb in myModel.Bus_SSPBB //// where tbpbb.KSSJ == null || tbpbb.KSSJ > sdsj //// select new //// { //// tbpbb //// }).ToList(); //// //8、将排班按照手术室分组获取手术室列表 //// var listsss = listpbjl.GroupBy(a => a.tbpbb.SSSID).ToList(); //// try //// { //// //9、使用for循环为每个手术室进行排班 //// for (int j = 0; j < listsss.Count; j++) //// { //// int sssid = Convert.ToInt32(listsss[j].Key); //// //10、获取每个手术室的排班并按权重进行排序 //// //var listssspb = listpbjl.Where(a => a.tbpbb.PBZT == 1 && a.tbpbb.SSSID == sssid).OrderByDescending(a => a.tbpbb.QZ).ToList(); //// var listssspb = listpbjl.Where(a => a.tbpbb.PBZT == 1 && a.tbpbb.SSSID == sssid).ToList(); //// //11、获取排班开始时间 //// DateTime pbkssj = Convert.ToDateTime(DateTime.Now.AddDays(1).Date + "" + mtkssj); //// double pbsc = mtpbsc; //// double am = amsc; //// double pm = pmsc; //// //12、循环当前手术室的排班修改开始时间 //// for (int i = 0; i < listssspb.Count(); i++) //// { //// var ypb = listssspb; //// ypb.Clear(); //// Bus_SSPBB pbb = new Bus_SSPBB(); //// var listpb = listssspb; //// listpb.Clear(); //// //手术室需要休息 //// if (!sfxx) //// { //// //判断开始时间是否大于休息时间 //// if (pbkssj < Convert.ToDateTime(pbkssj.Date + " " + sssxxsj)) //// { //// //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 //// listpb = listssspb.Except(ypb).Where(a => a.tbpbb.SSZSC <= Convert.ToDecimal(am)).OrderByDescending(a => a.tbpbb.QZ).ToList(); //// //如果有列表有数据直接排班 //// if (listpb.Count > 0) //// { //// pbb = listpb[0].tbpbb; //// pbb.KSSJ = pbkssj; //// pbkssj = pbkssj.AddHours((double)pbb.SSZSC); //// am = am - (double)pbb.SSZSC; //// ypb.Add(listssspb.Where(a => a.tbpbb.ID == pbb.ID).Single()); //// } //// else //// { //// //排班时间改为休息之后的时间 //// pbkssj = Convert.ToDateTime(pbkssj.Date + " " + pmkssj); //// //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 //// listpb = listssspb.Where(a => a.tbpbb.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.tbpbb.QZ).ToList(); //// //如果列表有数据直接排班 //// if (listpb.Count > 0) //// { //// pbb = listpb[0].tbpbb; //// pbb.KSSJ = pbkssj; //// pbkssj = pbkssj.AddHours((double)pbb.SSZSC); //// pm = pm - (double)pbb.SSZSC; //// ypb.Add(listssspb.Where(a => a.tbpbb.ID == pbb.ID).Single()); //// } //// //如果上午下午都没有数据证明该手术室没有手术不需要排班 //// //或者有的手术总时长比上午时长和下午时长都大不能自动排班 //// //继续对其他手术室进行排班 //// } //// } //// else //// { //// //排班时间改为休息之后的时间 //// pbkssj = Convert.ToDateTime(pbkssj.Date + " " + pmkssj); //// //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 //// listpb = listssspb.Where(a => a.tbpbb.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.tbpbb.QZ).ToList(); //// //如果列表有数据直接排班 //// if (listpb.Count > 0) //// { //// pbb = listpb[0].tbpbb; //// pbb.KSSJ = pbkssj; //// pbkssj = pbkssj.AddHours((double)pbb.SSZSC); //// pm = pm - (double)pbb.SSZSC; //// ypb.Add(listssspb.Where(a => a.tbpbb.ID == pbb.ID).Single()); //// } //// //如果上午下午都没有数据证明该手术室没有手术不需要排班 //// //或者有的手术总时长比上午时长和下午时长都大不能自动排班 //// //继续对其他手术室进行排班 //// } //// } //// } //// } //// // myModel.SaveChanges(); //// //MessageBox.Show("排班成功"); //// } //// catch (Exception ex) //// { //// MessageBox.Show(ex.ToString()); //// } ////} //#endregion //private void DiGuiPaiBan(DateTime pbkssj, string sssxxsj, List listpb, List listssspb, double am, double pm, List ypb, string pmkssj) //{ // DateTime rq = pbkssj.Date; // //实例化排班列表 // listpb = new List(); // Bus_SSPBB pbb = new Bus_SSPBB(); // DateTime xxsj = Convert.ToDateTime(pbkssj.Date.ToString("yyyy-MM-dd") + " " + sssxxsj); // //1、判断开始时间是否大于休息时间 // if (pbkssj < xxsj) // { // if (pbkssj.ToString("HH:mm:ss") == mtkssj) // { // var sdpbb = (from tbsdpbb in myModel.Bus_SDPBB // where tbsdpbb.SSRQ == rq && tbsdpbb.SSJSSJ <= xxsj // select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); // if (sdpbb.Count > 0) // { // for (int i = 0; i < sdpbb.Count; i++) // { // DateTime ikssj = sdpbb[i].tbsdpbb.SSSJ; // DateTime ijssj = sdpbb[i].tbsdpbb.SSJSSJ; // decimal isszsc = sdpbb[i].tbsdpbb.SSZSC; // if (i == 0) // { // TimeSpan amhoursSpan = new TimeSpan(ikssj.Ticks - pbkssj.Ticks); // am = amhoursSpan.Hours; // } // else // { // TimeSpan amhoursSpan = new TimeSpan(sdpbb[i + 1].tbsdpbb.SSSJ.Ticks - sdpbb[i].tbsdpbb.SSJSSJ.Ticks); // am = amhoursSpan.Hours; // } // //排班时间为上午 // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(am)).OrderByDescending(a => a.QZ).ToList(); // //如果有列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // //修改手术开始时间 // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // //排班时间+手术总时长 // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // //上午剩余时间-手术总时长 // am = am - (double)pbb.SSZSC; // //已排班列表添加当前手术 // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // } // if (i == sdpbb.Count - 1) // { // TimeSpan amhoursSpan = new TimeSpan(xxsj.Ticks - ijssj.Ticks); // am = amhoursSpan.Hours; // //排班时间为上午 // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(am)).OrderByDescending(a => a.QZ).ToList(); // //如果有列表有数据直接排班 // if (listpb.Count > 0) // { // pbkssj = ijssj; // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // //修改手术开始时间 // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // //排班时间+手术总时长 // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // //上午剩余时间-手术总时长 // am = am - (double)pbb.SSZSC; // //已排班列表添加当前手术 // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // //判断已排班数量是否等于该手术室排班数量 // if (ypb.Count != listssspb.Count) // { // //判断排班时间是否小于六天后 // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // } // //else // //{ // // //判断下午时长是否等于每天下午时长 // // if (pm == pmsc) // // { // // //排班时间改为休息之后的时间 // // pbkssj = Convert.ToDateTime(pbkssj.Date.ToString("yyyy-MM-dd") + " " + pmkssj); // // } // // else // // { // // //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 // // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); // // //如果列表有数据直接排班 // // if (listpb.Count > 0) // // { // // pbb.HZXM = listpb[0].HZXM; // // pbb.ID = listpb[0].ID; // // pbb.KSID = listpb[0].KSID; // // pbb.KSRQ = listpb[0].KSRQ; // // pbb.PBZT = listpb[0].PBZT; // // pbb.QZ = listpb[0].QZ; // // pbb.SQR = listpb[0].SQR; // // pbb.SQSJ = listpb[0].SQSJ; // // pbb.SSLX = listpb[0].SSLX; // // pbb.SSMC = listpb[0].SSMC; // // pbb.SSQJD = listpb[0].SSQJD; // // pbb.SSSC = listpb[0].SSSC; // // pbb.SSSID = listpb[0].SSSID; // // pbb.SSSQJSC = listpb[0].SSSQJSC; // // pbb.SSZSC = listpb[0].SSZSC; // // pbb.XGR = listpb[0].XGR; // // pbb.XGSJ = listpb[0].XGSJ; // // pbb.YSID = listpb[0].YSID; // // pbb.ZLKH = listpb[0].ZLKH; // // pbb.ZYH = listpb[0].ZYH; // // pbb.KSSJ = pbkssj; // // //修改手术开始时间 // // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // // myModel.SaveChanges(); // // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // // //排班时间+手术总时长 // // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // // //下午剩余时间-手术总时长 // // pm = pm - (double)pbb.SSZSC; // // //已排班列表添加当前手术 // // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // // //判断排班时间是否大于六天后 // // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // // { // // //重新执行排班方法 // // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // // } // // } // // else // // { // // //判断下午剩余时长是否等于每天下午时长 // // if (pm != pmsc) // // { // // //排班时间改为第二天的排班开始时间 // // pbkssj = Convert.ToDateTime(pbkssj.AddDays(1).Date.ToString("yyyy-MM-dd") + " " + mtkssj); // // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // // { // // am = amsc; // // pm = pmsc; // // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // // } // // } // // //如果上午下午都没有数据证明该手术室没有手术不需要排班 // // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 // // //继续对其他手术室进行排班 // // } // // } // //} // } // } // } // else // { // //排班时间为上午 // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(am)).OrderByDescending(a => a.QZ).ToList(); // //如果有列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // //修改手术开始时间 // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // //排班时间+手术总时长 // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // //上午剩余时间-手术总时长 // am = am - (double)pbb.SSZSC; // //已排班列表添加当前手术 // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // //判断已排班数量是否等于该手术室排班数量 // if (ypb.Count != listssspb.Count) // { // //判断排班时间是否小于六天后 // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // } // else // { // //判断下午时长是否等于每天下午时长 // if (pm == pmsc) // { // //排班时间改为休息之后的时间 // pbkssj = Convert.ToDateTime(pbkssj.Date.ToString("yyyy-MM-dd") + " " + pmkssj); // } // //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); // //如果列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // //修改手术开始时间 // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // //排班时间+手术总时长 // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // //下午剩余时间-手术总时长 // pm = pm - (double)pbb.SSZSC; // //已排班列表添加当前手术 // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // //判断排班时间是否大于六天后 // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // //重新执行排班方法 // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // else // { // //判断下午剩余时长是否等于每天下午时长 // if (pm != pmsc) // { // //排班时间改为第二天的排班开始时间 // pbkssj = Convert.ToDateTime(pbkssj.AddDays(1).Date.ToString("yyyy-MM-dd") + " " + mtkssj); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // am = amsc; // pm = pmsc; // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // //如果上午下午都没有数据证明该手术室没有手术不需要排班 // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 // //继续对其他手术室进行排班 // } // } // } // } // else // { // //排班时间为上午 // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(am)).OrderByDescending(a => a.QZ).ToList(); // //如果有列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // //修改手术开始时间 // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // //排班时间+手术总时长 // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // //上午剩余时间-手术总时长 // am = am - (double)pbb.SSZSC; // //已排班列表添加当前手术 // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // //判断已排班数量是否等于该手术室排班数量 // if (ypb.Count != listssspb.Count) // { // //判断排班时间是否小于六天后 // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // } // else // { // //判断下午时长是否等于每天下午时长 // if (pm == pmsc) // { // DateTime xwkssj = Convert.ToDateTime(pbkssj.Date.ToString("yyyy-MM-dd") + " " + pmkssj); // //排班时间改为休息之后的时间 // pbkssj = xwkssj; // var sdpbb = (from tbsdpbb in myModel.Bus_SDPBB // where tbsdpbb.SSRQ == rq && tbsdpbb.SSSJ >= xwkssj // select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); // if (sdpbb.Count > 0) // { // for (int i = 0; i < sdpbb.Count; i++) // { // DateTime ikssj = sdpbb[i].tbsdpbb.SSSJ; // DateTime ijssj = sdpbb[i].tbsdpbb.SSJSSJ; // decimal isszsc = sdpbb[i].tbsdpbb.SSZSC; // if (i == 0) // { // TimeSpan amhoursSpan = new TimeSpan(ikssj.Ticks - pbkssj.Ticks); // pm = amhoursSpan.Hours; // } // else // { // TimeSpan amhoursSpan = new TimeSpan(sdpbb[i + 1].tbsdpbb.SSSJ.Ticks - sdpbb[i].tbsdpbb.SSJSSJ.Ticks); // pm = amhoursSpan.Hours; // } // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); // //如果有列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // //修改手术开始时间 // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // //排班时间+手术总时长 // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // //上午剩余时间-手术总时长 // pm = pm - (double)pbb.SSZSC; // //已排班列表添加当前手术 // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // } // if (i == sdpbb.Count - 1) // { // DateTime pbjssj = Convert.ToDateTime(pbkssj.ToString("yyyy-MM-dd") + " " + mtpbjssj); // TimeSpan amhoursSpan = new TimeSpan(pbjssj.Ticks - ijssj.Ticks); // pm = amhoursSpan.Hours; // //排班时间为上午 // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); // //如果有列表有数据直接排班 // if (listpb.Count > 0) // { // pbkssj = ijssj; // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // //修改手术开始时间 // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // //排班时间+手术总时长 // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // //上午剩余时间-手术总时长 // am = am - (double)pbb.SSZSC; // //已排班列表添加当前手术 // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // else // { // //判断下午剩余时长是否等于每天下午时长 // if (pm != pmsc) // { // //排班时间改为第二天的排班开始时间 // pbkssj = Convert.ToDateTime(pbkssj.AddDays(1).Date.ToString("yyyy-MM-dd") + " " + mtkssj); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // am = amsc; // pm = pmsc; // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // //如果上午下午都没有数据证明该手术室没有手术不需要排班 // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 // //继续对其他手术室进行排班 // } // } // } // } // else // { // //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); // //如果列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // pm = pm - (double)pbb.SSZSC; // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // else // { // if (pm != pmsc) // { // pbkssj = Convert.ToDateTime(pbkssj.AddDays(1).Date.ToString("yyyy-MM-dd") + " " + mtkssj); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // am = amsc; // pm = pmsc; // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // //如果上午下午都没有数据证明该手术室没有手术不需要排班 // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 // //继续对其他手术室进行排班 // } // } // } // else // { // //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); // //如果列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // //修改手术开始时间 // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // //排班时间+手术总时长 // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // //下午剩余时间-手术总时长 // pm = pm - (double)pbb.SSZSC; // //已排班列表添加当前手术 // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // //判断排班时间是否大于六天后 // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // //重新执行排班方法 // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // else // { // //判断下午剩余时长是否等于每天下午时长 // if (pm != pmsc) // { // //排班时间改为第二天的排班开始时间 // pbkssj = Convert.ToDateTime(pbkssj.AddDays(1).Date.ToString("yyyy-MM-dd") + " " + mtkssj); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // am = amsc; // pm = pmsc; // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // //如果上午下午都没有数据证明该手术室没有手术不需要排班 // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 // //继续对其他手术室进行排班 // } // } // } // } // } // else // { // //判断下午剩余时长是否等于每天下午时长 // if (pm == pmsc) // { // DateTime xwkssj = Convert.ToDateTime(pbkssj.Date.ToString("yyyy-MM-dd") + " " + pmkssj); // //排班时间改为休息之后的时间 // pbkssj = xwkssj; // var sdpbb = (from tbsdpbb in myModel.Bus_SDPBB // where tbsdpbb.SSRQ == rq && tbsdpbb.SSSJ >= xwkssj // select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); // if (sdpbb.Count > 0) // { // for (int i = 0; i < sdpbb.Count; i++) // { // DateTime ikssj = sdpbb[i].tbsdpbb.SSSJ; // DateTime ijssj = sdpbb[i].tbsdpbb.SSJSSJ; // decimal isszsc = sdpbb[i].tbsdpbb.SSZSC; // if (i == 0) // { // TimeSpan amhoursSpan = new TimeSpan(ikssj.Ticks - pbkssj.Ticks); // pm = amhoursSpan.Hours; // } // else // { // TimeSpan amhoursSpan = new TimeSpan(sdpbb[i + 1].tbsdpbb.SSSJ.Ticks - sdpbb[i].tbsdpbb.SSJSSJ.Ticks); // pm = amhoursSpan.Hours; // } // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); // //如果有列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // //修改手术开始时间 // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // //排班时间+手术总时长 // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // //上午剩余时间-手术总时长 // pm = pm - (double)pbb.SSZSC; // //已排班列表添加当前手术 // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // if (i == sdpbb.Count - 1) // { // DateTime pbjssj = Convert.ToDateTime(pbkssj.ToString("yyyy-MM-dd") + " " + mtpbjssj); // TimeSpan amhoursSpan = new TimeSpan(pbjssj.Ticks - ijssj.Ticks); // pm = amhoursSpan.Hours; // //排班时间为上午 // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); // //如果有列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = ijssj; // pbb.KSRQ = pbkssj.Date; // //修改手术开始时间 // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // //排班时间+手术总时长 // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // //上午剩余时间-手术总时长 // am = am - (double)pbb.SSZSC; // //已排班列表添加当前手术 // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // else // { // //判断下午剩余时长是否等于每天下午时长 // if (pm != pmsc) // { // //排班时间改为第二天的排班开始时间 // pbkssj = Convert.ToDateTime(pbkssj.AddDays(1).Date.ToString("yyyy-MM-dd") + " " + mtkssj); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // am = amsc; // pm = pmsc; // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // //如果上午下午都没有数据证明该手术室没有手术不需要排班 // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 // //继续对其他手术室进行排班 // } // } // } // } // else // { // //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); // //如果列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // pm = pm - (double)pbb.SSZSC; // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // else // { // if (pm != pmsc) // { // pbkssj = Convert.ToDateTime(pbkssj.AddDays(1).Date.ToString("yyyy-MM-dd") + " " + mtkssj); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // am = amsc; // pm = pmsc; // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // //如果上午下午都没有数据证明该手术室没有手术不需要排班 // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 // //继续对其他手术室进行排班 // } // } // } // else // { // //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 // listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); // //如果列表有数据直接排班 // if (listpb.Count > 0) // { // pbb.HZXM = listpb[0].HZXM; // pbb.ID = listpb[0].ID; // pbb.KSID = listpb[0].KSID; // //pbb.KSRQ = listpb[0].KSRQ; // pbb.PBZT = listpb[0].PBZT; // pbb.QZ = listpb[0].QZ; // pbb.SQR = listpb[0].SQR; // pbb.SQSJ = listpb[0].SQSJ; // pbb.SSLX = listpb[0].SSLX; // pbb.SSMC = listpb[0].SSMC; // pbb.SSQJD = listpb[0].SSQJD; // pbb.SSSC = listpb[0].SSSC; // pbb.SSSID = listpb[0].SSSID; // pbb.SSSQJSC = listpb[0].SSSQJSC; // pbb.SSZSC = listpb[0].SSZSC; // pbb.XGR = listpb[0].XGR; // pbb.XGSJ = listpb[0].XGSJ; // pbb.YSID = listpb[0].YSID; // pbb.ZLKH = listpb[0].ZLKH; // pbb.ZYH = listpb[0].ZYH; // pbb.KSSJ = pbkssj; // pbb.KSRQ = pbkssj.Date; // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; // myModel.SaveChanges(); // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; // pbkssj = pbkssj.AddHours((double)pbb.SSZSC); // pm = pm - (double)pbb.SSZSC; // ypb.Add(listssspb.Where(a => a.ID == pbb.ID).Single()); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // else // { // if (pm != pmsc) // { // pbkssj = Convert.ToDateTime(pbkssj.AddDays(1).Date.ToString("yyyy-MM-dd") + " " + mtkssj); // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) // { // am = amsc; // pm = pmsc; // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj); // } // } // //如果上午下午都没有数据证明该手术室没有手术不需要排班 // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 // //继续对其他手术室进行排班 // } // } // } //} //#endregion } }