You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

331 lines
16 KiB

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
{
/// <summary>
/// SJTJWindow.xaml 的交互逻辑
/// </summary>
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<ComboBoxBinding> listsss = new List<ComboBoxBinding>();
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<Cus_MZYSSC> listmzyssc = new List<Cus_MZYSSC>();
//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<Cus_MZYSSC> listmzyssc = new List<Cus_MZYSSC>();
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<Cus_MZYSSC> listmzyssc = new List<Cus_MZYSSC>();
//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<Cus_MZYSSC> listmzyssc = new List<Cus_MZYSSC>();
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<Cus_SSJDYL> listssjdyl = new List<Cus_SSJDYL>();
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)
{
}
}
}