f4780d0fa31fb967fa98031026d490acf83a9b5e.svn-base 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. using System;
  2. using System.Data;
  3. using System.Data.OracleClient;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. using System.Collections;
  7. using Core.Mes.ServerFrameWork;
  8. using Core.Mes.IBaseInterface;
  9. namespace Core.Mes.PurviewManager
  10. {
  11. class QuestionReply : IComponent
  12. {
  13. public ReturnObject getAllData(string[] sArgs)
  14. {
  15. StringBuilder strbuld = new StringBuilder();
  16. strbuld.Append("SELECT ID_,CREATOR,CREATEDEPARTMENT,QUESTION,DEPARTMENT,PRINCIPAL,CREATETIME,LASTANSWERER,LASTTIME,IPADDRESS,FLAG,PHONE,QUESTIONTYPE FROM CXUSER.PT_QUESTION ");
  17. string sWhere = "";
  18. if (sArgs[3] == "All")
  19. sWhere = "WHERE 1=1 ";
  20. else if (sArgs[3] == "NoReply")
  21. sWhere = "WHERE LASTANSWERER IS NULL ";
  22. else if (sArgs[3] == "NoComplete")
  23. sWhere = "WHERE FLAG='0' ";
  24. else if (sArgs[3] == "Complete")
  25. sWhere = "WHERE FLAG='1' ";
  26. if (sArgs[0] != "")
  27. {
  28. sWhere += "AND (CREATETIME BETWEEN TO_DATE('{0}','yyyy-mm-dd hh24:mi:ss') AND TO_DATE('{1}','yyyy-mm-dd hh24:mi:ss')) ";
  29. }
  30. if (sArgs[2] != "")
  31. {
  32. sWhere += "AND CREATOR LIKE '%{2}%' ";
  33. }
  34. sWhere = string.Format(sWhere, sArgs);
  35. strbuld.Append(sWhere);
  36. strbuld.Append("ORDER BY CREATETIME DESC");
  37. try
  38. {
  39. string err = "";
  40. DataSet dset = DBManager.ExecuteQuery(strbuld.ToString(), out err);
  41. if (err == "")
  42. {
  43. strbuld.Remove(0, strbuld.Length);
  44. strbuld.Append("SELECT ID_,XH,ANSWERER,REPLYINFO,TIME_,IPADDRESS,ISCOMPLETE,DEPARTMENT FROM CXUSER.PT_QUESTION_REPLY WHERE EXISTS(");
  45. strbuld.Append("SELECT 1 FROM CXUSER.PT_QUESTION ");
  46. strbuld.Append(sWhere);
  47. strbuld.Append("AND CXUSER.PT_QUESTION.ID_=CXUSER.PT_QUESTION_REPLY.ID_)");
  48. DataSet dsetTmp = DBManager.ExecuteQuery(strbuld.ToString(), out err);
  49. dset.Tables[0].TableName = "tab_m";
  50. dsetTmp.Tables[0].TableName = "tab_d";
  51. dset.Tables.Add(dsetTmp.Tables[0].Copy());
  52. dset.Relations.Add("Band 1", dset.Tables[0].Columns[0], dset.Tables[1].Columns[0]);
  53. return new ReturnObject(dset);
  54. }
  55. return new ReturnObject(null, err);
  56. }
  57. catch (Exception ee)
  58. {
  59. return new ReturnObject(null, ee.Message);
  60. }
  61. }
  62. public ReturnObject getReplyData(string sID)
  63. {
  64. StringBuilder strbuld = new StringBuilder();
  65. strbuld.Append("SELECT ID_,XH,ANSWERER,REPLYINFO,TIME_,IPADDRESS,ISCOMPLETE,DEPARTMENT FROM CXUSER.PT_QUESTION_REPLY WHERE ID_='{0}' ORDER BY XH");
  66. try
  67. {
  68. string err = "";
  69. DataSet dset = DBManager.ExecuteQuery(string.Format(strbuld.ToString(), sID), out err);
  70. return new ReturnObject(dset);
  71. }
  72. catch (Exception ee)
  73. {
  74. return new ReturnObject(null, ee.Message);
  75. }
  76. }
  77. //sArgs[0]:发布人; sArgs[1]:发布部门; sArgs[2]:问题; sArgs[3]:负责部门; sArgs[4]:负责人; sArgs[5]:IP; sArgs[6]:发布人联系电话; sArgs[7]:问题类别;
  78. public ReturnObject addQuestion(string[] sArgs)
  79. {
  80. return ExecProcWithNoCollParam("cxuser.pt_k.addQuestion", sArgs);
  81. }
  82. //sArgs[0]:问题ID; sArgs[1]:问题; sArgs[2]:负责部门; sArgs[3]:负责人; sArgs[4]:发布人联系电话; sArgs[5]:问题类别;
  83. public ReturnObject editQuestion(string[] sArgs)
  84. {
  85. return ExecProcWithNoCollParam("cxuser.pt_k.editQuestion", sArgs);
  86. }
  87. //sArgs[0]:问题ID;
  88. public ReturnObject delQuestion(string[] sArgs)
  89. {
  90. return ExecProcWithNoCollParam("cxuser.pt_k.delQuestion", sArgs);
  91. }
  92. //sArgs[0]:问题ID; sArgs[1]:回复人; sArgs[2]:回复部门; sArgs[3]:回复内容; sArgs[4]:处理完成; sArgs[5]:IP;
  93. public ReturnObject addReply(string[] sArgs)
  94. {
  95. return ExecProcWithNoCollParam("cxuser.pt_k.addReply", sArgs);
  96. }
  97. //sArgs[0]:问题ID; sArgs[1]:序号;
  98. public ReturnObject delReply(string[] sArgs)
  99. {
  100. return ExecProcWithNoCollParam("cxuser.pt_k.delReply", sArgs);
  101. }
  102. ReturnObject ExecProcWithNoCollParam(string sProcName, object[] Args)
  103. {
  104. try
  105. {
  106. string err = "";
  107. OracleParameter[] pars = new OracleParameter[Args.Length + 2];
  108. object[] vals = new object[Args.Length + 2];
  109. ArrayList arylstOut = new ArrayList();
  110. for (int i = 0; i < Args.Length + 2; i++)
  111. {
  112. pars[i] = new OracleParameter();
  113. if (i < Args.Length)
  114. {
  115. pars[i].ParameterName = "v" + i.ToString();
  116. if (Args[i].GetType() == typeof(byte[]))
  117. pars[i].OracleType = OracleType.Blob;
  118. pars[i].Value = Args[i];
  119. }
  120. else if (i == Args.Length)
  121. {
  122. pars[i].ParameterName = "iRet";
  123. pars[i].Direction = ParameterDirection.Output;
  124. pars[i].DbType = DbType.Int32;
  125. }
  126. else if (i == Args.Length + 1)
  127. {
  128. pars[i].ParameterName = "sRet";
  129. pars[i].Direction = ParameterDirection.Output;
  130. pars[i].DbType = DbType.String;
  131. pars[i].Size = 500;
  132. }
  133. }
  134. for (int i = 0; i < Args.Length; i++)
  135. {
  136. vals[i] = Args[i];
  137. }
  138. int iRet = DBManager.ExecuteNonQuery(sProcName, CommandType.StoredProcedure, pars, vals, ref arylstOut, out err);
  139. if (err == "")
  140. return new ReturnObject(arylstOut[0], arylstOut[1].ToString());
  141. else
  142. return new ReturnObject(iRet, err);
  143. }
  144. catch (Exception ee)
  145. {
  146. return new ReturnObject(-1, ee.Message);
  147. }
  148. }
  149. }
  150. }