123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503 |
- using QWPlatform.IService;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using PMS.EntityModels.Product;
- using System.Text.RegularExpressions;
- namespace PMS.DBService.Product
- {
- public class WTJLService : DataServiceBase
- {
- /// <summary>
- /// 获取紧急程度信息
- /// </summary>
- /// <returns></returns>
- public DataTable GETJJCDinfo()
- {
- string sql = "select 代码 id,显示名 紧急程度 from 基础编码 where 分类ID = 'A10D6027-DEDD-4B6D-9549-33830DE52AEA'";
- var dt = this.SqlBuilder.SqlText(sql).Select();
- return dt;
- }
- /// <summary>
- /// 获取渠道信息
- /// </summary>
- /// <param name="channel"></param>
- /// <returns></returns>
- public DataTable GETQDinfo(string channel)
- {
- var dt = this.ProcedureBuilder.Procedure("B_产品问题记录.P_授权渠道信息Select")
- .Paramter("渠道列表_in", channel)
- .ParamterOut("Resultlist", true);
- dt.Execute();
- return dt.ParameterValue<DataTable>("Resultlist");
- }
- /// <summary>
- /// 获取渠道信息(1-中联;2-中联渠道;3-客户;4-医院管理员;5-卫计委管理员)
- /// </summary>
- /// <param name="personProp">人员性质</param>
- /// <returns></returns>
- public DataTable GetChanels(int personProp, string companyid)
- {
- var sqlbuilder = this.SqlBuilder;
- var sql = @"Select c.Id, c.名称 From 渠道信息 c Where c.状态 = 1";
- if (personProp != 1)
- {//非中联渠道,需要根据渠道加载自己所在渠道
- sql += " And ID=:渠道ID";
- sqlbuilder.Parameters("渠道ID", companyid);
- }
- sql += " Order by c.名称 asc";
- return sqlbuilder.SqlText(sql)
- .Select();
- }
- /// <summary>
- /// 获取性质信息
- /// </summary>
- /// <returns></returns>
- public DataTable GETXZinfo()
- {
- string sql = "select 代码 id, 显示名 问题性质 from 基础编码 where 分类ID = 'AFBA7E41-A62E-4AB0-B861-40BAB5DA6F73'";
- var dt = this.SqlBuilder.SqlText(sql).Select();
- return dt;
- }
- /// <summary>
- /// 获取流程环节信息
- /// </summary>
- /// <returns></returns>
- public DataTable LCHJ()
- {
- string sql = "select ID,名称 流程环节 from 问题流程环节";
- var dt = this.SqlBuilder.SqlText(sql).Select();
- return dt;
- }
- /// <summary>
- /// 自定义查询方案查询
- /// </summary>
- /// <param name="model"></param>
- /// <param name="startNumbers"></param>
- /// <param name="endnumbers"></param>
- /// <returns></returns>
- public DataTable ProjectZdyCxInfoSqlBulder(WTJLModel model, int page, int rows, out int total)
- {
- string sql = @"select z.编号,
- z.问题标题,
- z.id,
- z.问题描述,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'AFBA7E41-A62E-4AB0-B861-40BAB5DA6F73'
- and 代码 = z.问题性质) 性质,
- (select 名称
- from 产品系统配置
- where ID = z.产品ID) 产品,
- (CASE z.是否终止
- WHEN 0 THEN
- (case z.是否解决 when 0 then ((select (trunc(sysdate-登记日期)*24) from 问题记录 where 是否解决=0 and id=z.id))
- when 1 then ((select (trunc((select max(z.记录时间) from 问题记录过程 z) -(select min(z.记录时间) from 问题记录过程 z))*24) from 问题记录 t where t.id=z.id))
- end)
- WHEN 1 THEN ((select (trunc((select max(z.记录时间) from 问题记录过程 z)-(select min(z.记录时间) from 问题记录过程 z))*24) from 问题记录 t where t.id=z.id))
- end)总时间,
- z.版本号 版本,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'A10D6027-DEDD-4B6D-9549-33830DE52AEA'
- and 代码 = z.紧急代码) 优先级,
- (select 名称 from 项目信息 where ID = z.项目ID) 项目,
- (select 名称 from 站点信息 where ID = z.机构ID) 机构,
- z.登记人 反馈人,
-
- (select 名称
- from 问题工作流程
- where ID = z.流程id) 问题环节,
- decode(z.是否终止,0,'正常',1,'终止')||','||decode(z.是否解决,0,'未解决',1,'已解决')是否解决
- from 问题记录 z where z.问题类型=1 &wheresql";
- // and 是否终止 = 1 and 是否解决 = 1
- string replacestr = string.Empty;
- if (!String.IsNullOrEmpty(model.XMID))
- {
- replacestr += " and 项目id= '" + model.XMID + "' ";
- }
- if (!String.IsNullOrEmpty(model.QDID))
- {
- replacestr += " and 渠道id= '" + model.QDID + "' ";
- }
- if (!String.IsNullOrEmpty(model.CPID))
- {
- replacestr += " and 产品id= '" + model.CPID + "' ";
- }
- if (!String.IsNullOrEmpty(model.JGID))
- {
- replacestr += " and 机构id= '" + model.JGID + "' ";
- }
- if (!String.IsNullOrEmpty(model.DJRID))
- {
- replacestr += " and 登记人id= '" + model.DJRID + "' ";
- }
- if (!String.IsNullOrEmpty(model.WTXZ.ToString()))
- {
- replacestr += " and 问题性质= '" + model.WTXZ + "' ";
- }
- if (!String.IsNullOrEmpty(model.JJDM))
- {
- replacestr += " and 紧急代码= '" + model.JJDM + "' ";
- }
- if (!String.IsNullOrEmpty(model.HJID.ToString()))
- {
- replacestr += " and 环节ID= '" + model.HJID + "' ";
- }
- if (!String.IsNullOrEmpty(model.GJZ))
- {
- replacestr += " and 关键字= '" + model.GJZ + "' ";
- }
- replacestr += " order by 编号 asc";
- if (String.IsNullOrEmpty(replacestr))
- {
- sql = sql.Replace("&wheresql", "");
- }
- else
- {
- sql = sql.Replace("&wheresql", replacestr);
- }
- return this.SqlBuilder.SqlText(sql)
- .Paging(page, rows)
- .Select(out total);
- }
- /// <summary>
- /// 快速查询
- /// </summary>
- /// <param name="ksCx"></param>
- /// <param name="StartNumbers"></param>
- /// <param name="Endnumbers"></param>
- /// <param name="total"></param>
- /// <returns></returns>
- public DataTable KsSelect(string ksCx, int StartNumbers, int Endnumbers, out int total)
- {
- string sql = @"select z.编号,
- z.问题标题,
- z.id,
- z.问题描述,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'AFBA7E41-A62E-4AB0-B861-40BAB5DA6F73'
- and 代码 = z.问题性质) 性质,
- (select 名称
- from 产品系统配置
- where ID = z.产品ID) 产品,
- (CASE z.是否终止
- WHEN 0 THEN
- (case z.是否解决 when 0 then ((select (trunc(sysdate-登记日期)*24) from 问题记录 where 是否解决=0 and id=z.id))
- when 1 then ((select (trunc((select max(z.记录时间) from 问题记录过程 z) -(select min(z.记录时间) from 问题记录过程 z))*24) from 问题记录 t where t.id=z.id))
- end)
- WHEN 1 THEN ((select (trunc((select max(z.记录时间) from 问题记录过程 z)-(select min(z.记录时间) from 问题记录过程 z))*24) from 问题记录 t where t.id=z.id))
- end)总时间,
- z.版本号 版本,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'A10D6027-DEDD-4B6D-9549-33830DE52AEA'
- and 代码 = z.紧急代码) 优先级,
- (select 名称 from 项目信息 where ID = z.项目ID) 项目,
- (select 名称 from 站点信息 where ID = z.机构ID) 机构,
- z.登记人 反馈人,
-
- (select 名称
- from 问题工作流程
- where ID = z.流程id) 问题环节,
- decode(z.是否终止,0,'正常',1,'终止')||','||decode(z.是否解决,0,'未解决',1,'已解决')是否解决
- from 问题记录 z where z.问题类型=1 &wheresql";
- string replacestr = string.Empty;
- bool flag = Regex.IsMatch(ksCx, @"\b\d\w*");
- if (flag == true)
- {
- replacestr += " and 编号= '" + ksCx + "' ";
- }
- else
- {
- replacestr += " and 标题= '" + ksCx + "' ";
- }
- if (String.IsNullOrEmpty(replacestr))
- {
- sql = sql.Replace("&wheresql", "");
- }
- else
- {
- sql = sql.Replace("&wheresql", replacestr);
- }
- return this.SqlBuilder.SqlText(sql)
- .Paging(StartNumbers, Endnumbers)
- .Select(out total);
- }
- /// <summary>
- /// 问题处理状态
- /// </summary>
- /// <param name="wTid"></param>
- /// <returns></returns>
- public string DealProblem(string wTid, string Xz)
- {
- var dt = this.ProcedureBuilder.Procedure("B_问题处理.P_问题处理状态_select")
- .Paramter("问题ID_in", wTid)
- .Paramter("人员性质_in", Xz)
- .ParamterOut("Result_out", DbType.String, 4000);
- dt.Execute();
- return dt.ParameterValue<String>("Result_out");
- }
- /// <summary>
- /// 获取渠道项目
- /// </summary>
- /// <param name="qdID"></param>
- /// <returns></returns>
- public DataTable QdXm(string qdID)
- {
- string sql = "select ID,名称 项目名称 from 项目信息 where 渠道ID=:渠道ID and 启用=1";
- return this.SqlBuilder.SqlText(sql).Parameters("渠道ID", qdID)
- .Select();
- }
- /// <summary>
- /// 客户问题查询
- /// </summary>
- /// <param name="DJRID"></param>
- /// <param name="page"></param>
- /// <param name="rows"></param>
- /// <param name="total"></param>
- /// <returns></returns>
- public DataTable ProjectZdyCxInfoKh(string DJRID, int page, int rows, out int total)
- {
- string sql = @"select z.编号,
- z.问题标题,
- z.id,
- z.问题描述,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'AFBA7E41-A62E-4AB0-B861-40BAB5DA6F73'
- and 代码 = z.问题性质) 性质,
- (select 名称
- from 产品系统配置
- where ID = z.产品ID) 产品,
- (CASE z.是否终止
- WHEN 0 THEN
- (case z.是否解决 when 0 then ((select (trunc(sysdate-登记日期)*24) from 问题记录 where 是否解决=0 and id=z.id))
- when 1 then ((select (trunc((select max(z.记录时间) from 问题记录过程 z) -(select min(z.记录时间) from 问题记录过程 z))*24) from 问题记录 t where t.id=z.id))
- end)
- WHEN 1 THEN ((select (trunc((select max(z.记录时间) from 问题记录过程 z)-(select min(z.记录时间) from 问题记录过程 z))*24) from 问题记录 t where t.id=z.id))
- end)总时间,
- z.版本号 版本,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'A10D6027-DEDD-4B6D-9549-33830DE52AEA'
- and 代码 = z.紧急代码) 优先级,
- (select 名称 from 项目信息 where ID = z.项目ID) 项目,
- (select 名称 from 站点信息 where ID = z.机构ID) 机构,
- z.登记人 反馈人,
-
- (select 名称
- from 问题工作流程
- where ID = z.流程id) 问题环节,
- decode(z.是否终止,0,'正常',1,'终止')||','||decode(z.是否解决,0,'未解决',1,'已解决')是否解决
- from 问题记录 z where z.问题类型=1 &wheresql";
- // and 是否终止=1 and 是否解决=1
- string replacestr = string.Empty;
- if (!String.IsNullOrEmpty(DJRID))
- {
- replacestr += " and 登记人ID='" + DJRID + "'";
- }
- replacestr += " order by 编号 asc";
- if (String.IsNullOrEmpty(replacestr))
- {
- sql = sql.Replace("&wheresql", "");
- }
- else
- {
- sql = sql.Replace("&wheresql", replacestr);
- }
- return this.SqlBuilder.SqlText(sql)
- .Paging(page, rows)
- .Select(out total);
- }
- /// <summary>
- /// 卫计委,本部,渠道人员根据渠道id查询数据权限
- /// </summary>
- /// <param name="model"></param>
- /// <param name="channel"></param>
- /// <param name="page"></param>
- /// <param name="rows"></param>
- public DataTable ProjectZdyCxInfoQKW(string channel, int page, int rows, out int total)
- {
- string sql = @"select z.编号,
- z.问题标题,
- z.id,
- z.问题描述,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'AFBA7E41-A62E-4AB0-B861-40BAB5DA6F73'
- and 代码 = z.问题性质) 性质,
- (select 名称
- from 产品系统配置
- where ID = z.产品ID) 产品,
- (CASE z.是否终止
- WHEN 0 THEN
- (case z.是否解决 when 0 then ((select (trunc(sysdate-登记日期)*24) from 问题记录 where 是否解决=0 and id=z.id))
- when 1 then ((select (trunc((select max(z.记录时间) from 问题记录过程 z) -(select min(z.记录时间) from 问题记录过程 z))*24) from 问题记录 t where t.id=z.id))
- end)
- WHEN 1 THEN ((select (trunc((select max(z.记录时间) from 问题记录过程 z)-(select min(z.记录时间) from 问题记录过程 z))*24) from 问题记录 t where t.id=z.id))
- end)总时间,
- z.版本号 版本,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'A10D6027-DEDD-4B6D-9549-33830DE52AEA'
- and 代码 = z.紧急代码) 优先级,
- (select 名称 from 项目信息 where ID = z.项目ID) 项目,
- (select 名称 from 站点信息 where ID = z.机构ID) 机构,
- z.登记人 反馈人,
-
- (select 名称
- from 问题工作流程
- where ID = z.流程id) 问题环节,
- decode(z.是否终止,0,'正常',1,'终止')||','||decode(z.是否解决,0,'未解决',1,'已解决')是否解决
- from 问题记录 z where z.问题类型=1 &wheresql";
- string replacestr = string.Empty;
- // and 是否终止=1 and 是否解决=1
- if (!String.IsNullOrEmpty(channel))
- {
- replacestr += " and 渠道ID in (select * from table(f_split_string('" + channel + "',','))) ";
- // and 渠道ID in (select * from table(f_split_string('4A9B2065-65AB-4411-B528-968D26737EAE',',')))
- }
- if (String.IsNullOrEmpty(replacestr))
- {
- sql = sql.Replace("&wheresql", "");
- }
- else
- {
- sql = sql.Replace("&wheresql", replacestr);
- }
- return this.SqlBuilder.SqlText(sql)
- .Paging(page, rows)
- .Select(out total);
- }
- /// <summary>
- /// 获取项目产品
- /// </summary>
- /// <param name="xmID"></param>
- /// <returns></returns>
- public object XmCp(string xmID)
- {
- string sql = "select ID, 名称 产品名称 from 产品系统配置 where ID in (select 产品ID from 项目产品模块 where 项目ID =:项目ID)";
- return this.SqlBuilder.SqlText(sql).Parameters("项目ID", xmID).Select();
- }
- /// <summary>
- /// 获取项目机构信息
- /// </summary>
- /// <param name="jgID"></param>
- /// <returns></returns>
- public DataTable XmJgs(string jgID)
- {
- string sql = "select ID,名称 机构名称 from 站点信息 where 项目ID=:项目ID";
- return this.SqlBuilder.SqlText(sql).Parameters("项目ID", jgID).Select();
- }
- /// <summary>
- /// 4医院管理员 自己机构(站点信息)的数据
- /// </summary>
- /// <param name="model"></param>
- /// <param name="page"></param>
- /// <param name="rows"></param>
- public DataTable ProjectZdyCxZd(string DJRID, int page, int rows, out int total)
- {
- string sql = @"select z.编号,
- z.问题标题,
- z.id,
- z.问题描述,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'AFBA7E41-A62E-4AB0-B861-40BAB5DA6F73'
- and 代码 = z.问题性质) 性质,
- (select 名称
- from 产品系统配置
- where ID = z.产品ID) 产品,
- (CASE z.是否终止
- WHEN 0 THEN
- (case z.是否解决 when 0 then ((select (trunc(sysdate-登记日期)*24) from 问题记录 where 是否解决=0 and id=z.id))
- when 1 then ((select (trunc((select max(z.记录时间) from 问题记录过程 z) -(select min(z.记录时间) from 问题记录过程 z))*24) from 问题记录 t where t.id=z.id))
- end)
- WHEN 1 THEN ((select (trunc((select max(z.记录时间) from 问题记录过程 z)-(select min(z.记录时间) from 问题记录过程 z))*24) from 问题记录 t where t.id=z.id))
- end)总时间,
- z.版本号 版本,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'A10D6027-DEDD-4B6D-9549-33830DE52AEA'
- and 代码 = z.紧急代码) 优先级,
- (select 名称 from 项目信息 where ID = z.项目ID) 项目,
- (select 名称 from 站点信息 where ID = z.机构ID) 机构,
- z.登记人 反馈人,
-
- (select 名称
- from 问题工作流程
- where ID = z.流程id) 问题环节,
- decode(z.是否终止,0,'正常',1,'终止')||','||decode(z.是否解决,0,'未解决',1,'已解决')是否解决
- from 问题记录 z where z.问题类型=1 &wheresql";
- // and 是否终止=1 and 是否解决=1
- string replacestr = string.Empty;
- if (!String.IsNullOrEmpty(DJRID))
- {
- replacestr += " and 机构ID=( select ID from 站点信息 where ID=(select 站点ID from 人员信息 t where ID='" + DJRID + "'))";
- }
- if (String.IsNullOrEmpty(replacestr))
- {
- sql = sql.Replace("&wheresql", "");
- }
- else
- {
- sql = sql.Replace("&wheresql", replacestr);
- }
- return this.SqlBuilder.SqlText(sql)
- .Paging(page, rows)
- .Select(out total);
- }
- }
- }
|