2309 lines
97 KiB
C#
2309 lines
97 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using SOH.Data;
|
|
using SOH.Entities;
|
|
using EAS.Services;
|
|
using EAS.Data;
|
|
using EAS.Data.Linq;
|
|
using EAS.Data.ORM;
|
|
using Apache.NMS;
|
|
using Apache.NMS.ActiveMQ;
|
|
using System.Threading;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.IO;
|
|
using SOH.Entities.DTO;
|
|
|
|
namespace SOH.BLL
|
|
{
|
|
[ServiceObject("排队叫号")]
|
|
[ServiceBind(typeof(IPaiDuiJiaoHao))]
|
|
public class PaiDuiJiaoHaoBLL : IPaiDuiJiaoHao
|
|
{
|
|
|
|
|
|
static string[] xs = new string[] { "欧阳", "太史", "端木", "上官", "司马", "东方", "独孤", "南宫", "万俟", "闻人", "夏侯", "诸葛", "尉迟", "公羊", "赫连", "澹台", "皇甫", "宗政", "濮阳", "公冶", "太叔", "申屠", "公孙", "慕容", "仲孙", "钟离", "长孙", "宇文", "司徒", "鲜于", "司空", "闾丘", "子车", "亓官", "司寇", "巫马", "公西", "颛孙", "壤驷", "公良", "漆雕", "乐正", "宰父", "谷梁", "拓跋", "夹谷", "轩辕", "令狐", "段干", "百里", "呼延", "东郭", "南门", "羊舌", "微生", "公户", "公玉", "公仪", "梁丘", "公仲", "公上", "公门", "公山", "公坚", "左丘", "公伯", "西门", "公祖", "第五", "公乘", "贯丘", "公皙", "南荣", "东里", "东宫", "仲长", "子书", "子桑", "即墨", "达奚", "褚师", "吴铭", };
|
|
|
|
class qtdj
|
|
{
|
|
public int tm
|
|
{
|
|
get; set;
|
|
}
|
|
public string xm { get; set; }
|
|
public short xb { get; set; }
|
|
|
|
public short nl { get; set; }
|
|
public DateTime tjsj { get; set; }
|
|
|
|
public List<int> xms { get; set; }
|
|
public string txm { get; set; }
|
|
/// <summary>
|
|
/// 客户类型1 VIP 2普通
|
|
/// </summary>
|
|
public int khlx { get; set; }
|
|
|
|
}
|
|
|
|
public string sendPaiduixinxi2(int tm)
|
|
{
|
|
|
|
try
|
|
{
|
|
/*
|
|
if (prod == null)
|
|
{
|
|
factory = new ConnectionFactory("tcp://localhost:61616/");
|
|
connection = factory.CreateConnection();
|
|
connection.ClientId = System.Net.Dns.GetHostName();
|
|
session = connection.CreateSession();
|
|
prod = session.CreateProducer(
|
|
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("qtdj"));
|
|
}*/
|
|
/*
|
|
ITextMessage itm = prod.CreateTextMessage();*/
|
|
var db = new DbEntities();
|
|
string ttm = tm.ToString("0000000000");
|
|
var qt = new qtdj();
|
|
qt.tm = tm;
|
|
|
|
if (ttm.StartsWith("1"))
|
|
{
|
|
var ttgzb = db.t_ttgzbs.First(t => t.tm == tm);
|
|
qt.xm = ttgzb.xm;
|
|
qt.nl = ttgzb.nl;
|
|
qt.xb = ttgzb.xb;
|
|
qt.khlx = ttgzb.khlx;
|
|
}
|
|
else
|
|
{
|
|
var ttgzb = db.t_grgzbs.First(t => t.tm == tm);
|
|
qt.xm = ttgzb.xm;
|
|
qt.nl = ttgzb.nl;
|
|
qt.xb = ttgzb.xb;
|
|
qt.khlx = ttgzb.khlx;
|
|
}
|
|
qt.txm = qt.xm;
|
|
qt.xms = new List<int>();
|
|
var xms = db.t_tempdjxms.Where(t => t.tm == tm && t.ztz == 0).ToList();
|
|
xms.ForEach(t =>
|
|
{
|
|
qt.xms.Add(t.zhbm);
|
|
});
|
|
|
|
qt.tjsj = DateTime.Now;
|
|
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\log"))
|
|
{
|
|
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\log");
|
|
}
|
|
string pdpath = AppDomain.CurrentDomain.BaseDirectory + "\\log" + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".log";
|
|
StreamWriter sw = new StreamWriter(pdpath, true);
|
|
sw.WriteLine(DateTime.Now.ToString() + "\t" + Newtonsoft.Json.JsonConvert.SerializeObject(qt));
|
|
sw.Close();
|
|
|
|
//if (Array.IndexOf(xs, qt.xm.Substring(0, 2)) == -1)
|
|
//{
|
|
// if (qt.xb == 1)
|
|
// {
|
|
// qt.xm = qt.xm.Substring(0, 1) + "女士(" + qt.tm.ToString().Substring(qt.tm.ToString().Length - 3, 3) + ")";
|
|
// }
|
|
// else
|
|
// {
|
|
// qt.xm = qt.xm.Substring(0, 1) + "先生(" + qt.tm.ToString().Substring(qt.tm.ToString().Length - 3, 3) + ")";
|
|
// }
|
|
//}
|
|
//else
|
|
//{
|
|
// for (int i = 0; i < xs.Length; i++)
|
|
// {
|
|
// if (qt.xm.Substring(0, 2).Equals(xs[i]))
|
|
// {
|
|
// if (qt.xb == 1)
|
|
// {
|
|
// qt.xm = xs[i] + "女士(" + qt.tm.ToString().Substring(qt.tm.ToString().Length - 3, 3) + ")";
|
|
// }
|
|
// else
|
|
// {
|
|
// qt.xm = xs[i] + "先生(" + qt.tm.ToString().Substring(qt.tm.ToString().Length - 3, 3) + ")";
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
//}
|
|
|
|
//string sqlyssjSelect = "select * from pd_yssj where qtxtid=" + qt.tm.ToString();
|
|
//var sqlyssjSdr1 = db.DataAccessor.QueryDataTable(sqlyssjSelect);
|
|
//if (sqlyssjSdr1.Rows.Count > 0)
|
|
//{
|
|
// string delyssj = "";
|
|
// //string del
|
|
//}
|
|
|
|
string sqlyssj = @"INSERT INTO [pd_yssj]
|
|
([xm]
|
|
,[xb]
|
|
,[tjsj]
|
|
,[nl]
|
|
,[yssj]
|
|
,[qtxtid],txm,khlx)
|
|
VALUES
|
|
(@xm
|
|
,@xb
|
|
,@tjsj
|
|
,@nl
|
|
,@yssj
|
|
,@qtxtid,@txm,@khlx) select @@IDENTITY
|
|
|
|
";
|
|
SqlParameter[] paras = { new SqlParameter("xm",SqlDbType.VarChar),
|
|
new SqlParameter("xb",SqlDbType.SmallInt),
|
|
new SqlParameter("tjsj",SqlDbType.DateTime),
|
|
new SqlParameter("nl",SqlDbType.Int),
|
|
new SqlParameter("yssj",SqlDbType.VarChar),
|
|
new SqlParameter("qtxtid",SqlDbType.VarChar),
|
|
new SqlParameter("txm",SqlDbType.VarChar),
|
|
new SqlParameter("khlx",SqlDbType.VarChar)
|
|
};
|
|
paras[0].Value = qt.xm;
|
|
paras[1].Value = qt.xb;
|
|
paras[2].Value = qt.tjsj;
|
|
paras[3].Value = qt.nl;
|
|
paras[4].Value = System.Web.HttpUtility.UrlDecode(Newtonsoft.Json.JsonConvert.SerializeObject(qt));
|
|
paras[5].Value = qt.tm.ToString();
|
|
paras[6].Value = qt.txm;
|
|
paras[7].Value = qt.khlx;
|
|
EAS.Data.Access.ParameterCollection easparas = new EAS.Data.Access.ParameterCollection();
|
|
foreach (var para in paras)
|
|
{
|
|
easparas.Add(para.ParameterName, para.DbType, para.Value);
|
|
}
|
|
int ysid = int.Parse(db.DataAccessor.QueryScalar(sqlyssj, easparas).ToString());
|
|
|
|
|
|
string sql_pdry = "select ysid from pd_rylb where qtxtid='" + qt.tm + "'";
|
|
var dr1 = db.DataAccessor.QueryDataTable(sql_pdry);
|
|
int pdryid = 0;
|
|
if (dr1.Rows.Count > 0)
|
|
{
|
|
pdryid = (int)dr1.Rows[0][0];
|
|
//dr1.Close();
|
|
sqlyssj = "select id from pd_rylb where ysid=" + pdryid;
|
|
DataTable dt = db.DataAccessor.QueryDataTable(sqlyssj);
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
pdryid = (int)dt.Rows[0][0];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//dr1.Close();
|
|
string sql_pdrylb = @"INSERT INTO [pd_rylb]
|
|
([xm]
|
|
,[xb]
|
|
,[pdsj]
|
|
,[nl]
|
|
,[ysid]
|
|
,[qtxtid],txm,khlx)
|
|
VALUES
|
|
(@xm
|
|
,@xb
|
|
,@pdsj
|
|
,@nl
|
|
,@ysid
|
|
,@qtxtid,@txm,@khlx)
|
|
select @@IDENTITY
|
|
|
|
";
|
|
SqlParameter[] paras_pdry = { new SqlParameter("xm",SqlDbType.VarChar),
|
|
new SqlParameter("xb",SqlDbType.TinyInt),
|
|
new SqlParameter("pdsj",SqlDbType.DateTime),
|
|
new SqlParameter("nl",SqlDbType.Int),
|
|
new SqlParameter("ysid",SqlDbType.Int),
|
|
new SqlParameter("qtxtid",SqlDbType.VarChar),
|
|
new SqlParameter("txm",SqlDbType.VarChar),
|
|
new SqlParameter("khlx",SqlDbType.VarChar)
|
|
};
|
|
paras_pdry[0].Value = qt.xm;
|
|
paras_pdry[1].Value = qt.xb;
|
|
paras_pdry[2].Value = DateTime.Now;
|
|
paras_pdry[3].Value = qt.nl;
|
|
paras_pdry[4].Value = ysid;
|
|
paras_pdry[5].Value = qt.tm.ToString();
|
|
paras_pdry[6].Value = qt.txm;
|
|
paras_pdry[7].Value = qt.khlx;
|
|
easparas = new EAS.Data.Access.ParameterCollection();
|
|
foreach (var para in paras_pdry)
|
|
{
|
|
easparas.Add(para.ParameterName, para.DbType, para.Value);
|
|
}
|
|
pdryid = int.Parse(db.DataAccessor.QueryScalar(sql_pdrylb, easparas).ToString());
|
|
}
|
|
|
|
|
|
qt.xms.ForEach(t =>
|
|
{
|
|
|
|
|
|
string sql_xm = @"select a.xmid from pd_ksxm a join pd_wlks b
|
|
on a.ksid=b.id join pd_qtxtxmdy c
|
|
on a.xmid=c.xmid where b.isOpen=1 and c.qtxtxmid=" + t;
|
|
var dr = db.DataAccessor.QueryDataTable(sql_xm);
|
|
int xmid = 0;
|
|
if (dr.Rows.Count > 0)
|
|
{
|
|
xmid = (int)dr.Rows[0][0];
|
|
}
|
|
// dr.Close();
|
|
if (xmid != 0)
|
|
{
|
|
string sql_cz = "select count(1) from pd_pdxms where pdid=" + pdryid + " and xmid=" + xmid;
|
|
|
|
int count = int.Parse(db.DataAccessor.QueryScalar(sql_cz).ToString());
|
|
if (count == 0)
|
|
{
|
|
string sql_pdxm = @"INSERT INTO [pd_pdxms]
|
|
([pdid]
|
|
,[xmid]
|
|
,[zxbz]
|
|
)
|
|
VALUES
|
|
(" + pdryid + @"
|
|
," + xmid + @"
|
|
,0
|
|
)
|
|
|
|
";
|
|
db.DataAccessor.Execute(sql_pdxm);
|
|
}
|
|
}
|
|
|
|
});
|
|
/*
|
|
itm.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(qt));
|
|
prod.Send(itm, MsgDeliveryMode.Persistent, MsgPriority.Normal, TimeSpan.MinValue);*/
|
|
//Thread.Sleep(100);
|
|
string wjwks = "select ksid from pd_kspdlb where pdid=" + pdryid + " and zxbz in (0,1)";
|
|
DataTable wjdt = db.DataAccessor.QueryDataTable(wjwks);
|
|
if (wjdt.Rows.Count > 0)
|
|
{
|
|
wjwks = "select ksmc from pd_wlks where isOpen=1 and id=" + wjdt.Rows[0][0].ToString();
|
|
wjdt = db.DataAccessor.QueryDataTable(wjwks);
|
|
if (wjdt.Rows.Count > 0)
|
|
{
|
|
return wjdt.Rows[0][0].ToString();
|
|
}
|
|
}
|
|
return process(tm.ToString());
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\log"))
|
|
{
|
|
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\log");
|
|
}
|
|
string pdpath = AppDomain.CurrentDomain.BaseDirectory + "\\log" + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".log";
|
|
StreamWriter sw = new StreamWriter(pdpath, true);
|
|
sw.WriteLine("error\t" + DateTime.Now.ToString() + "\t" + ex.Message);
|
|
sw.Close();
|
|
EAS.Loggers.Logger.Info(ex.Message);
|
|
return null;
|
|
}
|
|
}
|
|
public static string sendPaiduixinxi(int tm)
|
|
{
|
|
|
|
try
|
|
{
|
|
/*
|
|
if (prod == null)
|
|
{
|
|
factory = new ConnectionFactory("tcp://localhost:61616/");
|
|
connection = factory.CreateConnection();
|
|
connection.ClientId = System.Net.Dns.GetHostName();
|
|
session = connection.CreateSession();
|
|
prod = session.CreateProducer(
|
|
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("qtdj"));
|
|
}*/
|
|
/*
|
|
ITextMessage itm = prod.CreateTextMessage();*/
|
|
var db = new DbEntities();
|
|
string ttm = tm.ToString("0000000000");
|
|
var qt = new qtdj();
|
|
qt.tm = tm;
|
|
|
|
if (ttm.StartsWith("1"))
|
|
{
|
|
var ttgzb = db.t_ttgzbs.First(t => t.tm == tm);
|
|
qt.xm = ttgzb.xm;
|
|
qt.nl = ttgzb.nl;
|
|
qt.xb = ttgzb.xb;
|
|
qt.khlx = ttgzb.khlx;
|
|
}
|
|
else
|
|
{
|
|
var ttgzb = db.t_grgzbs.First(t => t.tm == tm);
|
|
qt.xm = ttgzb.xm;
|
|
qt.nl = ttgzb.nl;
|
|
qt.xb = ttgzb.xb;
|
|
qt.khlx = ttgzb.khlx;
|
|
}
|
|
qt.txm = qt.xm;
|
|
qt.xms = new List<int>();
|
|
var xms = db.t_tempdjxms.Where(t => t.tm == tm && t.ztz == 0).ToList();
|
|
xms.ForEach(t =>
|
|
{
|
|
qt.xms.Add(t.zhbm);
|
|
});
|
|
|
|
qt.tjsj = DateTime.Now;
|
|
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\log"))
|
|
{
|
|
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\log");
|
|
}
|
|
string pdpath = AppDomain.CurrentDomain.BaseDirectory + "\\log" + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".log";
|
|
StreamWriter sw = new StreamWriter(pdpath, true);
|
|
sw.WriteLine(DateTime.Now.ToString() + "\t" + Newtonsoft.Json.JsonConvert.SerializeObject(qt));
|
|
sw.Close();
|
|
|
|
//if (Array.IndexOf(xs, qt.xm.Substring(0, 2)) == -1)
|
|
//{
|
|
// if (qt.xb == 1)
|
|
// {
|
|
// qt.xm = qt.xm.Substring(0, 1) + "女士(" + qt.tm.ToString().Substring(qt.tm.ToString().Length - 3, 3) + ")";
|
|
// }
|
|
// else
|
|
// {
|
|
// qt.xm = qt.xm.Substring(0, 1) + "先生(" + qt.tm.ToString().Substring(qt.tm.ToString().Length - 3, 3) + ")";
|
|
// }
|
|
//}
|
|
//else
|
|
//{
|
|
// for (int i = 0; i < xs.Length; i++)
|
|
// {
|
|
// if (qt.xm.Substring(0, 2).Equals(xs[i]))
|
|
// {
|
|
// if (qt.xb == 1)
|
|
// {
|
|
// qt.xm = xs[i] + "女士(" + qt.tm.ToString().Substring(qt.tm.ToString().Length - 3, 3) + ")";
|
|
// }
|
|
// else
|
|
// {
|
|
// qt.xm = xs[i] + "先生(" + qt.tm.ToString().Substring(qt.tm.ToString().Length - 3, 3) + ")";
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
//}
|
|
|
|
//string sqlyssjSelect = "select * from pd_yssj where qtxtid=" + qt.tm.ToString();
|
|
//var sqlyssjSdr1 = db.DataAccessor.QueryDataTable(sqlyssjSelect);
|
|
//if (sqlyssjSdr1.Rows.Count > 0)
|
|
//{
|
|
// string delyssj = "";
|
|
// //string del
|
|
//}
|
|
|
|
string sqlyssj = @"INSERT INTO [pd_yssj]
|
|
([xm]
|
|
,[xb]
|
|
,[tjsj]
|
|
,[nl]
|
|
,[yssj]
|
|
,[qtxtid],txm,khlx)
|
|
VALUES
|
|
(@xm
|
|
,@xb
|
|
,@tjsj
|
|
,@nl
|
|
,@yssj
|
|
,@qtxtid,@txm,@khlx) select @@IDENTITY
|
|
|
|
";
|
|
SqlParameter[] paras = { new SqlParameter("xm",SqlDbType.VarChar),
|
|
new SqlParameter("xb",SqlDbType.SmallInt),
|
|
new SqlParameter("tjsj",SqlDbType.DateTime),
|
|
new SqlParameter("nl",SqlDbType.Int),
|
|
new SqlParameter("yssj",SqlDbType.VarChar),
|
|
new SqlParameter("qtxtid",SqlDbType.VarChar),
|
|
new SqlParameter("txm",SqlDbType.VarChar),
|
|
new SqlParameter("khlx",SqlDbType.VarChar)
|
|
};
|
|
paras[0].Value = qt.xm;
|
|
paras[1].Value = qt.xb;
|
|
paras[2].Value = qt.tjsj;
|
|
paras[3].Value = qt.nl;
|
|
paras[4].Value = System.Web.HttpUtility.UrlDecode(Newtonsoft.Json.JsonConvert.SerializeObject(qt));
|
|
paras[5].Value = qt.tm.ToString();
|
|
paras[6].Value = qt.txm;
|
|
paras[7].Value = qt.khlx;
|
|
EAS.Data.Access.ParameterCollection easparas = new EAS.Data.Access.ParameterCollection();
|
|
foreach (var para in paras)
|
|
{
|
|
easparas.Add(para.ParameterName, para.DbType, para.Value);
|
|
}
|
|
int ysid = int.Parse(db.DataAccessor.QueryScalar(sqlyssj, easparas).ToString());
|
|
|
|
|
|
string sql_pdry = "select ysid from pd_rylb where qtxtid='" + qt.tm + "'";
|
|
var dr1 = db.DataAccessor.QueryDataTable(sql_pdry);
|
|
int pdryid = 0;
|
|
if (dr1.Rows.Count > 0)
|
|
{
|
|
pdryid = (int)dr1.Rows[0][0];
|
|
//dr1.Close();
|
|
sqlyssj = "select id from pd_rylb where ysid=" + pdryid;
|
|
DataTable dt = db.DataAccessor.QueryDataTable(sqlyssj);
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
pdryid = (int)dt.Rows[0][0];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//dr1.Close();
|
|
string sql_pdrylb = @"INSERT INTO [pd_rylb]
|
|
([xm]
|
|
,[xb]
|
|
,[pdsj]
|
|
,[nl]
|
|
,[ysid]
|
|
,[qtxtid],txm,khlx)
|
|
VALUES
|
|
(@xm
|
|
,@xb
|
|
,@pdsj
|
|
,@nl
|
|
,@ysid
|
|
,@qtxtid,@txm,@khlx)
|
|
select @@IDENTITY
|
|
|
|
";
|
|
SqlParameter[] paras_pdry = { new SqlParameter("xm",SqlDbType.VarChar),
|
|
new SqlParameter("xb",SqlDbType.TinyInt),
|
|
new SqlParameter("pdsj",SqlDbType.DateTime),
|
|
new SqlParameter("nl",SqlDbType.Int),
|
|
new SqlParameter("ysid",SqlDbType.Int),
|
|
new SqlParameter("qtxtid",SqlDbType.VarChar),
|
|
new SqlParameter("txm",SqlDbType.VarChar),
|
|
new SqlParameter("khlx",SqlDbType.VarChar)
|
|
};
|
|
paras_pdry[0].Value = qt.xm;
|
|
paras_pdry[1].Value = qt.xb;
|
|
paras_pdry[2].Value = DateTime.Now;
|
|
paras_pdry[3].Value = qt.nl;
|
|
paras_pdry[4].Value = ysid;
|
|
paras_pdry[5].Value = qt.tm.ToString();
|
|
paras_pdry[6].Value = qt.txm;
|
|
paras_pdry[7].Value = qt.khlx;
|
|
easparas = new EAS.Data.Access.ParameterCollection();
|
|
foreach (var para in paras_pdry)
|
|
{
|
|
easparas.Add(para.ParameterName, para.DbType, para.Value);
|
|
}
|
|
pdryid = int.Parse(db.DataAccessor.QueryScalar(sql_pdrylb, easparas).ToString());
|
|
}
|
|
|
|
|
|
qt.xms.ForEach(t =>
|
|
{
|
|
|
|
|
|
string sql_xm = @"select a.xmid from pd_ksxm a join pd_wlks b
|
|
on a.ksid=b.id join pd_qtxtxmdy c
|
|
on a.xmid=c.xmid where b.isOpen=1 and c.qtxtxmid=" + t;
|
|
var dr = db.DataAccessor.QueryDataTable(sql_xm);
|
|
int xmid = 0;
|
|
if (dr.Rows.Count > 0)
|
|
{
|
|
xmid = (int)dr.Rows[0][0];
|
|
}
|
|
// dr.Close();
|
|
if (xmid != 0)
|
|
{
|
|
string sql_cz = "select count(1) from pd_pdxms where pdid=" + pdryid + " and xmid=" + xmid;
|
|
|
|
int count = int.Parse(db.DataAccessor.QueryScalar(sql_cz).ToString());
|
|
if (count == 0)
|
|
{
|
|
string sql_pdxm = @"INSERT INTO [pd_pdxms]
|
|
([pdid]
|
|
,[xmid]
|
|
,[zxbz]
|
|
)
|
|
VALUES
|
|
(" + pdryid + @"
|
|
," + xmid + @"
|
|
,0
|
|
)
|
|
|
|
";
|
|
db.DataAccessor.Execute(sql_pdxm);
|
|
}
|
|
}
|
|
|
|
});
|
|
/*
|
|
itm.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(qt));
|
|
prod.Send(itm, MsgDeliveryMode.Persistent, MsgPriority.Normal, TimeSpan.MinValue);*/
|
|
//Thread.Sleep(100);
|
|
string wjwks = "select ksid from pd_kspdlb where pdid=" + pdryid + " and zxbz in (0,1)";
|
|
DataTable wjdt = db.DataAccessor.QueryDataTable(wjwks);
|
|
if (wjdt.Rows.Count > 0)
|
|
{
|
|
wjwks = "select ksmc from pd_wlks where isOpen=1 and id=" + wjdt.Rows[0][0].ToString();
|
|
wjdt = db.DataAccessor.QueryDataTable(wjwks);
|
|
if (wjdt.Rows.Count > 0)
|
|
{
|
|
return wjdt.Rows[0][0].ToString();
|
|
}
|
|
}
|
|
return process(tm.ToString());
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\log"))
|
|
{
|
|
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + "\\log");
|
|
}
|
|
string pdpath = AppDomain.CurrentDomain.BaseDirectory + "\\log" + "\\" + DateTime.Now.ToString("yyyyMMdd") + ".log";
|
|
StreamWriter sw = new StreamWriter(pdpath, true);
|
|
sw.WriteLine("error\t" + DateTime.Now.ToString() + "\t" + ex.Message);
|
|
sw.Close();
|
|
EAS.Loggers.Logger.Info(ex.Message);
|
|
return null;
|
|
}
|
|
}
|
|
public OperationResult deletewlks(string ksid)
|
|
{
|
|
//throw new NotImplementedException();
|
|
OperationResult or = new OperationResult();
|
|
using (var db = new DbEntities())
|
|
{
|
|
try
|
|
{
|
|
int iid = int.Parse(ksid);
|
|
db.pd_wlks.Delete(t => t.id == iid);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
or.State = 0;
|
|
or.Message = ex.Message;
|
|
return or;
|
|
}
|
|
or.State = 1;
|
|
or.Message = "删除成功!";
|
|
return or;
|
|
}
|
|
}
|
|
|
|
public OperationResult deletewlxm(string xmid)
|
|
{
|
|
//throw new NotImplementedException();
|
|
OperationResult or = new OperationResult();
|
|
using (var db = new DbEntities())
|
|
{
|
|
try
|
|
{
|
|
int iid = int.Parse(xmid);
|
|
db.pd_xm.Delete(t => t.id == iid);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
or.State = 0;
|
|
or.Message = ex.Message;
|
|
return or;
|
|
}
|
|
or.State = 1;
|
|
or.Message = "删除成功!";
|
|
return or;
|
|
}
|
|
}
|
|
|
|
public OperationResult Inserpdksxm(int ksbm, List<int> xmbm)
|
|
{
|
|
OperationResult or = new OperationResult();
|
|
using (var db = new DbEntities())
|
|
{
|
|
try
|
|
{
|
|
db.pd_ksxm.Delete(t => t.ksid == ksbm);
|
|
for (int i = 0; i < xmbm.Count; i++)
|
|
{
|
|
pd_ksxm ksxm = new pd_ksxm();
|
|
ksxm.ksid = ksbm;
|
|
ksxm.xmid = Convert.ToInt32(xmbm[i]);
|
|
//al1.Add(mx1);
|
|
db.pd_ksxm.Insert(ksxm);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
or.State = 0;
|
|
or.Message = ex.Message;
|
|
return or;
|
|
}
|
|
or.State = 1;
|
|
or.Message = "保存成功!";
|
|
return or;
|
|
}
|
|
}
|
|
|
|
public OperationResult Insertqtxmdy(int pdxmid, List<int> zhbmlist)
|
|
{
|
|
OperationResult or = new OperationResult();
|
|
using (var db = new DbEntities())
|
|
{
|
|
try
|
|
{
|
|
db.pd_qtxtxmdy.Delete(t => t.xmid == pdxmid);
|
|
for (int i = 0; i < zhbmlist.Count; i++)
|
|
{
|
|
pd_qtxtxmdy qtxmdy = new pd_qtxtxmdy();
|
|
qtxmdy.xmid = pdxmid;
|
|
qtxmdy.qtxtxmid = Convert.ToInt32(zhbmlist[i]);
|
|
//al1.Add(mx1);
|
|
db.pd_qtxtxmdy.Insert(qtxmdy);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
or.State = 0;
|
|
or.Message = ex.Message;
|
|
return or;
|
|
}
|
|
or.State = 1;
|
|
or.Message = "保存成功!";
|
|
return or;
|
|
}
|
|
}
|
|
|
|
public List<pd_wlks> getwlkss()
|
|
{
|
|
//throw new NotImplementedException();
|
|
using (var db = new DbEntities())
|
|
{
|
|
return db.pd_wlks.ToList();
|
|
}
|
|
}
|
|
|
|
public List<pd_rylb> getrylb()
|
|
{
|
|
//throw new NotImplementedException();
|
|
using (var db = new DbEntities())
|
|
{
|
|
return db.pd_rylb.ToList();
|
|
}
|
|
}
|
|
|
|
public List<pd_kspdlb> getkspdlb()
|
|
{
|
|
//throw new NotImplementedException();
|
|
using (var db = new DbEntities())
|
|
{
|
|
return db.pd_kspdlb.ToList();
|
|
}
|
|
}
|
|
|
|
public List<pd_xm> getwlxms()
|
|
{
|
|
//throw new NotImplementedException();
|
|
using (var db = new DbEntities())
|
|
{
|
|
return db.pd_xm.ToList();
|
|
}
|
|
}
|
|
|
|
|
|
public List<pd_xm> GetpdksxmBypdks(int ksbm)
|
|
{
|
|
using (var db = new DbEntities())
|
|
{
|
|
var data = from k in db.pd_wlks
|
|
join kx in db.pd_ksxm
|
|
on k.id equals kx.ksid
|
|
join x in db.pd_xm
|
|
on kx.xmid equals x.id
|
|
where k.id == ksbm
|
|
select x;
|
|
return data.ToList();
|
|
}
|
|
}
|
|
|
|
public List<t_zhxm> GetZhxmListBypdxmid(int xmid)
|
|
{
|
|
using (var db = new DbEntities())
|
|
{
|
|
var data = from k in db.pd_qtxtxmdy
|
|
join z in db.t_zhxms on k.qtxtxmid equals z.zhbm
|
|
where k.xmid == xmid
|
|
select z;
|
|
return data.ToList();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public OperationResult tjxgtjks(pd_wlks wlks)
|
|
{
|
|
OperationResult or = new OperationResult();
|
|
using (var db = new DbEntities())
|
|
{
|
|
try
|
|
{
|
|
//throw new NotImplementedException();
|
|
if (wlks.id == 0)
|
|
{
|
|
var w = db.pd_wlks.FirstOrDefault(t => t.ksmc == wlks.ksmc);
|
|
if (w != null)
|
|
{
|
|
or.State = 2;
|
|
or.Message = "物理科室名称不能重复!";
|
|
return or;
|
|
}
|
|
|
|
wlks.id = new BLL.BasicBll().GetMax(wlks.DbTableName, 1);
|
|
db.pd_wlks.Insert(wlks);
|
|
}
|
|
else
|
|
{
|
|
var w = db.pd_wlks.FirstOrDefault(t => t.id != wlks.id && t.ksmc == wlks.ksmc);
|
|
if (w != null)
|
|
{
|
|
or.State = 3;
|
|
or.Message = "物理科室名称不能重复!";
|
|
return or;
|
|
}
|
|
db.pd_wlks.Update(wlks);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
or.State = 0;
|
|
or.Message = ex.Message;
|
|
return or;
|
|
}
|
|
or.State = 1;
|
|
or.Message = Newtonsoft.Json.JsonConvert.SerializeObject(wlks);
|
|
return or;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
public OperationResult tjxgtjxm(pd_xm wlxm)
|
|
{
|
|
OperationResult or = new OperationResult();
|
|
using (var db = new DbEntities())
|
|
{
|
|
try
|
|
{
|
|
//throw new NotImplementedException();
|
|
if (wlxm.id == 0)
|
|
{
|
|
var w = db.pd_xm.FirstOrDefault(t => t.xmmc == wlxm.xmmc);
|
|
if (w != null)
|
|
{
|
|
or.State = 2;
|
|
or.Message = "排队项目名称不能重复!";
|
|
return or;
|
|
}
|
|
|
|
wlxm.id = new BLL.BasicBll().GetMax(wlxm.DbTableName, 1);
|
|
db.pd_xm.Insert(wlxm);
|
|
}
|
|
else
|
|
{
|
|
var w = db.pd_xm.FirstOrDefault(t => t.id != wlxm.id && t.xmmc == wlxm.xmmc);
|
|
if (w != null)
|
|
{
|
|
or.State = 3;
|
|
or.Message = "排队项目名称不能重复!";
|
|
return or;
|
|
}
|
|
db.pd_xm.Update(wlxm);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
or.State = 0;
|
|
or.Message = ex.Message;
|
|
return or;
|
|
}
|
|
or.State = 1;
|
|
or.Message = Newtonsoft.Json.JsonConvert.SerializeObject(wlxm);
|
|
return or;
|
|
|
|
}
|
|
}
|
|
static IConnectionFactory factory = null;
|
|
static IConnection connection = null;
|
|
static ISession session = null;
|
|
|
|
private static void connMQ()
|
|
{
|
|
if (factory == null || connection == null || session == null)
|
|
{
|
|
factory = new ConnectionFactory("tcp://localhost:61616/");
|
|
connection = factory.CreateConnection();
|
|
session = connection.CreateSession();
|
|
}
|
|
|
|
}
|
|
public void kstj(int tm, string ksid)
|
|
{
|
|
connMQ();
|
|
|
|
|
|
|
|
IMessageProducer prod1;
|
|
try
|
|
{
|
|
|
|
|
|
|
|
|
|
prod1 = session.CreateProducer(
|
|
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("kstj"));
|
|
|
|
//string tm = cs[0];
|
|
var db = new DbEntities();
|
|
string ks = ksid;
|
|
string sql = "select id from pd_rylb where qtxtid='" + tm + "'";
|
|
var dr = db.DataAccessor.QueryDataTable(sql);
|
|
if (dr.Rows.Count > 0)
|
|
{
|
|
string pdid = dr.Rows[0][0].ToString();
|
|
//dr.Close();
|
|
//2016年3月21日08:09:10 李延璋,解决客人没有按照屏幕排队,会造成排队混乱的问题
|
|
string sql_selKspdlb = "select ksid from pd_kspdlb where pd_kspdlb.zxbz in (0,1) and pd_kspdlb.pdid=" + pdid + " and ksid=" + ks;
|
|
var drKspdlb = db.DataAccessor.QueryDataTable(sql_selKspdlb);
|
|
if (drKspdlb.Rows.Count > 0)
|
|
{
|
|
//string pdksid = drKspdlb[0].ToString();
|
|
// drKspdlb.Close();
|
|
//
|
|
/*
|
|
string sql_upKspdlb1 = "update pd_kspdlb set ksid=" + ks + " where pd_kspdlb.zxbz=1 and pd_kspdlb.pdid=" + pdid;
|
|
DbHelperSQL.ExecuteSql(sql_upKspdlb1);
|
|
|
|
string sql_upKspdlb = "update pd_kspdlb set ksid=" + ks + " where pd_kspdlb.zxbz=0 and pd_kspdlb.pdid=" + pdid;
|
|
DbHelperSQL.ExecuteSql(sql_upKspdlb);
|
|
|
|
string sql_upPdxms2 = "update pd_pdxms set zxbz=0,zxsj='',pdsj='' where pd_pdxms.zxbz=2 and pd_pdxms.pdid=" + pdid;
|
|
DbHelperSQL.ExecuteSql(sql_upPdxms2);
|
|
|
|
string sql_upPdxms = "update pd_pdxms set zxbz=0,zxsj='',pdsj='' where pd_pdxms.zxbz=1 and pd_pdxms.pdid=" + pdid;
|
|
DbHelperSQL.ExecuteSql(sql_upPdxms);
|
|
|
|
string sql_upKspdlb = "update pd_kspdlb set ksid=" + ks + " where pd_kspdlb.zxbz=0 and pd_kspdlb.pdid=" + pdid;
|
|
DbHelperSQL.ExecuteSql(sql_upKspdlb);
|
|
string sql_upPdxms1 = "update pd_pdxms set zxbz=1,zxsj=GETDATE(),pdsj=GETDATE() from pd_ksxm where pd_ksxm.xmid=pd_pdxms.xmid"+
|
|
" and pd_ksxm.ksid="+ks+" and pd_pdxms.pdid="+pdid;
|
|
DbHelperSQL.ExecuteSql(sql_upPdxms1);*/
|
|
//
|
|
}
|
|
else
|
|
{
|
|
sql = "select zxbz from pd_kspdlb where pd_kspdlb.pdid=" + pdid + " and ksid=" + ks;
|
|
DataTable zxbztable = db.DataAccessor.QueryDataTable(sql);
|
|
if (zxbztable.Rows.Count > 0 && zxbztable.Rows[0][0].ToString() == "2")
|
|
{
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
sql_selKspdlb = "select ksid from pd_kspdlb where pd_kspdlb.zxbz in (0,1) and pd_kspdlb.pdid=" + pdid;//查询当前正在排队的科室
|
|
drKspdlb = db.DataAccessor.QueryDataTable(sql_selKspdlb);
|
|
if (drKspdlb.Rows.Count > 0)
|
|
{
|
|
string pdksid = drKspdlb.Rows[0][0].ToString();
|
|
|
|
|
|
//淄博
|
|
if (pdksid == "39" || pdksid == "40" || pdksid == "52" || pdksid == "73" || pdksid == "75" || pdksid == "65")
|
|
{
|
|
return;
|
|
}
|
|
|
|
//德州
|
|
/*if (pdksid == "14" || pdksid == "15" || pdksid == "16")
|
|
{
|
|
return;
|
|
}*/
|
|
|
|
|
|
sql = "select count(1) from pd_pdxms,pd_ksxm where pd_pdxms.pdid=" + pdid + " and pd_ksxm.xmid=pd_pdxms.xmid and pd_ksxm.ksid=" + ks;
|
|
if (db.DataAccessor.QueryScalar(sql).ToString() != "0")
|
|
{
|
|
string delsql = "delete from pd_kspdlb where pdid=" + pdid + " and ksid=" + pdksid;
|
|
db.DataAccessor.Execute(delsql);
|
|
sql = "update pd_pdxms set zxbz=0,pdsj=null,zxsj=null,wcsj=null from pd_ksxm where pd_pdxms.xmid=pd_ksxm.xmid and pd_ksxm.ksid=" + pdksid + " and pd_pdxms.pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql);
|
|
ITextMessage im1 = prod1.CreateTextMessage();
|
|
im1.Properties.SetString("ks", pdksid);
|
|
var ksm = new kstjMessage();
|
|
string sql_xm1 = "select xm,xb from pd_rylb where id=" + pdid;
|
|
string xm1 = "错误";
|
|
string xb1 = "错误";
|
|
var xmdr1 = db.DataAccessor.QueryDataTable(sql_xm1);
|
|
if (xmdr1.Rows.Count > 0)
|
|
{
|
|
xm1 = xmdr1.Rows[0][0].ToString();
|
|
xb1 = xmdr1.Rows[0][1].ToString() == "0" ? "男" : "女";
|
|
}
|
|
//xmdr1.Close();
|
|
ksm.xm = xm1 + "(" + xb1 + ")";
|
|
ksm.pdid = int.Parse(pdid);
|
|
ksm.pdsj = DateTime.Now;
|
|
ksm.zxzt = 2;
|
|
im1.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(ksm));
|
|
prod1.Send(im1);//删除原来科室的排队信息
|
|
|
|
|
|
sql = "insert into pd_kspdlb(pdid,ksid,pdsj,zxbz,yjsysj) values(" + pdid + "," + ks + ",getdate(),0,0)";
|
|
db.DataAccessor.Execute(sql);
|
|
sql = "update pd_pdxms set zxbz=1,pdsj=GETDATE() from pd_ksxm where pd_pdxms.zxbz=0 and pd_ksxm.ksid=" + ks + " and pd_pdxms.pdid=" + pdid + " and pd_pdxms.xmid=pd_ksxm.xmid";
|
|
db.DataAccessor.Execute(sql);
|
|
ksm = new kstjMessage();
|
|
//string sql_xm1 = "select xm from pd_rylb where id=" + pdid;
|
|
//string xm1 = "错误";
|
|
//var xmdr1 = db.DataAccessor.QueryDataTable(sql_xm1);
|
|
//if (xmdr1.Rows.Count > 0)
|
|
//{
|
|
// xm1 = xmdr1.Rows[0][0].ToString();
|
|
//}
|
|
//xmdr1.Close();
|
|
im1.Properties.SetString("ks", ksid);
|
|
ksm.xm = xm1 + "(" + xb1 + ")";
|
|
ksm.pdid = int.Parse(pdid);
|
|
ksm.pdsj = DateTime.Now;
|
|
ksm.zxzt = 1;
|
|
im1.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(ksm));
|
|
prod1.Send(im1);//加入新的科室
|
|
|
|
prod1 = null;
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
return;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
//drKspdlb.Close();
|
|
|
|
sql = "select count(1) from pd_pdxms,pd_ksxm where pd_pdxms.pdid=" + pdid + " and pd_ksxm.xmid=pd_pdxms.xmid and pd_ksxm.ksid=" + ks;
|
|
if (db.DataAccessor.QueryScalar(sql).ToString() != "0")
|
|
{
|
|
ITextMessage im1 = prod1.CreateTextMessage();
|
|
im1.Properties.SetString("ks", ks);
|
|
var ksm = new kstjMessage();
|
|
string sql_xm1 = "select xm,xb from pd_rylb where id=" + pdid;
|
|
string xm1 = "错误";
|
|
string xb1 = "错误";
|
|
var xmdr1 = db.DataAccessor.QueryDataTable(sql_xm1);
|
|
if (xmdr1.Rows.Count > 0)
|
|
{
|
|
xm1 = xmdr1.Rows[0][0].ToString();
|
|
xb1 = xmdr1.Rows[0][1].ToString() == "0" ? "男" : "女";
|
|
}
|
|
// xmdr1.Close();
|
|
ksm.xm = xm1 + "(" + xb1 + ")";
|
|
ksm.pdid = int.Parse(pdid);
|
|
ksm.pdsj = DateTime.Now;
|
|
ksm.zxzt = 0;
|
|
im1.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(ksm));
|
|
prod1.Send(im1);//删除原来科室的排队信息
|
|
prod1 = null;
|
|
|
|
|
|
sql = "insert into pd_kspdlb(pdid,ksid,pdsj,zxbz,yjsysj) values(" + pdid + "," + ks + ",getdate(),0,0)";
|
|
db.DataAccessor.Execute(sql);
|
|
sql = "update pd_pdxms set zxbz=1,pdsj=GETDATE() from pd_ksxm where pd_pdxms.zxbz=0 and pd_pdxms.xmid=pd_ksxm.xmid and pd_ksxm.ksid=" + ks + " and pd_pdxms.pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql);
|
|
}
|
|
else
|
|
{
|
|
|
|
return;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
string sql_up = "update pd_pdxms set zxbz=2,zxsj=GETDATE() from pd_ksxm where pd_pdxms.zxbz=1 and pd_pdxms.xmid=pd_ksxm.xmid and pd_ksxm.ksid=" + ks + " and pd_pdxms.pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql_up);
|
|
sql_up = "update pd_kspdlb set zxbz=1,zxsj=getdate() where zxbz=0 and ksid=" + ks + " and pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql_up);
|
|
|
|
ITextMessage itm1 = prod1.CreateTextMessage();
|
|
itm1.Properties.SetString("ks", ks);
|
|
var pdmsg = new kstjMessage();
|
|
string sql_xm = "select xm,xb from pd_rylb where id=" + pdid;
|
|
string xm = "错误";
|
|
string xb = "错误";
|
|
var xmdr = db.DataAccessor.QueryDataTable(sql_xm);
|
|
if (xmdr.Rows.Count > 0)
|
|
{
|
|
xm = xmdr.Rows[0][0].ToString();
|
|
xb = xmdr.Rows[0][1].ToString() == "0" ? "男" : "女";
|
|
}
|
|
|
|
pdmsg.xm = xm + "(" + xb + ")";
|
|
pdmsg.pdid = int.Parse(pdid);
|
|
pdmsg.pdsj = DateTime.Now;
|
|
pdmsg.zxzt = 1;
|
|
itm1.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(pdmsg));
|
|
|
|
|
|
prod1.Send(itm1);
|
|
|
|
prod1 = null;
|
|
|
|
}
|
|
else
|
|
{
|
|
//dr.Close();
|
|
}
|
|
//ITextMessage itm = tprod.CreateTextMessage();
|
|
//string ttm = tm.ToString("0000000000");
|
|
//itm.Text = tm + "," + ksid;
|
|
//tprod.Send(itm, MsgDeliveryMode.Persistent, MsgPriority.Normal, TimeSpan.MinValue);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
EAS.Loggers.Logger.Info(ex.Message);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public string wctj(string text, string ksid)
|
|
{
|
|
connMQ();
|
|
//IMessageProducer prod1;
|
|
try
|
|
{
|
|
|
|
|
|
|
|
|
|
var tprod = session.CreateProducer(
|
|
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("kstj"));
|
|
ITextMessage itm = tprod.CreateTextMessage();
|
|
var db = new DbEntities();
|
|
string tm = int.Parse(text).ToString();
|
|
string ks = ksid;
|
|
string sql = "select id from pd_rylb where qtxtid='" + tm + "'";
|
|
string bkwc = "";
|
|
var dr = db.DataAccessor.QueryDataTable(sql);
|
|
if (dr.Rows.Count > 0)
|
|
{
|
|
string pdid = dr.Rows[0][0].ToString();
|
|
//dr.Close();
|
|
sql = "select zxbz from pd_kspdlb where pdid=" + pdid + " and ksid=" + ks;
|
|
DataTable dt = db.DataAccessor.QueryDataTable(sql);
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
string zxbz = dt.Rows[0][0].ToString();
|
|
if (zxbz == "0")
|
|
{
|
|
sql = "update pd_pdxms set zxbz=2,zxsj=GETDATE() from pd_ksxm where pd_pdxms.zxbz=1 and pd_ksxm.xmid=pd_pdxms.xmid and pd_ksxm.ksid=" + ks + " and pd_pdxms.pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql);
|
|
sql = "update pd_kspdlb set zxbz=1,zxsj=getdate() where zxbz=0 and ksid=" + ks + " and pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql);
|
|
}
|
|
else if (zxbz == "2")
|
|
{
|
|
bkwc = "完成";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
sql = "select count(1) from pd_pdxms,pd_ksxm where pd_pdxms.pdid=" + pdid + " and pd_ksxm.xmid=pd_pdxms.xmid and pd_ksxm.ksid=" + ks;
|
|
if (db.DataAccessor.QueryScalar(sql).ToString() != "0")
|
|
{
|
|
sql = "insert into pd_kspdlb(pdid,ksid,pdsj,zxbz,yjsysj) values(" + pdid + "," + ks + ",getdate(),0,0)";
|
|
db.DataAccessor.Execute(sql);
|
|
sql = "update pd_pdxms set zxbz=1,pdsj=GETDATE() from pd_ksxm where pd_pdxms.zxbz=0 and pd_ksxm.xmid=pd_pdxms.xmid and pd_ksxm.ksid=" + ks + " and pd_pdxms.pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql);
|
|
sql = "update pd_pdxms set zxbz=2,zxsj=GETDATE() from pd_ksxm where pd_pdxms.zxbz=1 and pd_ksxm.xmid=pd_pdxms.xmid and pd_ksxm.ksid=" + ks + " and pd_pdxms.pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql);
|
|
sql = "update pd_kspdlb set zxbz=1,zxsj=getdate() where zxbz=0 and ksid=" + ks + " and pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql);
|
|
}
|
|
else
|
|
{
|
|
bkwc = "完成";
|
|
}
|
|
}
|
|
|
|
//string sql_up = "update pd_pdxms set zxbz=3,wcsj=GETDATE() from pd_xm,pd_ksxm where pd_pdxms.zxbz=2 and pd_xm.id=pd_pdxms.xmid and pd_xm.id=pd_ksxm.xmid and pd_ksxm.ksid=" + ks + " and pd_pdxms.pdid=" + pdid;
|
|
string sql_up = "update pd_pdxms set zxbz=3,wcsj=GETDATE() from pd_ksxm where pd_pdxms.zxbz=2 and pd_ksxm.xmid=pd_pdxms.xmid and pd_ksxm.ksid=" + ks + " and pd_pdxms.pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql_up);
|
|
sql_up = "update pd_kspdlb set zxbz=2,wcsj=getdate() where zxbz=1 and ksid=" + ks + " and pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql_up);
|
|
|
|
ITextMessage itm1 = tprod.CreateTextMessage();
|
|
itm1.Properties.SetString("ks", ks);
|
|
var pdmsg = new kstjMessage();
|
|
string sql_xm = "select xm,xb from pd_rylb where id=" + pdid;
|
|
string xm = "错误";
|
|
string xb = "错误";
|
|
var xmdr = db.DataAccessor.QueryDataTable(sql_xm);
|
|
if (xmdr.Rows.Count > 0)
|
|
{
|
|
xm = xmdr.Rows[0][0].ToString();
|
|
xb = xmdr.Rows[0][1].ToString() == "0" ? "男" : "女";
|
|
}
|
|
// xmdr.Close();
|
|
pdmsg.xm = xm + "(" + xb + ")";
|
|
pdmsg.pdid = int.Parse(pdid);
|
|
pdmsg.pdsj = DateTime.Now;
|
|
pdmsg.zxzt = 2;
|
|
itm1.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(pdmsg));
|
|
tprod.Send(itm1);
|
|
|
|
tprod = null;
|
|
|
|
|
|
//if (bkwc == "完成")
|
|
//{
|
|
sql = @"select top 1 b.ksmc from pd_kspdlb a join pd_wlks b on a.ksid=b.id
|
|
where (a.zxbz=0 or a.zxbz=1) and b.isOpen=1 and a.pdid=" + pdid;
|
|
var dqksdt = db.DataAccessor.QueryDataTable(sql);
|
|
if (dqksdt.Rows.Count > 0)
|
|
{
|
|
return dqksdt.Rows[0][0].ToString();
|
|
}
|
|
else
|
|
{
|
|
string ksname = process(tm, ks);
|
|
return ksname;
|
|
}
|
|
|
|
//}
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
return "NO";
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
EAS.Loggers.Logger.Info(ex.Message);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
private static string process(string text, string yksid = "0")
|
|
{
|
|
//throw new NotImplementedException();
|
|
string ksname = null;
|
|
using (var db = new DbEntities())
|
|
{
|
|
// for (int xh = 0; xh < 10; xh++)
|
|
//{
|
|
string sql_pdryid = "select id,xb,khlx from pd_rylb where qtxtid='" + text + "'";
|
|
var ryiddr = db.DataAccessor.QueryDataTable(sql_pdryid);
|
|
bool ap = false;
|
|
if (ryiddr.Rows.Count > 0)
|
|
{
|
|
|
|
string id = ryiddr.Rows[0][0].ToString();//排队ID
|
|
int xb = Convert.ToInt32(ryiddr.Rows[0][1]);//性别
|
|
int khlx = (int)ryiddr.Rows[0]["khlx"];//客户类型
|
|
#region 新排队算法
|
|
string sql = "select top 1 ksid from pd_kspdlb where pdid=" + id + " and zxbz=2 order by wcsj desc";//判断上一个完成的科室
|
|
DataTable lastJCDT = db.DataAccessor.QueryDataTable(sql);
|
|
if (lastJCDT.Rows.Count > 0) //有上次科室信息
|
|
{
|
|
string jqid = "0";
|
|
sql = "select jq_id from pd_wlks where isOpen=1 and id=" + lastJCDT.Rows[0][0].ToString();
|
|
var dtjq = db.DataAccessor.QueryDataTable(sql);
|
|
if (dtjq.Rows.Count > 0)
|
|
{
|
|
jqid = dtjq.Rows[0][0].ToString();
|
|
}
|
|
sql = @"select distinct jq.* from pd_jianqu jq where id=" + jqid;//查询可用的检区
|
|
DataTable jqdt = db.DataAccessor.QueryDataTable(sql);
|
|
|
|
//这里可能有问题?
|
|
sql = @"select distinct jq.* from pd_ksxm ksxm join pd_pdxms pdxm on ksxm.xmid=pdxm.xmid
|
|
join pd_wlks ks on ks.id=ksxm.ksid and (ks.khlx=2 or ks.khlx=" + khlx + @") and ks.isOpen=1
|
|
join pd_jianqu jq on jq.id=ks.jq_id and (jq.khlx=2 or jq.khlx=" + khlx + @")
|
|
where pdxm.pdid=" + id + " and (ks.xb=2 or xb=" + xb + ") and ks.isOpen=1 and zxbz=0 and ks.id<>" + lastJCDT.Rows[0][0].ToString() + " order by jq.pdsx";//查询可用的检区
|
|
|
|
|
|
DataTable jqdt1 = db.DataAccessor.QueryDataTable(sql);
|
|
foreach (DataRow dr in jqdt1.Rows)
|
|
{
|
|
jqdt.Rows.Add(dr.ItemArray);
|
|
}
|
|
chulijq(db, jqdt, xb, id, ref ksname, ref ap, khlx);
|
|
}
|
|
else//无上次科室信息,相当于新体检
|
|
{
|
|
//原处理方式从排队区域开始处理
|
|
/*
|
|
sql = @"select distinct jq.* from pd_ksxm ksxm join pd_pdxms pdxm on ksxm.xmid=pdxm.xmid
|
|
join pd_wlks ks on ks.id=ksxm.ksid and (ks.khlx=2 or ks.khlx=" + khlx + @") and ks.isopen=1
|
|
join pd_jianqu jq on jq.id=ks.jq_id and (jq.khlx=2 or jq.khlx=" + khlx + @")
|
|
where pdxm.pdid=" + id + " and (ks.xb=2 or xb=" + xb + ") and zxbz=0 order by jq.pdsx";//查询可用的检区
|
|
DataTable jqdt = db.DataAccessor.QueryDataTable(sql);
|
|
chulijq(db, jqdt, xb, id, ref ksname, ref ap);
|
|
*/
|
|
//新处理方式:
|
|
//1找到当前排队人数最少的科室
|
|
//2安排病人到该科室排队
|
|
sql = @"select * from (
|
|
select ks.*,jq.pdsx jqpx,(select COUNT(1) from pd_kspdlb where ksid=ks.id and zxbz<>2) tj from pd_wlks ks join pd_jianqu jq on ks.jq_id=jq.id and (ks.khlx=2 or ks.khlx=" + khlx + @") and ks.isOpen=1
|
|
join pd_ksxm ksxm on ksxm.ksid=ks.id join pd_pdxms pdxm on pdxm.xmid=ksxm.xmid and pdxm.pdid=" + id + @" where (ks.xb=2 or xb=" + xb + @") and ks.isOpen=1 and zxbz=0 ) e
|
|
order by e.jqpx,e.pdsx,e.tj";
|
|
List<ks_pdsl> pdsls = new List<ks_pdsl>();
|
|
DataTable ksdt = db.DataAccessor.QueryDataTable(sql);
|
|
|
|
foreach (DataRow ksdr in ksdt.Rows)
|
|
{
|
|
string ksid = ksdr["id"].ToString();
|
|
int zsrs = (int)ksdr["zspdrs"];
|
|
int zdrs = (int)ksdr["zdpdrs"];
|
|
int pdsx = (int)ksdr["pdsx"];
|
|
int pdsl = (int)ksdr["tj"];
|
|
int jqpx = (int)ksdr["jqpx"];
|
|
pdsls.Add(new ks_pdsl
|
|
{
|
|
ksid = int.Parse(ksid),
|
|
pdcount = pdsl,
|
|
pdsx = pdsx,
|
|
zdrs = zdrs,
|
|
jqpx = jqpx,
|
|
zsrs = zsrs
|
|
});
|
|
}
|
|
var ks = pdsls.Where(t => t.zsrs > t.pdcount).OrderBy(t => t.jqpx).ThenBy(t => t.pdsx).FirstOrDefault();
|
|
if (ks != null)//如果有科室没有满足最少人数,处理最少人数
|
|
{
|
|
chuli(db, ks, id, xb, ref ksname, ref ap, khlx);
|
|
}
|
|
else
|
|
{
|
|
ks = pdsls.Where(t => t.zdrs > t.pdcount).OrderBy(t => t.pdcount).ThenBy(t => t.jqpx).ThenBy(t => t.pdsx).FirstOrDefault();
|
|
if (ks != null)
|
|
{
|
|
chuli(db, ks, id, xb, ref ksname, ref ap, khlx);
|
|
}
|
|
else
|
|
{
|
|
ks = pdsls.OrderBy(t => t.pdcount).ThenBy(t => t.jqpx).ThenBy(t => t.pdsx).FirstOrDefault();
|
|
if (ks != null)
|
|
{
|
|
chuli(db, ks, id, xb, ref ksname, ref ap, khlx);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
if (!ap)
|
|
{
|
|
/*
|
|
sql = @"select distinct jq.* from pd_ksxm ksxm join pd_pdxms pdxm on ksxm.xmid=pdxm.xmid
|
|
join pd_wlks ks on ks.id=ksxm.ksid and (ks.khlx=2 or ks.khlx=" + khlx + @") and ks.isopen=1
|
|
join pd_jianqu jq on jq.id=ks.jq_id and (jq.khlx=2 or jq.khlx=" + khlx + @")
|
|
where pdxm.pdid=" + id + " and (ks.xb=2 or xb=" + xb + ") and zxbz=0 order by jq.pdsx";//查询可用的检区
|
|
DataTable jqdt = db.DataAccessor.QueryDataTable(sql);
|
|
if (jqdt.Rows.Count > 0)
|
|
{
|
|
string jqid = jqdt.Rows[0]["id"].ToString();
|
|
sql = @"
|
|
select distinct ks.*,(select COUNT(1) from pd_kspdlb pdlb where pdlb.zxbz<>2 and pdlb.ksid=ks.id ) pdsl
|
|
from pd_ksxm ksxm join pd_pdxms pdxm on ksxm.xmid=pdxm.xmid
|
|
join pd_wlks ks on ks.id=ksxm.ksid and ks.isopen=1
|
|
|
|
where pdxm.pdid=" + id + " and (ks.xb=2 or xb=" + xb + ") and pdxm.zxbz=0 and ks.jq_id=" + jqid + " order by ks.pdsx";
|
|
|
|
DataTable ksdt = db.DataAccessor.QueryDataTable(sql);
|
|
if (ksdt.Rows.Count > 0)
|
|
{
|
|
sql = @"
|
|
select xm.id,xm.qzxm from pd_ksxm ksxm join pd_xm xm on ksxm.xmid=xm.id
|
|
join pd_pdxms pdxm on pdxm.xmid=xm.id and pdxm.pdid=" + id + @"
|
|
where ksxm.ksid=" + ksdt.Rows[0]["id"] + " and qzxm<>0 and pdxm.zxbz=0";//判断有没有前置项目
|
|
DataTable qzxmdt = db.DataAccessor.QueryDataTable(sql);
|
|
if (qzxmdt.Rows.Count == 0)//如果没有前置项目
|
|
{
|
|
ksname = sendpd(id, ksdt.Rows[0]["id"].ToString());
|
|
ap = true;
|
|
}
|
|
else
|
|
{
|
|
|
|
int xmid = (int)qzxmdt.Rows[0][0];
|
|
string qzid = qzxmdt.Rows[0][1] == System.DBNull.Value ? null : qzxmdt.Rows[0][1].ToString();
|
|
|
|
//dr_pdxm.Close();
|
|
|
|
while (true)
|
|
{
|
|
if (!string.IsNullOrEmpty(qzid) && qzid != "0")
|
|
{
|
|
sql = "select id,qzxm from pd_xm where id=" + qzid;
|
|
DataTable nqzxmdt = db.DataAccessor.QueryDataTable(sql);
|
|
if (nqzxmdt.Rows.Count > 0)
|
|
{
|
|
xmid = (int)nqzxmdt.Rows[0][0];
|
|
qzid = nqzxmdt.Rows[0][1] == System.DBNull.Value ? null : nqzxmdt.Rows[0][1].ToString();
|
|
}
|
|
// dr_pdxm.Close();
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
string sql_xmks = "select ksid from pd_ksxm,pd_wlks where xmid =" + xmid + " and pd_ksxm.ksid=pd_wlks.id and (pd_wlks.xb=2 or pd_wlks.xb=" + xb + ") and pd_wlks.isopen=1";
|
|
var qzxmksdt = db.DataAccessor.QueryDataSet(sql_xmks).Tables[0];
|
|
if (qzxmksdt.Rows.Count > 0)
|
|
{
|
|
ksname = sendpd(id, qzxmksdt.Rows[0][0].ToString());
|
|
ap = true;
|
|
|
|
}
|
|
}
|
|
}
|
|
}*/
|
|
sql = @"select * from (
|
|
select ks.*,jq.pdsx jqpx,(select COUNT(1) from pd_kspdlb where ksid=ks.id and zxbz<>2) tj from pd_wlks ks join pd_jianqu jq on ks.jq_id=jq.id and (ks.khlx=2 or ks.khlx=" + khlx + @") and ks.isopen=1
|
|
join pd_ksxm ksxm on ksxm.ksid=ks.id join pd_pdxms pdxm on pdxm.xmid=ksxm.xmid and pdxm.pdid=" + id + @" where (ks.xb=2 or xb=" + xb + @") and zxbz=0 ) e
|
|
order by e.tj,e.jqpx,e.pdsx";
|
|
List<ks_pdsl> pdsls = new List<ks_pdsl>();
|
|
DataTable ksdt = db.DataAccessor.QueryDataTable(sql);
|
|
|
|
foreach (DataRow ksdr in ksdt.Rows)
|
|
{
|
|
string ksid = ksdr["id"].ToString();
|
|
int zsrs = (int)ksdr["zspdrs"];
|
|
int zdrs = (int)ksdr["zdpdrs"];
|
|
int pdsx = (int)ksdr["pdsx"];
|
|
int pdsl = (int)ksdr["tj"];
|
|
int jqpx = (int)ksdr["jqpx"];
|
|
pdsls.Add(new ks_pdsl
|
|
{
|
|
ksid = int.Parse(ksid),
|
|
pdcount = pdsl,
|
|
pdsx = pdsx,
|
|
zdrs = zdrs,
|
|
jqpx = jqpx,
|
|
zsrs = zsrs
|
|
});
|
|
}
|
|
var ks = pdsls.Where(t => t.zsrs > t.pdcount).OrderBy(t => t.jqpx).ThenBy(t => t.pdsx).FirstOrDefault();
|
|
if (ks != null)//如果有科室没有满足最少人数,处理最少人数
|
|
{
|
|
chuli(db, ks, id, xb, ref ksname, ref ap, khlx);
|
|
}
|
|
else
|
|
{
|
|
ks = pdsls.Where(t => t.zdrs > t.pdcount).OrderBy(t => t.pdcount).ThenBy(t => t.jqpx).ThenBy(t => t.pdsx).FirstOrDefault();
|
|
if (ks != null)
|
|
{
|
|
chuli(db, ks, id, xb, ref ksname, ref ap, khlx);
|
|
}
|
|
else
|
|
{
|
|
ks = pdsls.OrderBy(t => t.pdcount).ThenBy(t => t.jqpx).ThenBy(t => t.pdsx).FirstOrDefault();
|
|
if (ks != null)
|
|
{
|
|
chuli(db, ks, id, xb, ref ksname, ref ap, khlx);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// break;
|
|
}
|
|
#endregion
|
|
#region 原来排队算法
|
|
/*
|
|
//ryiddr.Close();
|
|
string sql = @"select pd_xm.id,pd_xm.qzxm from pd_xm,pd_pdxms,pd_ksxm,pd_wlks
|
|
where pd_xm.id=pd_pdxms.xmid and pd_xm.id=pd_ksxm.xmid and pd_ksxm.ksid=pd_wlks.id and pd_wlks.isOpen=1
|
|
and pd_pdxms.pdid=" + id + " and pd_pdxms.zxbz=0 order by pd_xm.xmqz desc ";
|
|
var dr_pdxm = db.DataAccessor.QueryDataTable(sql);
|
|
int xmid = 0;
|
|
string qzid = null;
|
|
bool ap = false;
|
|
string kspdsj = @"select SUM(isnull(yjsysj,0)) pdsj,pd_wlks.id ksid from pd_wlks left join pd_kspdlb on pd_kspdlb.ksid=pd_wlks.id and (zxbz=0 or zxbz=1)
|
|
where (pd_wlks.isOpen=1) and (pd_wlks.xb=2 or pd_wlks.xb=" + xb + ")" +
|
|
" group by pd_wlks.id,pd_wlks.zcpdsj,pd_wlks.zdpdrs" +
|
|
" having pd_wlks.zcpdsj>SUM(isnull(yjsysj,0)) and pd_wlks.zdpdrs>COUNT(1)" +
|
|
" order by SUM(yjsysj)";
|
|
var pdsjdt = db.DataAccessor.QueryDataSet(kspdsj).Tables[0];
|
|
for (int i = 0; i < dr_pdxm.Rows.Count; i++)
|
|
{
|
|
xmid = (int)dr_pdxm.Rows[i][0];
|
|
qzid = dr_pdxm.Rows[i][1] == System.DBNull.Value ? null : dr_pdxm.Rows[i][1].ToString();
|
|
|
|
//dr_pdxm.Close();
|
|
|
|
while (true)
|
|
{
|
|
if (!string.IsNullOrEmpty(qzid) && qzid != "0")
|
|
{
|
|
sql = "select id,qzxm from pd_xm where id=" + qzid;
|
|
var dr_pdxm1 = db.DataAccessor.QueryDataTable(sql);
|
|
if (dr_pdxm1.Rows.Count > 0)
|
|
{
|
|
xmid = (int)dr_pdxm1.Rows[0][0];
|
|
qzid = dr_pdxm1.Rows[0][1] == System.DBNull.Value ? null : dr_pdxm1.Rows[0][1].ToString();
|
|
}
|
|
// dr_pdxm.Close();
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
string sql_xmks = "select ksid from pd_ksxm where xmid=" + xmid;
|
|
var qzxmksdt = db.DataAccessor.QueryDataSet(sql_xmks).Tables[0];
|
|
int ksid = 0;
|
|
int minsj = 0;
|
|
|
|
foreach (DataRow qzxmks in qzxmksdt.Rows)
|
|
{
|
|
DataRow[] drs = pdsjdt.Select("ksid=" + qzxmks[0].ToString());
|
|
if (drs.Count() == 0)
|
|
{
|
|
// sendpd(id, qzxmks[0].ToString());
|
|
//ap = true;
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
if (ksid == 0)
|
|
{
|
|
ksid = int.Parse(drs[0]["ksid"].ToString());
|
|
minsj = int.Parse(drs[0]["pdsj"].ToString());
|
|
}
|
|
else
|
|
{
|
|
if (minsj > int.Parse(drs[0]["pdsj"].ToString()))
|
|
{
|
|
ksid = int.Parse(drs[0]["ksid"].ToString());
|
|
minsj = int.Parse(drs[0]["pdsj"].ToString());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ((!ap) && ksid != 0)
|
|
{
|
|
ksname = sendpd(id, ksid.ToString());
|
|
ap = true;
|
|
break;
|
|
}
|
|
}
|
|
if (!ap && dr_pdxm.Rows.Count > 0)
|
|
{
|
|
|
|
xmid = (int)dr_pdxm.Rows[0][0];
|
|
qzid = dr_pdxm.Rows[0][1] == System.DBNull.Value ? null : dr_pdxm.Rows[0][1].ToString();
|
|
|
|
//dr_pdxm.Close();
|
|
|
|
while (true)
|
|
{
|
|
if (!string.IsNullOrEmpty(qzid) && qzid != "0")
|
|
{
|
|
sql = "select id,qzxm from pd_xm where id=" + qzid;
|
|
dr_pdxm = db.DataAccessor.QueryDataTable(sql);
|
|
if (dr_pdxm.Rows.Count > 0)
|
|
{
|
|
xmid = (int)dr_pdxm.Rows[0][0];
|
|
qzid = dr_pdxm.Rows[0][1] == System.DBNull.Value ? null : dr_pdxm.Rows[0][1].ToString();
|
|
}
|
|
// dr_pdxm.Close();
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
string sql_xmks = "select ksid from pd_ksxm,pd_wlks where xmid =" + xmid + " and pd_ksxm.ksid=pd_wlks.id and (pd_wlks.xb=2 or pd_wlks.xb=" + xb + ")";
|
|
var qzxmksdt = db.DataAccessor.QueryDataSet(sql_xmks).Tables[0];
|
|
/*
|
|
string xmids = "";
|
|
for(int i=0;i<dr_pdxm.Rows.Count;i++)
|
|
{
|
|
xmids += dr_pdxm.Rows[i][0].ToString();
|
|
}
|
|
string sql_xmks = "select ksid from pd_ksxm,pd_wlks where xmid in(" + xmid+ ") and pd_ksxm.ksid=pd_wlks.id and (pd_wlks.xb=2 or pd_wlks.xb=" + xb + ")";
|
|
var qzxmksdt = db.DataAccessor.QueryDataSet(sql_xmks).Tables[0];
|
|
var a = qzxmksdt.AsEnumerable();
|
|
var b = pdsjdt.AsEnumerable();
|
|
// var c = a.Join(b, t => t["ksid"], p => p["ksid"], (t, p)=> new { ksid=t["ksid"].ToString()}).ToList();
|
|
if (qzxmksdt.Rows.Count > 0)
|
|
{
|
|
ksname = sendpd(id, qzxmksdt.Rows[0][0].ToString());
|
|
}
|
|
|
|
}*/
|
|
#endregion
|
|
|
|
// else
|
|
//{
|
|
//ryiddr.Close();
|
|
//Thread.Sleep(100);
|
|
//}
|
|
//}
|
|
}
|
|
return ksname;
|
|
}
|
|
|
|
private static void chulijq(DbEntities db, DataTable jqdt, int xb, string id, ref string ksname, ref bool ap, int khlx)
|
|
{
|
|
string sql = "";
|
|
foreach (DataRow jqrow in jqdt.Rows)
|
|
{
|
|
if (!ap)
|
|
{
|
|
string jqid = jqrow["id"].ToString();
|
|
sql = @"
|
|
select distinct ks.*,(select COUNT(1) from pd_kspdlb pdlb where pdlb.zxbz<>2 and pdlb.ksid=ks.id ) pdsl
|
|
from pd_ksxm ksxm join pd_pdxms pdxm on ksxm.xmid=pdxm.xmid
|
|
join pd_wlks ks on ks.id=ksxm.ksid and ks.isOpen=1 and (ks.khlx=2 or ks.khlx=" + khlx + @")
|
|
where pdxm.pdid=" + id + " and (ks.xb=2 or xb=" + xb + ") and ks.isOpen=1 and pdxm.zxbz=0 and ks.jq_id=" + jqid + " order by ks.pdsx";
|
|
|
|
List<ks_pdsl> pdsls = new List<ks_pdsl>();
|
|
DataTable ksdt = db.DataAccessor.QueryDataTable(sql);
|
|
|
|
foreach (DataRow ksdr in ksdt.Rows)
|
|
{
|
|
string ksid = ksdr["id"].ToString();
|
|
int zsrs = (int)ksdr["zspdrs"];
|
|
int zdrs = (int)ksdr["zdpdrs"];
|
|
int pdsx = (int)ksdr["pdsx"];
|
|
int pdsl = (int)ksdr["pdsl"];
|
|
pdsls.Add(new ks_pdsl
|
|
{
|
|
ksid = int.Parse(ksid),
|
|
pdcount = pdsl,
|
|
pdsx = pdsx,
|
|
zdrs = zdrs,
|
|
zsrs = zsrs
|
|
});
|
|
}
|
|
var ks = pdsls.Where(t => t.zsrs > t.pdcount).OrderBy(t => t.pdcount).ThenBy(t => t.pdsx).FirstOrDefault();
|
|
if (ks != null)//如果有科室没有满足最少人数,处理最少人数
|
|
{
|
|
chuli(db, ks, id, xb, ref ksname, ref ap, khlx);
|
|
}
|
|
else
|
|
{
|
|
ks = pdsls.Where(t => t.zdrs > t.pdcount).OrderBy(t => t.pdcount).FirstOrDefault();
|
|
if (ks == null)
|
|
continue;
|
|
chuli(db, ks, id, xb, ref ksname, ref ap, khlx);
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void chuli(DbEntities db, ks_pdsl ks, string id, int xb, ref string ksname, ref bool ap, int khlx)
|
|
{
|
|
string sql = "";
|
|
sql = @"
|
|
select xm.id,xm.qzxm from pd_ksxm ksxm join pd_xm xm on ksxm.xmid=xm.id
|
|
join pd_pdxms pdxm on pdxm.xmid=xm.id and pdxm.pdid=" + id + @"
|
|
where ksxm.ksid=" + ks.ksid + " and qzxm<>0 and pdxm.zxbz=0";//判断有没有前置项目
|
|
DataTable qzxmdt = db.DataAccessor.QueryDataTable(sql);
|
|
if (qzxmdt.Rows.Count == 0)//如果没有前置项目
|
|
{
|
|
ksname = sendpd(id, ks.ksid.ToString());
|
|
ap = true;
|
|
}
|
|
else
|
|
{
|
|
|
|
int xmid = (int)qzxmdt.Rows[0][0];
|
|
string qzid = qzxmdt.Rows[0][1] == System.DBNull.Value ? null : qzxmdt.Rows[0][1].ToString();
|
|
|
|
//dr_pdxm.Close();
|
|
|
|
while (true)
|
|
{
|
|
if (!string.IsNullOrEmpty(qzid) && qzid != "0")
|
|
{
|
|
sql = "select id,qzxm from pd_xm where id=" + qzid;
|
|
DataTable nqzxmdt = db.DataAccessor.QueryDataTable(sql);
|
|
if (nqzxmdt.Rows.Count > 0)
|
|
{
|
|
xmid = (int)nqzxmdt.Rows[0][0];
|
|
qzid = nqzxmdt.Rows[0][1] == System.DBNull.Value ? null : nqzxmdt.Rows[0][1].ToString();
|
|
}
|
|
// dr_pdxm.Close();
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
string sql_xmks = "select ksid from pd_ksxm,pd_wlks where xmid =" + xmid + " and pd_wlks.isOpen=1 and pd_ksxm.ksid=pd_wlks.id and (pd_wlks.xb=2 or pd_wlks.xb=" + xb + ") and (pd_wlks.khlx=2 or pd_wlks.khxl=" + khlx + ") order by pd_wlks.pdsx";
|
|
var qzxmksdt = db.DataAccessor.QueryDataSet(sql_xmks).Tables[0];
|
|
if (qzxmksdt.Rows.Count > 0)
|
|
{
|
|
ksname = sendpd(id, qzxmksdt.Rows[0][0].ToString());
|
|
ap = true;
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
private static string sendpd(string id, string ksid)
|
|
{
|
|
//throw new NotImplementedException();
|
|
var db = new DbEntities();
|
|
|
|
|
|
// string sql_pdsj = @"select SUM(pd_xm.xmhs) from pd_rylb,pd_pdxms,pd_wlks,pd_ksxm,pd_xm
|
|
//where pd_rylb.id=pd_pdxms.pdid and
|
|
//pd_pdxms.xmid=pd_xm.id and pd_xm.id=pd_ksxm.xmid
|
|
//and pd_ksxm.ksid=pd_wlks.id and pd_wlks.id=" + ksid + " and pd_rylb.id=" + id;
|
|
// var ls_sj = db.DataAccessor.QueryScalar(sql_pdsj);
|
|
// if (ls_sj == DBNull.Value)
|
|
// return "";
|
|
// string pdsj = ls_sj.ToString();
|
|
|
|
string sql_update = @"update pd_pdxms set zxbz=1 ,pdsj=getdate() from pd_rylb,pd_wlks,pd_ksxm,pd_xm
|
|
where pd_rylb.id = pd_pdxms.pdid and pd_pdxms.zxbz=0 and
|
|
pd_pdxms.xmid = pd_xm.id and pd_xm.id = pd_ksxm.xmid
|
|
and pd_ksxm.ksid = pd_wlks.id and pd_wlks.id=" + ksid + " and pd_rylb.id=" + id;
|
|
db.DataAccessor.Execute(sql_update);
|
|
string sql_insert = @"INSERT INTO [pd_kspdlb]
|
|
([pdid]
|
|
,[ksid]
|
|
,[pdsj]
|
|
,[zxbz]
|
|
,[yjsysj]
|
|
)
|
|
VALUES
|
|
(@pdid
|
|
,@ksid
|
|
,@pdsj
|
|
,@zxbz
|
|
,@yjsysj
|
|
|
|
)
|
|
|
|
";
|
|
EAS.Data.Access.Parameter[] paras = {new EAS.Data.Access.Parameter ("pdid",SqlDbType.Int),
|
|
new EAS.Data.Access.Parameter ("ksid",SqlDbType.Int),
|
|
new EAS.Data.Access.Parameter ("pdsj",DbType.DateTime),
|
|
new EAS.Data.Access.Parameter ("zxbz",SqlDbType.TinyInt),
|
|
new EAS.Data.Access.Parameter ("yjsysj",SqlDbType.Int)
|
|
};
|
|
paras[0].Value = id;
|
|
paras[1].Value = ksid;
|
|
paras[2].Value = DateTime.Now;
|
|
paras[3].Value = 0;
|
|
paras[4].Value = 15;
|
|
EAS.Data.Access.ParameterCollection paracoll = new EAS.Data.Access.ParameterCollection();
|
|
paracoll.AddRange(paras);
|
|
db.DataAccessor.Execute(sql_insert, paracoll);
|
|
|
|
connMQ();
|
|
IMessageProducer prod1;
|
|
|
|
prod1 = session.CreateProducer(
|
|
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("kstj"));
|
|
ITextMessage itm = prod1.CreateTextMessage();
|
|
itm.Properties.SetString("ks", ksid);
|
|
var pdmsg = new kstjMessage();
|
|
string sql_xm = "select xm,xb from pd_rylb where id=" + id;
|
|
string xm = "错误";
|
|
string xb = "错误";
|
|
var xmdr = db.DataAccessor.QueryDataTable(sql_xm);
|
|
if (xmdr.Rows.Count > 0)
|
|
{
|
|
xm = xmdr.Rows[0][0].ToString();
|
|
xb = xmdr.Rows[0][1].ToString() == "0" ? "男" : "女";
|
|
}
|
|
//xmdr.Close();
|
|
pdmsg.xm = xm + "(" + xb + ")";
|
|
pdmsg.pdid = int.Parse(id);
|
|
pdmsg.pdsj = DateTime.Now;
|
|
pdmsg.zxzt = 0;
|
|
itm.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(pdmsg));
|
|
prod1.Send(itm);
|
|
string kssql = "select ksmc from pd_wlks where id=" + ksid;
|
|
|
|
prod1 = null;
|
|
|
|
|
|
return db.DataAccessor.QueryScalar(kssql).ToString();
|
|
}
|
|
|
|
public void CXFP(string id, string ksid, string xm, DateTime time, string xb)
|
|
{
|
|
var db = new DbEntities();
|
|
connMQ();
|
|
IMessageProducer prod1;
|
|
|
|
prod1 = session.CreateProducer(
|
|
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("kstj"));
|
|
ITextMessage itm = prod1.CreateTextMessage();
|
|
itm.Properties.SetString("ks", ksid);
|
|
var pdmsg = new kstjMessage();
|
|
//string sql_xm = "select xm from pd_rylb where id=" + id;
|
|
//string xm = "错误";
|
|
//var xmdr = db.DataAccessor.QueryDataTable(sql_xm);
|
|
//if (xmdr.Rows.Count > 0)
|
|
//{
|
|
// xm = xmdr.Rows[0][0].ToString();
|
|
//}
|
|
//xmdr.Close();
|
|
pdmsg.xm = xm + "(" + xb + ")";
|
|
pdmsg.pdid = int.Parse(id);
|
|
pdmsg.pdsj = time;
|
|
pdmsg.zxzt = 0;
|
|
itm.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(pdmsg));
|
|
prod1.Send(itm);
|
|
prod1 = null;
|
|
}
|
|
|
|
public OperationResult addlouceng(Pd_louceng lc)
|
|
{
|
|
|
|
//throw new NotImplementedException();
|
|
OperationResult or = new OperationResult();
|
|
var db = new DbEntities();
|
|
try
|
|
{
|
|
if (lc.Id == 0)
|
|
{
|
|
lc.State = 1;
|
|
db.Pd_louceng.Insert(lc);
|
|
or.State = 1;
|
|
or.Message = "添加成功!";
|
|
}
|
|
else
|
|
{
|
|
var ylc = db.Pd_louceng.FirstOrDefault(t => t.Id == lc.Id);
|
|
if (ylc == null)
|
|
{
|
|
or.State = 0;
|
|
or.Message = "修改失败,没有找到要修改的数据!";
|
|
}
|
|
else
|
|
{
|
|
ylc.Lcmc = lc.Lcmc;
|
|
ylc.Bz = lc.Bz;
|
|
db.Pd_louceng.Update(ylc);
|
|
or.State = 1;
|
|
or.Message = "修改成功!";
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
or.State = 0;
|
|
or.Message = ex.Message;
|
|
}
|
|
return or;
|
|
}
|
|
|
|
public List<Pd_louceng> getLouceng(bool v)
|
|
{
|
|
var db = new DbEntities();
|
|
|
|
//throw new NotImplementedException();
|
|
var lclist = db.Pd_louceng.Where(t => 1 == 1);
|
|
if (!v)
|
|
{
|
|
lclist = lclist.Where(t => t.State == 1);
|
|
}
|
|
return lclist.ToList();
|
|
}
|
|
|
|
public OperationResult deleteLouCeng(int lcid)
|
|
{
|
|
OperationResult or = new OperationResult();
|
|
var db = new DbEntities();
|
|
//throw new NotImplementedException();
|
|
var ylc = db.Pd_louceng.FirstOrDefault(t => t.Id == lcid);
|
|
if (ylc == null)
|
|
{
|
|
or.State = 0;
|
|
or.Message = "删除失败,没有找到要删除的数据!";
|
|
}
|
|
else
|
|
{
|
|
ylc.State = 0;
|
|
db.Pd_louceng.Update(ylc);
|
|
or.State = 1;
|
|
or.Message = "删除成功!";
|
|
}
|
|
return or;
|
|
}
|
|
|
|
public List<pd_jianqu> getJianqulist(bool v)
|
|
{
|
|
//throw new NotImplementedException();
|
|
var db = new DbEntities();
|
|
var jqlist = db.pd_jianqu.Where(t => 1 == 1);
|
|
if (!v)
|
|
{
|
|
jqlist = jqlist.Where(t => t.state == 1);
|
|
|
|
}
|
|
return jqlist.ToList();
|
|
}
|
|
|
|
public OperationResult addJianQu(pd_jianqu jq)
|
|
{
|
|
//throw new NotImplementedException();
|
|
OperationResult or = new OperationResult();
|
|
try
|
|
{
|
|
var db = new DbEntities();
|
|
if (jq.id == 0)
|
|
{
|
|
jq.state = 1;
|
|
db.pd_jianqu.Insert(jq);
|
|
or.State = 1;
|
|
or.Message = "添加成功!";
|
|
}
|
|
else
|
|
{
|
|
var yjq = db.pd_jianqu.FirstOrDefault(t => t.id == jq.id);
|
|
if (yjq == null)
|
|
{
|
|
or.State = 0;
|
|
or.Message = "修改失败,没有找到要修改的数据!";
|
|
}
|
|
else
|
|
{
|
|
yjq.jqmc = jq.jqmc;
|
|
yjq.jqbz = jq.jqbz;
|
|
yjq.pdsx = jq.pdsx;
|
|
yjq.khlx = jq.khlx;
|
|
db.pd_jianqu.Update(yjq);
|
|
or.State = 1;
|
|
or.Message = "修改成功!";
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
or.State = 0;
|
|
or.Message = ex.Message;
|
|
}
|
|
return or;
|
|
}
|
|
|
|
public OperationResult delJianQu(int jqid)
|
|
{
|
|
OperationResult or = new OperationResult();
|
|
var db = new DbEntities();
|
|
//throw new NotImplementedException();
|
|
var ylc = db.pd_jianqu.FirstOrDefault(t => t.id == jqid);
|
|
if (ylc == null)
|
|
{
|
|
or.State = 0;
|
|
or.Message = "删除失败,没有找到要删除的数据!";
|
|
}
|
|
else
|
|
{
|
|
ylc.state = 0;
|
|
db.pd_jianqu.Update(ylc);
|
|
or.State = 1;
|
|
or.Message = "删除成功!";
|
|
}
|
|
return or;
|
|
}
|
|
|
|
public void uploadbj(string v1, byte[] v2)
|
|
{
|
|
//throw new NotImplementedException();
|
|
string path = AppDomain.CurrentDomain.BaseDirectory;
|
|
path += "bjbj\\";
|
|
if (!Directory.Exists(path))
|
|
Directory.CreateDirectory(path);
|
|
path += v1 + ".jpg";
|
|
FileStream fs = new FileStream(path, FileMode.Create);
|
|
fs.Write(v2, 0, v2.Count());
|
|
fs.Close();
|
|
}
|
|
public byte[] getbj(string v1)
|
|
{
|
|
string path = AppDomain.CurrentDomain.BaseDirectory;
|
|
path += "bjbj\\";
|
|
if (!Directory.Exists(path))
|
|
Directory.CreateDirectory(path);
|
|
path += v1 + ".jpg";
|
|
if (File.Exists(path))
|
|
{
|
|
FileStream fs = new FileStream(path, FileMode.Open);
|
|
byte[] bs = new byte[fs.Length];
|
|
fs.Read(bs, 0, bs.Count());
|
|
fs.Close();
|
|
return bs;
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public void updateKs(img_ks curr_ks)
|
|
{
|
|
//throw new NotImplementedException();
|
|
var db = new DbEntities();
|
|
var ks = db.pd_wlks.FirstOrDefault(t => t.id == curr_ks.id);
|
|
ks.img_h = curr_ks.img_h;
|
|
ks.img_w = curr_ks.img_w;
|
|
ks.img_x = curr_ks.img_x;
|
|
ks.img_y = curr_ks.img_y;
|
|
db.pd_wlks.Update(ks);
|
|
}
|
|
|
|
public int getkspdrs(int id)
|
|
{
|
|
//throw new NotImplementedException();
|
|
string sql = "select count(1) from pd_kspdlb where ksid=" + id + " and zxbz<>2";
|
|
var db = new DbEntities();
|
|
var dt = db.DataAccessor.QueryDataTable(sql);
|
|
return (int)dt.Rows[0][0];
|
|
}
|
|
|
|
public DataSet getkspdlb(int id)
|
|
{
|
|
var db = new DbEntities();
|
|
//throw new NotImplementedException();
|
|
string sql = @"select a.txm xm,a.qtxtid tmh,case a.xb when 1 then '女' else '男' end xb,b.pdsj
|
|
,DATEDIFF(MI,b.pdsj,getdate()) ddsj,'' jx,a.id,a.nl
|
|
from pd_rylb a,pd_kspdlb b
|
|
where a.id=b.pdid and b.zxbz<>2 and b.ksid=" + id + " order by b.pdsj";
|
|
DataTable dt = db.DataAccessor.QueryDataTable(sql);
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
sql = @"select c.xmmc from pd_pdxms a,pd_ksxm b ,pd_xm c where a.pdid=" + dr["id"].ToString() + @"
|
|
and a.xmid=b.xmid and b.xmid=c.id and b.ksid=" + id;
|
|
var xmdt = db.DataAccessor.QueryDataTable(sql);
|
|
foreach (DataRow xmdr in xmdt.Rows)
|
|
{
|
|
dr["jx"] = dr["jx"].ToString() + xmdr["xmmc"].ToString() + ",";
|
|
|
|
}
|
|
dr["jx"] = dr["jx"].ToString().Remove(dr["jx"].ToString().Length - 1);
|
|
}
|
|
//DataSet ds = new DataSet();
|
|
//ds.Tables.Add(dt);
|
|
|
|
return dt.DataSet;
|
|
|
|
}
|
|
|
|
public DataSet getKHPDXX(string text)
|
|
{
|
|
//throw new NotImplementedException();
|
|
string sql = @"select a.txm xm,a.qtxtid tmh,b.jqmc jq,d.ksmc ks,f.xmmc jx
|
|
,case e.zxbz when 3 then '完成' when 0 then '未检' else '排队' end zt,case a.xb when 1 then '女' else '男' end xb
|
|
,g.xmmc xjxm,f.id xmid,a.xb xbid,a.id pdid
|
|
from pd_rylb a join
|
|
pd_pdxms e on a.id=e.pdid join
|
|
pd_ksxm c on e.xmid=c.xmid join
|
|
pd_wlks d on c.ksid=d.id join
|
|
pd_jianqu b on b.id=d.jq_id join
|
|
pd_xm f on f.id=c.xmid left join
|
|
pd_xm g on f.qzxm=g.id
|
|
where
|
|
(d.xb=2 or d.xb=a.xb) and d.isOpen=1
|
|
and a.qtxtid='" + text + "'";
|
|
var db = new DbEntities();
|
|
return db.DataAccessor.QueryDataSet(sql);
|
|
}
|
|
|
|
public DataSet getKFPKS(string xmid, string xb)
|
|
{
|
|
// throw new NotImplementedException();
|
|
string sql = @"select a.ksmc fp_ks,b.jqmc fp_jq,(select COUNT(1) pdrs from pd_kspdlb where ksid=a.id and zxbz<>2) pdrs ,a.id from pd_wlks a,pd_jianqu b,pd_ksxm c
|
|
where a.id=c.ksid and a.jq_id=b.id and a.isOpen=1
|
|
and (a.xb=2 or a.xb=" + xb + ") and c.xmid=" + xmid;
|
|
return new DbEntities().DataAccessor.QueryDataSet(sql);
|
|
}
|
|
|
|
public void delFQ(string tm, string zhbm)
|
|
{
|
|
connMQ();
|
|
IMessageProducer prod1;
|
|
|
|
prod1 = session.CreateProducer(
|
|
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("kstj"));
|
|
|
|
var db = new DbEntities();
|
|
|
|
string sql = "select id from pd_rylb where qtxtid='" + tm + "'";
|
|
DataTable dt = db.DataAccessor.QueryDataTable(sql);
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
string pdid = dt.Rows[0][0].ToString();
|
|
sql = "select xmid from pd_pdxms where pdid=" + pdid + " and zxbz!=3 and xmid in (select xmid from pd_qtxtxmdy where qtxtxmid=" + zhbm + ")";
|
|
DataTable dt1 = db.DataAccessor.QueryDataTable(sql);
|
|
if (dt1.Rows.Count > 0)
|
|
{
|
|
string xmid = dt1.Rows[0][0].ToString();
|
|
sql = "delete from pd_pdxms where pdid=" + pdid + " and xmid in (select xmid from pd_qtxtxmdy where qtxtxmid=" + zhbm + ")";
|
|
db.DataAccessor.Execute(sql);
|
|
|
|
sql = "select ksid from pd_kspdlb where pdid=" + pdid + " and zxbz!=2 and ksid in(select ksid from pd_ksxm where xmid=" + xmid + ") ";
|
|
DataTable dt2 = db.DataAccessor.QueryDataTable(sql);
|
|
if (dt2.Rows.Count > 0)
|
|
{
|
|
string ksid = dt2.Rows[0][0].ToString();
|
|
|
|
sql = "select * from pd_ksxm where xmid in (select xmid from pd_pdxms where pdid = " + pdid + ") and ksid = " + ksid;
|
|
DataTable dt3 = db.DataAccessor.QueryDataTable(sql);
|
|
if (dt3.Rows.Count > 0)
|
|
{
|
|
prod1 = null;
|
|
}
|
|
else
|
|
{
|
|
ITextMessage im1 = prod1.CreateTextMessage();
|
|
im1.Properties.SetString("ks", ksid);
|
|
var ksm = new kstjMessage();
|
|
string sql_xm1 = "select xm,xb from pd_rylb where id=" + pdid;
|
|
string xm1 = "错误";
|
|
string xb1 = "错误";
|
|
var xmdr1 = db.DataAccessor.QueryDataTable(sql_xm1);
|
|
if (xmdr1.Rows.Count > 0)
|
|
{
|
|
xm1 = xmdr1.Rows[0][0].ToString();
|
|
xb1 = xmdr1.Rows[0][1].ToString() == "0" ? "男" : "女";
|
|
}
|
|
//xmdr1.Close();
|
|
ksm.xm = xm1 + "(" + xb1 + ")";
|
|
ksm.pdid = int.Parse(pdid);
|
|
ksm.pdsj = DateTime.Now;
|
|
ksm.zxzt = 2;
|
|
im1.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(ksm));
|
|
prod1.Send(im1);//删除原来科室的排队信息
|
|
|
|
|
|
string delsql3 = "delete from pd_kspdlb where pdid=" + pdid + " and ksid=" + ksid;
|
|
db.DataAccessor.Execute(delsql3);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
prod1 = null;
|
|
}
|
|
|
|
public void delPD(string tm)
|
|
{
|
|
connMQ();
|
|
IMessageProducer prod1;
|
|
|
|
prod1 = session.CreateProducer(
|
|
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("kstj"));
|
|
|
|
var db = new DbEntities();
|
|
|
|
string sql = "select * from pd_kspdlb where pdid in (select id from pd_rylb where qtxtid='" + tm + "')";
|
|
DataTable dt = db.DataAccessor.QueryDataTable(sql);
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
string sql_selKspdlb = "select ksid,pdid from pd_kspdlb where pd_kspdlb.zxbz in (0,1) and pd_kspdlb.pdid in (select id from pd_rylb where qtxtid='" + tm + "')";//查询当前正在排队的科室
|
|
DataTable drKspdlb = db.DataAccessor.QueryDataTable(sql_selKspdlb);
|
|
if (drKspdlb.Rows.Count > 0)
|
|
{
|
|
string pdksid = drKspdlb.Rows[0][0].ToString();
|
|
string pdid = drKspdlb.Rows[0][1].ToString();
|
|
|
|
|
|
ITextMessage im1 = prod1.CreateTextMessage();
|
|
im1.Properties.SetString("ks", pdksid);
|
|
var ksm = new kstjMessage();
|
|
string sql_xm1 = "select xm,xb from pd_rylb where id=" + pdid;
|
|
string xm1 = "错误";
|
|
string xb1 = "错误";
|
|
var xmdr1 = db.DataAccessor.QueryDataTable(sql_xm1);
|
|
if (xmdr1.Rows.Count > 0)
|
|
{
|
|
xm1 = xmdr1.Rows[0][0].ToString();
|
|
xb1 = xmdr1.Rows[0][1].ToString() == "0" ? "男" : "女";
|
|
}
|
|
//xmdr1.Close();
|
|
ksm.xm = xm1 + "(" + xb1 + ")";
|
|
ksm.pdid = int.Parse(pdid);
|
|
ksm.pdsj = DateTime.Now;
|
|
ksm.zxzt = 2;
|
|
im1.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(ksm));
|
|
prod1.Send(im1);//删除原来科室的排队信息
|
|
|
|
|
|
string delsql = "delete from pd_kspdlb where pdid=" + pdid;
|
|
db.DataAccessor.Execute(delsql);
|
|
|
|
string delsql1 = "delete from pd_pdxms where pdid=" + pdid;
|
|
db.DataAccessor.Execute(delsql1);
|
|
|
|
string delsql2 = "delete from pd_rylb where qtxtid=" + tm;
|
|
db.DataAccessor.Execute(delsql2);
|
|
|
|
string delsql3 = "delete from pd_yssj where qtxtid=" + tm;
|
|
db.DataAccessor.Execute(delsql3);
|
|
|
|
prod1 = null;
|
|
|
|
}
|
|
else
|
|
{
|
|
prod1 = null;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
prod1 = null;
|
|
}
|
|
}
|
|
|
|
public string PDFP_UP_DOWN(string pdid, string pdsj, string ksid)
|
|
{
|
|
var db = new DbEntities();
|
|
//throw new NotImplementedException();
|
|
string sql = "update pd_kspdlb set pdsj='" + pdsj + "' where ksid=" + ksid + " and pdid=" + pdid;
|
|
int a = db.DataAccessor.Execute(sql);
|
|
if (a > 0)
|
|
{
|
|
return "true";
|
|
}
|
|
else
|
|
{
|
|
return "false";
|
|
}
|
|
|
|
}
|
|
|
|
public string PDFP(string pdid, string ks)
|
|
{
|
|
connMQ();
|
|
IMessageProducer prod1;
|
|
|
|
prod1 = session.CreateProducer(
|
|
new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("kstj"));
|
|
|
|
var db = new DbEntities();
|
|
//throw new NotImplementedException();
|
|
string sql = "select * from pd_kspdlb where zxbz<>2 and pdid=" + pdid;
|
|
DataTable dt = db.DataAccessor.QueryDataTable(sql);
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
string sql_selKspdlb = "select ksid from pd_kspdlb where pd_kspdlb.zxbz in (0,1) and pd_kspdlb.pdid=" + pdid;//查询当前正在排队的科室
|
|
DataTable drKspdlb = db.DataAccessor.QueryDataTable(sql_selKspdlb);
|
|
if (drKspdlb.Rows.Count > 0)
|
|
{
|
|
string pdksid = drKspdlb.Rows[0][0].ToString();
|
|
//drKspdlb.Close();
|
|
|
|
sql = "select count(1) from pd_pdxms,pd_ksxm where pd_pdxms.pdid=" + pdid + " and pd_ksxm.xmid=pd_pdxms.xmid and pd_ksxm.ksid=" + ks;
|
|
if (db.DataAccessor.QueryScalar(sql).ToString() != "0")
|
|
{
|
|
string delsql = "delete from pd_kspdlb where pdid=" + pdid + " and ksid=" + pdksid;
|
|
db.DataAccessor.Execute(delsql);
|
|
//sql = "update pd_pdxms set zxbz=0 from pd_ksxm where pd_pdxms.zxbz=1 and pd_pdxms.xmid=pd_ksxm.xmid and pd_ksxm.ksid=" + pdksid + " and pd_pdxms.pdid=" + pdid;
|
|
sql = "update pd_pdxms set zxbz=0,pdsj=null,zxsj=null,wcsj=null from pd_ksxm where pd_pdxms.xmid=pd_ksxm.xmid and pd_ksxm.ksid=" + pdksid + " and pd_pdxms.pdid=" + pdid;
|
|
db.DataAccessor.Execute(sql);
|
|
ITextMessage im1 = prod1.CreateTextMessage();
|
|
im1.Properties.SetString("ks", pdksid);
|
|
var ksm = new kstjMessage();
|
|
string sql_xm1 = "select xm,xb from pd_rylb where id=" + pdid;
|
|
string xm1 = "错误";
|
|
string xb1 = "错误";
|
|
var xmdr1 = db.DataAccessor.QueryDataTable(sql_xm1);
|
|
if (xmdr1.Rows.Count > 0)
|
|
{
|
|
xm1 = xmdr1.Rows[0][0].ToString();
|
|
xb1 = xmdr1.Rows[0][1].ToString() == "0" ? "男" : "女";
|
|
}
|
|
//xmdr1.Close();
|
|
ksm.xm = xm1 + "(" + xb1 + ")";
|
|
ksm.pdid = int.Parse(pdid);
|
|
ksm.pdsj = DateTime.Now;
|
|
ksm.zxzt = 2;
|
|
im1.Text = System.Web.HttpUtility.UrlEncode(Newtonsoft.Json.JsonConvert.SerializeObject(ksm));
|
|
prod1.Send(im1);//删除原来科室的排队信息
|
|
|
|
prod1 = null;
|
|
|
|
|
|
return sendpd(pdid, ks);
|
|
}
|
|
else
|
|
{
|
|
prod1 = null;
|
|
|
|
return "";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
prod1 = null;
|
|
|
|
return "";
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
string sql_pdryid = "select qtxtid from pd_rylb where id='" + pdid + "'";
|
|
var ryiddr = db.DataAccessor.QueryDataTable(sql_pdryid);
|
|
prod1 = null;
|
|
return process(ryiddr.Rows[0][0].ToString(), "0");
|
|
}
|
|
|
|
}
|
|
|
|
class kstjMessage
|
|
{
|
|
public string xm { get; set; }
|
|
|
|
public string xb { get; set; }
|
|
|
|
public int pdid { get; set; }
|
|
|
|
public DateTime pdsj { get; set; }
|
|
|
|
public byte zxzt { get; set; }
|
|
}
|
|
}
|
|
class ks_pdsl
|
|
{
|
|
public int ksid { get; set; }
|
|
public int pdcount { get; set; }
|
|
|
|
public int zsrs { get; set; }
|
|
public int zdrs { get; set; }
|
|
public int pdsx { get; set; }
|
|
public int jqpx { get; set; }
|
|
}
|
|
|
|
}
|