diff --git a/SchedulingSystemClient.sln b/SchedulingSystemClient.sln new file mode 100644 index 0000000..e1ebfb2 --- /dev/null +++ b/SchedulingSystemClient.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.33927.289 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SchedulingSystemClient", "SchedulingSystemClient\SchedulingSystemClient.csproj", "{C41FC6D2-F2CE-42C2-9C9D-DAA6AEA84EA6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C41FC6D2-F2CE-42C2-9C9D-DAA6AEA84EA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C41FC6D2-F2CE-42C2-9C9D-DAA6AEA84EA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C41FC6D2-F2CE-42C2-9C9D-DAA6AEA84EA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C41FC6D2-F2CE-42C2-9C9D-DAA6AEA84EA6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {669C2892-4956-4C2D-8A61-7AB02A7E71E9} + EndGlobalSection +EndGlobal diff --git a/SchedulingSystemClient/App.Config b/SchedulingSystemClient/App.Config new file mode 100644 index 0000000..5efef65 --- /dev/null +++ b/SchedulingSystemClient/App.Config @@ -0,0 +1,19 @@ + + + + +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/SchedulingSystemClient/App.xaml b/SchedulingSystemClient/App.xaml new file mode 100644 index 0000000..b5840f5 --- /dev/null +++ b/SchedulingSystemClient/App.xaml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/App.xaml.cs b/SchedulingSystemClient/App.xaml.cs new file mode 100644 index 0000000..ab42c62 --- /dev/null +++ b/SchedulingSystemClient/App.xaml.cs @@ -0,0 +1,11 @@ +using System.Windows; + +namespace SchedulingSystemClient +{ + /// + /// App.xaml 的交互逻辑 + /// + public partial class App : Application + { + } +} diff --git a/SchedulingSystemClient/Bus_HSPBB.cs b/SchedulingSystemClient/Bus_HSPBB.cs new file mode 100644 index 0000000..d110c66 --- /dev/null +++ b/SchedulingSystemClient/Bus_HSPBB.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class Bus_HSPBB + { + public int ID { get; set; } + public Nullable PBID { get; set; } + public Nullable HSID { get; set; } + public Nullable SSKSSJ { get; set; } + public Nullable SSJSSJ { get; set; } + public Nullable SSRQ { get; set; } + public Nullable SSSC { get; set; } + } +} diff --git a/SchedulingSystemClient/Bus_MZYSPBB.cs b/SchedulingSystemClient/Bus_MZYSPBB.cs new file mode 100644 index 0000000..cc76d2e --- /dev/null +++ b/SchedulingSystemClient/Bus_MZYSPBB.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class Bus_MZYSPBB + { + public int ID { get; set; } + public Nullable MZYSID { get; set; } + public Nullable SSRQ { get; set; } + public Nullable SSKSSJ { get; set; } + public Nullable SSJSSJ { get; set; } + public Nullable SSSC { get; set; } + public Nullable PBID { get; set; } + } +} diff --git a/SchedulingSystemClient/Bus_PBRZB.cs b/SchedulingSystemClient/Bus_PBRZB.cs new file mode 100644 index 0000000..ac7cdc1 --- /dev/null +++ b/SchedulingSystemClient/Bus_PBRZB.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class Bus_PBRZB + { + public int ID { get; set; } + public string SQDH { get; set; } + public Nullable CZRYID { get; set; } + public Nullable CZSJ { get; set; } + public Nullable CZLX { get; set; } + } +} diff --git a/SchedulingSystemClient/Bus_RJSSB.cs b/SchedulingSystemClient/Bus_RJSSB.cs new file mode 100644 index 0000000..e983cbb --- /dev/null +++ b/SchedulingSystemClient/Bus_RJSSB.cs @@ -0,0 +1,49 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class Bus_RJSSB + { + public int ID { get; set; } + public string SQDH { get; set; } + public Nullable SSKSSJ { get; set; } + public Nullable SSZSC { get; set; } + public Nullable SSSID { get; set; } + public Nullable ZS1 { get; set; } + public Nullable ZS2 { get; set; } + public Nullable ZS3 { get; set; } + public Nullable MZYS1 { get; set; } + public Nullable MZYS2 { get; set; } + public Nullable MZYS3 { get; set; } + public Nullable XSHS1 { get; set; } + public Nullable XSHS2 { get; set; } + public Nullable XHHS1 { get; set; } + public Nullable XHHS2 { get; set; } + public string BZ { get; set; } + public Nullable PBZT { get; set; } + public string ZYH { get; set; } + public string HZXM { get; set; } + public Nullable KSID { get; set; } + public Nullable SQSJ { get; set; } + public string SQZD { get; set; } + public Nullable ZDYS { get; set; } + public Nullable SFJZ { get; set; } + public string ZLKH { get; set; } + public Nullable QZ { get; set; } + public Nullable SSSC { get; set; } + public Nullable QJSC { get; set; } + public Nullable SSJSSJ { get; set; } + public Nullable SSID { get; set; } + public Nullable SSRQ { get; set; } + } +} diff --git a/SchedulingSystemClient/Bus_SBB.cs b/SchedulingSystemClient/Bus_SBB.cs new file mode 100644 index 0000000..c332f48 --- /dev/null +++ b/SchedulingSystemClient/Bus_SBB.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class Bus_SBB + { + public int ID { get; set; } + public string SBBM { get; set; } + public string SBMC { get; set; } + public Nullable SBLX { get; set; } + public Nullable SSSID { get; set; } + public Nullable SBJG { get; set; } + public Nullable SBDJ { get; set; } + } +} diff --git a/SchedulingSystemClient/Bus_SDPBB.cs b/SchedulingSystemClient/Bus_SDPBB.cs new file mode 100644 index 0000000..d247a3d --- /dev/null +++ b/SchedulingSystemClient/Bus_SDPBB.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class Bus_SDPBB + { + public int ID { get; set; } + public Nullable SSID { get; set; } + public Nullable SSSJ { get; set; } + public Nullable YHID { get; set; } + public Nullable SSZSC { get; set; } + public Nullable PBSJ { get; set; } + public Nullable SSRQ { get; set; } + public Nullable SSJSSJ { get; set; } + } +} diff --git a/SchedulingSystemClient/Bus_SJCSB.cs b/SchedulingSystemClient/Bus_SJCSB.cs new file mode 100644 index 0000000..567c2a5 --- /dev/null +++ b/SchedulingSystemClient/Bus_SJCSB.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class Bus_SJCSB + { + public int ID { get; set; } + public Nullable PBKSSJID { get; set; } + public string PBKSSJ { get; set; } + public Nullable MTPBSCID { get; set; } + public string MTPBSC { get; set; } + public Nullable SSMXSQZ { get; set; } + public Nullable ZHXGSJID { get; set; } + public string ZHXGSJ { get; set; } + public Nullable XGSJ { get; set; } + public Nullable XGR { get; set; } + public Nullable XXSJ { get; set; } + public Nullable XXSC { get; set; } + public string STRXXSJ { get; set; } + public string STRXXSC { get; set; } + } +} diff --git a/SchedulingSystemClient/Bus_SSPBB.cs b/SchedulingSystemClient/Bus_SSPBB.cs new file mode 100644 index 0000000..88505e6 --- /dev/null +++ b/SchedulingSystemClient/Bus_SSPBB.cs @@ -0,0 +1,49 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class Bus_SSPBB + { + public int ID { get; set; } + public string SQDH { get; set; } + public Nullable SSKSSJ { get; set; } + public Nullable SSZSC { get; set; } + public Nullable SSSID { get; set; } + public Nullable ZS1 { get; set; } + public Nullable ZS2 { get; set; } + public Nullable ZS3 { get; set; } + public Nullable MZYS1 { get; set; } + public Nullable MZYS2 { get; set; } + public Nullable MZYS3 { get; set; } + public Nullable XSHS1 { get; set; } + public Nullable XSHS2 { get; set; } + public Nullable XHHS1 { get; set; } + public Nullable XHHS2 { get; set; } + public string BZ { get; set; } + public Nullable PBZT { get; set; } + public string ZYH { get; set; } + public string HZXM { get; set; } + public Nullable KSID { get; set; } + public Nullable SQSJ { get; set; } + public string SQZD { get; set; } + public Nullable ZDYS { get; set; } + public Nullable SFJZ { get; set; } + public string ZLKH { get; set; } + public Nullable QZ { get; set; } + public Nullable SSSC { get; set; } + public Nullable QJSC { get; set; } + public Nullable SSJSSJ { get; set; } + public Nullable SSID { get; set; } + public Nullable SSRQ { get; set; } + } +} diff --git a/SchedulingSystemClient/Bus_SSSQB.cs b/SchedulingSystemClient/Bus_SSSQB.cs new file mode 100644 index 0000000..d7988e8 --- /dev/null +++ b/SchedulingSystemClient/Bus_SSSQB.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class Bus_SSSQB + { + public int ID { get; set; } + public string SQDH { get; set; } + public string ZYH { get; set; } + public string HZXM { get; set; } + public Nullable KSID { get; set; } + public Nullable SQSJ { get; set; } + public string SQZD { get; set; } + public Nullable SSID { get; set; } + public Nullable ZDYSID { get; set; } + public Nullable SFJZ { get; set; } + public string ZLKH { get; set; } + public Nullable ZT { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/ComboBoxBinding.cs b/SchedulingSystemClient/EntityClass/ComboBoxBinding.cs new file mode 100644 index 0000000..fef8380 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/ComboBoxBinding.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class ComboBoxBinding + { + public int ID { get; set; } + public string Name { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_BDKS.cs b/SchedulingSystemClient/EntityClass/Cus_BDKS.cs new file mode 100644 index 0000000..30a8d72 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_BDKS.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_BDKS + { + public int ID { get; set; } + public string KSMC { get; set; } + public string KSBM { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_BDKSSSS.cs b/SchedulingSystemClient/EntityClass/Cus_BDKSSSS.cs new file mode 100644 index 0000000..83e4818 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_BDKSSSS.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_BDKSSSS + { + public int ID { get; set; } + public int? SSSID { get; set; } + public string SSSMC { get; set; } + public string SSSBM { get; set; } + public int? KSID { get; set; } + public string KSMC { get; set; } + public string KSBM { get; set; } + public string strSFKY { get; set; } + public bool? SFKY { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_BDSSS.cs b/SchedulingSystemClient/EntityClass/Cus_BDSSS.cs new file mode 100644 index 0000000..5ae1132 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_BDSSS.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_BDSSS + { + public int ID { get; set; } + public string SSSMC { get; set; } + public string SSSBM { get; set; } + public string strSFKY { get; set; } + public bool SFKY { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_BrvipQz.cs b/SchedulingSystemClient/EntityClass/Cus_BrvipQz.cs new file mode 100644 index 0000000..555767c --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_BrvipQz.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_BrvipQz + { + public int ID { get; set; } + public string BRXM { get; set; } + public string ZLKH { get; set; } + public int? QZ { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_CDB.cs b/SchedulingSystemClient/EntityClass/Cus_CDB.cs new file mode 100644 index 0000000..41f9125 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_CDB.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_CDB + { + public int ID { get; set; } + public string Name { get; set; } + public bool? IsChecked { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_HS.cs b/SchedulingSystemClient/EntityClass/Cus_HS.cs new file mode 100644 index 0000000..7447d86 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_HS.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_HS + { + public int ID { get; set; } + public string HSXM { get; set; } + public string HSGH { get; set; } + public int? HSZC { get; set; } + public string strHSZC { get; set; } + public int? SSSID { get; set; } + public string strSSS { get; set; } + public bool? SGQY { get; set; } + public string strSFQY { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_HZVIPLB.cs b/SchedulingSystemClient/EntityClass/Cus_HZVIPLB.cs new file mode 100644 index 0000000..c42a69d --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_HZVIPLB.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_HZVIPLB + { + public int ID { get; set; } + /// + /// 患者姓名 + /// + public string HZXM { get; set; } + /// + /// 诊疗卡号 + /// + public string ZLKH { get; set; } + /// + /// 住院号 + /// + public string ZYH { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_KYKS.cs b/SchedulingSystemClient/EntityClass/Cus_KYKS.cs new file mode 100644 index 0000000..1beab4e --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_KYKS.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_KYKS + { + public int ID { get; set; } + public string KSMC { get; set; } + public string KSBM { get; set; } + public bool? SFKY { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_KsLb.cs b/SchedulingSystemClient/EntityClass/Cus_KsLb.cs new file mode 100644 index 0000000..44a64ab --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_KsLb.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_KsLb + { + public int ID { get; set; } + /// + /// 科室名称 + /// + public string KSMC { get; set; } + /// + /// 科室编码 + /// + public string KSBM { get; set; } + /// + /// 是否启用 + /// + public string SFQY { get; set; } + /// + /// 是否启用 + /// + public bool? bitSFQY { get; set; } + + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_MZYS.cs b/SchedulingSystemClient/EntityClass/Cus_MZYS.cs new file mode 100644 index 0000000..590f03d --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_MZYS.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_MZYS + { + public int ID { get; set; } + public string YSXM { get; set; } + public string YSGH { get; set; } + public int? YSZC { get; set; } + public string strYSZC { get; set; } + public int? SSSID { get; set; } + public string strSSS{ get; set; } + public bool? SFQY { get; set; } + public string strSFQY { get; set; } + public int? SCSS1 { get; set; } + public string strSCSS1 { get; set; } + public int? SCSS2 { get; set; } + public string strSCSS2 { get; set; } + public int? SCSS3 { get; set; } + public string strSCSS3 { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_MZYSSC.cs b/SchedulingSystemClient/EntityClass/Cus_MZYSSC.cs new file mode 100644 index 0000000..2f8facb --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_MZYSSC.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_MZYSSC + { + public int ID { get; set; } + public int? SSSID { get; set; } + public string SSS { get; set; } + public int? MZYSID { get; set; } + public string MZYS { get; set; } + public int SSTS { get; set; } + public decimal? SSSC { get; set; } + public decimal SSPJSC { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_PBB.cs b/SchedulingSystemClient/EntityClass/Cus_PBB.cs new file mode 100644 index 0000000..f6877b3 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_PBB.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_PBB + { + public int ID { get; set; } + /// + /// 手术室ID + /// + public int SSSID { get; set; } + /// + /// 手术室名称 + /// + public string SSSMC { get; set; } + /// + /// 医生ID + /// + public int YSID { get; set; } + /// + /// 医生名称 + /// + public string YSMC { get; set; } + /// + /// 科室ID + /// + public int KSID { get; set; } + /// + /// 科室名称 + /// + public string KSMC { get; set; } + /// + /// 手术类型ID + /// + public int SSLXID { get; set; } + /// + /// 手术类型名称 + /// + public string SSLX { get; set; } + /// + /// 手术名称 + /// + public string SSMC { get; set; } + /// + /// 患者姓名 + /// + public string HZXM { get; set; } + /// + /// 住院号 + /// + public string ZYH { get; set; } + /// + /// 诊疗卡号 + /// + public string ZLKH { get; set; } + /// + /// 开始时间 + /// + public DateTime? KSSJ { get; set; } + /// + /// 开始日期 + /// + public DateTime? KSRQ { get; set; } + /// + /// 开始时间 + /// + public string StrKSSJ { get; set; } + /// + /// 手术时间 + /// + public int? SSSC { get; set; } + /// + /// 排班状态 + /// + public int? PBZT { get; set; } + /// + /// 排班状态 + /// + public string StrPBZT { get; set; } + public decimal? SSZSC { get; set; } + public decimal? SSSQJSC { get; set; } + public int? QZ { get; set; } + public decimal? SSSJ { get; set; } + public decimal? QJSC { get; set; } + public string SSQJD { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_PBRZ.cs b/SchedulingSystemClient/EntityClass/Cus_PBRZ.cs new file mode 100644 index 0000000..75d3522 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_PBRZ.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_PBRZ + { + public int ID { get; set; } + public DateTime? CZSJ { get; set; } + public int? PBID { get; set; } + public int ZCRID { get; set; } + public string CZRGH { get; set; } + public string CZRXM { get; set; } + public int CZLXID { get; set; } + public string CZLX { get; set; } + public int PBZTID { get; set; } + public string PBZT { get; set; } + public string SQDH { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_QXB.cs b/SchedulingSystemClient/EntityClass/Cus_QXB.cs new file mode 100644 index 0000000..02554ae --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_QXB.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_QXB + { + public int ID { get; set; } + public int? JSID { get; set; } + public bool? Is_SY { get; set; } + public bool? Is_PBJL { get; set; } + public bool? Is_PBSQ { get; set; } + public bool? Is_JCXXWH { get; set; } + public bool? Is_GZWH { get; set; } + public bool? Is_XTGL { get; set; } + public bool? Is_SJTJ { get; set; } + public bool? Is_PBRZ { get; set; } + public bool? Is_SDPB { get; set; } + public bool? Is_PBZS { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_Qtcs.cs b/SchedulingSystemClient/EntityClass/Cus_Qtcs.cs new file mode 100644 index 0000000..4cc9564 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_Qtcs.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_Qtcs + { + public int ID { get; set; } + public int? PBKSSJID { get; set; } + public string PBKSSJ { get; set; } + public int? MTPBSCID { get; set; } + public string MTPBSC { get; set; } + public int? SSMXSQZ { get; set; } + public int? ZHXGSJID { get; set; } + public string ZHXGSJ { get; set; } + public DateTime? XGSJ { get; set; } + public int? XGR { get; set; } + + public int? XXSJ { get; set; } + public string strXXSJ { get; set; } + public decimal? XXSC { get; set; } + public string strXXSC { get; set; } + + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_Role.cs b/SchedulingSystemClient/EntityClass/Cus_Role.cs new file mode 100644 index 0000000..74ef31f --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_Role.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_Role + { + public int ID { get; set; } + public string Role { get; set; } + public bool? SFKY { get; set; } + public string strSFKY { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SBB.cs b/SchedulingSystemClient/EntityClass/Cus_SBB.cs new file mode 100644 index 0000000..8902f58 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SBB.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_SBB + { + public int ID { get; set; } + public string SBBM { get; set; } + public string SBMC { get; set; } + public decimal? SBJG { get; set; } + public int? SBLX { get; set; } + public string strSBLX { get; set; } + public int? SBDJ { get; set; } + public string strSBDJ { get; set; } + public int? SSSID { get; set; } + public string SSSMC { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SJKPBB.cs b/SchedulingSystemClient/EntityClass/Cus_SJKPBB.cs new file mode 100644 index 0000000..c82f92e --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SJKPBB.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + /// + /// 数据库排班表 + /// + public class Cus_SJKPBB + { + public int ID { get; set; } + public string SQDH { get; set; } + public DateTime? SSKSSJ { get; set; } + public decimal? SSZSC { get; set; } + public int? SSSID { get; set; } + public int? ZS1 { get; set; } + public int? ZS2 { get; set; } + public int? ZS3 { get; set; } + public int? MZYS1 { get; set; } + public int? MZYS2 { get; set; } + public int? MZYS3 { get; set; } + public int? XSHS1 { get; set; } + public int? XSHS2 { get; set; } + public int? XHHS1 { get; set; } + public int? XHHS2 { get; set; } + public string BZ { get; set; } + public int? PBZT { get; set; } + public string ZYH { get; set; } + public string HZXM { get; set; } + public int? KSID { get; set; } + public DateTime? SQSJ { get; set; } + public string SQZD { get; set; } + public int? ZDYS { get; set; } + public bool? SFJZ { get; set; } + public string ZLKH { get; set; } + public int? QZ { get; set; } + public decimal? SSSC { get; set; } + public decimal? QJSC { get; set; } + public DateTime? SSJSSJ { get; set; } + public int? SSID { get; set; } + public DateTime? SSRQ { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SJTJ.cs b/SchedulingSystemClient/EntityClass/Cus_SJTJ.cs new file mode 100644 index 0000000..d961996 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SJTJ.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_SJTJ + { + public int ID { get; set; } + public DateTime PBRQ { get; set; } + public string strPBRQ { get; set; } + public decimal PJSSSC { get; set; } + public string strPJSSSC { get; set; } + public decimal PJQJSJ { get; set; } + public string strPJQJSJ { get; set; } + public decimal PJSSZSC { get; set; } + public string strPJSSZSC { get; set; } + public int SSTS { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SSJDYL.cs b/SchedulingSystemClient/EntityClass/Cus_SSJDYL.cs new file mode 100644 index 0000000..b78350d --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SSJDYL.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_SSJDYL + { + public int? ID { get; set; } + public int? SSSID { get; set; } + public string SSS { get; set; } + public int SSTS { get; set; } + public int SSZTS { get; set; } + public decimal? SSTSZB { get; set; } + public decimal? SSSC { get; set; } + public decimal? SSZSC { get; set; } + public decimal? SSSCZB { get; set; } + public decimal? SSPJSC { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SSPB.cs b/SchedulingSystemClient/EntityClass/Cus_SSPB.cs new file mode 100644 index 0000000..fce1464 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SSPB.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + + public class Cus_SSPB + { + public int ID { get; set; } + public string SQDH { get; set; } + public DateTime? SSKSSJ { get; set; } + public decimal? SSZSC { get; set; } + public int? SSSID { get; set; } + public string SSSMC { get; set; } + public int? SSID { get; set; } + public string SSMC { get; set; } + public string SSBM { get; set; } + public string HZXM { get; set; } + public int? KSID { get; set; } + public string KSMC { get; set; } + public int? ZDYSID { get; set; } + public string ZDYS { get; set; } + public int? ZS1ID { get; set; } + public string ZS1 { get; set; } + public int? ZS2ID { get; set; } + public string ZS2 { get; set; } + public int? ZS3ID { get; set; } + public string ZS3 { get; set; } + public int? MZYS1ID { get; set; } + public string MZYS1 { get; set; } + public int? MZYS2ID { get; set; } + public string MZYS2 { get; set; } + public int? MZYS3ID { get; set; } + public string MZYS3 { get; set; } + public int? XSHS1ID { get; set; } + public string XSHS1 { get; set; } + public int? XSHS2ID { get; set; } + public string XSHS2 { get; set; } + public int? XHHS1ID { get; set; } + public string XHHS1 { get; set; } + public int? XHHS2ID { get; set; } + public string XHHS2 { get; set; } + public int? PBZTID { get; set; } + public string PBZT { get; set; } + public string BZ { get; set; } + public string QKLX { get; set; } + public string SSDJ { get; set; } + public decimal? QJSC { get; set; } + public int? QZ { get; set; } + public bool? SFJZ { get; set; } + public DateTime? SQSJ { get; set; } + public string SQZD { get; set; } + public DateTime? SSJSSJ { get; set; } + public DateTime? SSRQ { get; set; } + public Decimal? SSSC { get; set; } + public string ZLKH { get; set; } + public string ZYH { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SSSQB.cs b/SchedulingSystemClient/EntityClass/Cus_SSSQB.cs new file mode 100644 index 0000000..f0c6308 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SSSQB.cs @@ -0,0 +1,131 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_SSSQB + { + public int ID { get; set; } + /// + /// 申请单号 + /// + public string SQDH { get; set; } + /// + /// 住院号 + /// + public string ZYH { get; set; } + /// + /// 患者姓名 + /// + public string HZXM { get; set; } + /// + /// 科室ID + /// + public int? KSID { get; set; } + /// + /// 科室编码 + /// + public string KSBM { get; set; } + /// + /// 科室名称 + /// + public string KSMC { get; set; } + /// + /// 申请时间 + /// + public DateTime? SQSJ { get; set; } + /// + /// 术前诊断 + /// + public string SQZD { get; set; } + /// + /// 手术ID + /// + public int? SSID { get; set; } + /// + /// 手术编码 + /// + public string SSBM { get; set; } + /// + /// 手术名称 + /// + public string SSMC { get; set; } + /// + /// 手术等级ID + /// + public int? SSDJID { get; set; } + /// + /// 手术等级 + /// + public string SSDJ { get; set; } + /// + /// 手术等级权重 + /// + public int? SSDJQZ { get; set; } + /// + /// 切口类型ID + /// + public int? QKLXID { get; set; } + /// + /// 切口类型 + /// + public string QKLX { get; set; } + /// + /// 切口类型权重 + /// + public int? QKLXQZ { get; set; } + /// + /// 清洁时间ID + /// + public int? QJSJID { get; set; } + /// + /// 清洁时长 + /// + public decimal? QJSC { get; set; } + /// + /// 手术时长 + /// + public decimal? SSSC { get; set; } + /// + /// 主刀医生ID + /// + public int? ZDYSID { get; set; } + /// + /// 主刀医生编码 + /// + public string ZDYSMB { get; set; } + /// + /// 主刀医生姓名 + /// + public string ZDYSXM { get; set; } + /// + /// 是否急诊 + /// + public bool? SFJZ { get; set; } + /// + /// 是否急诊 + /// + public string strSFJZ { get; set; } + /// + /// 诊疗卡号 + /// + public string ZLKH { get; set; } + /// + /// 权重 + /// + public int? QZ { get; set; } + /// + /// 手术总时长 + /// + public decimal? SSZSC { get; set; } + /// + /// 申请状态 + /// + public string SQZT { get; set; } + public int ZT { get; set; } + public int? SSLX { get; set; } + + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SSSSC.cs b/SchedulingSystemClient/EntityClass/Cus_SSSSC.cs new file mode 100644 index 0000000..126149f --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SSSSC.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + /// + /// 手术室时长 + /// + public class Cus_SSSSC + { + public int SSSID { get; set; } + public decimal SSSC { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SSSZSC.cs b/SchedulingSystemClient/EntityClass/Cus_SSSZSC.cs new file mode 100644 index 0000000..0caeb6a --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SSSZSC.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_SSSZSC + { + public int SSSID { get; set; } + public decimal SSZSC { get; set; } + + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SSXXB.cs b/SchedulingSystemClient/EntityClass/Cus_SSXXB.cs new file mode 100644 index 0000000..34e3c7d --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SSXXB.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + + public class Cus_SSXXB + { + public int ID { get; set; } + public string SSBM { get; set; } + public string SSMC { get; set; } + public string PYSZM { get; set; } + public int? YJSSSC { get; set; } + public string strYJSSSC { get; set; } + public int? SSJB { get; set; } + public string strSSJB { get; set; } + public int? SSQJD { get; set; } + public string strSSQJD { get; set; } + public int? MZYSZC { get; set; } + public string strMZYSZC { get; set; } + public int? XHHSZC { get; set; } + public string strXHHSZC { get; set; } + public bool? CJSS { get; set; } + public string strCJSS { get; set; } + public bool? IsICD { get; set; } + public string strIsICD { get; set; } + public int? intSSLX { get; set; } + public string SSLX { get; set; } + public bool? boolCYSS { get; set; } + public string CYSS { get; set; } + + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_Sqjl.cs b/SchedulingSystemClient/EntityClass/Cus_Sqjl.cs new file mode 100644 index 0000000..aa629a8 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_Sqjl.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_Sqjl + { + public int ID { get; set; } + public int SSSID { get; set; } + public string SSS { get; set; } + public int KSID { get; set; } + public string KS { get; set; } + public string YSBM { get; set; } + public string YSXM { get; set; } + public string SSMC { get; set; } + public int SSLXID { get; set; } + public string SSLX { get; set; } + public int SSQJDID { get; set; } + public string SSQJD { get; set; } + public int SQRID { get; set; } + public string SQR { get; set; } + public DateTime? SQSJ { get; set; } + public string strSQSJ { get; set; } + public int XGRID { get; set; } + public string XGR { get; set; } + public DateTime? XGSJ { get; set; } + public string strXGSJ { get; set; } + public int? PBZT { get; set; } + public string strPBZT { get; set; } + public int? QZ { get; set; } + public DateTime? KSSJ { get; set; } + public string strKSSJ { get; set; } + public string BRXM { get; set; } + public string ZYH { get; set; } + public string ZLKH { get; set; } + public int? SSSC { get; set; } + public string strSSSC { get; set; } + public int? YSID { get; set; } + public int? QJSJ { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SslxQz.cs b/SchedulingSystemClient/EntityClass/Cus_SslxQz.cs new file mode 100644 index 0000000..324e410 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SslxQz.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_SslxQz + { + public int ID { get; set; } + public int? SSLXID { get; set; } + public string SSLX { get; set; } + public string LXMS { get; set; } + public int? QZ { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_Sslxb.cs b/SchedulingSystemClient/EntityClass/Cus_Sslxb.cs new file mode 100644 index 0000000..d7e28fb --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_Sslxb.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_Sslxb + { + public int ID { get; set; } + /// + /// 手术类型 + /// + public string SSLX { get; set; } + /// + /// 类型编码 + /// + public string LXBM { get; set; } + /// + /// 是否启用 + /// + public string SFQY { get; set; } + /// + /// 是否启用 + /// + public bool? bitSFQY { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SsqjdQz.cs b/SchedulingSystemClient/EntityClass/Cus_SsqjdQz.cs new file mode 100644 index 0000000..4829a31 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SsqjdQz.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_SsqjdQz + { + public int ID { get; set; } + public string SSQJD { get; set; } + public string LXMS { get; set; } + public string QJSC { get; set; } + public int? QJSCID { get; set; } + public int? QZ { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_Ssqjdb.cs b/SchedulingSystemClient/EntityClass/Cus_Ssqjdb.cs new file mode 100644 index 0000000..002e9cc --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_Ssqjdb.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_Ssqjdb + { + /// + /// 清洁度ID + /// + public int ID { get; set; } + /// + /// 手术清洁度 + /// + public string SSQJD { get; set; } + /// + /// 清洁时间 + /// + public int? QJSJID { get; set; } + public decimal? QJSJ { get; set; } + public string strQJSJ { get; set; } + /// + /// 是否启用 + /// + public string strSFQY { get; set; } + public bool? SFQY { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_SssLb.cs b/SchedulingSystemClient/EntityClass/Cus_SssLb.cs new file mode 100644 index 0000000..8ffff5b --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_SssLb.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_SssLb + { + public int ID { get; set; } + /// + /// 手术室名称 + /// + public string SSSMC { get; set; } + /// + /// 手术室编码 + /// + public string SSSBM { get; set; } + /// + /// 是否启用 + /// + public string SFQY { get; set; } + /// + /// 是否启用 + /// + public bool? bitSFQY { get; set; } + /// + /// 日间手术室 + /// + public string RJSSS { get; set; } + /// + /// 日间手术室 + /// + public bool? bitRJSSS { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_TJTB.cs b/SchedulingSystemClient/EntityClass/Cus_TJTB.cs new file mode 100644 index 0000000..9001254 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_TJTB.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_TJTB + { + public DateTime? KSSJ { get; set; } + public decimal? SSSC { get; set; } + public decimal? SSQJSC { get; set; } + public string SSLX { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_User.cs b/SchedulingSystemClient/EntityClass/Cus_User.cs new file mode 100644 index 0000000..8899aa9 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_User.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient.EntityClass +{ + public class Cus_User + { + public int ID { get; set; } + public string Name { get; set; } + public string GH { get; set; } + public int? JSID { get; set; } + public string strRole { get; set; } + public string Password { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_YSZC.cs b/SchedulingSystemClient/EntityClass/Cus_YSZC.cs new file mode 100644 index 0000000..4df1036 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_YSZC.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_YSZC + { + public int ID { get; set; } + public string YSZC { get; set; } + public string ZCBM { get; set; } + public string SFQY { get; set; } + public bool bitSFQY { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_YsLb.cs b/SchedulingSystemClient/EntityClass/Cus_YsLb.cs new file mode 100644 index 0000000..0ee3f16 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_YsLb.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_YsLb + { + public int ID { get; set; } + /// + /// 医生名称 + /// + public string YSMC { get; set; } + /// + /// 医生编码 + /// + public string YSBM { get; set; } + /// + /// 性别 + /// + public string XB { get; set; } + /// + /// 籍贯 + /// + public string JG { get; set; } + /// + /// 出生日期 + /// + public string CSRQ { get; set; } + /// + /// 医生职称 + /// + public string YSJB { get; set; } + public int intYSJB { get; set; } + /// + /// 是否启用 + /// + public string SFQY { get; set; } + /// + /// 是否启用 + /// + public bool? bitSFQY { get; set; } + } +} diff --git a/SchedulingSystemClient/EntityClass/Cus_YsvipQz.cs b/SchedulingSystemClient/EntityClass/Cus_YsvipQz.cs new file mode 100644 index 0000000..05c7d17 --- /dev/null +++ b/SchedulingSystemClient/EntityClass/Cus_YsvipQz.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystem.EntityClass +{ + public class Cus_YsvipQz + { + public int ID { get; set; } + public string YSXM { get; set; } + public string YSBM { get; set; } + public int? QZ { get; set; } + + } +} diff --git a/SchedulingSystemClient/FenYeViewModel.cs b/SchedulingSystemClient/FenYeViewModel.cs new file mode 100644 index 0000000..c65a8c4 --- /dev/null +++ b/SchedulingSystemClient/FenYeViewModel.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SchedulingSystemClient +{ + //public class FenYeViewModel : ObservableObject + public class FenYeViewModel + { + + public FenYeViewModel() + { + Init(); + InitCommand(); + } + private void Init() + { + // JzrcCommand = new ViewModelCommand((object obj) => { Jzrc(); }); + } + private void InitCommand() + { + int nian = DateTime.Now.Year; + } + } +} diff --git a/SchedulingSystemClient/FenYeWindow.xaml b/SchedulingSystemClient/FenYeWindow.xaml new file mode 100644 index 0000000..748dd52 --- /dev/null +++ b/SchedulingSystemClient/FenYeWindow.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/FenYeWindow.xaml.cs b/SchedulingSystemClient/FenYeWindow.xaml.cs new file mode 100644 index 0000000..747f0e0 --- /dev/null +++ b/SchedulingSystemClient/FenYeWindow.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace SchedulingSystemClient +{ + /// + /// FenYeWindow.xaml 的交互逻辑 + /// + public partial class FenYeWindow : UserControl + { + public FenYeWindow() + { + InitializeComponent(); + DataContext = new FenYeViewModel(); + } + } +} diff --git a/SchedulingSystemClient/GZWHWindow.xaml b/SchedulingSystemClient/GZWHWindow.xaml new file mode 100644 index 0000000..abd1585 --- /dev/null +++ b/SchedulingSystemClient/GZWHWindow.xaml @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/GZWHWindow.xaml.cs b/SchedulingSystemClient/GZWHWindow.xaml.cs new file mode 100644 index 0000000..3e65dac --- /dev/null +++ b/SchedulingSystemClient/GZWHWindow.xaml.cs @@ -0,0 +1,542 @@ +using SchedulingSystem; +using SchedulingSystem.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; + +namespace SchedulingSystemClient +{ + /// + /// GZWHWindow.xaml 的交互逻辑 + /// + public partial class GZWHWindow : UserControl + { + public GZWHWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + string type = string.Empty; + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + type = "手术级别"; + btnsslx.IsEnabled = false; + btnbrvip.IsEnabled = true; + btnysbip.IsEnabled = true; + btnssqjd.IsEnabled = true; + btnqtcs.IsEnabled = true; + sslxgrid.Visibility = Visibility.Visible; + brvipgrid.Visibility = Visibility.Collapsed; + ysvipgrid.Visibility = Visibility.Collapsed; + ssqjdgrid.Visibility = Visibility.Collapsed; + qtcsgrid.Visibility = Visibility.Collapsed; + ShuaXin(); + } + Color color = (Color)ColorConverter.ConvertFromString("#315DDA"); + private void btnsslx_Click(object sender, RoutedEventArgs e) + { + type = "手术级别"; + btnsslx.IsEnabled = false; + btnbrvip.IsEnabled = true; + btnysbip.IsEnabled = true; + btnssqjd.IsEnabled = true; + btnqtcs.IsEnabled = true; + sslxgrid.Visibility = Visibility.Visible; + brvipgrid.Visibility = Visibility.Collapsed; + ysvipgrid.Visibility = Visibility.Collapsed; + ssqjdgrid.Visibility = Visibility.Collapsed; + qtcsgrid.Visibility = Visibility.Collapsed; + ShuaXin(); + } + private void btnbrvip_Click(object sender, RoutedEventArgs e) + { + type = "患者VIP"; + btnsslx.IsEnabled = true; + btnbrvip.IsEnabled = false; + btnysbip.IsEnabled = true; + btnssqjd.IsEnabled = true; + btnqtcs.IsEnabled = true; + sslxgrid.Visibility = Visibility.Collapsed; + brvipgrid.Visibility = Visibility.Visible; + ysvipgrid.Visibility = Visibility.Collapsed; + ssqjdgrid.Visibility = Visibility.Collapsed; + qtcsgrid.Visibility = Visibility.Collapsed; + ShuaXin(); + } + private void btnysbip_Click(object sender, RoutedEventArgs e) + { + type = "医生VIP"; + btnsslx.IsEnabled = true; + btnbrvip.IsEnabled = true; + btnysbip.IsEnabled = false; + btnssqjd.IsEnabled = true; + btnqtcs.IsEnabled = true; + sslxgrid.Visibility = Visibility.Collapsed; + brvipgrid.Visibility = Visibility.Collapsed; + ysvipgrid.Visibility = Visibility.Visible; + ssqjdgrid.Visibility = Visibility.Collapsed; + qtcsgrid.Visibility = Visibility.Collapsed; + ShuaXin(); + } + private void btnssqjd_Click(object sender, RoutedEventArgs e) + { + type = "切口类型"; + btnsslx.IsEnabled = true; + btnbrvip.IsEnabled = true; + btnysbip.IsEnabled = true; + btnssqjd.IsEnabled = false; + btnqtcs.IsEnabled = true; + sslxgrid.Visibility = Visibility.Collapsed; + brvipgrid.Visibility = Visibility.Collapsed; + ysvipgrid.Visibility = Visibility.Collapsed; + ssqjdgrid.Visibility = Visibility.Visible; + qtcsgrid.Visibility = Visibility.Collapsed; + ShuaXin(); + } + List listqtcsb = new List(); + private void btnqtcs_Click(object sender, RoutedEventArgs e) + { + type = "其他参数"; + btnsslx.IsEnabled = true; + btnbrvip.IsEnabled = true; + btnysbip.IsEnabled = true; + btnssqjd.IsEnabled = true; + btnqtcs.IsEnabled = false; + sslxgrid.Visibility = Visibility.Collapsed; + brvipgrid.Visibility = Visibility.Collapsed; + ysvipgrid.Visibility = Visibility.Collapsed; + ssqjdgrid.Visibility = Visibility.Collapsed; + qtcsgrid.Visibility = Visibility.Visible; + listqtcsb = (from tbqtcsb in myModel.Bus_SJCSB + select new Cus_Qtcs + { + ID = tbqtcsb.ID, + MTPBSCID = tbqtcsb.MTPBSCID, + MTPBSC = tbqtcsb.MTPBSC, + PBKSSJID = tbqtcsb.PBKSSJID, + PBKSSJ = tbqtcsb.PBKSSJ, + SSMXSQZ = tbqtcsb.SSMXSQZ, + ZHXGSJID = tbqtcsb.ZHXGSJID, + ZHXGSJ = tbqtcsb.ZHXGSJ, + XXSC = tbqtcsb.XXSC, + strXXSC = tbqtcsb.STRXXSC, + XXSJ = tbqtcsb.XXSJ, + strXXSJ = tbqtcsb.STRXXSJ, + XGSJ = tbqtcsb.XGSJ, + XGR = tbqtcsb.XGR + }).ToList(); + List listpbkssj = new List(); + listpbkssj.Add(new ComboBoxBinding() { ID = 0, Name = "请选择" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 1, Name = "07:00:00" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 2, Name = "07:30:00" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 3, Name = "08:00:00" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 4, Name = "08:30:00" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 5, Name = "09:00:00" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 6, Name = "09:30:00" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 7, Name = "10:00:00" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 8, Name = "10:30:00" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 9, Name = "11:00:00" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 10, Name = "11:30:00" }); + listpbkssj.Add(new ComboBoxBinding() { ID = 11, Name = "12:00:00" }); + + + List listmtpbsc = new List(); + listmtpbsc.Add(new ComboBoxBinding() { ID = 0, Name = "请选择" }); + listmtpbsc.Add(new ComboBoxBinding() { ID = 1, Name = "4小时" }); + listmtpbsc.Add(new ComboBoxBinding() { ID = 2, Name = "5小时" }); + listmtpbsc.Add(new ComboBoxBinding() { ID = 3, Name = "6小时" }); + listmtpbsc.Add(new ComboBoxBinding() { ID = 4, Name = "7小时" }); + listmtpbsc.Add(new ComboBoxBinding() { ID = 5, Name = "8小时" }); + listmtpbsc.Add(new ComboBoxBinding() { ID = 6, Name = "9小时" }); + listmtpbsc.Add(new ComboBoxBinding() { ID = 7, Name = "10小时" }); + listmtpbsc.Add(new ComboBoxBinding() { ID = 8, Name = "11小时" }); + listmtpbsc.Add(new ComboBoxBinding() { ID = 9, Name = "12小时" }); + List listssxsqz = new List(); + listssxsqz.Add(new ComboBoxBinding() { ID = 0, Name = "0" }); + listssxsqz.Add(new ComboBoxBinding() { ID = 1, Name = "1" }); + listssxsqz.Add(new ComboBoxBinding() { ID = 2, Name = "2" }); + listssxsqz.Add(new ComboBoxBinding() { ID = 3, Name = "3" }); + listssxsqz.Add(new ComboBoxBinding() { ID = 4, Name = "4" }); + listssxsqz.Add(new ComboBoxBinding() { ID = 5, Name = "5" }); + listssxsqz.Add(new ComboBoxBinding() { ID = 6, Name = "6" }); + listssxsqz.Add(new ComboBoxBinding() { ID = 7, Name = "7" }); + listssxsqz.Add(new ComboBoxBinding() { ID = 8, Name = "8" }); + listssxsqz.Add(new ComboBoxBinding() { ID = 9, Name = "9" }); + listssxsqz.Add(new ComboBoxBinding() { ID = 10, Name = "10" }); + List listzhxgsj = new List(); + listzhxgsj.Add(new ComboBoxBinding() { ID = 0, Name = "1天内" }); + listzhxgsj.Add(new ComboBoxBinding() { ID = 1, Name = "2天内" }); + listzhxgsj.Add(new ComboBoxBinding() { ID = 2, Name = "3天内" }); + //listzhxgsj.Add(new ComboBoxBinding() { ID = 3, Name = "24小时" }); + //listzhxgsj.Add(new ComboBoxBinding() { ID = 4, Name = "36小时" }); + //listzhxgsj.Add(new ComboBoxBinding() { ID = 5, Name = "48小时" }); + + List listxxsj = new List(); + listxxsj.Add(new ComboBoxBinding() { ID = 0, Name = "不休息" }); + listxxsj.Add(new ComboBoxBinding() { ID = 1, Name = "11:00:00" }); + listxxsj.Add(new ComboBoxBinding() { ID = 2, Name = "11:30:00" }); + listxxsj.Add(new ComboBoxBinding() { ID = 3, Name = "12:00:00" }); + listxxsj.Add(new ComboBoxBinding() { ID = 4, Name = "12:30:00" }); + listxxsj.Add(new ComboBoxBinding() { ID = 5, Name = "13:00:00" }); + listxxsj.Add(new ComboBoxBinding() { ID = 6, Name = "13:30:00" }); + listxxsj.Add(new ComboBoxBinding() { ID = 7, Name = "14:00:00" }); + List listxxsc = new List(); + listxxsc.Add(new ComboBoxBinding() { ID = 0, Name = "0" }); + listxxsc.Add(new ComboBoxBinding() { ID = 1, Name = "0.5小时" }); + listxxsc.Add(new ComboBoxBinding() { ID = 2, Name = "1小时" }); + listxxsc.Add(new ComboBoxBinding() { ID = 3, Name = "1.5小时" }); + listxxsc.Add(new ComboBoxBinding() { ID = 4, Name = "2小时" }); + listxxsc.Add(new ComboBoxBinding() { ID = 5, Name = "2.5小时" }); + listxxsc.Add(new ComboBoxBinding() { ID = 6, Name = "3小时" }); + pbkssj.ItemsSource = listpbkssj; + pbkssj.SelectedValuePath = "ID"; + pbkssj.DisplayMemberPath = "Name"; + pbkssj.SelectedValue = listqtcsb.Single().PBKSSJID; + mtpbsc.ItemsSource = listmtpbsc; + mtpbsc.SelectedValuePath = "ID"; + mtpbsc.DisplayMemberPath = "Name"; + mtpbsc.SelectedValue = listqtcsb.Single().MTPBSCID; + ssmxsqz.ItemsSource = listssxsqz; + ssmxsqz.SelectedValuePath = "ID"; + ssmxsqz.DisplayMemberPath = "Name"; + ssmxsqz.SelectedValue = listqtcsb.Single().SSMXSQZ; + zhxgsj.ItemsSource = listzhxgsj; + zhxgsj.SelectedValuePath = "ID"; + zhxgsj.DisplayMemberPath = "Name"; + zhxgsj.SelectedValue = listqtcsb.Single().ZHXGSJID; + xxsj.ItemsSource = listxxsj; + xxsj.SelectedValuePath = "ID"; + xxsj.DisplayMemberPath = "Name"; + xxsj.SelectedValue = listqtcsb.Single().XXSJ; + xxsc.ItemsSource = listxxsc; + xxsc.SelectedValuePath = "ID"; + xxsc.DisplayMemberPath = "Name"; + xxsc.Text = listqtcsb.Single().strXXSC; + if (xxsj.SelectedValue!=null) + { + if (Convert.ToInt32(xxsj.SelectedValue) == 0) + { + xxsc.SelectedValue = 0; + xxsc.IsEditable = false; + } + else + { + xxsc.IsEditable = true; + } + } + } + int sslxqzid = 0; + int brvipqzid = 0; + int ysvipqzid = 0; + int ssqjdqzid = 0; + private void sslxdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + sslxqzid = 0; + Cus_SslxQz selectedRow = sslxdata.SelectedItem as Cus_SslxQz; + + if (selectedRow != null) + { + sslxqzid = selectedRow.ID; + ssjbrow = selectedRow; + } + } + private void brvipdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + brvipqzid = 0; + Cus_BrvipQz selectedRow = brvipdata.SelectedItem as Cus_BrvipQz; + + if (selectedRow != null) + { + brvipqzid = selectedRow.ID; + } + } + private void ysvipdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + ysvipqzid = 0; + Cus_YsvipQz selectedRow = ysvipdata.SelectedItem as Cus_YsvipQz; + + if (selectedRow != null) + { + ysvipqzid = selectedRow.ID; + } + } + private void ssqjddata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + ssqjdqzid = 0; + Cus_SsqjdQz selectedRow = ssqjddata.SelectedItem as Cus_SsqjdQz; + if (selectedRow != null) + { + ssqjdqzid = selectedRow.ID; + qklxrow = selectedRow; + } + } + + private void btn_bccs_Click(object sender, RoutedEventArgs e) + { + if (pbkssj.SelectedIndex == 0) + { + MessageBox.Show("请选择开始时间"); + return; + } + if (mtpbsc.SelectedIndex == 0) + { + MessageBox.Show("请选择排班时长"); + return; + } + if (xxsj.SelectedValue == null) + { + MessageBox.Show("请选择休息时间"); + return; + } + if (xxsc.SelectedValue == null) + { + MessageBox.Show("请选择休息时长"); + return; + } + Bus_SJCSB stcsb = new Bus_SJCSB(); + stcsb.ID = listqtcsb.Single().ID; + stcsb.MTPBSCID = Convert.ToInt32(mtpbsc.SelectedValue); + stcsb.MTPBSC = mtpbsc.Text; + stcsb.PBKSSJID = Convert.ToInt32(pbkssj.SelectedValue); + stcsb.PBKSSJ = pbkssj.Text; + stcsb.SSMXSQZ = Convert.ToInt32(ssmxsqz.SelectedValue); + stcsb.ZHXGSJID = Convert.ToInt32(zhxgsj.SelectedValue); + stcsb.XXSJ = Convert.ToInt32(xxsj.SelectedValue); + stcsb.STRXXSJ = xxsj.Text; + stcsb.XXSC = Convert.ToDecimal(xxsc.Text.Replace("小时", "")); + stcsb.STRXXSC = xxsc.Text; + stcsb.ZHXGSJ = zhxgsj.Text; + stcsb.XGSJ = DateTime.Now; + try + { + myModel.Entry(stcsb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("保存成功"); + myModel.Entry(stcsb).State = System.Data.Entity.EntityState.Detached; + + } + catch (Exception ex) + { + MessageBox.Show("保存失败" + ex.ToString()); + } + } + private void btn_xz_Click(object sender, RoutedEventArgs e) + { + if (type == "患者VIP") + { + XZGZBRVIPWindow window = new XZGZBRVIPWindow(); + window.ShowDialog(); + } + if (type == "医生VIP") + { + XZGZYSVIPWindow window = new XZGZYSVIPWindow(); + window.ShowDialog(); + } + ShuaXin(); + } + private void btn_xg_Click(object sender, RoutedEventArgs e) + { + if (type == "手术级别") + { + if (sslxqzid != 0) + { + XGGZSSLXWindow window = new XGGZSSLXWindow(ssjbrow); + window.ShowDialog(); + } + else + { + MessageBox.Show("请选择需要修改的信息"); + } + } + if (type == "患者VIP") + { + if (brvipqzid != 0) + { + XGGZBRVIPWindow window = new XGGZBRVIPWindow(brvipqzid); + window.ShowDialog(); + } + else + { + MessageBox.Show("请选择需要修改的信息"); + } + } + if (type == "医生VIP") + { + if (ysvipqzid != 0) + { + XGGZYSVIPWindow window = new XGGZYSVIPWindow(ysvipqzid); + window.ShowDialog(); + } + else + { + MessageBox.Show("请选择需要修改的信息"); + } + } + if (type == "切口类型") + { + if (ssqjdqzid != 0) + { + XGGZSSQJDWindow window = new XGGZSSQJDWindow(qklxrow); + window.ShowDialog(); + } + else + { + MessageBox.Show("请选择需要修改的信息"); + } + } + ShuaXin(); + } + private void btn_sc_Click(object sender, RoutedEventArgs e) + { + + if (type == "患者VIP") + { + if (brvipqzid != 0) + { + MessageBoxResult dr = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + var listsbrvipqz = (from tbbrvipqz in myModel.SYS_HZVIPB + where tbbrvipqz.ID == brvipqzid + select new + { + tbbrvipqz, + }).Single(); + try + { + myModel.SYS_HZVIPB.Remove(listsbrvipqz.tbbrvipqz); + myModel.SaveChanges(); + MessageBox.Show("删除成功"); + } + catch (Exception) + { + + MessageBox.Show("删除失败"); + } + } + } + else + { + MessageBox.Show("请选择需要删除的内容"); + } + } + if (type == "医生VIP") + { + if (ysvipqzid != 0) + { + MessageBoxResult dr = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + var listsysvipqz = (from tbysvipqz in myModel.SYS_YSVIPB + where tbysvipqz.ID == ysvipqzid + select new + { + tbysvipqz, + }).Single(); + try + { + myModel.SYS_YSVIPB.Remove(listsysvipqz.tbysvipqz); + myModel.SaveChanges(); + MessageBox.Show("删除成功"); + } + catch (Exception) + { + + MessageBox.Show("删除失败"); + } + } + } + else + { + MessageBox.Show("请选择需要删除的内容"); + } + } + + ShuaXin(); + } + private void btn_sx_Click(object sender, RoutedEventArgs e) + { + ShuaXin(); + } + private void ShuaXin() + { + if (type == "手术级别") + { + var listsslx = (from tbsslx in myModel.SYS_SSDJB + select new Cus_SslxQz + { + ID = tbsslx.ID, + SSLX = tbsslx.SSDJ, + LXMS = tbsslx.DJMS, + QZ = tbsslx.QZ + }).ToList().OrderBy(a => a.ID); + sslxdata.ItemsSource = listsslx; + } + if (type == "患者VIP") + { + var listbrvip = (from tbbrvip in myModel.SYS_HZVIPB + select new Cus_BrvipQz + { + ID = tbbrvip.ID, + BRXM = tbbrvip.HZXM, + ZLKH = tbbrvip.ZLKH, + QZ = tbbrvip.QZ + }).ToList().OrderByDescending(a => a.QZ); + brvipdata.ItemsSource = listbrvip; + } + if (type == "医生VIP") + { + var listysvip = (from tbysvip in myModel.SYS_YSVIPB + select new Cus_YsvipQz + { + ID = tbysvip.ID, + YSXM = tbysvip.YSXM, + YSBM = tbysvip.YSBM, + QZ = tbysvip.QZ + }).ToList().OrderByDescending(a => a.QZ); + ysvipdata.ItemsSource = listysvip; + } + if (type == "切口类型") + { + var listssqjd = (from tbssqjd in myModel.SYS_SSQKLXB + join tbsb in myModel.SYS_SSSCB on tbssqjd.QJSCID equals tbsb.ID + select new Cus_SsqjdQz + { + ID = tbssqjd.ID, + SSQJD = tbssqjd.QKLX, + LXMS = tbssqjd.LXMS, + QJSCID = tbsb.ID, + QJSC = tbsb.NAME, + QZ = tbssqjd.QZ + }).ToList().OrderBy(a => a.ID); + ssqjddata.ItemsSource = listssqjd; + } + } + Cus_SslxQz ssjbrow = new Cus_SslxQz(); + Cus_SsqjdQz qklxrow = new Cus_SsqjdQz(); + private void xxsj_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + if (xxsj.SelectedValue!=null) + { + if (Convert.ToInt32(xxsj.SelectedValue) == 0) + { + xxsc.SelectedValue = 0; + } + } + + } + private void xxsc_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + if (xxsj.SelectedValue !=null) + { + if (Convert.ToInt32(xxsj.SelectedValue) == 0) + { + xxsc.SelectedValue = 0; + } + } + } + } +} diff --git a/SchedulingSystemClient/Image/DLBJT.jpg b/SchedulingSystemClient/Image/DLBJT.jpg new file mode 100644 index 0000000..333c231 Binary files /dev/null and b/SchedulingSystemClient/Image/DLBJT.jpg differ diff --git a/SchedulingSystemClient/InsertWindow/XZGZBRVIPWindow.xaml b/SchedulingSystemClient/InsertWindow/XZGZBRVIPWindow.xaml new file mode 100644 index 0000000..7e29135 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZGZBRVIPWindow.xaml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZGZBRVIPWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZGZBRVIPWindow.xaml.cs new file mode 100644 index 0000000..120a73b --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZGZBRVIPWindow.xaml.cs @@ -0,0 +1,78 @@ +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XZGZBRVIPWindow.xaml 的交互逻辑 + /// + public partial class XZGZBRVIPWindow : Window + { + public XZGZBRVIPWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + int intqz; + if (brxm == null|| brxm.Text == string.Empty) + { + MessageBox.Show("请填写病人姓名"); + return; + } + if (zlkh == null || zlkh.Text == string.Empty) + { + MessageBox.Show("请填诊疗卡号"); + return; + } + try + { + intqz = Convert.ToInt32(qz.Text); + } + catch (Exception) + { + MessageBox.Show("请输入正确的权重格式"); + return; + } + var listbrvip = (from tbbrvip in myModel.SYS_HZVIPB + where tbbrvip.ZLKH == zlkh.Text + select new + { + tbbrvip + }).ToList(); + if (listbrvip.Count > 0) + { + MessageBox.Show("诊疗卡号不能重复"); + return; + } + + SYS_HZVIPB brvipqz = new SYS_HZVIPB(); + brvipqz.HZXM = brxm.Text; + brvipqz.ZLKH = zlkh.Text; + brvipqz.QZ = intqz; + try + { + myModel.SYS_HZVIPB.Add(brvipqz); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZGZSSLXWindow.xaml b/SchedulingSystemClient/InsertWindow/XZGZSSLXWindow.xaml new file mode 100644 index 0000000..5e8ad42 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZGZSSLXWindow.xaml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZGZSSLXWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZGZSSLXWindow.xaml.cs new file mode 100644 index 0000000..c6c2f1a --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZGZSSLXWindow.xaml.cs @@ -0,0 +1,90 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XZGZSSLXWindow.xaml 的交互逻辑 + /// + public partial class XZGZSSLXWindow : Window + { + public XZGZSSLXWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listsslx = new List(); + listsslx = (from tbsss in myModel.SYS_SSQKLXB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.QKLX, + }).ToList(); + sslx.ItemsSource = listsslx; + sslx.SelectedValuePath = "ID"; + sslx.DisplayMemberPath = "Name"; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + int intqz; + if (sslx.SelectedItem == null) + { + MessageBox.Show("请选择手术类型"); + return; + } + try + { + intqz = Convert.ToInt32(qz.Text); + } + catch (Exception) + { + MessageBox.Show("请输入正确的权重格式"); + return; + } + int lxid = Convert.ToInt32(sslx.SelectedValue); + var listsslx = (from tbsslx in myModel.SYS_SSQKLXB + where tbsslx.ID == lxid + select new + { + tbsslx + }).ToList(); + //if (listsslx.Count>0) + //{ + // MessageBox.Show("不能重复设置"); + // return; + //} + + + //Bus_SSLXQZB sslxqz = new Bus_SSLXQZB(); + //sslxqz.SSLXID = lxid; + //sslxqz.SSLX = sslx.Text.ToString(); + //sslxqz.QZ = intqz; + //try + //{ + // myModel.Bus_SSLXQZB.Add(sslxqz); + // myModel.SaveChanges(); + // MessageBox.Show("新增成功"); + // this.Close(); + //} + //catch (Exception) + //{ + // MessageBox.Show("新增失败"); + //} + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZGZSSQJDWindow.xaml b/SchedulingSystemClient/InsertWindow/XZGZSSQJDWindow.xaml new file mode 100644 index 0000000..ab9abd0 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZGZSSQJDWindow.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZGZSSQJDWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZGZSSQJDWindow.xaml.cs new file mode 100644 index 0000000..fcfdf73 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZGZSSQJDWindow.xaml.cs @@ -0,0 +1,88 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XZGZSSQJDWindow.xaml 的交互逻辑 + /// + public partial class XZGZSSQJDWindow : Window + { + public XZGZSSQJDWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listssqjd = new List(); + listssqjd = (from tbsss in myModel.SYS_SSQKLXB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.QKLX, + }).ToList(); + ssqjd.ItemsSource = listssqjd; + ssqjd.SelectedValuePath = "ID"; + ssqjd.DisplayMemberPath = "Name"; + } + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + int intqz; + if (ssqjd.SelectedItem == null) + { + MessageBox.Show("请选择手术清洁度"); + return; + } + try + { + intqz = Convert.ToInt32(qz.Text); + } + catch (Exception) + { + MessageBox.Show("请输入正确的权重格式"); + return; + } + int qjdid = Convert.ToInt32(ssqjd.SelectedValue); + var listssqjd = (from tbssqjd in myModel.SYS_SSQKLXB + where tbssqjd.ID == qjdid + select new + { + tbssqjd + }).ToList(); + if (listssqjd.Count > 0) + { + MessageBox.Show("不能重复设置"); + return; + } + + SYS_SSQKLXB ssqjdqz = new SYS_SSQKLXB(); + ssqjdqz.QJSCID = qjdid; + ssqjdqz.QKLX = ssqjd.Text.ToString(); + ssqjdqz.QZ = intqz; + try + { + myModel.SYS_SSQKLXB.Add(ssqjdqz); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZGZYSVIPWindow.xaml b/SchedulingSystemClient/InsertWindow/XZGZYSVIPWindow.xaml new file mode 100644 index 0000000..ba4b279 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZGZYSVIPWindow.xaml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZGZYSVIPWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZGZYSVIPWindow.xaml.cs new file mode 100644 index 0000000..99bf2a8 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZGZYSVIPWindow.xaml.cs @@ -0,0 +1,120 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// ZXGZYSVIPWindow.xaml 的交互逻辑 + /// + public partial class XZGZYSVIPWindow : Window + { + public XZGZYSVIPWindow() + { + InitializeComponent(); + } + + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + int intqz; + if (ysxm == null || ysxm.Text == string.Empty) + { + MessageBox.Show("请填写医生姓名"); + return; + } + if (ysbm == null || ysbm.Text == string.Empty) + { + MessageBox.Show("请填写医生编码"); + return; + } + try + { + intqz = Convert.ToInt32(qz.Text); + } + catch (Exception) + { + MessageBox.Show("请输入正确的权重格式"); + return; + } + var listysvip = (from tbysvip in myModel.SYS_YSVIPB + where tbysvip.YSBM == ysbm.Text + select new + { + tbysvip + }).ToList(); + if (listysvip.Count > 0) + { + MessageBox.Show("医生编码不能重复"); + return; + } + + SYS_YSVIPB ysvipqz = new SYS_YSVIPB(); + ysvipqz.YSXM = ysxm.Text; + ysvipqz.YSBM = ysbm.Text; + ysvipqz.QZ = intqz; + try + { + myModel.SYS_YSVIPB.Add(ysvipqz); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show("新增失败"+ex.ToString()); + } + } + string strysxm = string.Empty; + List listysbm = new List(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listysxm = new List(); + //listysxm = (from tbysb in myModel.SYS_YSVIPB + // select new ComboBoxBinding + // { + // ID = tbysb.ID, + // Name = tbysb.YSXM, + // }).ToList(); + //ysxm.ItemsSource = listysxm; + //ysxm.SelectedValuePath = "ID"; + //ysxm.DisplayMemberPath = "Name"; + } + + private void ysxm_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + //if (ysxm.SelectedValue !=null) + //{ + //int id =Convert.ToInt32(ysxm.SelectedValue); + //string strysxm = (from tbysb in myModel.SYS_YSB where tbysb.ID == id select new { tbysb}).Single().tbysb.YSXM; + //listysbm = new List(); + //if (strysxm != null && strysxm != string.Empty) + //{ + // listysbm = (from tbysb in myModel.SYS_YSB + // where tbysb.YSXM == strysxm + // select new ComboBoxBinding + // { + // ID = tbysb.ID, + // Name = tbysb.YSBM, + // }).ToList(); + //} + //ysbm.ItemsSource = listysbm; + //ysbm.SelectedValuePath = "ID"; + //ysbm.DisplayMemberPath = "Name"; + //ysbm.SelectedIndex = 0; + //} + + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZHSWindow.xaml b/SchedulingSystemClient/InsertWindow/XZHSWindow.xaml new file mode 100644 index 0000000..10c54c5 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZHSWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SchedulingSystemClient/InsertWindow/XZHSWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZHSWindow.xaml.cs new file mode 100644 index 0000000..b57fe08 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZHSWindow.xaml.cs @@ -0,0 +1,108 @@ +using SchedulingSystem.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.InsertWindow +{ + /// + /// XZHSWindow.xaml 的交互逻辑 + /// + public partial class XZHSWindow : Window + { + public XZHSWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (ysxm.Text == string.Empty) + { + MessageBox.Show("请填写护士姓名"); + return; + } + if (ysgh.Text == string.Empty) + { + MessageBox.Show("请填写护士姓名"); + return; + } + if (yszc.SelectedValue == null) + { + MessageBox.Show("请选择职称"); + return; + } + if (sss.SelectedValue == null) + { + MessageBox.Show("请选择手术室"); + return; + } + try + { + var listmzys = (from ybmzys in myModel.SYS_MZYSB + where ybmzys.YSBM == ysgh.Text && ybmzys.YSMC == ysxm.Text + select new { ybmzys }).ToList(); + if (listmzys.Count > 0) + { + MessageBox.Show("护士姓名和编码重复!"); + return; + } + SYS_HSB hsb = new SYS_HSB(); + hsb.SFQY = sfqy.SelectedValue.ToString() == "0" ? true : false; + hsb.SSSID = Convert.ToInt32(sss.SelectedValue); + hsb.HSBM = ysgh.Text; + hsb.HSMC = ysxm.Text; + hsb.ZCID = Convert.ToInt32(yszc.SelectedValue); + myModel.SYS_HSB.Add(hsb); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = 0; + List listhszc = new List(); + listhszc = (from tbssjb in myModel.SYS_HSZCB + select new ComboBoxBinding + { + ID = tbssjb.ID, + Name = tbssjb.Name, + }).ToList(); + yszc.ItemsSource = listhszc; + yszc.SelectedValuePath = "ID"; + yszc.DisplayMemberPath = "Name"; + + List listsss = new List(); + listsss = (from tbssjb in myModel.SYS_SSSB + select new ComboBoxBinding + { + ID = tbssjb.ID, + Name = tbssjb.SSSMC, + }).ToList(); + sss.ItemsSource = listsss; + sss.SelectedValuePath = "ID"; + sss.DisplayMemberPath = "Name"; + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZHZVIPWindow.xaml b/SchedulingSystemClient/InsertWindow/XZHZVIPWindow.xaml new file mode 100644 index 0000000..5367dd0 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZHZVIPWindow.xaml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZHZVIPWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZHZVIPWindow.xaml.cs new file mode 100644 index 0000000..d324aa2 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZHZVIPWindow.xaml.cs @@ -0,0 +1,62 @@ +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XZHZVIPWindow.xaml 的交互逻辑 + /// + public partial class XZHZVIPWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XZHZVIPWindow() + { + InitializeComponent(); + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (hzxm.Text == null || hzxm.Text == string.Empty) + { + MessageBox.Show("请填写患者名称"); + return; + } + if (zlkh.Text == null || zlkh.Text == string.Empty) + { + MessageBox.Show("请填写诊疗卡号"); + return; + } + if (zyh.Text == null || zyh.Text == string.Empty) + { + MessageBox.Show("请填写住院号"); + return; + } + SYS_HZVIPB hzvip = new SYS_HZVIPB(); + hzvip.HZXM = hzxm.Text; + hzvip.ZLKH = zlkh.Text; + + try + { + myModel.SYS_HZVIPB.Add(hzvip); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZJSWindow.xaml b/SchedulingSystemClient/InsertWindow/XZJSWindow.xaml new file mode 100644 index 0000000..6ae144f --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZJSWindow.xaml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZJSWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZJSWindow.xaml.cs new file mode 100644 index 0000000..ed0a6f1 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZJSWindow.xaml.cs @@ -0,0 +1,80 @@ +using SchedulingSystem.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.InsertWindow +{ + /// + /// XZJSWindow.xaml 的交互逻辑 + /// + public partial class XZJSWindow : Window + { + public XZJSWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (jsmc.Text ==null || jsmc.Text == string.Empty) + { + MessageBox.Show("请输入角色名称"); + return; + } + var listjs = (from tbjs in myModel.SYS_JSB where tbjs.JSMC == jsmc.Text select new { tbjs }).ToList(); + if (listjs.Count>0) + { + MessageBox.Show("请该角色已存在"); + return; + } + bool ky = Convert.ToInt32(sfky.SelectedValue) == 0; + SYS_JSB role = new SYS_JSB(); + role.JSMC = jsmc.Text; + role.SFQY = ky; + try + { + myModel.SYS_JSB.Add(role); + myModel.SaveChanges(); + + var jslb = (from tbjs in myModel.SYS_JSB where tbjs.JSMC == jsmc.Text select new { tbjs }).Single(); + SYS_QXB qxb = new SYS_QXB(); + qxb.JSID = jslb.tbjs.ID; + qxb.Is_GZWH = false; + qxb.Is_JCXXWH = false; + qxb.Is_PBJL = false; + qxb.Is_PBSQ = false; + qxb.Is_SY = false; + qxb.Is_XTGL = false; + myModel.SYS_QXB.Add(qxb); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfky.ItemsSource = listsfqy; + sfky.SelectedValuePath = "ID"; + sfky.DisplayMemberPath = "Name"; + sfky.SelectedIndex = 0; + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZKSWindow.xaml b/SchedulingSystemClient/InsertWindow/XZKSWindow.xaml new file mode 100644 index 0000000..59acefe --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZKSWindow.xaml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZKSWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZKSWindow.xaml.cs new file mode 100644 index 0000000..4ce1df6 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZKSWindow.xaml.cs @@ -0,0 +1,69 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XZKSWindow.xaml 的交互逻辑 + /// + public partial class XZKSWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XZKSWindow() + { + InitializeComponent(); + } + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (ksmc.Text == null || ksmc.Text == string.Empty) + { + MessageBox.Show("请填写科室名称"); + return; + } + if (ksbm.Text == null || ksbm.Text == string.Empty) + { + MessageBox.Show("请填写科室编码"); + return; + } + SYS_KSB ksb = new SYS_KSB(); + ksb.KSMC = ksmc.Text; + ksb.KSBM = ksbm.Text; + ksb.SFKQ = sfqy.SelectedValue.ToString() == "0" ? true : false; + try + { + myModel.SYS_KSB.Add(ksb); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + private void Window_Loaded(object sender, RoutedEventArgs e) + { + sfqy.SelectedIndex = 0; + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = 0; + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZMZYSWindow.xaml b/SchedulingSystemClient/InsertWindow/XZMZYSWindow.xaml new file mode 100644 index 0000000..7733e31 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZMZYSWindow.xaml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZMZYSWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZMZYSWindow.xaml.cs new file mode 100644 index 0000000..af8dcc8 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZMZYSWindow.xaml.cs @@ -0,0 +1,164 @@ +using SchedulingSystem.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.InsertWindow +{ + /// + /// XZMZYSWindow.xaml 的交互逻辑 + /// + public partial class XZMZYSWindow : Window + { + public XZMZYSWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = 0; + + List listyszc = new List(); + listyszc = (from tbssjb in myModel.SYS_YSZCB + select new ComboBoxBinding + { + ID = tbssjb.ID, + Name = tbssjb.Name, + }).ToList(); + yszc.ItemsSource = listyszc; + yszc.SelectedValuePath = "ID"; + yszc.DisplayMemberPath = "Name"; + List listsslb1 = new List(); + listsslb1 = (from tbsslx in myModel.SYS_SSLXB + select new ComboBoxBinding + { + ID = tbsslx.ID, + Name = tbsslx.SSLX, + }).ToList(); + scss1.ItemsSource = listsslb1; + scss1.SelectedValuePath = "ID"; + scss1.DisplayMemberPath = "Name"; + List listsslb2 = new List(); + listsslb2 = (from tbsslx in myModel.SYS_SSLXB + select new ComboBoxBinding + { + ID = tbsslx.ID, + Name = tbsslx.SSLX, + }).ToList(); + scss2.ItemsSource = listsslb2; + scss2.SelectedValuePath = "ID"; + scss2.DisplayMemberPath = "Name"; + List listsslb3 = new List(); + listsslb3 = (from tbsslx in myModel.SYS_SSLXB + select new ComboBoxBinding + { + ID = tbsslx.ID, + Name = tbsslx.SSLX, + }).ToList(); + scss3.ItemsSource = listsslb3; + scss3.SelectedValuePath = "ID"; + scss3.DisplayMemberPath = "Name"; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + int? intscss1; + int? intscss2; + int? intscss3; + if (ysxm.Text==string.Empty) + { + MessageBox.Show("请填写医生姓名"); + return; + } + if (ysgh.Text == string.Empty) + { + MessageBox.Show("请填写医生姓名"); + return; + } + if (yszc.SelectedValue == null) + { + MessageBox.Show("请选择职称"); + return; + } + if (scss1.SelectedValue == null) + { + MessageBox.Show("请选择手擅长手术类型"); + return; + } + if (scss1.SelectedValue == null) + { + MessageBox.Show("请选择手擅长手术类型"); + return; + } + if (scss1.SelectedValue == null) + { + MessageBox.Show("请选择手擅长手术类型"); + return; + } + else + { + intscss1 = Convert.ToInt32(scss1.SelectedValue); + } + if (scss2.SelectedValue == null) + { + intscss2 = null; + } + else + { + intscss2 = Convert.ToInt32(scss2.SelectedValue); + } + if (scss3.SelectedValue == null) + { + intscss3 = null; + } + else + { + intscss3 = Convert.ToInt32(scss3.SelectedValue); + } + try + { + var listmzys = (from ybmzys in myModel.SYS_MZYSB + where ybmzys.YSBM == ysgh.Text && ybmzys.YSMC == ysxm.Text + select new { ybmzys }).ToList(); + if (listmzys.Count>0) + { + MessageBox.Show("医生姓名和编码重复!"); + return; + } + SYS_MZYSB mzys = new SYS_MZYSB(); + mzys.SFQY = sfqy.SelectedValue.ToString() == "0" ? true : false; + mzys.SCSS1 = intscss1; + mzys.SCSS2 = intscss2; + mzys.SCSS3 = intscss3; + // mzys.SSSID = Convert.ToInt32(sss.SelectedValue); + mzys.YSBM = ysgh.Text; + mzys.YSMC = ysxm.Text; + mzys.YSZCID = Convert.ToInt32(yszc.SelectedValue); + myModel.SYS_MZYSB.Add(mzys); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZRJSSWindow.xaml b/SchedulingSystemClient/InsertWindow/XZRJSSWindow.xaml new file mode 100644 index 0000000..310bb3c --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZRJSSWindow.xaml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZRJSSWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZRJSSWindow.xaml.cs new file mode 100644 index 0000000..d524914 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZRJSSWindow.xaml.cs @@ -0,0 +1,441 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.InsertWindow +{ + /// + /// XZRJSSWindow.xaml 的交互逻辑 + /// + public partial class XZRJSSWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XZRJSSWindow(SYS_YHB yh) + { + InitializeComponent(); + user = yh; + } + SYS_YHB user = new SYS_YHB(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listks = new List(); + List listys = new List(); + List listssmc = new List(); + listks = (from tbsss in myModel.SYS_KSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.KSMC, + }).ToList(); + listys = (from tbsss in myModel.SYS_SSYSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSXM, + }).ToList(); + listssmc = (from tbsss in myModel.SYS_SSXXB + where tbsss.CJSS == true + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.SSMC, + }).ToList(); + List shi = new List(); + for (int i = 0; i < 24; i++) + { + if (i < 10) + { + shi.Add("0" + i); + } + else + { + shi.Add(i.ToString()); + } + } + + List fen = new List(); + for (int i = 0; i < 60; i++) + { + if (i < 10) + { + fen.Add("0" + i); + } + else + { + fen.Add(i.ToString()); + } + } + + List miao = new List(); + for (int i = 0; i < 60; i++) + { + if (i < 10) + { + miao.Add("0" + i); + } + else + { + miao.Add(i.ToString()); + } + } + + KS.ItemsSource = listks; + KS.SelectedValuePath = "ID"; + KS.DisplayMemberPath = "Name"; + YS.ItemsSource = listys; + YS.SelectedValuePath = "ID"; + YS.DisplayMemberPath = "Name"; + SSMC.ItemsSource = listssmc; + SSMC.SelectedValuePath = "ID"; + SSMC.DisplayMemberPath = "Name"; + } + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + try + { + DateTime kssj = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date; + // DateTime jssj = DateTime.Now.Date.AddSeconds(-1); + if (KS.SelectedIndex < 0) + { + MessageBox.Show("请选择科室"); + return; + } + int ksid = Convert.ToInt32(KS.SelectedValue); + var listsss = (from tbsssb in myModel.SYS_SSSBDB + join tbsss in myModel.SYS_SSSB on tbsssb.SSSID equals tbsss.ID + where tbsssb.KSID == ksid && tbsssb.SFKY == true && tbsss.SFRJ == true + select new + { + tbsssb + }).ToList(); + if (listsss.Count <= 0) + { + MessageBox.Show("该科室没有可用的手术室!"); + return; + } + if (YS.SelectedIndex < 0) + { + MessageBox.Show("请选择医生"); + return; + } + if (SSMC.SelectedIndex < 0) + { + MessageBox.Show("请选择手术"); + return; + } + if (HZXM.Text == null || HZXM.Text == string.Empty) + { + MessageBox.Show("请填写患者姓名"); + return; + } + if (ZYH.Text == null || ZYH.Text == string.Empty) + { + MessageBox.Show("请填写住院号"); + return; + } + if (ZLKH.Text == null || ZLKH.Text == string.Empty) + { + MessageBox.Show("请填写诊疗卡号"); + return; + } + DateTime sj = DateTime.Now; + string yue = sj.Month > 10 ? sj.Month.ToString() : "0" + sj.Month; + string day = sj.Day > 10 ? sj.Day.ToString() : "0" + sj.Day; + string shi = sj.Hour > 10 ? sj.Hour.ToString() : "0" + sj.Hour; + string fen = sj.Minute > 10 ? sj.Minute.ToString() : "0" + sj.Minute; + string miao = sj.Second > 10 ? sj.Second.ToString() : "0" + sj.Second; + Bus_RJSSB rjss = new Bus_RJSSB(); + rjss.SQDH = "SQD" + sj.Year + yue + day + shi + fen + miao + sj.Millisecond; + rjss.HZXM = HZXM.Text; + rjss.KSID = Convert.ToInt32(KS.SelectedValue); + rjss.SFJZ = SSMC.SelectedIndex == 0 ? true : false; + rjss.SQSJ = DateTime.Now; + rjss.SQZD = SQZD.Text; + rjss.SSID = Convert.ToInt32(SSMC.SelectedValue); + rjss.ZDYS = Convert.ToInt32(YS.SelectedValue); + rjss.ZLKH = ZLKH.Text; + rjss.ZYH = ZYH.Text; + rjss.PBZT = 1; + rjss.SSRQ = DateTime.Now.Date; + //分配手术室 + var sss = (from tbsssb in myModel.SYS_SSSBDB + join tbsss in myModel.SYS_SSSB on tbsssb.SSSID equals tbsss.ID + where tbsssb.KSID == rjss.KSID && tbsssb.SFKY == true && tbsss.SFRJ ==true + select new + { + tbsssb + }).ToList(); + List ssssc = new List(); + for (int s = 0; s < listsss.Count; s++) + { + Cus_SSSSC sc = new Cus_SSSSC(); + int sssid = Convert.ToInt32(listsss[s].tbsssb.SSSID); + var listsssc = (from tbrjss in myModel.Bus_RJSSB + where tbrjss.SSSID == sssid + select new + { + tbrjss + }).ToList(); + decimal sssc = Convert.ToDecimal(listsssc.Sum(a => a.tbrjss.SSZSC)); + sc.SSSID = sssid; + sc.SSSC = sssc; + ssssc.Add(sc); + } + ssssc = ssssc.OrderBy(a => a.SSSC).ToList(); + rjss.SSSID = ssssc[0].SSSID; + + + ////分配麻醉医生 + //List listmzyssc = new List(); + //var listrjssmz = ((from tbsspb in myModel.Bus_RJSSB + // join tbmzys1 in myModel.SYS_MZYSB on tbsspb.MZYS1 equals tbmzys1.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.MZYS1, + // MZYS = tbmzys1.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_RJSSB + // join tbmzys2 in myModel.SYS_MZYSB on tbsspb.MZYS2 equals tbmzys2.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.MZYS2, + // MZYS = tbmzys2.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // })).ToList(); + //var listmzys = (from tbmzysb in myModel.SYS_MZYSB + // where tbmzysb.SSSID == rjss.SSSID + // select new + // { tbmzysb }).ToList(); + //for (int i = 0; i < listmzys.Count; i++) + //{ + // int mzysid = Convert.ToInt32(listmzys[i].tbmzysb.ID); + // var listys = listrjssmz.Where(a => a.MZYSID == mzysid).ToList(); + // Cus_MZYSSC mzys = new Cus_MZYSSC(); + // mzys.MZYSID = mzysid; + // mzys.SSSC = listys.Sum(a => a.SSSC); + // listmzyssc.Add(mzys); + //} + //listmzyssc = listmzyssc.OrderBy(a => a.SSSC).ToList(); + //rjss.MZYS1 = listmzyssc[0].MZYSID; + ////分配护士 + //List listhssc = new List(); + //var listrjsshs = ((from tbsspb in myModel.Bus_RJSSB + // join tbxhhs1 in myModel.SYS_HSB on tbsspb.XHHS1 equals tbxhhs1.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XHHS1, + // MZYS = tbxhhs1.HSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_RJSSB + // join tbxhhs2 in myModel.SYS_MZYSB on tbsspb.XHHS2 equals tbxhhs2.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XHHS2, + // MZYS = tbxhhs2.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_RJSSB + // join tbxshs1 in myModel.SYS_MZYSB on tbsspb.XSHS1 equals tbxshs1.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XSHS1, + // MZYS = tbxshs1.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_RJSSB + // join tbxshs2 in myModel.SYS_MZYSB on tbsspb.XSHS1 equals tbxshs2.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XSHS2, + // MZYS = tbxshs2.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // })).ToList(); + //var listxhhs = (from tbmzysb in myModel.SYS_HSB + // where tbmzysb.SSSID == rjss.SSSID + // select new + // { tbmzysb }).ToList(); + //for (int i = 0; i < listxhhs.Count; i++) + //{ + // int mzysid = Convert.ToInt32(listxhhs[i].tbmzysb.ID); + // var listys = listrjsshs.Where(a => a.MZYSID == mzysid).ToList(); + // Cus_MZYSSC mzys = new Cus_MZYSSC(); + // mzys.MZYSID = mzysid; + // mzys.SSSC = listys.Sum(a => a.SSSC); + // listrjsshs.Add(mzys); + //} + //listrjsshs = listrjsshs.OrderBy(a => a.SSSC).ToList(); + //rjss.XSHS1 = listrjsshs[0].MZYSID; + //rjss.XHHS1 = listrjsshs[1].MZYSID; + + var listrjss = (from tbrjss in myModel.Bus_RJSSB + where tbrjss.SSSID == rjss.SSSID && tbrjss.SSRQ == rjss.SSRQ && tbrjss.PBZT !=3 + select new + { + tbrjss + }).ToList(); + + listrjss = listrjss.OrderBy(a => a.tbrjss.SSJSSJ).ToList(); + if (listrjss.Count>0) + { + rjss.SSKSSJ = listrjss[0].tbrjss.SSJSSJ; + } + else + { + rjss.SSKSSJ = Convert.ToDateTime( DateTime.Now.AddHours(2).ToString("yyyy/MM/dd HH:00:00")); + } + int ssid = Convert.ToInt32(rjss.SSID); + Cus_SSSQB ssxxb = (from tbssxxb in myModel.SYS_SSXXB + 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 + where tbssxxb.ID == ssid + select new Cus_SSSQB + { + SSDJQZ = tbssdjb.QZ, + QKLXQZ = tbqklxb.QZ, + QJSC = tbqjscb.SSSC, + SSSC = tbssscb.SSSC, + SSLX = tbssxxb.SSLX, + }).Single(); + rjss.SSSC = ssxxb.SSSC; + rjss.QJSC = ssxxb.QJSC; + rjss.SSZSC = rjss.SSSC + rjss.QJSC; + rjss.SSJSSJ = Convert.ToDateTime(rjss.SSKSSJ).AddHours((double)rjss.SSZSC); + //int sssid = Convert.ToInt32(listsspb.tbsspbb.SSSID); + //int ssxxid = Convert.ToInt32(listsspb.tbsspbb.SSID); + + int sslxid = Convert.ToInt32(ssxxb.SSLX); + //int mzyszc = Convert.ToInt32(ssxxb.tbssxxb.MZYSZCID); + //int hszcid = Convert.ToInt32(ssxxb.tbssxxb.HSZCID); + //decimal sssc = Convert.ToInt32(listsspb.tbsspbb.SSZSC); + DateTime ssrq = Convert.ToDateTime(rjss.SSRQ); + DateTime sskssj = Convert.ToDateTime(rjss.SSKSSJ); + DateTime ssjssj = Convert.ToDateTime(rjss.SSJSSJ); + //分配麻醉医生 + List listmzyssc = new List(); + List listhssc = new List(); + //查询出所有麻醉医生 + var listmzys = (from tbmzysb in myModel.SYS_MZYSB + select new { tbmzysb }).ToList(); + //查询出本月的麻醉医生排班 + var listdypb = (from tbmzyspb in myModel.Bus_MZYSPBB + where tbmzyspb.SSKSSJ >= kssj + select new { tbmzyspb }).ToList(); + //查询出手术当天以排班的麻醉医生 + var listdtpb = listdypb.Where(a => a.tbmzyspb.SSRQ == ssrq).ToList(); + //移除当前时间有排班的麻醉医生 + for (int i = 0; i < listdtpb.Count; i++) + { + DateTime pbkssj = Convert.ToDateTime(listdtpb[i].tbmzyspb.SSKSSJ); + DateTime pbjssj = Convert.ToDateTime(listdtpb[i].tbmzyspb.SSKSSJ); + if (pbjssj < sskssj || pbkssj > ssjssj) + { + int id = Convert.ToInt32(listdtpb[i].tbmzyspb.MZYSID); + listmzys.RemoveAll(a => a.tbmzysb.ID == id); + } + } + var listsclx = listmzys.Where(a => a.tbmzysb.SCSS1 == sslxid || a.tbmzysb.SCSS2 == sslxid || a.tbmzysb.SCSS3 == sslxid).ToList(); + if (listsclx.Count > 0) + { + for (int i = 0; i < listsclx.Count; i++) + { + Cus_MZYSSC mzsc = new Cus_MZYSSC(); + int ysid = listsclx[i].tbmzysb.ID; + mzsc.MZYSID = ysid; + mzsc.SSSC = listdypb.Where(a => a.tbmzyspb.MZYSID == ysid).Sum(a => a.tbmzyspb.SSSC); + listmzyssc.Add(mzsc); + } + listmzyssc.OrderBy(a => a.SSSC); + rjss.MZYS1 = listmzyssc[0].MZYSID; + } + else + { + //没有擅长类型的麻醉医生 + for (int i = 0; i < listmzys.Count; i++) + { + Cus_MZYSSC mzsc = new Cus_MZYSSC(); + int ysid = listmzys[i].tbmzysb.ID; + mzsc.MZYSID = ysid; + mzsc.SSSC = listdypb.Where(a => a.tbmzyspb.MZYSID == ysid).Sum(a => a.tbmzyspb.SSSC); + listmzyssc.Add(mzsc); + } + listmzyssc.OrderBy(a => a.SSSC); + rjss.MZYS1 = listmzyssc[0].MZYSID; + } + //分配护士 + //查询手术室所有护士 + var lisths = (from tbhsb in myModel.SYS_HSB + where tbhsb.SSSID == rjss.SSSID + select new { tbhsb }).ToList(); + //查询出本月的护士排班 + var lisstbyhspb = (from tbhspbb in myModel.Bus_HSPBB + where tbhspbb.SSKSSJ >= kssj + select new { tbhspbb }).ToList(); + for (int i = 0; i < lisths.Count; i++) + { + Cus_MZYSSC hssc = new Cus_MZYSSC(); + int ysid = lisths[i].tbhsb.ID; + hssc.MZYSID = ysid; + hssc.SSSC = lisstbyhspb.Where(a => a.tbhspbb.HSID == ysid).Sum(a => a.tbhspbb.SSSC); + listhssc.Add(hssc); + } + listhssc.OrderBy(a => a.SSSC); + rjss.XSHS1 = listhssc[0].MZYSID; + rjss.XHHS1 = listhssc[1].MZYSID; + + myModel.Bus_RJSSB.Add(rjss); + myModel.SaveChanges(); + MessageBox.Show("申请成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show("申请失败" + ex.ToString()); + } + + } + private void btn_qx_Click(object sender, RoutedEventArgs e) + { + this.Close(); + } + private void PBFS_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) + { + + } + + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZRYWindow.xaml b/SchedulingSystemClient/InsertWindow/XZRYWindow.xaml new file mode 100644 index 0000000..776923a --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZRYWindow.xaml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZRYWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZRYWindow.xaml.cs new file mode 100644 index 0000000..1223bdc --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZRYWindow.xaml.cs @@ -0,0 +1,85 @@ +using SchedulingSystem.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.InsertWindow +{ + /// + /// XZRYWindow.xaml 的交互逻辑 + /// + public partial class XZRYWindow : Window + { + public XZRYWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (xm.Text==null || xm.Text ==string.Empty) + { + MessageBox.Show("请填写姓名"); + return; + } + if (gh.Text == null || gh.Text == string.Empty) + { + MessageBox.Show("请填写工号"); + return; + } + if (js.SelectedValue == null) + { + MessageBox.Show("请选择角色"); + return; + } + var listyh = (from tbyh in myModel.SYS_YHB where tbyh.GH == gh.Text select new { tbyh }).ToList(); + if (listyh.Count>0) + { + MessageBox.Show("工号不能重复"); + return; + } + SYS_YHB yh = new SYS_YHB(); + yh.GH = gh.Text; + yh.YHM = xm.Text; + yh.MM = "123"; + yh.JSID =Convert.ToInt32(js.SelectedValue); + try + { + myModel.SYS_YHB.Add(yh); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listjs = new List(); + listjs = (from tbjs in myModel.SYS_JSB + where tbjs.SFQY ==true + select new ComboBoxBinding + { + ID = tbjs.ID, + Name = tbjs.JSMC, + }).ToList(); + + js.ItemsSource = listjs; + js.SelectedValuePath = "ID"; + js.DisplayMemberPath = "Name"; + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZSBWindow.xaml b/SchedulingSystemClient/InsertWindow/XZSBWindow.xaml new file mode 100644 index 0000000..c4a842c --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZSBWindow.xaml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZSBWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZSBWindow.xaml.cs new file mode 100644 index 0000000..44c3d6b --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZSBWindow.xaml.cs @@ -0,0 +1,120 @@ +using SchedulingSystem.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; + +namespace SchedulingSystemClient.InsertWindow +{ + /// + /// XZSBWindow.xaml 的交互逻辑 + /// + public partial class XZSBWindow : Window + { + public XZSBWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listsblx = new List(); + listsblx = (from tbsblxb in myModel.SYS_SBLXB + select new ComboBoxBinding + { + ID = tbsblxb.ID, + Name = tbsblxb.Name, + }).ToList(); + sblx.ItemsSource = listsblx; + sblx.SelectedValuePath = "ID"; + sblx.DisplayMemberPath = "Name"; + List listsss = new List(); + listsss = (from tbsssb in myModel.SYS_SSSB + select new ComboBoxBinding + { + ID = tbsssb.ID, + Name = tbsssb.SSSMC, + }).ToList(); + sss.ItemsSource = listsss; + sss.SelectedValuePath = "ID"; + sss.DisplayMemberPath = "Name"; + List listsbdj = new List(); + listsbdj = (from tbsbdj in myModel.SYS_SBDJB + select new ComboBoxBinding + { + ID = tbsbdj.ID, + Name = tbsbdj.Name, + }).ToList(); + sbdj.ItemsSource = listsbdj; + sbdj.SelectedValuePath = "ID"; + sbdj.DisplayMemberPath = "Name"; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (sbbm.Text == string.Empty) + { + MessageBox.Show("请填写设备编码"); + return; + } + if (sbmc.Text == string.Empty) + { + MessageBox.Show("请填写设备名称"); + return; + } + if (sss.SelectedValue == null) + { + MessageBox.Show("请选择手术室"); + return; + } + if (sblx.SelectedValue == null) + { + MessageBox.Show("请选择设备类型"); + return; + } + if (sbdj.SelectedValue == null) + { + MessageBox.Show("请选择设备等级"); + return; + } + decimal jg; + try + { + if (sbjg.Text!=string.Empty) + { + jg = Convert.ToDecimal(sbjg.Text); + } + else + { + jg = 0; + } + } + catch (Exception ) + { + MessageBox.Show("设备价格格式不正确"); + return; + } + int sssid = Convert.ToInt32(sss.SelectedValue); + int sblxid = Convert.ToInt32(sblx.SelectedValue); + int sbjdid = Convert.ToInt32(sbdj.SelectedValue); + Bus_SBB sbb = new Bus_SBB(); + sbb.SBBM = sbbm.Text.Trim(); + sbb.SBDJ = sbjdid; + sbb.SBJG = jg; + sbb.SBLX = sblxid; + sbb.SBMC = sbmc.Text.Trim(); + sbb.SSSID = sssid; + try + { + myModel.Bus_SBB.Add(sbb); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZSSLXWindow.xaml b/SchedulingSystemClient/InsertWindow/XZSSLXWindow.xaml new file mode 100644 index 0000000..3f56617 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZSSLXWindow.xaml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZSSLXWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZSSLXWindow.xaml.cs new file mode 100644 index 0000000..d9a2749 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZSSLXWindow.xaml.cs @@ -0,0 +1,71 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XZSSLXWindow.xaml 的交互逻辑 + /// + public partial class XZSSLXWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XZSSLXWindow() + { + InitializeComponent(); + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (sslx.Text == null || sslx.Text == string.Empty) + { + MessageBox.Show("请填写手术类型"); + return; + } + if (lxbm.Text == null || lxbm.Text == string.Empty) + { + MessageBox.Show("请填写类型编码"); + return; + } + + SYS_SSDJB sslxb = new SYS_SSDJB(); + sslxb.SSDJ = sslx.Text; + sslxb.DJMS = lxbm.Text; + //sslxb.SFQY = sfqy.SelectedValue.ToString() == "0" ? true : false; + try + { + myModel.SYS_SSDJB.Add(sslxb); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + sfqy.SelectedIndex = 0; + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = 0; + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZSSQJDWindow.xaml b/SchedulingSystemClient/InsertWindow/XZSSQJDWindow.xaml new file mode 100644 index 0000000..f071797 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZSSQJDWindow.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZSSQJDWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZSSQJDWindow.xaml.cs new file mode 100644 index 0000000..3d60823 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZSSQJDWindow.xaml.cs @@ -0,0 +1,82 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XZSSQJDWindow.xaml 的交互逻辑 + /// + public partial class XZSSQJDWindow : Window + { + public XZSSQJDWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + int sj = 0; + if (ssqjd.Text == null || ssqjd.Text == string.Empty) + { + MessageBox.Show("请填写手术清洁度"); + return; + } + if (qjsj.SelectedValue == null) + { + MessageBox.Show("请选择清洁时间"); + return; + } + + SYS_SSQKLXB ssqjdb = new SYS_SSQKLXB(); + ssqjdb.QKLX = ssqjd.Text; + ssqjdb.QJSCID = Convert.ToInt32(qjsj.SelectedValue); + //ssqjdb. = Convert.ToDecimal(qjsj.Text.Replace("小时", "")); + //ssqjdb.sfq = sfqy.SelectedValue.ToString() == "0"; + try + { + myModel.SYS_SSQKLXB.Add(ssqjdb); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + private void Window_Loaded(object sender, RoutedEventArgs e) + { + sfqy.SelectedIndex = 0; + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = 0; + List listqjsc = new List(); + listqjsc.Add(new ComboBoxBinding() { ID = 0, Name = "0.5小时" }); + listqjsc.Add(new ComboBoxBinding() { ID = 1, Name = "1小时" }); + listqjsc.Add(new ComboBoxBinding() { ID = 2, Name = "1.5小时" }); + listqjsc.Add(new ComboBoxBinding() { ID = 3, Name = "2小时" }); + qjsj.ItemsSource = listqjsc; + qjsj.SelectedValuePath = "ID"; + qjsj.DisplayMemberPath = "Name"; + qjsj.SelectedIndex = 0; + } + + + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZSSSWindow.xaml b/SchedulingSystemClient/InsertWindow/XZSSSWindow.xaml new file mode 100644 index 0000000..188c90a --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZSSSWindow.xaml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZSSSWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZSSSWindow.xaml.cs new file mode 100644 index 0000000..30be5eb --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZSSSWindow.xaml.cs @@ -0,0 +1,97 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XZSSSWindow.xaml 的交互逻辑 + /// + public partial class XZSSSWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XZSSSWindow() + { + InitializeComponent(); + + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (sssmc.Text==null||sssmc.Text==string.Empty) + { + MessageBox.Show("请填写手术室名称"); + return; + } + if (sssbm.Text == null || sssbm.Text == string.Empty) + { + MessageBox.Show("请填写手术编码"); + return; + } + //List listsss = (from tbsss in myModel.SYS_SSSB + // select new Cus_SssLb + // { + // SSSBM = tbsss.SSSBM, + // SSSMC = tbsss.SSSMC, + // }).ToList(); + + //if (listsss.Where(a=>a.SSSMC == sssmc.Text).Count()>0) + //{ + // MessageBox.Show("该手术室名称已存在"); + // return; + //} + //if (listsss.Where(a => a.SSSBM == sssbm.Text).Count() > 0) + //{ + // MessageBox.Show("该手术室名称已存在"); + // return; + //} + SYS_SSSB sssb = new SYS_SSSB(); + sssb.SSSMC = sssmc.Text; + sssb.SSSBM = sssbm.Text; + sssb.SFKQ = sfqy.SelectedValue.ToString() == "0" ? true : false; + try + { + myModel.SYS_SSSB.Add(sssb); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + + + } + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + sfqy.SelectedIndex = 0; + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + List listrjsss = new List(); + listrjsss.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listrjsss.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = 0; + rjsss.ItemsSource = listrjsss; + rjsss.SelectedValuePath = "ID"; + rjsss.DisplayMemberPath = "Name"; + rjsss.SelectedIndex = 1; + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZSSXXWindow.xaml b/SchedulingSystemClient/InsertWindow/XZSSXXWindow.xaml new file mode 100644 index 0000000..f84f38d --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZSSXXWindow.xaml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZSSXXWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZSSXXWindow.xaml.cs new file mode 100644 index 0000000..bf7d056 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZSSXXWindow.xaml.cs @@ -0,0 +1,209 @@ +using SchedulingSystem.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; + +namespace SchedulingSystemClient.InsertWindow +{ + /// + /// XZSSXXWindow.xaml 的交互逻辑 + /// + public partial class XZSSXXWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XZSSXXWindow() + { + InitializeComponent(); + } + List listsssc = new List(); + List listssjb = new List(); + List listssqjd = new List(); + List listmzys = new List(); + List listxhhs = new List(); + List listsslb = new List(); + List listcyss = new List(); + + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + listcyss.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listcyss.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + listsssc = (from tbsssc in myModel.SYS_SSSCB + select new ComboBoxBinding + { + ID = tbsssc.ID, + Name = tbsssc.NAME, + }).ToList(); + listssjb = (from tbssjb in myModel.SYS_SSDJB + select new ComboBoxBinding + { + ID = tbssjb.ID, + Name = tbssjb.SSDJ, + }).ToList(); + listssqjd = (from tbssqjd in myModel.SYS_SSQKLXB + select new ComboBoxBinding + { + ID = tbssqjd.ID, + Name = tbssqjd.QKLX, + }).ToList(); + listmzys = (from tbmzyszc in myModel.SYS_YSZCB + select new ComboBoxBinding + { + ID = tbmzyszc.ID, + Name = tbmzyszc.Name, + }).ToList(); + listxhhs = (from tbxhhxzc in myModel.SYS_HSZCB + select new ComboBoxBinding + { + ID = tbxhhxzc.ID, + Name = tbxhhxzc.Name, + }).ToList(); + listsslb = (from tbxxlb in myModel.SYS_SSLXB + select new ComboBoxBinding + { + ID = tbxxlb.ID, + Name = tbxxlb.SSLX, + }).ToList(); + yjsssc.ItemsSource = listsssc; + yjsssc.SelectedValuePath = "ID"; + yjsssc.DisplayMemberPath = "Name"; + ssjb.ItemsSource = listssjb; + ssjb.SelectedValuePath = "ID"; + ssjb.DisplayMemberPath = "Name"; + ssqjd.ItemsSource = listssqjd; + ssqjd.SelectedValuePath = "ID"; + ssqjd.DisplayMemberPath = "Name"; + mzyszc.ItemsSource = listmzys; + mzyszc.SelectedValuePath = "ID"; + mzyszc.DisplayMemberPath = "Name"; + xhhszc.ItemsSource = listxhhs; + xhhszc.SelectedValuePath = "ID"; + xhhszc.DisplayMemberPath = "Name"; + sslb.ItemsSource = listsslb; + sslb.SelectedValuePath = "ID"; + sslb.DisplayMemberPath = "Name"; + cyss.ItemsSource = listcyss; + cyss.SelectedValuePath = "ID"; + cyss.DisplayMemberPath = "Name"; + cyss.SelectedIndex = 0; + } + + /// + /// 保存 + /// + /// + /// + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + try + { + string strssbm = ssbm.Text; + string strssmc = ssmc.Text; + string strpyszm = pyszm.Text; + int? intyjsssc; + int? intssjb; + int? intssqjd; + int? intmzyszc; + int? intxhhszc; + int? intsslb; + bool? sfcy; + + if (strssbm == string.Empty || strssbm == null) + { + MessageBox.Show("请填写手术编码"); + return; + } + if (strssmc == string.Empty || strssmc == null) + { + MessageBox.Show("请填写手术名称"); + return; + } + if (sslb.SelectedValue == null) + { + intsslb = null; + MessageBox.Show("请选择手术类别"); + return; + } + else + { + intsslb = Convert.ToInt32(sslb.SelectedValue); + } + if (yjsssc.SelectedValue == null) + { + intyjsssc = null; + } + else + { + intyjsssc = Convert.ToInt32(yjsssc.SelectedValue); + } + if (ssjb.SelectedValue == null) + { + intssjb = null; + } + else + { + intssjb = Convert.ToInt32(ssjb.SelectedValue); + } + if (ssqjd.SelectedValue == null) + { + intssqjd = null; + } + else + { + intssqjd = Convert.ToInt32(ssqjd.SelectedValue); + } + if (mzyszc.SelectedValue == null) + { + intmzyszc = null; + } + else + { + intmzyszc = Convert.ToInt32(mzyszc.SelectedValue); + } + if (xhhszc.SelectedValue == null) + { + intxhhszc = null; + } + else + { + intxhhszc = Convert.ToInt32(xhhszc.SelectedValue); + } + + sfcy = Convert.ToInt32(sslb.SelectedValue)==0?true:false; + + var listssxx = (from tbssxxb in myModel.SYS_SSXXB + where tbssxxb.SSBM == strssbm && tbssxxb.SSMC == strssmc + select new + { + tbssxxb + }).ToList(); + if (listssxx.Count > 0) + { + MessageBox.Show("手术编码和名称已存在"); + return; + } + SYS_SSXXB ssxxb = new SYS_SSXXB(); + ssxxb.SSBM = strssbm; + ssxxb.SSMC = strssbm; + ssxxb.PYSZM = strpyszm; + ssxxb.SSSCID = intyjsssc; + ssxxb.SSDJID = intssjb; + ssxxb.SSQKLXID = intssqjd; + ssxxb.MZYSZCID = intmzyszc; + ssxxb.HSZCID = intxhhszc; + ssxxb.SSLX = intsslb; + ssxxb.CJSS = sfcy; + ssxxb.IsICD = false; + myModel.SYS_SSXXB.Add(ssxxb); + myModel.SaveChanges(); + MessageBox.Show("保存成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZYSVIPWindow.xaml b/SchedulingSystemClient/InsertWindow/XZYSVIPWindow.xaml new file mode 100644 index 0000000..d7d153e --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZYSVIPWindow.xaml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZYSVIPWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZYSVIPWindow.xaml.cs new file mode 100644 index 0000000..0ded83d --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZYSVIPWindow.xaml.cs @@ -0,0 +1,73 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// YSVIPWindow.xaml 的交互逻辑 + /// + public partial class XZYSVIPWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XZYSVIPWindow() + { + InitializeComponent(); + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (ysxm.Text == null || ysxm.Text == string.Empty) + { + MessageBox.Show("请填写患者名称"); + return; + } + if (ysbm.Text == null || ysbm.Text == string.Empty) + { + MessageBox.Show("请填写诊疗卡号"); + return; + } + + SYS_YSVIPB ysvip = new SYS_YSVIPB(); + ysvip.YSXM = ysxm.Text; + ysvip.YSBM = ysbm.Text; + try + { + myModel.SYS_YSVIPB.Add(ysvip); + myModel.SaveChanges(); + MessageBox.Show("新增成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("新增失败"); + } + } + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + //List listysxm = new List(); + //listysxm = (from tbysb in myModel.SYS_YSB + // select new ComboBoxBinding + // { + // ID = tbysb.ID, + // Name = tbysb.YSXM, + // }).ToList(); + + //ysxm.ItemsSource = listysxm; + //ysxm.SelectedValuePath = "ID"; + //ysxm.DisplayMemberPath = "Name"; + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZYSWindow.xaml b/SchedulingSystemClient/InsertWindow/XZYSWindow.xaml new file mode 100644 index 0000000..6a28201 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZYSWindow.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZYSWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZYSWindow.xaml.cs new file mode 100644 index 0000000..60aaf70 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZYSWindow.xaml.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; + +namespace SchedulingSystem +{ + /// + /// XZYSWindow.xaml 的交互逻辑 + /// + public partial class XZYSWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XZYSWindow() + { + InitializeComponent(); + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (ysmc.Text == null || ysmc.Text == string.Empty) + { + MessageBox.Show("请填写医生姓名"); + return; + } + if (ysbm.Text == null || ysbm.Text == string.Empty) + { + MessageBox.Show("请填写医生编码"); + return; + } + //SYS_YSB ysb = new SYS_YSB(); + //ysb.YSXM = ysmc.Text; + //ysb.YSBM = ysbm.Text; + //ysb.YSJB = Convert.ToInt32(yszc.SelectedValue); + //ysb.SFQY = sfqy.SelectedValue.ToString() == "0" ? true : false; + //try + //{ + // myModel.SYS_YSB.Add(ysb); + // myModel.SaveChanges(); + // MessageBox.Show("新增成功"); + // this.Close(); + //} + //catch (Exception) + //{ + // MessageBox.Show("新增失败"); + //} + } + private void Window_Loaded(object sender, RoutedEventArgs e) + { + //sfqy.SelectedIndex = 0; + //List listsfqy = new List(); + //listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + //listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + //sfqy.ItemsSource = listsfqy; + //sfqy.SelectedValuePath = "ID"; + //sfqy.DisplayMemberPath = "Name"; + //sfqy.SelectedIndex = 0; + //List listyszc = new List(); + //listyszc = (from tbyszcb in myModel.SYS_YSZCB + // select new ComboBoxBinding + // { + // ID = tbyszcb.ID, + // Name = tbyszcb.YSZC, + // }).ToList(); + //yszc.ItemsSource = listyszc; + //yszc.SelectedValuePath = "ID"; + //yszc.DisplayMemberPath = "Name"; + } + } +} diff --git a/SchedulingSystemClient/InsertWindow/XZYSZCWindow.xaml b/SchedulingSystemClient/InsertWindow/XZYSZCWindow.xaml new file mode 100644 index 0000000..fd32336 --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZYSZCWindow.xaml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/InsertWindow/XZYSZCWindow.xaml.cs b/SchedulingSystemClient/InsertWindow/XZYSZCWindow.xaml.cs new file mode 100644 index 0000000..babac9c --- /dev/null +++ b/SchedulingSystemClient/InsertWindow/XZYSZCWindow.xaml.cs @@ -0,0 +1,73 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XZYSZCWindow.xaml 的交互逻辑 + /// + public partial class XZYSZCWindow : Window + { + public XZYSZCWindow() + { + InitializeComponent(); + } + + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + //if (yszc.Text == null || yszc.Text == string.Empty) + //{ + // MessageBox.Show("请填写医生职称"); + // return; + //} + //if (zcbm.Text == null || zcbm.Text == string.Empty) + //{ + // MessageBox.Show("请填写职称编码"); + // return; + //} + //SYS_YSZCB yszb = new SYS_YSZCB(); + //yszb.YSZC = yszc.Text; + //yszb.ZCBM = zcbm.Text; + //yszb.SFQY = sfqy.SelectedValue.ToString() == "0" ? true : false; + //try + //{ + // myModel.SYS_YSZCB.Add(yszb); + // myModel.SaveChanges(); + // MessageBox.Show("新增成功"); + // this.Close(); + //} + //catch (Exception) + //{ + // MessageBox.Show("新增失败"); + //} + + + } + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + sfqy.SelectedIndex = 0; + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = 0; + } + + } +} diff --git a/SchedulingSystemClient/JcxxWindow.xaml b/SchedulingSystemClient/JcxxWindow.xaml new file mode 100644 index 0000000..269ddc6 --- /dev/null +++ b/SchedulingSystemClient/JcxxWindow.xaml @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/JcxxWindow.xaml.cs b/SchedulingSystemClient/JcxxWindow.xaml.cs new file mode 100644 index 0000000..c479910 --- /dev/null +++ b/SchedulingSystemClient/JcxxWindow.xaml.cs @@ -0,0 +1,1095 @@ +using SchedulingSystem; +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using SchedulingSystemClient.InsertWindow; +using SchedulingSystemClient.UpdateWindow; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Windows; +using System.Windows.Controls; + + +namespace SchedulingSystemClient +{ + /// + /// JcxxWindow.xaml 的交互逻辑 + /// + public partial class JcxxWindow : UserControl + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public JcxxWindow() + { + InitializeComponent(); + } + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + ssgrid.Visibility = Visibility.Visible; + btn_bc.Visibility = Visibility.Collapsed; + SS.IsEnabled = false; + str = "手术"; + ISCY.IsChecked = true; + ShuaXin(); + } + string str = "手术"; + private void SS_Click(object sender, RoutedEventArgs e) + { + str = "手术"; + SS.IsEnabled = false; + SSS.IsEnabled = true; + KS.IsEnabled = true; + MZYS.IsEnabled = true; + HSXX.IsEnabled = true; + SSSBD.IsEnabled = true; + labcyss.Visibility = Visibility.Visible; + ISCY.Visibility = Visibility.Visible; + ssgrid.Visibility = Visibility.Visible; + sssgrid.Visibility = Visibility.Collapsed; + ksgrid.Visibility = Visibility.Collapsed; + mzysgrid.Visibility = Visibility.Collapsed; + hsgrid.Visibility = Visibility.Collapsed; + sssbdgrid.Visibility = Visibility.Collapsed; + btn_bc.Visibility = Visibility.Collapsed; + btn_xz.Visibility = Visibility.Visible; + btn_xg.Visibility = Visibility.Visible; + btn_sc.Visibility = Visibility.Visible; + btn_sx.Visibility = Visibility.Visible; + SXSS.Visibility = Visibility.Visible; + GJZ.Visibility = Visibility.Visible; + ShuaXin(); + } + private void SSS_Click(object sender, RoutedEventArgs e) + { + str = "手术室"; + SS.IsEnabled = true; + SSS.IsEnabled = false; + KS.IsEnabled = true; + MZYS.IsEnabled = true; + HSXX.IsEnabled = true; + SSSBD.IsEnabled = true; + labcyss.Visibility = Visibility.Collapsed; + ISCY.Visibility = Visibility.Collapsed; + ssgrid.Visibility = Visibility.Collapsed; + sssgrid.Visibility = Visibility.Visible; + ksgrid.Visibility = Visibility.Collapsed; + mzysgrid.Visibility = Visibility.Collapsed; + hsgrid.Visibility = Visibility.Collapsed; + sssbdgrid.Visibility = Visibility.Collapsed; + btn_bc.Visibility = Visibility.Collapsed; + btn_xz.Visibility = Visibility.Visible; + btn_xg.Visibility = Visibility.Visible; + btn_sc.Visibility = Visibility.Visible; + btn_sx.Visibility = Visibility.Visible; + SXSS.Visibility = Visibility.Collapsed; + GJZ.Visibility = Visibility.Collapsed; + ShuaXin(); + } + private void KS_Click(object sender, RoutedEventArgs e) + { + str = "科室"; + SS.IsEnabled = true; + SSS.IsEnabled = true; + KS.IsEnabled = false; + MZYS.IsEnabled = true; + HSXX.IsEnabled = true; + SSSBD.IsEnabled = true; + labcyss.Visibility = Visibility.Collapsed; + ISCY.Visibility = Visibility.Collapsed; + ssgrid.Visibility = Visibility.Collapsed; + sssgrid.Visibility = Visibility.Collapsed; + ksgrid.Visibility = Visibility.Visible; + mzysgrid.Visibility = Visibility.Collapsed; + hsgrid.Visibility = Visibility.Collapsed; + sssbdgrid.Visibility = Visibility.Collapsed; + btn_bc.Visibility = Visibility.Collapsed; + btn_xz.Visibility = Visibility.Visible; + btn_xg.Visibility = Visibility.Visible; + btn_sc.Visibility = Visibility.Visible; + btn_sx.Visibility = Visibility.Visible; + SXSS.Visibility = Visibility.Collapsed; + GJZ.Visibility = Visibility.Collapsed; + ShuaXin(); + } + private void MZYS_Click(object sender, RoutedEventArgs e) + { + str = "麻醉医生"; + SS.IsEnabled = true; + SSS.IsEnabled = true; + KS.IsEnabled = true; + MZYS.IsEnabled = false; + HSXX.IsEnabled = true; + SSSBD.IsEnabled = true; + labcyss.Visibility = Visibility.Collapsed; + ISCY.Visibility = Visibility.Collapsed; + ssgrid.Visibility = Visibility.Collapsed; + sssgrid.Visibility = Visibility.Collapsed; + ksgrid.Visibility = Visibility.Collapsed; + mzysgrid.Visibility = Visibility.Visible; + hsgrid.Visibility = Visibility.Collapsed; + sssbdgrid.Visibility = Visibility.Collapsed; + btn_bc.Visibility = Visibility.Collapsed; + btn_xz.Visibility = Visibility.Visible; + btn_xg.Visibility = Visibility.Visible; + btn_sc.Visibility = Visibility.Visible; + btn_sx.Visibility = Visibility.Visible; + SXSS.Visibility = Visibility.Collapsed; + GJZ.Visibility = Visibility.Collapsed; + ShuaXin(); + } + private void HS_Click(object sender, RoutedEventArgs e) + { + str = "护士"; + SS.IsEnabled = true; + SSS.IsEnabled = true; + KS.IsEnabled = true; + MZYS.IsEnabled = true; + HSXX.IsEnabled = false; + SSSBD.IsEnabled = true; + labcyss.Visibility = Visibility.Collapsed; + ISCY.Visibility = Visibility.Collapsed; + ssgrid.Visibility = Visibility.Collapsed; + sssgrid.Visibility = Visibility.Collapsed; + ksgrid.Visibility = Visibility.Collapsed; + mzysgrid.Visibility = Visibility.Collapsed; + hsgrid.Visibility = Visibility.Visible; + sssbdgrid.Visibility = Visibility.Collapsed; + btn_bc.Visibility = Visibility.Collapsed; + btn_xz.Visibility = Visibility.Visible; + btn_xg.Visibility = Visibility.Visible; + btn_sc.Visibility = Visibility.Visible; + btn_sx.Visibility = Visibility.Visible; + SXSS.Visibility = Visibility.Collapsed; + GJZ.Visibility = Visibility.Collapsed; + ShuaXin(); + } + private void SSSBD_Click(object sender, RoutedEventArgs e) + { + str = "手术室绑定"; + SS.IsEnabled = true; + SSS.IsEnabled = true; + KS.IsEnabled = true; + MZYS.IsEnabled = true; + HSXX.IsEnabled = true; + SSSBD.IsEnabled = false; + labcyss.Visibility = Visibility.Collapsed; + ISCY.Visibility = Visibility.Collapsed; + ssgrid.Visibility = Visibility.Collapsed; + sssgrid.Visibility = Visibility.Collapsed; + ksgrid.Visibility = Visibility.Collapsed; + mzysgrid.Visibility = Visibility.Collapsed; + hsgrid.Visibility = Visibility.Collapsed; + sssbdgrid.Visibility = Visibility.Visible; + btn_bc.Visibility = Visibility.Visible; + btn_xz.Visibility = Visibility.Collapsed; + btn_xg.Visibility = Visibility.Collapsed; + btn_sc.Visibility = Visibility.Collapsed; + btn_sx.Visibility = Visibility.Collapsed; + SXSS.Visibility = Visibility.Collapsed; + GJZ.Visibility = Visibility.Collapsed; + ShuaXin(); + } + int ssid = 0; + int sssid = 0; + int ksid = 0; + int mzysid = 0; + int hsid = 0; + + ////==========================手术室============================ + //private void xzsss_Click(object sender, RoutedEventArgs e) + //{ + // XZSSSWindow window = new XZSSSWindow(); + // window.Show(); + //} + //private void cxsss_Click(object sender, RoutedEventArgs e) + //{ + // List listsss = (from tbsssb in myModel.SYS_SSSB + // select new Cus_SssLb + // { + // ID = tbsssb.ID, + // SSSBM = tbsssb.SSSBM, + // SSSMC = tbsssb.SSSMC, + // SFQY = tbsssb.SFQY == true ? "是" : "否", + // }).ToList(); + // sssdata.ItemsSource = listsss; + //} + + //private void xgsss_Click(object sender, RoutedEventArgs e) + //{ + // if (sssid != 0) + // { + // XGSSSWindow window = new XGSSSWindow(sssid); + // window.ShowDialog(); + // } + // else + // { + // MessageBox.Show("请选择需要修改的信息"); + // } + //} + ////==========================医生============================= + //private void xzys_Click(object sender, RoutedEventArgs e) + //{ + // XZYSWindow window = new XZYSWindow(); + // window.ShowDialog(); + //} + //private void xgys_Click(object sender, RoutedEventArgs e) + //{ + // if (ysid != 0) + // { + // XGYSWindow window = new XGYSWindow(ysid); + // window.ShowDialog(); + // } + // else + // { + // MessageBox.Show("请选择需要修改的信息"); + // } + //} + + //private void cxys_Click(object sender, RoutedEventArgs e) + //{ + // List listys = (from tbysb in myModel.SYS_YSB + // join tbyszcb in myModel.SYS_YSZCB on tbysb.YSJB equals tbyszcb.ID + // select new Cus_YsLb + // { + // ID = tbysb.ID, + // YSMC = tbysb.YSXM, + // YSBM = tbysb.YSBM, + // YSJB = tbyszcb.YSZC, + // SFQY = tbysb.SFQY == true ? "是" : "否", + // }).ToList(); + // ysdata.ItemsSource = listys; + //} + ////==========================科室============================= + + //private void xzks_Click(object sender, RoutedEventArgs e) + //{ + // XZKSWindow window = new XZKSWindow(); + // window.ShowDialog(); + //} + //private void xgks_Click(object sender, RoutedEventArgs e) + //{ + // if (ksid != 0) + // { + // XGKSWindow window = new XGKSWindow(ksid); + // window.ShowDialog(); + // } + // else + // { + // MessageBox.Show("请选择需要修改的信息"); + // } + //} + //private void cxks_Click(object sender, RoutedEventArgs e) + //{ + // List listks = (from tbksb in myModel.SYS_KSB + // select new Cus_KsLb + // { + // ID = tbksb.ID, + // KSBM = tbksb.KSBM, + // KSMC = tbksb.KSMC, + // SFQY = tbksb.SFQY == true ? "是" : "否", + // }).ToList(); + // ksdata.ItemsSource = listks; + //} + ////==========================手术类型============================= + //private void xzsslx_Click(object sender, RoutedEventArgs e) + //{ + // XZSSLXWindow window = new XZSSLXWindow(); + // window.ShowDialog(); + //} + //private void xgsslx_Click(object sender, RoutedEventArgs e) + //{ + // if (sslxid != 0) + // { + // XGSSLXWindow window = new XGSSLXWindow(sslxid); + // window.ShowDialog(); + // } + // else + // { + // MessageBox.Show("请选择需要修改的信息"); + // } + //} + //private void cxsslx_Click(object sender, RoutedEventArgs e) + //{ + // List listsslx = (from tbsslxb in myModel.SYS_SSQKLXB + // select new Cus_Sslxb + // { + // ID = tbsslxb.ID, + // SSLX = tbsslxb.SSLX, + // LXBM = tbsslxb.LXBM, + // SFQY = tbsslxb.SFQY == true ? "是" : "否", + // }).ToList(); + // sslxdata.ItemsSource = listsslx; + //} + + ////==================手术清洁度============================= + + //private void xzssqjd_Click(object sender, RoutedEventArgs e) + //{ + // XZSSQJDWindow window = new XZSSQJDWindow(); + // window.ShowDialog(); + //} + //private void scssqjd_Click(object sender, RoutedEventArgs e) + //{ + // if (ssqjdid != 0) + // { + // MessageBoxResult dr = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + // if (dr == MessageBoxResult.OK) + // { + // var qjd = (from tbqjd in myModel.SYS_SSQKLXB + // where tbqjd.ID == ssqjdid + // select new + // { + // tbqjd, + // }).Single(); + // try + // { + // myModel.SYS_SSQKLXB.Remove(qjd.tbqjd); + // myModel.SaveChanges(); + // MessageBox.Show("删除成功"); + + // } + // catch (Exception) + // { + // MessageBox.Show("删除失败"); + // } + + + // } + // } + // else + // { + // MessageBox.Show("请选择需要删除的内容"); + // } + //} + //private void cxssqjd_Click(object sender, RoutedEventArgs e) + //{ + // List listssqjd = (from tbssqjd in myModel.SYS_SSQKLXB + // select new Cus_Ssqjdb + // { + // ID = tbssqjd.ID, + // SSQJD = tbssqjd.SSQJD, + // QJSJID = tbssqjd.QJSJID, + // strQJSJ = tbssqjd.QJSJ + "小时", + // strSFQY = tbssqjd.SFQY == true ? "是" : "否", + // }).ToList(); + // ssqjddata.ItemsSource = listssqjd; + //} + + //==================SelectionChanged============================= + private void sssdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + sssid = 0; + Cus_SssLb selectedRow = sssdata.SelectedItem as Cus_SssLb; + + if (selectedRow != null) + { + sssid = selectedRow.ID; + } + } + + private void ksdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + ksid = 0; + Cus_KsLb selectedRow = ksdata.SelectedItem as Cus_KsLb; + + if (selectedRow != null) + { + ksid = selectedRow.ID; + ksrow = selectedRow; + } + } + + private void kslbdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + bdksid = 0; + Cus_BDKS selectedRow = kslbdata.SelectedItem as Cus_BDKS; + + if (selectedRow != null) + { + bdksid = selectedRow.ID; + row = selectedRow; + } + } + private void ssslbdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + + } + + private void ssdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + ssid = 0; + Cus_SSXXB selectedRow = ssdata.SelectedItem as Cus_SSXXB; + + if (selectedRow != null) + { + ssid = selectedRow.ID; + ssrow = selectedRow; + } + } + + private void mzysdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + mzysid = 0; + Cus_MZYS selectedRow = mzysdata.SelectedItem as Cus_MZYS; + + if (selectedRow != null) + { + mzysid = selectedRow.ID; + mzysrow = selectedRow; + } + } + private void hsdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + hsid = 0; + Cus_HS selectedRow = hsdata.SelectedItem as Cus_HS; + + if (selectedRow != null) + { + hsid = selectedRow.ID; + hsrow = selectedRow; + } + } + /// + /// 刷新 + /// + private void ShuaXin() + { + sssid = 0; + ssid = 0; + ksid = 0; + mzysid = 0; + hsid = 0; + if (str == "手术") + { + string gjz = GJZ.Text; + List listss = new List(); + if (ISCY.IsChecked == true) + { + listss = (from tbssxxb in myModel.SYS_SSXXB + join tbssjbb in myModel.SYS_SSDJB on tbssxxb.SSDJID equals tbssjbb.ID into joinssjb + from ssjbb in joinssjb.DefaultIfEmpty() + join tbsslxb in myModel.SYS_SSLXB on tbssxxb.SSLX equals tbsslxb.ID into joinsslx + from sslxb in joinsslx.DefaultIfEmpty() + join tbssscb in myModel.SYS_SSSCB on tbssxxb.SSSCID equals tbssscb.ID into joinsssc + from ssscb in joinsssc.DefaultIfEmpty() + join tbssqjd in myModel.SYS_SSQKLXB on tbssxxb.SSQKLXID equals tbssqjd.ID into joinssqjd + from ssqjd in joinssqjd.DefaultIfEmpty() + join tbmzyszcb in myModel.SYS_YSZCB on tbssxxb.MZYSZCID equals tbmzyszcb.ID into joinmzyszcb + from mzyszcb in joinmzyszcb.DefaultIfEmpty() + join tbxhhszcb in myModel.SYS_HSZCB on tbssxxb.HSZCID equals tbxhhszcb.ID into joinxhhszcb + from xhhszc in joinxhhszcb.DefaultIfEmpty() + where tbssxxb.CJSS == true + select new Cus_SSXXB + { + ID = tbssxxb.ID, + SSBM = tbssxxb.SSBM, + SSMC = tbssxxb.SSMC, + PYSZM = tbssxxb.PYSZM, + SSJB = tbssxxb.SSDJID, + strSSJB = ssjbb.SSDJ, + YJSSSC = tbssxxb.SSSCID, + strYJSSSC = ssscb.NAME, + SSQJD = tbssxxb.SSQKLXID, + strSSQJD = ssqjd.QKLX, + MZYSZC = tbssxxb.MZYSZCID, + strMZYSZC = mzyszcb.Name, + XHHSZC = tbssxxb.HSZCID, + strXHHSZC = xhhszc.Name, + CJSS = tbssxxb.CJSS, + IsICD = tbssxxb.IsICD, + boolCYSS = tbssxxb.CJSS, + CYSS = tbssxxb.CJSS == true ? "是" : "否", + SSLX = sslxb.SSLX, + intSSLX = tbssxxb.SSLX + }).ToList(); + } + else + { + listss = (from tbssxxb in myModel.SYS_SSXXB + join tbssjbb in myModel.SYS_SSDJB on tbssxxb.SSDJID equals tbssjbb.ID into joinssjb + from ssjbb in joinssjb.DefaultIfEmpty() + join tbsslxb in myModel.SYS_SSLXB on tbssxxb.SSLX equals tbsslxb.ID into joinsslx + from sslxb in joinsslx.DefaultIfEmpty() + join tbssscb in myModel.SYS_SSSCB on tbssxxb.SSSCID equals tbssscb.ID into joinsssc + from ssscb in joinsssc.DefaultIfEmpty() + join tbssqjd in myModel.SYS_SSQKLXB on tbssxxb.SSQKLXID equals tbssqjd.ID into joinssqjd + from ssqjd in joinssqjd.DefaultIfEmpty() + join tbmzyszcb in myModel.SYS_YSZCB on tbssxxb.MZYSZCID equals tbmzyszcb.ID into joinmzyszcb + from mzyszcb in joinmzyszcb.DefaultIfEmpty() + join tbxhhszcb in myModel.SYS_HSZCB on tbssxxb.HSZCID equals tbxhhszcb.ID into joinxhhszcb + from xhhszc in joinxhhszcb.DefaultIfEmpty() + //where tbssxxb.CJSS == true + select new Cus_SSXXB + { + ID = tbssxxb.ID, + SSBM = tbssxxb.SSBM, + SSMC = tbssxxb.SSMC, + PYSZM = tbssxxb.PYSZM, + SSJB = tbssxxb.SSDJID, + strSSJB = ssjbb.SSDJ, + YJSSSC = tbssxxb.SSSCID, + strYJSSSC = ssscb.NAME, + SSQJD = tbssxxb.SSQKLXID, + strSSQJD = ssqjd.QKLX, + MZYSZC = tbssxxb.MZYSZCID, + strMZYSZC = mzyszcb.Name, + XHHSZC = tbssxxb.HSZCID, + strXHHSZC = xhhszc.Name, + CJSS = tbssxxb.CJSS, + IsICD = tbssxxb.IsICD, + boolCYSS = tbssxxb.CJSS, + CYSS = tbssxxb.CJSS == true ? "是" : "否", + SSLX = sslxb.SSLX, + intSSLX = tbssxxb.SSLX + }).ToList(); + + } + + if (gjz != string.Empty || gjz != null) + { + listss = listss.Where(a => a.SSBM.Contains(gjz) || a.SSMC.Contains(gjz) || a.PYSZM.Contains(gjz)).ToList(); + } + ssdata.ItemsSource = listss; + } + if (str == "手术室") + { + List listsss = (from tbsssb in myModel.SYS_SSSB + select new Cus_SssLb + { + ID = tbsssb.ID, + SSSBM = tbsssb.SSSBM, + SSSMC = tbsssb.SSSMC, + SFQY = tbsssb.SFKQ == true ? "是" : "否", + RJSSS = tbsssb.SFRJ == true ? "是" : "否", + }).ToList(); + sssdata.ItemsSource = listsss; + } + if (str == "科室") + { + List listks = (from tbksb in myModel.SYS_KSB + select new Cus_KsLb + { + ID = tbksb.ID, + KSBM = tbksb.KSBM, + KSMC = tbksb.KSMC, + SFQY = tbksb.SFKQ == true ? "是" : "否", + }).ToList(); + ksdata.ItemsSource = listks; + } + if (str == "麻醉医生") + { + List listmzys = (from tbmzys in myModel.SYS_MZYSB + join tbscss1 in myModel.SYS_SSLXB on tbmzys.SCSS1 equals tbscss1.ID into joinscss1 + from scss1 in joinscss1.DefaultIfEmpty() + join tbscss2 in myModel.SYS_SSLXB on tbmzys.SCSS2 equals tbscss2.ID into joinscss2 + from scss2 in joinscss2.DefaultIfEmpty() + join tbscss3 in myModel.SYS_SSLXB on tbmzys.SCSS3 equals tbscss3.ID into joinscss3 + from scss3 in joinscss3.DefaultIfEmpty() + join tbyszc in myModel.SYS_YSZCB on tbmzys.YSZCID equals tbyszc.ID + select new Cus_MZYS + { + ID = tbmzys.ID, + YSXM = tbmzys.YSMC, + YSGH = tbmzys.YSBM, + YSZC = tbmzys.YSZCID, + strYSZC = tbyszc.Name, + SCSS1 = tbmzys.SCSS1, + strSCSS1 = scss1.SSLX, + SCSS2 = tbmzys.SCSS2, + strSCSS2 = scss2.SSLX, + SCSS3 = tbmzys.SCSS3, + strSCSS3 = scss3.SSLX, + strSFQY = tbmzys.SFQY == true ? "是" : "否", + }).ToList(); + mzysdata.ItemsSource = listmzys; + } + if (str == "护士") + { + List lisths = (from tbhs in myModel.SYS_HSB + join tbhszc in myModel.SYS_HSZCB on tbhs.ZCID equals tbhszc.ID + join tbsss in myModel.SYS_SSSB on tbhs.SSSID equals tbsss.ID + select new Cus_HS + { + ID = tbhs.ID, + HSXM = tbhs.HSMC, + HSGH = tbhs.HSBM, + SSSID = tbhs.SSSID, + strSSS = tbsss.SSSMC, + HSZC = tbhs.ZCID, + strHSZC = tbhszc.Name, + strSFQY = tbhs.SFQY == true ? "是" : "否", + }).ToList(); + hsdata.ItemsSource = lisths; + } + if (str == "手术室绑定") + { + List listbdks = (from tbksb in myModel.SYS_KSB + select new Cus_BDKS + { + ID = tbksb.ID, + KSMC = tbksb.KSMC, + KSBM = tbksb.KSBM + }).ToList(); + kslbdata.ItemsSource = listbdks; + } + } + /// + /// 查询 + /// + /// + /// + private void btn_sx_Click(object sender, RoutedEventArgs e) + { + ShuaXin(); + } + /// + /// 新增 + /// + /// + /// + private void btn_xz_Click(object sender, RoutedEventArgs e) + { + if (str == "手术") + { + XZSSXXWindow window = new XZSSXXWindow(); + window.ShowDialog(); + } + if (str == "手术室") + { + XZSSSWindow window = new XZSSSWindow(); + window.ShowDialog(); + } + if (str == "科室") + { + XZKSWindow window = new XZKSWindow(); + window.ShowDialog(); + } + //if (str == "科室") + //{ + // XZKSWindow window = new XZKSWindow(); + // window.ShowDialog(); + //} + if (str == "麻醉医生") + { + XZMZYSWindow window = new XZMZYSWindow(); + window.ShowDialog(); + } + if (str == "护士") + { + XZHSWindow window = new XZHSWindow(); + window.ShowDialog(); + } + ShuaXin(); + } + /// + /// 修改 + /// + /// + /// + private void btn_xg_Click(object sender, RoutedEventArgs e) + { + if (str == "手术") + { + if (ssid != 0) + { + XGSSXXWindow window = new XGSSXXWindow(ssrow); + window.ShowDialog(); + } + else + { + MessageBox.Show("请选择手术"); + } + } + if (str == "手术室") + { + if (sssid != 0) + { + XGSSSWindow window = new XGSSSWindow(sssid); + window.ShowDialog(); + } + else + { + MessageBox.Show("请选择手术室"); + } + } + if (str == "科室") + { + if (ksid != 0) + { + XGKSWindow window = new XGKSWindow(ksid); + window.ShowDialog(); + } + else + { + MessageBox.Show("请选择科室"); + } + } + if (str == "麻醉医生") + { + if (mzysid != 0) + { + + XGMZYSWindow window = new XGMZYSWindow(mzysrow); + window.ShowDialog(); + } + else + { + MessageBox.Show("请选择名麻醉医生"); + } + } + if (str == "护士") + { + if (hsid != 0) + { + + XGHSWindow window = new XGHSWindow(hsrow); + window.ShowDialog(); + } + else + { + MessageBox.Show("请选择名麻醉医生"); + } + } + ShuaXin(); + } + /// + /// 删除 + /// + /// + /// + private void btn_sc_Click(object sender, RoutedEventArgs e) + { + if (str == "手术") + { + if (ssid != 0) + { + if (ssrow.IsICD!=true) + { + MessageBoxResult dr = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + var listpbb = (from tbsssqb in myModel.Bus_SSSQB + where tbsssqb.SSID == ssid + select new + { + tbsssqb, + }).ToList(); + if (listpbb.Count > 0) + { + MessageBox.Show("该手术有申请记录不能删除"); + return; + } + else + { + var ssxxb = (from tbssxxb in myModel.SYS_SSXXB + where tbssxxb.ID == ssid + select new + { + tbssxxb, + }).Single(); + try + { + myModel.SYS_SSXXB.Remove(ssxxb.tbssxxb); + myModel.SaveChanges(); + MessageBox.Show("删除成功"); + } + catch (Exception) + { + MessageBox.Show("删除失败"); + } + } + } + } + else + { + MessageBox.Show("该手术不能删除"); + } + } + else + { + MessageBox.Show("请选择手术"); + } + } + if (str == "手术室") + { + if (sssid != 0) + { + MessageBoxResult dr = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + var listpbb = (from tbpbb in myModel.Bus_SSPBB + where tbpbb.SSSID == sssid + select new + { + tbpbb, + }).ToList(); + if (listpbb.Count>0) + { + MessageBox.Show("该手术室正在使用不能删除"); + return; + } + else + { + var sssb = (from tbsss in myModel.SYS_SSSB + where tbsss.ID == sssid + select new + { + tbsss, + }).Single(); + try + { + myModel.SYS_SSSB.Remove(sssb.tbsss); + myModel.SaveChanges(); + MessageBox.Show("删除成功"); + } + catch (Exception) + { + + MessageBox.Show("删除失败"); + } + } + } + } + else + { + MessageBox.Show("请选择手术室"); + } + } + if (str == "科室") + { + if (ksid != 0) + { + MessageBoxResult dr = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + + var listpbb = (from tbpbb in myModel.Bus_SSSQB + where tbpbb.KSID == ksid + select new + { + tbpbb, + }).ToList(); + if (listpbb.Count > 0) + { + MessageBox.Show("该科室有手术排班不能删除"); + return; + } + else + { + var ksb = (from tbksb in myModel.SYS_KSB + where tbksb.ID == ksid + select new + { + tbksb, + }).Single(); + try + { + myModel.SYS_KSB.Remove(ksb.tbksb); + myModel.SaveChanges(); + MessageBox.Show("删除成功"); + } + catch (Exception) + { + + MessageBox.Show("删除失败"); + } + } + } + } + else + { + MessageBox.Show("请选择科室"); + } + } + if (str == "麻醉医生") + { + if (mzysid != 0) + { + MessageBoxResult dr = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + var listpbb = (from tbpbb in myModel.Bus_SSPBB + where tbpbb.MZYS1 == mzysid || tbpbb.MZYS2 == mzysid || tbpbb.MZYS3 == mzysid + select new + { + tbpbb, + }).ToList(); + if (listpbb.Count > 0) + { + MessageBox.Show("该麻醉医生不能删除"); + return; + } + else + { + var mzysb = (from tbmzysb in myModel.SYS_MZYSB + where tbmzysb.ID == mzysid + select new + { + tbmzysb, + }).Single(); + try + { + myModel.SYS_MZYSB.Remove(mzysb.tbmzysb); + myModel.SaveChanges(); + MessageBox.Show("删除成功"); + } + catch (Exception) + { + + MessageBox.Show("删除失败"); + } + } + } + } + else + { + MessageBox.Show("请选择医生"); + } + } + if (str == "护士") + { + if (hsid != 0) + { + MessageBoxResult dr = MessageBox.Show("确定要删除吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + var listpbb = (from tbpbb in myModel.Bus_SSPBB + where tbpbb.XHHS1 == hsid || tbpbb.XHHS2 == hsid || tbpbb.XSHS1 == hsid || tbpbb.XSHS2 == hsid + select new + { + tbpbb, + }).ToList(); + if (listpbb.Count > 0) + { + MessageBox.Show("该护士不能删除"); + return; + } + else + { + var mzysb = (from tbmzysb in myModel.SYS_HSB + where tbmzysb.ID == hsid + select new + { + tbmzysb, + }).Single(); + try + { + myModel.SYS_HSB.Remove(mzysb.tbmzysb); + myModel.SaveChanges(); + MessageBox.Show("删除成功"); + } + catch (Exception) + { + + MessageBox.Show("删除失败"); + } + } + } + } + else + { + MessageBox.Show("请选择医生"); + } + } + ShuaXin(); + } + int bdksid; + Cus_BDKS row = new Cus_BDKS(); + Cus_SSXXB ssrow = new Cus_SSXXB(); + Cus_KsLb ksrow = new Cus_KsLb(); + Cus_MZYS mzysrow = new Cus_MZYS(); + Cus_HS hsrow = new Cus_HS(); + private void kslbdata_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) + { + if (row.ID != 0) + { + List listsss = (from tbsssb in myModel.SYS_SSSB + select new Cus_BDSSS + { + ID = tbsssb.ID, + SSSMC = tbsssb.SSSMC, + SSSBM = tbsssb.SSSBM, + SFKY = false + }).ToList(); + + var list = (from tbbdsss in myModel.SYS_SSSBDB + where tbbdsss.KSID == row.ID + select new + { + tbbdsss.SSSID, + tbbdsss.SFKY + }).ToList(); + for (int i = 0; i < list.Count; i++) + { + if (list[i].SFKY==true) + { + for (int j = 0; j < listsss.Count; j++) + { + if (listsss[j].ID == list[i].SSSID) + { + listsss[j].SFKY = true; + } + } + } + } + ssslbdata.ItemsSource = listsss; + } + } + + /// + /// 保存 + /// + /// + /// + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + try + { + int count = ssslbdata.Items.Count; + for (int i = 0; i < count; i++) + { + int sssid = Convert.ToInt32((ssslbdata.Columns[0].GetCellContent(ssslbdata.Items[i]) as TextBlock).Text); + string str = (ssslbdata.Columns[1].GetCellContent(ssslbdata.Items[i]) as TextBlock).Text; + DataGridTemplateColumn tempColumn = ssslbdata.Columns[3] as DataGridTemplateColumn; + FrameworkElement element = ssslbdata.Columns[3].GetCellContent(ssslbdata.Items[i]); + CheckBox ck = tempColumn.CellTemplate.FindName("box", element) as CheckBox; + bool? IsChecked = ck.IsChecked; + List list = (from tbbssss in myModel.SYS_SSSBDB + where tbbssss.KSID == row.ID && tbbssss.SSSID == sssid + select new Cus_BDKSSSS + { + ID = tbbssss.ID, + KSID = tbbssss.KSID, + SSSID = tbbssss.SSSID, + SFKY = tbbssss.SFKY + }).ToList(); + if (list.Count > 0) + { + SYS_SSSBDB sssbdb = new SYS_SSSBDB(); + sssbdb.ID = list[0].ID; + sssbdb.KSID = list[0].KSID; + sssbdb.SSSID = list[0].SSSID; + sssbdb.SFKY = Convert.ToBoolean(IsChecked); + myModel.Entry(sssbdb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + myModel.Entry(sssbdb).State = System.Data.Entity.EntityState.Detached; + } + else + { + SYS_SSSBDB sssbdb = new SYS_SSSBDB(); + sssbdb.KSID = row.ID; + sssbdb.SSSID = sssid; + sssbdb.SFKY = Convert.ToBoolean(IsChecked); + myModel.SYS_SSSBDB.Add(sssbdb); + myModel.SaveChanges(); + } + } + MessageBox.Show("保存成功"); + } + catch (Exception ex) + { + MessageBox.Show("保存失败" + ex.ToString()); + } + } + } +} diff --git a/SchedulingSystemClient/LoginWindow.xaml b/SchedulingSystemClient/LoginWindow.xaml new file mode 100644 index 0000000..393d340 --- /dev/null +++ b/SchedulingSystemClient/LoginWindow.xaml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/LoginWindow.xaml.cs b/SchedulingSystemClient/LoginWindow.xaml.cs new file mode 100644 index 0000000..8b32547 --- /dev/null +++ b/SchedulingSystemClient/LoginWindow.xaml.cs @@ -0,0 +1,60 @@ +using SchedulingSystemClient.UpdateWindow; +using System.Linq; +using System.Windows; + +namespace SchedulingSystemClient +{ + /// + /// LoginWindow.xaml 的交互逻辑 + /// + public partial class LoginWindow : Window + { + public LoginWindow() + { + InitializeComponent(); + } + private void but_gb_Click(object sender, RoutedEventArgs e) + { + this.Close(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void btn_dl_Click(object sender, RoutedEventArgs e) + { + //gh.Text = "admin"; + //mm.Password = "123"; + + if (gh.Text == null || gh.Text == string.Empty) + { + MessageBox.Show("请输入工号"); + return; + } + if (mm.Password == null || mm.Password == string.Empty) + { + MessageBox.Show("请输入密码"); + return; + } + var listyh = (from tbyh in myModel.SYS_YHB + where tbyh.GH == gh.Text && mm.Password == tbyh.MM + select new + { tbyh }).ToList(); + if (listyh.Count > 0) + { + SYS_YHB user = new SYS_YHB(); + user = listyh[0].tbyh; + MainWindow window = new MainWindow(user); + window.Show(); + this.Close(); + } + else + { + MessageBox.Show("工号或密码错误"); + return; + } + } + private void btn_xgmm_Click(object sender, RoutedEventArgs e) + { + XGMMWindow window = new XGMMWindow(); + window.ShowDialog(); + } + } +} diff --git a/SchedulingSystemClient/MainWindow.xaml b/SchedulingSystemClient/MainWindow.xaml new file mode 100644 index 0000000..98d8ff7 --- /dev/null +++ b/SchedulingSystemClient/MainWindow.xaml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/PBRZWindow.xaml.cs b/SchedulingSystemClient/PBRZWindow.xaml.cs new file mode 100644 index 0000000..9ffb309 --- /dev/null +++ b/SchedulingSystemClient/PBRZWindow.xaml.cs @@ -0,0 +1,56 @@ +using SchedulingSystemClient.EntityClass; +using System; +using System.Linq; +using System.Windows; +using System.Windows.Controls; + +namespace SchedulingSystemClient +{ + /// + /// PBRZWindow.xaml 的交互逻辑 + /// + public partial class PBRZWindow : UserControl + { + public PBRZWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + kssj.Text = DateTime.Now.AddDays(-6).ToString(); + jssj.Text = DateTime.Now.ToString(); + ChaXun(); + } + private void btn_cx_Click(object sender, RoutedEventArgs e) + { + ChaXun(); + } + private void ChaXun() + { + DateTime ks = Convert.ToDateTime(kssj.SelectedDate).Date; + DateTime js = Convert.ToDateTime(jssj.SelectedDate).AddDays(1).Date.AddSeconds(-1); + var listpbrz = (from tbpbrzb in myModel.Bus_PBRZB + join tbuser in myModel.SYS_YHB on tbpbrzb.CZRYID equals tbuser.ID + join tbczlx in myModel.SYS_CZLXB on tbpbrzb.CZLX equals tbczlx.ID + //join tbpbzt in myModel.SYS_PBZTB on tbpbrzb.PBZT equals tbpbzt.ID + where tbpbrzb.CZSJ >= ks && tbpbrzb.CZSJ <= js + select new Cus_PBRZ + { + ID = tbpbrzb.ID, + CZLX = tbczlx.Name, + CZLXID = tbczlx.ID, + CZRGH = tbuser.GH, + CZRXM = tbuser.YHM, + CZSJ = tbpbrzb.CZSJ, + //PBID = tbpbrzb.SSID, + //PBZT = tbpbzt.Name, + //PBZTID = tbpbzt.ID, + ZCRID = tbuser.ID, + SQDH = tbpbrzb.SQDH + }).OrderBy(a => a.CZSJ).ToList(); + + pbrzdata.ItemsSource = listpbrz; + } + } +} diff --git a/SchedulingSystemClient/PBSQWindow.xaml b/SchedulingSystemClient/PBSQWindow.xaml new file mode 100644 index 0000000..c36c233 --- /dev/null +++ b/SchedulingSystemClient/PBSQWindow.xaml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/PBSQWindow.xaml.cs b/SchedulingSystemClient/PBSQWindow.xaml.cs new file mode 100644 index 0000000..4e75de9 --- /dev/null +++ b/SchedulingSystemClient/PBSQWindow.xaml.cs @@ -0,0 +1,2398 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Data.Entity; +using System.Linq; +using System.Windows; + +namespace SchedulingSystemClient +{ + /// + /// PBSQWindow.xaml 的交互逻辑 + /// + public partial class PBSQWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public PBSQWindow(SYS_YHB yh) + { + InitializeComponent(); + user = yh; + } + + SYS_YHB user = new SYS_YHB(); + //string yhgh = string.Empty; + private void Window_Loaded(object sender, RoutedEventArgs e) + { + DateTime sj = DateTime.Now; + string nian = sj.Year.ToString(); + string yue = sj.Month.ToString(); + string ri = sj.Day.ToString(); + string strshi = sj.Hour.ToString(); + string strfen = sj.Minute.ToString(); + string strmiao = sj.Second.ToString(); + + ZLKH.Text = "zlk" + nian + yue + ri + strshi + strfen + strmiao; + ZYH.Text = "zy"+ nian + yue + ri + strshi + strfen + strmiao; + + List listks = new List(); + List listys = new List(); + List listssmc = new List(); + List listsfjz = new List(); + listsfjz.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfjz.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + listks = (from tbsss in myModel.SYS_KSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.KSMC, + }).ToList(); + listys = (from tbsss in myModel.SYS_SSYSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSXM, + }).ToList(); + listssmc = (from tbsss in myModel.SYS_SSXXB + where tbsss.CJSS == true + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.SSMC, + }).ToList(); + List shi = new List(); + for (int i = 0; i < 24; i++) + { + if (i < 10) + { + shi.Add("0" + i); + } + else + { + shi.Add(i.ToString()); + } + } + List fen = new List(); + for (int i = 0; i < 60; i++) + { + if (i < 10) + { + fen.Add("0" + i); + } + else + { + fen.Add(i.ToString()); + } + } + List miao = new List(); + for (int i = 0; i < 60; i++) + { + if (i < 10) + { + miao.Add("0" + i); + } + else + { + miao.Add(i.ToString()); + } + } + KS.ItemsSource = listks; + KS.SelectedValuePath = "ID"; + KS.DisplayMemberPath = "Name"; + YS.ItemsSource = listys; + YS.SelectedValuePath = "ID"; + YS.DisplayMemberPath = "Name"; + SSMC.ItemsSource = listssmc; + SSMC.SelectedValuePath = "ID"; + SSMC.DisplayMemberPath = "Name"; + SFJZ.ItemsSource = listsfjz; + SFJZ.SelectedValuePath = "ID"; + SFJZ.DisplayMemberPath = "Name"; + SFJZ.SelectedValue = 1; + } + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + try + { + if (KS.SelectedIndex < 0) + { + MessageBox.Show("请选择科室"); + return; + } + int ksid = Convert.ToInt32(KS.SelectedValue); + var listsss = (from tbsssb in myModel.SYS_SSSBDB + where tbsssb.KSID == ksid && tbsssb.SFKY == true + select new + { + tbsssb + }).ToList(); + if (listsss.Count <=0) + { + MessageBox.Show("该科室没有可用的手术室!"); + return; + } + if (YS.SelectedIndex < 0) + { + MessageBox.Show("请选择医生"); + return; + } + if (SSMC.SelectedIndex < 0) + { + MessageBox.Show("请选择手术"); + return; + } + if (HZXM.Text == null || HZXM.Text == string.Empty) + { + MessageBox.Show("请填写患者姓名"); + return; + } + if (ZYH.Text == null || ZYH.Text == string.Empty) + { + MessageBox.Show("请填写住院号"); + return; + } + if (ZLKH.Text == null || ZLKH.Text == string.Empty) + { + MessageBox.Show("请填写诊疗卡号"); + return; + } + + DateTime sj = DateTime.Now; + string yue = sj.Month > 10 ? sj.Month.ToString() : "0" + sj.Month; + string day = sj.Day > 10 ? sj.Day.ToString() : "0" + sj.Day; + string shi = sj.Hour > 10 ? sj.Hour.ToString() : "0" + sj.Hour; + string fen = sj.Minute > 10 ? sj.Minute.ToString() : "0" + sj.Minute; + string miao = sj.Second > 10 ? sj.Second.ToString() : "0" + sj.Second; + + Bus_SSSQB sssqb = new Bus_SSSQB(); + sssqb.SQDH = "SQD" + sj.Year + yue + day + shi + fen + miao + sj.Millisecond; + string sqdh = sssqb.SQDH; + sssqb.HZXM = HZXM.Text; + sssqb.KSID = Convert.ToInt32(KS.SelectedValue); + sssqb.SFJZ = SSMC.SelectedIndex == 0 ? true : false; + sssqb.SQSJ = DateTime.Now; + sssqb.SQZD = SQZD.Text; + sssqb.SSID = Convert.ToInt32(SSMC.SelectedValue); + sssqb.ZDYSID = Convert.ToInt32(YS.SelectedValue); + sssqb.ZLKH = ZLKH.Text; + sssqb.ZYH = ZYH.Text; + sssqb.ZT = 3; + myModel.Bus_SSSQB.Add(sssqb); + myModel.SaveChanges(); + int sqid = sssqb.ID; + myModel.Entry(sssqb).State = System.Data.Entity.EntityState.Detached; + int ssid = PaiBan.XinZengPaiBan(sqid); + PaiBan.GengXinZhuangTai(); + PaiBan.SmartScheduling(); + PaiBan.RenYuanPaiBan(ssid); + //操作日志 + Bus_PBRZB pbrz = new Bus_PBRZB(); + pbrz.CZLX = 1; + pbrz.CZRYID = user.ID; + pbrz.SQDH = sqdh; + pbrz.CZSJ = DateTime.Now; + myModel.Bus_PBRZB.Add(pbrz); + myModel.SaveChanges(); + MessageBox.Show("申请成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show("申请失败" + ex.ToString()); + } + + } + private void btn_qx_Click(object sender, RoutedEventArgs e) + { + this.Close(); + } + private void PBFS_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) + { + //if (Convert.ToInt32(PBFS.SelectedValue) == 1) + //{ + // rowssrq.Height = new GridLength(1, GridUnitType.Star); + // rowsssj.Height = new GridLength(1, GridUnitType.Star); + //} + //else + //{ + // rowssrq.Height = new GridLength(1); + // rowsssj.Height = new GridLength(0); + //} + } + //private void KS_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) + //{ + // if (KS.SelectedValue!=null) + // { + // int ksid = Convert.ToInt32(KS.SelectedValue); + // var list = (from tbbdb in myModel.SYS_SSSBDB + // where tbbdb.KSID == ksid && tbbdb.SFKY ==true + // select new + // { + // tbbdb + // }).ToList(); + + // if (list.Count>0) + // { + // List listsss = new List(); + // for (int i = 0; i < list.Count; i++) + // { + // int? sssid = list[i].tbbdb.SSSID; + // ComboBoxBinding cbb = (from tbsssb in myModel.SYS_SSSB + // where tbsssb.ID == sssid + // select new ComboBoxBinding + // { + // ID = tbsssb.ID, + // Name = tbsssb.SSSMC, + // }).Single(); + // listsss.Add(cbb); + // } + + + // DateTime kssj = DateTime.Now.Date; + // DateTime jssj = DateTime.Now.AddDays(7).Date.AddSeconds(-1); + // var listpb = (from tbpbb in myModel.Bus_SSPBB + // where tbpbb.SSKSSJ >= kssj && tbpbb.SSKSSJ <= jssj + // select new + // { + // tbpbb + // }).ToList(); + // if (listpb.Count>0) + // { + // var listfz = listpb.GroupBy(a => a.tbpbb.SSSID).ToList(); + // List listzsc = new List(); + // for (int i = 0; i < listfz.Count; i++) + // { + // listpb.Where(a => a.tbpbb.SSSID == listfz[i].Key).Sum(a => a.tbpbb.SSZSC); + // Cus_SSSZSC zsc = new Cus_SSSZSC(); + // zsc.SSSID = Convert.ToInt32(listfz[i].Key); + // zsc.SSZSC = Convert.ToDecimal(listpb.Where(a => a.tbpbb.SSSID == listfz[i].Key).Sum(a => a.tbpbb.SSZSC)); + // listzsc.Add(zsc); + // } + // listzsc = listzsc.OrderBy(a => a.SSZSC).ToList(); + // SSS.ItemsSource = listsss; + // SSS.SelectedValuePath = "ID"; + // SSS.DisplayMemberPath = "Name"; + // SSS.SelectedValue = listzsc[0].SSSID; + // } + // else + // { + // SSS.ItemsSource = listsss; + // SSS.SelectedValuePath = "ID"; + // SSS.DisplayMemberPath = "Name"; + // SSS.SelectedIndex = 0; + // } + // } + // else + // { + // MessageBox.Show("该科室没有可用的手术室!"); + // List listsss = new List(); + // SSS.ItemsSource = listsss; + // SSS.SelectedValuePath = "ID"; + // SSS.DisplayMemberPath = "Name"; + // } + // } + + //} + + //#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()); + // } + //} + //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.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()); + // } + // 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 (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()); + // } + // 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 + + + + + //#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; + // myModel.SaveChanges(); + // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; + // } + // //6、如果手术完成时间大于当前时间修改状态为已锁定 + // else + // { + // if (listpbb[i].tbpbb.PBZT != 5) + // { + // pbb.PBZT = 2; + // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; + // myModel.SaveChanges(); + // myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; + // } + + // } + // } + // //myModel.SaveChanges(); + // //myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; + + // } + // 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()); + // } + //} + //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.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()); + // } + // 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 (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()); + // } + // 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 + } +} diff --git a/SchedulingSystemClient/PaiBan.cs b/SchedulingSystemClient/PaiBan.cs new file mode 100644 index 0000000..0104048 --- /dev/null +++ b/SchedulingSystemClient/PaiBan.cs @@ -0,0 +1,1639 @@ +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; + +namespace SchedulingSystemClient +{ + + public class PaiBan + { + static SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + static double amsc = 0; + static double pmsc = 0; + static string mtkssj = string.Empty; + static string mtpbjssj = string.Empty; + static string sssxxsj = string.Empty; + /// + /// 新增排班 + /// + public static int XinZengPaiBan(int sqid) + { + try + { + var listpbsq = (from tbsssqb in myModel.Bus_SSSQB.AsNoTracking() + where tbsssqb.ID ==sqid + select new { tbsssqb }).Single(); + Bus_SSPBB sspbb = new Bus_SSPBB(); + sspbb.QZ = 0; + int ssid = Convert.ToInt32(listpbsq.tbsssqb.SSID); + string zlkh = listpbsq.tbsssqb.ZLKH; + int ysid = Convert.ToInt32(listpbsq.tbsssqb.ZDYSID); + Cus_SSSQB ssxxb = (from tbssxxb in myModel.SYS_SSXXB + 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 + where tbssxxb.ID == ssid + select new Cus_SSSQB + { + SSDJQZ = tbssdjb.QZ, + QKLXQZ = tbqklxb.QZ, + QJSC = tbqjscb.SSSC, + SSSC = tbssscb.SSSC, + }).Single(); + sspbb.QZ = sspbb.QZ + ssxxb.SSDJQZ + ssxxb.QKLXQZ; + var hzvip = (from tbhzvip in myModel.SYS_HZVIPB + where tbhzvip.ZLKH == zlkh + select new { tbhzvip }).ToList(); + if (hzvip.Count > 0) + { + sspbb.QZ = sspbb.QZ + hzvip[0].tbhzvip.QZ; + } + var ysvip = (from tbysvip in myModel.SYS_YSVIPB + join tbysb in myModel.SYS_SSYSB + on new { tbysvip.YSBM, tbysvip.YSXM } equals new { tbysb.YSBM, tbysb.YSXM } + where tbysb.ID == ysid + select new { tbysvip }).ToList(); + if (ysvip.Count > 0) + { + sspbb.QZ = sspbb.QZ + ysvip[0].tbysvip.QZ; + } + sspbb.SQDH = listpbsq.tbsssqb.SQDH; + sspbb.ZYH = listpbsq.tbsssqb.ZYH; + sspbb.HZXM = listpbsq.tbsssqb.HZXM; + sspbb.KSID = listpbsq.tbsssqb.KSID; + sspbb.SQSJ = listpbsq.tbsssqb.SQSJ; + sspbb.SQZD = listpbsq.tbsssqb.SQZD; + sspbb.SSID = listpbsq.tbsssqb.SSID; + sspbb.ZDYS = listpbsq.tbsssqb.ZDYSID; + sspbb.SFJZ = listpbsq.tbsssqb.SFJZ; + sspbb.ZLKH = listpbsq.tbsssqb.SQDH; + sspbb.SSSC = ssxxb.SSSC; + sspbb.QJSC = ssxxb.QJSC; + sspbb.SSZSC = sspbb.SSSC + sspbb.QJSC; + //查询科室能使用的手术室 + var listsss = (from tbsssb in myModel.SYS_SSSBDB + where tbsssb.KSID == sspbb.KSID && tbsssb.SFKY == true + select new + { + tbsssb + }).ToList(); + List ssssc = new List(); + for (int s = 0; s < listsss.Count; s++) + { + Cus_SSSSC sc = new Cus_SSSSC(); + int sssid = Convert.ToInt32(listsss[s].tbsssb.SSSID); + var listsssc = (from tbsspbb in myModel.Bus_SSPBB.AsNoTracking() + where tbsspbb.SSSID == sssid + select new + { + tbsspbb + }).ToList(); + decimal sssc = Convert.ToDecimal(listsssc.Sum(a => a.tbsspbb.SSZSC)); + sc.SSSID = sssid; + sc.SSSC = sssc; + ssssc.Add(sc); + } + ssssc = ssssc.OrderBy(a => a.SSSC).ToList(); + sspbb.SSSID = ssssc[0].SSSID; + sspbb.PBZT = 1; + + myModel.Bus_SSPBB.Add(sspbb); + myModel.SaveChanges(); + int id = sspbb.ID; + myModel.Entry(sspbb).State = System.Data.Entity.EntityState.Detached; + return id; + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + return -1; + } + + //try + //{ + // var listpbsq = (from tbsssqb in myModel.Bus_SSSQB + // where tbsssqb.ZT == 3 + // select new { tbsssqb }).ToList(); + // if (listpbsq.Count > 0) + // { + // for (int i = 0; i < listpbsq.Count; i++) + // { + // Bus_SSPBB sspbb = new Bus_SSPBB(); + // sspbb.QZ = 0; + // int ssid = Convert.ToInt32(listpbsq[i].tbsssqb.SSID); + // string zlkh = listpbsq[i].tbsssqb.ZLKH; + // int ysid = Convert.ToInt32(listpbsq[i].tbsssqb.ZDYSID); + // Cus_SSSQB ssxxb = (from tbssxxb in myModel.SYS_SSXXB + // 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 + // where tbssxxb.ID == ssid + // select new Cus_SSSQB + // { + // SSDJQZ = tbssdjb.QZ, + // QKLXQZ = tbqklxb.QZ, + // QJSC = tbqjscb.SSSC, + // SSSC = tbssscb.SSSC, + // }).Single(); + // sspbb.QZ = sspbb.QZ + ssxxb.SSDJQZ + ssxxb.QKLXQZ; + // var hzvip = (from tbhzvip in myModel.SYS_HZVIPB + // where tbhzvip.ZLKH == zlkh + // select new { tbhzvip }).ToList(); + // if (hzvip.Count > 0) + // { + // sspbb.QZ = sspbb.QZ + hzvip[0].tbhzvip.QZ; + // } + // var ysvip = (from tbysvip in myModel.SYS_YSVIPB + // join tbysb in myModel.SYS_SSYSB + // on new { tbysvip.YSBM, tbysvip.YSXM } equals new { tbysb.YSBM, tbysb.YSXM } + // where tbysb.ID == ysid + // select new { tbysvip }).ToList(); + // if (ysvip.Count > 0) + // { + // sspbb.QZ = sspbb.QZ + ysvip[0].tbysvip.QZ; + // } + // sspbb.SQDH = listpbsq[i].tbsssqb.SQDH; + // sspbb.ZYH = listpbsq[i].tbsssqb.ZYH; + // sspbb.HZXM = listpbsq[i].tbsssqb.HZXM; + // sspbb.KSID = listpbsq[i].tbsssqb.KSID; + // sspbb.SQSJ = listpbsq[i].tbsssqb.SQSJ; + // sspbb.SQZD = listpbsq[i].tbsssqb.SQZD; + // sspbb.SSID = listpbsq[i].tbsssqb.SSID; + // sspbb.ZDYS = listpbsq[i].tbsssqb.ZDYSID; + // sspbb.SFJZ = listpbsq[i].tbsssqb.SFJZ; + // sspbb.ZLKH = listpbsq[i].tbsssqb.SQDH; + // sspbb.SSSC = ssxxb.SSSC; + // sspbb.QJSC = ssxxb.QJSC; + // sspbb.SSZSC = sspbb.SSSC + sspbb.QJSC; + // //查询科室能使用的手术室 + // var listsss = (from tbsssb in myModel.SYS_SSSBDB + // where tbsssb.KSID == sspbb.KSID && tbsssb.SFKY == true + // select new + // { + // tbsssb + // }).ToList(); + // List ssssc = new List(); + // for (int s = 0; s < listsss.Count; s++) + // { + // Cus_SSSSC sc = new Cus_SSSSC(); + // int sssid = Convert.ToInt32(listsss[s].tbsssb.SSSID); + // var listsssc = (from tbsspbb in myModel.Bus_SSPBB + // where tbsspbb.SSSID == sssid + // select new + // { + // tbsspbb + // }).ToList(); + // decimal sssc = Convert.ToDecimal(listsssc.Sum(a => a.tbsspbb.SSZSC)); + // sc.SSSID = sssid; + // sc.SSSC = sssc; + // ssssc.Add(sc); + // } + // ssssc = ssssc.OrderBy(a => a.SSSC).ToList(); + // sspbb.SSSID = ssssc[0].SSSID; + // sspbb.PBZT = 1; + // myModel.Bus_SSPBB.Add(sspbb); + // myModel.SaveChanges(); + // myModel.Entry(sspbb).State = System.Data.Entity.EntityState.Detached; + // listpbsq[i].tbsssqb.ZT = 1; + // myModel.Entry(listpbsq[i].tbsssqb).State = System.Data.Entity.EntityState.Modified; + // myModel.SaveChanges(); + // myModel.Entry(listpbsq[i].tbsssqb).State = System.Data.Entity.EntityState.Detached; + // } + // } + //} + //catch (Exception ex) + //{ + // MessageBox.Show(ex.ToString()); + //} + } + /// + /// 更新状态 + /// + public static void GengXinZhuangTai() + { + try + { + //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.SSKSSJ < sdsj + select new + { + tbpbb + }).ToList(); + for (int i = 0; i < listpbb.Count; i++) + { + Bus_SSPBB pbb = new Bus_SSPBB(); + pbb = listpbb[i].tbpbb; + //4、获取手术完成时间 + DateTime sswcsj = Convert.ToDateTime(pbb.SSKSSJ).AddHours(Convert.ToDouble(pbb.SSZSC)); + //5、如果手术完成时间小于当前时间修改状态为已完成 + if (sswcsj < DateTime.Now) + { + pbb.PBZT = 4; + myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; + } + //6、如果手术完成时间大于当前时间修改状态为已锁定 + else + { + if (listpbb[i].tbpbb.PBZT != 5) + { + pbb.PBZT = 2; + myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; + } + } + } + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + } + /// + /// 智能排班(修改开始时间) + /// + public static 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.SSKSSJ == null || tbpbb.SSKSSJ > sdsj + select new Cus_SJKPBB + { + ID = tbpbb.ID, + BZ = tbpbb.BZ, + HZXM = tbpbb.HZXM, + KSID = tbpbb.KSID, + MZYS1 = tbpbb.MZYS1, + MZYS2 = tbpbb.MZYS2, + MZYS3 = tbpbb.MZYS3, + PBZT = tbpbb.PBZT, + QJSC = tbpbb.QJSC, + QZ = tbpbb.QZ, + SFJZ = tbpbb.SFJZ, + SQDH = tbpbb.SQDH, + SQSJ = tbpbb.SQSJ, + SQZD = tbpbb.SQZD, + SSID = tbpbb.SSID, + SSJSSJ = tbpbb.SSJSSJ, + SSKSSJ = tbpbb.SSKSSJ, + SSSC = tbpbb.SSSC, + SSSID = tbpbb.SSSID, + SSZSC = tbpbb.SSZSC, + XHHS1 = tbpbb.XHHS1, + XHHS2 = tbpbb.XHHS2, + XSHS1 = tbpbb.XSHS1, + XSHS2 = tbpbb.XSHS2, + ZDYS = tbpbb.ZDYS, + ZLKH = tbpbb.ZLKH, + ZS1 = tbpbb.ZS1, + ZS2 = tbpbb.ZS2, + ZS3 = tbpbb.ZS3, + 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, sssid); + } + } + //myModel.SaveChanges(); + //MessageBox.Show("排班成功"); + } + catch (Exception ex) + { + + MessageBox.Show(ex.ToString()); + } + } + public static void DiGuiPaiBan(DateTime pbkssj, string sssxxsj, List listpb, List listssspb, double am, double pm, List ypb, string pmkssj, int sssid) + { + 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 + join tbpbb in myModel.Bus_SSPBB on tbsdpbb.SSID equals tbpbb.ID + where tbsdpbb.SSSJ>=pbkssj && tbsdpbb.SSJSSJ <= xxsj && tbpbb.SSSID == sssid + select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); + if (sdpbb.Count > 0) + { + for (int i = 0; i < sdpbb.Count; i++) + { + DateTime ikssj = Convert.ToDateTime( sdpbb[i].tbsdpbb.SSSJ); + DateTime ijssj = Convert.ToDateTime(sdpbb[i].tbsdpbb.SSJSSJ); + decimal isszsc = Convert.ToDecimal(sdpbb[i].tbsdpbb.SSZSC); + if (i == 0) + { + TimeSpan amhoursSpan = new TimeSpan(ikssj.Ticks - pbkssj.Ticks); + am = amhoursSpan.TotalHours; + } + else + { + TimeSpan amhoursSpan = new TimeSpan(Convert.ToDateTime(sdpbb[i + 1].tbsdpbb.SSSJ).Ticks - Convert.ToDateTime(sdpbb[i].tbsdpbb.SSJSSJ).Ticks); + am = amhoursSpan.TotalHours; + } + //排班时间为上午 + //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 + listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(am)).OrderByDescending(a => a.QZ).ToList(); + //如果有列表有数据直接排班 + if (listpb.Count > 0) + { + pbb.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + //修改手术开始时间 + 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.TotalHours; + //排班时间为上午 + //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 + listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(am)).OrderByDescending(a => a.QZ).ToList(); + //如果有列表有数据直接排班 + if (listpb.Count > 0) + { + pbb.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + //修改手术开始时间 + 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,sssid); + } + } + } + else + { + pbkssj = ijssj; + if (ypb.Count != listssspb.Count) + { + //判断排班时间是否小于六天后 + if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) + { + DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj, sssid); + } + } + } + } + } + } + else + { + //排班时间为上午 + //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 + listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(am)).OrderByDescending(a => a.QZ).ToList(); + //如果有列表有数据直接排班 + if (listpb.Count > 0) + { + pbb.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + //修改手术开始时间 + 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, sssid); + } + } + } + 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.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + //修改手术开始时间 + 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, sssid); + } + } + 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, sssid); + } + } + //如果上午下午都没有数据证明该手术室没有手术不需要排班 + //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + //继续对其他手术室进行排班 + } + } + } + } + else + { + //排班时间为上午 + //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 + listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(am)).OrderByDescending(a => a.QZ).ToList(); + //如果有列表有数据直接排班 + if (listpb.Count > 0) + { + pbb.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + //修改手术开始时间 + 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, sssid); + } + } + } + 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 + join tbpbb in myModel.Bus_SSPBB on tbsdpbb.SSID equals tbpbb.ID + where tbsdpbb.SSSJ >= pbkssj && tbsdpbb.SSJSSJ <= xxsj && tbpbb.SSSID == sssid + select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); + //var sdpbb = (from tbsdpbb in myModel.Bus_SDPBB + // join tbpbb in myModel.Bus_SSPBB on tbsdpbb.SSID equals tbpbb.ID + // where tbsdpbb.SSRQ == rq && tbsdpbb.SSJSSJ <= xxsj && tbpbb.SSSID == sssid + // select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); + if (sdpbb.Count > 0) + { + for (int i = 0; i < sdpbb.Count; i++) + { + DateTime ikssj = Convert.ToDateTime( sdpbb[i].tbsdpbb.SSSJ); + DateTime ijssj = Convert.ToDateTime(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(Convert.ToDateTime(sdpbb[i + 1].tbsdpbb.SSSJ).Ticks - Convert.ToDateTime(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.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + //修改手术开始时间 + 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) + { + pbb.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + //修改手术开始时间 + 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()); + } + 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, sssid); + } + } + //如果上午下午都没有数据证明该手术室没有手术不需要排班 + //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + //继续对其他手术室进行排班 + } + } + } + } + else + { + //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 + listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); + //如果列表有数据直接排班 + if (listpb.Count > 0) + { + pbb.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + 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, sssid); + } + } + 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, sssid); + } + } + //如果上午下午都没有数据证明该手术室没有手术不需要排班 + //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + //继续对其他手术室进行排班 + } + } + } + else + { + //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 + listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); + //如果列表有数据直接排班 + if (listpb.Count > 0) + { + pbb.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + //修改手术开始时间 + 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, sssid); + } + } + 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, sssid); + } + } + //如果上午下午都没有数据证明该手术室没有手术不需要排班 + //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + //继续对其他手术室进行排班 + } + } + + } + } + } + else + { + //判断下午剩余时长是否等于每天下午时长 + if (pm == pmsc) + { + DateTime xwkssj = Convert.ToDateTime(pbkssj.Date.ToString("yyyy-MM-dd") + " " + pmkssj); + DateTime xwjssj = Convert.ToDateTime(pbkssj.Date.ToString("yyyy-MM-dd") + " " + mtpbjssj); + //排班时间改为休息之后的时间 + pbkssj = xwkssj; + + var sdpbb = (from tbsdpbb in myModel.Bus_SDPBB + join tbpbb in myModel.Bus_SSPBB on tbsdpbb.SSID equals tbpbb.ID + where tbsdpbb.SSSJ >= xwkssj && tbsdpbb.SSJSSJ <= xwjssj && tbpbb.SSSID == sssid + select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); + + //var sdpbb = (from tbsdpbb in myModel.Bus_SDPBB + // join tbpbb in myModel.Bus_SSPBB on tbsdpbb.SSID equals tbpbb.ID + // where tbsdpbb.SSRQ == rq && tbsdpbb.SSJSSJ <= xxsj && tbpbb.SSSID == sssid + // select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); + if (sdpbb.Count > 0) + { + for (int i = 0; i < sdpbb.Count; i++) + { + DateTime ikssj = Convert.ToDateTime(sdpbb[i].tbsdpbb.SSSJ); + DateTime ijssj = Convert.ToDateTime(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(Convert.ToDateTime(sdpbb[i + 1].tbsdpbb.SSSJ).Ticks - Convert.ToDateTime(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.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + //修改手术开始时间 + 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) + { + pbb.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + //修改手术开始时间 + 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()); + } + 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, sssid); + } + } + //如果上午下午都没有数据证明该手术室没有手术不需要排班 + //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + //继续对其他手术室进行排班 + } + } + } + } + else + { + //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 + listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); + //如果列表有数据直接排班 + if (listpb.Count > 0) + { + pbb.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + 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, sssid); + } + } + 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, sssid); + } + } + //如果上午下午都没有数据证明该手术室没有手术不需要排班 + //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + //继续对其他手术室进行排班 + } + } + } + else + { + //查询出未排班并且手术总时长小于或等于下午时长的手术按权重排序 + listpb = listssspb.Except(ypb).Where(a => a.SSZSC <= Convert.ToDecimal(pm)).OrderByDescending(a => a.QZ).ToList(); + //如果列表有数据直接排班 + if (listpb.Count > 0) + { + pbb.ID = listpb[0].ID; + pbb.BZ = listpb[0].BZ; + pbb.HZXM = listpb[0].HZXM; + pbb.KSID = listpb[0].KSID; + pbb.MZYS1 = listpb[0].MZYS1; + pbb.MZYS2 = listpb[0].MZYS2; + pbb.MZYS3 = listpb[0].MZYS3; + pbb.PBZT = listpb[0].PBZT; + pbb.QJSC = listpb[0].QJSC; + pbb.QZ = listpb[0].QZ; + pbb.SFJZ = listpb[0].SFJZ; + pbb.SQDH = listpb[0].SQDH; + pbb.SQSJ = listpb[0].SQSJ; + pbb.SQZD = listpb[0].SQZD; + pbb.SSID = listpb[0].SSID; + pbb.SSSC = listpb[0].SSSC; + pbb.SSSID = listpb[0].SSSID; + pbb.SSZSC = listpb[0].SSZSC; + pbb.XHHS1 = listpb[0].XHHS1; + pbb.XHHS2 = listpb[0].XHHS2; + pbb.XSHS1 = listpb[0].XSHS1; + pbb.XSHS2 = listpb[0].XSHS2; + pbb.ZDYS = listpb[0].ZDYS; + pbb.ZLKH = listpb[0].ZLKH; + pbb.ZS1 = listpb[0].ZS1; + pbb.ZS2 = listpb[0].ZS2; + pbb.ZS3 = listpb[0].ZS3; + pbb.ZYH = listpb[0].ZYH; + pbb.SSKSSJ = pbkssj; + pbb.SSJSSJ = Convert.ToDateTime(pbb.SSKSSJ).AddHours((double)pbb.SSZSC); + pbb.SSRQ = pbkssj.Date; + listpb = new List(); + 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, sssid); + } + } + 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, sssid); + } + } + //如果上午下午都没有数据证明该手术室没有手术不需要排班 + //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + //继续对其他手术室进行排班 + } + } + + } + } + /// + /// 日间排班 + /// + public static void RiJianPaiBan() + { + DateTime date = DateTime.Now.Date; + DateTime time = DateTime.Now; + var listrjpb = (from tbrjpb in myModel.Bus_RJSSB + where tbrjpb.SSRQ == date + select new { tbrjpb }).ToList(); + for (int j = 0; j < listrjpb.Count; j++) + { + if (listrjpb[j].tbrjpb.SSJSSJ < time) + { + listrjpb[j].tbrjpb.PBZT = 4; + } + } + //var listsssid = listrjpb.GroupBy(a => a.tbrjpb.SSSID).ToList(); + //for (int i = 0; i < listsssid.Count; i++) + //{ + // int sssid =Convert.ToInt32(listsssid[i].Key); + // var listsss = listrjpb.Where(a => a.tbrjpb.SSSID == sssid && a.tbrjpb.PBZT == 1).OrderBy(a=>a.tbrjpb.SQSJ).ToList(); + // for (int j = 0; j < listsss.Count; j++) + // { + // if (listsss[j].tbrjpb.SSJSSJ> time) + // { + // listsss[j].tbrjpb.PBZT = 4; + // continue; + // } + // } + //} + } + /// + /// 人员排班 + /// + public static void RenYuanPaiBan(int ssid) + { + DateTime kssj = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date; + + var listsspb = (from tbsspbb in myModel.Bus_SSPBB + where tbsspbb.ID == ssid + select new + { + tbsspbb + }).Single(); + + int sssid =Convert.ToInt32(listsspb.tbsspbb.SSSID); + int ssxxid =Convert.ToInt32(listsspb.tbsspbb.SSID); + var ssxxb = (from tbssxxb in myModel.SYS_SSXXB + where tbssxxb.ID == ssxxid + select new { tbssxxb }).Single(); + int sslxid = Convert.ToInt32(ssxxb.tbssxxb.SSLX); + int mzyszc = Convert.ToInt32(ssxxb.tbssxxb.MZYSZCID); + int hszcid = Convert.ToInt32(ssxxb.tbssxxb.HSZCID); + decimal sssc = Convert.ToInt32(listsspb.tbsspbb.SSZSC); + DateTime ssrq = Convert.ToDateTime( listsspb.tbsspbb.SSRQ); + DateTime sskssj = Convert.ToDateTime( listsspb.tbsspbb.SSKSSJ); + DateTime ssjssj = Convert.ToDateTime( listsspb.tbsspbb.SSJSSJ); + //分配麻醉医生 + List listmzyssc = new List(); + List listhssc = new List(); + //查询出所有麻醉医生 + var listmzys = (from tbmzysb in myModel.SYS_MZYSB + select new { tbmzysb }).ToList(); + //查询出本月的麻醉医生排班 + var listdypb = (from tbmzyspb in myModel.Bus_MZYSPBB + where tbmzyspb.SSKSSJ >= kssj + select new { tbmzyspb }).ToList(); + //查询出手术当天以排班的麻醉医生 + var listdtpb = listdypb.Where(a => a.tbmzyspb.SSRQ == ssrq).ToList(); + //移除当前时间有排班的麻醉医生 + for (int i = 0; i < listdtpb.Count; i++) + { + DateTime pbkssj = Convert.ToDateTime(listdtpb[i].tbmzyspb.SSKSSJ); + DateTime pbjssj = Convert.ToDateTime(listdtpb[i].tbmzyspb.SSKSSJ); + if (pbjssj < sskssj || pbkssj > ssjssj) + { + int id =Convert.ToInt32(listdtpb[i].tbmzyspb.MZYSID); + listmzys.RemoveAll(a => a.tbmzysb.ID == id); + } + } + var listsclx = listmzys.Where(a => a.tbmzysb.SCSS1 == sslxid || a.tbmzysb.SCSS2 == sslxid || a.tbmzysb.SCSS3 == sslxid).ToList(); + if (listsclx.Count>0) + { + for (int i = 0; i < listsclx.Count; i++) + { + Cus_MZYSSC mzsc = new Cus_MZYSSC(); + int ysid = listsclx[i].tbmzysb.ID; + mzsc.MZYSID = ysid; + mzsc.SSSC = listdypb.Where(a=>a.tbmzyspb.MZYSID== ysid).Sum(a=>a.tbmzyspb.SSSC); + listmzyssc.Add(mzsc); + } + listmzyssc = listmzyssc.OrderBy(a => a.SSSC).ToList(); + listsspb.tbsspbb.MZYS1 = listmzyssc[0].MZYSID; + } + else + { + //没有擅长类型的麻醉医生 + for (int i = 0; i < listmzys.Count; i++) + { + Cus_MZYSSC mzsc = new Cus_MZYSSC(); + int ysid = listmzys[i].tbmzysb.ID; + mzsc.MZYSID = ysid; + mzsc.SSSC = listdypb.Where(a => a.tbmzyspb.MZYSID == ysid).Sum(a => a.tbmzyspb.SSSC); + listmzyssc.Add(mzsc); + } + listmzyssc = listmzyssc.OrderBy(a => a.SSSC).ToList(); + listsspb.tbsspbb.MZYS1 = listmzyssc[0].MZYSID; + } + //分配护士 + //查询手术室所有护士 + var lisths = (from tbhsb in myModel.SYS_HSB + where tbhsb.SSSID == sssid + select new { tbhsb }).ToList(); + //查询出本月的护士排班 + var lisstbyhspb = (from tbhspbb in myModel.Bus_HSPBB + where tbhspbb.SSKSSJ >= kssj + select new { tbhspbb }).ToList(); + for (int i = 0; i < lisths.Count; i++) + { + Cus_MZYSSC hssc = new Cus_MZYSSC(); + int ysid = lisths[i].tbhsb.ID; + hssc.MZYSID = ysid; + hssc.SSSC = lisstbyhspb.Where(a => a.tbhspbb.HSID == ysid).Sum(a => a.tbhspbb.SSSC); + listhssc.Add(hssc); + } + listhssc.OrderBy(a => a.SSSC); + listsspb.tbsspbb.XSHS1 = listhssc[0].MZYSID; + listsspb.tbsspbb.XHHS1 = listhssc[1].MZYSID; + + //List listmzyssc = new List(); + //listmzyssc = (from tbmzysb in myModel.SYS_MZYSB + // where tbmzysb.SCSS1 == sslxid && tbmzysb.SCSS2 == sslxid + // && tbmzysb.SCSS3 == sslxid + // select new Cus_MZYSSC + // { + // MZYSID = tbmzysb.ID + // }).ToList(); + + //分配麻醉医生 + //List listmzyssc = new List(); + //var listrjssmz = ((from tbsspb in myModel.Bus_RJSSB + // join tbmzys1 in myModel.SYS_MZYSB on tbsspb.MZYS1 equals tbmzys1.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == sssid + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.MZYS1, + // MZYS = tbmzys1.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_RJSSB + // join tbmzys2 in myModel.SYS_MZYSB on tbsspb.MZYS2 equals tbmzys2.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == sssid + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.MZYS2, + // MZYS = tbmzys2.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // })).ToList(); + //var listmzys = (from tbmzysb in myModel.SYS_MZYSB + // where tbmzysb.SSSID == sssid + // select new + // { tbmzysb }).ToList(); + //for (int i = 0; i < listmzys.Count; i++) + //{ + // int mzysid = Convert.ToInt32(listmzys[i].tbmzysb.ID); + // var listys = listrjssmz.Where(a => a.MZYSID == mzysid).ToList(); + // Cus_MZYSSC mzys = new Cus_MZYSSC(); + // mzys.MZYSID = mzysid; + // mzys.SSSC = listys.Sum(a => a.SSSC); + // listmzyssc.Add(mzys); + //} + //listmzyssc = listmzyssc.OrderBy(a => a.SSSC).ToList(); + //listsspb.tbsspbb.MZYS1 = listmzyssc[0].MZYSID; + + + ////分配护士 + //List listhssc = new List(); + //var listrjsshs = ((from tbsspb in myModel.Bus_RJSSB + // join tbxhhs1 in myModel.SYS_HSB on tbsspb.XHHS1 equals tbxhhs1.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == sssid + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XHHS1, + // MZYS = tbxhhs1.HSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_RJSSB + // join tbxhhs2 in myModel.SYS_MZYSB on tbsspb.XHHS2 equals tbxhhs2.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == sssid + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XHHS2, + // MZYS = tbxhhs2.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_RJSSB + // join tbxshs1 in myModel.SYS_MZYSB on tbsspb.XSHS1 equals tbxshs1.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == sssid + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XSHS1, + // MZYS = tbxshs1.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_RJSSB + // join tbxshs2 in myModel.SYS_MZYSB on tbsspb.XSHS1 equals tbxshs2.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == sssid + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XSHS2, + // MZYS = tbxshs2.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // })).ToList(); + //var listxhhs = (from tbmzysb in myModel.SYS_HSB + // where tbmzysb.SSSID == sssid + // select new + // { tbmzysb }).ToList(); + //for (int i = 0; i < listxhhs.Count; i++) + //{ + // int mzysid = Convert.ToInt32(listxhhs[i].tbmzysb.ID); + // var listys = listrjsshs.Where(a => a.MZYSID == mzysid).ToList(); + // Cus_MZYSSC mzys = new Cus_MZYSSC(); + // mzys.MZYSID = mzysid; + // mzys.SSSC = listys.Sum(a => a.SSSC); + // listrjsshs.Add(mzys); + //} + //listrjsshs = listrjsshs.OrderBy(a => a.SSSC).ToList(); + //listsspb.tbsspbb.XSHS1 = listrjsshs[0].MZYSID; + //listsspb.tbsspbb.XHHS1 = listrjsshs[1].MZYSID; + + myModel.Entry(listsspb.tbsspbb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + myModel.Entry(listsspb.tbsspbb).State = System.Data.Entity.EntityState.Detached; + //麻醉医生排班表 + Bus_MZYSPBB myzspbb = new Bus_MZYSPBB(); + myzspbb.MZYSID = listsspb.tbsspbb.MZYS1; + myzspbb.PBID = ssid; + myzspbb.SSKSSJ = sskssj; + myzspbb.SSJSSJ = ssjssj; + myzspbb.SSRQ = ssrq; + myzspbb.SSSC = sssc; + myModel.Bus_MZYSPBB.Add(myzspbb); + myModel.SaveChanges(); + myModel.Entry(myzspbb).State = System.Data.Entity.EntityState.Detached; + //巡回护士 + Bus_HSPBB xhhs = new Bus_HSPBB(); + xhhs.HSID = listsspb.tbsspbb.XHHS1; + xhhs.PBID = ssid; + xhhs.SSKSSJ = sskssj; + xhhs.SSJSSJ = ssjssj; + xhhs.SSRQ = ssrq; + xhhs.SSSC = sssc; + myModel.Bus_HSPBB.Add(xhhs); + myModel.SaveChanges(); + myModel.Entry(xhhs).State = System.Data.Entity.EntityState.Detached; + //洗手护士 + Bus_HSPBB xshs = new Bus_HSPBB(); + xshs.HSID = listsspb.tbsspbb.XSHS1; + xshs.PBID = ssid; + xshs.SSKSSJ = sskssj; + xshs.SSJSSJ = ssjssj; + xshs.SSRQ = ssrq; + xshs.SSSC = sssc; + myModel.Bus_HSPBB.Add(xshs); + myModel.SaveChanges(); + myModel.Entry(xshs).State = System.Data.Entity.EntityState.Detached; + + } + } +} diff --git a/SchedulingSystemClient/Properties/AssemblyInfo.cs b/SchedulingSystemClient/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f8d1396 --- /dev/null +++ b/SchedulingSystemClient/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("SchedulingSystemClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SchedulingSystemClient")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +//若要开始生成可本地化的应用程序,请设置 +//.csproj 文件中的 CultureYouAreCodingWith +//例如,如果您在源文件中使用的是美国英语, +//使用的是美国英语,请将 设置为 en-US。 然后取消 +//对以下 NeutralResourceLanguage 特性的注释。 更新 +//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。 + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //主题特定资源词典所处位置 + //(未在页面中找到资源时使用, + //或应用程序资源字典中找到时使用) + ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置 + //(未在页面中找到资源时使用, + //、应用程序或任何主题专用资源字典中找到时使用) +)] + + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 +//通过使用 "*",如下所示: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SchedulingSystemClient/Properties/Resources.Designer.cs b/SchedulingSystemClient/Properties/Resources.Designer.cs new file mode 100644 index 0000000..e8cc422 --- /dev/null +++ b/SchedulingSystemClient/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本: 4.0.30319.42000 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + + +namespace SchedulingSystemClient.Properties +{ + /// + /// 强类型资源类,用于查找本地化字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或删除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// 返回此类使用的缓存 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SchedulingSystemClient.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 重写当前线程的 CurrentUICulture 属性,对 + /// 使用此强类型资源类的所有资源查找执行重写。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/SchedulingSystemClient/Properties/Resources.resx b/SchedulingSystemClient/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SchedulingSystemClient/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SchedulingSystemClient/Properties/Settings.Designer.cs b/SchedulingSystemClient/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c8511f6 --- /dev/null +++ b/SchedulingSystemClient/Properties/Settings.Designer.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +namespace SchedulingSystemClient.Properties +{ + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/SchedulingSystemClient/Properties/Settings.settings b/SchedulingSystemClient/Properties/Settings.settings new file mode 100644 index 0000000..033d7a5 --- /dev/null +++ b/SchedulingSystemClient/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SchedulingSystemClient/RJRYPBWindow.xaml b/SchedulingSystemClient/RJRYPBWindow.xaml new file mode 100644 index 0000000..c0bef4a --- /dev/null +++ b/SchedulingSystemClient/RJRYPBWindow.xaml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/RJRYPBWindow.xaml.cs b/SchedulingSystemClient/RJRYPBWindow.xaml.cs new file mode 100644 index 0000000..c54ff0a --- /dev/null +++ b/SchedulingSystemClient/RJRYPBWindow.xaml.cs @@ -0,0 +1,265 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; + + +namespace SchedulingSystemClient +{ + /// + /// RJRYPBWindow.xaml 的交互逻辑 + /// + + public partial class RJRYPBWindow : Window + { + public RJRYPBWindow(Cus_SSPB selectedRow) + { + InitializeComponent(); + Row = selectedRow; + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + Cus_SSPB Row = new Cus_SSPB(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + int sssid = 0; + if (Row.SSSID != null) + { + sssid = Convert.ToInt32(Row.SSSID); + } + sssmc.Content = Row.SSSMC; + ssmc.Content = Row.SSMC; + ssdj.Content = Row.SSDJ; + qklx.Content = Row.QKLX; + zdys.Content = Row.ZDYS; + hzxm.Content = Row.HZXM; + List listzs1 = new List(); + listzs1 = (from tbsss in myModel.SYS_SSYSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSXM + }).ToList(); + zs1.ItemsSource = listzs1; + zs1.SelectedValuePath = "ID"; + zs1.DisplayMemberPath = "Name"; + if (Row.ZS1ID != null && Row.ZS1ID != 0) + { + zs1.SelectedValue = Row.ZS1ID; + } + List listzs2 = new List(); + listzs2 = (from tbsss in myModel.SYS_SSYSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSXM + }).ToList(); + zs2.ItemsSource = listzs2; + zs2.SelectedValuePath = "ID"; + zs2.DisplayMemberPath = "Name"; + if (Row.ZS2ID != null && Row.ZS2ID != 0) + { + zs2.SelectedValue = Row.ZS2ID; + } + List listmz1 = new List(); + listmz1 = (from tbsss in myModel.SYS_MZYSB + where tbsss.SSSID == sssid + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSMC + }).ToList(); + mz1.ItemsSource = listmz1; + mz1.SelectedValuePath = "ID"; + mz1.DisplayMemberPath = "Name"; + if (Row.MZYS1ID != null && Row.MZYS1ID != 0) + { + mz1.SelectedValue = Row.MZYS1ID; + } + List listmz2 = new List(); + listmz2 = (from tbsss in myModel.SYS_MZYSB + where tbsss.SSSID == sssid + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSMC + }).ToList(); + mz2.ItemsSource = listmz2; + mz2.SelectedValuePath = "ID"; + mz2.DisplayMemberPath = "Name"; + if (Row.MZYS2ID != null && Row.MZYS2ID != 0) + { + mz2.SelectedValue = Row.MZYS2ID; + } + List listxs1 = new List(); + listxs1 = (from tbsss in myModel.SYS_HSB + where tbsss.SSSID == sssid + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.HSMC + }).ToList(); + xs1.ItemsSource = listxs1; + xs1.SelectedValuePath = "ID"; + xs1.DisplayMemberPath = "Name"; + if (Row.XSHS1ID != null && Row.XSHS1ID != 0) + { + xs1.SelectedValue = Row.XSHS1ID; + } + List listxs2 = new List(); + listxs2 = (from tbsss in myModel.SYS_HSB + where tbsss.SSSID == sssid + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.HSMC + }).ToList(); + xs2.ItemsSource = listxs2; + xs2.SelectedValuePath = "ID"; + xs2.DisplayMemberPath = "Name"; + if (Row.XSHS2ID != null && Row.XSHS2ID != 0) + { + xs2.SelectedValue = Row.XSHS2ID; + } + List listxh1 = new List(); + listxh1 = (from tbsss in myModel.SYS_HSB + where tbsss.SSSID == sssid + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.HSMC + }).ToList(); + xh1.ItemsSource = listxh1; + xh1.SelectedValuePath = "ID"; + xh1.DisplayMemberPath = "Name"; + if (Row.XHHS1ID != null && Row.XHHS1ID != 0) + { + xh1.SelectedValue = Row.XHHS1ID; + } + List listxh2 = new List(); + listxh2 = (from tbsss in myModel.SYS_HSB + where tbsss.SSSID == sssid + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.HSMC + }).ToList(); + xh2.ItemsSource = listxh2; + xh2.SelectedValuePath = "ID"; + xh2.DisplayMemberPath = "Name"; + if (Row.XHHS2ID != null && Row.XHHS2ID != 0) + { + xh2.SelectedValue = Row.XHHS2ID; + } + } + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + try + { + int Intzs1 = 0; + int Intzs2 = 0; + int Intmz1 = 0; + int Intmz2 = 0; + int Intxs1 = 0; + int Intxs2 = 0; + int Intxh1 = 0; + int Intxh2 = 0; + if (mz1.SelectedValue != null) + { + Intmz1 = Convert.ToInt32(mz1.SelectedValue); + } + else + { + MessageBox.Show("请选择麻醉医生"); + return; + } + if (mz2.SelectedValue != null) + { + Intmz2 = Convert.ToInt32(mz2.SelectedValue); + } + if (zs1.SelectedValue != null) + { + Intzs1 = Convert.ToInt32(zs1.SelectedValue); + } + if (zs2.SelectedValue != null) + { + Intzs2 = Convert.ToInt32(zs2.SelectedValue); + } + if (xh1.SelectedValue != null) + { + Intxh1 = Convert.ToInt32(xh1.SelectedValue); + } + if (xh2.SelectedValue != null) + { + Intxh2 = Convert.ToInt32(xh2.SelectedValue); + } + if (xs1.SelectedValue != null) + { + Intxs1 = Convert.ToInt32(xs1.SelectedValue); + } + if (xs2.SelectedValue != null) + { + Intxs2 = Convert.ToInt32(xs2.SelectedValue); + } + if (Intzs1 == Intzs2) + { + MessageBox.Show("助手重复"); + return; + } + if (Intmz1 == Intmz2) + { + MessageBox.Show("麻醉医生重复"); + return; + } + if (Intxs1 == Intxs2 || Intxs1 == Intxh1 || Intxs1 == Intxh2 || Intxs2 == Intxh1 || Intxs2 == Intxh2 || Intxh1 == Intxh2) + { + MessageBox.Show("护士重复"); + return; + } + Bus_RJSSB sspb = new Bus_RJSSB(); + sspb.ID = Row.ID; + sspb.BZ = Row.BZ; + sspb.HZXM = Row.HZXM; + sspb.KSID = Row.KSID; + sspb.MZYS1 = Intmz1; + sspb.MZYS2 = Intmz2; + //sspb.MZYS3 = Row.ID; + sspb.PBZT = Row.PBZTID; + sspb.QJSC = Row.QJSC; + sspb.QZ = Row.QZ; + sspb.SFJZ = Row.SFJZ; + sspb.SQDH = Row.SQDH; + sspb.SQSJ = Row.SQSJ; + sspb.SQZD = Row.SQZD; + sspb.SSID = Row.SSID; + sspb.SSJSSJ = Row.SSJSSJ; + sspb.SSKSSJ = Row.SSKSSJ; + sspb.SSRQ = Row.SSRQ; + sspb.SSSC = Row.SSSC; + sspb.SSSID = Row.SSSID; + sspb.SSZSC = Row.SSZSC; + sspb.XHHS1 = Intxh1; + sspb.XHHS2 = Intxh2; + sspb.XSHS1 = Intxs1; + sspb.XSHS2 = Intxs2; + sspb.ZDYS = Row.ZDYSID; + sspb.ZLKH = Row.ZLKH; + sspb.ZS1 = Intzs1; + sspb.ZS2 = Intzs2; + //sspb.ZS3 = Row.ZS3ID; + sspb.ZYH = Row.ZYH; + myModel.Entry(sspb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("保存成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + + + } + } +} diff --git a/SchedulingSystemClient/RJSSWindow.xaml b/SchedulingSystemClient/RJSSWindow.xaml new file mode 100644 index 0000000..1611fed --- /dev/null +++ b/SchedulingSystemClient/RJSSWindow.xaml @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SchedulingSystemClient/RJSSWindow.xaml.cs b/SchedulingSystemClient/RJSSWindow.xaml.cs new file mode 100644 index 0000000..a55ead3 --- /dev/null +++ b/SchedulingSystemClient/RJSSWindow.xaml.cs @@ -0,0 +1,271 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using SchedulingSystemClient.InsertWindow; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; +using System.Windows.Controls; + +namespace SchedulingSystemClient +{ + /// + /// RJSSWindow.xaml 的交互逻辑 + /// + public partial class RJSSWindow : UserControl + { + public RJSSWindow(SYS_YHB yh) + { + InitializeComponent(); + user = yh; + } + SYS_YHB user = new SYS_YHB(); + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + Cus_SSPB selectedRow = new Cus_SSPB(); + List listsspb = new List(); + private void sspbdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + selectedRow = sspbdata.SelectedItem as Cus_SSPB; + } + bool? IsSDPB; + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + List listsss = new List(); + List listzt = new List(); + listsss = (from tbsss in myModel.SYS_SSSB + where tbsss.SFRJ ==true + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.SSSMC + }).ToList(); + listzt = (from tbsss in myModel.SYS_PBZTB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.Name + }).ToList(); + listsss.Add(new ComboBoxBinding() { ID = 0, Name = "全部" }); + listzt.Add(new ComboBoxBinding() { ID = 0, Name = "全部" }); + sss.ItemsSource = listsss.OrderBy(a => a.ID); + sss.SelectedValuePath = "ID"; + sss.DisplayMemberPath = "Name"; + sss.SelectedValue = 0; + zt.ItemsSource = listzt.OrderBy(a => a.ID); + zt.SelectedValuePath = "ID"; + zt.DisplayMemberPath = "Name"; + zt.SelectedValue = 0; + SelectPBXX(); + } + List listsqjl = new List(); + /// + /// 查询排班信息 + /// + private void SelectPBXX() + { + PaiBan.RiJianPaiBan(); + listsspb = (from tbsspbb in myModel.Bus_RJSSB + 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 sssb.SFRJ == true + 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 = tbsspbb.SSZSC, + 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, + SSID = tbsspbb.SSID, + }).ToList(); + string strtj = tj.Text; + if (strtj != string.Empty) + { + listsspb = listsspb.Where(a => a.SSMC.Contains(strtj) || a.HZXM.Contains(strtj) || a.ZDYS.Contains(strtj)).ToList(); + } + int sssid = Convert.ToInt32(sss.SelectedValue); + int ztid = Convert.ToInt32(zt.SelectedValue); + if (sssid != 0) + { + listsspb = listsspb.Where(a => Convert.ToInt32(a.SSSID) == sssid).ToList(); + } + if (ztid != 0) + { + listsspb = listsspb.Where(a => a.PBZTID == ztid).ToList(); + } + //DateTime? sskssj = Convert.ToDateTime(kssj.SelectedDate).Date; + //DateTime? ssjssj = Convert.ToDateTime(jssj.SelectedDate).Date.AddDays(1).AddSeconds(-1); + //listsspb = listsspb.Where(a => a.SSKSSJ > sskssj && a.SSKSSJ < ssjssj).ToList(); + sspbdata.ItemsSource = listsspb; + } + private void btn_xz_Click(object sender, RoutedEventArgs e) + { + XZRJSSWindow window = new XZRJSSWindow(user); + window.ShowDialog(); + SelectPBXX(); + } + private void btn_xg_Click(object sender, RoutedEventArgs e) + { + if (selectedRow == null) + { + MessageBox.Show("请选择需要修改的内容"); + return; + } + if (selectedRow.ID != 0) + { + + if (selectedRow.PBZTID == 4) + { + MessageBox.Show("已完成不能修改"); + return; + } + if (selectedRow.PBZTID == 3) + { + MessageBox.Show("已取消不能修改"); + return; + } + RJRYPBWindow window = new RJRYPBWindow(selectedRow); + window.ShowDialog(); + SelectPBXX(); + } + } + /// + /// 取消 + /// + /// + /// + private void btn_qx_Click(object sender, RoutedEventArgs e) + { + if (selectedRow.ID != 0) + { + + if (selectedRow.PBZTID == 3) + { + MessageBox.Show("该排班已经取消!"); + return; + } + + if (selectedRow.PBZTID == 4) + { + MessageBox.Show("该排班已完成!"); + return; + } + MessageBoxResult dr = MessageBox.Show("确定要取消排班吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + try + { + var pbb = (from tbpbb in myModel.Bus_RJSSB + where tbpbb.ID == selectedRow.ID + select new + { + tbpbb, + }).Single(); + Bus_RJSSB buspbb = new Bus_RJSSB(); + buspbb = pbb.tbpbb; + buspbb.PBZT = 3; + Bus_PBRZB pbrz = new Bus_PBRZB(); + pbrz.CZLX = 6; + pbrz.CZRYID = user.ID; + pbrz.SQDH = buspbb.SQDH; + myModel.Bus_PBRZB.Add(pbrz); + myModel.SaveChanges(); + myModel.Entry(buspbb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("取消成功"); + SelectPBXX(); + } + catch (Exception ex) + { + MessageBox.Show("取消失败" + ex.ToString()); + } + } + } + else + { + MessageBox.Show("请选择需要取消的排班"); + } + } + /// + /// 刷新 + /// + /// + /// + private void btn_sx_Click(object sender, RoutedEventArgs e) + { + SelectPBXX(); + } + + } +} diff --git a/SchedulingSystemClient/RYPBWindow.xaml b/SchedulingSystemClient/RYPBWindow.xaml new file mode 100644 index 0000000..eea36ab --- /dev/null +++ b/SchedulingSystemClient/RYPBWindow.xaml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/RYPBWindow.xaml.cs b/SchedulingSystemClient/RYPBWindow.xaml.cs new file mode 100644 index 0000000..6725a4b --- /dev/null +++ b/SchedulingSystemClient/RYPBWindow.xaml.cs @@ -0,0 +1,262 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; + +namespace SchedulingSystemClient +{ + /// + /// RYPBWindow.xaml 的交互逻辑 + /// + public partial class RYPBWindow : Window + { + public RYPBWindow(Cus_SSPB selectedRow ) + { + InitializeComponent(); + Row = selectedRow; + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + Cus_SSPB Row = new Cus_SSPB(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + int sssid = 0; + if (Row.SSSID !=null) + { + sssid = Convert.ToInt32(Row.SSSID); + } + sssmc.Content = Row.SSSMC; + ssmc.Content = Row.SSMC; + ssdj.Content = Row.SSDJ; + qklx.Content = Row.QKLX; + zdys.Content = Row.ZDYS; + hzxm.Content = Row.HZXM; + List listzs1 = new List(); + listzs1 = (from tbsss in myModel.SYS_SSYSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSXM + }).ToList(); + zs1.ItemsSource = listzs1; + zs1.SelectedValuePath = "ID"; + zs1.DisplayMemberPath = "Name"; + if (Row.ZS1ID!=null && Row.ZS1ID != 0) + { + zs1.SelectedValue = Row.ZS1ID; + } + List listzs2 = new List(); + listzs2 = (from tbsss in myModel.SYS_SSYSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSXM + }).ToList(); + zs2.ItemsSource = listzs2; + zs2.SelectedValuePath = "ID"; + zs2.DisplayMemberPath = "Name"; + if (Row.ZS2ID != null && Row.ZS2ID != 0) + { + zs2.SelectedValue = Row.ZS2ID; + } + + List listmz1 = new List(); + listmz1 = (from tbsss in myModel.SYS_MZYSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSMC + }).ToList(); + + mz1.ItemsSource = listmz1; + mz1.SelectedValuePath = "ID"; + mz1.DisplayMemberPath = "Name"; + if (Row.MZYS1ID != null && Row.MZYS1ID != 0) + { + mz1.SelectedValue = Row.MZYS1ID; + } + List listmz2 = new List(); + listmz2 = (from tbsss in myModel.SYS_MZYSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSMC + }).ToList(); + mz2.ItemsSource = listmz2; + mz2.SelectedValuePath = "ID"; + mz2.DisplayMemberPath = "Name"; + if (Row.MZYS2ID != null && Row.MZYS2ID != 0) + { + mz2.SelectedValue = Row.MZYS2ID; + } + List listxs1 = new List(); + listxs1= (from tbsss in myModel.SYS_HSB + where tbsss.SSSID == sssid + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.HSMC + }).ToList(); + xs1.ItemsSource = listxs1; + xs1.SelectedValuePath = "ID"; + xs1.DisplayMemberPath = "Name"; + if (Row.XSHS1ID != null && Row.XSHS1ID != 0) + { + xs1.SelectedValue = Row.XSHS1ID; + } + List listxs2 = new List(); + listxs2 = (from tbsss in myModel.SYS_HSB + where tbsss.SSSID == sssid + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.HSMC + }).ToList(); + xs2.ItemsSource = listxs2; + xs2.SelectedValuePath = "ID"; + xs2.DisplayMemberPath = "Name"; + if (Row.XSHS2ID != null && Row.XSHS2ID != 0) + { + xs2.SelectedValue = Row.XSHS2ID; + } + List listxh1 = new List(); + listxh1 = (from tbsss in myModel.SYS_HSB + where tbsss.SSSID == sssid + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.HSMC + }).ToList(); + xh1.ItemsSource = listxh1; + xh1.SelectedValuePath = "ID"; + xh1.DisplayMemberPath = "Name"; + if (Row.XHHS1ID != null && Row.XHHS1ID != 0) + { + xh1.SelectedValue = Row.XHHS1ID; + } + List listxh2 = new List(); + listxh2 = (from tbsss in myModel.SYS_HSB + where tbsss.SSSID == sssid + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.HSMC + }).ToList(); + xh2.ItemsSource = listxh2; + xh2.SelectedValuePath = "ID"; + xh2.DisplayMemberPath = "Name"; + if (Row.XHHS2ID != null && Row.XHHS2ID != 0) + { + xh2.SelectedValue = Row.XHHS2ID; + } + } + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + try + { + int Intzs1 =0; + int Intzs2 =0; + int Intmz1 =0; + int Intmz2 =0; + int Intxs1 =0; + int Intxs2 =0; + int Intxh1 =0; + int Intxh2 =0; + if (mz1.SelectedValue != null) + { + Intmz1 = Convert.ToInt32(mz1.SelectedValue); + } + else + { + MessageBox.Show("请选择麻醉医生"); + return; + } + if (mz2.SelectedValue != null) + { + Intmz2 = Convert.ToInt32(mz2.SelectedValue); + } + if (zs1.SelectedValue != null) + { + Intzs1 = Convert.ToInt32(zs1.SelectedValue); + } + if (zs2.SelectedValue != null) + { + Intzs2 = Convert.ToInt32(zs2.SelectedValue); + } + if (xh1.SelectedValue != null) + { + Intxh1 = Convert.ToInt32(xh1.SelectedValue); + } + if (xh2.SelectedValue != null) + { + Intxh2 = Convert.ToInt32(xh2.SelectedValue); + } + if (xs1.SelectedValue != null) + { + Intxs1 = Convert.ToInt32(xs1.SelectedValue); + } + if (xs2.SelectedValue != null) + { + Intxs2 = Convert.ToInt32(xs2.SelectedValue); + } + if (Intzs1== Intzs2) + { + MessageBox.Show("助手重复"); + return; + } + if (Intmz1 == Intmz2) + { + MessageBox.Show("麻醉医生重复"); + return; + } + if (Intxs1 == Intxs2|| Intxs1 == Intxh1|| Intxs1 == Intxh2 || Intxs2== Intxh1 || Intxs2 == Intxh2 || Intxh1 == Intxh2) + { + MessageBox.Show("护士重复"); + return; + } + Bus_SSPBB sspb = new Bus_SSPBB(); + sspb.ID = Row.ID; + sspb.BZ = Row.BZ; + sspb.HZXM = Row.HZXM; + sspb.KSID = Row.KSID; + sspb.MZYS1 = Intmz1; + sspb.MZYS2 = Intmz2; + //sspb.MZYS3 = Row.ID; + sspb.PBZT = Row.PBZTID; + sspb.QJSC = Row.QJSC; + sspb.QZ = Row.QZ; + sspb.SFJZ = Row.SFJZ; + sspb.SQDH = Row.SQDH; + sspb.SQSJ = Row.SQSJ; + sspb.SQZD = Row.SQZD; + sspb.SSID = Row.SSID; + sspb.SSJSSJ = Row.SSJSSJ; + sspb.SSKSSJ = Row.SSKSSJ; + sspb.SSRQ = Row.SSRQ; + sspb.SSSC = Row.SSSC; + sspb.SSSID = Row.SSSID; + sspb.SSZSC = Row.SSZSC; + sspb.XHHS1 = Intxh1; + sspb.XHHS2 = Intxh2; + sspb.XSHS1 = Intxs1; + sspb.XSHS2 = Intxs2; + sspb.ZDYS = Row.ZDYSID; + sspb.ZLKH = Row.ZLKH; + sspb.ZS1 = Intzs1; + sspb.ZS2 = Intzs2; + //sspb.ZS3 = Row.ZS3ID; + sspb.ZYH = Row.ZYH; + myModel.Entry(sspb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("保存成功"); + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + + + } + } +} diff --git a/SchedulingSystemClient/SBGLWindow.xaml b/SchedulingSystemClient/SBGLWindow.xaml new file mode 100644 index 0000000..21d577f --- /dev/null +++ b/SchedulingSystemClient/SBGLWindow.xaml @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/SBGLWindow.xaml.cs b/SchedulingSystemClient/SBGLWindow.xaml.cs new file mode 100644 index 0000000..e2f20c1 --- /dev/null +++ b/SchedulingSystemClient/SBGLWindow.xaml.cs @@ -0,0 +1,134 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using SchedulingSystemClient.InsertWindow; +using SchedulingSystemClient.UpdateWindow; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace SchedulingSystemClient +{ + /// + /// SBGLWindow.xaml 的交互逻辑 + /// + public partial class SBGLWindow : UserControl + { + public SBGLWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + Cus_SBB selectedRow = new Cus_SBB(); + /// + /// 查询 + /// + /// + /// + private void btn_sx_Click(object sender, RoutedEventArgs e) + { + var list = (from tbsbb in myModel.Bus_SBB + join tbsblx in myModel.SYS_SBLXB on tbsbb.SBLX equals tbsblx.ID + join tbsssb in myModel.SYS_SSSB on tbsbb.SSSID equals tbsssb.ID + join tbsbdj in myModel.SYS_SBDJB on tbsbb.SBDJ equals tbsbdj.ID + select new Cus_SBB + { + ID = tbsbb.ID, + SBBM = tbsbb.SBBM, + SBDJ = tbsbb.SBDJ, + SBJG = tbsbb.SBJG, + SBLX = tbsbb.SBLX, + SBMC = tbsbb.SBMC, + SSSID = tbsbb.ID, + SSSMC = tbsssb.SSSMC, + strSBDJ = tbsbdj.Name, + strSBLX = tbsblx.Name, + }).ToList(); + sbgldata.ItemsSource = list; + } + /// + /// 添加 + /// + /// + /// + private void btn_tj_Click(object sender, RoutedEventArgs e) + { + XZSBWindow window = new XZSBWindow(); + window.ShowDialog(); + } + + private void btn_sc_Click(object sender, RoutedEventArgs e) + { + + } + + private void btn_xg_Click(object sender, RoutedEventArgs e) + { + if (selectedRow.ID==0) + { + MessageBox.Show("请选择要修改的内容"); + return; + } + else + { + XGSBWindow window = new XGSBWindow(selectedRow); + window.ShowDialog(); + } + } + + private void sbgldata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + selectedRow = sbgldata.SelectedItem as Cus_SBB; + } + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + List listsblx = new List(); + listsblx = (from tbsblxb in myModel.SYS_SBLXB + select new ComboBoxBinding + { + ID = tbsblxb.ID, + Name = tbsblxb.Name, + }).ToList(); + listsblx.Add(new ComboBoxBinding() { ID = 0, Name = "全部" }); + sblx.ItemsSource = listsblx.OrderBy(a => a.ID); + sblx.SelectedValuePath = "ID"; + sblx.DisplayMemberPath = "Name"; + List listsss = new List(); + listsss = (from tbsssb in myModel.SYS_SSSB + select new ComboBoxBinding + { + ID = tbsssb.ID, + Name = tbsssb.SSSMC, + }).ToList(); + listsss.Add(new ComboBoxBinding() { ID = 0, Name = "全部" }); + sss.ItemsSource = listsss.OrderBy(a => a.ID); + sss.SelectedValuePath = "ID"; + sss.DisplayMemberPath = "Name"; + List listsbdj = new List(); + listsbdj = (from tbsbdj in myModel.SYS_SBDJB + select new ComboBoxBinding + { + ID = tbsbdj.ID, + Name = tbsbdj.Name, + }).ToList(); + listsbdj.Add(new ComboBoxBinding() { ID = 0, Name = "全部" }); + sbdj.ItemsSource = listsbdj.OrderBy(a => a.ID); + sbdj.SelectedValuePath = "ID"; + sbdj.DisplayMemberPath = "Name"; + + sblx.SelectedIndex = 0; + sss.SelectedIndex = 0; + sbdj.SelectedIndex = 0; + + } + } +} diff --git a/SchedulingSystemClient/SJTJWindow.xaml b/SchedulingSystemClient/SJTJWindow.xaml new file mode 100644 index 0000000..19c69d3 --- /dev/null +++ b/SchedulingSystemClient/SJTJWindow.xaml @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/SJTJWindow.xaml.cs b/SchedulingSystemClient/SJTJWindow.xaml.cs new file mode 100644 index 0000000..132cf9d --- /dev/null +++ b/SchedulingSystemClient/SJTJWindow.xaml.cs @@ -0,0 +1,331 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace SchedulingSystemClient +{ + /// + /// SJTJWindow.xaml 的交互逻辑 + /// + public partial class SJTJWindow : UserControl + { + public SJTJWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + str = "麻醉医生"; + MZYS.IsEnabled = false; + HS.IsEnabled = true; + SSJ.IsEnabled = true; + mzysgrid.Visibility = Visibility.Visible; + hsgrid.Visibility = Visibility.Collapsed; + ssjgrid.Visibility = Visibility.Collapsed; + kssj.Text = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.ToString(); + jssj.Text = DateTime.Now.ToString(); + List listsss = new List(); + listsss = (from tbsss in myModel.SYS_SSSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.SSSMC + }).ToList(); + listsss.Add(new ComboBoxBinding() { ID = 0, Name = "全部" }); + sss.ItemsSource = listsss.OrderBy(a => a.ID); + sss.SelectedValuePath = "ID"; + sss.DisplayMemberPath = "Name"; + sss.SelectedValue = 0; + ChaXun(); + } + private void btn_cx_Click(object sender, RoutedEventArgs e) + { + ChaXun(); + } + private void ChaXun() + { + DateTime tjkssj; + DateTime tjjssj; + if (kssj.SelectedDate!=null) + { + tjkssj = Convert.ToDateTime(kssj.SelectedDate); + } + else + { + tjkssj = DateTime.Now; + } + if (jssj.SelectedDate != null) + { + tjjssj = Convert.ToDateTime(jssj.SelectedDate).AddDays(1); + } + else + { + tjjssj = DateTime.Now; + } + if (str == "麻醉医生") + { + + //List listmzyssc = new List(); + //var listmzys = ((from tbsspb in myModel.Bus_SSPBB + // join tbmzys1 in myModel.SYS_MZYSB on tbsspb.MZYS1 equals tbmzys1.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.MZYS1, + // MZYS = tbmzys1.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_SSPBB + // join tbmzys2 in myModel.SYS_MZYSB on tbsspb.MZYS2 equals tbmzys2.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.MZYS2, + // MZYS = tbmzys2.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // })).ToList(); + //var list = listmzys.GroupBy(t => new{ t.SSSID, t.MZYSID }).ToList(); + //for (int i = 0; i < list.Count; i++) + //{ + // int sssid =Convert.ToInt32(list[i].Key.SSSID); + // int mzysid =Convert.ToInt32(list[i].Key.MZYSID); + // var listys = listmzys.Where(a=>a.SSSID== sssid && a.MZYSID == mzysid).ToList(); + // Cus_MZYSSC mzys = new Cus_MZYSSC(); + // mzys.MZYS = listys[0].MZYS; + // mzys.SSS = listys[0].SSS; + // mzys.SSTS = listys.Count(); + // mzys.SSSC = listys.Sum(a=>a.SSSC); + // if (mzys.SSTS !=0 ) + // { + // mzys.SSPJSC = Convert.ToDecimal(Math.Round((double)mzys.SSSC / (double)mzys.SSTS, 2)); + // } + // listmzyssc.Add(mzys); + //} + List listmzyssc = new List(); + + var listmzys = (from tbmzyspbb in myModel.Bus_MZYSPBB + join tbmzysb in myModel.SYS_MZYSB on tbmzyspbb.MZYSID equals tbmzysb.ID + where tbmzyspbb.SSJSSJ >= tjkssj && tbmzyspbb.SSJSSJ <= tjjssj + select new Cus_MZYSSC + { + MZYSID = tbmzyspbb.MZYSID, + MZYS = tbmzysb.YSMC, + SSSID = tbmzyspbb.PBID, + SSSC = tbmzyspbb.SSSC, + }).ToList(); + var list = listmzys.GroupBy(t => new {t.MZYSID }).ToList(); + for (int i = 0; i < list.Count; i++) + { + + int mzysid = Convert.ToInt32(list[i].Key.MZYSID); + var listys = listmzys.Where(a => a.MZYSID == mzysid).ToList(); + Cus_MZYSSC mzys = new Cus_MZYSSC(); + mzys.MZYS = listys[0].MZYS; + mzys.SSS = listys[0].SSS; + mzys.SSTS = listys.Count(); + mzys.SSSC = listys.Sum(a => a.SSSC); + if (mzys.SSTS != 0) + { + mzys.SSPJSC = Convert.ToDecimal(Math.Round((double)mzys.SSSC / (double)mzys.SSTS, 2)); + } + listmzyssc.Add(mzys); + } + mzysdata.ItemsSource = listmzyssc; + } + if (str == "护士") + { + //List listmzyssc = new List(); + //var listmzys = ((from tbsspb in myModel.Bus_SSPBB + // join tbxhhs1 in myModel.SYS_HSB on tbsspb.XHHS1 equals tbxhhs1.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XHHS1, + // MZYS = tbxhhs1.HSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_SSPBB + // join tbxhhs2 in myModel.SYS_MZYSB on tbsspb.XHHS2 equals tbxhhs2.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XHHS2, + // MZYS = tbxhhs2.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_SSPBB + // join tbxshs1 in myModel.SYS_MZYSB on tbsspb.XSHS1 equals tbxshs1.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XSHS1, + // MZYS = tbxshs1.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // }).Concat(from tbsspb in myModel.Bus_SSPBB + // join tbxshs2 in myModel.SYS_MZYSB on tbsspb.XSHS1 equals tbxshs2.ID + // join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + // select new Cus_MZYSSC + // { + // MZYSID = tbsspb.XSHS2, + // MZYS = tbxshs2.YSMC, + // SSSID = tbsspb.SSSID, + // SSS = tbsssb.SSSMC, + // SSSC = tbsspb.SSSC, + // })).ToList(); + //var list = listmzys.GroupBy(t => new { t.SSSID, t.MZYSID }).ToList(); + //for (int i = 0; i < list.Count; i++) + //{ + // int sssid = Convert.ToInt32(list[i].Key.SSSID); + // int mzysid = Convert.ToInt32(list[i].Key.MZYSID); + // var listys = listmzys.Where(a => a.SSSID == sssid && a.MZYSID == mzysid).ToList(); + // Cus_MZYSSC mzys = new Cus_MZYSSC(); + // mzys.MZYS = listys[0].MZYS; + // mzys.SSS = listys[0].SSS; + // mzys.SSTS = listys.Count(); + // mzys.SSSC = listys.Sum(a => a.SSSC); + // if (mzys.SSTS != 0) + // { + // mzys.SSPJSC = Convert.ToDecimal(Math.Round((double)mzys.SSSC / (double)mzys.SSTS, 2)); + // } + // listmzyssc.Add(mzys); + //} + //hsdata.ItemsSource = listmzyssc; + + List listmzyssc = new List(); + + var lisths = (from tbhspbb in myModel.Bus_HSPBB + join tbhsb in myModel.SYS_HSB on tbhspbb.HSID equals tbhsb.ID + where tbhspbb.SSJSSJ >= tjkssj && tbhspbb.SSJSSJ <= tjjssj + select new Cus_MZYSSC + { + MZYSID = tbhspbb.HSID, + MZYS = tbhsb.HSMC, + SSSC = tbhspbb.SSSC, + }).ToList(); + var list = lisths.GroupBy(t => new { t.MZYSID }).ToList(); + for (int i = 0; i < list.Count; i++) + { + + int mzysid = Convert.ToInt32(list[i].Key.MZYSID); + var listys = lisths.Where(a => a.MZYSID == mzysid).ToList(); + Cus_MZYSSC mzys = new Cus_MZYSSC(); + mzys.MZYS = listys[0].MZYS; + mzys.SSS = listys[0].SSS; + mzys.SSTS = listys.Count(); + mzys.SSSC = listys.Sum(a => a.SSSC); + if (mzys.SSTS != 0) + { + mzys.SSPJSC = Convert.ToDecimal(Math.Round((double)mzys.SSSC / (double)mzys.SSTS, 2)); + } + listmzyssc.Add(mzys); + } + hsdata.ItemsSource = listmzyssc; + } + if (str == "手术间") + { + List listssjdyl = new List(); + var listssj = (from tbsspb in myModel.Bus_SSPBB + join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID + where tbsspb.SSJSSJ >= tjkssj && tbsspb.SSJSSJ <= tjjssj + select new Cus_SSJDYL + { + ID =tbsspb.ID, + SSS = tbsssb.SSSMC, + SSSID =tbsspb.SSSID, + SSSC =tbsspb.SSSC + }).ToList(); + var list = listssj.GroupBy(t => t.SSSID).ToList(); + for (int i = 0; i < list.Count; i++) + { + int sssid = Convert.ToInt32(list[i].Key); + var listsss = listssj.Where(a => a.SSSID == sssid).ToList(); + Cus_SSJDYL ssjdyl = new Cus_SSJDYL(); + + ssjdyl.SSSID = sssid; + ssjdyl.SSS = listsss[0].SSS; + ssjdyl.SSSC = listsss.Sum(a=>a.SSSC); + ssjdyl.SSZSC = listssj.Sum(a => a.SSSC); + if (ssjdyl.SSZSC != 0) + { + ssjdyl.SSSCZB = Convert.ToDecimal( Math.Round((double) ssjdyl.SSSC / (double)ssjdyl.SSZSC * 100, 2)) ; + } + ssjdyl.SSTS = listsss.Count; + ssjdyl.SSZTS = listssj.Count; + if (ssjdyl.SSZTS != 0) + { + ssjdyl.SSTSZB = Convert.ToDecimal(Math.Round((double)ssjdyl.SSTS / (double)ssjdyl.SSZTS * 100, 2)); + } + if (ssjdyl.SSTS!=0) + { + ssjdyl.SSPJSC = Convert.ToDecimal(Math.Round((double)ssjdyl.SSSC / (double)ssjdyl.SSTS, 2)); + } + listssjdyl.Add(ssjdyl); + } + ssjdata.ItemsSource = listssjdyl; + } + } + string str = "麻醉医生"; + private void MZYS_Click(object sender, RoutedEventArgs e) + { + str = "麻醉医生"; + MZYS.IsEnabled = false; + HS.IsEnabled = true; + SSJ.IsEnabled = true; + mzysgrid.Visibility = Visibility.Visible; + hsgrid.Visibility = Visibility.Collapsed; + ssjgrid.Visibility = Visibility.Collapsed; + ChaXun(); + + } + + private void HS_Click(object sender, RoutedEventArgs e) + { + str = "护士"; + MZYS.IsEnabled = true; + HS.IsEnabled = false; + SSJ.IsEnabled = true; + mzysgrid.Visibility = Visibility.Collapsed; + hsgrid.Visibility = Visibility.Visible; + ssjgrid.Visibility = Visibility.Collapsed; + ChaXun(); + } + + private void SSJ_Click(object sender, RoutedEventArgs e) + { + str = "手术间"; + MZYS.IsEnabled = true; + HS.IsEnabled = true; + SSJ.IsEnabled = false; + mzysgrid.Visibility = Visibility.Collapsed; + hsgrid.Visibility = Visibility.Collapsed; + ssjgrid.Visibility = Visibility.Visible; + ChaXun(); + + } + + private void btn_dc_Click(object sender, RoutedEventArgs e) + { + + } + } +} diff --git a/SchedulingSystemClient/SQJLWindow.xaml b/SchedulingSystemClient/SQJLWindow.xaml new file mode 100644 index 0000000..b55ea4f --- /dev/null +++ b/SchedulingSystemClient/SQJLWindow.xaml @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/SQJLWindow.xaml.cs b/SchedulingSystemClient/SQJLWindow.xaml.cs new file mode 100644 index 0000000..442fdfa --- /dev/null +++ b/SchedulingSystemClient/SQJLWindow.xaml.cs @@ -0,0 +1,1348 @@ +using SchedulingSystem; +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace SchedulingSystemClient +{ + /// + /// SQJLWindow.xaml 的交互逻辑 + /// + public partial class SQJLWindow : UserControl + { + public SQJLWindow(SYS_YHB yh) + { + InitializeComponent(); + user = yh; + } + SYS_YHB user = new SYS_YHB(); + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + Cus_SSSQB selectedRow = new Cus_SSSQB(); + private void sqjldata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + selectedRow = sqjldata.SelectedItem as Cus_SSSQB; + } + + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + List listsqks = new List(); + listsqks = (from tbsss in myModel.SYS_KSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.KSMC + }).ToList(); + listsqks.Add(new ComboBoxBinding() { ID = 0, Name = "全部" }); + sqks.ItemsSource = listsqks.OrderBy(a => a.ID); + sqks.SelectedValuePath = "ID"; + sqks.DisplayMemberPath = "Name"; + sqks.SelectedValue = 0; + + List listssdj = new List(); + listssdj = (from tbsss in myModel.SYS_SSDJB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.SSDJ + }).ToList(); + listssdj.Add(new ComboBoxBinding() { ID = 0, Name = "全部" }); + ssdj.ItemsSource = listssdj.OrderBy(a => a.ID); + ssdj.SelectedValuePath = "ID"; + ssdj.DisplayMemberPath = "Name"; + ssdj.SelectedValue = 0; + + kssj.Text = DateTime.Now.AddDays(-6).ToString(); + jssj.Text = DateTime.Now.ToString(); + SelectPBXX(); + } + List listpbsq = new List(); + /// + /// 查询排班信息 + /// + private void SelectPBXX() + { + listpbsq = (from tbsssqb in myModel.Bus_SSSQB + 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 tbzt in myModel.SYS_SQZTB on tbsssqb.ZT equals tbzt.ID + select new Cus_SSSQB + { + ID = tbsssqb.ID, + HZXM = tbsssqb.HZXM, + KSBM = tbksb.KSBM, + KSID = tbsssqb.KSID, + KSMC = tbksb.KSMC, + QJSJID = tbsssqb.ID, + QKLX = tbqklxb.QKLX, + QKLXID = tbsssqb.ID, + // QZ = tbsssqb.QZ, + SFJZ = tbsssqb.SFJZ, + SQDH = tbsssqb.SQDH, + SQSJ = tbsssqb.SQSJ, + SQZD = tbsssqb.SQZD, + SSBM = tbssxxb.SSBM, + SSDJ = tbssdjb.SSDJ, + SSDJID = tbssxxb.SSDJID, + SSID = tbsssqb.SSID, + SSMC = tbssxxb.SSMC, + //SSZSC = tbsssqb.SSZSC, + strSFJZ = tbsssqb.SFJZ==true?"是":"否", + ZDYSID = tbsssqb.ZDYSID, + ZDYSMB = tbysb.YSBM, + ZDYSXM = tbysb.YSXM, + ZLKH = tbsssqb.ZLKH, + ZYH = tbsssqb.ZYH, + SSDJQZ = tbssdjb.QZ, + QKLXQZ = tbqklxb.QZ, + QJSC = tbqjscb.SSSC, + SSSC = tbssscb.SSSC, + SQZT = tbzt.Name, + ZT = tbzt.ID, + }).ToList(); + + string strtj = tj.Text; + if (strtj != string.Empty) + { + listpbsq = listpbsq.Where(a => a.SSMC.Contains(strtj) || a.HZXM.Contains(strtj) || a.ZDYSXM.Contains(strtj)).ToList(); + } + int ksid = Convert.ToInt32(sqks.SelectedValue); + int djid = Convert.ToInt32(ssdj.SelectedValue); + if (ksid != 0) + { + listpbsq = listpbsq.Where(a => Convert.ToInt32(a.KSID) == ksid).ToList(); + } + if (djid != 0) + { + listpbsq = listpbsq.Where(a => a.SSDJID == djid).ToList(); + } + DateTime? sskssj = Convert.ToDateTime(kssj.SelectedDate).Date; + DateTime? ssjssj = Convert.ToDateTime(jssj.SelectedDate).Date.AddDays(1).AddSeconds(-1); + listpbsq = listpbsq.Where(a => a.SQSJ > sskssj && a.SQSJ < ssjssj).ToList(); + sqjldata.ItemsSource = listpbsq; + } + private void btn_xz_Click(object sender, RoutedEventArgs e) + { + + } + private void btn_xg_Click(object sender, RoutedEventArgs e) + { + if (selectedRow ==null) + { + MessageBox.Show("请选择需要修改的内容"); + return; + } + XGSQJLWindow window = new XGSQJLWindow(selectedRow, user); + window.ShowDialog(); + SelectPBXX(); + } + + /// + /// 取消 + /// + /// + /// + private void btn_qx_Click(object sender, RoutedEventArgs e) + { + try + { + if (selectedRow.ID != 0) + { + MessageBoxResult dr = MessageBox.Show("确定要取消吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + if (selectedRow.ZT == 2) + { + MessageBox.Show("该申请已取消"); + return; + } + + Bus_SSSQB sssq = new Bus_SSSQB(); + sssq.HZXM = selectedRow.HZXM; + sssq.ID = selectedRow.ID; + sssq.KSID = selectedRow.KSID; + sssq.SFJZ = selectedRow.SFJZ; + sssq.SQDH = selectedRow.SQDH; + sssq.SQSJ = selectedRow.SQSJ; + sssq.SQZD = selectedRow.SQZD; + sssq.SSID = selectedRow.SSID; + sssq.ZDYSID = selectedRow.ZDYSID; + sssq.ZLKH = selectedRow.ZLKH; + sssq.ZT = 2; + sssq.ZYH = selectedRow.ZYH; + string sqdh = sssq.SQDH; + myModel.Entry(sssq).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + var listsspb = (from tbsspbb in myModel.Bus_SSPBB + where tbsspbb.SQDH == sssq.SQDH + select new { tbsspbb }).ToList(); + if (listsspb.Count > 0) + { + Bus_SSPBB sspbb = new Bus_SSPBB(); + sspbb = listsspb[0].tbsspbb; + sspbb.PBZT = 2; + myModel.Entry(sspbb).State = System.Data.Entity.EntityState.Modified; + //操作日志 + Bus_PBRZB pbrz = new Bus_PBRZB(); + pbrz.CZLX = 3; + pbrz.CZRYID = user.ID; + pbrz.SQDH = sqdh; + pbrz.CZSJ = DateTime.Now; + myModel.Bus_PBRZB.Add(pbrz); + myModel.SaveChanges(); + + } + MessageBox.Show("已取消"); + } + } + else + { + MessageBox.Show("请选择"); + } + } + catch (Exception ex) + { + + MessageBox.Show(ex.ToString()); + } + + } + /// + /// 刷新 + /// + /// + /// + private void btn_sx_Click(object sender, RoutedEventArgs e) + { + SelectPBXX(); + } + /// + /// 解锁 + /// + /// + /// + //private void btn_js_Click(object sender, RoutedEventArgs e) + //{ + // if (selectedRow.ID != 0) + // { + // if (IsSDPB!=true) + // { + // MessageBox.Show("权限不足"); + // return; + // } + // if (selectedRow.PBZT == 2) + // { + // MessageBoxResult dr = MessageBox.Show("确定要解锁排班吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + // if (dr == MessageBoxResult.OK) + // { + // var pbb = (from tbpbb in myModel.Bus_SSPBB + // where tbpbb.ID == selectedRow.ID + // select new + // { + // tbpbb, + // }).Single(); + // Bus_SSPBB buspbb = new Bus_SSPBB(); + // buspbb = pbb.tbpbb; + // buspbb.PBZT = 1; + // try + // { + + // Bus_PBRZB pbrz = new Bus_PBRZB(); + // pbrz.CZLX = 5; + // pbrz.CZRYID = user.ID; + // pbrz.PBZT = 1; + // pbrz.SSID = pbb.tbpbb.ID; + // //pbrz.ZCSJ = DateTime.Now; + // myModel.Bus_PBRZB.Add(pbrz); + // myModel.SaveChanges(); + + // myModel.Entry(buspbb).State = System.Data.Entity.EntityState.Modified; + // myModel.SaveChanges(); + // MessageBox.Show("解锁成功"); + // //UpdateZT(); + // //SmartScheduling(); + // SelectPBXX(); + // } + // catch (Exception ex) + // { + // MessageBox.Show("解锁失败" + ex.ToString()); + // } + // } + // else + // { + // MessageBox.Show("不是锁定状态!"); + // return; + // } + // } + // else + // { + // MessageBox.Show("请选择排班"); + // } + // } + //} + + #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()); + // } + //} + //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.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()); + // } + // 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 (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()); + // } + // 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 + + + } +} diff --git a/SchedulingSystemClient/SSPBWindow.xaml b/SchedulingSystemClient/SSPBWindow.xaml new file mode 100644 index 0000000..bfe9656 --- /dev/null +++ b/SchedulingSystemClient/SSPBWindow.xaml @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/SSPBWindow.xaml.cs b/SchedulingSystemClient/SSPBWindow.xaml.cs new file mode 100644 index 0000000..9f6f929 --- /dev/null +++ b/SchedulingSystemClient/SSPBWindow.xaml.cs @@ -0,0 +1,201 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; +using System.Windows.Controls; + +namespace SchedulingSystemClient +{ + /// + /// SSPBWindow.xaml 的交互逻辑 + /// + public partial class SSPBWindow : UserControl + { + public SSPBWindow(SYS_YHB yh) + { + InitializeComponent(); + user = yh; + } + SYS_YHB user = new SYS_YHB(); + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + List listsspb = new List(); + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + List listsss = new List(); + List listzt = new List(); + listsss = (from tbsss in myModel.SYS_SSSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.SSSMC + }).ToList(); + listzt = (from tbsss in myModel.SYS_PBZTB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.Name + }).ToList(); + listsss.Add(new ComboBoxBinding() { ID = 0, Name = "全部" }); + listzt.Add(new ComboBoxBinding() { ID = 0, Name = "全部" }); + sss.ItemsSource = listsss.OrderBy(a => a.ID); + sss.SelectedValuePath = "ID"; + sss.DisplayMemberPath = "Name"; + sss.SelectedValue = 0; + zt.ItemsSource = listzt.OrderBy(a => a.ID); + zt.SelectedValuePath = "ID"; + zt.DisplayMemberPath = "Name"; + zt.SelectedValue = 0; + kssj.Text = DateTime.Now.ToString(); + jssj.Text = DateTime.Now.AddDays(6).ToString(); + //SmartScheduling(); + SelectPBXX(); + } + /// + /// 查询排班信息 + /// + private void SelectPBXX() + { + PaiBan.GengXinZhuangTai(); + PaiBan.SmartScheduling(); + 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 + 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, + SSID = tbsspbb.SSID + }).ToList(); + string strtj = tj.Text; + if (strtj != string.Empty) + { + listsspb = listsspb.Where(a => a.SSMC.Contains(strtj) || a.HZXM.Contains(strtj) || a.ZDYS.Contains(strtj)).ToList(); + } + + int sssid = Convert.ToInt32(sss.SelectedValue); + int ztid = Convert.ToInt32(zt.SelectedValue); + if (sssid != 0) + { + listsspb = listsspb.Where(a => Convert.ToInt32(a.SSSID) == sssid).ToList(); + } + if (ztid != 0) + { + listsspb = listsspb.Where(a => a.PBZTID == ztid).ToList(); + } + DateTime? sskssj = Convert.ToDateTime(kssj.SelectedDate).Date; + DateTime? ssjssj = Convert.ToDateTime(jssj.SelectedDate).Date.AddDays(1).AddSeconds(-1); + listsspb = listsspb.Where(a => a.SSKSSJ > sskssj && a.SSKSSJ < ssjssj).ToList(); + sspbdata.ItemsSource = listsspb; + } + + Cus_SSPB selectedRow = new Cus_SSPB(); + private void sspbdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + selectedRow = sspbdata.SelectedItem as Cus_SSPB; + } + //private void btn_pb_Click(object sender, RoutedEventArgs e) + //{ + // try + // { + // PaiBan.GengXinZhuangTai(); + // PaiBan.SmartScheduling(); + // MessageBox.Show("排班成功"); + // SelectPBXX(); + // } + // catch (Exception ex) + // { + + // MessageBox.Show(ex.ToString()); + // } + //} + private void btn_xg_Click(object sender, RoutedEventArgs e) + { + RYPBWindow window = new RYPBWindow(selectedRow); + window.ShowDialog(); + } + private void btn_sx_Click(object sender, RoutedEventArgs e) + { + SelectPBXX(); + } + + } +} + diff --git a/SchedulingSystemClient/SYS_CDB.cs b/SchedulingSystemClient/SYS_CDB.cs new file mode 100644 index 0000000..9daf772 --- /dev/null +++ b/SchedulingSystemClient/SYS_CDB.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_CDB + { + public int ID { get; set; } + public string Name { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_CZLXB.cs b/SchedulingSystemClient/SYS_CZLXB.cs new file mode 100644 index 0000000..105758a --- /dev/null +++ b/SchedulingSystemClient/SYS_CZLXB.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_CZLXB + { + public int ID { get; set; } + public string Name { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_HSB.cs b/SchedulingSystemClient/SYS_HSB.cs new file mode 100644 index 0000000..e46ca91 --- /dev/null +++ b/SchedulingSystemClient/SYS_HSB.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_HSB + { + public int ID { get; set; } + public string HSBM { get; set; } + public string HSMC { get; set; } + public Nullable SSSID { get; set; } + public Nullable SFQY { get; set; } + public Nullable ZCID { get; set; } + public Nullable HSLX { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_HSZCB.cs b/SchedulingSystemClient/SYS_HSZCB.cs new file mode 100644 index 0000000..edae157 --- /dev/null +++ b/SchedulingSystemClient/SYS_HSZCB.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_HSZCB + { + public int ID { get; set; } + public string Name { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_HZVIPB.cs b/SchedulingSystemClient/SYS_HZVIPB.cs new file mode 100644 index 0000000..e7b6244 --- /dev/null +++ b/SchedulingSystemClient/SYS_HZVIPB.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_HZVIPB + { + public int ID { get; set; } + public string HZXM { get; set; } + public string ZLKH { get; set; } + public Nullable QZ { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_HZXXB.cs b/SchedulingSystemClient/SYS_HZXXB.cs new file mode 100644 index 0000000..0a850ac --- /dev/null +++ b/SchedulingSystemClient/SYS_HZXXB.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_HZXXB + { + public int ID { get; set; } + public string ZYH { get; set; } + public string CH { get; set; } + public string HZXM { get; set; } + public string XB { get; set; } + public string MZ { get; set; } + public string CSRQ { get; set; } + public string RYSJ { get; set; } + public string ZD { get; set; } + public string GM { get; set; } + public Nullable HZSG { get; set; } + public Nullable HZTZ { get; set; } + public string SFZHM { get; set; } + public string JTDZ { get; set; } + public string ZLKH { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_JSB.cs b/SchedulingSystemClient/SYS_JSB.cs new file mode 100644 index 0000000..7e1538f --- /dev/null +++ b/SchedulingSystemClient/SYS_JSB.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_JSB + { + public int ID { get; set; } + public string JSMC { get; set; } + public Nullable SFQY { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_KSB.cs b/SchedulingSystemClient/SYS_KSB.cs new file mode 100644 index 0000000..124e857 --- /dev/null +++ b/SchedulingSystemClient/SYS_KSB.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_KSB + { + public int ID { get; set; } + public string KSBM { get; set; } + public string KSMC { get; set; } + public Nullable SFKQ { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_MZYSB.cs b/SchedulingSystemClient/SYS_MZYSB.cs new file mode 100644 index 0000000..8be2171 --- /dev/null +++ b/SchedulingSystemClient/SYS_MZYSB.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_MZYSB + { + public int ID { get; set; } + public string YSBM { get; set; } + public string YSMC { get; set; } + public Nullable SSSID { get; set; } + public Nullable SFQY { get; set; } + public Nullable YSZCID { get; set; } + public Nullable SCSS1 { get; set; } + public Nullable SCSS2 { get; set; } + public Nullable SCSS3 { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_PBZTB.cs b/SchedulingSystemClient/SYS_PBZTB.cs new file mode 100644 index 0000000..a60c260 --- /dev/null +++ b/SchedulingSystemClient/SYS_PBZTB.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_PBZTB + { + public int ID { get; set; } + public string Name { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_QXB.cs b/SchedulingSystemClient/SYS_QXB.cs new file mode 100644 index 0000000..e7af51a --- /dev/null +++ b/SchedulingSystemClient/SYS_QXB.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_QXB + { + public int ID { get; set; } + public Nullable JSID { get; set; } + public Nullable Is_SY { get; set; } + public Nullable Is_PBJL { get; set; } + public Nullable Is_PBSQ { get; set; } + public Nullable Is_JCXXWH { get; set; } + public Nullable Is_GZWH { get; set; } + public Nullable Is_XTGL { get; set; } + public Nullable Is_SDPB { get; set; } + public Nullable Is_SJTJ { get; set; } + public Nullable Is_PBRZ { get; set; } + public Nullable Is_PBZS { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SBDJB.cs b/SchedulingSystemClient/SYS_SBDJB.cs new file mode 100644 index 0000000..dfb42f2 --- /dev/null +++ b/SchedulingSystemClient/SYS_SBDJB.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SBDJB + { + public int ID { get; set; } + public string Name { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SBLXB.cs b/SchedulingSystemClient/SYS_SBLXB.cs new file mode 100644 index 0000000..12e9d21 --- /dev/null +++ b/SchedulingSystemClient/SYS_SBLXB.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SBLXB + { + public int ID { get; set; } + public string Name { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SQZTB.cs b/SchedulingSystemClient/SYS_SQZTB.cs new file mode 100644 index 0000000..7972b3e --- /dev/null +++ b/SchedulingSystemClient/SYS_SQZTB.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SQZTB + { + public int ID { get; set; } + public string Name { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SSDJB.cs b/SchedulingSystemClient/SYS_SSDJB.cs new file mode 100644 index 0000000..966b5bd --- /dev/null +++ b/SchedulingSystemClient/SYS_SSDJB.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SSDJB + { + public int ID { get; set; } + public string SSDJ { get; set; } + public string DJMS { get; set; } + public Nullable QZ { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SSLXB.cs b/SchedulingSystemClient/SYS_SSLXB.cs new file mode 100644 index 0000000..94a85ea --- /dev/null +++ b/SchedulingSystemClient/SYS_SSLXB.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SSLXB + { + public int ID { get; set; } + public string SSLX { get; set; } + public Nullable KS { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SSQKLXB.cs b/SchedulingSystemClient/SYS_SSQKLXB.cs new file mode 100644 index 0000000..71d25db --- /dev/null +++ b/SchedulingSystemClient/SYS_SSQKLXB.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SSQKLXB + { + public int ID { get; set; } + public string QKLX { get; set; } + public string LXMS { get; set; } + public Nullable QJSCID { get; set; } + public Nullable QZ { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SSSB.cs b/SchedulingSystemClient/SYS_SSSB.cs new file mode 100644 index 0000000..feda191 --- /dev/null +++ b/SchedulingSystemClient/SYS_SSSB.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SSSB + { + public int ID { get; set; } + public string SSSBM { get; set; } + public string SSSMC { get; set; } + public Nullable SFKQ { get; set; } + public Nullable SFRJ { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SSSBDB.cs b/SchedulingSystemClient/SYS_SSSBDB.cs new file mode 100644 index 0000000..e1caf04 --- /dev/null +++ b/SchedulingSystemClient/SYS_SSSBDB.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SSSBDB + { + public int ID { get; set; } + public Nullable SSSID { get; set; } + public Nullable KSID { get; set; } + public Nullable SFKY { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SSSCB.cs b/SchedulingSystemClient/SYS_SSSCB.cs new file mode 100644 index 0000000..ae52728 --- /dev/null +++ b/SchedulingSystemClient/SYS_SSSCB.cs @@ -0,0 +1,21 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SSSCB + { + public int ID { get; set; } + public string NAME { get; set; } + public Nullable SSSC { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SSXXB.cs b/SchedulingSystemClient/SYS_SSXXB.cs new file mode 100644 index 0000000..1f50072 --- /dev/null +++ b/SchedulingSystemClient/SYS_SSXXB.cs @@ -0,0 +1,31 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SSXXB + { + public int ID { get; set; } + public string SSBM { get; set; } + public string SSMC { get; set; } + public string PYSZM { get; set; } + public string SSJB { get; set; } + public Nullable SSDJID { get; set; } + public Nullable SSSCID { get; set; } + public Nullable SSQKLXID { get; set; } + public Nullable MZYSZCID { get; set; } + public Nullable HSZCID { get; set; } + public Nullable CJSS { get; set; } + public Nullable IsICD { get; set; } + public Nullable SSLX { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_SSYSB.cs b/SchedulingSystemClient/SYS_SSYSB.cs new file mode 100644 index 0000000..a3a05f5 --- /dev/null +++ b/SchedulingSystemClient/SYS_SSYSB.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_SSYSB + { + public int ID { get; set; } + public string YSXM { get; set; } + public string YSBM { get; set; } + public Nullable kS { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_YHB.cs b/SchedulingSystemClient/SYS_YHB.cs new file mode 100644 index 0000000..8ddcf51 --- /dev/null +++ b/SchedulingSystemClient/SYS_YHB.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_YHB + { + public int ID { get; set; } + public string YHM { get; set; } + public string GH { get; set; } + public string MM { get; set; } + public Nullable JSID { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_YSVIPB.cs b/SchedulingSystemClient/SYS_YSVIPB.cs new file mode 100644 index 0000000..e8ee19e --- /dev/null +++ b/SchedulingSystemClient/SYS_YSVIPB.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_YSVIPB + { + public int ID { get; set; } + public string YSBM { get; set; } + public string YSXM { get; set; } + public Nullable QZ { get; set; } + } +} diff --git a/SchedulingSystemClient/SYS_YSZCB.cs b/SchedulingSystemClient/SYS_YSZCB.cs new file mode 100644 index 0000000..643a135 --- /dev/null +++ b/SchedulingSystemClient/SYS_YSZCB.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 此代码已从模板生成。 +// +// 手动更改此文件可能导致应用程序出现意外的行为。 +// 如果重新生成代码,将覆盖对此文件的手动更改。 +// +//------------------------------------------------------------------------------ + +namespace SchedulingSystemClient +{ + using System; + using System.Collections.Generic; + + public partial class SYS_YSZCB + { + public int ID { get; set; } + public string Name { get; set; } + } +} diff --git a/SchedulingSystemClient/SYWindow.xaml b/SchedulingSystemClient/SYWindow.xaml new file mode 100644 index 0000000..5c12c60 --- /dev/null +++ b/SchedulingSystemClient/SYWindow.xaml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SchedulingSystemClient/SYWindow.xaml.cs b/SchedulingSystemClient/SYWindow.xaml.cs new file mode 100644 index 0000000..66cdfb3 --- /dev/null +++ b/SchedulingSystemClient/SYWindow.xaml.cs @@ -0,0 +1,2066 @@ +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 + } +} diff --git a/SchedulingSystemClient/SYWindow复制.xaml b/SchedulingSystemClient/SYWindow复制.xaml new file mode 100644 index 0000000..1fbb6c1 --- /dev/null +++ b/SchedulingSystemClient/SYWindow复制.xaml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/SYWindow复制.xaml.cs b/SchedulingSystemClient/SYWindow复制.xaml.cs new file mode 100644 index 0000000..6db06f1 --- /dev/null +++ b/SchedulingSystemClient/SYWindow复制.xaml.cs @@ -0,0 +1,677 @@ +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 : Window + { + SchedulingSystemEntities myModel = new SchedulingSystemEntities(); + public SYWindow() + { + InitializeComponent(); + } + private void Window_Loaded(object sender, RoutedEventArgs e) + { + 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; + for (int i = 0; i < 7; i++) + { + DateTime date = DateTime.Now; + Label label = SJ.FindName("label" + i) as Label; + label.Content = date.AddDays(i).Date.ToString("yyyy年MM月dd日"); + } + + UpdateZT(); + SmartScheduling(); + PaiBan(); + labela.Content = "排班开始时间" + mtkssj; + labelb.Content = "排班结束时间" + mtpbjssj; + labelc.Content = "上午时长" + amsc; + labeld.Content = "下午时长" + pmsc; + } + /// + /// 排班UI生成 + /// + private void PaiBan() + { + 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 listpbb = (from tbpbb in myModel.Bus_PBB + 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 + where tbpbb.SSSID == sssid && 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, + ZYH = tbpbb.ZYH, + QZ = tbpbb.QZ + }).ToList(); + for (int i = 0; i < 7; i++) + { + DateTime date = DateTime.Now.AddDays(i).Date; + listday = listpbb.Where(a =>Convert.ToDateTime(a.KSSJ).Date == date).OrderBy(b => b.KSSJ).ToList(); + + DockPanel dock = SJ.FindName("date" + 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 { }); + 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.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 = listday[j].SSMC; + 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); + dock.Children.Add(grid); + } + } + } + private void shuaxin_Click(object sender, RoutedEventArgs e) + { + PaiBan(); + } + /// + /// 修改排班状态 + /// + private void UpdateZT() + { + //1、查出最后修改时间 + int zhxgsj = Convert.ToInt32((from tbqtcs in myModel.Bus_QTCSB + select new + { + tbqtcs + }).Single().tbqtcs.ZHXGSJ.Replace("天内", "")); + //2、获取锁定时间 + DateTime sdsj = DateTime.Now.AddDays(zhxgsj-1).Date.AddDays(-1); + + //3、查出状态不是已完成和已取消并且开始时间小于锁定时间的手术排班 + var listpbb = (from tbpbb in myModel.Bus_PBB + where tbpbb.PBZT != 3 && tbpbb.PBZT != 4 && tbpbb.KSSJ < sdsj + select new + { + tbpbb + }).ToList(); + try + { + for (int i = 0; i < listpbb.Count; i++) + { + Bus_PBB pbb = new Bus_PBB(); + 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 + { + 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_QTCSB + 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_SSQJDB 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_PBB + 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_QTCSB + // 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_SSQJDB 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_PBB + // 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_PBB pbb = new Bus_PBB(); + // 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) + { + //实例化排班列表 + listpb = new List(); + Bus_PBB pbb = new Bus_PBB(); + //1、判断开始时间是否大于休息时间 + if (pbkssj < Convert.ToDateTime(pbkssj.Date.ToString("yyyy-MM-dd") + " " + sssxxsj)) + { + //排班时间为上午 + //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 + 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; + //修改手术开始时间 + 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; + //修改手术开始时间 + 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) + { + //排班时间改为休息之后的时间 + 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; + 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); + } + } + //如果上午下午都没有数据证明该手术室没有手术不需要排班 + //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + //继续对其他手术室进行排班 + } + } + } + + private void btn_sx_Click(object sender, RoutedEventArgs e) + { + 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("admin"); + window.Show(); + } + } +} diff --git a/SchedulingSystemClient/Scheduling.cs b/SchedulingSystemClient/Scheduling.cs new file mode 100644 index 0000000..f619172 --- /dev/null +++ b/SchedulingSystemClient/Scheduling.cs @@ -0,0 +1,1015 @@ +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; + +namespace SchedulingSystemClient +{ + public class Scheduling + { + static SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + #region 排班方法 + /// + /// 修改排班状态 + /// + public static 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.SSKSSJ < 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.SSKSSJ).AddHours(Convert.ToDouble(pbb.SSZSC)); + //5、如果手术完成时间小于当前时间修改状态为已完成 + if (sswcsj < DateTime.Now) + { + pbb.PBZT = 4; + myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; + } + //6、如果手术完成时间大于当前时间修改状态为已锁定 + else + { + if (listpbb[i].tbpbb.PBZT != 5) + { + pbb.PBZT = 2; + myModel.Entry(pbb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; + } + + } + } + //myModel.SaveChanges(); + //myModel.Entry(pbb).State = System.Data.Entity.EntityState.Detached; + + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + } + static double amsc = 0; + static double pmsc = 0; + static string mtkssj = string.Empty; + static string mtpbjssj = string.Empty; + static string sssxxsj = string.Empty; + /// + /// 智能排班(修改开始时间) + /// + public static 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.SSKSSJ == null || tbpbb.SSKSSJ > 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, sssid); + } + } + //myModel.SaveChanges(); + //MessageBox.Show("排班成功"); + } + catch (Exception ex) + { + + MessageBox.Show(ex.ToString()); + } + } + public static void DiGuiPaiBan(DateTime pbkssj, string sssxxsj, List listpb, List listssspb, double am, double pm, List ypb, string pmkssj,int sssid) + { + //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 + // join tbpbb in myModel.Bus_SSPBB on tbsdpbb.SSID equals tbpbb.ID + // where tbsdpbb.SSSJ>=pbkssj && tbsdpbb.SSJSSJ <= xxsj && tbpbb.SSSID == sssid + // select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); + // if (sdpbb.Count > 0) + // { + // for (int i = 0; i < sdpbb.Count; i++) + // { + // DateTime ikssj = Convert.ToDateTime( sdpbb[i].tbsdpbb.SSSJ); + // DateTime ijssj = Convert.ToDateTime(sdpbb[i].tbsdpbb.SSJSSJ); + // decimal isszsc = Convert.ToDecimal(sdpbb[i].tbsdpbb.SSZSC); + // if (i == 0) + // { + // TimeSpan amhoursSpan = new TimeSpan(ikssj.Ticks - pbkssj.Ticks); + // am = amhoursSpan.TotalHours; + // } + // else + // { + // TimeSpan amhoursSpan = new TimeSpan(sdpbb[i + 1].tbsdpbb.SSSJ.Ticks - sdpbb[i].tbsdpbb.SSJSSJ.Ticks); + // am = amhoursSpan.TotalHours; + // } + // //排班时间为上午 + // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 + // 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.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.TotalHours; + // //排班时间为上午 + // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 + // 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,sssid); + // } + // } + // } + // else + // { + // pbkssj = ijssj; + // if (ypb.Count != listssspb.Count) + // { + // //判断排班时间是否小于六天后 + // if (pbkssj <= DateTime.Now.AddDays(6).Date.AddSeconds(-1)) + // { + // DiGuiPaiBan(pbkssj, sssxxsj, listpb, listssspb, am, pm, ypb, pmkssj, sssid); + // } + // } + // } + // } + // } + // } + // 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, sssid); + // } + // } + // } + // 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, sssid); + // } + // } + // 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, sssid); + // } + // } + // //如果上午下午都没有数据证明该手术室没有手术不需要排班 + // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + // //继续对其他手术室进行排班 + // } + // } + // } + // } + // 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, sssid); + // } + // } + // } + // 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 + // join tbpbb in myModel.Bus_SSPBB on tbsdpbb.SSID equals tbpbb.ID + // where tbsdpbb.SSSJ >= pbkssj && tbsdpbb.SSJSSJ <= xxsj && tbpbb.SSSID == sssid + // select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); + // //var sdpbb = (from tbsdpbb in myModel.Bus_SDPBB + // // join tbpbb in myModel.Bus_SSPBB on tbsdpbb.SSID equals tbpbb.ID + // // where tbsdpbb.SSRQ == rq && tbsdpbb.SSJSSJ <= xxsj && tbpbb.SSSID == sssid + // // 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()); + // } + // 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, sssid); + // } + // } + // //如果上午下午都没有数据证明该手术室没有手术不需要排班 + // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + // //继续对其他手术室进行排班 + // } + // } + // } + // } + // 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, sssid); + // } + // } + // 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, sssid); + // } + // } + // //如果上午下午都没有数据证明该手术室没有手术不需要排班 + // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + // //继续对其他手术室进行排班 + // } + // } + // } + // 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, sssid); + // } + // } + // 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, sssid); + // } + // } + // //如果上午下午都没有数据证明该手术室没有手术不需要排班 + // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + // //继续对其他手术室进行排班 + // } + // } + + // } + // } + //} + //else + //{ + // //判断下午剩余时长是否等于每天下午时长 + // if (pm == pmsc) + // { + // DateTime xwkssj = Convert.ToDateTime(pbkssj.Date.ToString("yyyy-MM-dd") + " " + pmkssj); + // DateTime xwjssj = Convert.ToDateTime(pbkssj.Date.ToString("yyyy-MM-dd") + " " + mtpbjssj); + // //排班时间改为休息之后的时间 + // pbkssj = xwkssj; + + // var sdpbb = (from tbsdpbb in myModel.Bus_SDPBB + // join tbpbb in myModel.Bus_SSPBB on tbsdpbb.SSID equals tbpbb.ID + // where tbsdpbb.SSSJ >= xwkssj && tbsdpbb.SSJSSJ <= xwjssj && tbpbb.SSSID == sssid + // select new { tbsdpbb }).OrderBy(a => a.tbsdpbb.SSSJ).ToList(); + + // //var sdpbb = (from tbsdpbb in myModel.Bus_SDPBB + // // join tbpbb in myModel.Bus_SSPBB on tbsdpbb.SSID equals tbpbb.ID + // // where tbsdpbb.SSRQ == rq && tbsdpbb.SSJSSJ <= xxsj && tbpbb.SSSID == sssid + // // 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) + // { + // pbb.HZXM = listpb[0].HZXM; + // pbb.ID = listpb[0].ID; + // pbb.KSID = listpb[0].KSID; + // 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()); + // } + // 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, sssid); + // } + // } + // //如果上午下午都没有数据证明该手术室没有手术不需要排班 + // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + // //继续对其他手术室进行排班 + // } + // } + // } + // } + // 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, sssid); + // } + // } + // 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, sssid); + // } + // } + // //如果上午下午都没有数据证明该手术室没有手术不需要排班 + // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + // //继续对其他手术室进行排班 + // } + // } + // } + // 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, sssid); + // } + // } + // 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, sssid); + // } + // } + // //如果上午下午都没有数据证明该手术室没有手术不需要排班 + // //或者有的手术总时长比上午时长和下午时长都大不能自动排班 + // //继续对其他手术室进行排班 + // } + // } + + //} + } + #endregion + } +} diff --git a/SchedulingSystemClient/SchedulingSystemClient.csproj b/SchedulingSystemClient/SchedulingSystemClient.csproj new file mode 100644 index 0000000..ffd2573 --- /dev/null +++ b/SchedulingSystemClient/SchedulingSystemClient.csproj @@ -0,0 +1,695 @@ + + + + + Debug + AnyCPU + {C41FC6D2-F2CE-42C2-9C9D-DAA6AEA84EA6} + WinExe + SchedulingSystemClient + SchedulingSystemClient + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\EntityFramework.6.2.0\lib\net40\EntityFramework.dll + + + ..\packages\EntityFramework.6.2.0\lib\net40\EntityFramework.SqlServer.dll + + + ..\packages\LiveCharts.0.9.7\lib\net40\LiveCharts.dll + + + ..\packages\LiveCharts.Wpf.0.9.7\lib\net40\LiveCharts.Wpf.dll + + + + + + + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FenYeWindow.xaml + + + GZWHWindow.xaml + + + XZGZBRVIPWindow.xaml + + + XZGZSSLXWindow.xaml + + + XZGZSSQJDWindow.xaml + + + XZGZYSVIPWindow.xaml + + + XZHSWindow.xaml + + + XZHZVIPWindow.xaml + + + XZJSWindow.xaml + + + XZKSWindow.xaml + + + XZMZYSWindow.xaml + + + XZRJSSWindow.xaml + + + XZRYWindow.xaml + + + XZSBWindow.xaml + + + XZSSLXWindow.xaml + + + XZSSQJDWindow.xaml + + + XZSSSWindow.xaml + + + XZSSXXWindow.xaml + + + XZYSVIPWindow.xaml + + + XZYSWindow.xaml + + + XZYSZCWindow.xaml + + + JcxxWindow.xaml + + + LoginWindow.xaml + + + True + True + Model.Context.tt + + + True + True + Model.tt + + + True + True + Model.edmx + + + + + PBRZWindow.xaml + + + PBSQWindow.xaml + + + RJRYPBWindow.xaml + + + RJSSWindow.xaml + + + RYPBWindow.xaml + + + SBGLWindow.xaml + + + + SJTJWindow.xaml + + + SQJLWindow.xaml + + + SSPBWindow.xaml + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + Model.tt + + + SYWindow.xaml + + + TJTBWindow.xaml + + + XGGZBRVIPWindow.xaml + + + XGGZSSLXWindow.xaml + + + XGGZSSQJDWindow.xaml + + + XGGZYSVIPWindow.xaml + + + XGHSWindow.xaml + + + XGJSWindow.xaml + + + XGKSWindow.xaml + + + XGMMWindow.xaml + + + XGMZYSWindow.xaml + + + XGRYWindow.xaml + + + XGSBWindow.xaml + + + XGSQJLWindow.xaml + + + XGSSLXWindow.xaml + + + XGSSQJDWindow.xaml + + + XGSSSWindow.xaml + + + XGSSXXWindow.xaml + + + XGYSWindow.xaml + + + XGYSZCWindow.xaml + + + UC_TabItemWithClose.xaml + + + Window1.xaml + + + XTGLWindow.xaml + + + YWRYPBWindow.xaml + + + 测试.xaml + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + MainWindow.xaml + Code + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + EntityModelCodeGenerator + Model.Designer.cs + + + Model.edmx + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + TextTemplatingFileGenerator + Model.edmx + Model.Context.cs + + + TextTemplatingFileGenerator + Model.edmx + Model.cs + + + + \ No newline at end of file diff --git a/SchedulingSystemClient/TJTBWindow.xaml b/SchedulingSystemClient/TJTBWindow.xaml new file mode 100644 index 0000000..9188f24 --- /dev/null +++ b/SchedulingSystemClient/TJTBWindow.xaml @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/TJTBWindow.xaml.cs b/SchedulingSystemClient/TJTBWindow.xaml.cs new file mode 100644 index 0000000..d5ac6af --- /dev/null +++ b/SchedulingSystemClient/TJTBWindow.xaml.cs @@ -0,0 +1,210 @@ +using LiveCharts; +using SchedulingSystemClient.EntityClass; +using System; +using System.Linq; +using System.Windows; +using System.Windows.Controls; + +namespace SchedulingSystemClient +{ + /// + /// TJTBWindow.xaml 的交互逻辑 + /// + public partial class TJTBWindow : UserControl + { + public TJTBWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + try + { + DateTime kssj = DateTime.Now.Date; + DateTime jssj = DateTime.Now.AddDays(7).Date.AddSeconds(-1); + DateTime szkssj = DateTime.Now.AddDays(-7).Date.AddSeconds(-1); + DateTime szjssj = DateTime.Now.Date.AddSeconds(-1); + //var listpbb = (from tbpbb in myModel.Bus_SSPBB + // join tbssscb in myModel.SYS_SSSCB on tbpbb.SSSID equals tbssscb.ID + // join tbqjdb in myModel.SYS_SSQKLXB on tbpbb.qk equals tbqjdb.ID + // join tbsslxb in myModel.SYS_SSQKLXB on tbpbb.SSLX equals tbsslxb.ID + // select new Cus_TJTB + // { + // KSSJ = tbpbb.KSSJ, + // SSSC = tbssscb.SSSC, + // SSQJSC = tbqjdb.QJSJ, + // SSLX = tbsslxb.SSLX, + // }).ToList(); + var listpbb = (from tbpbb in myModel.Bus_SSPBB + join tbssscb in myModel.SYS_SSSCB on tbpbb.SSSID equals tbssscb.ID + join tbssxxb in myModel.SYS_SSXXB on tbpbb.SSID equals tbssxxb.ID + join tbssdj in myModel.SYS_SSDJB on tbssxxb.SSDJID equals tbssdj.ID + join tbqklx in myModel.SYS_SSQKLXB on tbssxxb.SSQKLXID equals tbqklx.ID + join tbqjsc in myModel.SYS_SSSCB on tbqklx.QJSCID equals tbqjsc.ID + select new Cus_TJTB + { + KSSJ = tbpbb.SSKSSJ, + SSSC = tbssscb.SSSC, + SSQJSC = tbqjsc.SSSC, + SSLX = tbssdj.SSDJ, + }).ToList(); + + string[] str = new string[7]; + ChartValues ssts = new ChartValues { }; + ChartValues sssc = new ChartValues { }; + ChartValues sspjsc = new ChartValues { }; + ChartValues ssqjsc = new ChartValues { }; + for (int i = 0; i < 7; i++) + { + DateTime ikssk = DateTime.Now.AddDays(i).Date; + DateTime ijssj = DateTime.Now.AddDays(i + 1).Date.AddSeconds(-1); + str[i] = DateTime.Now.AddDays(i).ToString("MM月dd日"); + var list = listpbb.Where(a => a.KSSJ >= ikssk && a.KSSJ <= ijssj).ToList(); + if (list.Count() > 0) + { + ssts.Add(list.Count()); + sssc.Add(Convert.ToDecimal( list.Sum(a => a.SSSC))); + sspjsc.Add(Convert.ToDecimal(Math.Round((double)list.Sum(a => a.SSSC) / list.Count,2))); + ssqjsc.Add((decimal)list.Sum(a => a.SSQJSC)); + } + else + { + ssts.Add(0); + sssc.Add(0); + sspjsc.Add(0); + ssqjsc.Add(0); + } + } + var listbz = listpbb.Where(a => a.KSSJ >= kssj && a.KSSJ <= jssj).ToList(); + var listsz = listpbb.Where(a => a.KSSJ >= szkssj && a.KSSJ <= szjssj).ToList(); + var groupby = listbz.GroupBy(a => a.SSLX).ToList(); + PieSeriesA.Values = new ChartValues { }; + PieSeriesB.Values = new ChartValues { }; + PieSeriesC.Values = new ChartValues { }; + PieSeriesD.Values = new ChartValues { }; + for (int i = 0; i < groupby.Count; i++) + { + if (groupby[i].Key == "一级手术") + { + PieSeriesA.Values = new ChartValues { listbz.Where(a => a.SSLX == groupby[i].Key).ToList().Count() }; + PieSeriesA.LabelPoint = chartPoint => string.Format("{0} ({1:P0})", chartPoint.Y, chartPoint.Participation); + } + if (groupby[i].Key == "二级手术") + { + PieSeriesB.Values = new ChartValues { listbz.Where(a => a.SSLX == groupby[i].Key).ToList().Count() }; + PieSeriesB.LabelPoint = chartPoint => string.Format("{0} ({1:P0})", chartPoint.Y, chartPoint.Participation); + } + if (groupby[i].Key == "三级手术") + { + PieSeriesC.Values = new ChartValues { listbz.Where(a => a.SSLX == groupby[i].Key).ToList().Count() }; + PieSeriesC.LabelPoint = chartPoint => string.Format("{0} ({1:P0})", chartPoint.Y, chartPoint.Participation); + } + if (groupby[i].Key == "四级手术") + { + PieSeriesD.Values = new ChartValues { listbz.Where(a => a.SSLX == groupby[i].Key).ToList().Count() }; + PieSeriesD.LabelPoint = chartPoint => string.Format("{0} ({1:P0})", chartPoint.Y, chartPoint.Participation); + } + } + sstsX.Labels = str; + sstsY.LabelFormatter = value => value.ToString("N0"); //P0表示只保留整数,P表示保留小数点后两位; + sstsLineSeries.Values = ssts; + ssscX.Labels = str; + ssscY.LabelFormatter = value => value.ToString("N"); //P0表示只保留整数,P表示保留小数点后两位; + ssscLineSeries.Values = sssc; + ssqjscX.Labels = str; + ssqjscY.LabelFormatter = value => value.ToString("N"); //P0表示只保留整数,P表示保留小数点后两位; + ssqjscLineSeries.Values = ssqjsc; + int bzssts = listbz.Count; + int szssts = listsz.Count; + decimal bzsssc = Convert.ToDecimal(listbz.Sum(a => a.SSSC)); + decimal szsssc = Convert.ToDecimal(listsz.Sum(a => a.SSSC)); + decimal bzsspjsc = 0; + decimal szsspjsc = 0; + decimal bzsssqjsc = 0; + decimal szsssqjsc = 0; + decimal sstszzb = 0; + decimal sssczzb = 0; + decimal sspjsczz = 0; + decimal sspjsczzb = 0; + decimal ssqjsczzb = 0; + if (bzssts != 0) + { + bzsspjsc = Math.Round(bzsssc / bzssts, 2); + } + if (szssts != 0) + { + szsspjsc = Math.Round(szsssc / szssts, 2); + } + bzsssqjsc = (decimal)listbz.Sum(a => a.SSQJSC); + szsssqjsc = (decimal)listsz.Sum(a => a.SSQJSC); + if (szssts != 0) + { + sstszzb = Math.Round((decimal)(bzssts - szssts) / szssts * 100, 2); + } + else + { + sstszzb = 100; + } + if (szsssc != 0) + { + sssczzb = Math.Round((decimal)(bzsssc - szsssc) / szsssc * 100, 2); + } + else + { + sssczzb = 100; + } + if (szsssqjsc != 0) + { + ssqjsczzb = Math.Round((decimal)(bzsssqjsc - szsssqjsc) / szsssqjsc * 100, 2); + } + else + { + ssqjsczzb = 100; + } + if (szsspjsc != 0) + { + sspjsczzb = Math.Round((decimal)(bzsspjsc - szsspjsc) / szsspjsc * 100, 2); + } + else + { + sspjsczzb = 100; + } + sstslabela.Content = bzssts + " 台"; + sstslabelb.Content = "上周手术台数为" + szssts + "台,同比增长" + sstszzb + "%"; + sssclabela.Content = bzsssc + " 小时"; + sssclabelb.Content = "上周手术时长为" + szsssc + "小时,同比增长" + sssczzb + "%"; + sspjsclabela.Content = bzsspjsc + " 小时"; + sspjsclabelb.Content = "上周手术平均时长为" + szsspjsc + "小时,同比增长" + sspjsczzb + "%"; + sssqjscLabela.Content = bzsssqjsc + "小时"; + sssqjscLabelb.Content = "上周手术清洁时长为" + szsssqjsc + "小时,同比增长" + ssqjsczzb + " % "; + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + + } + private void btn_xz_Click(object sender, RoutedEventArgs e) + { + + } + + private void btn_sx_Click(object sender, RoutedEventArgs e) + { + + } + + private void btn_gb_Click(object sender, RoutedEventArgs e) + { + + } + + //private string[] _xTimeLabels; + //public string[] XTimeLabels + //{ + // get { return _xTimeLabels; } + // set { this.SetProperty(ref _xTimeLabels, value); } + //} + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGGZBRVIPWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGGZBRVIPWindow.xaml new file mode 100644 index 0000000..544308e --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGGZBRVIPWindow.xaml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGGZBRVIPWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGGZBRVIPWindow.xaml.cs new file mode 100644 index 0000000..416a11c --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGGZBRVIPWindow.xaml.cs @@ -0,0 +1,106 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XGGZBRVIPWindow.xaml 的交互逻辑 + /// + public partial class XGGZBRVIPWindow : Window + { + public XGGZBRVIPWindow(int brvipqzid) + { + InitializeComponent(); + id = brvipqzid; + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + int id; + string strzlkh = string.Empty; + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + var listbrvip = (from tbbrvip in myModel.SYS_HZVIPB + where tbbrvip.ID == id + select new Cus_BrvipQz + { + ID = tbbrvip.ID, + BRXM = tbbrvip.HZXM, + ZLKH = tbbrvip.ZLKH, + QZ = tbbrvip.QZ, + }).Single(); + brxm.Text = listbrvip.BRXM; + zlkh.Text = listbrvip.ZLKH; + strzlkh = listbrvip.ZLKH; + qz.Text = listbrvip.QZ.ToString(); + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + int intqz; + if (brxm == null || brxm.Text == string.Empty) + { + MessageBox.Show("请填写病人姓名"); + return; + } + if (zlkh == null || zlkh.Text == string.Empty) + { + MessageBox.Show("请填诊疗卡号"); + return; + } + try + { + intqz = Convert.ToInt32(qz.Text); + } + catch (Exception) + { + MessageBox.Show("请输入正确的权重格式"); + return; + } + if (zlkh.Text != strzlkh) + { + var listbrvip = (from tbbrvip in myModel.SYS_HZVIPB + where tbbrvip.ZLKH == zlkh.Text + select new + { + tbbrvip + + }).ToList(); + if (listbrvip.Count > 0) + { + MessageBox.Show("诊疗卡号不能重复"); + return; + } + } + + SYS_HZVIPB brvipqz = new SYS_HZVIPB(); + brvipqz.ID = id; + brvipqz.HZXM = brxm.Text; + brvipqz.ZLKH = zlkh.Text; + brvipqz.QZ = intqz; + try + { + myModel.Entry(brvipqz).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("修改失败"); + } + + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGGZSSLXWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGGZSSLXWindow.xaml new file mode 100644 index 0000000..282143b --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGGZSSLXWindow.xaml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGGZSSLXWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGGZSSLXWindow.xaml.cs new file mode 100644 index 0000000..7637ade --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGGZSSLXWindow.xaml.cs @@ -0,0 +1,69 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XGGZSSLXWindow.xaml 的交互逻辑 + /// + public partial class XGGZSSLXWindow : Window + { + public XGGZSSLXWindow(Cus_SslxQz row) + { + InitializeComponent(); + ssjbrow = row; + } + Cus_SslxQz ssjbrow = new Cus_SslxQz(); + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + Cus_SslxQz sslxlb = new Cus_SslxQz(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + sslx.Text = ssjbrow.SSLX.ToString(); + djms.Text = ssjbrow.LXMS.ToString(); + qz.Text = ssjbrow.QZ.ToString(); + } + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + int intqz; + try + { + intqz = Convert.ToInt32(qz.Text); + } + catch (Exception ) + { + MessageBox.Show("请输入正确的权重格式"); + return; + } + SYS_SSDJB sslxb = new SYS_SSDJB(); + sslxb.ID = ssjbrow.ID; + sslxb.SSDJ = sslx.Text; + sslxb.DJMS = djms.Text; + sslxb.QZ = intqz; + try + { + myModel.Entry(sslxb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("修改失败"); + } + + + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGGZSSQJDWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGGZSSQJDWindow.xaml new file mode 100644 index 0000000..2ee2d32 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGGZSSQJDWindow.xaml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGGZSSQJDWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGGZSSQJDWindow.xaml.cs new file mode 100644 index 0000000..3f93142 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGGZSSQJDWindow.xaml.cs @@ -0,0 +1,82 @@ +using System; +using SchedulingSystem.EntityClass; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; +using SchedulingSystemClient; + +namespace SchedulingSystem +{ + /// + /// XGGZSSQJDWindow.xaml 的交互逻辑 + /// + public partial class XGGZSSQJDWindow : Window + { + public XGGZSSQJDWindow(Cus_SsqjdQz row) + { + InitializeComponent(); + qklxrow = row; + } + Cus_SsqjdQz qklxrow = new Cus_SsqjdQz(); + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + qklx.Text = qklxrow.SSQJD; + lxms.Text = qklxrow.LXMS; + qz.Text = qklxrow.QZ.ToString(); + List listqjsc = new List(); + listqjsc = (from tbscb in myModel.SYS_SSSCB + select new ComboBoxBinding + { + ID = tbscb.ID, + Name = tbscb.NAME, + }).ToList(); + qjsj.ItemsSource = listqjsc; + qjsj.SelectedValuePath = "ID"; + qjsj.DisplayMemberPath = "Name"; + qjsj.SelectedValue = qklxrow.QJSCID; + + + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + int intqz; + + try + { + intqz = Convert.ToInt32(qz.Text); + } + catch (Exception) + { + MessageBox.Show("请输入正确的权重格式"); + return; + } + SYS_SSQKLXB ssqjdb = new SYS_SSQKLXB(); + ssqjdb.ID = qklxrow.ID; + ssqjdb.QJSCID = Convert.ToInt32(qjsj.SelectedValue); + ssqjdb.QKLX = qklxrow.SSQJD; + ssqjdb.LXMS = qklxrow.LXMS; + ssqjdb.QZ = intqz; + try + { + myModel.Entry(ssqjdb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("修改失败"); + } + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGGZYSVIPWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGGZYSVIPWindow.xaml new file mode 100644 index 0000000..a0ae5bf --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGGZYSVIPWindow.xaml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGGZYSVIPWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGGZYSVIPWindow.xaml.cs new file mode 100644 index 0000000..f4c0cef --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGGZYSVIPWindow.xaml.cs @@ -0,0 +1,105 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XGGZYSVIPWindow.xaml 的交互逻辑 + /// + public partial class XGGZYSVIPWindow : Window + { + public XGGZYSVIPWindow(int ysvipqzid) + { + InitializeComponent(); + id = ysvipqzid; + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + int id; + string strysbm = string.Empty; + private void Window_Loaded(object sender, RoutedEventArgs e) + { + var listysvip = (from tbysvip in myModel.SYS_YSVIPB + where tbysvip.ID == id + select new Cus_YsvipQz + { + ID = tbysvip.ID, + YSXM = tbysvip.YSXM, + YSBM = tbysvip.YSBM, + QZ = tbysvip.QZ, + }).Single(); + ysxm.Text = listysvip.YSXM; + ysbm.Text = listysvip.YSBM; + strysbm = listysvip.YSBM; + qz.Text = listysvip.QZ.ToString(); + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + int intqz; + if (ysxm == null || ysxm.Text == string.Empty) + { + MessageBox.Show("请填写医生姓名"); + return; + } + if (ysbm == null || ysbm.Text == string.Empty) + { + MessageBox.Show("请填写医生编码"); + return; + } + try + { + intqz = Convert.ToInt32(qz.Text); + } + catch (Exception) + { + MessageBox.Show("请输入正确的权重格式"); + return; + } + if (ysbm.Text != strysbm) + { + var listysvip = (from tbysvip in myModel.SYS_YSVIPB + where tbysvip.YSBM == ysbm.Text + select new + { + tbysvip + + }).ToList(); + if (listysvip.Count > 0) + { + MessageBox.Show("医生编码不能重复"); + return; + } + } + + SYS_YSVIPB ysvipqz = new SYS_YSVIPB(); + ysvipqz.ID = id; + ysvipqz.YSXM = ysxm.Text; + ysvipqz.YSBM = ysbm.Text; + ysvipqz.QZ = intqz; + try + { + myModel.Entry(ysvipqz).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("修改失败"); + } + + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGHSWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGHSWindow.xaml new file mode 100644 index 0000000..27b0e31 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGHSWindow.xaml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SchedulingSystemClient/UpdateWindow/XGHSWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGHSWindow.xaml.cs new file mode 100644 index 0000000..a43e92d --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGHSWindow.xaml.cs @@ -0,0 +1,118 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.UpdateWindow +{ + /// + /// XGHSWindow.xaml 的交互逻辑 + /// + public partial class XGHSWindow : Window + { + public XGHSWindow(Cus_HS row) + { + InitializeComponent(); + hsrow = row; + } + Cus_HS hsrow = new Cus_HS(); + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + List listyszc = new List(); + listyszc = (from tbssjb in myModel.SYS_HSZCB + select new ComboBoxBinding + { + ID = tbssjb.ID, + Name = tbssjb.Name, + }).ToList(); + yszc.ItemsSource = listyszc; + yszc.SelectedValuePath = "ID"; + yszc.DisplayMemberPath = "Name"; + List listsss = new List(); + listsss = (from tbssjb in myModel.SYS_SSSB + select new ComboBoxBinding + { + ID = tbssjb.ID, + Name = tbssjb.SSSMC, + }).ToList(); + sss.ItemsSource = listsss; + sss.SelectedValuePath = "ID"; + sss.DisplayMemberPath = "Name"; + sfqy.SelectedValue = hsrow.strSFQY == "是" ? 0 : 1; + yszc.SelectedValue = hsrow.HSZC; + sss.SelectedValue = hsrow.SSSID; + ysxm.Text = hsrow.HSXM; + ysgh.Text = hsrow.HSGH; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (ysxm.Text == string.Empty) + { + MessageBox.Show("请填写护士姓名"); + return; + } + if (ysgh.Text == string.Empty) + { + MessageBox.Show("请填护士生姓名"); + return; + } + if (yszc.SelectedValue == null) + { + MessageBox.Show("请选择职称"); + return; + } + if (sss.SelectedValue == null) + { + MessageBox.Show("请选择手术室"); + return; + } + try + { + if (ysgh.Text != hsrow.HSGH || ysxm.Text != hsrow.HSXM) + { + var listmzys = (from ybmzys in myModel.SYS_HSB + where ybmzys.HSBM == ysgh.Text && ybmzys.HSMC == ysxm.Text + select new { ybmzys }).ToList(); + if (listmzys.Count > 0) + { + MessageBox.Show("护士姓名和编码重复!"); + return; + } + } + SYS_HSB hsb = new SYS_HSB(); + hsb.ID = hsrow.ID; + hsb.SFQY = sfqy.SelectedValue.ToString() == "0" ? true : false; + hsb.SSSID = Convert.ToInt32(sss.SelectedValue); + hsb.HSBM = ysgh.Text; + hsb.HSMC = ysxm.Text; + hsb.ZCID = Convert.ToInt32(yszc.SelectedValue); + myModel.Entry(hsb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show("修改失败" + ex.ToString()); + } + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGJSWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGJSWindow.xaml new file mode 100644 index 0000000..f89cf96 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGJSWindow.xaml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGJSWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGJSWindow.xaml.cs new file mode 100644 index 0000000..6f363f6 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGJSWindow.xaml.cs @@ -0,0 +1,84 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.UpdateWindow +{ + /// + /// XGJSWindow.xaml 的交互逻辑 + /// + public partial class XGJSWindow : Window + { + public XGJSWindow(Cus_Role row ) + { + InitializeComponent(); + cusrole = row; + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + Cus_Role cusrole = new Cus_Role(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfky.ItemsSource = listsfqy; + sfky.SelectedValuePath = "ID"; + sfky.DisplayMemberPath = "Name"; + if (cusrole.SFKY==true) + { + sfky.SelectedValue = 0; + } + else + { + sfky.SelectedValue = 1; + } + jsmc.Text = cusrole.Role; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (jsmc.Text == null || jsmc.Text == string.Empty) + { + MessageBox.Show("请输入角色名称"); + return; + } + if (jsmc.Text!= cusrole.Role) + { + var listjs = (from tbjs in myModel.SYS_JSB where tbjs.JSMC == jsmc.Text select new { tbjs }).ToList(); + if (listjs.Count > 0) + { + MessageBox.Show("请该角色已存在"); + return; + } + } + + bool ky = Convert.ToInt32(sfky.SelectedValue) == 0; + SYS_JSB role = new SYS_JSB(); + role.ID = cusrole.ID; + role.JSMC = jsmc.Text; + role.SFQY = ky; + try + { + myModel.Entry(role).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("修改失败"); + } + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGKSWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGKSWindow.xaml new file mode 100644 index 0000000..12a0ae0 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGKSWindow.xaml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGKSWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGKSWindow.xaml.cs new file mode 100644 index 0000000..1cefb7f --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGKSWindow.xaml.cs @@ -0,0 +1,84 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XGKSWindow.xaml 的交互逻辑 + /// + public partial class XGKSWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XGKSWindow(int ksid) + { + InitializeComponent(); + id = ksid; + } + + int id = 0; + private void Window_Loaded(object sender, RoutedEventArgs e) + { + Cus_KsLb kslb = new Cus_KsLb(); + kslb = (from tbksb in myModel.SYS_KSB + where tbksb.ID == id + select new Cus_KsLb + { + ID = tbksb.ID, + KSMC = tbksb.KSMC, + KSBM = tbksb.KSBM, + bitSFQY = tbksb.SFKQ + }).FirstOrDefault(); + ksbm.Text = kslb.KSBM; + ksmc.Text = kslb.KSMC; + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = kslb.bitSFQY == true ? 0 : 1; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (ksmc.Text == null || ksmc.Text == string.Empty) + { + MessageBox.Show("请填写科室名称"); + return; + } + if (ksmc.Text == null || ksmc.Text == string.Empty) + { + MessageBox.Show("请填写科室编码"); + return; + } + SYS_KSB ksb = new SYS_KSB(); + ksb.ID = id; + ksb.KSMC = ksmc.Text; + ksb.KSBM = ksbm.Text; + ksb.SFKQ = sfqy.SelectedValue.ToString() == "0" ? true : false; + try + { + myModel.Entry(ksb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("修改失败"); + } + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGMMWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGMMWindow.xaml new file mode 100644 index 0000000..f36e7d4 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGMMWindow.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGMMWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGMMWindow.xaml.cs new file mode 100644 index 0000000..ca13ac2 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGMMWindow.xaml.cs @@ -0,0 +1,86 @@ +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.UpdateWindow +{ + /// + /// XGMMWindow.xaml 的交互逻辑 + /// + public partial class XGMMWindow : Window + { + public XGMMWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void Button_Click(object sender, RoutedEventArgs e) + { + if (gh.Text==string.Empty) + { + MessageBox.Show("请输入工号"); + return; + } + if (jmm.Password == string.Empty) + { + MessageBox.Show("请输入旧密码"); + return; + } + if (xmm.Password == string.Empty) + { + MessageBox.Show("请输入新密码"); + return; + } + if (xmm.Password != qrmm.Password) + { + MessageBox.Show("输入两次密码不一致"); + return; + } + var yh = (from tbyh in myModel.SYS_YHB + where tbyh.GH == gh.Text && tbyh.MM == jmm.Password + select new Cus_User + { + ID = tbyh.ID, + GH = tbyh.GH, + Name = tbyh.YHM, + JSID = tbyh.JSID, + Password = tbyh.MM, + }).ToList(); + if (yh.Count>0) + { + SYS_YHB user = new SYS_YHB(); + user.ID = yh[0].ID; + user.GH = yh[0].GH; + user.YHM = yh[0].Name; + user.JSID = yh[0].JSID; + user.MM =xmm.Password; + try + { + myModel.Entry(user).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show("修改失败"+ex.ToString()); + } + } + else + { + MessageBox.Show("账号或密码错误"); + return; + } + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGMZYSWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGMZYSWindow.xaml new file mode 100644 index 0000000..62be0d8 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGMZYSWindow.xaml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGMZYSWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGMZYSWindow.xaml.cs new file mode 100644 index 0000000..f29b15f --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGMZYSWindow.xaml.cs @@ -0,0 +1,211 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.UpdateWindow +{ + /// + /// XGMZYSWindow.xaml 的交互逻辑 + /// + public partial class XGMZYSWindow : Window + { + public XGMZYSWindow(Cus_MZYS row) + { + InitializeComponent(); + mzysrow = row; + } + Cus_MZYS mzysrow = new Cus_MZYS(); + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = 0; + + List listyszc = new List(); + listyszc = (from tbssjb in myModel.SYS_YSZCB + select new ComboBoxBinding + { + ID = tbssjb.ID, + Name = tbssjb.Name, + }).ToList(); + yszc.ItemsSource = listyszc; + yszc.SelectedValuePath = "ID"; + yszc.DisplayMemberPath = "Name"; + List listsslb1 = new List(); + listsslb1 = (from tbsslx in myModel.SYS_SSLXB + select new ComboBoxBinding + { + ID = tbsslx.ID, + Name = tbsslx.SSLX, + }).ToList(); + scss1.ItemsSource = listsslb1; + scss1.SelectedValuePath = "ID"; + scss1.DisplayMemberPath = "Name"; + List listsslb2 = new List(); + listsslb2 = (from tbsslx in myModel.SYS_SSLXB + select new ComboBoxBinding + { + ID = tbsslx.ID, + Name = tbsslx.SSLX, + }).ToList(); + scss2.ItemsSource = listsslb2; + scss2.SelectedValuePath = "ID"; + scss2.DisplayMemberPath = "Name"; + List listsslb3 = new List(); + listsslb3 = (from tbsslx in myModel.SYS_SSLXB + select new ComboBoxBinding + { + ID = tbsslx.ID, + Name = tbsslx.SSLX, + }).ToList(); + scss3.ItemsSource = listsslb3; + scss3.SelectedValuePath = "ID"; + scss3.DisplayMemberPath = "Name"; + sfqy.SelectedValue = mzysrow.strSFQY == "是" ? 0 : 1; + if (mzysrow.SCSS1 !=null) + { + scss1.SelectedValue = mzysrow.SCSS1; + } + else + { + scss1.SelectedValue = null; + } + if (mzysrow.SCSS2 != null) + { + scss2.SelectedValue = mzysrow.SCSS2; + } + else + { + scss2.SelectedValue = null; + } + if (mzysrow.SCSS3 != null) + { + scss3.SelectedValue = mzysrow.SCSS3; + } + else + { + scss3.SelectedValue = null; + } + yszc.SelectedValue = mzysrow.YSZC; + ysxm.Text = mzysrow.YSXM; + ysgh.Text = mzysrow.YSGH; + + //List listsfqy = new List(); + //listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + //listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + //sfqy.ItemsSource = listsfqy; + //sfqy.SelectedValuePath = "ID"; + //sfqy.DisplayMemberPath = "Name"; + //List listyszc = new List(); + //listyszc = (from tbssjb in myModel.SYS_YSZCB + // select new ComboBoxBinding + // { + // ID = tbssjb.ID, + // Name = tbssjb.Name, + // }).ToList(); + //yszc.ItemsSource = listyszc; + //yszc.SelectedValuePath = "ID"; + //yszc.DisplayMemberPath = "Name"; + //List listsss = new List(); + //listsss = (from tbssjb in myModel.SYS_SSSB + // select new ComboBoxBinding + // { + // ID = tbssjb.ID, + // Name = tbssjb.SSSMC, + // }).ToList(); + //sss.ItemsSource = listsss; + //sss.SelectedValuePath = "ID"; + //sss.DisplayMemberPath = "Name"; + + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (ysxm.Text == string.Empty) + { + MessageBox.Show("请填写医生姓名"); + return; + } + if (ysgh.Text == string.Empty) + { + MessageBox.Show("请填写医生姓名"); + return; + } + if (yszc.SelectedValue == null) + { + MessageBox.Show("请选择职称"); + return; + } + if (scss1.SelectedValue == null) + { + MessageBox.Show("请选择擅长手术室"); + return; + } + + if (scss2.SelectedValue == null) + { + } + try + { + if (ysgh.Text != mzysrow.YSGH || ysxm.Text!=mzysrow.YSXM) + { + var listmzys = (from ybmzys in myModel.SYS_MZYSB + where ybmzys.YSBM == ysgh.Text && ybmzys.YSMC == ysxm.Text + select new { ybmzys }).ToList(); + if (listmzys.Count > 0) + { + MessageBox.Show("医生姓名和编码重复!"); + return; + } + } + SYS_MZYSB mzys = new SYS_MZYSB(); + mzys.ID = mzysrow.ID; + mzys.SFQY = sfqy.SelectedValue.ToString() == "0" ? true : false; + mzys.SCSS1 = Convert.ToInt32(scss1.SelectedValue); + if (scss2.SelectedValue==null) + { + mzys.SCSS2 = null; + } + else + { + mzys.SCSS2 = Convert.ToInt32(scss2.SelectedValue); + } + if (scss3.SelectedValue == null) + { + mzys.SCSS3 = null; + } + else + { + mzys.SCSS3 = Convert.ToInt32(scss3.SelectedValue); + } + mzys.YSBM = ysgh.Text; + mzys.YSMC = ysxm.Text; + mzys.YSZCID = Convert.ToInt32(yszc.SelectedValue); + myModel.Entry(mzys).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show("修改失败"+ex.ToString()); + } + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGRYWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGRYWindow.xaml new file mode 100644 index 0000000..d9af3e6 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGRYWindow.xaml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGRYWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGRYWindow.xaml.cs new file mode 100644 index 0000000..79a0c44 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGRYWindow.xaml.cs @@ -0,0 +1,95 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.UpdateWindow +{ + /// + /// XGRYWindow.xaml 的交互逻辑 + /// + public partial class XGRYWindow : Window + { + public XGRYWindow(Cus_User row) + { + InitializeComponent(); + ryrow = row; + } + Cus_User ryrow = new Cus_User(); + + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listjs = new List(); + listjs = (from tbjs in myModel.SYS_JSB + where tbjs.SFQY == true + select new ComboBoxBinding + { + ID = tbjs.ID, + Name = tbjs.JSMC, + }).ToList(); + + js.ItemsSource = listjs; + js.SelectedValuePath = "ID"; + js.DisplayMemberPath = "Name"; + js.SelectedValue = ryrow.JSID; + xm.Text = ryrow.Name; + gh.Text = ryrow.GH; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (xm.Text == null || xm.Text == string.Empty) + { + MessageBox.Show("请填写姓名"); + return; + } + if (gh.Text == null || gh.Text == string.Empty) + { + MessageBox.Show("请填写工号"); + return; + } + if (js.SelectedValue == null) + { + MessageBox.Show("请选择角色"); + return; + } + if (gh.Text!=ryrow.GH) + { + var listyh = (from tbyh in myModel.SYS_YHB where tbyh.GH == gh.Text select new { tbyh }).ToList(); + if (listyh.Count > 0) + { + MessageBox.Show("工号不能重复"); + return; + } + } + SYS_YHB yh = new SYS_YHB(); + yh.ID = ryrow.ID; + yh.GH = gh.Text; + yh.YHM = xm.Text; + yh.MM = "123"; + yh.JSID = Convert.ToInt32(js.SelectedValue); + try + { + myModel.Entry(yh).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("修改失败"); + } + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGSBWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGSBWindow.xaml new file mode 100644 index 0000000..31e7161 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSBWindow.xaml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGSBWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGSBWindow.xaml.cs new file mode 100644 index 0000000..ced9863 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSBWindow.xaml.cs @@ -0,0 +1,141 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; +namespace SchedulingSystemClient.UpdateWindow +{ + /// + /// XGSBWindow.xaml 的交互逻辑 + /// + public partial class XGSBWindow : Window + { + public XGSBWindow(Cus_SBB row) + { + InitializeComponent(); + selectedRow = row; + } + Cus_SBB selectedRow = new Cus_SBB(); + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + int sbid; + private void Window_Loaded(object sender, RoutedEventArgs e) + { + List listsblx = new List(); + listsblx = (from tbsblxb in myModel.SYS_SBLXB + select new ComboBoxBinding + { + ID = tbsblxb.ID, + Name = tbsblxb.Name, + }).ToList(); + sblx.ItemsSource = listsblx; + sblx.SelectedValuePath = "ID"; + sblx.DisplayMemberPath = "Name"; + List listsss = new List(); + listsss = (from tbsssb in myModel.SYS_SSSB + select new ComboBoxBinding + { + ID = tbsssb.ID, + Name = tbsssb.SSSMC, + }).ToList(); + sss.ItemsSource = listsss; + sss.SelectedValuePath = "ID"; + sss.DisplayMemberPath = "Name"; + List listsbdj = new List(); + listsbdj = (from tbsbdj in myModel.SYS_SBDJB + select new ComboBoxBinding + { + ID = tbsbdj.ID, + Name = tbsbdj.Name, + }).ToList(); + sbdj.ItemsSource = listsbdj; + sbdj.SelectedValuePath = "ID"; + sbdj.DisplayMemberPath = "Name"; + if (selectedRow.SSSID !=null) + { + sss.SelectedValue = Convert.ToInt32(selectedRow.SSSID); + } + if (selectedRow.SBLX != null) + { + sblx.SelectedValue = Convert.ToInt32(selectedRow.SBLX); + } + if (selectedRow.SBDJ != null) + { + sbdj.SelectedValue = Convert.ToInt32(selectedRow.SBDJ); + } + sbbm.Text = selectedRow.SBBM; + sbmc.Text = selectedRow.SBMC ; + sbjg.Text = selectedRow.SBJG.ToString(); + sbid = selectedRow.ID; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (sbbm.Text == string.Empty) + { + MessageBox.Show("请填写 设备编码"); + return; + } + if (sbmc.Text == string.Empty) + { + MessageBox.Show("请填写设备名称"); + return; + } + if (sss.SelectedValue == null) + { + MessageBox.Show("请选择手术室"); + return; + } + if (sblx.SelectedValue == null) + { + MessageBox.Show("请选择设备类型"); + return; + } + if (sbdj.SelectedValue == null) + { + MessageBox.Show("请选择设备等级"); + return; + } + decimal jg; + try + { + if (sbjg.Text != string.Empty) + { + jg = Convert.ToDecimal(sbjg.Text); + } + else + { + jg = 0; + } + } + catch (Exception) + { + MessageBox.Show("设备价格格式不正确"); + return; + } + int sssid = Convert.ToInt32(sss.SelectedValue); + int sblxid = Convert.ToInt32(sblx.SelectedValue); + int sbjdid = Convert.ToInt32(sbdj.SelectedValue); + Bus_SBB sbb = new Bus_SBB(); + sbb.SBBM = sbbm.Text; + sbb.SBDJ = sbjdid; + sbb.SBJG = jg; + sbb.SBLX = sblxid; + sbb.SBMC = sbmc.Text; + sbb.SSSID = sssid; + sbb.ID = sbid; + try + { + myModel.Entry(sbb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGSQJLWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGSQJLWindow.xaml new file mode 100644 index 0000000..2109d4f --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSQJLWindow.xaml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGSQJLWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGSQJLWindow.xaml.cs new file mode 100644 index 0000000..abf61d7 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSQJLWindow.xaml.cs @@ -0,0 +1,1175 @@ + +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; + +namespace SchedulingSystem +{ + /// + /// XGSQJLWindow.xaml 的交互逻辑 + /// + public partial class XGSQJLWindow : Window + { + public XGSQJLWindow(Cus_SSSQB selectedRow, SYS_YHB yh) + { + InitializeComponent(); + Row = selectedRow; + user = yh; + } + SYS_YHB user = new SYS_YHB(); + Cus_SSSQB Row = new Cus_SSSQB(); + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + //rowssrq.Height = new GridLength(0); + //rowsssj.Height = new GridLength(0); + List listks = new List(); + List listys = new List(); + List listssmc = new List(); + List listsfjz = new List(); + listsfjz.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfjz.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + listks = (from tbsss in myModel.SYS_KSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.KSMC, + }).ToList(); + listys = (from tbsss in myModel.SYS_SSYSB + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.YSXM, + }).ToList(); + listssmc = (from tbsss in myModel.SYS_SSXXB + where tbsss.CJSS == true + select new ComboBoxBinding + { + ID = tbsss.ID, + Name = tbsss.SSMC, + }).ToList(); + List shi = new List(); + for (int i = 0; i < 24; i++) + { + if (i < 10) + { + shi.Add("0" + i); + } + else + { + shi.Add(i.ToString()); + } + } + List fen = new List(); + for (int i = 0; i < 60; i++) + { + if (i < 10) + { + fen.Add("0" + i); + } + else + { + fen.Add(i.ToString()); + } + } + List miao = new List(); + for (int i = 0; i < 60; i++) + { + if (i < 10) + { + miao.Add("0" + i); + } + else + { + miao.Add(i.ToString()); + } + } + KS.ItemsSource = listks; + KS.SelectedValuePath = "ID"; + KS.DisplayMemberPath = "Name"; + KS.SelectedValue = Row.KSID; + YS.ItemsSource = listys; + YS.SelectedValuePath = "ID"; + YS.DisplayMemberPath = "Name"; + YS.SelectedValue = Row.ZDYSID; + SSMC.ItemsSource = listssmc; + SSMC.SelectedValuePath = "ID"; + SSMC.DisplayMemberPath = "Name"; + SSMC.SelectedValue = Row.SSID; + SFJZ.ItemsSource = listsfjz; + SFJZ.SelectedValuePath = "ID"; + SFJZ.DisplayMemberPath = "Name"; + SFJZ.SelectedValue = Row.SFJZ==true? 0:1; + HZXM.Text = Row.HZXM; + ZYH.Text = Row.ZYH; + ZLKH.Text = Row.ZLKH; + SQZD.Text = Row.SQZD; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (KS.SelectedIndex < 0) + { + MessageBox.Show("请选择科室"); + return; + } + if (YS.SelectedIndex < 0) + { + MessageBox.Show("请选择医生"); + return; + } + if (SSMC.SelectedIndex < 0) + { + MessageBox.Show("请选择手术"); + return; + } + if (HZXM.Text == null || HZXM.Text == string.Empty) + { + MessageBox.Show("请填写患者姓名"); + return; + } + if (ZYH.Text == null || ZYH.Text == string.Empty) + { + MessageBox.Show("请填写住院号"); + return; + } + if (ZLKH.Text == null || ZLKH.Text == string.Empty) + { + MessageBox.Show("请填写诊疗卡号"); + return; + } + try + { + Bus_SSSQB sssqb = new Bus_SSSQB(); + sssqb.ID = Row.ID; + sssqb.SQDH = Row.SQDH; + sssqb.HZXM = HZXM.Text; + sssqb.KSID = Convert.ToInt32(KS.SelectedValue); + //sssqb.QZ = 0; + sssqb.SFJZ = SSMC.SelectedIndex == 0 ? true : false; + sssqb.SQSJ = DateTime.Now; + sssqb.SQZD = SQZD.Text; + sssqb.SSID = Convert.ToInt32(SSMC.SelectedValue); + sssqb.ZDYSID = Convert.ToInt32(YS.SelectedValue); + sssqb.ZLKH = ZLKH.Text; + sssqb.ZYH = ZYH.Text; + + myModel.Entry(sssqb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + + //int pbid = Row.ID; + //Bus_PBRZB pbrz = new Bus_PBRZB(); + //pbrz.CZLX = 1; + //pbrz.CZRYID = user.ID; + //pbrz.PBZT = 1; + //pbrz.SSID = pbid; + //pbrz.CZSJ = DateTime.Now; + //myModel.Bus_PBRZB.Add(pbrz); + //myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception ex) + { + MessageBox.Show("修改失败" + ex.ToString()); + } + } + + private void PBFS_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) + { + //if (Convert.ToInt32(PBFS.SelectedValue) == 1) + //{ + // rowssrq.Height = new GridLength(1, GridUnitType.Star); + // rowsssj.Height = new GridLength(1, GridUnitType.Star); + + //} + //else + //{ + // rowssrq.Height = new GridLength(1); + // rowsssj.Height = new GridLength(0); + //} + } + + private void btn_qx_Click(object sender, RoutedEventArgs e) + { + this.Close(); + } + #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.SSKSSJ < 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.SSKSSJ).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.SSKSSJ == null || tbpbb.SSKSSJ > 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()); + } + } + //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.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 + // { + // //排班时间为上午 + // //查询出未排班并且手术总时长小于或等于上午时长的手术按权重排序 + // 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()); + // } + // 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 (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()); + // } + // 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 + } +} + diff --git a/SchedulingSystemClient/UpdateWindow/XGSSLXWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGSSLXWindow.xaml new file mode 100644 index 0000000..a0970c0 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSSLXWindow.xaml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGSSLXWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGSSLXWindow.xaml.cs new file mode 100644 index 0000000..67ab4c2 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSSLXWindow.xaml.cs @@ -0,0 +1,83 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XGSSLXWindow.xaml 的交互逻辑 + /// + public partial class XGSSLXWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XGSSLXWindow(int sslxid) + { + InitializeComponent(); + id = sslxid; + } + int id = 0; + private void Window_Loaded(object sender, RoutedEventArgs e) + { + Cus_Sslxb sslxlb = new Cus_Sslxb(); + sslxlb = (from tbsslxb in myModel.SYS_SSDJB + where tbsslxb.ID == id + select new Cus_Sslxb + { + ID = tbsslxb.ID, + SSLX = tbsslxb.SSDJ, + + }).FirstOrDefault(); + sslx.Text = sslxlb.SSLX; + lxbm.Text = sslxlb.LXBM; + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = sslxlb.bitSFQY == true ? 0 : 1; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (sslx.Text == null || sslx.Text == string.Empty) + { + MessageBox.Show("请填写手术类型"); + return; + } + if (lxbm.Text == null || lxbm.Text == string.Empty) + { + MessageBox.Show("请填写类型编码"); + return; + } + + SYS_SSDJB sslxb = new SYS_SSDJB(); + sslxb.ID = id; + sslxb.SSDJ = sslx.Text; + sslxb.DJMS = lxbm.Text; + + try + { + myModel.Entry(sslxb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("修改失败"); + } + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGSSQJDWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGSSQJDWindow.xaml new file mode 100644 index 0000000..f4cf23e --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSSQJDWindow.xaml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGSSQJDWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGSSQJDWindow.xaml.cs new file mode 100644 index 0000000..193f8b1 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSSQJDWindow.xaml.cs @@ -0,0 +1,117 @@ +using SchedulingSystem.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient.UpdateWindow +{ + /// + /// XGSSQJDWindow.xaml 的交互逻辑 + /// + public partial class XGSSQJDWindow : Window + { + public XGSSQJDWindow(int ssqidid) + { + InitializeComponent(); + qjdid = ssqidid; + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + int qjdid = 0; + Cus_Ssqjdb ssqjdlb = new Cus_Ssqjdb(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + sfqy.SelectedIndex = 0; + //List listsfqy = new List(); + //listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + //listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + //sfqy.ItemsSource = listsfqy; + //sfqy.SelectedValuePath = "ID"; + //sfqy.DisplayMemberPath = "Name"; + //sfqy.SelectedIndex = 0; + + + ssqjdlb = (from tbssqjd in myModel.SYS_SSQKLXB + where tbssqjd.ID == qjdid + select new Cus_Ssqjdb + { + ID = tbssqjd.ID, + + SSQJD = tbssqjd.QKLX, + QJSJID = tbssqjd.QJSCID, + + }).FirstOrDefault(); + ssqjd.Text = ssqjdlb.SSQJD; + qjsj.Text = ssqjdlb.QJSJ.ToString(); + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = ssqjdlb.SFQY == true ? 0 : 1; + + List listqjsc = new List(); + listqjsc.Add(new ComboBoxBinding() { ID = 0, Name = "0.5小时" }); + listqjsc.Add(new ComboBoxBinding() { ID = 1, Name = "1小时" }); + listqjsc.Add(new ComboBoxBinding() { ID = 2, Name = "1.5小时" }); + listqjsc.Add(new ComboBoxBinding() { ID = 3, Name = "2小时" }); + qjsj.ItemsSource = listqjsc; + qjsj.SelectedValuePath = "ID"; + qjsj.DisplayMemberPath = "Name"; + qjsj.SelectedValue = ssqjdlb.QJSJID; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + + if (ssqjd.Text == null || ssqjd.Text == string.Empty) + { + MessageBox.Show("请填写手术清洁度"); + return; + } + if (qjsj.SelectedValue == null ) + { + MessageBox.Show("请选择清洁时间"); + return; + } + if (ssqjd.Text != ssqjdlb.SSQJD) + { + var listssqjd = (from tbssqjd in myModel.SYS_SSQKLXB where tbssqjd.QKLX == ssqjd.Text select new { tbssqjd }).ToList(); + if (listssqjd.Count > 0) + { + MessageBox.Show("清洁度不能重复"); + return; + } + } + + SYS_SSQKLXB ssqjdb = new SYS_SSQKLXB(); + ssqjdb.ID = qjdid; + ssqjdb.QKLX = ssqjd.Text; + //ssqjdb.QJSJID =Convert.ToInt32(qjsj.SelectedValue); + //ssqjdb.QJSJ = Convert.ToDecimal(qjsj.Text.Replace("小时","")); + //ssqjdb.SFQY = sfqy.SelectedValue.ToString() == "0"; + try + { + myModel.Entry(ssqjdb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("修改失败"); + } + + + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGSSSWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGSSSWindow.xaml new file mode 100644 index 0000000..a6960cb --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSSSWindow.xaml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGSSSWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGSSSWindow.xaml.cs new file mode 100644 index 0000000..51c6c2b --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSSSWindow.xaml.cs @@ -0,0 +1,109 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XGSSSWindow.xaml 的交互逻辑 + /// + public partial class XGSSSWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XGSSSWindow(int sssid ) + { + InitializeComponent(); + id = sssid; + } + int id = 0; + private void Window_Loaded(object sender, RoutedEventArgs e) + { + Cus_SssLb sss = new Cus_SssLb(); + sss = (from tbsssb in myModel.SYS_SSSB + where tbsssb.ID == id + select new Cus_SssLb + { + ID = tbsssb.ID, + SSSBM = tbsssb.SSSBM, + SSSMC = tbsssb.SSSMC, + bitSFQY = tbsssb.SFKQ, + bitRJSSS = tbsssb.SFRJ, + }).FirstOrDefault(); + sssbm.Text = sss.SSSBM; + sssmc.Text = sss.SSSMC; + List listsfqy = new List(); + listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + List listrjsss = new List(); + listrjsss.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listrjsss.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + rjsss.ItemsSource = listrjsss; + rjsss.SelectedValuePath = "ID"; + rjsss.DisplayMemberPath = "Name"; + rjsss.SelectedIndex = sss.bitRJSSS == true ? 0 : 1; + sfqy.ItemsSource = listsfqy; + sfqy.SelectedValuePath = "ID"; + sfqy.DisplayMemberPath = "Name"; + sfqy.SelectedIndex = sss.bitSFQY == true ? 0 : 1; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (sssmc.Text == null || sssmc.Text == string.Empty) + { + MessageBox.Show("请填写手术室名称"); + return; + } + if (sssbm.Text == null || sssbm.Text == string.Empty) + { + MessageBox.Show("请填写手术编码"); + return; + } + //List listsss = (from tbsss in myModel.SYS_SSSB + // select new Cus_SssLb + // { + // SSSBM = tbsss.SSSBM, + // SSSMC = tbsss.SSSMC, + // }).ToList(); + + //if (listsss.Where(a => a.SSSMC == sssmc.Text).Count() > 0) + //{ + // MessageBox.Show("该手术室名称已存在"); + // return; + //} + //if (listsss.Where(a => a.SSSBM == sssbm.Text).Count() > 0) + //{ + // MessageBox.Show("该手术室名称已存在"); + // return; + //} + SYS_SSSB sssb = new SYS_SSSB(); + sssb.ID = id; + sssb.SSSMC = sssmc.Text; + sssb.SSSBM = sssbm.Text; + sssb.SFKQ = sfqy.SelectedValue.ToString() == "0" ? true : false; + sssb.SFRJ = rjsss.SelectedValue.ToString() == "0" ? true : false; + try + { + myModel.Entry(sssb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + } + catch (Exception) + { + MessageBox.Show("修改失败"); + } + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGSSXXWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGSSXXWindow.xaml new file mode 100644 index 0000000..19714e4 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSSXXWindow.xaml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGSSXXWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGSSXXWindow.xaml.cs new file mode 100644 index 0000000..6422a67 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGSSXXWindow.xaml.cs @@ -0,0 +1,274 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient.EntityClass; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; + +namespace SchedulingSystemClient.UpdateWindow +{ + /// + /// XGSSXXWindow.xaml 的交互逻辑 + /// + public partial class XGSSXXWindow : Window + { + public XGSSXXWindow(Cus_SSXXB ssrow) + { + InitializeComponent(); + ssxx = ssrow; + } + Cus_SSXXB ssxx = new Cus_SSXXB(); + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + List listsssc = new List(); + List listssjb = new List(); + List listssqjd = new List(); + List listmzys = new List(); + List listxhhs = new List(); + List listsslb = new List(); + List listcyss = new List(); + private void Window_Loaded(object sender, RoutedEventArgs e) + { + listcyss.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + listcyss.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + listsssc = (from tbsssc in myModel.SYS_SSSCB + select new ComboBoxBinding + { + ID = tbsssc.ID, + Name = tbsssc.NAME, + }).ToList(); + listssjb = (from tbssjb in myModel.SYS_SSDJB + select new ComboBoxBinding + { + ID = tbssjb.ID, + Name = tbssjb.SSDJ, + }).ToList(); + listssqjd = (from tbssqjd in myModel.SYS_SSQKLXB + select new ComboBoxBinding + { + ID = tbssqjd.ID, + Name = tbssqjd.QKLX, + }).ToList(); + listmzys = (from tbmzyszc in myModel.SYS_YSZCB + select new ComboBoxBinding + { + ID = tbmzyszc.ID, + Name = tbmzyszc.Name, + }).ToList(); + listxhhs = (from tbxhhxzc in myModel.SYS_HSZCB + select new ComboBoxBinding + { + ID = tbxhhxzc.ID, + Name = tbxhhxzc.Name, + }).ToList(); + listsslb = (from tbxxlb in myModel.SYS_SSLXB + select new ComboBoxBinding + { + ID = tbxxlb.ID, + Name = tbxxlb.SSLX, + }).ToList(); + yjsssc.ItemsSource = listsssc; + ssjb.ItemsSource = listssjb; + ssqjd.ItemsSource = listssqjd; + mzyszc.ItemsSource = listmzys; + xhhszc.ItemsSource = listxhhs; + yjsssc.SelectedValuePath = "ID"; + yjsssc.DisplayMemberPath = "Name"; + ssjb.SelectedValuePath = "ID"; + ssjb.DisplayMemberPath = "Name"; + ssqjd.SelectedValuePath = "ID"; + ssqjd.DisplayMemberPath = "Name"; + mzyszc.SelectedValuePath = "ID"; + mzyszc.DisplayMemberPath = "Name"; + xhhszc.SelectedValuePath = "ID"; + xhhszc.DisplayMemberPath = "Name"; + sslb.ItemsSource = listsslb; + sslb.SelectedValuePath = "ID"; + sslb.DisplayMemberPath = "Name"; + cyss.ItemsSource = listcyss; + cyss.SelectedValuePath = "ID"; + cyss.DisplayMemberPath = "Name"; + if (ssxx.IsICD ==true) + { + ssbm.IsReadOnly = true; + ssmc.IsReadOnly = true; + } + if (ssxx.CJSS == true) + { + cyss.SelectedIndex = 0; + } + else + { + cyss.SelectedIndex = 1; + } + ssbm.Text = ssxx.SSBM; + ssmc.Text = ssxx.SSMC; + pyszm.Text = ssxx.PYSZM; + if (ssxx.YJSSSC==null) + { + yjsssc.SelectedValue = 0; + } + else + { + yjsssc.SelectedValue = ssxx.YJSSSC; + } + if (ssxx.SSJB == null) + { + ssjb.SelectedValue = 0; + } + else + { + ssjb.SelectedValue = ssxx.SSJB; + } + if (ssxx.SSQJD == null) + { + ssqjd.SelectedValue = 0; + } + else + { + ssqjd.SelectedValue = ssxx.SSQJD; + } + if (ssxx.MZYSZC == null) + { + mzyszc.SelectedValue = 0; + } + else + { + mzyszc.SelectedValue = ssxx.MZYSZC; + } + if (ssxx.XHHSZC == null) + { + xhhszc.SelectedValue = 0; + } + else + { + xhhszc.SelectedValue = ssxx.XHHSZC; + } + if (ssxx.intSSLX == null) + { + sslb.SelectedValue = 0; + } + else + { + sslb.SelectedValue = ssxx.intSSLX; + } + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + try + { + string strssbm = ssbm.Text; + string strssmc = ssmc.Text; + string strpyszm = pyszm.Text; + int? intyjsssc; + int? intssjb; + int? intssqjd; + int? intmzyszc; + int? intxhhszc; + int? intsslb; + bool? sfcy; + + sfcy = Convert.ToInt32(cyss.SelectedValue) == 0 ? true : false; + if (strssbm == string.Empty || strssbm == null) + { + MessageBox.Show("请填写手术编码"); + return; + } + if (strssmc == string.Empty || strssmc == null) + { + MessageBox.Show("请填写手术名称"); + return; + } + if (sslb.SelectedValue == null) + { + intsslb = null; + MessageBox.Show("请选择手术类别"); + return; + } + else + { + intsslb = Convert.ToInt32(sslb.SelectedValue); + } + if (yjsssc.SelectedValue == null) + { + intyjsssc = null; + } + else + { + intyjsssc = Convert.ToInt32(yjsssc.SelectedValue); + } + if (ssjb.SelectedValue == null) + { + intssjb = null; + } + else + { + intssjb = Convert.ToInt32(ssjb.SelectedValue); + } + if (ssqjd.SelectedValue == null) + { + intssqjd = null; + } + else + { + intssqjd = Convert.ToInt32(ssqjd.SelectedValue); + } + if (mzyszc.SelectedValue == null) + { + intmzyszc = null; + } + else + { + intmzyszc = Convert.ToInt32(mzyszc.SelectedValue); + } + if (xhhszc.SelectedValue == null) + { + intxhhszc = null; + } + else + { + intxhhszc = Convert.ToInt32(xhhszc.SelectedValue); + } + if (strssbm == ssxx.SSBM && strssmc == ssxx.SSMC) + { + } + else + { + var listssxx = (from tbssxxb in myModel.SYS_SSXXB + where tbssxxb.SSBM == strssbm && tbssxxb.SSMC == strssmc + select new + { + tbssxxb + }).ToList(); + if (listssxx.Count > 0) + { + MessageBox.Show("手术编码和名称已存在"); + return; + } + } + SYS_SSXXB ssxxb = new SYS_SSXXB(); + ssxxb.ID = ssxx.ID; + ssxxb.SSBM = strssbm; + ssxxb.SSMC = strssmc; + ssxxb.PYSZM = strpyszm; + ssxxb.SSSCID = intyjsssc; + ssxxb.SSDJID = intssjb; + ssxxb.SSQKLXID = intssqjd; + ssxxb.MZYSZCID = intmzyszc; + ssxxb.HSZCID = intxhhszc; + ssxxb.SSLX = intsslb; + ssxxb.CJSS = sfcy; + ssxxb.IsICD = ssxx.IsICD; + myModel.Entry(ssxxb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + this.Close(); + + } + catch (Exception ex) + { + MessageBox.Show("修改失败" + ex.ToString()); + } + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGYSWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGYSWindow.xaml new file mode 100644 index 0000000..2b88971 --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGYSWindow.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGYSWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGYSWindow.xaml.cs new file mode 100644 index 0000000..af50bff --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGYSWindow.xaml.cs @@ -0,0 +1,104 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XGYSWindow.xaml 的交互逻辑 + /// + public partial class XGYSWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XGYSWindow(int ysid) + { + InitializeComponent(); + id = ysid; + } + + int id = 0; + private void Window_Loaded(object sender, RoutedEventArgs e) + { + // Cus_YsLb ys = new Cus_YsLb(); + //ys = (from tbysb in myModel.SYS_YSZCB + // join tbyszcb in myModel.SYS_YSZCB on tbysb.YSJB equals tbyszcb.ID + // where tbysb.ID == id + // select new Cus_YsLb + // { + // ID = tbysb.ID, + // YSMC = tbysb.YSXM, + // YSBM = tbysb.YSBM, + // YSJB = tbyszcb.YSZC, + // intYSJB = tbyszcb.ID, + // bitSFQY = tbysb.SFQY + // }).FirstOrDefault(); + //ysmc.Text = ys.YSMC; + //ysbm.Text = ys.YSBM; + //List listsfqy = new List(); + //listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + //listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + //sfqy.ItemsSource = listsfqy; + //sfqy.SelectedValuePath = "ID"; + //sfqy.DisplayMemberPath = "Name"; + //sfqy.SelectedIndex = ys.bitSFQY == true ? 0 : 1; + //List listyszc = new List(); + //listyszc = (from tbyszcb in myModel.SYS_YSZCB + // select new ComboBoxBinding + // { + // ID = tbyszcb.ID, + // Name = tbyszcb.Name, + // }).ToList(); + //yszc.ItemsSource = listyszc; + //yszc.SelectedValuePath = "ID"; + //yszc.DisplayMemberPath = "Name"; + //yszc.SelectedValue = ys.intYSJB; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + if (ysbm.Text == null || ysbm.Text == string.Empty) + { + MessageBox.Show("请填写医生编码"); + return; + } + if (ysmc.Text == null || ysmc.Text == string.Empty) + { + MessageBox.Show("请填写医生姓名"); + return; + } + if (yszc.SelectedIndex<0) + { + MessageBox.Show("请选择医生职称"); + return; + } + //SYS_YSB ysb = new SYS_YSB(); + //ysb.ID = id; + //ysb.YSXM = ysmc.Text; + //ysb.YSBM = ysbm.Text; + //ysb.YSJB =Convert.ToInt32(yszc.SelectedValue); + //ysb.SFQY = sfqy.SelectedValue.ToString() == "0" ? true : false; + //try + //{ + // myModel.Entry(ysb).State = System.Data.Entity.EntityState.Modified; + // myModel.SaveChanges(); + // MessageBox.Show("修改成功"); + // this.Close(); + //} + //catch (Exception) + //{ + // MessageBox.Show("修改失败"); + //} + } + } +} diff --git a/SchedulingSystemClient/UpdateWindow/XGYSZCWindow.xaml b/SchedulingSystemClient/UpdateWindow/XGYSZCWindow.xaml new file mode 100644 index 0000000..47cf82c --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGYSZCWindow.xaml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UpdateWindow/XGYSZCWindow.xaml.cs b/SchedulingSystemClient/UpdateWindow/XGYSZCWindow.xaml.cs new file mode 100644 index 0000000..15d8bbd --- /dev/null +++ b/SchedulingSystemClient/UpdateWindow/XGYSZCWindow.xaml.cs @@ -0,0 +1,84 @@ +using SchedulingSystem.EntityClass; +using SchedulingSystemClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystem +{ + /// + /// XGYSZCWindow.xaml 的交互逻辑 + /// + public partial class XGYSZCWindow : Window + { + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + public XGYSZCWindow(int yszcid) + { + InitializeComponent(); + id = yszcid; + } + int id = 0; + private void Window_Loaded(object sender, RoutedEventArgs e) + { + //Cus_YSZC sss = new Cus_YSZC(); + //sss = (from tbyszcb in myModel.SYS_YSZCB + // where tbyszcb.ID == id + // select new Cus_YSZC + // { + // ID = tbyszcb.ID, + // YSZC = tbyszcb.YSZC, + // ZCBM = tbyszcb.ZCBM, + // bitSFQY = tbyszcb.SFQY + // }).FirstOrDefault(); + //yszc.Text = sss.YSZC; + //zcbm.Text = sss.ZCBM; + //List listsfqy = new List(); + //listsfqy.Add(new ComboBoxBinding() { ID = 0, Name = "是" }); + //listsfqy.Add(new ComboBoxBinding() { ID = 1, Name = "否" }); + //sfqy.ItemsSource = listsfqy; + //sfqy.SelectedValuePath = "ID"; + //sfqy.DisplayMemberPath = "Name"; + //sfqy.SelectedIndex = sss.bitSFQY == true ? 0 : 1; + } + + private void btn_bc_Click(object sender, RoutedEventArgs e) + { + //if (yszc.Text == null || yszc.Text == string.Empty) + //{ + // MessageBox.Show("请填写医生职称"); + // return; + //} + //if (zcbm.Text == null || zcbm.Text == string.Empty) + //{ + // MessageBox.Show("请填写职称编码"); + // return; + //} + + //SYS_YSZCB yszcb = new SYS_YSZCB(); + //yszcb.ID = id; + //yszcb.YSZC = yszc.Text; + //yszcb.ZCBM = zcbm.Text; + //yszcb.SFQY = sfqy.SelectedValue.ToString() == "0" ? true : false; + //try + //{ + // myModel.Entry(yszcb).State = System.Data.Entity.EntityState.Modified; + // myModel.SaveChanges(); + // MessageBox.Show("修改成功"); + // this.Close(); + //} + //catch (Exception) + //{ + // MessageBox.Show("修改失败"); + //} + } + } +} diff --git a/SchedulingSystemClient/UserControls/UC_TabItemWithClose.xaml b/SchedulingSystemClient/UserControls/UC_TabItemWithClose.xaml new file mode 100644 index 0000000..0d919b2 --- /dev/null +++ b/SchedulingSystemClient/UserControls/UC_TabItemWithClose.xaml @@ -0,0 +1,86 @@ + + + + + + + + + + + + diff --git a/SchedulingSystemClient/UserControls/UC_TabItemWithClose.xaml.cs b/SchedulingSystemClient/UserControls/UC_TabItemWithClose.xaml.cs new file mode 100644 index 0000000..80a6cc2 --- /dev/null +++ b/SchedulingSystemClient/UserControls/UC_TabItemWithClose.xaml.cs @@ -0,0 +1,132 @@ +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; + +namespace SchedulingSystemClient.UserControls +{ + /// + /// UC_TabItemWithClose.xaml 的交互逻辑 + /// + public partial class UC_TabItemWithClose : TabItem + { + public UC_TabItemWithClose() + { + InitializeComponent(); + } + #region 成员变量 + /// + /// 父级TabControl + /// + private TabControl m_Parent; + /// + /// 约定的宽度 + /// + private double m_ConventionWidth = 100; + #endregion + private void TabItem_Loaded(object sender, RoutedEventArgs e) + { + //找到父级TabControl + m_Parent = FindParentTabControl(this); + if (m_Parent != null) + Load(); + + } + public void btn_Close_Click(object sender, RoutedEventArgs e) + { + if (m_Parent == null) + return; + //移除自身 + m_Parent.Items.Remove(this); + //移除事件 + m_Parent.SizeChanged -= m_Parent_SizeChanged; + //调整剩余项大小 + //保持约定宽度item的临界个数 + int criticalCount = (int)((m_Parent.ActualWidth - 5) / m_ConventionWidth); + //平均宽度 + double perWidth = (m_Parent.ActualWidth - 5) / m_Parent.Items.Count; + foreach (UC_TabItemWithClose item in m_Parent.Items) + { + if (m_Parent.Items.Count <= criticalCount) + { + item.Width = m_ConventionWidth; + } + else + { + item.Width = perWidth; + } + } + } + #region 父级TabControl尺寸发生变化 + /// + /// 父级TabControl尺寸发生变化 + /// + private void m_Parent_SizeChanged(object sender, SizeChangedEventArgs e) + { + //调整自身大小 + //保持约定宽度item的临界个数 + int criticalCount = (int)((m_Parent.ActualWidth - 5) / m_ConventionWidth); + if (m_Parent.Items.Count <= criticalCount) + { + //小于等于临界个数 等于约定宽度 + this.Width = m_ConventionWidth; + } + else + { + //大于临界个数 等于平均宽度 + double perWidth = (m_Parent.ActualWidth - 5) / m_Parent.Items.Count; + this.Width = perWidth; + } + } + #endregion + #region 方法 + #region Load + /// + /// Load + /// + private void Load() + { + //约定的宽度 + double.TryParse(m_Parent.Tag.ToString(), out m_ConventionWidth); + //注册父级TabControl尺寸发生变化事件 + m_Parent.SizeChanged += m_Parent_SizeChanged; + + //自适应 + //保持约定宽度item的临界个数 + int criticalCount = (int)((m_Parent.ActualWidth - 5) / m_ConventionWidth); + if (m_Parent.Items.Count <= criticalCount) + { + //小于等于临界个数 等于约定宽度 + this.Width = m_ConventionWidth; + } + else + { + //大于临界个数 每项都设成平均宽度 + double perWidth = (m_Parent.ActualWidth - 5) / m_Parent.Items.Count; + foreach (UC_TabItemWithClose item in m_Parent.Items) + { + item.Width = perWidth; + } + this.Width = perWidth; + } + } + #endregion + #region 递归找父级TabControl + /// + /// 递归找父级TabControl + /// + /// 依赖对象 + /// TabControl + private TabControl FindParentTabControl(DependencyObject reference) + { + DependencyObject dObj = VisualTreeHelper.GetParent(reference); + if (dObj == null) + return null; + if (dObj.GetType() == typeof(TabControl)) + return dObj as TabControl; + else + return FindParentTabControl(dObj); + } + #endregion + #endregion + } +} diff --git a/SchedulingSystemClient/Window1.xaml b/SchedulingSystemClient/Window1.xaml new file mode 100644 index 0000000..070eaeb --- /dev/null +++ b/SchedulingSystemClient/Window1.xaml @@ -0,0 +1,12 @@ + + + + + diff --git a/SchedulingSystemClient/Window1.xaml.cs b/SchedulingSystemClient/Window1.xaml.cs new file mode 100644 index 0000000..df3af5c --- /dev/null +++ b/SchedulingSystemClient/Window1.xaml.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient +{ + /// + /// Window1.xaml 的交互逻辑 + /// + public partial class Window1 : Window + { + public Window1() + { + InitializeComponent(); + } + } +} diff --git a/SchedulingSystemClient/XTGLWindow.xaml b/SchedulingSystemClient/XTGLWindow.xaml new file mode 100644 index 0000000..c1aacea --- /dev/null +++ b/SchedulingSystemClient/XTGLWindow.xaml @@ -0,0 +1,415 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/XTGLWindow.xaml.cs b/SchedulingSystemClient/XTGLWindow.xaml.cs new file mode 100644 index 0000000..d716fc1 --- /dev/null +++ b/SchedulingSystemClient/XTGLWindow.xaml.cs @@ -0,0 +1,565 @@ +using SchedulingSystemClient.EntityClass; +using SchedulingSystemClient.InsertWindow; +using SchedulingSystemClient.UpdateWindow; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; + +namespace SchedulingSystemClient +{ + /// + /// XTGLWindow.xaml 的交互逻辑 + /// + public partial class XTGLWindow : UserControl + { + public XTGLWindow() + { + InitializeComponent(); + } + SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); + + string str = "人员管理"; + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + rygl.IsEnabled = false; + jsgl.IsEnabled = true; + ryglgrid.Visibility = Visibility.Visible; + jsglgrid.Visibility = Visibility.Collapsed; + czmm.Visibility = Visibility.Visible; + bcjs.Visibility = Visibility.Collapsed; + str = "人员管理"; + ShuaXin(); + } + private void rygl_Click(object sender, RoutedEventArgs e) + { + rygl.IsEnabled = false; + jsgl.IsEnabled = true; + ryglgrid.Visibility = Visibility.Visible; + jsglgrid.Visibility = Visibility.Collapsed; + czmm.Visibility = Visibility.Visible; + bcjs.Visibility = Visibility.Collapsed; + str = "人员管理"; + ShuaXin(); + } + + private void jsgl_Click(object sender, RoutedEventArgs e) + { + rygl.IsEnabled = true; + jsgl.IsEnabled = false; + ryglgrid.Visibility = Visibility.Collapsed; + jsglgrid.Visibility = Visibility.Visible; + czmm.Visibility = Visibility.Collapsed; + bcjs.Visibility = Visibility.Visible; + str = "角色管理"; + ShuaXin(); + } + + private void czmm_Click(object sender, RoutedEventArgs e) + { + if (ryrow.ID == 0) + { + MessageBox.Show("请选择需要重置的人员"); + return; + } + SYS_YHB yh = new SYS_YHB(); + yh.ID = ryrow.ID; + yh.GH = ryrow.GH; + yh.YHM = ryrow.Name; + yh.MM = "123"; + yh.JSID = ryrow.JSID; + try + { + myModel.Entry(yh).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("重置成功"); + myModel.Entry(yh).State = System.Data.Entity.EntityState.Detached; + } + catch (Exception) + { + MessageBox.Show("重置失败"); + } + } + + //private void scry_Click(object sender, RoutedEventArgs e) + //{ + // if (ryrow.ID == 0) + // { + // MessageBox.Show("请选择删除的内容"); + // return; + // } + // MessageBoxResult dr = MessageBox.Show("确定要删除该人员吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + // if (dr == MessageBoxResult.OK) + // { + // var ryb = (from tbryb in myModel.SYS_YHB + // where tbryb.ID == ryrow.ID + // select new + // { + // tbryb, + // }).Single(); + // try + // { + // myModel.SYS_YHB.Remove(ryb.tbryb); + // myModel.SaveChanges(); + // MessageBox.Show("删除成功"); + // } + // catch (Exception) + // { + // MessageBox.Show("删除失败"); + // } + // } + //} + + //private void xgry_Click(object sender, RoutedEventArgs e) + //{ + // if (ryrow.ID==0) + // { + // MessageBox.Show("请选择修改的内容"); + // return; + // } + + // XGRYWindow window = new XGRYWindow(ryrow); + // window.ShowDialog(); + //} + //private void xzry_Click(object sender, RoutedEventArgs e) + //{ + // XZRYWindow window = new XZRYWindow(); + // window.ShowDialog(); + //} + //private void cxry_Click(object sender, RoutedEventArgs e) + //{ + // var listry = (from tbry in myModel.SYS_YHB + // join tbjs in myModel.SYS_JSB on tbry.JSID equals tbjs.ID + // select new Cus_User + // { + // ID = tbry.ID, + // Name = tbry.Name, + // GH = tbry.GH, + // JSID = tbjs.ID, + // strRole = tbjs.Role + // }).ToList(); + // rygldata.ItemsSource = listry; + //} + int qxid; + /// + /// 角色保存 + /// + /// + /// + private void bcjs_Click(object sender, RoutedEventArgs e) + { + int count = qxfpdata.Items.Count; + SYS_QXB qxb = new SYS_QXB(); + qxb.ID = qxid; + qxb.JSID = jsid; + + for (int i = 0; i < count; i++) + { + string str = (qxfpdata.Columns[1].GetCellContent(qxfpdata.Items[i]) as TextBlock).Text; + DataGridTemplateColumn tempColumn = qxfpdata.Columns[2] as DataGridTemplateColumn; + FrameworkElement element = qxfpdata.Columns[2].GetCellContent(qxfpdata.Items[i]); + CheckBox ck = tempColumn.CellTemplate.FindName("box", element) as CheckBox; + bool? IsChecked = ck.IsChecked; + if (str == "首页" && IsChecked == true) + { + qxb.Is_SY = true; + } + if (str == "排班记录" && IsChecked == true) + { + qxb.Is_PBJL = true; + } + if (str == "排班申请" && IsChecked == true) + { + qxb.Is_PBSQ = true; + } + if (str == "手术信息维护" && IsChecked == true) + { + qxb.Is_JCXXWH = true; + } + if (str == "规则维护" && IsChecked == true) + { + qxb.Is_GZWH = true; + } + if (str == "系统管理" && IsChecked == true) + { + qxb.Is_XTGL = true; + } + if (str == "数据统计" && IsChecked == true) + { + qxb.Is_SJTJ = true; + } + if (str == "排班日志" && IsChecked == true) + { + qxb.Is_PBRZ = true; + } + if (str == "手动排班" && IsChecked == true) + { + qxb.Is_SDPB = true; + } + if (str == "排班展示" && IsChecked == true) + { + qxb.Is_PBZS = true; + } + } + try + { + myModel.Entry(qxb).State = System.Data.Entity.EntityState.Modified; + myModel.SaveChanges(); + MessageBox.Show("修改成功"); + myModel.Entry(qxb).State = System.Data.Entity.EntityState.Detached; + } + catch (Exception ex) + { + MessageBox.Show("修改失败" +ex.ToString()); + } + + } + + //private void scjs_Click(object sender, RoutedEventArgs e) + //{ + // if (jsid == 0) + // { + // MessageBox.Show("请选择需要删除的角色"); + // return; + // } + // MessageBoxResult dr = MessageBox.Show("确定要删除该角色吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + // if (dr == MessageBoxResult.OK) + // { + // var yhb = (from ybyh in myModel.SYS_YHB + // where ybyh.JSID == jsid + // select new + // { + // ybyh, + // }).ToList(); + // if (yhb.Count>0) + // { + // MessageBox.Show("该角色正在使用不能删除"); + // return; + // } + // var jsb = (from tbjsb in myModel.SYS_JSB + // where tbjsb.ID == jsid + // select new + // { + // tbjsb, + // }).Single(); + // try + // { + // myModel.SYS_JSB.Remove(jsb.tbjsb); + // myModel.SaveChanges(); + // MessageBox.Show("删除成功"); + // } + // catch (Exception) + // { + + // MessageBox.Show("删除失败"); + // } + + + // } + //} + + //private void xgjs_Click(object sender, RoutedEventArgs e) + //{ + // if (jsid==0) + // { + // MessageBox.Show("请选择角色"); + // return; + // } + // XGJSWindow window = new XGJSWindow(row); + // window.ShowDialog(); + //} + + //private void xzjs_Click(object sender, RoutedEventArgs e) + //{ + // XZJSWindow window = new XZJSWindow(); + // window.ShowDialog(); + //} + + //private void cxjs_Click(object sender, RoutedEventArgs e) + //{ + // var listjs = (from tbjs in myModel.SYS_JSB + // select new Cus_Role + // { + // ID =tbjs.ID, + // Role =tbjs.Role, + // SFKY =tbjs.SFKY, + // strSFKY =tbjs.SFKY == true? "可用":"不可用", + // }).ToList(); + // qxfpdata.ItemsSource = null; + // jsgldata.ItemsSource = listjs; + // qxid = 0; + //} + + private void qxfpdata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + + } + int jsid; + Cus_Role row = new Cus_Role(); + private void jsgldata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + jsid = 0; + Cus_Role selectedRow = jsgldata.SelectedItem as Cus_Role; + + if (selectedRow != null) + { + jsid = selectedRow.ID; + row = selectedRow; + } + } + int ryid; + Cus_User ryrow = new Cus_User(); + private void rygldata_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + ryid = 0; + Cus_User selectedRow = rygldata.SelectedItem as Cus_User; + + if (selectedRow != null) + { + ryid = selectedRow.ID; + ryrow = selectedRow; + } + } + private void jsgldata_MouseDoubleClick(object sender, MouseButtonEventArgs e) + { + if (row.ID!=0) + { + List listcdb = (from tbcdb in myModel.SYS_CDB select new Cus_CDB { ID = tbcdb.ID ,Name = tbcdb.Name,IsChecked = false }).ToList(); + List listqxb= (from tbqxb in myModel.SYS_QXB + where tbqxb.JSID == jsid + select new Cus_QXB + { + ID = tbqxb.ID, + JSID= tbqxb.JSID, + Is_SY= tbqxb.Is_SY, + Is_PBJL= tbqxb.Is_PBJL, + Is_PBSQ= tbqxb.Is_PBSQ, + Is_JCXXWH= tbqxb.Is_JCXXWH, + Is_GZWH= tbqxb.Is_GZWH, + Is_XTGL= tbqxb.Is_XTGL, + Is_PBRZ= tbqxb.Is_PBRZ, + Is_SJTJ= tbqxb.Is_SJTJ, + Is_SDPB= tbqxb.Is_SDPB, + Is_PBZS = tbqxb.Is_PBZS, + }).ToList(); + qxid = listqxb[0].ID; + for (int i = 0; i < listcdb.Count; i++) + { + if (listcdb[i].Name == "首页" && listqxb[0].Is_SY is true) { listcdb[i].IsChecked = true; } + if (listcdb[i].Name == "排班记录" && listqxb[0].Is_PBJL is true) { listcdb[i].IsChecked = true; } + if (listcdb[i].Name == "排班申请" && listqxb[0].Is_PBSQ is true) { listcdb[i].IsChecked = true; } + if (listcdb[i].Name == "手术信息维护" && listqxb[0].Is_JCXXWH is true) { listcdb[i].IsChecked = true; } + if (listcdb[i].Name == "规则维护" && listqxb[0].Is_GZWH is true) { listcdb[i].IsChecked = true; } + if (listcdb[i].Name == "系统管理" && listqxb[0].Is_XTGL is true) { listcdb[i].IsChecked = true; } + if (listcdb[i].Name == "数据统计" && listqxb[0].Is_SJTJ is true) { listcdb[i].IsChecked = true; } + if (listcdb[i].Name == "排班日志" && listqxb[0].Is_PBRZ is true) { listcdb[i].IsChecked = true; } + if (listcdb[i].Name == "手动排班" && listqxb[0].Is_SDPB is true) { listcdb[i].IsChecked = true; } + if (listcdb[i].Name == "排班展示" && listqxb[0].Is_PBZS is true) { listcdb[i].IsChecked = true; } + } + qxfpdata.ItemsSource = listcdb; + } + } + + private void ShuaXin() + { + jsid = 0; + ryrow = new Cus_User(); + if (str == "人员管理") + { + var listry = (from tbry in myModel.SYS_YHB + join tbjs in myModel.SYS_JSB on tbry.JSID equals tbjs.ID + select new Cus_User + { + ID = tbry.ID, + Name = tbry.YHM, + GH = tbry.GH, + JSID = tbjs.ID, + strRole = tbjs.JSMC + }).ToList(); + rygldata.ItemsSource = listry; + } + if (str == "角色管理") + { + var listjs = (from tbjs in myModel.SYS_JSB + select new Cus_Role + { + ID = tbjs.ID, + Role = tbjs.JSMC, + SFKY = tbjs.SFQY, + strSFKY = tbjs.SFQY == true ? "可用" : "不可用", + }).ToList(); + qxfpdata.ItemsSource = null; + jsgldata.ItemsSource = listjs; + qxid = 0; + } + } + + + /// + /// 刷新 + /// + /// + /// + private void btn_sx_Click(object sender, RoutedEventArgs e) + { + ShuaXin(); + //jsid = 0; + //ryrow = new Cus_User(); + //if (str=="人员管理") + //{ + // var listry = (from tbry in myModel.SYS_YHB + // join tbjs in myModel.SYS_JSB on tbry.JSID equals tbjs.ID + // select new Cus_User + // { + // ID = tbry.ID, + // Name = tbry.Name, + // GH = tbry.GH, + // JSID = tbjs.ID, + // strRole = tbjs.Role + // }).ToList(); + // rygldata.ItemsSource = listry; + //} + //if (str == "角色管理") + //{ + // var listjs = (from tbjs in myModel.SYS_JSB + // select new Cus_Role + // { + // ID = tbjs.ID, + // Role = tbjs.Role, + // SFKY = tbjs.SFKY, + // strSFKY = tbjs.SFKY == true ? "可用" : "不可用", + // }).ToList(); + // qxfpdata.ItemsSource = null; + // jsgldata.ItemsSource = listjs; + // qxid = 0; + //} + } + /// + /// 新增 + /// + /// + /// + private void btn_xz_Click(object sender, RoutedEventArgs e) + { + if (str == "人员管理") + { + XZRYWindow window = new XZRYWindow(); + window.ShowDialog(); + } + if (str == "角色管理") + { + XZJSWindow window = new XZJSWindow(); + window.ShowDialog(); + } + ShuaXin(); + } + + + /// + /// 修改 + /// + /// + /// + private void btn_xg_Click(object sender, RoutedEventArgs e) + { + if (str == "人员管理") + { + if (ryrow.ID == 0) + { + MessageBox.Show("请选择人员"); + return; + } + + XGRYWindow window = new XGRYWindow(ryrow); + window.ShowDialog(); + } + if (str == "角色管理") + { + if (jsid == 0) + { + MessageBox.Show("请选择角色"); + return; + } + XGJSWindow window = new XGJSWindow(row); + window.ShowDialog(); + } + ShuaXin(); + } + + private void btn_sc_Click(object sender, RoutedEventArgs e) + { + if (str == "人员管理") + { + if (ryrow.ID == 0) + { + MessageBox.Show("请选择删除的内容"); + return; + } + MessageBoxResult dr = MessageBox.Show("确定要删除该人员吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + var ryb = (from tbryb in myModel.SYS_YHB + where tbryb.ID == ryrow.ID + select new + { + tbryb, + }).Single(); + try + { + myModel.SYS_YHB.Remove(ryb.tbryb); + myModel.SaveChanges(); + MessageBox.Show("删除成功"); + } + catch (Exception) + { + MessageBox.Show("删除失败"); + } + } + } + if (str == "角色管理") + { + if (jsid == 0) + { + MessageBox.Show("请选择需要删除的角色"); + return; + } + MessageBoxResult dr = MessageBox.Show("确定要删除该角色吗?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question); + if (dr == MessageBoxResult.OK) + { + var yhb = (from ybyh in myModel.SYS_YHB + where ybyh.JSID == jsid + select new + { + ybyh, + }).ToList(); + if (yhb.Count > 0) + { + MessageBox.Show("该角色正在使用不能删除"); + return; + } + var jsb = (from tbjsb in myModel.SYS_JSB + where tbjsb.ID == jsid + select new + { + tbjsb, + }).Single(); + try + { + myModel.SYS_JSB.Remove(jsb.tbjsb); + myModel.SaveChanges(); + MessageBox.Show("删除成功"); + } + catch (Exception) + { + MessageBox.Show("删除失败"); + } + } + } + ShuaXin(); + } + + + } +} diff --git a/SchedulingSystemClient/YWRYPBWindow.xaml b/SchedulingSystemClient/YWRYPBWindow.xaml new file mode 100644 index 0000000..7021e2b --- /dev/null +++ b/SchedulingSystemClient/YWRYPBWindow.xaml @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/YWRYPBWindow.xaml.cs b/SchedulingSystemClient/YWRYPBWindow.xaml.cs new file mode 100644 index 0000000..0548969 --- /dev/null +++ b/SchedulingSystemClient/YWRYPBWindow.xaml.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace SchedulingSystemClient +{ + /// + /// YWRYPBWindow.xaml 的交互逻辑 + /// + public partial class YWRYPBWindow : UserControl + { + public YWRYPBWindow(SYS_YHB yh) + { + InitializeComponent(); + } + + private void SSYS_Click(object sender, RoutedEventArgs e) + { + string str = string.Empty; + str = "手术医生"; + MessageBox.Show(str); + } + private void MZYS_Click(object sender, RoutedEventArgs e) + { + string str = string.Empty; + str = "麻醉医生"; + MessageBox.Show(str); + } + + private void HS_Click(object sender, RoutedEventArgs e) + { + string str = string.Empty; + str = "护士"; + MessageBox.Show(str); + } + } +} diff --git a/SchedulingSystemClient/packages.config b/SchedulingSystemClient/packages.config new file mode 100644 index 0000000..75340f1 --- /dev/null +++ b/SchedulingSystemClient/packages.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/SchedulingSystemClient/测试.xaml b/SchedulingSystemClient/测试.xaml new file mode 100644 index 0000000..475c291 --- /dev/null +++ b/SchedulingSystemClient/测试.xaml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + diff --git a/SchedulingSystemClient/测试.xaml.cs b/SchedulingSystemClient/测试.xaml.cs new file mode 100644 index 0000000..babfaf5 --- /dev/null +++ b/SchedulingSystemClient/测试.xaml.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SchedulingSystemClient +{ + /// + /// 测试.xaml 的交互逻辑 + /// + public partial class 测试 : Window + { + public 测试() + { + InitializeComponent(); + } + private void btn_bd_Click(object sender, RoutedEventArgs e) + { + Uri bd = new Uri("https://www.baidu.com/s?wd=英雄联盟"); + web.Source = bd; + } + + private void btn_tb_Click(object sender, RoutedEventArgs e) + { + Uri tb = new Uri("https://www.taobao.com/"); + web.Source = tb; + } + + private void btn_jd_Click(object sender, RoutedEventArgs e) + { + Uri jd = new Uri("https://www.jd.com/"); + web.Source = jd; + } + + private void btn_yxlm_Click(object sender, RoutedEventArgs e) + { + Uri yxlm = new Uri("https://lol.qq.com/main.shtml"); + web.Source = yxlm; + } + } +}