PublicModuleLogic.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PMModuleLogic.cs
  5. * 2.功能描述:生产管理服务端业务逻辑
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈晓野 2015/03/21 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Text;
  14. using Dongke.IBOSS.PRD.Basics.BaseResources;
  15. using Dongke.IBOSS.PRD.Basics.DataAccess;
  16. using Dongke.IBOSS.PRD.WCF.DataModels;
  17. using Oracle.ManagedDataAccess.Client;
  18. namespace Dongke.IBOSS.PRD.Service.PublicModuleService
  19. {
  20. /// <summary>
  21. /// 生产管理服务端业务逻辑
  22. /// </summary>
  23. public static class PublicModuleLogic
  24. {
  25. /*
  26. /// <summary>
  27. /// 取得FP00002画面(工号产量质量分析表)的查询数据
  28. /// </summary>
  29. /// <param name="user">登录用户信息</param>
  30. /// <param name="se">查询条件</param>
  31. /// <returns>查询结果</returns>
  32. public static ServiceResultEntity GetFP00002Data(int accountID, int rptSProcedureID, string usercode, DateTime date)
  33. {
  34. //if(string.IsNullOrWhiteSpace(usercode))
  35. //{
  36. // ServiceResultEntity sre = new ServiceResultEntity();
  37. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  38. // return sre;
  39. //}
  40. IDBConnection conn = null;
  41. try
  42. {
  43. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  44. List<OracleParameter> parameters = new List<OracleParameter>();
  45. date = date.Date;
  46. //parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  47. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, accountID, ParameterDirection.Input));
  48. parameters.Add(new OracleParameter(":CreateTimeStart", OracleDbType.Date, date, ParameterDirection.Input));
  49. parameters.Add(new OracleParameter(":CreateTimeEnd", OracleDbType.Date, date.AddDays(1), ParameterDirection.Input));
  50. parameters.Add(new OracleParameter(":Usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  51. // 产量
  52. string sqlString = "\n" +
  53. "select --qdgroup.gid,\n" +
  54. " decode(qdgroup.gid, 7, '总计', 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  55. " decode(qdgroup.gid, 3, '合计', 0, qdgroup.procedurename, '--') procedurename,\n" +
  56. " decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  57. " --decode(qdgroup.gid, 0, qdgroup.usercode, '--') usercode,\n" +
  58. " decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  59. " decode(qdgroup.gid, 0, qdgroup.goodscode, '--') goodscode,\n" +
  60. " qdgroup.production\n" +
  61. " from (select grouping_id(pcpl.productionlinename,\n" +
  62. " pcp.procedurename,\n" +
  63. " mstgoodstype2.goodstypename,\n" +
  64. " --qd.usercode,\n" +
  65. " mstgoods.goodscode) gid,\n" +
  66. " pcpl.productionlinename,\n" +
  67. " pcp.procedurename,\n" +
  68. " mstgoodstype2.goodstypename goodstypename2,\n" +
  69. " --qd.usercode,\n" +
  70. " mstgoodstype.goodstypename,\n" +
  71. " mstgoods.goodscode,\n" +
  72. " sum(qd.production) production\n" +
  73. " from (select --pd.barcode,\n" +
  74. " pd.productionlineid,\n" +
  75. " pd.procedureid,\n" +
  76. " pd.goodsid,\n" +
  77. " --pd.userid,\n" +
  78. " --pd.usercode,\n" +
  79. " 1 production\n" +
  80. " from tp_pm_productiondata pd\n" +
  81. " where pd.valueflag = '1'\n" +
  82. " and ((pd.modeltype <> 5) or\n" +
  83. " (pd.modeltype = 5 and pd.SpecialRepairFlag = '0'))\n" +
  84. " and pd.Usercode = :Usercode\n" +
  85. " and pd.AccountID = :AccountID\n" +
  86. " AND pd.createtime >= :CreateTimeStart\n" +
  87. " AND pd.createtime < :CreateTimeEnd) qd\n" +
  88. " left join tp_pc_productionline pcpl\n" +
  89. " on pcpl.productionlineid = qd.productionlineid\n" +
  90. " left join tp_pc_procedure pcp\n" +
  91. " on pcp.procedureid = qd.procedureid\n" +
  92. " left join tp_mst_goods mstgoods\n" +
  93. " on mstgoods.goodsid = qd.goodsid\n" +
  94. " left join tp_mst_goodstype mstgoodstype\n" +
  95. " on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  96. " left join tp_mst_goodstype mstgoodstype2\n" +
  97. " on mstgoodstype2.goodstypecode =\n" +
  98. " substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  99. " and mstgoodstype.AccountID = mstgoodstype2.AccountID\n" +
  100. " group by grouping sets((pcpl.productionlinename,\n" +
  101. " pcp.procedurename,\n" +
  102. " mstgoodstype2.goodstypename,\n" +
  103. " --qd.usercode,\n" +
  104. " mstgoodstype.goodstypename,\n" +
  105. " mstgoods.goodscode),\n" +
  106. " (pcpl.productionlinename,\n" +
  107. " pcp.procedurename,\n" +
  108. " mstgoodstype2.goodstypename),\n" +
  109. " (pcpl.productionlinename,\n" +
  110. " pcp.procedurename),\n" +
  111. " pcpl.productionlinename)\n" +
  112. " order by pcpl.productionlinename,\n" +
  113. " pcp.procedurename,\n" +
  114. " mstgoodstype2.goodstypename,\n" +
  115. " --qd.usercode,\n" +
  116. " mstgoodstype.goodstypename,\n" +
  117. " mstgoods.goodscode) qdgroup";
  118. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  119. ServiceResultEntity sre = new ServiceResultEntity();
  120. if (data == null || data.Rows.Count == 0)
  121. {
  122. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  123. return sre;
  124. }
  125. sre.Data = new DataSet();
  126. sre.Data.Tables.Add(data);
  127. parameters.Add(new OracleParameter(":in_rptSprocedureId", OracleDbType.Int32, rptSProcedureID, ParameterDirection.Input));
  128. string sqlString1 = "\n" +
  129. "select qdgroup.gid,\n" +
  130. " decode(qdgroup.gid, 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  131. " decode(qdgroup.gid, 7, '总计', 0, qdgroup.procedurename, '--') procedurename,\n" +
  132. " decode(qdgroup.gid, 3, '合计', 0, qdgroup.kilncode, '--') kilncode,\n" +
  133. " decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  134. " --decode(qdgroup.gid, 0, qdgroup.usercode, '--') usercode,\n" +
  135. " decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  136. " decode(qdgroup.gid, 0, qdgroup.goodscode, '--') goodscode,\n" +
  137. " qdgroup.OutKilnCount,\n" +
  138. " qdgroup.GoodCount,\n" +
  139. " qdgroup.GoodCount,\n" +
  140. " to_char((qdgroup.GoodCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent,\n" +
  141. " to_char(((qdgroup.GoodCount+qdgroup.BadCount) / qdgroup.OutKilnCount) * 100, '990.00') || '%' QualifiedPercent,\n" +
  142. " qdgroup.SubstandardCount,\n" +
  143. " to_char((qdgroup.SubstandardCount / qdgroup.OutKilnCount) * 100,\n" +
  144. " '990.00') || '%' SubstandardPercent,\n" +
  145. " qdgroup.GoodCount+qdgroup.BadCount Qualified,\n" +
  146. " to_char((qdgroup.BadCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' BadPercent,\n" +
  147. " qdgroup.ReFireCount,\n" +
  148. " to_char((qdgroup.ReFireCount / qdgroup.OutKilnCount) * 100,\n" +
  149. " '990.00') || '%' ReFirePercent\n" +
  150. " from (select grouping_id(pcpl.productionlinename,\n" +
  151. " pcp.procedurename,\n" +
  152. " mstkiln.kilncode,\n" +
  153. " mstgoodstype2.goodstypename,\n" +
  154. " --qd.usercode,\n" +
  155. " mstgoods.goodscode) gid,\n" +
  156. " pcpl.productionlinename,\n" +
  157. " pcp.procedurename,\n" +
  158. " mstkiln.kilncode,\n" +
  159. " mstgoodstype2.goodstypename goodstypename2,\n" +
  160. " --qd.usercode,\n" +
  161. " mstgoodstype.goodstypename,\n" +
  162. " mstgoods.goodscode,\n" +
  163. " sum(qd.OutKilnCount) OutKilnCount,\n" +
  164. " sum(qd.GoodCount) GoodCount,\n" +
  165. " sum(qd.SubstandardCount) SubstandardCount,\n" +
  166. " sum(qd.BadCount) BadCount,\n" +
  167. " sum(qd.ReFireCount) ReFireCount\n" +
  168. " from (select --pdbc.barcode,\n" +
  169. " pdbc.productionlineid,\n" +
  170. " pdata.procedureid,\n" +
  171. " --pdata.usercode,\n" +
  172. " pdbc.goodsid,\n" +
  173. " pdbc.kilnid,\n" +
  174. " 1 OutKilnCount,\n" +
  175. " case\n" +
  176. " when defect.defectprocedureid is not null and glt.goodsleveltypeid in (5, 6, 7) then\n" +
  177. " 0\n" +
  178. " else\n" +
  179. " 1\n" +
  180. " end GoodCount,\n" +
  181. " case\n" +
  182. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 7 then\n" +
  183. " 1\n" +
  184. " else\n" +
  185. " 0\n" +
  186. " end SubstandardCount,\n" +
  187. " case\n" +
  188. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 6 then\n" +
  189. " 1\n" +
  190. " else\n" +
  191. " 0\n" +
  192. " end ReFireCount,\n" +
  193. " case\n" +
  194. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 5 then\n" +
  195. " 1\n" +
  196. " else\n" +
  197. " 0\n" +
  198. " end BadCount\n" +
  199. " from (select distinct pd.barcode,\n" +
  200. " pd.productionlineid,\n" +
  201. " pd.goodsid,\n" +
  202. " pd.kilnid,\n" +
  203. " pd.kilncarbatchno\n" +
  204. " from tp_pm_productiondata pd\n" +
  205. " where pd.valueflag = '1'\n" +
  206. " and pd.procedureid = :in_rptSprocedureId \n" +
  207. " and pd.AccountID = :AccountID\n" +
  208. " and pd.createtime >= :CreateTimeStart\n" +
  209. " and pd.createtime < :CreateTimeEnd\n" +
  210. " ) pdbc\n" +
  211. " inner join (select pd.barcode,\n" +
  212. " --pd.userid,\n" +
  213. " --pd.usercode,\n" +
  214. " pd.procedureid\n" +
  215. " from tp_pm_productiondata pd\n" +
  216. " where pd.valueflag = '1'\n" +
  217. " and pd.AccountID = :AccountID\n" +
  218. " and pd.usercode = :Usercode\n" +
  219. // 公坯、干补不算交坯工序的质量。
  220. //" and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.IsPublicBody = '0' and pd.SpecialRepairFlag = '0')) \n" +
  221. // 干补不算交坯工序的质量。
  222. " and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.SpecialRepairFlag = '0')) \n" +
  223. " ) pdata\n" +
  224. " on pdata.barcode = pdbc.barcode\n" +
  225. " left join (select kcbc.barcode, kcbc.kilncarbatchno, kcbc.goodsleveltypeid, kcbc.productiondataid\n" +
  226. " from (select pd.barcode,\n" +
  227. " pd.kilncarbatchno,\n" +
  228. " pd.goodsleveltypeid,\n" +
  229. " pd.productiondataid,\n" +
  230. " ROW_NUMBER() OVER(PARTITION BY pd.barcode, pd.kilncarbatchno ORDER BY pd.productiondataid desc) AS dataid\n" +
  231. " from tp_pm_productiondata pd\n" +
  232. " where pd.valueflag = '1'\n" +
  233. " and pd.AccountID = :AccountID\n" +
  234. " and length(pd.kilncarbatchno) > 0\n" +
  235. " AND pd.createtime >= :CreateTimeStart\n" +
  236. " and pd.modeltype = -1) kcbc\n" +
  237. " where kcbc.dataid = 1) glt\n" +
  238. " on pdbc.kilncarbatchno = glt.kilncarbatchno\n" +
  239. " and pdbc.barcode = glt.barcode\n" +
  240. " left join (select distinct productiondataid, defectprocedureid" +
  241. " from tp_pm_defect def " +
  242. " where def.valueflag='1'" +
  243. " and def.AccountID = :AccountID\n" +
  244. " AND def.createtime >= :CreateTimeStart) defect\n" +
  245. " on defect.productiondataid = glt.productiondataid\n" +
  246. " and pdata.procedureid = defect.defectprocedureid) qd\n" +
  247. " inner join tp_pc_productionline pcpl\n" +
  248. " on pcpl.productionlineid = qd.productionlineid\n" +
  249. " inner join tp_pc_procedure pcp\n" +
  250. " on pcp.procedureid = qd.procedureid\n" +
  251. " inner join tp_mst_kiln mstkiln\n" +
  252. " on mstkiln.kilnid = qd.kilnid\n" +
  253. " inner join tp_mst_goods mstgoods\n" +
  254. " on mstgoods.goodsid = qd.goodsid\n" +
  255. " inner join tp_mst_goodstype mstgoodstype\n" +
  256. " on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  257. " inner join tp_mst_goodstype mstgoodstype2\n" +
  258. " on mstgoodstype2.goodstypecode =\n" +
  259. " substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  260. " and mstgoodstype.AccountID = mstgoodstype2.AccountID\n" +
  261. " group by grouping sets((pcpl.productionlinename,\n" +
  262. " pcp.procedurename,\n" +
  263. " mstkiln.kilncode,\n" +
  264. " mstgoodstype2.goodstypename,\n" +
  265. " --qd.usercode,\n" +
  266. " mstgoodstype.goodstypename,\n" +
  267. " mstgoods.goodscode),\n" +
  268. " (pcpl.productionlinename,\n" +
  269. " pcp.procedurename,\n" +
  270. " mstkiln.kilncode,\n" +
  271. " mstgoodstype2.goodstypename),\n" +
  272. " (pcpl.productionlinename,\n" +
  273. " pcp.procedurename,\n" +
  274. " mstkiln.kilncode),\n" +
  275. " (pcpl.productionlinename, pcp.procedurename))\n" +
  276. " order by pcpl.productionlinename,\n" +
  277. " pcp.procedurename,\n" +
  278. " mstkiln.kilncode,\n" +
  279. " mstgoodstype2.goodstypename,\n" +
  280. " --qd.usercode,\n" +
  281. " mstgoodstype.goodstypename,\n" +
  282. " mstgoods.goodscode\n" +
  283. " ) qdgroup\n";
  284. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  285. if (data1 == null || data1.Rows.Count == 0)
  286. {
  287. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  288. return sre;
  289. }
  290. sre.Data.Tables.Add(data1);
  291. return sre;
  292. }
  293. catch (Exception ex)
  294. {
  295. throw ex;
  296. }
  297. finally
  298. {
  299. if (conn != null &&
  300. conn.ConnState == ConnectionState.Open)
  301. {
  302. conn.Close();
  303. }
  304. }
  305. }
  306. */
  307. /// <summary>
  308. /// 取得FP00002画面(工号产量质量分析表)的查询数据
  309. /// </summary>
  310. /// <param name="user">登录用户信息</param>
  311. /// <param name="se">查询条件</param>
  312. /// <returns>查询结果</returns>
  313. public static ServiceResultEntity GetFP00002Data(int accountID, string usercode, DateTime date)
  314. {
  315. IDBTransaction tran = null;
  316. try
  317. {
  318. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  319. tran.Connect();
  320. // 只限成型工查询
  321. string sqlString = "select u.userid, u.isgroutingworker from tp_mst_user u where u.AccountID = :AccountID and u.usercode = :usercode";
  322. OracleParameter[] paraUser = new OracleParameter[]
  323. {
  324. new OracleParameter(":AccountID", OracleDbType.Int32, accountID, ParameterDirection.Input),
  325. new OracleParameter(":usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input),
  326. };
  327. DataTable dt = tran.GetSqlResultToDt(sqlString, paraUser);
  328. if (dt == null || dt.Rows.Count == 0)
  329. {
  330. ServiceResultEntity sreUser = new ServiceResultEntity();
  331. sreUser.Status = Constant.ServiceResultStatus.Other;
  332. sreUser.Message = "系统中不存在此成型工号";
  333. return sreUser;
  334. }
  335. if ("1" != (dt.Rows[0]["isgroutingworker"] + ""))
  336. {
  337. ServiceResultEntity sreUser = new ServiceResultEntity();
  338. sreUser.Status = Constant.ServiceResultStatus.Other;
  339. sreUser.Message = "此工号不是成型工号";
  340. return sreUser;
  341. }
  342. DateTime month = new DateTime(date.Year, date.Month, 1);
  343. date = DateTime.Now.Date;
  344. DateTime month1 = new DateTime(date.Year, date.Month, 1).AddMonths(-1);
  345. if (month < month1)
  346. {
  347. month = month1;
  348. }
  349. OracleParameter[] parameters = new OracleParameter[]
  350. {
  351. new OracleParameter("in_AccountID", OracleDbType.Int32, accountID, ParameterDirection.Input),
  352. new OracleParameter("in_UserCode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input),
  353. //new OracleParameter("in_OutKilnProcedureID", OracleDbType.Int32, rptSProcedureID, ParameterDirection.Input),
  354. new OracleParameter("in_DateBegin", OracleDbType.Date, date, ParameterDirection.Input),
  355. new OracleParameter("in_DateEnd", OracleDbType.Date, date.AddDays(1).AddSeconds(-1), ParameterDirection.Input),
  356. new OracleParameter("in_MonthBegin", OracleDbType.Date, month, ParameterDirection.Input),
  357. new OracleParameter("in_NextMonth", OracleDbType.Date, month.AddMonths(1), ParameterDirection.Input),
  358. new OracleParameter("out_DataD", OracleDbType.RefCursor, null, ParameterDirection.Output),
  359. new OracleParameter("out_DataM", OracleDbType.RefCursor, null, ParameterDirection.Output),
  360. new OracleParameter("out_DataCC", OracleDbType.RefCursor, null, ParameterDirection.Output),
  361. new OracleParameter("out_DataNS", OracleDbType.RefCursor, null, ParameterDirection.Output),
  362. new OracleParameter("out_DataSC", OracleDbType.RefCursor, null, ParameterDirection.Output),
  363. new OracleParameter("out_DataRC", OracleDbType.RefCursor, null, ParameterDirection.Output),
  364. };
  365. DataSet data = tran.ExecStoredProcedure("PRO_P2_GetUserProductionInfo", parameters);
  366. ServiceResultEntity sre = new ServiceResultEntity();
  367. if (data != null)
  368. {
  369. //,out_DataD OUT SYS_REFCURSOR -- 总体信息
  370. //,out_DataM OUT SYS_REFCURSOR -- 月度信息
  371. //,out_DataCC OUT SYS_REFCURSOR -- 成检明细
  372. //,out_DataNS OUT SYS_REFCURSOR -- 后损明细
  373. //,out_DataSC OUT SYS_REFCURSOR -- 半检不合格
  374. //,out_DataRC OUT SYS_REFCURSOR -- 返工合格
  375. data.Tables[0].TableName = "DataD";
  376. data.Tables[1].TableName = "DataM";
  377. data.Tables[2].TableName = "DataCC";
  378. data.Tables[3].TableName = "DataNS";
  379. data.Tables[4].TableName = "DataSC";
  380. data.Tables[5].TableName = "DataRC";
  381. }
  382. tran.Commit();
  383. sre.Data = data;
  384. return sre;
  385. }
  386. catch (Exception ex)
  387. {
  388. //if (tran != null)
  389. //{
  390. // tran.Rollback();
  391. //}
  392. throw ex;
  393. }
  394. finally
  395. {
  396. if (tran != null &&
  397. tran.ConnState == ConnectionState.Open)
  398. {
  399. tran.Disconnect();
  400. }
  401. }
  402. }
  403. /// <summary>
  404. /// 取得报表数据源数据
  405. /// </summary>
  406. /// <param name="user">登录用户信息</param>
  407. /// <returns>查询结果</returns>
  408. public static ServiceResultEntity GetRptProcedureModule(int accountid)
  409. {
  410. IDBConnection conn = null;
  411. try
  412. {
  413. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  414. string selSql = " select "
  415. + " TP_MST_RptProcedure.Rptprocedureid,"
  416. + " TP_MST_RptProcedure.Rptprocedurecode,"
  417. + " TP_MST_RptProcedure.Rptprocedurename,"
  418. + " TP_MST_RptProcedure.Rptproceduretype,"
  419. + " decode(TP_MST_RptProcedure.Rptproceduretype,'A0001','出窑统计','质量统计') RptproceduretypeName,"
  420. + " (select wm_concat(s.procedureid) sprocedureid from tp_mst_rptsprocedure s where s.rptprocedureid = TP_MST_RptProcedure.Rptprocedureid) sprocedureid,"
  421. + " (select wm_concat(t.procedureid) tprocedureid from tp_mst_rpttprocedure t where t.rptprocedureid = TP_MST_RptProcedure.Rptprocedureid) tprocedureid,"
  422. + " TP_MST_RptProcedure.Optimestamp "
  423. + " from TP_MST_RptProcedure "
  424. + " where TP_MST_RptProcedure.ValueFlag=1 "
  425. + " and TP_MST_RptProcedure.AccountID=:accountID order by TP_MST_RptProcedure.displayno";
  426. List<OracleParameter> parameters = new List<OracleParameter>();
  427. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, accountid, ParameterDirection.Input));
  428. DataTable data = conn.GetSqlResultToDt(selSql.ToString(), parameters.ToArray());
  429. ServiceResultEntity sre = new ServiceResultEntity();
  430. if (data == null || data.Rows.Count == 0)
  431. {
  432. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  433. return sre;
  434. }
  435. sre.Data = new DataSet();
  436. sre.Data.Tables.Add(data);
  437. return sre;
  438. }
  439. catch (Exception ex)
  440. {
  441. throw ex;
  442. }
  443. finally
  444. {
  445. if (conn != null &&
  446. conn.ConnState == ConnectionState.Open)
  447. {
  448. conn.Close();
  449. }
  450. }
  451. }
  452. /// <summary>
  453. /// 取得报表的查询数据源统计工序数据
  454. /// </summary>
  455. /// <param name="user">登录用户信息</param>
  456. /// <param name="se">查询条件</param>
  457. /// <returns>查询结果</returns>
  458. public static ServiceResultEntity GetRptSourceProcedureModule(int accountid, int? RptProcedureID)
  459. {
  460. IDBConnection conn = null;
  461. try
  462. {
  463. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  464. OracleParameter[] paras = new OracleParameter[]{
  465. new OracleParameter("in_rptProcedureId",OracleDbType.Int32,RptProcedureID,ParameterDirection.Input),
  466. new OracleParameter("out_rptSResult",OracleDbType.RefCursor, ParameterDirection.Output),
  467. new OracleParameter("out_rptTresult",OracleDbType.RefCursor, ParameterDirection.Output),
  468. };
  469. DataSet data = conn.ExecStoredProcedure("PRO_MST_GetRptProcedureBYID", paras);
  470. ServiceResultEntity sre = new ServiceResultEntity();
  471. if (data == null || data.Tables.Count == 0)
  472. {
  473. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  474. return sre;
  475. }
  476. sre.Data = new DataSet();
  477. sre.Data = data;
  478. return sre;
  479. }
  480. catch (Exception ex)
  481. {
  482. throw ex;
  483. }
  484. finally
  485. {
  486. if (conn != null &&
  487. conn.ConnState == ConnectionState.Open)
  488. {
  489. conn.Close();
  490. }
  491. }
  492. }
  493. }
  494. }