123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- using QWPlatform.IService;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using PMS.BusinessModels.Account;
- using PMS.BusinessModels.Problem;
- using System.Data;
- using QWPlatform.SystemLibrary.LogManager;
- using PMS.Plugins.Common;
- namespace PMS.DBService.SupportManager
- {
- public class SupportDBservice : DataServiceBase
- {
- protected override void DBFctory(string conName)
- {
- base.DBFctory(conName);
- }
- //技术支持登记问题
- public ProblemStateModel RegisterSupportProblem(ProblemBusinessModel model, UserInfo user, string id,string AssignPerson)
- {
- ProblemStateModel state = new ProblemStateModel();
- try
- {
- //根据项目产品模块ID获取产品ID
- string CPID = SelectProjectModualInfo(model.CPID).Rows[0]["产品ID"].ToString();
- state.Count = 0;
- //问题性质
- int Nature = SelectNature(model.WTXZ).Rows[0]["代码"].ToInt32();
- //读取紧急程度
- DataTable dt = SelectBuilder.From("基础编码").Columns("代码").Where("ID", model.JJDM).Select();
- string JJCD = dt.Rows[0]["代码"].ToString();
- //反馈人
- var FKR = string.Empty;
- 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();
- }
- }
- 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();
- }
- 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 = int.Parse((dt.Rows[0]["工作流目录ID"].ToString()));
- DataTable dz = SelectBuilder.From("问题工作流程").Columns("ID").Columns("环节ID").Where("目录ID", CatalogID).Where("名称", "技术支持处理").Select();
- int FlowID = dz.Rows[0]["ID"].ToInt32();//流程ID
- int RingID = dz.Rows[0]["环节ID"].ToInt32();//环节ID
- var Registertime = 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.JJBB)
- .Column("解决版本状态", model.JJBBZT)
- .Column("问题描述", model.WTMS)
- .Column("登记日期", Registertime)
- .Column("反馈日期", model.DJRJ)
- .Column("问题标题", model.WTBT)
- .Column("反馈人", FKR)
- .Column("技术支持", 1)
- .Column("研发协助", 0)
- .Column("项目处理", 1)
- .Column("是否终止", 0)
- .Column("是否解决", 0)
- .Column("环节ID", RingID)
- .Column("来源代码", FromID)
- .Column("问题性质", Nature)
- .Column("是否受理", 0)
- .Column("流程ID", FlowID)
- .Column("迭代ID", model.DDID)
- .Column("研发处理人ID", model.YFCLRID)
- .Column("测试处理人ID", model.CSCLRID)
- .Column("研发处理人", model.YFCLR)
- .Column("测试处理人", model.CSCLR)
- .Execute();
- if (state.Count == 1)
- {
- //问题记录过程ID
- state.ProblemProcessID = Guid.NewGuid().ToString();
- state.Count = InsertBuilder.Insert("问题记录过程")
- .Column("ID", state.ProblemProcessID)
- .Column("问题ID", id)
- .Column("记录人ID", user.PersonID)
- .Column("记录时间", Registertime)
- .Column("当前流程ID", FlowID)
- .Column("状态", 1)
- .Column("耗时", 0)
- .Column("描述", "登记问题")
- .Execute();
- }
-
- //是否直接处理
- if (model.RegisterType == 2)
- {
- string HelperName = user.Name;
- string HelperID = user.PersonID;
- if (model.XZRID != "")
- {
- //根据协助人ID获取姓名
- HelperName = SelectBuilder.From("人员信息").Where("ID", model.XZRID).Columns("姓名").Select().Rows[0]["姓名"].ToString();
- HelperID = model.XZRID;
- }
- var dealtime = this.DataBaseBuilder.GetDateTime;
- UpdateBuilder.Update("问题记录")
- .Where("ID", id)
- .Column("是否解决", 1)
- .Column("是否受理", 1)
- .Column("解决方案", model.JJFA)
- .Column("受理人", HelperName)
- .Column("受理人ID", HelperID)
- .Execute();
-
- 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();
- UpdateBuilder.Update("问题记录过程").Where("ID", state.ProblemProcessID).Column("结束时间", dealtime.AddSeconds(1)).Execute();
- }
- //直接提交
- if (model.RegisterType==1)
- {
- int Development = 0;
- //根据当前流程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 (NextRingID==5)
- {
- Development = 1;
- }
- //数据库时间
- var time = this.DataBaseBuilder.GetDateTime;
- //根据受理人ID获取对应的受理人姓名
- string SLR = SelectBuilder.From("人员信息").Where("ID", AssignPerson).Columns("姓名").Select().Rows[0]["姓名"].ToString();
- //修改问题记录信息
- UpdateBuilder.Update("问题记录")
- .Where("ID", id)
- .Column("研发协助", Development)
- .Column("环节ID", NextRingID)
- .Column("流程ID", NextFlowID)
- .Column("是否受理",1)
- .Column("受理人", SLR)
- .Column("受理人ID", AssignPerson)
- .Column("受理时间",time)
- .Column("指派人", SLR)
- .Column("指派人ID", AssignPerson)
- .Column("指派时间", time)
- .Execute();
- //添加一条提交记录
- InsertBuilder.Insert("问题记录过程")
- .Column("ID", Guid.NewGuid().ToString())
- .Column("问题ID", id)
- .Column("记录人ID", user.PersonID)
- .Column("记录时间", time.AddSeconds(1))
- .Column("当前流程ID", NextFlowID)
- .Column("来源流程ID",FlowID)
- .Column("状态", 5)
- .Column("耗时", 0)
- .Column("描述", "直接提交")
- .Column("指派人ID", AssignPerson)
- .Execute();
- UpdateBuilder.Update("问题记录过程").Where("ID", state.ProblemProcessID).Column("结束时间", time.AddSeconds(1)).Execute();
- }
-
- return state;
- }
- catch (Exception ex)
- {
- Logger.Instance.Error("执行RegisterSupportProblem出错", ex);
- state.Count = 0;
- return state;
- }
- }
- //项目产品模块信息
- public DataTable SelectProjectModualInfo(string CPID)
- {
- return SelectBuilder.From("项目产品模块").Columns("产品ID").Columns("版本").Where("ID", CPID).Select();
- }
- //根据性质ID返回性质代码
- public DataTable SelectNature(string wTXZ)
- {
- return SelectBuilder.From("基础编码").Columns("代码").Columns("显示名").Columns("ID").Where("ID", wTXZ).Where("启用", 1).Select();
- }
- }
- }
|