rpt1.ashx 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. <%@ WebHandler Language="C#" Class="rpt" %>
  2. using System;
  3. using System.Web;
  4. using System.Web.SessionState;
  5. using System.Data;
  6. using System.Text;
  7. using System.Collections;
  8. using System.Collections.Generic;
  9. using Newtonsoft.Json;
  10. using Newtonsoft.Json.Linq;
  11. using Curtain.DataAccess;
  12. using DK.XuWei.WebMes;
  13. public class rpt : IHttpHandler, IReadOnlySessionState
  14. {
  15. public void ProcessRequest(HttpContext context)
  16. {
  17. context.Response.ContentType = "text/plain";
  18. using(IDataAccess conn = DataAccess.Create())
  19. {
  20. if (context.Request["m"].ToString() == "defect")
  21. {
  22. string sqlStr = @"
  23. WITH MES AS (
  24. SELECT
  25. DEFECTCODE,
  26. DEFECTNAME,
  27. NUM,
  28. RN
  29. FROM
  30. (
  31. SELECT
  32. DEFECTCODE,
  33. DEFECTNAME,
  34. NUM,
  35. ROW_NUMBER ( ) OVER ( ORDER BY NUM DESC, DEFECTCODE ) AS RN
  36. FROM
  37. (
  38. SELECT
  39. D.DEFECTCODE,
  40. DEFECT.S_NAME AS DEFECTNAME,
  41. COUNT( DISTINCT D.BARCODE ) AS NUM
  42. FROM
  43. TP_PM_DEFECT D
  44. LEFT JOIN TP_MST_GOODS G ON D.GOODSID = G.GOODSID
  45. LEFT JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  46. INNER JOIN TP_PM_PRODUCTIONDATA PD ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  47. INNER JOIN TP_MST_DEFECTFINERELATION DFR ON D.DEFECTID = DFR.DEFECTID
  48. INNER JOIN TP_MST_DEFECTFINE DF ON DF.DEFECTFINEID = DFR.DEFECTFINEID
  49. INNER JOIN TP_MST_DEFECTDEDUCTIONRELATION DDR ON D.DEFECTID = DDR.DEFECTID
  50. INNER JOIN TP_MST_DEFECTDEDUCTION DD ON DD.DEFECTDEDUCTIONID = DDR.DEFECTDEDUCTIONID
  51. INNER JOIN TP_MST_DEFECT DEFECT ON D.DEFECTID = DEFECT.DEFECTID
  52. WHERE
  53. D.VALUEFLAG = 1
  54. AND PD.VALUEFLAG = 1
  55. AND PD.GOODSLEVELTYPEID IN(6, 7)
  56. AND PD.KILNCODE IN('SK3', 'TK3')
  57. AND D.CREATETIME >= trunc(sysdate) + 7/24
  58. AND D.CREATETIME < trunc(sysdate) + 7/24 + 1
  59. -- AND (INSTR( PD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( PD.GROUTINGLINECODE, 'A' ) = 4 OR INSTR( PD.GROUTINGLINECODE, 'C06B' ) = 1)
  60. AND INSTR (PD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( PD.GROUTINGLINECODE, 'A' ) = 4
  61. GROUP BY
  62. D.DEFECTCODE,
  63. DEFECT.S_NAME
  64. )
  65. )
  66. WHERE
  67. RN <= 6
  68. )
  69. SELECT
  70. DEFECTCODE 缺陷编码,
  71. 'TOP'||RN 缺陷排行,
  72. DEFECTNAME 缺陷名称,
  73. -- DEFECTPOSITIONCODE,
  74. DEFECTPOSITIONNAME 缺陷位置,
  75. 'TOP'||RN2 位置排行,
  76. NUM 数量,
  77. n,
  78. ROUND( 100 * RATIO_TO_REPORT ( NUM ) OVER ( PARTITION BY RN ), 1 )||'%' AS 占比
  79. FROM
  80. (
  81. SELECT
  82. DEFECTCODE,
  83. DEFECTNAME,
  84. n,
  85. RN,
  86. DEFECTPOSITIONCODE,
  87. DEFECTPOSITIONNAME,
  88. NUM,
  89. RN2
  90. FROM
  91. (
  92. SELECT
  93. DEFECTCODE,
  94. DEFECTNAME,
  95. n,
  96. RN,
  97. DEFECTPOSITIONCODE,
  98. DEFECTPOSITIONNAME,
  99. NUM,
  100. ROW_NUMBER ( ) OVER ( PARTITION BY DEFECTCODE ORDER BY RN, NUM DESC ) AS RN2
  101. FROM
  102. (
  103. SELECT
  104. M.DEFECTCODE,
  105. M.DEFECTNAME,
  106. m.NUM as n,
  107. M.RN,
  108. D.DEFECTPOSITIONCODE,
  109. DEFECTPOSITION.S_NAME AS DEFECTPOSITIONNAME,
  110. COUNT( DISTINCT D.BARCODE ) AS NUM
  111. FROM
  112. MES M
  113. LEFT JOIN TP_PM_DEFECT D ON M.DEFECTCODE = D.DEFECTCODE
  114. LEFT JOIN TP_MST_GOODS G ON D.GOODSID = G.GOODSID
  115. LEFT JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  116. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  117. INNER JOIN TP_MST_DEFECTPOSITION DEFECTPOSITION ON DEFECTPOSITION .DEFECTPOSITIONID = D.DEFECTPOSITIONID
  118. WHERE
  119. D.VALUEFLAG = 1
  120. AND PD.VALUEFLAG = 1
  121. AND D.CREATETIME >= trunc(sysdate) + 7/24
  122. AND D.CREATETIME < trunc(sysdate) + 7/24 + 1
  123. -- AND (INSTR( PD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( PD.GROUTINGLINECODE, 'A' ) = 4 OR INSTR( PD.GROUTINGLINECODE, 'C06B' ) = 1)
  124. AND INSTR (PD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( PD.GROUTINGLINECODE, 'A' ) = 4
  125. AND PD.GOODSLEVELTYPEID IN(6, 7)
  126. AND PD.KILNCODE IN('SK3', 'TK3')
  127. GROUP BY
  128. M.DEFECTCODE,
  129. M.DEFECTNAME,
  130. m.num,
  131. M.RN,
  132. D.DEFECTPOSITIONCODE,
  133. DEFECTPOSITION.S_NAME
  134. )
  135. )
  136. WHERE
  137. RN2 <= 3
  138. )
  139. ORDER BY
  140. LPAD(RN,3,'0'),
  141. LPAD(RN2,3,'0')
  142. ";
  143. //直接获取不分页数据
  144. DataTable dt = conn.ExecuteDatatable(sqlStr);
  145. string jsonStr = new JsonResult(dt).ToJson();
  146. context.Response.Write(jsonStr);
  147. }
  148. else if (context.Request["m"].ToString() == "nm")
  149. {
  150. string sqlStr = @"
  151. -- SELECT
  152. -- SUM( CASE WHEN pd.CREATETIME >= TRUNC( SYSDATE )
  153. -- AND pd.CREATETIME < TRUNC( SYSDATE ) + 1
  154. -- AND GL.HIGHPRESSUREFLAG = 1 THEN 1 ELSE 0 END ) AS NUM1,
  155. -- SUM( CASE WHEN pd.CREATETIME >= TRUNC( SYSDATE )
  156. -- AND pd.CREATETIME < TRUNC( SYSDATE ) + 1
  157. -- THEN 1 ELSE 0 END ) AS NUM2,
  158. -- SUM( CASE WHEN pd.CREATETIME >= TRUNC(ADD_MONTHS(LAST_DAY(SYSDATE), -1)+1 )
  159. -- AND pd.CREATETIME < TRUNC( SYSDATE ) + 1
  160. -- AND GL.HIGHPRESSUREFLAG = 1 THEN 1 ELSE 0 END ) AS NUM3,
  161. -- SUM( CASE WHEN pd.CREATETIME >= TRUNC(ADD_MONTHS(LAST_DAY(SYSDATE), -1)+1 )
  162. -- AND pd.CREATETIME < TRUNC( SYSDATE ) + 1
  163. -- THEN 1 ELSE 0 END ) AS NUM4
  164. -- FROM
  165. -- TP_PM_PRODUCTIONDATA pd
  166. -- INNER JOIN TP_PC_GROUTINGLINE GL ON pd.GROUTINGLINEID = GL.GROUTINGLINEID
  167. -- WHERE
  168. -- (
  169. -- pd.PROCEDUREID = 104
  170. -- AND pd.ISREFIRE = 0
  171. -- AND pd.CHECKFLAG = 1
  172. -- OR pd.PROCEDUREID = 11
  173. -- AND pd.VALUEFLAG = 1
  174. -- )
  175. -- AND (
  176. -- INSTR( pd.GROUTINGLINECODE, 'C' ) = 1
  177. -- AND INSTR( pd.GROUTINGLINECODE, 'A' ) = 4
  178. -- OR INSTR( pd.GROUTINGLINECODE, 'C06B' ) = 1
  179. -- )
  180. SELECT
  181. SUM( CASE WHEN GL.HIGHPRESSUREFLAG = 1 THEN 1 ELSE 0 END ) AS NUM1,
  182. COUNT(DISTINCT PD.BARCODE) AS NUM2
  183. FROM
  184. TP_PM_PRODUCTIONDATA pd
  185. INNER JOIN TP_PC_GROUTINGLINE GL ON pd.GROUTINGLINEID = GL.GROUTINGLINEID
  186. WHERE
  187. pd.CREATETIME >= TRUNC( SYSDATE ) + 7/24
  188. AND pd.CREATETIME < TRUNC( SYSDATE ) + 7/24 + 1
  189. AND
  190. (
  191. pd.PROCEDUREID = 104
  192. AND pd.ISREFIRE = 0
  193. AND pd.CHECKFLAG = 1
  194. OR pd.PROCEDUREID = 11
  195. AND pd.VALUEFLAG = 1
  196. )
  197. AND (
  198. INSTR( pd.GROUTINGLINECODE, 'C' ) = 1
  199. AND INSTR( pd.GROUTINGLINECODE, 'A' ) = 4
  200. OR INSTR( pd.GROUTINGLINECODE, 'C06B' ) = 1
  201. )
  202. ";
  203. //直接获取不分页数据
  204. DataTable dt = conn.ExecuteDatatable(sqlStr);
  205. string jsonStr = new JsonResult(dt).ToJson();
  206. context.Response.Write(jsonStr);
  207. }
  208. else if (context.Request["m"].ToString() == "pass")
  209. {
  210. string sqlStr = @"
  211. SELECT
  212. SJ,
  213. -- ROUND( ( NUM1 - NUM2 ) / DECODE( NUM1, 0, 1, NUM1 )*100, 1 ) AS 本烧,
  214. -- ROUND( ( NUM3 - NUM4 ) / DECODE( NUM1, 0, 1, NUM1 )*100, 1 ) AS 整体
  215. NUM1 - NUM2 AS 本烧,
  216. NUM3 - NUM4 AS 整体
  217. FROM
  218. (
  219. SELECT
  220. TO_CHAR( TRUNC( CREATETIME - 7/24 ), 'YY-MM-DD' ) AS SJ,
  221. -- SUM( CASE WHEN ( PROCEDUREID = 104 AND ISREFIRE = 0 AND CHECKFLAG = 1 OR PROCEDUREID = 11 AND VALUEFLAG = 1 OR PROCEDUREID = 58 AND VALUEFLAG = 1 ) THEN 1 ELSE 0 END ) AS NUM1,
  222. SUM( CASE WHEN PROCEDUREID = 104 AND ISREFIRE = 0 AND CHECKFLAG = 1 THEN 1 ELSE 0 END ) AS NUM1,
  223. SUM(
  224. CASE
  225. WHEN
  226. ( PROCEDUREID = 105 AND ISREFIRE = 0 OR PROCEDUREID = 12 )
  227. -- PROCEDUREID = 105 AND ISREFIRE = 0
  228. AND GOODSLEVELTYPEID IN ( 6, 7, 8 )
  229. AND VALUEFLAG = 1 THEN
  230. 1 ELSE 0
  231. END
  232. ) AS NUM2,
  233. SUM( CASE WHEN PROCEDUREID = 104 AND CHECKFLAG = 1 THEN 1 ELSE 0 END ) AS NUM3,
  234. -- SUM( CASE WHEN ( PROCEDUREID = 104 AND CHECKFLAG = 1 OR PROCEDUREID = 11 AND VALUEFLAG = 1 OR PROCEDUREID = 58 AND VALUEFLAG = 1 ) THEN 1 ELSE 0 END ) AS NUM3,
  235. -- SUM( CASE WHEN ( PROCEDUREID = 105 OR PROCEDUREID = 12 OR PROCEDUREID = 59 ) AND GOODSLEVELTYPEID IN ( 6, 7, 8 ) AND VALUEFLAG = 1 THEN 1 ELSE 0 END ) AS NUM4
  236. SUM( CASE WHEN PROCEDUREID = 105 AND GOODSLEVELTYPEID IN ( 6, 7, 8 ) AND VALUEFLAG = 1 THEN 1 ELSE 0 END ) AS NUM4
  237. FROM
  238. TP_PM_PRODUCTIONDATA
  239. WHERE
  240. CREATETIME >= TRUNC( SYSDATE ) - 6 + 7/24
  241. AND CREATETIME < TRUNC( SYSDATE ) + 1 + 7/24
  242. -- AND KILNCODE IN('SK3', 'TK3')
  243. -- AND (INSTR( GROUTINGLINECODE, 'C' ) = 1 AND INSTR( GROUTINGLINECODE, 'A' ) = 4 OR INSTR( GROUTINGLINECODE, 'C06B' ) = 1)
  244. -- AND INSTR( GROUTINGLINECODE, 'C' ) = 1 AND INSTR( GROUTINGLINECODE, 'A' ) = 4
  245. GROUP BY
  246. TO_CHAR( TRUNC( CREATETIME - 7/24 ), 'YY-MM-DD' )
  247. )
  248. ORDER BY
  249. SJ -- DESC
  250. ";
  251. //直接获取不分页数据
  252. DataTable dt = conn.ExecuteDatatable(sqlStr);
  253. string jsonStr = new JsonResult(dt).ToJson();
  254. context.Response.Write(jsonStr);
  255. }
  256. else if (context.Request["m"].ToString() == "scrap")
  257. {
  258. string sqlStr = @"
  259. SELECT
  260. RN,
  261. DC,
  262. -- DN||'('||DC||')' DN,
  263. DN||'_'||OFFICENAME DN,
  264. NM,
  265. ROUND( 100 * RATIO_TO_REPORT ( NM ) OVER ( PARTITION BY 1 ), 1 ) || '%' AS PERCENTAGE
  266. FROM
  267. (
  268. SELECT
  269. D.DEFECTCODE AS DC,
  270. DEFECT.S_NAME AS DN,
  271. -- ,s.GOODSLEVELTYPEID
  272. DOL.OFFICENAME,
  273. COUNT( DISTINCT S.BARCODE ) AS NM,
  274. ROW_NUMBER ( ) OVER ( ORDER BY COUNT( DISTINCT S.BARCODE ) DESC ) AS RN
  275. FROM
  276. TP_PM_SCRAPPRODUCT S
  277. INNER JOIN TP_PM_DEFECT D ON S.BARCODE = D.BARCODE
  278. INNER JOIN TP_DSB_DEFECTOFFICELINKED DOL ON DOL.DEFECTCODE = D.DEFECTCODE
  279. INNER JOIN TP_MST_DEFECT DEFECT ON D.DEFECTID = DEFECT.DEFECTID
  280. WHERE
  281. S.VALUEFLAG = 1
  282. AND S.GOODSLEVELTYPEID IN ( 7 )
  283. AND D.VALUEFLAG = 1
  284. AND instr( D.DEFECTCODE, '0' ) <> 1
  285. AND S.SCRAPTYPE = 1
  286. AND S.AUDITSTATUS = 1
  287. AND S.ISREFIRE = 0
  288. AND S.CREATETIME >= TRUNC( SYSDATE ) + 7/24
  289. GROUP BY
  290. DOL.OFFICENAME,
  291. D.DEFECTCODE,
  292. DEFECT.S_NAME
  293. )
  294. -- WHERE
  295. -- RN < 11
  296. ";
  297. //直接获取不分页数据
  298. DataTable dt = conn.ExecuteDatatable(sqlStr);
  299. string jsonStr = new JsonResult(dt).ToJson();
  300. context.Response.Write(jsonStr);
  301. }
  302. else if (context.Request["m"].ToString() == "officedefect")
  303. {
  304. string sqlStr = @"
  305. SELECT
  306. DOL.OFFICENAME,
  307. -- D.DEFECTCODE,
  308. -- D.DEFECTNAME,
  309. COUNT( DISTINCT D.BARCODE ) AS NUM,
  310. ROUND( 100 * RATIO_TO_REPORT ( COUNT( DISTINCT D.BARCODE ) ) OVER ( PARTITION BY 1 ), 1 ) || '%' AS PERCENTAGE
  311. FROM
  312. TP_PM_DEFECT D
  313. LEFT JOIN TP_MST_GOODS G ON D.GOODSID = G.GOODSID
  314. LEFT JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  315. INNER JOIN TP_PM_PRODUCTIONDATA PD ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  316. INNER JOIN TP_DSB_DEFECTOFFICELINKED DOL ON D.DEFECTCODE = DOL.DEFECTCODE
  317. WHERE
  318. D.VALUEFLAG = 1
  319. AND PD.VALUEFLAG = 1
  320. AND PD.GOODSLEVELTYPEID IN ( 6, 7 )
  321. AND PD.KILNCODE IN ( 'SK3', 'TK3' )
  322. AND D.CREATETIME >= TRUNC( SYSDATE ) + 7/24
  323. AND D.CREATETIME < TRUNC( SYSDATE ) + 7/24 + 1
  324. -- AND (INSTR( PD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( PD.GROUTINGLINECODE, 'A' ) = 4 OR INSTR( PD.GROUTINGLINECODE, 'C06B' ) = 1)
  325. AND INSTR( PD.GROUTINGLINECODE, 'C' ) = 1
  326. AND INSTR( PD.GROUTINGLINECODE, 'A' ) = 4
  327. GROUP BY
  328. DOL.OFFICENAME -- ,
  329. -- D.DEFECTCODE,
  330. -- D.DEFECTNAME
  331. ORDER BY
  332. NUM DESC
  333. ";
  334. //直接获取不分页数据
  335. DataTable dt = conn.ExecuteDatatable(sqlStr);
  336. string jsonStr = new JsonResult(dt).ToJson();
  337. context.Response.Write(jsonStr);
  338. }
  339. else if (context.Request["m"].ToString() == "goodsdefect")
  340. {
  341. string sqlStr = @"
  342. SELECT
  343. D.GOODSCODE,
  344. D.DEFECTCODE,
  345. -- D.DEFECTNAME||'('||D.DEFECTCODE||')' DEFECTNAME,
  346. DEFECT.S_NAME || '_' || DOL.OFFICENAME DEFECTNAME,
  347. -- D.DEFECTNAME,
  348. COUNT( DISTINCT D.BARCODE ) AS NUM,
  349. ROUND( 100 * RATIO_TO_REPORT ( COUNT( DISTINCT D.BARCODE ) ) OVER ( PARTITION BY 1 ), 1 ) || '%' AS PERCENTAGE
  350. FROM
  351. TP_PM_DEFECT D
  352. LEFT JOIN TP_MST_GOODS G ON D.GOODSID = G.GOODSID
  353. LEFT JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  354. INNER JOIN TP_PM_PRODUCTIONDATA PD ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  355. INNER JOIN TP_DSB_DEFECTOFFICELINKED DOL ON DOL.DEFECTCODE = D.DEFECTCODE
  356. INNER JOIN TP_MST_DEFECT DEFECT ON D.DEFECTID = DEFECT.DEFECTID
  357. WHERE
  358. D.VALUEFLAG = 1
  359. AND PD.VALUEFLAG = 1
  360. AND PD.GOODSLEVELTYPEID IN ( 6, 7 )
  361. AND PD.KILNCODE IN ( 'SK3', 'TK3' )
  362. AND D.CREATETIME >= trunc( SYSDATE ) + 7/24
  363. AND D.CREATETIME < trunc( SYSDATE ) + 7/24 + 1 -- AND (INSTR( PD.GROUTINGLINECODE, 'C' ) = 1 AND INSTR( PD.GROUTINGLINECODE, 'A' ) = 4 OR INSTR( PD.GROUTINGLINECODE, 'C06B' ) = 1)
  364. AND INSTR( PD.GROUTINGLINECODE, 'C' ) = 1
  365. AND INSTR( PD.GROUTINGLINECODE, 'A' ) = 4
  366. GROUP BY
  367. DOL.OFFICENAME,
  368. D.GOODSCODE,
  369. D.DEFECTCODE,
  370. DEFECT.S_NAME
  371. ORDER BY
  372. NUM DESC
  373. ";
  374. //直接获取不分页数据
  375. DataTable dt = conn.ExecuteDatatable(sqlStr);
  376. string jsonStr = new JsonResult(dt).ToJson();
  377. context.Response.Write(jsonStr);
  378. }
  379. else if (context.Request["m"].ToString() == "count")
  380. {
  381. string sqlStr = @"
  382. SELECT
  383. TO_CHAR( TRUNC( CREATETIME -7/24 ), 'YY-MM-DD' ) AS SJ,
  384. -- SUM( CASE WHEN ( PROCEDUREID = 104 AND ISREFIRE = 0 AND CHECKFLAG = 1 OR PROCEDUREID = 11 AND VALUEFLAG = 1 ) THEN 1 ELSE 0 END ) AS NUM1,
  385. SUM( CASE WHEN PROCEDUREID = 104 AND ISREFIRE = 0 AND CHECKFLAG = 1 THEN 1 ELSE 0 END ) AS NUM1,
  386. SUM(
  387. CASE
  388. WHEN
  389. ( PROCEDUREID = 105 AND ISREFIRE = 0 OR PROCEDUREID = 12 )
  390. -- PROCEDUREID = 105 AND ISREFIRE = 0
  391. AND GOODSLEVELTYPEID IN ( 6, 7, 8 )
  392. AND VALUEFLAG = 1 THEN
  393. 1 ELSE 0
  394. END
  395. ) AS NUM2,
  396. SUM( CASE WHEN PROCEDUREID = 104 AND CHECKFLAG = 1 THEN 1 ELSE 0 END ) AS NUM3,
  397. -- SUM( CASE WHEN ( PROCEDUREID = 104 AND CHECKFLAG = 1 OR PROCEDUREID = 11 AND VALUEFLAG = 1 OR PROCEDUREID = 58 AND VALUEFLAG = 1 ) THEN 1 ELSE 0 END ) AS NUM3,
  398. SUM( CASE WHEN ( PROCEDUREID = 105 OR PROCEDUREID = 12 OR PROCEDUREID = 59 ) AND GOODSLEVELTYPEID IN ( 6, 7, 8 ) AND VALUEFLAG = 1 THEN 1 ELSE 0 END ) AS NUM4
  399. -- SUM( CASE WHEN PROCEDUREID = 105 AND GOODSLEVELTYPEID IN ( 6, 7, 8 ) AND VALUEFLAG = 1 THEN 1 ELSE 0 END ) AS NUM4
  400. FROM
  401. TP_PM_PRODUCTIONDATA
  402. WHERE
  403. CREATETIME >= TRUNC( SYSDATE ) - 6 + 7/24
  404. AND CREATETIME < TRUNC( SYSDATE ) + 1 + 7/24
  405. -- AND KILNCODE IN('SK3', 'TK3')
  406. -- AND (INSTR( GROUTINGLINECODE, 'C' ) = 1 AND INSTR( GROUTINGLINECODE, 'A' ) = 4 OR INSTR( GROUTINGLINECODE, 'C06B' ) = 1)
  407. -- AND INSTR( GROUTINGLINECODE, 'C' ) = 1 AND INSTR( GROUTINGLINECODE, 'A' ) = 4
  408. GROUP BY
  409. TO_CHAR( TRUNC( CREATETIME -7/24 ), 'YY-MM-DD' )
  410. ORDER BY
  411. TO_CHAR( TRUNC( CREATETIME -7/24 ), 'YY-MM-DD' ) -- DESC
  412. ";
  413. //直接获取不分页数据
  414. DataTable dt = conn.ExecuteDatatable(sqlStr);
  415. string jsonStr = new JsonResult(dt).ToJson();
  416. context.Response.Write(jsonStr);
  417. }
  418. else if (context.Request["m"].ToString() == "high")
  419. {
  420. string sqlStr = @"
  421. SELECT
  422. GOODSCODE,
  423. NVL( NUM1, 0 ) AS N1,
  424. NVL( NUM1, 0 ) - NVL( NUM2, 0 ) AS N2,
  425. ROUND(
  426. ( NVL( NUM1, 0 ) - NVL( NUM2, 0 ) ) / DECODE( NVL( NUM1, 1 ), 0, 1, NVL( NUM1, 1 ) ) * 100,
  427. 1
  428. ) || '%' AS GP
  429. FROM
  430. (
  431. SELECT
  432. PD.GOODSCODE,
  433. SUM(
  434. CASE
  435. WHEN (
  436. PD.PROCEDUREID = 104
  437. AND PD.ISREFIRE = 0
  438. AND PD.CHECKFLAG = 1
  439. OR PD.PROCEDUREID = 11
  440. AND PD.VALUEFLAG = 1
  441. ) THEN
  442. 1 ELSE 0
  443. END
  444. ) AS NUM1,
  445. SUM(
  446. CASE
  447. WHEN ( PD.PROCEDUREID = 105 AND PD.ISREFIRE = 0 OR PD.PROCEDUREID = 12 )
  448. AND PD.GOODSLEVELTYPEID IN ( 6, 7, 8 )
  449. AND PD.VALUEFLAG = 1 THEN
  450. 1 ELSE 0
  451. END
  452. ) AS NUM2
  453. FROM
  454. TP_PM_PRODUCTIONDATA PD
  455. INNER JOIN TP_PC_GROUTINGLINE GL ON PD.GROUTINGLINEID = GL.GROUTINGLINEID
  456. WHERE
  457. PD.CREATETIME >= TRUNC( SYSDATE ) + 7/24
  458. AND PD.CREATETIME < TRUNC( SYSDATE ) + 1 + 7/24
  459. AND GL.HIGHPRESSUREFLAG = 1
  460. AND (
  461. INSTR( PD.GROUTINGLINECODE, 'C' ) = 1
  462. AND INSTR( PD.GROUTINGLINECODE, 'A' ) = 4
  463. OR INSTR( PD.GROUTINGLINECODE, 'C06B' ) = 1
  464. )
  465. GROUP BY
  466. GROUPING SETS
  467. (PD.GOODSCODE ,())
  468. )
  469. ORDER BY
  470. N1 DESC,
  471. N2 DESC
  472. ";
  473. //直接获取不分页数据
  474. DataTable dt = conn.ExecuteDatatable(sqlStr);
  475. string jsonStr = new JsonResult(dt).ToJson();
  476. context.Response.Write(jsonStr);
  477. }
  478. // else if (context.Request["m"].ToString() == "pass2")
  479. // {
  480. //string sqlStr = @"
  481. //SELECT
  482. // SJ,
  483. // round( ( num1 - num2 ) / decode( num1, 0, 1, num1 )*100, 1 ) AS 本烧,
  484. // round( ( num3 - num4 ) / decode( num1, 0, 1, num1 )*100, 1 ) AS 整体
  485. //FROM
  486. // (
  487. // SELECT
  488. // TO_CHAR( TRUNC( CREATETIME ), 'YY-MM-DD' ) AS SJ,
  489. // SUM( CASE WHEN ( PROCEDUREID = 104 AND ISREFIRE = 0 AND CHECKFLAG = 1 OR PROCEDUREID = 11 AND VALUEFLAG = 1 ) THEN 1 ELSE 0 END ) AS NUM1,
  490. // SUM(
  491. // CASE
  492. // WHEN
  493. // ( PROCEDUREID = 105 AND ISREFIRE = 0 OR PROCEDUREID = 12 )
  494. // AND GOODSLEVELTYPEID IN ( 6, 7, 8 )
  495. // AND VALUEFLAG = 1 THEN
  496. // 1 ELSE 0
  497. // END
  498. // ) AS NUM2,
  499. // SUM( CASE WHEN ( PROCEDUREID = 104 AND CHECKFLAG = 1 OR PROCEDUREID = 11 AND VALUEFLAG = 1 ) THEN 1 ELSE 0 END ) AS NUM3,
  500. // SUM( CASE WHEN ( PROCEDUREID = 105 OR PROCEDUREID = 12 ) AND GOODSLEVELTYPEID IN ( 6, 7, 8 ) AND VALUEFLAG = 1 THEN 1 ELSE 0 END ) AS NUM4
  501. // FROM
  502. // TP_PM_PRODUCTIONDATA
  503. // WHERE
  504. // CREATETIME >= TRUNC( SYSDATE ) - 13
  505. // AND CREATETIME < TRUNC( SYSDATE ) - 6
  506. // -- AND KILNCODE IN('SK3', 'TK3')
  507. // -- AND (INSTR( GROUTINGLINECODE, 'C' ) = 1 AND INSTR( GROUTINGLINECODE, 'A' ) = 4 OR INSTR( GROUTINGLINECODE, 'C06B' ) = 1)
  508. // -- AND INSTR( GROUTINGLINECODE, 'C' ) = 1 AND INSTR( GROUTINGLINECODE, 'A' ) = 4
  509. // GROUP BY
  510. // TO_CHAR( TRUNC( CREATETIME ), 'YY-MM-DD' )
  511. // )
  512. // ORDER BY
  513. // SJ -- DESC
  514. // ";
  515. // //直接获取不分页数据
  516. // DataTable dt = conn.ExecuteDatatable(sqlStr);
  517. // string jsonStr = new JsonResult(dt).ToJson();
  518. // context.Response.Write(jsonStr);
  519. // }
  520. }
  521. }
  522. public decimal toNumber(object o)
  523. {
  524. if (o != DBNull.Value)
  525. return Convert.ToDecimal(o);
  526. else
  527. return 0;
  528. }
  529. public bool IsReusable
  530. {
  531. get
  532. {
  533. return false;
  534. }
  535. }
  536. }