1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122 |
- using QWPlatform.IService;
- using QWPlatform.SystemLibrary;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using PMS.EntityModels.Product;
- using PMS.BusinessModels.Problem;
- using PMS.BusinessModels.Account;
- using System.Text.RegularExpressions;
- using System.Data.Common;
- using QWPlatform.DataIntface;
- using PMS.EntityModels.WorkFlow;
- using QWPlatform.SystemLibrary.LogManager;
- using System.Net.Http.Headers;
- using System.Net.Http;
- using PMS.Plugins.Common;
- using System.ComponentModel.Design;
- namespace PMS.DBService.Product
- {
- /// <summary>
- /// 创建者:冉利
- /// 创建日期:2019/1/04
- /// 功能描述:问题记录
- /// </summary>
- public class CPWTJLService : DataServiceBase
- {
- //实例化数据库
- public DataServiceBase dataservice = new DataServiceBase();
- #region 自定义查询,问题记录绑定,及combobox取值
- /// <summary>
- /// 自定义查询方案查询
- /// </summary>
- /// <param name="model"></param>
- /// <param name="startNumbers"></param>
- /// <param name="endnumbers"></param>
- /// <returns></returns>
- public DataTable ProjectZdyCxInfoSqlBulder(CPWTJLModel 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) 产品,
- 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.登记人 反馈人,
- decode((select 确认类型 from 产品问题过程 x
- where x.问题id = z.ID
- and x.记录时间 = (select max(记录时间) from 产品问题过程 b where b.问题id =x.问题id)
- ) ,1,'机构确认',2,'卫计委确认',3,'项目人员确认',4,'技术支持确认',5,'研发人员确认','未确认' ) as 确认类型,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'CEDA4B34-83F3-4E76-A38D-AC40EDF01D6D'
- and 代码 = z.当前环节) 问题环节,
- decode(z.是否终止,1,'正常',2,'终止',3,'回退')||','||decode(z.是否解决,1,'未解决',2,'已解决')是否解决 from 问题记录 z where 产品问题=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.XZ))
- {
- replacestr += " and 性质= '" + model.XZ + "' ";
- }
- if (!String.IsNullOrEmpty(model.JJCD))
- {
- replacestr += " and 紧急程度= '" + model.JJCD + "' ";
- }
- if (!String.IsNullOrEmpty(model.DQHJ))
- {
- replacestr += " and 当前环节= '" + model.DQHJ + "' ";
- }
- 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="id"></param>
- /// <returns></returns>
- public string WtQr(string id, string JlrID, DateTime Jlsj, int Qrlx)
- {
- var dt = this.ProcedureBuilder.Procedure("B_问题记录.P_确认问题_insert")
- .Paramter("问题ID_in", id)
- .Paramter("记录人ID_in", JlrID)
- .Paramter("记录时间_in", Jlsj)
- .Paramter("确认类型_in", Qrlx)
- .ParamterOut("Result_out", DbType.String, 4000);
- dt.Execute();
- return dt.ParameterValue<string>("Result_out");
- }
- /// <summary>
- /// 查看问题
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public DataTable Wtdetail(string id)
- {
- var dt = @"select (select 名称 from 渠道信息 where id=t.渠道id)渠道,
- (select 名称 from 项目信息 where id = t.项目id)项目,
- (select 名称 from 站点信息 where id = t.机构id)机构,
- (select 名称 from 产品系统配置 where id = t.产品id)产品,
- (select 显示名 from 基础编码 where 分类id = 'A10D6027-DEDD-4B6D-9549-33830DE52AEA' and 代码 = t.紧急程度)紧急程度,
- decode(t.产品问题, 1, '项目问题', 2, '项目问题')问题类型,t.是否解决,t.机构内处理,
- t.研发协助,t.卫计委处理,t.项目处理,t.预计方案,t.修改说明,t.问题描述,/*t.附件,*/
- t.要求时间,t.版本号,t.登记人,t.登记日期,
- (select 显示名 from 基础编码 where 分类id = '2DDA172A-499A-40CC-BA6A-29AB0FAEEDCB'and 代码 = t.来源)来源
- from 问题记录 t where t.id=:id ";
- return this.SqlBuilder.SqlText(dt).Parameters("id", id).Select();
- }
- /// <summary>
- /// 查询当前问题是否被确认
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public string WtsfQr(string id)
- {
- string sql = "select 当前环节 from 问题记录 where ID=:id";
- return this.SqlBuilder.SqlText(sql).Parameters("id", id)
- .Select<string>();
- }
- /// <summary>
- /// 判断问题是否被终止或者解决
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public string SfZz(string id)
- {
- string sql = "select 是否终止 from 问题记录 where ID=:id";
- return this.SqlBuilder.SqlText(sql).Parameters("id", id)
- .Select<string>();
- }
- /// <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) 产品,
- 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.登记人 反馈人,
- decode((select 确认类型 from 产品问题过程 x
- where x.问题id = z.ID
- and x.记录时间 = (select max(记录时间) from 产品问题过程 b where b.问题id =x.问题id)
- ) ,1,'机构确认',2,'卫计委确认',3,'项目人员确认',4,'技术支持确认',5,'研发人员确认','未确认' ) as 确认类型,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'CEDA4B34-83F3-4E76-A38D-AC40EDF01D6D'
- and 代码 = z.当前环节) 问题环节,
- decode(z.是否终止,1,'正常',2,'终止',3,'回退')||','||decode(z.是否解决,1,'未解决',2,'已解决')是否解决 from 问题记录 z where 产品问题=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>
- /// 迭代信息
- /// </summary>
- /// <returns></returns>
- public DataTable GetLterationList()
- {
- return SelectBuilder.From("问题迭代信息").Columns("ID,名称||'['||简码||']' as 名称").Where("状态 !=4").Select();
- }
- /// <summary>
- /// 医院管理员处理问题时,判读是否给卫计委审核
- /// </summary>
- /// <param name="personID"></param>
- /// <returns></returns>
- public DataTable SfSh(string personID)
- {
- string sql = "select 机构内处理 from 问题记录 where 登记人ID =:登记人ID";
- return this.SqlBuilder.SqlText(sql).Parameters("登记人ID", personID)
- .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) 产品,
- 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.登记人 反馈人,
- decode((select 确认类型 from 产品问题过程 x
- where x.问题id = z.ID
- and x.记录时间 = (select max(记录时间) from 产品问题过程 b where b.问题id =x.问题id)
- ) ,1,'机构确认',2,'卫计委确认',3,'项目人员确认',4,'技术支持确认',5,'研发人员确认','未确认' ) as 确认类型,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'CEDA4B34-83F3-4E76-A38D-AC40EDF01D6D'
- and 代码 = z.当前环节) 问题环节,
- decode(z.是否终止,1,'正常',2,'终止',3,'回退')||','||decode(z.是否解决,1,'未解决',2,'已解决')是否解决 from 问题记录 z where 产品问题=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);
- }
- /// <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) 产品,
- 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.登记人 反馈人,
- decode((select 确认类型 from 产品问题过程 x
- where x.问题id = z.ID
- and x.记录时间 = (select max(记录时间) from 产品问题过程 b where b.问题id =x.问题id)
- ) ,1,'机构确认',2,'卫计委确认',3,'项目人员确认',4,'技术支持确认',5,'研发人员确认','未确认' ) as 确认类型,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'CEDA4B34-83F3-4E76-A38D-AC40EDF01D6D'
- and 代码 = z.当前环节) 问题环节,
- decode(z.是否终止,1,'正常',2,'终止',3,'回退')||','||decode(z.是否解决,1,'未解决',2,'已解决')是否解决 from 问题记录 z where 产品问题=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);
- }
- public string GetCPID(string id)
- {
- return SelectBuilder.From("问题记录").Columns("产品ID").Where("ID", id).Select().Rows[0]["产品ID"].ToString();
- }
- /// <summary>
- /// 获取基础编码
- /// </summary>
- /// <param name="type"></param>
- /// <returns></returns>
- public DataTable GetBaseCode(string type)
- {
- return SelectBuilder.From("基础编码").Where("分类id", type).Columns("*").Select();
- }
- /// <summary>
- /// 根据编号获取问题ID
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public string GetProblemID(object id)
- {
- return SelectBuilder.From("问题记录").Where("编号", id).Columns("ID").Select().Rows[0]["ID"].ToString();
- }
- /// <summary>
- /// 删除附件
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public int Delete_Img(string id)
- {
- return DeleteBulider.Delete("产品问题附件").Where("附件ID", id).Execute();
- }
- /// <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) 产品,
- 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.登记人 反馈人,
- decode((select 确认类型 from 产品问题过程 x
- where x.问题id = z.ID
- and x.记录时间 = (select max(记录时间) from 产品问题过程 b where b.问题id =x.问题id)
- ) ,1,'机构确认',2,'卫计委确认',3,'项目人员确认',4,'技术支持确认',5,'研发人员确认','未确认' ) as 确认类型,
- (select 显示名
- from 基础编码
- where 分类ID =
- 'CEDA4B34-83F3-4E76-A38D-AC40EDF01D6D'
- and 代码 = z.当前环节) 问题环节,
- decode(z.是否终止,1,'正常',2,'终止',3,'回退')||','||decode(z.是否解决,1,'未解决',2,'已解决')是否解决 from 问题记录 z where 产品问题=1 and &wheresql";
- string replacestr = string.Empty;
- bool flag = Regex.IsMatch(ksCx, @"\b\d\w*");
- if (flag == true)
- {
- replacestr += " 编号= '" + ksCx + "' ";
- }
- else
- {
- replacestr += " 标题= '" + 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);
- }
- public string DoBHGet(string path, string uname, string pwd)
- {
- using (HttpClient client = new HttpClient())
- {
- //client.BaseAddress = new Uri(bhuri);
- var authenticationHeaderValue = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(uname + ":" + pwd)));
- client.DefaultRequestHeaders.Authorization = authenticationHeaderValue;
- var response = client.GetAsync(path).Result;
- var responseContent = response.Content.ReadAsStringAsync().Result;
- if (!response.IsSuccessStatusCode)
- {
- //throw new Exception($"调用外部接口异常: 发送get请求失败,请检查配置的ip地址是否正确");
- Logger.Instance.Warn($"调用BH接口异常 path:{path} uname:{uname} pwd:{pwd}");
- throw new Exception($"调用BH接口异常");
- }
- return responseContent;
- }
- }
- public DataTable GetProjectProducct(object id)
- {
- return base.SelectBuilder.From("项目产品模块").Columns("*").Where("ID", id).Select();
- }
- /// <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>
- /// 获取渠道项目
- /// </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="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>
- /// 获取项目信息
- /// </summary>
- /// <param name="channel"></param>
- /// <returns></returns>
- public DataTable GETXMinfo(string channel)
- {
- var dt = this.ProcedureBuilder.Procedure("B_问题记录.P_授权项目信息Select")
- .Paramter("渠道列表_in", channel)
- .ParamterOut("Resultlist", true);
- dt.Execute();
- return dt.ParameterValue<DataTable>("Resultlist");
- }
- //根据项目iD和产品iD加载产品
- public DataTable GetCpwtjlByID(string xmid, string cpid)
- {
- return SelectBuilder.From("项目产品模块").Columns("*").Where("产品ID", cpid).Where("项目ID", xmid).Select();
- }
- /// <summary>
- /// 获取机构信息
- /// </summary>
- /// <returns></returns>
- public DataTable GETJGinfo(string project)
- {
- var dt = this.ProcedureBuilder.Procedure("B_问题记录.P_授权机构Select")
- .Paramter("项目列表_in", project)
- .ParamterOut("Resultlist", true);
- dt.Execute();
- return dt.ParameterValue<DataTable>("Resultlist");
- }
- /// <summary>
- /// 获取问题登记时的过程ID
- /// </summary>
- /// <param name="problemid"></param>
- /// <returns></returns>
- public string GetNewProcessID(string problemid)
- {
- return SelectBuilder.From("问题记录过程").Columns("ID").Where("问题ID", problemid).Where("状态", 1).Select().Rows[0]["ID"].ToString();
- }
- /// <summary>
- /// 获取产品信息
- /// </summary>
- /// <returns></returns>
- public DataTable GETCPinfo(string project)
- {
- var dt = this.ProcedureBuilder.Procedure("B_问题记录.P_授权产品Select")
- .Paramter("项目列表_in", project)
- .ParamterOut("Resultlist", true);
- dt.Execute();
- return dt.ParameterValue<DataTable>("Resultlist");
- }
- /// <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 GETJJCDinfo()
- {
- string sql = "select 代码 id,显示名 紧急程度 from 基础编码 where 分类ID = 'A10D6027-DEDD-4B6D-9549-33830DE52AEA'";
- var dt = this.SqlBuilder.SqlText(sql).Select();
- return dt;
- }
- /// <summary>
- ///获取问题流程信息
- /// </summary>
- /// <returns></returns>
- public DataTable GEDQHJinfo(int PersonProperty)
- {
- return null;
- }
- /// <summary>
- /// 获取关键字
- /// </summary>
- /// <returns></returns>
- public DataTable GEDGJZinfo(string channel)
- {
- var dt = this.ProcedureBuilder.Procedure("B_问题记录.P_关键字Select")
- .Paramter("项目列表_in", channel)
- .ParamterOut("Resultlist", true);
- dt.Execute();
- return dt.ParameterValue<DataTable>("Resultlist");
- }
- public DataTable SfShWjW(string personID)
- {
- string sql = "select 卫计委处理 from 问题记录 where 登记人ID =:登记人ID";
- return this.SqlBuilder.SqlText(sql).Parameters("登记人ID", personID)
- .Select();
- }
- #endregion
- #region 公共方法
- public string GetId(string tableName)
- {
- return SqlBuilder.SqlText("select ZLCHS.f_Next_Id(':Name') as ID from dual").Parameters("Name", tableName).Select().Rows[0]["ID"].ToString();
- }
- #endregion
- #region 信息查询
- /// <summary>
- /// 获取数据库时间
- /// </summary>
- /// <returns></returns>
- public DateTime GetDatabaseTime()
- {
- return DataBaseBuilder.GetDateTime;
- }
- //获取研发人员
- public DataTable GetAssignPerson()
- {
- return SqlBuilder.SqlText("select ID,姓名 from 人员信息 where (职务=11 or 职务=10) and 是否删除=0").Select();
- }
- //获取当前用户所在环节Id
- public int GetUserLinkId(int PersonProperty, string JobCode)
- {
- var SelectBuilder = this.SqlBuilder;
- var sqlText = @"Select t.ID from 问题流程环节 t where t.人员性质=:人员性质";
- SelectBuilder.Parameters("人员性质", PersonProperty);
- ///如果为本部人员
- if (PersonProperty == 1)
- {
- sqlText += @" and Exists
- (select column_value from table(Select f_Split_String(x.职务代码1, ',') from 问题流程环节 x
- where id = t.Id)
- where Column_Value =:职务) ";
- SelectBuilder.Parameters("职务", Convert.ToInt32(JobCode));
- }
- SelectBuilder.SqlText(sqlText);
- return SelectBuilder.Select<int>();
- }
- //获取所有模块
- public DataTable GetAllModual()
- {
- return SelectBuilder.From("产品模块功能").Columns("ID").Columns("名称").Select();
- }
- //获取所有反馈人
- public DataTable GetFKR(string text,string CompanyID)
- {
-
- string sql = "select ID,z.姓名||'['||z.简码||']' as 姓名, '远程数据' as 是否缓存 FROM 人员信息 z where 是否删除=0 and z.状态=1 and z.渠道id='" + CompanyID+"'";
- DataTable dt = SqlBuilder.SqlText(sql).Select();
- if (!string.IsNullOrWhiteSpace(text))
- {
- var arry = text.Split(',');
- var sql2 = $@"Select *
- From ((Select ID, z.姓名 || '[' || z.简码 || ']' As 姓名, '远程数据' As 是否缓存 From 人员信息 z Where 是否删除 = 0 and z.状态=1) Union
- (Select ID, z.姓名 || '[' || z.简码 || ']' As 姓名, '缓存数据' As 是否缓存
- From 人员信息 z
- Where 是否删除 = 0 and z.状态=1 And ID In ({text.Substring(0, text.Length - 1)})) order by 是否缓存)";
- return SqlBuilder.SqlText(sql2).Select();
- }
- return dt;
- }
- //获取用户信息
- public DataTable GetUserInfo(UserInfo user)
- {
- return SelectBuilder.From("用户信息").Columns("*").Where("ID", user.PersonID).Select();
- }
- //根据流程ID获取问题工作流程信息
- public DataTable SelectJboFlowInfo(string id)
- {
- return SelectBuilder.From("问题工作流程").Columns("来源ID").Columns("环节ID").Columns("目标ID").Columns("目录ID").Where("ID", id).Select();
- }
- //获取问题来源(用户机构卫计委)
- public DataTable GetProblemSource(int personProperty, string code)
- {
- return SelectBuilder.From("基础编码").Columns("代码").Columns("显示名").Columns("ID").Where("代码", code).Where("分类ID", "2DDA172A-499A-40CC-BA6A-29AB0FAEEDCB").Where("启用", 1).Select();
- }
- //获取问题来源(中联本部)
- public DataTable GetProblemSource(int personProperty)
- {
- return SelectBuilder.From("基础编码").Columns("代码").Columns("显示名").Columns("ID").Where("分类ID", "2DDA172A-499A-40CC-BA6A-29AB0FAEEDCB").Where("启用", 1).Select();
- }
- //问题性质(用户机构卫计委)
- public DataTable GetProblemNature(int personProperty, string code)
- {
- return SelectBuilder.From("基础编码").Columns("代码").Columns("显示名").Columns("ID").Where("代码", code).Where("分类ID", "AFBA7E41-A62E-4AB0-B861-40BAB5DA6F73").Where("启用", 1).Select();
- }
- //问题性质(中联本部)
- public DataTable GetProblemNature(int personProperty)
- {
- return SelectBuilder.From("基础编码").Columns("代码").Columns("显示名").Columns("ID").Where("分类ID", "AFBA7E41-A62E-4AB0-B861-40BAB5DA6F73").Where("启用", 1).Select();
- }
- //根据性质ID返回性质代码
- public DataTable SelectNature(string wTXZ)
- {
- return SelectBuilder.From("基础编码").Columns("代码").Columns("显示名").Columns("ID").Where("ID", wTXZ).Where("启用", 1).Select();
- }
- //根据项目获取对应的渠道
- public DataTable GetChannelByInfo(string id)
- {
- if (string.IsNullOrEmpty(id))
- {
- return this.SelectBuilder.From("渠道信息").Columns("ID,名称").Select();
- }
- else
- {
- return this.SelectBuilder.From("项目信息 a,渠道信息 b").Columns("b.ID,b.名称").Where("a.渠道ID=b.ID").Where("a.ID", id).Select();
- }
- }
- //获取总部的人员信息
- public DataTable GetUserInfoByChannelId()
- {
- return base.SqlBuilder.SqlText("select id,姓名||'['||简码||']' as 姓名 from 人员信息 where 渠道id='4A9B2065-65AB-4411-B528-968D26737EAE' and 是否删除=0 and 状态 =1").Select();
- }
- //获取关注的产品信息
- public DataTable GetMyConfig(string myconfig, string id)
- {
- return SelectBuilder.From("项目产品模块").Columns("ID").Where("产品ID", myconfig).Where("项目ID", id).Select();
- }
- //获取关注的模块信息
- public DataTable GetMyConfigModual(string myconfig, string CPID)
- {
- CPID = SelectBuilder.From("项目产品模块").Columns("产品ID").Where("ID", CPID).Select().Rows[0]["产品ID"].ToString();
- int r = SelectBuilder.From("产品模块功能").Columns("id").Where("产品ID", CPID).Where("ID", myconfig).Select().Rows.Count;
- if (r > 0)
- {
- return SelectBuilder.From("产品模块功能").Columns("*").Where("ID", myconfig).Select();
- }
- return null;
- }
- //根据登录人员信息获取对应的项目(其他人员)
- public DataTable GetProjectByInfo(UserInfo user)
- {
- string sql = "select ID,名称||'['||简码||']' as 名称 from 项目信息 where ID in (select * from table(f_split_string(:companyID,','))) and 启用=1";
- if (user.PersonProperty == 2)
- {
- //string companyID = SelectBuilder.From("系统账户权限").Where("账户ID", user.ID).Columns("项目ID").Select().Rows[0]["项目ID"].ToString();
- //return SqlBuilder.SqlText(sql).Parameters("companyID", companyID).Select();
- if(user.AuthorizeAll==1)//此权限控制不授权,就可以访问渠道下面所有项目
- {
- sql = @"select ID, 名称 || '[' || 简码 || ']' as 名称 from 项目信息 where 渠道ID =:CompanyID";
- return SqlBuilder.SqlText(sql).Parameters("CompanyID", user.CompanyID).Select();
- }
- else
- {
- sql = @"select ID, 名称 || '[' || 简码 || ']' as 名称 from 项目信息 where ID in(select * from table(f_split_string(
- (select q.项目ID from 系统账户权限 q where q.账户id = :账户ID and ROWNUM =1) ,',')))and 启用 = 1";
- // sql = @"select ID, 名称 || '[' || 简码 || ']' as 名称 from 项目信息 where ID in(select * from table(f_split_string(
- //(select wm_concat(q.项目ID) from 系统账户权限 q where q.账户id = :账户ID) ,',')))and 启用 = 1";
- return SqlBuilder.SqlText(sql).Parameters("账户ID", user.ID).Select();
- }
-
-
- }
- return SqlBuilder.SqlText(sql).Parameters("companyID", user.DefaultProjectID).Select();
- }
- //根据登录人员信息获取对应的项目(本部人员)
- public DataTable GetProjectByInfo()
- {
- string sql = "select ID,名称||'['||简码||']' as 名称 from 项目信息 where 启用=1";
- return SqlBuilder.SqlText(sql).Select();
- }
- //项目产品模块信息
- public DataTable SelectProjectModualInfo(string CPID)
- {
- return SelectBuilder.From("项目产品模块").Columns("产品ID").Columns("版本").Where("ID", CPID).Select();
- }
- //问题紧急程度
- public DataTable GetEmergencylevel()
- {
- return SelectBuilder.From("基础编码").Columns("代码").Columns("显示名").Columns("ID").Where("分类ID", "A10D6027-DEDD-4B6D-9549-33830DE52AEA").Where("启用", 1).Select();
- }
- //根据问题编号获取问题信息
- public DataTable GetInfolByBH(int id)
- {
- //return SelectBuilder.From("问题记录").Columns("*").Where("编号", id).Select();
- var exe = this.ProcedureBuilder
- .Procedure("B_问题管理.p_获取问题详情")
- .Paramter("问题编号_In", id)
- .ParamterOut("Resultlist", true);
- exe.Execute();
- var dt = exe.ParameterValue<DataTable>("Resultlist");
- return dt;
- }
- //根据登录人员获取人员信息
- public DataTable GetPersonInfoByID(string PersonID)
- {
- return SelectBuilder.From("人员信息").Columns("ID").Columns("姓名").Where("ID", PersonID).Select();
- }
- //获取唯一问题序列编号
- public DataTable GetSequence()
- {
- string sql = "select 产品问题记录_编号.nextval from dual";
- return SqlBuilder.SqlText(sql).Select();
- }
- //根据产品ID获取产品模块
- public DataTable GetModualByCPID(string id)
- {
- DataTable dt = SelectBuilder.From("项目产品模块").Columns("产品ID").Where("ID", id).Select();
- if (dt.Rows.Count == 0)
- {
- return null;
- }
- string CPID = dt.Rows[0]["产品ID"].ToString();
- return SelectBuilder.From("产品模块功能").Columns("*").Where("产品ID", CPID).Select();
- }
- //根据项目获取对应的机构
- public DataTable GetStationByID(string id)
- {
- string sql = "select ID,名称||'['||简码||']' as 名称 from 站点信息 where 项目ID=:id";
- return SqlBuilder.SqlText(sql).Parameters("id", id).Select();
- }
- //根据项目ID获取产品信息
- public DataTable GetProductByID(string defaultProjectID)
- {
- var exe = this.ProcedureBuilder
- .Procedure("p_基础管理_渠道项目机构.p_项目产品模块_Select")
- .Paramter("项目id_In", defaultProjectID)
- .ParamterOut("Resultlist", true);
- exe.Execute();
- var dt = exe.ParameterValue<DataTable>("Resultlist");
- return dt;
- }
- #endregion
- #region 问题登记
- //用户机构卫计委登记问题【状态:登记】
- /// <summary>
- ///
- /// </summary>
- /// <param name="model"></param>
- /// <param name="user"></param>
- /// <param name="id"></param>
- /// <returns></returns>
- public ProblemStateModel RegisterProblem(ProblemBusinessModel model, UserInfo user, string id)
- {
- using (var tran = this.DBTransaction.BeginTrans())
- {
- ProblemStateModel state = new ProblemStateModel();
- try
- {
- //根据项目产品模块ID获取产品ID
- string CPID = SelectProjectModualInfo(model.CPID).Rows[0]["产品ID"].ToString();
- state.Count = 0;
- int ProjectDeal = 0;
- int FlowID;//流程ID
- int Step;//环节ID
- var FKR = string.Empty;//反馈人
- //问题性质
- int Nature = SelectNature(model.WTXZ).Rows[0]["代码"].ToInt32();
- //读取紧急程度
- DataTable dt = SelectBuilder.From("基础编码").Columns("代码").Where("ID", model.JJDM).Select();
- string JJCD = dt.Rows[0]["代码"].ToString();
- //反馈人
- if (model.FKR.Length > 0)
- {
- DataTable dd = SelectBuilder.From("人员信息").Columns("姓名").Where("ID", model.FKR).Select();
- if (dd.Rows.Count == 0)
- {
- FKR = model.FKR;
- }
- else
- {
- FKR = dd.Rows[0]["姓名"].ToString();
- }
- }
- //来源代码
- int FromID = SelectBuilder.From("基础编码").Columns("代码").Where("ID", model.JJDM).Select().Rows[0]["代码"].ToInt32();
- //工作流目录ID
- dt = SelectBuilder.From("项目问题流程").Columns("工作流目录ID").Where("项目ID", model.XMID).Where("机构ID", model.JGID).Select();
- int CatalogID = 1;
- //如果没有设置审核流程则默认为常规流程
- if (dt.Rows.Count > 0)
- {
- CatalogID = int.Parse((dt.Rows[0]["工作流目录ID"].ToString()));
- }
- //如果是常规流程或是中联提交流程则【项目处理=1】
- //如果是机构处理流程并且操作人员是卫计委则【项目处理=1】
- //如果是卫计委处理流程并且操作人员是机构管理员则【项目处理=1】
- if (CatalogID == 1 || CatalogID == 5 || (CatalogID == 2 && user.PersonProperty == 5) || (CatalogID == 3 && user.PersonProperty == 5) || (CatalogID == 3 && user.PersonProperty == 4))
- {
- ProjectDeal = 1;
- }
- //当登记人员为机构或卫计委时走不同的流程
- if (user.PersonProperty == 4)
- {
- //问题工作流程
- DataTable dz = SelectBuilder.From("问题工作流程").Columns("ID").Columns("环节ID").Where("目录ID", CatalogID).Where("序号", 2).Select();
- FlowID = dz.Rows[0]["ID"].ToInt32();//流程ID
- Step = dz.Rows[0]["环节ID"].ToInt32();//环节ID
- }
- else if (user.PersonProperty == 5)
- {
- //问题工作流程
- DataTable dz = SelectBuilder.From("问题工作流程").Columns("ID").Columns("环节ID").Where("目录ID", CatalogID).Where("序号", 3).Select();
- FlowID = dz.Rows[0]["ID"].ToInt32();//流程ID
- Step = dz.Rows[0]["环节ID"].ToInt32();//环节ID
- }
- else
- {
- //问题工作流程
- DataTable dz = SelectBuilder.From("问题工作流程").Columns("ID").Columns("环节ID").Where("目录ID", CatalogID).Where("序号", 1).Select();
- FlowID = dz.Rows[0]["ID"].ToInt32();//流程ID
- Step = dz.Rows[0]["环节ID"].ToInt32();//环节ID
- }
- //保存前判断问题编号是否已经使用
- if (SelectBuilder.From("问题记录").Columns("编号").Where("编号", model.BH).Select().Rows.Count > 0)
- {
- model.BH = int.Parse(GetSequence().Rows[0]["nextval"].ToString());
- }
- var XZWTID = model.CFWTID;
- //是否为重复问题
- if (!String.IsNullOrEmpty(model.CFWTID))
- {
- model.CFWTID = CheckProIsRepeat(model.CFWTID);
- }
- var time = this.DataBaseBuilder.GetDateTime;
- //添加数据到问题记录表中
- state.Count = InsertBuilder.Insert("问题记录")
- .Column("ID", id)
- .Column("编号", model.BH)
- .Column("模块ID", model.MKID)
- .Column("项目ID", model.XMID)
- .Column("渠道ID", model.QDID)
- .Column("产品ID", CPID)
- .Column("机构ID", model.JGID)
- .Column("紧急代码", JJCD)
- .Column("紧急描述", model.JJMS)
- .Column("要求时间", model.YQSJ)
- .Column("问题类型", 1)
- .Column("登记人", user.Name)
- .Column("登记人ID", user.PersonID)
- .Column("版本号", model.BBH)
- .Column("问题描述", model.WTMS)
- .Column("登记日期", time)
- .Column("反馈日期", model.DJRJ)
- .Column("问题标题", model.WTBT)
- .Column("反馈人", FKR)
- .Column("技术支持", 0)
- .Column("研发协助", 0)
- .Column("项目处理", ProjectDeal)
- .Column("是否终止", 0)
- .Column("是否解决", 0)
- .Column("环节ID", Step)
- .Column("来源代码", FromID)
- .Column("问题性质", Nature)
- .Column("是否受理", 0)
- .Column("流程ID", FlowID)
- .Column("重复问题ID", model.CFWTID)
- .Column("选择重复ID", XZWTID)
- .Column("迭代ID", model.DDID)
- .Execute(tran);
- string ID = Guid.NewGuid().ToString();
- state.ID = ID;
- state.ProblemProcessID = ID;
- state.Count = InsertBuilder.Insert("问题记录过程")
- .Column("ID", ID)
- .Column("问题ID", id)
- .Column("记录人ID", user.PersonID)
- .Column("记录时间", time)
- .Column("当前流程ID", FlowID)
- .Column("状态", 1)
- .Column("耗时", 0)
- .Column("描述", "登记问题")
- .Execute(tran);
- //返回工作流目录ID
- state.CatalogID = CatalogID;
- tran.CommitTrans();
- return state;
- }
- catch (Exception ex)
- {
- tran.Rollback();
- Logger.Instance.Error("调用RegisterProblem时发生异常错误", ex);
- state.Count = 0;
- return state;
- }
- }
- }
- //中联人员登记问题
- public ProblemStateModel RegisterProblemByZL(ProblemBusinessModel model, UserInfo user, string id)
- {
- using (var tran = this.DBTransaction.BeginTrans())
- {
- ProblemStateModel state = new ProblemStateModel();
- try
- {
- //根据项目产品模块ID获取产品ID
- string CPID = SelectProjectModualInfo(model.CPID).Rows[0]["产品ID"].ToString();
- state.Count = 0;
- int FlowID = 0;//流程ID
- int RingID = 0;//环节ID
- int Support = 0;//技术支持
- var FKR = string.Empty;//反馈人
- //问题性质
- int Nature = SelectNature(model.WTXZ).Rows[0]["代码"].ToInt32();
- //读取紧急程度
- DataTable dt = SelectBuilder.From("基础编码").Columns("代码").Where("ID", model.JJDM).Select();
- string JJCD = dt.Rows[0]["代码"].ToString();
- //反馈人
- if (model.FKR.Length > 0)
- {
- DataTable dd = SelectBuilder.From("人员信息").Columns("姓名").Where("ID", model.FKR).Select();
- if (dd.Rows.Count == 0)
- {
- FKR = model.FKR;
- }
- else
- {
- FKR = dd.Rows[0]["姓名"].ToString();
- }
- }
- int? FromID = null;
- if (!string.IsNullOrEmpty(model.LYDM))
- { //来源代码
- FromID = SelectBuilder.From("基础编码").Columns("代码").Where("ID", model.LYDM).Select().Rows[0]["代码"]
- .ToInt32();
- }
- //登记问题是否选择机构
- if (model.JGID.Length > 0)
- {
- dt = SelectBuilder.From("项目问题流程").Columns("工作流目录ID").Where("项目ID", model.XMID).Where("机构ID", model.JGID).Select();
- }
- else
- {
- dt = SelectBuilder.From("项目问题流程").Columns("工作流目录ID").Where("项目ID", model.XMID).Where("机构ID is null").Select();
- }
- //工作流目录ID
- int CatalogID = 1;
- if (dt.Rows.Count > 0)
- {
- CatalogID = int.Parse((dt.Rows[0]["工作流目录ID"].ToString()));
- }
- //如果操作人员为渠道人员
- if (user.PersonProperty == 2)
- {
- //常规流程
- if (CatalogID == 1)
- {
- FlowID = 2;
- RingID = 3;
- Support = 0;
- }
- //机构内处理流程
- if (CatalogID == 2)
- {
- FlowID = 7;
- RingID = 3;
- Support = 0;
- }
- //卫计委处理流程
- if (CatalogID == 3)
- {
- FlowID = 12;
- RingID = 3;
- Support = 0;
- }
- //机构和卫计委流程
- if (CatalogID == 4)
- {
- FlowID = 18;
- RingID = 3;
- Support = 0;
- }
- //中联流程
- if (CatalogID == 5)
- {
- FlowID = 21;
- RingID = 3;
- Support = 0;
- }
- }
- else
- {
- //常规流程
- if (CatalogID == 1)
- {
- FlowID = 3;
- RingID = 4;
- Support = 1;
- }
- //机构内处理流程
- if (CatalogID == 2)
- {
- FlowID = 8;
- RingID = 4;
- Support = 1;
- }
- //卫计委处理流程
- if (CatalogID == 3)
- {
- FlowID = 13;
- RingID = 4;
- Support = 1;
- }
- //机构和卫计委流程
- if (CatalogID == 4)
- {
- FlowID = 19;
- RingID = 4;
- Support = 1;
- }
- //中联提交流程
- if (CatalogID == 5)
- {
- FlowID = 22;
- RingID = 4;
- Support = 1;
- }
- }
- //是否为重复问题
- var XZWTID = model.CFWTID;
- if (!String.IsNullOrEmpty(model.CFWTID))
- {
- model.CFWTID = CheckProIsRepeat(model.CFWTID);
- }
- var time = this.DataBaseBuilder.GetDateTime;
- //添加数据到问题记录表中
- state.Count = InsertBuilder.Insert("问题记录")
- .Column("ID", id)
- .Column("编号", model.BH)
- .Column("模块ID", model.MKID)
- .Column("项目ID", model.XMID)
- .Column("渠道ID", model.QDID)
- .Column("产品ID", CPID)
- .Column("机构ID", model.JGID)
- .Column("紧急代码", JJCD)
- .Column("紧急描述", model.JJMS)
- .Column("要求时间", model.YQSJ)
- .Column("问题类型", 1)
- .Column("登记人", user.Name)
- .Column("登记人ID", user.PersonID)
- .Column("版本号", model.BBH)
- .Column("问题描述", model.WTMS)
- .Column("登记日期", time)
- .Column("反馈日期", model.DJRJ)
- .Column("问题标题", model.WTBT)
- .Column("反馈人", FKR)
- .Column("技术支持", Support)
- .Column("研发协助", 0)
- .Column("项目处理", 1)
- .Column("是否终止", 0)
- .Column("是否解决", 0)
- .Column("环节ID", RingID)
- .Column("来源代码", FromID)
- .Column("问题性质", Nature)
- .Column("是否受理", 0)
- .Column("流程ID", FlowID)
- .Column("重复问题ID", model.CFWTID)
- .Column("选择重复ID", XZWTID)
- .Column("迭代ID", model.DDID)
- .Execute(tran);
- string ID = Guid.NewGuid().ToString();
- state.ProblemProcessID = ID;
- state.Count = InsertBuilder.Insert("问题记录过程")
- .Column("ID", ID)
- .Column("问题ID", id)
- .Column("记录人ID", user.PersonID)
- .Column("记录时间", time)
- .Column("当前流程ID", FlowID)
- .Column("状态", 1)
- .Column("耗时", 0)
- .Column("描述", "登记问题")
- .Execute(tran);
- //返回工作流目录ID
- state.CatalogID = 5;
- //是否直接处理
- if (model.RegisterType == 2)
- {
- UpdateBuilder.Update("问题记录")
- .Where("ID", id)
- .Column("是否解决", 1)
- .Column("是否受理", 1)
- .Column("解决方案", model.JJFA)
- .Column("分类ID", model.TYID)
- .Column("受理时间", DataBaseBuilder.GetDateTime)
- .Column("受理人", user.Name)
- .Column("受理人ID", user.PersonID)
- .Execute(tran);
- var dealtime = this.DataBaseBuilder.GetDateTime;
- InsertBuilder.Insert("问题记录过程")
- .Column("ID", Guid.NewGuid().ToString())
- .Column("问题ID", id)
- .Column("记录人ID", user.PersonID)
- .Column("记录时间", dealtime.AddSeconds(1))
- .Column("结束时间", dealtime.AddSeconds(1))
- .Column("当前流程ID", FlowID)
- .Column("状态", 7)
- .Column("耗时", 0)
- .Column("描述", model.JJFA)
- .Execute(tran);
- UpdateBuilder.Update("问题记录过程").Column("结束时间", dealtime.AddSeconds(1)).Where("ID", state.ProblemProcessID).Execute(tran);
- }
- tran.CommitTrans();
- return state;
- }
- catch (Exception ex)
- {
- tran.Rollback();
- Logger.Instance.Error("调用RegisterProblemByZL时发生异常错误", ex);
- state.Count = 0;
- return state;
- }
- }
- }
- //用户提交问题【状态:提交】
- public int PostProblem(string id, string flowID, UserInfo user, string ProcessID)
- {
- using (var tran = this.DBTransaction.BeginTrans())
- {
- try
- {
- int x = 0;
- //根据当前流程ID获取环节ID
- int Step = SelectJboFlowInfo(flowID).Rows[0]["环节ID"].ToInt32();
- int FromID = SelectJboFlowInfo(flowID).Rows[0]["来源ID"].ToInt32();
- //添加数据到问题记录表中
- x = UpdateBuilder.Update("问题记录")
- .Where("ID", id)
- .Column("流程ID", flowID)
- .Column("环节ID", Step)
- .Execute(tran);
- var time = this.DataBaseBuilder.GetDateTime;
- x = InsertBuilder.Insert("问题记录过程")
- .Column("ID", Guid.NewGuid().ToString())
- .Column("问题ID", id)
- .Column("记录人ID", user.PersonID)
- .Column("记录时间", time.AddSeconds(1))
- .Column("当前流程ID", flowID)
- .Column("状态", 5)
- .Column("耗时", 0)
- .Column("描述", "提交问题")
- .Column("来源流程ID", FromID)
- .Execute(tran);
- UpdateBuilder.Update("问题记录过程").Column("结束时间", time.AddSeconds(1)).Where("ID", ProcessID).Execute(tran);
- tran.CommitTrans();
- return x;
- }
- catch (Exception ex)
- {
- tran.Rollback();
- Logger.Instance.Error("调用PostProblem时发生异常错误", ex);
- return -1;
- }
- }
- }
- //中联人员直接提交问题
- public ProblemStateModel RegisterSubitProblem(ProblemBusinessModel model, UserInfo user, string id)
- {
- using (var tran = this.DBTransaction.BeginTrans())
- {
- ProblemStateModel state = new ProblemStateModel();
- try
- {
- //根据项目产品模块ID获取产品ID
- string CPID = SelectProjectModualInfo(model.CPID).Rows[0]["产品ID"].ToString();
- state.Count = 0;
- int FlowID = 0;//流程ID
- int RingID = 0;//环节ID
- int Support = 0;//技术支持
- int Development = 0;//研发协助
- var FKR = string.Empty;//反馈人
- //问题性质
- int Nature = SelectNature(model.WTXZ).Rows[0]["代码"].ToInt32();
- //读取紧急程度
- DataTable dt = SelectBuilder.From("基础编码").Columns("代码").Where("ID", model.JJDM).Select();
- string JJCD = dt.Rows[0]["代码"].ToString();
- //反馈人
- if (model.FKR.Length > 0)
- {
- DataTable dd = SelectBuilder.From("人员信息").Columns("姓名").Where("ID", model.FKR).Select();
- if (dd.Rows.Count == 0)
- {
- FKR = model.FKR;
- }
- else
- {
- FKR = dd.Rows[0]["姓名"].ToString();
- }
- }
- //来源代码
- int FromID = SelectBuilder.From("基础编码").Columns("代码").Where("ID", model.JJDM).Select().Rows[0]["代码"]
- .ToInt32();
- //登记问题是否选择机构
- if (model.JGID.Length > 0)
- {
- dt = SelectBuilder.From("项目问题流程").Columns("工作流目录ID").Where("项目ID", model.XMID).Where("机构ID", model.JGID).Select();
- }
- else
- {
- dt = SelectBuilder.From("项目问题流程").Columns("工作流目录ID").Where("项目ID", model.XMID).Where("机构ID is null").Select();
- }
- //工作流目录ID
- int CatalogID = 1;
- if (dt.Rows.Count > 0)
- {
- CatalogID = int.Parse((dt.Rows[0]["工作流目录ID"].ToString()));
- }
- //如果操作人员为渠道人员
- if (user.PersonProperty == 2)
- {
- //常规流程
- if (CatalogID == 1)
- {
- FlowID = 2;
- RingID = 3;
- Support = 0;
- }
- //机构内处理流程
- if (CatalogID == 2)
- {
- FlowID = 7;
- RingID = 3;
- Support = 0;
- }
- //卫计委处理流程
- if (CatalogID == 3)
- {
- FlowID = 12;
- RingID = 3;
- Support = 0;
- }
- //机构和卫计委流程
- if (CatalogID == 4)
- {
- FlowID = 18;
- RingID = 3;
- Support = 0;
- }
- //中联流程
- if (CatalogID == 5)
- {
- FlowID = 21;
- RingID = 3;
- Support = 0;
- }
- }
- else
- {
- //常规流程
- if (CatalogID == 1)
- {
- FlowID = 3;
- RingID = 4;
- Support = 1;
- }
- //机构内处理流程
- if (CatalogID == 2)
- {
- FlowID = 8;
- RingID = 4;
- Support = 1;
- }
- //卫计委处理流程
- if (CatalogID == 3)
- {
- FlowID = 13;
- RingID = 4;
- Support = 1;
- }
- //机构和卫计委流程
- if (CatalogID == 4)
- {
- FlowID = 19;
- RingID = 4;
- Support = 1;
- }
- //中联提交流程
- if (CatalogID == 5)
- {
- FlowID = 22;
- RingID = 4;
- Support = 1;
- }
- }
- var XZWTID = model.CFWTID;
- //是否为重复问题
- if (!String.IsNullOrEmpty(model.CFWTID))
- {
- model.CFWTID = CheckProIsRepeat(model.CFWTID);
- }
- string ID = Guid.NewGuid().ToString();
- var time = this.DataBaseBuilder.GetDateTime;
- //添加数据到问题记录表中
- state.Count = InsertBuilder.Insert("问题记录")
- .Column("ID", id)
- .Column("编号", model.BH)
- .Column("模块ID", model.MKID)
- .Column("项目ID", model.XMID)
- .Column("渠道ID", model.QDID)
- .Column("产品ID", CPID)
- .Column("机构ID", model.JGID)
- .Column("紧急代码", JJCD)
- .Column("紧急描述", model.JJMS)
- .Column("要求时间", model.YQSJ)
- .Column("问题类型", 1)
- .Column("登记人", user.Name)
- .Column("登记人ID", user.PersonID)
- .Column("版本号", model.BBH)
- .Column("问题描述", model.WTMS)
- .Column("登记日期", time)
- .Column("反馈日期", model.DJRJ)
- .Column("问题标题", model.WTBT)
- .Column("反馈人", FKR)
- .Column("技术支持", Support)
- .Column("研发协助", 0)
- .Column("项目处理", 1)
- .Column("是否终止", 0)
- .Column("是否解决", 0)
- .Column("环节ID", RingID)
- .Column("来源代码", FromID)
- .Column("问题性质", Nature)
- .Column("是否受理", 0)
- .Column("流程ID", FlowID)
- .Column("重复问题ID", model.CFWTID)
- .Column("选择重复ID", XZWTID)
- .Column("迭代ID", model.DDID)
- .Execute(tran);
- if (state.Count == 1)
- {
- state.ProblemProcessID = ID;
- state.Count = InsertBuilder.Insert("问题记录过程")
- .Column("ID", ID)
- .Column("问题ID", id)
- .Column("记录人ID", user.PersonID)
- .Column("记录时间", time)
- .Column("当前流程ID", FlowID)
- .Column("状态", 1)
- .Column("耗时", 0)
- .Column("描述", "登记问题")
- .Execute(tran);
- //返回工作流目录ID
- state.CatalogID = 5;
- }
- //提交问题操作
- //根据当前流程ID获取下个流程ID以及环节ID
- dt = SelectBuilder.From("问题工作流程").Where("ID", FlowID).Columns("目标ID").Select();
- int NextFlowID = dt.Rows[0]["目标ID"].ToInt32();
- dt = SelectBuilder.From("问题工作流程").Where("ID", NextFlowID).Columns("环节ID").Select();
- int NextRingID = dt.Rows[0]["环节ID"].ToInt32();
- //如果环节是研发协助
- if (NextFlowID == 5)
- {
- Development = 1;
- }
- //如果是医院管理员或者卫计委走的常规流程
- if ((user.PersonProperty == 4 || user.PersonProperty == 5) && CatalogID == 1)
- {
- NextRingID = RingID;
- NextFlowID = FlowID;
- Support = 0;
- Development = 0;
- }
- //修改问题记录信息
- UpdateBuilder.Update("问题记录")
- .Where("ID", id)
- .Column("技术支持", Support)
- .Column("研发协助", Development)
- .Column("环节ID", NextRingID)
- .Column("流程ID", NextFlowID)
- .Execute(tran);
- //增加一条提交过程
- DateTime submittime = this.DataBaseBuilder.GetDateTime;
- InsertBuilder.Insert("问题记录过程")
- .Column("ID", Guid.NewGuid().ToString())
- .Column("问题ID", id)
- .Column("记录人ID", user.PersonID)
- .Column("记录时间", submittime.AddSeconds(1))
- .Column("当前流程ID", NextFlowID)
- .Column("来源流程ID", FlowID)
- .Column("状态", 5)
- .Column("耗时", 0)
- .Column("描述", "直接提交")
- .Execute(tran);
- UpdateBuilder.Update("问题记录过程").Where("ID", state.ProblemProcessID).Column("结束时间", submittime.AddSeconds(1)).Execute(tran);
- tran.CommitTrans();
- return state;
- }
- catch (Exception ex)
- {
- tran.Rollback();
- Logger.Instance.Error("调用RegisterSubitProblem时发生异常错误", ex);
- state.Count = 0;
- return state;
- }
- }
- }
- //上传附件
- public int FileUpload(string problemID, string annexID, string name, string fileType, string id)
- {
- try
- {
- int r = 0;
- //判断文件类型
- if (fileType == "image/png" || fileType == "image/jpeg")
- {
- r = this.InsertBuilder
- .Insert("产品问题附件")
- .Column("ID", Guid.NewGuid().ToString())
- .Column("问题ID", problemID)
- .Column("类型", "1")
- .Column("附件ID", annexID)
- .Column("添加时间", this.DataBaseBuilder.GetDateTime)
- .Column("添加人", name)
- .Column("过程ID", id)
- .Execute();
- }
- else
- {
- r = this.InsertBuilder
- .Insert("产品问题附件")
- .Column("ID", Guid.NewGuid().ToString())
- .Column("问题ID", problemID)
- .Column("类型", "2")
- .Column("附件ID", annexID)
- .Column("添加时间", this.DataBaseBuilder.GetDateTime)
- .Column("添加人", name)
- .Column("过程ID", id)
- .Execute();
- }
- return r;
- }
- catch (Exception ex)
- {
- Logger.Instance.Error("调用FileUpload时发生异常错误", ex);
- return 0;
- }
- }
- //判断项目的审核流程是否允许用户反馈问题
- public int CheckApprovalProcess(string QDID, string XMID, string JGID)
- {
- return SelectBuilder.From("项目问题流程").Columns("ID").Where("渠道ID", QDID).Where("项目ID", XMID).Where("机构ID", JGID).Where("工作流目录ID", 5).Select().Rows.Count;
- }
- //检查问题是否为重复问题并返回对应的重复问题ID字段
- public string CheckProIsRepeat(string WTID)
- {
- string NewID = "";
- DataTable dt = SqlBuilder.SqlText("select 重复问题ID from 问题记录 where ID=:WTID").Parameters("WTID", WTID).Select();
- if (!String.IsNullOrWhiteSpace(dt.Rows[0]["重复问题ID"].ToString()))
- {
- return dt.Rows[0]["重复问题ID"].ToString();
- }
- else
- {
- NewID = Guid.NewGuid().ToString();
- UpdateBuilder.Update("问题记录").Column("重复问题ID", NewID).Where("ID", WTID).Execute();
- return NewID;
- }
- }
- #endregion
- #region 问题修改
- //修改问题操作
- public int UpdateProblem(ProblemBusinessModel model, UserInfo user)
- {
- try
- {
- var FKR = string.Empty;//反馈人
- //根据项目产品模块ID获取产品ID
- DataTable dt = SelectBuilder.From("项目产品模块").Columns("产品ID").Where("ID", model.CPID).Select();
- string CPID = dt.Rows[0]["产品ID"].ToString();
- var dt_FKR = SelectBuilder.From("问题记录").Columns("反馈人").Where("编号", model.BH).Select().Rows[0]["反馈人"].ToString();
- //判断是否修改反馈人
- if (model.FKR.Length > 0)
- {
- if (model.FKR == dt_FKR)
- {
- FKR = dt_FKR;
- }
- else
- {
- if (model.FKR.Length == 36)
- {
- FKR = SelectBuilder.From("人员信息").Columns("姓名").Where("ID", model.FKR).Select().Rows[0]["姓名"].ToString();
- }
- else
- {
- FKR = model.FKR;
- }
- }
- }
- if(model.YFCLRID.IsNullOrEmpty())//获取研发人员
- {
- model.YFCLR = "";
- }
- else
- {
- model.YFCLR =SelectBuilder.From("人员信息").Columns("姓名").Where("ID", model.YFCLRID).Select().Rows[0]["姓名"].ToString();
- }
- if (model.CSCLRID.IsNullOrEmpty())//获取测试人员
- {
- model.CSCLR = "";
- }
- else
- {
- model.CSCLR = SelectBuilder.From("人员信息").Columns("姓名").Where("ID", model.CSCLRID).Select().Rows[0]["姓名"].ToString();
- }
- var current = SqlBuilder.SqlText("select 重复问题ID from 问题记录 where 编号=:BH").Parameters("BH", model.BH).Select();
- string CFWTID = model.CFWTID;
- //判断重复问题ID是否一致
- if (model.CFWTID != current.Rows[0]["重复问题ID"].ToString())
- {
- //是否为重复问题
- if (!String.IsNullOrWhiteSpace(model.CFWTID))
- {
- model.CFWTID = CheckProIsRepeat(model.CFWTID);
- }
- }
- return UpdateBuilder.Update("问题记录")
- .Where("编号", model.BH)
- .Column("模块ID", model.MKID)
- .Column("项目ID", model.XMID)
- .Column("渠道ID", model.QDID)
- .Column("机构ID", model.JGID)
- .Column("产品ID", CPID)
- .Column("问题性质", model.WTXZ)
- .Column("来源代码", model.LYDM)
- .Column("紧急代码", model.JJDM)
- .Column("紧急描述", model.JJMS)
- .Column("要求时间", model.YQSJ)
- .Column("反馈日期", model.DJRJ)
- .Column("版本号", model.BBH)
- .Column("问题描述", model.WTMS)
- .Column("问题标题", model.WTBT)
- .Column("反馈人", FKR)
- .Column("迭代ID", model.DDID)
- .Column("研发处理人ID", model.YFCLRID)
- .Column("研发处理人", model.YFCLR)
- .Column("测试处理人ID", model.CSCLRID)
- .Column("测试处理人", model.CSCLR)
- .Column("解决版本状态", model.JJBBZT)
- .Column("重复问题ID", model.CFWTID)
- .Column("选择重复ID", CFWTID)
- .Column("解决版本", model.JJBB)
- .Execute();
- }
- catch (Exception ex)
- {
- Logger.Instance.Error("调用UpdateProblem时发生异常错误", ex);
- return -1;
- }
- }
- //获取问题附件
- public DataTable GetAttachment(string id)
- {
- var UID = SelectBuilder.From("问题记录").Columns("ID").Where("编号", id).Select().Rows[0]["ID"].ToString();
- return SelectBuilder.From("产品问题附件").Where("问题ID", UID).Columns("附件ID").Columns("类型").Select();
- }
- //返回问题是否有受理人
- public int GetAccept(string id)
- {
- int r = SelectBuilder.From("问题记录").Where("ID", id).Columns("ID").Where("受理人 is null").Select().Rows.Count;
- return r;
- }
- /// <summary>
- /// 获取问题记录信息
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public DataTable GetProblemInfo(string id)
- {
- var r = SelectBuilder.From("问题记录").Where("ID", id).Columns("*").Select();
- return r;
- }
- #endregion
- #region 删除问题
- public int Delete_Problem(string id)
- {
- using (var tran = this.DBTransaction.BeginTrans())
- {
- try
- {
- UpdateBuilder.Update("问题记录").Column("是否删除", -1).Where("ID", id).Execute(tran);
- var dt = SqlBuilder.SqlText("select * from 问题记录 where id=:ID").Parameters("ID", id).Select();
- if (!string.IsNullOrEmpty(dt.Rows[0]["关联ID"].ToString()))
- {
- var count = SqlBuilder.SqlText("select 关联数量 from 问题记录 where id=:ID").Parameters("ID", dt.Rows[0]["关联ID"].ToString()).Select().Rows[0]["关联数量"].ToInt32();
- UpdateBuilder.Update("问题记录").Column("关联数量", count - 1).Where("ID", dt.Rows[0]["关联ID"].ToString()).Execute(tran);
- }
- tran.CommitTrans();
- return 1;
- }
- catch (Exception ex)
- {
- tran.Rollback();
- Logger.Instance.Error("调用Delete_Problem时发生异常错误", ex);
- return 0;
- }
- }
- }
- //判断是否可以删除或修改
- public DataTable CheckState(string id)
- {
- return SelectBuilder.From("问题记录").Columns("是否终止").Columns("登记人ID").Columns("是否解决").Where("ID", id).Select();
- }
- //获取问题状态
- public bool GetProblemState(string id, UserInfo model)
- {
- try
- {
- //获取过程条数
- var count = this.SqlBuilder.SqlText("select Count(1) from 问题记录过程 gc where gc.问题id=:id").Parameters("id", id).Select<int>();
- //获取问题记录
- var dt = this.SqlBuilder.SqlText("select 是否受理,环节ID,受理人ID from 问题记录 where id=:id").Parameters("id", id).Select();
- var IsAccept = dt.Rows[0].GetValueByName<int>("是否受理");
- var AcceptId = dt.Rows[0].GetValueByName<string>("受理人ID");
- var CurrentLinkId = dt.Rows[0].GetValueByName<int>("环节ID");
- //获取当前用户所在环节Id
- var RegisLinkId = GetUserLinkId(model.PersonProperty, model.JobCode);
- return ((RegisLinkId >= CurrentLinkId || count <= 2) && (IsAccept == 0 || AcceptId == model.PersonID));
- }
- catch (Exception ex)
- {
- Logger.Instance.Error("获取问题状态出错", ex);
- return false;
- }
- }
- #endregion
- #region 向上提交
- //提交操作
- public int Submit(string id, UserInfo user, string CodeID)
- {
- try
- {
- int r = 0;
- //得到问题的当前流程ID
- int FlowID = SelectBuilder.From("问题记录").Columns("流程ID").Where("ID", id).Select().Rows[0]["流程ID"].ToInt32();
- //得到下个流程ID
- DataTable dt = SelectBuilder.From("问题工作流程").Columns("目标ID").Columns("环节ID").Where("ID", FlowID).Select();
- int CatalogID = dt.Rows[0]["环节ID"].ToInt32();
- int TargetID = dt.Rows[0]["目标ID"].ToInt32();
- //修改问题状态
- r = UpdateBuilder.Update("问题记录").Column("流程ID", TargetID).Column("环节ID", CatalogID).Where("ID", id).Execute();
- //增加问题记录过程
- var time = this.DataBaseBuilder.GetDateTime;
- if (r == 1)
- {
- r = InsertBuilder.Insert("问题记录过程")
- .Column("ID", Guid.NewGuid().ToString())
- .Column("问题ID", id)
- .Column("记录人ID", user.PersonID)
- .Column("记录时间", time)
- .Column("当前流程ID", TargetID)
- .Column("状态", 5)
- .Column("耗时", 0)
- .Column("附件ID", CodeID)
- .Column("描述", "提交问题")
- .Column("来源流程ID", FlowID)
- .Execute();
- }
- return r;
- }
- catch (Exception ex)
- {
- Logger.Instance.Error("调用Submit时发生异常错误", ex);
- return -1;
- }
- }
- #endregion
- #region 查看问题
- public DataTable CheckProblem(string id)
- {
- var exe = this.ProcedureBuilder
- .Procedure("B_问题处理.P_查看问题")
- .Paramter("问题ID_In", id)
- .ParamterOut("Resultlist", true);
- exe.Execute();
- return exe.ParameterValue<DataTable>("Resultlist");
- }
- #endregion
- #region 问题过程修改
- //问题过程的附件上传
- public int ProcessFileUpload(string problemID, string data, string name, string fileType, string processID)
- {
- try
- {
- int r = 0;
- //判断文件类型
- if (fileType == "image/png" || fileType == "image/jpeg")
- {
- r = this.InsertBuilder
- .Insert("产品问题附件")
- .Column("ID", Guid.NewGuid().ToString())
- .Column("问题ID", problemID)
- .Column("类型", "1")
- .Column("附件ID", data)
- .Column("添加时间", this.DataBaseBuilder.GetDateTime)
- .Column("添加人", name)
- .Column("过程ID", processID)
- .Execute();
- }
- else
- {
- r = this.InsertBuilder
- .Insert("产品问题附件")
- .Column("ID", Guid.NewGuid().ToString())
- .Column("问题ID", problemID)
- .Column("类型", "2")
- .Column("附件ID", data)
- .Column("添加时间", this.DataBaseBuilder.GetDateTime)
- .Column("添加人", name)
- .Column("过程ID", processID)
- .Execute();
- }
- return r;
- }
- catch (Exception ex)
- {
- Logger.Instance.Error("调用ProcessFileUpload时发生异常错误", ex);
- return 0;
- }
- }
- #endregion
- #region 处理问题
- //编辑资源信息
- public int SaveResource(ResourceBusinessModels model)
- {
- bool flag = model.ID == null;
- int result;
- if (flag)
- {
- result = base.InsertBuilder.Insert("问题资源").Column("ID", this.GetId("问题资源")).Column("实例类型", model.SL).Column("序号", model.XH).Column("类型", model.LX).Column("问题ID", model.WTID).Column("资源ID", model.ZYID).Column("内容", model.NR).Column("添加时间", base.DataBaseBuilder.GetDateTime).Column("添加人ID", model.TJRID).Execute();
- }
- else
- {
- result = base.UpdateBuilder.Update("问题资源").Where("ID", model.ID).Column("实例类型", model.SL).Column("序号", model.XH).Column("类型", model.LX).Column("资源ID", model.ZYID).Column("内容", model.NR).Execute();
- }
- return result;
- }
- //删除资源信息
- public int DelResource(string id)
- {
- string sql = "delete from 问题资源 where id=:id";
- return this.SqlBuilder.SqlText(sql).Parameters("id", id).Execute();
- }
- //获取序号
- public int GetNumber(string id)
- {
- string sql = "select max(序号) as 序号 from 问题资源 where 问题id=:id";
- var dt = this.SqlBuilder.SqlText(sql).Parameters("id", id).Select();
- return dt.Rows.Count > 0 ? dt.Rows[0][0].ToInt32() : 1;
- }
- //获取问题的资源列表
- public DataTable ResourceData(string proid)
- {
- return base.SqlBuilder.SqlText("select t.id,t.问题id,t.资源id,t.内容,t.类型,o.显示名 as decode类型 ,t.添加时间,t.序号,t.实例类型 from 问题资源 t left join 基础编码 o on o.代码=t.类型 and o.分类id='D715D19D-DE63-4E34-A84C-40DC08827D52' where t.问题id=:ID order by t.序号 desc").Parameters("ID", proid).Select();
- }
- public object ResourceData_Layui(string proid)
- {
- return base.SqlBuilder.SqlText("select w.id,w.问题id as WTID,w.资源id as ZYID,w.内容 as NR,w.类型 as LX ,o.显示名 as DecodeLX,w.序号 as XH,w.实例类型 as SL from 问题资源 w left join 基础编码 o on o.代码=w.类型 and o.分类id='D715D19D-DE63-4E34-A84C-40DC08827D52' where w.问题ID=:ID order by w.序号 desc").Parameters("ID", proid).Select().ToList<ResourceBusinessModels>();
- }
- //返回产品对应的版本
- public DataTable GetVersionById(string id, int type)
- {
- string text = "select id,版本号 from 产品版本配置 where 产品id=:id ";
- bool flag = type == 1;
- if (flag)
- {
- id = base.SqlBuilder.SqlText("select 产品id from 问题记录 where id=:id").Parameters("id", id).Select().Rows[0]["产品id"].ToString();
- text += " and 状态!=5 ";
- }
- else
- {
- bool flag2 = type == 2;
- if (flag2)
- {
- id = base.SqlBuilder.SqlText("select 产品id from 项目产品模块 where id=:id").Parameters("id", id).Select().Rows[0]["产品id"].ToString();
- text += " and 状态!=5 ";
- }
- else if (type == 3)//只查询未发布版本
- {
- text += " and 状态!=5 ";
- }
- }
- text += " order by 版本号 desc";
- return base.SqlBuilder.SqlText(text).Parameters("id", id).Select();
- }
- public void GetDevTest(string id, out string dev, out string test)
- {
- DataTable dataTable = base.SqlBuilder.SqlText("select 研发处理人ID,测试处理人ID from 问题记录 where id=:ID").Parameters("ID", id).Select();
- dev = dataTable.Rows[0][0].ToString();
- test = dataTable.Rows[0][1].ToString();
- }
- public int ChangeVersionState(string id, int state)
- {
- return base.UpdateBuilder.Update("问题记录").Column("解决版本状态", state).Where("id", id).Execute();
- }
- //变更底线问题
- public int Bottomlineissues(string id, int state)
- {
- return base.UpdateBuilder.Update("问题记录").Column("常见问题", state).Where("id", id).Execute();
- }
- public bool CheckRepeat(string id)
- {
- return base.SqlBuilder.SqlText("select id from 项目个性化 where 来源问题=:bh").Parameters("bh", id).Select().Rows.Count > 0;
- }
- #endregion
- #region 保存研发/测试处理人
- public int SaveDevTest(string id, string dev, string test)
- {
- try
- {
- var YFRY = "";
- if (!dev.IsNullOrEmpty())//获取研发人员
- {
- YFRY = this.SelectBuilder.From("人员信息").Columns("姓名").Where("ID", dev).Select().Rows[0]["姓名"].ToString();
- }
- var CSCLR = "";
- if (!test.IsNullOrEmpty())//获取测试人员
- {
- CSCLR = this.SelectBuilder.From("人员信息").Columns("姓名").Where("ID", test).Select().Rows[0]["姓名"].ToString();
- }
- return base.UpdateBuilder.Update("问题记录").Column("研发处理人ID", dev).Column("测试处理人ID", test).Column("研发处理人", YFRY).Column("测试处理人", CSCLR).Where("ID", id).Execute();
- }
- catch (Exception ex)
- {
- Logger.Instance.Error("保存研发/测试处理人发生异常错误", ex);
- }
- return 1;//固定返回
- }
- #endregion
- }
- }
|