GradingData.ashx 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529
  1. <%@ WebHandler Language="C#" Class="SmallKanban" %>
  2. using System;
  3. using System.Web;
  4. using System.Web.SessionState;
  5. using System.Configuration;
  6. using System.Data;
  7. using Curtain.DataAccess;
  8. using Curtain.Log;
  9. using DK.XuWei.WebMes;
  10. using Newtonsoft.Json.Linq;
  11. using System.Collections.Generic;
  12. public class SmallKanban : IHttpHandler {
  13. public void ProcessRequest (HttpContext context) {
  14. using (IDataAccess conn = DataAccess.Create())
  15. {
  16. //服务器时间
  17. if (context.Request["m"].ToString() == "fwq")
  18. {
  19. string time = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm ");
  20. Dictionary<string, string> d = new Dictionary<string, string>();
  21. JObject json = new JObject(
  22. new JProperty("success", true),
  23. new JProperty("sj", time)
  24. );
  25. context.Response.Write(json.ToString());
  26. }
  27. if (context.Request["m"].ToString() == "分级数据")
  28. {
  29. string sqlStr = @"
  30. SELECT tt2.usercode
  31. ,tt2.countj
  32. ,nvl(tt2.countcg, 0) countcg
  33. ,nvl(tt2.countyz, 0) countyz
  34. ,nvl(tt2.countlj, 0) countlj
  35. ,tt2.lv
  36. FROM (SELECT tt.usercode
  37. ,tt.num
  38. ,tt.countj
  39. ,tt.countcg
  40. ,tt.countyz
  41. ,tt.countlj
  42. ,CASE
  43. WHEN tt.countlj = 0 THEN
  44. '0%'
  45. ELSE
  46. decode(nvl(tt.countlj, 0)
  47. ,0
  48. ,'0%'
  49. ,to_char((nvl(tt.countlj, 0) /
  50. decode(nvl(tt.countj, 1), 0, 1, nvl(tt.countj, 1))) * 100
  51. ,'fm99990.00') || '%')
  52. END lv
  53. FROM (SELECT 'Z16' usercode
  54. ,0 num
  55. ,MAX((SELECT COUNT(DISTINCT barcode)
  56. FROM tp_pm_productiondata tppd
  57. WHERE tppd.procedureid IN (9, 15)
  58. AND tppd.usercode = 'Z16'
  59. AND tppd.createtime >= trunc(SYSDATE)
  60. AND tppd.valueflag = 1)) AS countj
  61. ,SUM(t.countcg) countcg
  62. ,SUM(t.countyz) countyz
  63. ,SUM(t.countlj) countlj
  64. FROM (SELECT tppd1.barcode countj
  65. ,CASE
  66. WHEN tpd.defectcode = 0148 THEN
  67. 1
  68. ELSE
  69. 0
  70. END countcg
  71. ,CASE
  72. WHEN tpd.defectcode = 0149 THEN
  73. 1
  74. ELSE
  75. 0
  76. END countyz
  77. ,CASE
  78. WHEN tpd.defectcode IN (0148, 0149) THEN
  79. 1
  80. ELSE
  81. 0
  82. END countlj
  83. FROM tp_pm_productiondata tppd
  84. INNER JOIN (SELECT DISTINCT barcode
  85. FROM tp_pm_productiondata tppd
  86. WHERE tppd.procedureid IN (9, 15, 10, 16)
  87. --AND TPPD.USERCODE = 'Z16'
  88. AND tppd.createtime >= trunc(SYSDATE)) tppd1
  89. ON tppd.barcode = tppd1.barcode
  90. LEFT JOIN tp_pm_defect tpd
  91. ON tpd.productiondataid = tppd.productiondataid
  92. AND tpd.defectusercode = 'Z16'
  93. AND tpd.valueflag = 1
  94. WHERE tppd.updatetime >= trunc(SYSDATE)
  95. AND tppd.valueflag = 1
  96. AND tppd.procedureid IN (10, 16)) t
  97. UNION ALL
  98. SELECT 'Z17' usercode
  99. ,0 num
  100. ,MAX((SELECT COUNT(DISTINCT barcode)
  101. FROM tp_pm_productiondata tppd
  102. WHERE tppd.procedureid IN (9, 15)
  103. AND tppd.usercode = 'Z17'
  104. AND tppd.createtime >= trunc(SYSDATE)
  105. AND tppd.valueflag = 1)) AS countj
  106. ,SUM(t.countcg)
  107. ,SUM(t.countyz)
  108. ,SUM(t.countlj)
  109. FROM (SELECT tppd1.barcode countj
  110. ,CASE
  111. WHEN tpd.defectcode = 0148 THEN
  112. 1
  113. ELSE
  114. 0
  115. END countcg
  116. ,CASE
  117. WHEN tpd.defectcode = 0149 THEN
  118. 1
  119. ELSE
  120. 0
  121. END countyz
  122. ,CASE
  123. WHEN tpd.defectcode IN (0148, 0149) THEN
  124. 1
  125. ELSE
  126. 0
  127. END countlj
  128. FROM tp_pm_productiondata tppd
  129. INNER JOIN (SELECT DISTINCT barcode
  130. FROM tp_pm_productiondata tppd
  131. WHERE tppd.procedureid IN (9, 15, 10, 16)
  132. --AND TPPD.USERCODE = 'Z17'
  133. AND tppd.createtime >= trunc(SYSDATE)) tppd1
  134. ON tppd.barcode = tppd1.barcode
  135. LEFT JOIN tp_pm_defect tpd
  136. ON tpd.productiondataid = tppd.productiondataid
  137. AND tpd.defectusercode = 'Z17'
  138. AND tpd.valueflag = 1
  139. WHERE tppd.updatetime >= trunc(SYSDATE)
  140. AND tppd.valueflag = 1
  141. AND tppd.procedureid IN (10, 16)) t
  142. UNION ALL
  143. SELECT 'Z18' usercode
  144. ,0 num
  145. ,MAX((SELECT COUNT(DISTINCT barcode)
  146. FROM tp_pm_productiondata tppd
  147. WHERE tppd.procedureid IN (9, 15)
  148. AND tppd.usercode = 'Z18'
  149. AND tppd.createtime >= trunc(SYSDATE)
  150. AND tppd.valueflag = 1)) AS countj
  151. ,SUM(t.countcg)
  152. ,SUM(t.countyz)
  153. ,SUM(t.countlj)
  154. FROM (SELECT tppd1.barcode countj
  155. ,CASE
  156. WHEN tpd.defectcode = 0148 THEN
  157. 1
  158. ELSE
  159. 0
  160. END countcg
  161. ,CASE
  162. WHEN tpd.defectcode = 0149 THEN
  163. 1
  164. ELSE
  165. 0
  166. END countyz
  167. ,CASE
  168. WHEN tpd.defectcode IN (0148, 0149) THEN
  169. 1
  170. ELSE
  171. 0
  172. END countlj
  173. FROM tp_pm_productiondata tppd
  174. INNER JOIN (SELECT DISTINCT barcode
  175. FROM tp_pm_productiondata tppd
  176. WHERE tppd.procedureid IN (9, 15, 10, 16)
  177. --AND TPPD.USERCODE = 'Z18'
  178. AND tppd.createtime >= trunc(SYSDATE)) tppd1
  179. ON tppd.barcode = tppd1.barcode
  180. LEFT JOIN tp_pm_defect tpd
  181. ON tpd.productiondataid = tppd.productiondataid
  182. AND tpd.defectusercode = 'Z18'
  183. AND tpd.valueflag = 1
  184. WHERE tppd.updatetime >= trunc(SYSDATE)
  185. AND tppd.valueflag = 1
  186. AND tppd.procedureid IN (10, 16)) t
  187. UNION ALL
  188. SELECT 'Z19' usercode
  189. ,0 num
  190. ,MAX((SELECT COUNT(DISTINCT barcode)
  191. FROM tp_pm_productiondata tppd
  192. WHERE tppd.procedureid IN (9, 15)
  193. AND tppd.usercode = 'Z19'
  194. AND tppd.createtime >= trunc(SYSDATE)
  195. AND tppd.valueflag = 1)) AS countj
  196. ,SUM(t.countcg)
  197. ,SUM(t.countyz)
  198. ,SUM(t.countlj)
  199. FROM (SELECT tppd1.barcode countj
  200. ,CASE
  201. WHEN tpd.defectcode = 0148 THEN
  202. 1
  203. ELSE
  204. 0
  205. END countcg
  206. ,CASE
  207. WHEN tpd.defectcode = 0149 THEN
  208. 1
  209. ELSE
  210. 0
  211. END countyz
  212. ,CASE
  213. WHEN tpd.defectcode IN (0148, 0149) THEN
  214. 1
  215. ELSE
  216. 0
  217. END countlj
  218. FROM tp_pm_productiondata tppd
  219. INNER JOIN (SELECT DISTINCT barcode
  220. FROM tp_pm_productiondata tppd
  221. WHERE tppd.procedureid IN (9, 15, 10, 16)
  222. --AND TPPD.USERCODE = 'Z19'
  223. AND tppd.createtime >= trunc(SYSDATE)) tppd1
  224. ON tppd.barcode = tppd1.barcode
  225. LEFT JOIN tp_pm_defect tpd
  226. ON tpd.productiondataid = tppd.productiondataid
  227. AND tpd.defectusercode = 'Z19'
  228. AND tpd.valueflag = 1
  229. WHERE tppd.updatetime >= trunc(SYSDATE)
  230. AND tppd.valueflag = 1
  231. AND tppd.procedureid IN (10, 16)) t
  232. UNION ALL
  233. SELECT 'Z20' usercode
  234. ,0 num
  235. ,MAX((SELECT COUNT(DISTINCT barcode)
  236. FROM tp_pm_productiondata tppd
  237. WHERE tppd.procedureid IN (9, 15)
  238. AND tppd.usercode = 'Z20'
  239. AND tppd.createtime >= trunc(SYSDATE)
  240. AND tppd.valueflag = 1)) AS countj
  241. ,SUM(t.countcg)
  242. ,SUM(t.countyz)
  243. ,SUM(t.countlj)
  244. FROM (SELECT tppd1.barcode countj
  245. ,CASE
  246. WHEN tpd.defectcode = 0148 THEN
  247. 1
  248. ELSE
  249. 0
  250. END countcg
  251. ,CASE
  252. WHEN tpd.defectcode = 0149 THEN
  253. 1
  254. ELSE
  255. 0
  256. END countyz
  257. ,CASE
  258. WHEN tpd.defectcode IN (0148, 0149) THEN
  259. 1
  260. ELSE
  261. 0
  262. END countlj
  263. FROM tp_pm_productiondata tppd
  264. INNER JOIN (SELECT DISTINCT barcode
  265. FROM tp_pm_productiondata tppd
  266. WHERE tppd.procedureid IN (9, 15, 10, 16)
  267. --AND TPPD.USERCODE = 'Z20'
  268. AND tppd.createtime >= trunc(SYSDATE)) tppd1
  269. ON tppd.barcode = tppd1.barcode
  270. LEFT JOIN tp_pm_defect tpd
  271. ON tpd.productiondataid = tppd.productiondataid
  272. AND tpd.defectusercode = 'Z20'
  273. AND tpd.valueflag = 1
  274. WHERE tppd.updatetime >= trunc(SYSDATE)
  275. AND tppd.valueflag = 1
  276. AND tppd.procedureid IN (10, 16)) t
  277. UNION ALL
  278. SELECT 'Z21' usercode
  279. ,0 num
  280. ,MAX((SELECT COUNT(DISTINCT barcode)
  281. FROM tp_pm_productiondata tppd
  282. WHERE tppd.procedureid IN (9, 15)
  283. AND tppd.usercode = 'Z21'
  284. AND tppd.createtime >= trunc(SYSDATE)
  285. AND tppd.valueflag = 1)) AS countj
  286. ,SUM(t.countcg)
  287. ,SUM(t.countyz)
  288. ,SUM(t.countlj)
  289. FROM (SELECT tppd1.barcode countj
  290. ,CASE
  291. WHEN tpd.defectcode = 0148 THEN
  292. 1
  293. ELSE
  294. 0
  295. END countcg
  296. ,CASE
  297. WHEN tpd.defectcode = 0149 THEN
  298. 1
  299. ELSE
  300. 0
  301. END countyz
  302. ,CASE
  303. WHEN tpd.defectcode IN (0148, 0149) THEN
  304. 1
  305. ELSE
  306. 0
  307. END countlj
  308. FROM tp_pm_productiondata tppd
  309. INNER JOIN (SELECT DISTINCT barcode
  310. FROM tp_pm_productiondata tppd
  311. WHERE tppd.procedureid IN (9, 15, 10, 16)
  312. --AND TPPD.USERCODE = 'Z21'
  313. AND tppd.createtime >= trunc(SYSDATE)) tppd1
  314. ON tppd.barcode = tppd1.barcode
  315. LEFT JOIN tp_pm_defect tpd
  316. ON tpd.productiondataid = tppd.productiondataid
  317. AND tpd.defectusercode = 'Z21'
  318. AND tpd.valueflag = 1
  319. WHERE tppd.updatetime >= trunc(SYSDATE)
  320. AND tppd.valueflag = 1
  321. AND tppd.procedureid IN (10, 16)) t
  322. UNION ALL
  323. SELECT 'Z23' usercode
  324. ,0 num
  325. ,MAX((SELECT COUNT(DISTINCT barcode)
  326. FROM tp_pm_productiondata tppd
  327. WHERE tppd.procedureid IN (9, 15)
  328. AND tppd.usercode = 'Z23'
  329. AND tppd.createtime >= trunc(SYSDATE)
  330. AND tppd.valueflag = 1)) AS countj
  331. ,SUM(t.countcg)
  332. ,SUM(t.countyz)
  333. ,SUM(t.countlj)
  334. FROM (SELECT tppd1.barcode countj
  335. ,CASE
  336. WHEN tpd.defectcode = 0148 THEN
  337. 1
  338. ELSE
  339. 0
  340. END countcg
  341. ,CASE
  342. WHEN tpd.defectcode = 0149 THEN
  343. 1
  344. ELSE
  345. 0
  346. END countyz
  347. ,CASE
  348. WHEN tpd.defectcode IN (0148, 0149) THEN
  349. 1
  350. ELSE
  351. 0
  352. END countlj
  353. FROM tp_pm_productiondata tppd
  354. INNER JOIN (SELECT DISTINCT barcode
  355. FROM tp_pm_productiondata tppd
  356. WHERE tppd.procedureid IN (9, 15, 10, 16)
  357. --AND TPPD.USERCODE = 'Z23'
  358. AND tppd.createtime >= trunc(SYSDATE)) tppd1
  359. ON tppd.barcode = tppd1.barcode
  360. LEFT JOIN tp_pm_defect tpd
  361. ON tpd.productiondataid = tppd.productiondataid
  362. AND tpd.defectusercode = 'Z23'
  363. AND tpd.valueflag = 1
  364. WHERE tppd.updatetime >= trunc(SYSDATE)
  365. AND tppd.valueflag = 1
  366. AND tppd.procedureid IN (10, 16)) t
  367. UNION ALL
  368. SELECT 'Z24' usercode
  369. ,0 num
  370. ,MAX((SELECT COUNT(DISTINCT barcode)
  371. FROM tp_pm_productiondata tppd
  372. WHERE tppd.procedureid IN (9, 15)
  373. AND tppd.usercode = 'Z24'
  374. AND tppd.createtime >= trunc(SYSDATE)
  375. AND tppd.valueflag = 1)) AS countj
  376. ,SUM(t.countcg)
  377. ,SUM(t.countyz)
  378. ,SUM(t.countlj)
  379. FROM (SELECT tppd1.barcode countj
  380. ,CASE
  381. WHEN tpd.defectcode = 0148 THEN
  382. 1
  383. ELSE
  384. 0
  385. END countcg
  386. ,CASE
  387. WHEN tpd.defectcode = 0149 THEN
  388. 1
  389. ELSE
  390. 0
  391. END countyz
  392. ,CASE
  393. WHEN tpd.defectcode IN (0148, 0149) THEN
  394. 1
  395. ELSE
  396. 0
  397. END countlj
  398. FROM tp_pm_productiondata tppd
  399. INNER JOIN (SELECT DISTINCT barcode
  400. FROM tp_pm_productiondata tppd
  401. WHERE tppd.procedureid IN (9, 15, 10, 16)
  402. --AND TPPD.USERCODE = 'Z23'
  403. AND tppd.createtime >= trunc(SYSDATE)) tppd1
  404. ON tppd.barcode = tppd1.barcode
  405. LEFT JOIN tp_pm_defect tpd
  406. ON tpd.productiondataid = tppd.productiondataid
  407. AND tpd.defectusercode = 'Z24'
  408. AND tpd.valueflag = 1
  409. WHERE tppd.updatetime >= trunc(SYSDATE)
  410. AND tppd.valueflag = 1
  411. AND tppd.procedureid IN (10, 16)) t
  412. UNION ALL
  413. SELECT '汇总' usercode
  414. ,1 num
  415. ,MAX((SELECT COUNT(DISTINCT barcode)
  416. FROM tp_pm_productiondata tppd
  417. WHERE tppd.procedureid IN (9, 15)
  418. AND tppd.usercode IN ('Z24','Z23', 'Z20', 'Z21', 'Z19', 'Z18', 'Z17', 'Z16')
  419. AND tppd.createtime >= trunc(SYSDATE)
  420. AND tppd.valueflag = 1)) AS countj
  421. ,SUM(t.countcg)
  422. ,SUM(t.countyz)
  423. ,SUM(t.countlj)
  424. FROM (SELECT tppd1.barcode countj
  425. ,CASE
  426. WHEN tpd.defectcode = 0148 THEN
  427. 1
  428. ELSE
  429. 0
  430. END countcg
  431. ,CASE
  432. WHEN tpd.defectcode = 0149 THEN
  433. 1
  434. ELSE
  435. 0
  436. END countyz
  437. ,CASE
  438. WHEN tpd.defectcode IN (0148, 0149) THEN
  439. 1
  440. ELSE
  441. 0
  442. END countlj
  443. FROM tp_pm_productiondata tppd
  444. INNER JOIN (SELECT DISTINCT barcode
  445. FROM tp_pm_productiondata tppd
  446. WHERE tppd.procedureid IN (9, 15, 10, 16)
  447. --AND TPPD.USERCODE IN ('Z23','Z20','Z21','Z19','Z18','Z17','Z16')
  448. AND tppd.createtime >= trunc(SYSDATE)) tppd1
  449. ON tppd.barcode = tppd1.barcode
  450. LEFT JOIN tp_pm_defect tpd
  451. ON tpd.productiondataid = tppd.productiondataid
  452. AND tpd.defectusercode IN ('Z24','Z23', 'Z21', 'Z20', 'Z19', 'Z18', 'Z17', 'Z16')
  453. AND tpd.valueflag = 1
  454. WHERE tppd.updatetime >= trunc(SYSDATE)
  455. AND tppd.valueflag = 1
  456. AND tppd.procedureid IN (10, 16)) t) tt) tt2
  457. ORDER BY tt2.num
  458. ,tt2.lv ASC
  459. ";
  460. //直接获取不分页数据
  461. DataTable dt = conn.ExecuteDatatable(sqlStr);
  462. context.Response.Write(new JsonResult(dt).ToJson());
  463. }
  464. // if (context.Request["m"].ToString() == "合计")
  465. // {
  466. // string sqlStr = @"
  467. //SELECT
  468. // '汇总' usercode,
  469. // TT.countj,
  470. // TT.countcg,
  471. // TT.countyz,
  472. // TT.countlj,
  473. // CASE WHEN TT.countlj = 0 THEN
  474. // '0%'
  475. // ELSE
  476. // DECODE( NVL( TT.countlj, 0 ), 0, '0%', TO_CHAR( ( NVL( TT.countlj, 0 ) / DECODE( NVL( TT.countj, 1 ), 0, 1, NVL( TT.countj, 1 ) ) ) * 100, 'fm99990.00' ) || '%' )end lv
  477. // FROM(
  478. // SELECT
  479. // count(T.countj) countj,
  480. // sum(T.countcg) countcg,
  481. // sum(T.countyz) countyz,
  482. // sum(T.countlj) countlj
  483. // FROM(
  484. // SELECT
  485. // TPPD1.BARCODE countj,
  486. // CASE WHEN TPD.DEFECTCODE = 0148 THEN 1 ELSE 0 END countcg,
  487. // CASE WHEN TPD.DEFECTCODE = 0149 THEN 1 ELSE 0 END countyz,
  488. // CASE WHEN TPD.DEFECTCODE IN (0148,0149) THEN 1 ELSE 0 END countlj
  489. // FROM
  490. // TP_PM_PRODUCTIONDATA TPPD
  491. // LEFT JOIN (
  492. // SELECT
  493. // BARCODE
  494. // FROM
  495. // TP_PM_PRODUCTIONDATA TPPD
  496. // WHERE
  497. // TPPD.PROCEDUREID IN ( 9, 15 )
  498. // AND TPPD.USERCODE IN ('Z16','Z17','Z18','Z19','Z20','Z21')
  499. // AND TPPD.CREATETIME >= TRUNC( SYSDATE )
  500. // AND TPPD.VALUEFLAG = 1
  501. // ) TPPD1 ON TPPD.BARCODE = TPPD1.BARCODE
  502. // LEFT JOIN TP_PM_DEFECT TPD ON TPD.BARCODE = TPPD.BARCODE AND TPD.DEFECTUSERCODE IN ('Z16','Z17','Z18','Z19','Z20','Z21')
  503. // WHERE
  504. // TPPD.UPDATETIME >= TRUNC( SYSDATE )
  505. // AND TPPD.VALUEFLAG = 1
  506. // AND TPPD.PROCEDUREID IN ( 10, 16 )) T )TT
  507. //";
  508. // //直接获取不分页数据
  509. // DataTable dt = conn.ExecuteDatatable(sqlStr);
  510. // context.Response.Write(new JsonResult(dt).ToJson());
  511. // }
  512. }
  513. }
  514. public bool IsReusable {
  515. get {
  516. return false;
  517. }
  518. }
  519. }