demo2.ashx 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852
  1. <%@ WebHandler Language="C#" Class="demo" %>
  2. using Curtain.DataAccess;
  3. using DK.XuWei.WebMes;
  4. using Newtonsoft.Json.Linq;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Web;
  9. using System.Web.SessionState;
  10. public class demo : IHttpHandler {
  11. public void ProcessRequest (HttpContext context){
  12. context.Response.ContentType = "text/plain";
  13. context.Response.ContentType = "text/plain";
  14. using (IDataAccess conn = DataAccess.Create())
  15. {
  16. //今日次品明细数据
  17. if (context.Request["m"].ToString() == "MonthTableDetail")
  18. {
  19. string sqlStr = @"SELECT
  20. H.产品名称,
  21. H.出窑数,
  22. H.次品数,
  23. H.次品占比,
  24. CASE
  25. WHEN H.同月比 = '%' THEN
  26. '--' ELSE H.同月比
  27. END 同月比,
  28. H.上月比,
  29. CASE
  30. WHEN H.上月比 > H.次品占比 THEN
  31. '下降↓'
  32. WHEN H.上月比 = '%' THEN
  33. '趋同' ELSE '上升↑'
  34. END 对比趋势
  35. FROM
  36. (
  37. SELECT
  38. TT.GOODSCODE 产品名称,
  39. (
  40. SELECT
  41. COUNT( * )
  42. FROM
  43. TP_PM_PRODUCTIONDATA TPPD
  44. WHERE
  45. TPPD.PROCEDUREID = 104
  46. AND TPPD.ISREFIRE = 0
  47. AND KILNCODE = 'TK3'
  48. AND TPPD.VALUEFLAG = 1
  49. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  50. --按照产品型号分组(SKU)
  51. AND TPPD.GOODSCODE=TT.GOODSCODE
  52. ) 出窑数,
  53. TT.COUNT 次品数,
  54. TO_CHAR(
  55. (
  56. TT.COUNT / (
  57. SELECT
  58. COUNT( * )
  59. FROM
  60. TP_PM_PRODUCTIONDATA TPPD
  61. WHERE
  62. TPPD.PROCEDUREID = 104
  63. AND TPPD.ISREFIRE = 0
  64. AND KILNCODE = 'TK3'
  65. AND TPPD.VALUEFLAG = 1
  66. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  67. )
  68. ) * 100,
  69. '9,990.00'
  70. ) || '%' AS 次品占比,
  71. TT3.COUNT 去年缺陷数量,
  72. TT4.COUNT 上个月缺陷数量,
  73. (
  74. SELECT
  75. COUNT( * )
  76. FROM
  77. TP_PM_PRODUCTIONDATA TPPD
  78. WHERE
  79. TPPD.PROCEDUREID = 104
  80. AND TPPD.ISREFIRE = 0
  81. AND KILNCODE = 'TK3'
  82. AND TPPD.VALUEFLAG = 1
  83. AND TPPD.CREATETIME >= trunc( add_months( SYSDATE, - 12 ), 'month' )
  84. AND TPPD.CREATETIME <= trunc( last_day( add_months( SYSDATE, - 12 ) ) )
  85. ) 去年出窑数,
  86. (
  87. SELECT
  88. COUNT( * )
  89. FROM
  90. TP_PM_PRODUCTIONDATA TPPD
  91. WHERE
  92. TPPD.PROCEDUREID = 104
  93. AND TPPD.ISREFIRE = 0
  94. AND KILNCODE = 'TK3'
  95. AND TPPD.VALUEFLAG = 1
  96. AND TPPD.CREATETIME >= trunc( add_months( SYSDATE,- 1 ), 'mm' )
  97. AND TPPD.CREATETIME <= last_day( add_months( SYSDATE,- 1 ) )
  98. ) 上个月出窑数,
  99. TO_CHAR(
  100. (
  101. TT3.COUNT / (
  102. SELECT
  103. COUNT( * )
  104. FROM
  105. TP_PM_PRODUCTIONDATA TPPD
  106. WHERE
  107. TPPD.PROCEDUREID = 104
  108. AND TPPD.ISREFIRE = 0
  109. AND KILNCODE = 'TK3'
  110. AND TPPD.VALUEFLAG = 1
  111. AND TPPD.CREATETIME >= trunc( add_months( SYSDATE, - 12 ), 'month' )
  112. AND TPPD.CREATETIME <= trunc( last_day( add_months( SYSDATE, - 12 ) ) )
  113. )
  114. ) * 100,
  115. '9,990.00'
  116. ) || '%' AS 同月比,
  117. TO_CHAR(
  118. (
  119. TT4.COUNT / (
  120. SELECT
  121. COUNT( * )
  122. FROM
  123. TP_PM_PRODUCTIONDATA TPPD
  124. WHERE
  125. TPPD.PROCEDUREID = 104
  126. AND TPPD.ISREFIRE = 0
  127. AND KILNCODE = 'TK3'
  128. AND TPPD.VALUEFLAG = 1
  129. AND TPPD.CREATETIME >= trunc( add_months( SYSDATE,- 1 ), 'mm' )
  130. AND TPPD.CREATETIME <= last_day( add_months( SYSDATE,- 1 ) )
  131. )
  132. ) * 100,
  133. '9,990.00'
  134. ) || '%' AS 上月比
  135. FROM
  136. (
  137. SELECT ROWNUM
  138. id,
  139. T.GOODSCODE,
  140. T.count
  141. FROM
  142. (
  143. SELECT
  144. TPPD.GOODSCODE,
  145. COUNT( DISTINCT BARCODE ) count
  146. FROM
  147. TP_PM_PRODUCTIONDATA TPPD
  148. WHERE
  149. TPPD.PROCEDUREID = 125
  150. AND TPPD.GOODSLEVELTYPEID = 7
  151. AND TPPD.VALUEFLAG = 1
  152. AND TPPD.KILNCODE = 'TK3'
  153. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  154. GROUP BY
  155. TPPD.GOODSCODE
  156. ORDER BY
  157. count DESC
  158. ) T
  159. WHERE
  160. ROWNUM < 11
  161. ) TT
  162. FULL JOIN (
  163. SELECT
  164. T3.GOODSCODE,
  165. T3.count
  166. FROM
  167. (
  168. SELECT
  169. TPPD.GOODSCODE GOODSCODE,
  170. COUNT( * ) count
  171. FROM
  172. TP_PM_PRODUCTIONDATA TPPD
  173. WHERE
  174. TPPD.PROCEDUREID IN ( 125, 105 )
  175. AND TPPD.GOODSLEVELTYPEID = 7
  176. AND TPPD.VALUEFLAG = 1
  177. AND TPPD.KILNCODE = 'TK3'
  178. AND TPPD.CREATETIME >= trunc( add_months( SYSDATE, - 12 ), 'month' )
  179. AND TPPD.CREATETIME <= trunc( last_day( add_months( SYSDATE, - 12 ) ) )
  180. GROUP BY
  181. TPPD.GOODSCODE
  182. ) T3
  183. ) TT3 ON TT.GOODSCODE = TT3.GOODSCODE
  184. FULL JOIN (
  185. SELECT ROWNUM
  186. id,
  187. T4.GOODSCODE,
  188. T4.count
  189. FROM
  190. (
  191. SELECT
  192. TPPD.GOODSCODE GOODSCODE,
  193. COUNT( * ) count
  194. FROM
  195. TP_PM_PRODUCTIONDATA TPPD
  196. WHERE
  197. TPPD.PROCEDUREID IN ( 125, 105 )
  198. AND TPPD.GOODSLEVELTYPEID = 7
  199. AND TPPD.KILNCODE = 'TK3'
  200. AND TPPD.VALUEFLAG = 1
  201. AND TPPD.CREATETIME >= trunc( add_months( SYSDATE,- 1 ), 'mm' )
  202. AND TPPD.CREATETIME <= last_day( add_months( SYSDATE,- 1 ) )
  203. GROUP BY
  204. TPPD.GOODSCODE
  205. ORDER BY
  206. count DESC
  207. ) T4
  208. WHERE
  209. ROWNUM < 11
  210. ) TT4 ON TT.id = TT4.id
  211. ) H
  212. WHERE
  213. H.次品数 IS NOT NULL ORDER BY H.次品数 DESC";
  214. //直接获取不分页数据
  215. DataTable dt = conn.ExecuteDatatable(sqlStr);
  216. string jsonStr = new JsonResult(dt).ToJson();
  217. context.Response.Write(jsonStr);
  218. }
  219. //近30日次品折线图
  220. if (context.Request["m"].ToString() == "zx")
  221. {
  222. string sqlStr = @"SELECT
  223. *
  224. FROM(
  225. SELECT TT1.count AS 次品数量,TO_CHAR((TT1.COUNT/TT.COUNT)* 100,'9,990.00') || '%' AS 次品率,SUBSTR(TT1.CREATETIME, 5, 2 )||'.'||SUBSTR(TT1.CREATETIME, 7, 2 ) AS 日期 FROM(
  226. SELECT T.CREATETIME,T.count FROM(
  227. SELECT
  228. to_char( TPPD.CREATETIME, 'yyyymmdd' ) AS CREATETIME,
  229. COUNT( * ) count
  230. FROM
  231. TP_PM_PRODUCTIONDATA TPPD
  232. WHERE
  233. TPPD.PROCEDUREID = 104
  234. AND TPPD.ISREFIRE = 0
  235. AND TPPD.KILNCODE = 'TK3'
  236. AND TPPD.VALUEFLAG = 1
  237. AND TPPD.CREATETIME >= TO_CHAR( SYSDATE - 29) GROUP BY to_char( TPPD.CREATETIME, 'yyyymmdd' ) ORDER BY to_char( TPPD.CREATETIME, 'yyyymmdd' ) DESC )T)TT
  238. FULL JOIN
  239. (
  240. SELECT T1.CREATETIME,T1.count FROM(
  241. SELECT
  242. to_char( TPPD.CREATETIME, 'yyyymmdd' ) AS CREATETIME,
  243. COUNT( DISTINCT TPPD.BARCODE ) count
  244. FROM
  245. TP_PM_PRODUCTIONDATA TPPD
  246. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  247. WHERE
  248. TPPD.PROCEDUREID = 125
  249. AND TPPD.GOODSLEVELTYPEID = 7
  250. AND TPPD.KILNCODE = 'TK3'
  251. AND TPPD.VALUEFLAG = 1
  252. AND TPPD.CHECKBATCHNO = 1
  253. AND TPD.DEFECTNAME IS NOT NULL
  254. AND TPPD.CREATETIME >= TO_CHAR( SYSDATE - 29 )
  255. GROUP BY to_char( TPPD.CREATETIME, 'yyyymmdd' ) ORDER BY to_char( TPPD.CREATETIME, 'yyyymmdd' ) ) T1
  256. )TT1 ON TT.CREATETIME = TT1.CREATETIME
  257. ) ORDER BY 日期";
  258. //直接获取不分页数据
  259. DataTable dt = conn.ExecuteDatatable(sqlStr);
  260. string jsonStr = new JsonResult(dt).ToJson();
  261. context.Response.Write(jsonStr);
  262. }
  263. //二检次品缺陷信息
  264. if (context.Request["m"].ToString() == "MonthTabletwo")
  265. {
  266. string sqlStr = @" SELECT
  267. H.缺陷名称,
  268. H.出窑数,
  269. H.缺陷数,
  270. H.缺陷占比,
  271. H.同月比,
  272. H.上月比,
  273. CASE WHEN H.上月比 > H.缺陷占比 THEN '下降↓'
  274. ELSE '上升↑'
  275. END 对比趋势
  276. FROM(
  277. SELECT
  278. TT.DEFECTNAME 缺陷名称,
  279. TT2.COUNT 出窑数,
  280. TT.COUNT 缺陷数,
  281. TO_CHAR((TT.COUNT/TT2.COUNT)* 100,'9,990.00') || '%' AS 缺陷占比,
  282. TT3.COUNT 去年缺陷数量,
  283. TT4.COUNT 上个月缺陷数量,
  284. TT5.COUNT 去年出窑数,
  285. TT6.COUNT 上个月出窑数,
  286. TO_CHAR((TT3.COUNT/TT5.COUNT)* 100,'9,990.00') || '%' AS 同月比,
  287. TO_CHAR((TT4.COUNT/TT6.COUNT)* 100,'9,990.00') || '%' AS 上月比
  288. FROM(
  289. SELECT ROWNUM id,T.DEFECTID,T.DEFECTNAME,T.count FROM (
  290. SELECT
  291. TMD.S_NAME DEFECTNAME,
  292. TMD.DEFECTID,
  293. COUNT( * ) count
  294. FROM
  295. TP_PM_PRODUCTIONDATA TPPD
  296. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  297. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  298. WHERE
  299. TPPD.PROCEDUREID = 125
  300. AND TPPD.GOODSLEVELTYPEID = 7
  301. AND TPD.VALUEFLAG = 1
  302. AND TPPD.VALUEFLAG = 1
  303. AND TPPD.KILNCODE = 'TK3'
  304. AND TMD.VALUEFLAG = 1
  305. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  306. GROUP BY
  307. TMD.S_NAME,TMD.DEFECTID
  308. ORDER BY
  309. count DESC)T WHERE ROWNUM < 6)TT
  310. FULL JOIN(
  311. SELECT
  312. ROWNUM id,
  313. T2.count
  314. FROM(
  315. SELECT
  316. COUNT(*) count
  317. FROM
  318. TP_PM_PRODUCTIONDATA TPPD
  319. WHERE
  320. TPPD.PROCEDUREID = 104
  321. AND TPPD.ISREFIRE = 0
  322. AND KILNCODE = 'TK3'
  323. AND TPPD.VALUEFLAG = 1
  324. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  325. UNION ALL
  326. SELECT
  327. COUNT(*)
  328. FROM
  329. TP_PM_PRODUCTIONDATA TPPD
  330. WHERE
  331. TPPD.PROCEDUREID = 104
  332. AND TPPD.VALUEFLAG = 1
  333. AND TPPD.ISREFIRE = 0
  334. AND KILNCODE = 'TK3'
  335. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  336. UNION ALL
  337. SELECT
  338. COUNT(*)
  339. FROM
  340. TP_PM_PRODUCTIONDATA TPPD
  341. WHERE
  342. TPPD.PROCEDUREID = 104
  343. AND TPPD.VALUEFLAG = 1
  344. AND TPPD.ISREFIRE = 0
  345. AND KILNCODE = 'TK3'
  346. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  347. UNION ALL
  348. SELECT
  349. COUNT(*)
  350. FROM
  351. TP_PM_PRODUCTIONDATA TPPD
  352. WHERE
  353. TPPD.PROCEDUREID = 104
  354. AND TPPD.ISREFIRE = 0
  355. AND TPPD.VALUEFLAG = 1
  356. AND KILNCODE = 'TK3'
  357. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  358. UNION ALL
  359. SELECT
  360. COUNT(*)
  361. FROM
  362. TP_PM_PRODUCTIONDATA TPPD
  363. WHERE
  364. TPPD.PROCEDUREID = 104
  365. AND TPPD.ISREFIRE = 0
  366. AND KILNCODE = 'TK3'
  367. AND TPPD.VALUEFLAG = 1
  368. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' ))T2)TT2 ON TT.id = TT2.id
  369. FULL JOIN(
  370. SELECT T3.DEFECTID,T3.DEFECTNAME,T3.count FROM (
  371. SELECT
  372. TMD.S_NAME DEFECTNAME,
  373. TMD.DEFECTID,
  374. COUNT( * ) count
  375. FROM
  376. TP_PM_PRODUCTIONDATA TPPD
  377. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  378. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  379. WHERE
  380. TPPD.PROCEDUREID IN (125,105)
  381. AND TPPD.GOODSLEVELTYPEID = 7
  382. AND TPD.VALUEFLAG = 1
  383. AND TPPD.VALUEFLAG = 1
  384. AND TPPD.KILNCODE = 'TK3'
  385. AND TMD.VALUEFLAG = 1
  386. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  387. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  388. GROUP BY
  389. TMD.S_NAME,TMD.DEFECTID
  390. )T3 )TT3 ON TT.DEFECTID = TT3.DEFECTID
  391. FULL JOIN(
  392. SELECT ROWNUM id,T4.DEFECTNAME,T4.count FROM (
  393. SELECT
  394. TMD.S_NAME DEFECTNAME,
  395. COUNT( * ) count
  396. FROM
  397. TP_PM_PRODUCTIONDATA TPPD
  398. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  399. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  400. WHERE
  401. TPPD.PROCEDUREID IN (125,105)
  402. AND TPPD.GOODSLEVELTYPEID = 7
  403. AND TPPD.KILNCODE = 'TK3'
  404. AND TPD.VALUEFLAG = 1
  405. AND TPPD.VALUEFLAG = 1
  406. AND TMD.VALUEFLAG = 1
  407. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  408. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  409. GROUP BY
  410. TMD.S_NAME
  411. ORDER BY
  412. count DESC)T4 WHERE ROWNUM < 6)TT4 ON TT.id = TT4.id
  413. FULL JOIN(
  414. SELECT
  415. ROWNUM id,
  416. T5.count
  417. FROM(
  418. SELECT
  419. COUNT(*) count
  420. FROM
  421. TP_PM_PRODUCTIONDATA TPPD
  422. WHERE
  423. TPPD.PROCEDUREID = 104
  424. AND TPPD.ISREFIRE = 0
  425. AND KILNCODE = 'TK3'
  426. AND TPPD.VALUEFLAG = 1
  427. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  428. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  429. UNION ALL
  430. SELECT
  431. COUNT(*)
  432. FROM
  433. TP_PM_PRODUCTIONDATA TPPD
  434. WHERE
  435. TPPD.PROCEDUREID = 104
  436. AND TPPD.ISREFIRE = 0
  437. AND KILNCODE = 'TK3'
  438. AND TPPD.VALUEFLAG = 1
  439. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  440. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  441. UNION ALL
  442. SELECT
  443. COUNT(*)
  444. FROM
  445. TP_PM_PRODUCTIONDATA TPPD
  446. WHERE
  447. TPPD.PROCEDUREID = 104
  448. AND TPPD.ISREFIRE = 0
  449. AND KILNCODE = 'TK3'
  450. AND TPPD.VALUEFLAG = 1
  451. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  452. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  453. UNION ALL
  454. SELECT
  455. COUNT(*)
  456. FROM
  457. TP_PM_PRODUCTIONDATA TPPD
  458. WHERE
  459. TPPD.PROCEDUREID = 104
  460. AND TPPD.ISREFIRE = 0
  461. AND KILNCODE = 'TK3'
  462. AND TPPD.VALUEFLAG = 1
  463. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  464. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  465. UNION ALL
  466. SELECT
  467. COUNT(*)
  468. FROM
  469. TP_PM_PRODUCTIONDATA TPPD
  470. WHERE
  471. TPPD.PROCEDUREID = 104
  472. AND TPPD.ISREFIRE = 0
  473. AND KILNCODE = 'TK3'
  474. AND TPPD.VALUEFLAG = 1
  475. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  476. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  477. )T5)TT5 ON TT.id = TT5.id
  478. FULL JOIN(
  479. SELECT
  480. ROWNUM id,
  481. T6.count
  482. FROM(
  483. SELECT
  484. COUNT(*) count
  485. FROM
  486. TP_PM_PRODUCTIONDATA TPPD
  487. WHERE
  488. TPPD.PROCEDUREID = 104
  489. AND TPPD.ISREFIRE = 0
  490. AND KILNCODE = 'TK3'
  491. AND TPPD.VALUEFLAG = 1
  492. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  493. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  494. UNION ALL
  495. SELECT
  496. COUNT(*)
  497. FROM
  498. TP_PM_PRODUCTIONDATA TPPD
  499. WHERE
  500. TPPD.PROCEDUREID = 104
  501. AND TPPD.ISREFIRE = 0
  502. AND KILNCODE = 'TK3'
  503. AND TPPD.VALUEFLAG = 1
  504. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  505. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  506. UNION ALL
  507. SELECT
  508. COUNT(*)
  509. FROM
  510. TP_PM_PRODUCTIONDATA TPPD
  511. WHERE
  512. TPPD.PROCEDUREID = 104
  513. AND TPPD.ISREFIRE = 0
  514. AND KILNCODE = 'TK3'
  515. AND TPPD.VALUEFLAG = 1
  516. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  517. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  518. UNION ALL
  519. SELECT
  520. COUNT(*)
  521. FROM
  522. TP_PM_PRODUCTIONDATA TPPD
  523. WHERE
  524. TPPD.PROCEDUREID = 104
  525. AND TPPD.ISREFIRE = 0
  526. AND KILNCODE = 'TK3'
  527. AND TPPD.VALUEFLAG = 1
  528. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  529. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  530. UNION ALL
  531. SELECT
  532. COUNT(*)
  533. FROM
  534. TP_PM_PRODUCTIONDATA TPPD
  535. WHERE
  536. TPPD.PROCEDUREID = 104
  537. AND TPPD.ISREFIRE = 0
  538. AND KILNCODE = 'TK3'
  539. AND TPPD.VALUEFLAG = 1
  540. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  541. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  542. )T6)TT6 ON TT.id = TT6.id )H WHERE H.缺陷数 IS NOT NULL
  543. ";
  544. //直接获取不分页数据
  545. DataTable dt = conn.ExecuteDatatable(sqlStr);
  546. string jsonStr = new JsonResult(dt).ToJson();
  547. context.Response.Write(jsonStr);
  548. }
  549. //二检次品缺陷位置信息
  550. if (context.Request["m"].ToString() == "MonthTableD")
  551. {
  552. string sqlStr = @" SELECT
  553. H.缺陷位置名称,
  554. H.出窑数,
  555. H.缺陷数,
  556. H.缺陷占比,
  557. H.同月比,
  558. H.上月比,
  559. CASE WHEN H.上月比 > H.缺陷占比 THEN '下降↓'
  560. ELSE '上升↑'
  561. END 对比趋势
  562. FROM(
  563. SELECT
  564. TT.DEFECTNAME 缺陷位置名称,
  565. TT2.COUNT 出窑数,
  566. TT.COUNT 缺陷数,
  567. TO_CHAR((TT.COUNT/TT2.COUNT)* 100,'9,990.00') || '%' AS 缺陷占比,
  568. TT3.COUNT 去年缺陷数量,
  569. TT4.COUNT 上个月缺陷数量,
  570. TT5.COUNT 去年出窑数,
  571. TT6.COUNT 上个月出窑数,
  572. TO_CHAR((TT3.COUNT/TT5.COUNT)* 100,'9,990.00') || '%' AS 同月比,
  573. TO_CHAR((TT4.COUNT/TT6.COUNT)* 100,'9,990.00') || '%' AS 上月比
  574. FROM(
  575. SELECT ROWNUM id,T.DEFECTID,T.DEFECTNAME,T.count FROM (
  576. SELECT
  577. TPD.DEFECTPOSITIONNAME DEFECTNAME,
  578. TPD.DEFECTPOSITIONID DEFECTID,
  579. COUNT( * ) count
  580. FROM
  581. TP_PM_PRODUCTIONDATA TPPD
  582. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  583. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  584. WHERE
  585. TPPD.PROCEDUREID = 125
  586. AND TPPD.GOODSLEVELTYPEID = 7
  587. AND TPPD.KILNCODE = 'TK3'
  588. AND TPD.VALUEFLAG = 1
  589. AND TPPD.VALUEFLAG = 1
  590. AND TMD.VALUEFLAG = 1
  591. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  592. GROUP BY
  593. TPD.DEFECTPOSITIONNAME,TPD.DEFECTPOSITIONID
  594. ORDER BY
  595. count DESC)T WHERE ROWNUM < 6)TT
  596. FULL JOIN(
  597. SELECT
  598. ROWNUM id,
  599. T2.count
  600. FROM(
  601. SELECT
  602. COUNT(*) count
  603. FROM
  604. TP_PM_PRODUCTIONDATA TPPD
  605. WHERE
  606. TPPD.PROCEDUREID = 104
  607. AND TPPD.ISREFIRE = 0
  608. AND KILNCODE = 'TK3'
  609. AND TPPD.VALUEFLAG = 1
  610. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  611. UNION ALL
  612. SELECT
  613. COUNT(*)
  614. FROM
  615. TP_PM_PRODUCTIONDATA TPPD
  616. WHERE
  617. TPPD.PROCEDUREID = 104
  618. AND TPPD.VALUEFLAG = 1
  619. AND TPPD.ISREFIRE = 0
  620. AND KILNCODE = 'TK3'
  621. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  622. UNION ALL
  623. SELECT
  624. COUNT(*)
  625. FROM
  626. TP_PM_PRODUCTIONDATA TPPD
  627. WHERE
  628. TPPD.PROCEDUREID = 104
  629. AND TPPD.VALUEFLAG = 1
  630. AND TPPD.ISREFIRE = 0
  631. AND KILNCODE = 'TK3'
  632. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  633. UNION ALL
  634. SELECT
  635. COUNT(*)
  636. FROM
  637. TP_PM_PRODUCTIONDATA TPPD
  638. WHERE
  639. TPPD.PROCEDUREID = 104
  640. AND TPPD.ISREFIRE = 0
  641. AND TPPD.VALUEFLAG = 1
  642. AND KILNCODE = 'TK3'
  643. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' )
  644. UNION ALL
  645. SELECT
  646. COUNT(*)
  647. FROM
  648. TP_PM_PRODUCTIONDATA TPPD
  649. WHERE
  650. TPPD.PROCEDUREID = 104
  651. AND TPPD.ISREFIRE = 0
  652. AND KILNCODE = 'TK3'
  653. AND TPPD.VALUEFLAG = 1
  654. AND TPPD.CREATETIME >= TO_DATE( TO_CHAR( SYSDATE, 'YYYY-MM' ), 'YYYY-MM' ))T2)TT2 ON TT.id = TT2.id
  655. FULL JOIN(
  656. SELECT T3.DEFECTID,T3.DEFECTNAME,T3.count FROM (
  657. SELECT
  658. TPD.DEFECTPOSITIONNAME DEFECTNAME,
  659. TPD.DEFECTPOSITIONID DEFECTID,
  660. COUNT( * ) count
  661. FROM
  662. TP_PM_PRODUCTIONDATA TPPD
  663. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  664. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  665. WHERE
  666. TPPD.PROCEDUREID IN (125,105)
  667. AND TPPD.GOODSLEVELTYPEID = 7
  668. AND TPPD.KILNCODE = 'TK3'
  669. AND TPD.VALUEFLAG = 1
  670. AND TPPD.VALUEFLAG = 1
  671. AND TMD.VALUEFLAG = 1
  672. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  673. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  674. GROUP BY
  675. TPD.DEFECTPOSITIONNAME,TPD.DEFECTPOSITIONID
  676. )T3 )TT3 ON TT.DEFECTID = TT3.DEFECTID
  677. FULL JOIN(
  678. SELECT ROWNUM id,T4.DEFECTNAME,T4.count FROM (
  679. SELECT
  680. TPD.DEFECTPOSITIONNAME DEFECTNAME,
  681. COUNT( * ) count
  682. FROM
  683. TP_PM_PRODUCTIONDATA TPPD
  684. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  685. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  686. WHERE
  687. TPPD.PROCEDUREID IN (125,105)
  688. AND TPPD.GOODSLEVELTYPEID = 7
  689. AND TPPD.KILNCODE = 'TK3'
  690. AND TPD.VALUEFLAG = 1
  691. AND TPPD.VALUEFLAG = 1
  692. AND TMD.VALUEFLAG = 1
  693. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  694. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  695. GROUP BY
  696. TPD.DEFECTPOSITIONNAME
  697. ORDER BY
  698. count DESC)T4 WHERE ROWNUM < 6)TT4 ON TT.id = TT4.id
  699. FULL JOIN(
  700. SELECT
  701. ROWNUM id,
  702. T5.count
  703. FROM(
  704. SELECT
  705. COUNT(*) count
  706. FROM
  707. TP_PM_PRODUCTIONDATA TPPD
  708. WHERE
  709. TPPD.PROCEDUREID = 104
  710. AND TPPD.ISREFIRE = 0
  711. AND KILNCODE = 'TK3'
  712. AND TPPD.VALUEFLAG = 1
  713. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  714. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  715. UNION ALL
  716. SELECT
  717. COUNT(*)
  718. FROM
  719. TP_PM_PRODUCTIONDATA TPPD
  720. WHERE
  721. TPPD.PROCEDUREID = 104
  722. AND TPPD.ISREFIRE = 0
  723. AND KILNCODE = 'TK3'
  724. AND TPPD.VALUEFLAG = 1
  725. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  726. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  727. UNION ALL
  728. SELECT
  729. COUNT(*)
  730. FROM
  731. TP_PM_PRODUCTIONDATA TPPD
  732. WHERE
  733. TPPD.PROCEDUREID = 104
  734. AND TPPD.ISREFIRE = 0
  735. AND KILNCODE = 'TK3'
  736. AND TPPD.VALUEFLAG = 1
  737. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  738. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  739. UNION ALL
  740. SELECT
  741. COUNT(*)
  742. FROM
  743. TP_PM_PRODUCTIONDATA TPPD
  744. WHERE
  745. TPPD.PROCEDUREID = 104
  746. AND TPPD.ISREFIRE = 0
  747. AND KILNCODE = 'TK3'
  748. AND TPPD.VALUEFLAG = 1
  749. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  750. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  751. UNION ALL
  752. SELECT
  753. COUNT(*)
  754. FROM
  755. TP_PM_PRODUCTIONDATA TPPD
  756. WHERE
  757. TPPD.PROCEDUREID = 104
  758. AND TPPD.ISREFIRE = 0
  759. AND KILNCODE = 'TK3'
  760. AND TPPD.VALUEFLAG = 1
  761. AND TPPD.CREATETIME >= trunc(add_months(sysdate, -12), 'month')
  762. AND TPPD.CREATETIME <= trunc(last_day(add_months(sysdate, -12)))
  763. )T5)TT5 ON TT.id = TT5.id
  764. FULL JOIN(
  765. SELECT
  766. ROWNUM id,
  767. T6.count
  768. FROM(
  769. SELECT
  770. COUNT(*) count
  771. FROM
  772. TP_PM_PRODUCTIONDATA TPPD
  773. WHERE
  774. TPPD.PROCEDUREID = 104
  775. AND TPPD.ISREFIRE = 0
  776. AND KILNCODE = 'TK3'
  777. AND TPPD.VALUEFLAG = 1
  778. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  779. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  780. UNION ALL
  781. SELECT
  782. COUNT(*)
  783. FROM
  784. TP_PM_PRODUCTIONDATA TPPD
  785. WHERE
  786. TPPD.PROCEDUREID = 104
  787. AND TPPD.ISREFIRE = 0
  788. AND KILNCODE = 'TK3'
  789. AND TPPD.VALUEFLAG = 1
  790. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  791. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  792. UNION ALL
  793. SELECT
  794. COUNT(*)
  795. FROM
  796. TP_PM_PRODUCTIONDATA TPPD
  797. WHERE
  798. TPPD.PROCEDUREID = 104
  799. AND TPPD.ISREFIRE = 0
  800. AND KILNCODE = 'TK3'
  801. AND TPPD.VALUEFLAG = 1
  802. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  803. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  804. UNION ALL
  805. SELECT
  806. COUNT(*)
  807. FROM
  808. TP_PM_PRODUCTIONDATA TPPD
  809. WHERE
  810. TPPD.PROCEDUREID = 104
  811. AND TPPD.ISREFIRE = 0
  812. AND KILNCODE = 'TK3'
  813. AND TPPD.VALUEFLAG = 1
  814. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  815. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  816. UNION ALL
  817. SELECT
  818. COUNT(*)
  819. FROM
  820. TP_PM_PRODUCTIONDATA TPPD
  821. WHERE
  822. TPPD.PROCEDUREID = 104
  823. AND TPPD.ISREFIRE = 0
  824. AND KILNCODE = 'TK3'
  825. AND TPPD.VALUEFLAG = 1
  826. AND TPPD.CREATETIME >= trunc(add_months(sysdate,-1),'mm')
  827. AND TPPD.CREATETIME <= last_day(add_months(sysdate,-1))
  828. )T6)TT6 ON TT.id = TT6.id )H WHERE H.缺陷数 IS NOT NULL
  829. ";
  830. //直接获取不分页数据
  831. DataTable dt = conn.ExecuteDatatable(sqlStr);
  832. string jsonStr = new JsonResult(dt).ToJson();
  833. context.Response.Write(jsonStr);
  834. }
  835. }
  836. }
  837. public bool IsReusable {
  838. get {
  839. return false;
  840. }
  841. }
  842. }