GradingData.ashx 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  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
  31. TT2.USERCODE,
  32. TT2.countj,
  33. NVL(TT2.countcg,0) countcg,
  34. NVL(TT2.countyz,0) countyz,
  35. NVL(TT2.countlj,0) countlj,
  36. TT2.lv
  37. FROM(
  38. SELECT
  39. TT.USERCODE,
  40. TT.NUM,
  41. TT.countj,
  42. TT.countcg,
  43. TT.countyz,
  44. TT.countlj,
  45. CASE WHEN TT.countlj = 0 THEN
  46. '0%'
  47. ELSE
  48. 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
  49. FROM(
  50. SELECT
  51. 'Z16' usercode,
  52. 0 num,
  53. MAX((SELECT COUNT(DISTINCT BARCODE) FROM TP_PM_PRODUCTIONDATA TPPD WHERE TPPD.PROCEDUREID IN (9, 15) AND TPPD.USERCODE = 'Z16' AND TPPD.CREATETIME >= TRUNC( SYSDATE ) and tppd.valueflag = 1) ) AS countj,
  54. sum(T.countcg) countcg,
  55. sum(T.countyz) countyz,
  56. sum(T.countlj) countlj
  57. FROM(
  58. SELECT
  59. TPPD1.BARCODE countj,
  60. CASE WHEN TPD.DEFECTCODE = 0148 THEN 1 ELSE 0 END countcg,
  61. CASE WHEN TPD.DEFECTCODE = 0149 THEN 1 ELSE 0 END countyz,
  62. CASE WHEN TPD.DEFECTCODE IN (0148,0149) THEN 1 ELSE 0 END countlj
  63. FROM
  64. TP_PM_PRODUCTIONDATA TPPD
  65. INNER JOIN (
  66. SELECT
  67. DISTINCT BARCODE
  68. FROM
  69. TP_PM_PRODUCTIONDATA TPPD
  70. WHERE
  71. TPPD.PROCEDUREID IN ( 9, 15,10,16 )
  72. --AND TPPD.USERCODE = 'Z16'
  73. AND TPPD.CREATETIME >= TRUNC( SYSDATE )
  74. ) TPPD1 ON TPPD.BARCODE = TPPD1.BARCODE
  75. LEFT JOIN TP_PM_DEFECT TPD ON TPD.PRODUCTIONDATAID = TPPD.PRODUCTIONDATAID AND TPD.DEFECTUSERCODE = 'Z16' AND TPD.VALUEFLAG = 1
  76. WHERE
  77. TPPD.UPDATETIME >= TRUNC( SYSDATE )
  78. AND TPPD.VALUEFLAG = 1
  79. AND TPPD.PROCEDUREID IN ( 10, 16 )) T
  80. UNION ALL
  81. SELECT
  82. 'Z17' usercode,
  83. 0 num,
  84. MAX((SELECT COUNT(DISTINCT BARCODE) FROM TP_PM_PRODUCTIONDATA TPPD WHERE TPPD.PROCEDUREID IN (9, 15) AND TPPD.USERCODE = 'Z17' AND TPPD.CREATETIME >= TRUNC( SYSDATE ) and tppd.valueflag = 1) ) AS countj,
  85. sum(T.countcg),
  86. sum(T.countyz),
  87. sum(T.countlj)
  88. FROM(
  89. SELECT
  90. TPPD1.BARCODE countj,
  91. CASE WHEN TPD.DEFECTCODE = 0148 THEN 1 ELSE 0 END countcg,
  92. CASE WHEN TPD.DEFECTCODE = 0149 THEN 1 ELSE 0 END countyz,
  93. CASE WHEN TPD.DEFECTCODE IN (0148,0149) THEN 1 ELSE 0 END countlj
  94. FROM
  95. TP_PM_PRODUCTIONDATA TPPD
  96. INNER JOIN (
  97. SELECT
  98. DISTINCT BARCODE
  99. FROM
  100. TP_PM_PRODUCTIONDATA TPPD
  101. WHERE
  102. TPPD.PROCEDUREID IN ( 9, 15,10,16 )
  103. --AND TPPD.USERCODE = 'Z17'
  104. AND TPPD.CREATETIME >= TRUNC( SYSDATE )
  105. ) TPPD1 ON TPPD.BARCODE = TPPD1.BARCODE
  106. LEFT JOIN TP_PM_DEFECT TPD ON TPD.PRODUCTIONDATAID = TPPD.PRODUCTIONDATAID AND TPD.DEFECTUSERCODE = 'Z17' AND TPD.VALUEFLAG = 1
  107. WHERE
  108. TPPD.UPDATETIME >= TRUNC( SYSDATE )
  109. AND TPPD.VALUEFLAG = 1
  110. AND TPPD.PROCEDUREID IN ( 10, 16 )) T
  111. UNION ALL
  112. SELECT
  113. 'Z18' usercode,
  114. 0 num,
  115. MAX((SELECT COUNT(DISTINCT BARCODE) FROM TP_PM_PRODUCTIONDATA TPPD WHERE TPPD.PROCEDUREID IN (9, 15) AND TPPD.USERCODE = 'Z18' AND TPPD.CREATETIME >= TRUNC( SYSDATE ) and tppd.valueflag = 1) ) AS countj,
  116. sum(T.countcg),
  117. sum(T.countyz),
  118. sum(T.countlj)
  119. FROM(
  120. SELECT
  121. TPPD1.BARCODE countj,
  122. CASE WHEN TPD.DEFECTCODE = 0148 THEN 1 ELSE 0 END countcg,
  123. CASE WHEN TPD.DEFECTCODE = 0149 THEN 1 ELSE 0 END countyz,
  124. CASE WHEN TPD.DEFECTCODE IN (0148,0149) THEN 1 ELSE 0 END countlj
  125. FROM
  126. TP_PM_PRODUCTIONDATA TPPD
  127. INNER JOIN (
  128. SELECT
  129. DISTINCT BARCODE
  130. FROM
  131. TP_PM_PRODUCTIONDATA TPPD
  132. WHERE
  133. TPPD.PROCEDUREID IN ( 9, 15,10,16 )
  134. --AND TPPD.USERCODE = 'Z18'
  135. AND TPPD.CREATETIME >= TRUNC( SYSDATE )
  136. ) TPPD1 ON TPPD.BARCODE = TPPD1.BARCODE
  137. LEFT JOIN TP_PM_DEFECT TPD ON TPD.PRODUCTIONDATAID = TPPD.PRODUCTIONDATAID AND TPD.DEFECTUSERCODE = 'Z18' AND TPD.VALUEFLAG = 1
  138. WHERE
  139. TPPD.UPDATETIME >= TRUNC( SYSDATE )
  140. AND TPPD.VALUEFLAG = 1
  141. AND TPPD.PROCEDUREID IN ( 10, 16 )) T
  142. UNION ALL
  143. SELECT
  144. 'Z19' usercode,
  145. 0 num,
  146. MAX((SELECT COUNT(DISTINCT BARCODE) FROM TP_PM_PRODUCTIONDATA TPPD WHERE TPPD.PROCEDUREID IN (9, 15) AND TPPD.USERCODE = 'Z19' AND TPPD.CREATETIME >= TRUNC( SYSDATE ) and tppd.valueflag = 1) ) AS countj,
  147. sum(T.countcg),
  148. sum(T.countyz),
  149. sum(T.countlj)
  150. FROM(
  151. SELECT
  152. TPPD1.BARCODE countj,
  153. CASE WHEN TPD.DEFECTCODE = 0148 THEN 1 ELSE 0 END countcg,
  154. CASE WHEN TPD.DEFECTCODE = 0149 THEN 1 ELSE 0 END countyz,
  155. CASE WHEN TPD.DEFECTCODE IN (0148,0149) THEN 1 ELSE 0 END countlj
  156. FROM
  157. TP_PM_PRODUCTIONDATA TPPD
  158. INNER JOIN (
  159. SELECT
  160. DISTINCT BARCODE
  161. FROM
  162. TP_PM_PRODUCTIONDATA TPPD
  163. WHERE
  164. TPPD.PROCEDUREID IN ( 9, 15,10,16 )
  165. --AND TPPD.USERCODE = 'Z19'
  166. AND TPPD.CREATETIME >= TRUNC( SYSDATE )
  167. ) TPPD1 ON TPPD.BARCODE = TPPD1.BARCODE
  168. LEFT JOIN TP_PM_DEFECT TPD ON TPD.PRODUCTIONDATAID = TPPD.PRODUCTIONDATAID AND TPD.DEFECTUSERCODE = 'Z19' AND TPD.VALUEFLAG = 1
  169. WHERE
  170. TPPD.UPDATETIME >= TRUNC( SYSDATE )
  171. AND TPPD.VALUEFLAG = 1
  172. AND TPPD.PROCEDUREID IN ( 10, 16 )) T
  173. UNION ALL
  174. SELECT
  175. 'Z20' usercode,
  176. 0 num,
  177. MAX((SELECT COUNT(DISTINCT BARCODE) FROM TP_PM_PRODUCTIONDATA TPPD WHERE TPPD.PROCEDUREID IN (9, 15) AND TPPD.USERCODE = 'Z20' AND TPPD.CREATETIME >= TRUNC( SYSDATE ) and tppd.valueflag = 1) ) AS countj,
  178. sum(T.countcg),
  179. sum(T.countyz),
  180. sum(T.countlj)
  181. FROM(
  182. SELECT
  183. TPPD1.BARCODE countj,
  184. CASE WHEN TPD.DEFECTCODE = 0148 THEN 1 ELSE 0 END countcg,
  185. CASE WHEN TPD.DEFECTCODE = 0149 THEN 1 ELSE 0 END countyz,
  186. CASE WHEN TPD.DEFECTCODE IN (0148,0149) THEN 1 ELSE 0 END countlj
  187. FROM
  188. TP_PM_PRODUCTIONDATA TPPD
  189. INNER JOIN (
  190. SELECT
  191. DISTINCT BARCODE
  192. FROM
  193. TP_PM_PRODUCTIONDATA TPPD
  194. WHERE
  195. TPPD.PROCEDUREID IN ( 9, 15,10,16 )
  196. --AND TPPD.USERCODE = 'Z20'
  197. AND TPPD.CREATETIME >= TRUNC( SYSDATE )
  198. ) TPPD1 ON TPPD.BARCODE = TPPD1.BARCODE
  199. LEFT JOIN TP_PM_DEFECT TPD ON TPD.PRODUCTIONDATAID = TPPD.PRODUCTIONDATAID AND TPD.DEFECTUSERCODE = 'Z20' AND TPD.VALUEFLAG = 1
  200. WHERE
  201. TPPD.UPDATETIME >= TRUNC( SYSDATE )
  202. AND TPPD.VALUEFLAG = 1
  203. AND TPPD.PROCEDUREID IN ( 10, 16 )) T
  204. UNION ALL
  205. SELECT
  206. 'Z21' usercode,
  207. 0 num,
  208. MAX((SELECT COUNT(DISTINCT BARCODE) FROM TP_PM_PRODUCTIONDATA TPPD WHERE TPPD.PROCEDUREID IN (9, 15) AND TPPD.USERCODE = 'Z21' AND TPPD.CREATETIME >= TRUNC( SYSDATE ) and tppd.valueflag = 1) ) AS countj,
  209. sum(T.countcg),
  210. sum(T.countyz),
  211. sum(T.countlj)
  212. FROM(
  213. SELECT
  214. TPPD1.BARCODE countj,
  215. CASE WHEN TPD.DEFECTCODE = 0148 THEN 1 ELSE 0 END countcg,
  216. CASE WHEN TPD.DEFECTCODE = 0149 THEN 1 ELSE 0 END countyz,
  217. CASE WHEN TPD.DEFECTCODE IN (0148,0149) THEN 1 ELSE 0 END countlj
  218. FROM
  219. TP_PM_PRODUCTIONDATA TPPD
  220. INNER JOIN (
  221. SELECT
  222. DISTINCT BARCODE
  223. FROM
  224. TP_PM_PRODUCTIONDATA TPPD
  225. WHERE
  226. TPPD.PROCEDUREID IN ( 9, 15,10,16 )
  227. --AND TPPD.USERCODE = 'Z21'
  228. AND TPPD.CREATETIME >= TRUNC( SYSDATE )
  229. ) TPPD1 ON TPPD.BARCODE = TPPD1.BARCODE
  230. LEFT JOIN TP_PM_DEFECT TPD ON TPD.PRODUCTIONDATAID = TPPD.PRODUCTIONDATAID AND TPD.DEFECTUSERCODE = 'Z21' AND TPD.VALUEFLAG = 1
  231. WHERE
  232. TPPD.UPDATETIME >= TRUNC( SYSDATE )
  233. AND TPPD.VALUEFLAG = 1
  234. AND TPPD.PROCEDUREID IN ( 10, 16 )) T
  235. UNION ALL
  236. SELECT
  237. 'Z23' usercode,
  238. 0 num,
  239. MAX((SELECT COUNT(DISTINCT BARCODE) FROM TP_PM_PRODUCTIONDATA TPPD WHERE TPPD.PROCEDUREID IN (9, 15) AND TPPD.USERCODE = 'Z23' AND TPPD.CREATETIME >= TRUNC( SYSDATE ) and tppd.valueflag = 1) ) AS countj,
  240. sum(T.countcg),
  241. sum(T.countyz),
  242. sum(T.countlj)
  243. FROM(
  244. SELECT
  245. TPPD1.BARCODE countj,
  246. CASE WHEN TPD.DEFECTCODE = 0148 THEN 1 ELSE 0 END countcg,
  247. CASE WHEN TPD.DEFECTCODE = 0149 THEN 1 ELSE 0 END countyz,
  248. CASE WHEN TPD.DEFECTCODE IN (0148,0149) THEN 1 ELSE 0 END countlj
  249. FROM
  250. TP_PM_PRODUCTIONDATA TPPD
  251. INNER JOIN (
  252. SELECT
  253. DISTINCT BARCODE
  254. FROM
  255. TP_PM_PRODUCTIONDATA TPPD
  256. WHERE
  257. TPPD.PROCEDUREID IN ( 9, 15,10,16 )
  258. --AND TPPD.USERCODE = 'Z23'
  259. AND TPPD.CREATETIME >= TRUNC( SYSDATE )
  260. ) TPPD1 ON TPPD.BARCODE = TPPD1.BARCODE
  261. LEFT JOIN TP_PM_DEFECT TPD ON TPD.PRODUCTIONDATAID = TPPD.PRODUCTIONDATAID AND TPD.DEFECTUSERCODE = 'Z23' AND TPD.VALUEFLAG = 1
  262. WHERE
  263. TPPD.UPDATETIME >= TRUNC( SYSDATE )
  264. AND TPPD.VALUEFLAG = 1
  265. AND TPPD.PROCEDUREID IN ( 10, 16 )) T
  266. UNION ALL
  267. SELECT
  268. '汇总' usercode,
  269. 1 num,
  270. MAX((SELECT COUNT(DISTINCT BARCODE) FROM TP_PM_PRODUCTIONDATA TPPD WHERE TPPD.PROCEDUREID IN (9, 15) AND TPPD.USERCODE IN ('Z23','Z20','Z21','Z19','Z18','Z17','Z16')
  271. AND TPPD.CREATETIME >= TRUNC( SYSDATE ) and tppd.valueflag = 1) ) AS countj,
  272. sum(T.countcg),
  273. sum(T.countyz),
  274. sum(T.countlj)
  275. FROM(
  276. SELECT
  277. TPPD1.BARCODE countj,
  278. CASE WHEN TPD.DEFECTCODE = 0148 THEN 1 ELSE 0 END countcg,
  279. CASE WHEN TPD.DEFECTCODE = 0149 THEN 1 ELSE 0 END countyz,
  280. CASE WHEN TPD.DEFECTCODE IN (0148,0149) THEN 1 ELSE 0 END countlj
  281. FROM
  282. TP_PM_PRODUCTIONDATA TPPD
  283. INNER JOIN (
  284. SELECT
  285. DISTINCT BARCODE
  286. FROM
  287. TP_PM_PRODUCTIONDATA TPPD
  288. WHERE
  289. TPPD.PROCEDUREID IN ( 9, 15,10,16 )
  290. --AND TPPD.USERCODE IN ('Z23','Z20','Z21','Z19','Z18','Z17','Z16')
  291. AND TPPD.CREATETIME >= TRUNC( SYSDATE )
  292. ) TPPD1 ON TPPD.BARCODE = TPPD1.BARCODE
  293. LEFT JOIN TP_PM_DEFECT TPD ON TPD.PRODUCTIONDATAID = TPPD.PRODUCTIONDATAID AND TPD.DEFECTUSERCODE IN ('Z23','Z21','Z20','Z19','Z18','Z17','Z16') AND TPD.VALUEFLAG = 1
  294. WHERE
  295. TPPD.UPDATETIME >= TRUNC( SYSDATE )
  296. AND TPPD.VALUEFLAG = 1
  297. AND TPPD.PROCEDUREID IN ( 10, 16 )) T
  298. )TT )TT2 ORDER BY TT2.NUM,TT2.lv ASC";
  299. //直接获取不分页数据
  300. DataTable dt = conn.ExecuteDatatable(sqlStr);
  301. context.Response.Write(new JsonResult(dt).ToJson());
  302. }
  303. // if (context.Request["m"].ToString() == "合计")
  304. // {
  305. // string sqlStr = @"
  306. //SELECT
  307. // '汇总' usercode,
  308. // TT.countj,
  309. // TT.countcg,
  310. // TT.countyz,
  311. // TT.countlj,
  312. // CASE WHEN TT.countlj = 0 THEN
  313. // '0%'
  314. // ELSE
  315. // 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
  316. // FROM(
  317. // SELECT
  318. // count(T.countj) countj,
  319. // sum(T.countcg) countcg,
  320. // sum(T.countyz) countyz,
  321. // sum(T.countlj) countlj
  322. // FROM(
  323. // SELECT
  324. // TPPD1.BARCODE countj,
  325. // CASE WHEN TPD.DEFECTCODE = 0148 THEN 1 ELSE 0 END countcg,
  326. // CASE WHEN TPD.DEFECTCODE = 0149 THEN 1 ELSE 0 END countyz,
  327. // CASE WHEN TPD.DEFECTCODE IN (0148,0149) THEN 1 ELSE 0 END countlj
  328. // FROM
  329. // TP_PM_PRODUCTIONDATA TPPD
  330. // LEFT JOIN (
  331. // SELECT
  332. // BARCODE
  333. // FROM
  334. // TP_PM_PRODUCTIONDATA TPPD
  335. // WHERE
  336. // TPPD.PROCEDUREID IN ( 9, 15 )
  337. // AND TPPD.USERCODE IN ('Z16','Z17','Z18','Z19','Z20','Z21')
  338. // AND TPPD.CREATETIME >= TRUNC( SYSDATE )
  339. // AND TPPD.VALUEFLAG = 1
  340. // ) TPPD1 ON TPPD.BARCODE = TPPD1.BARCODE
  341. // LEFT JOIN TP_PM_DEFECT TPD ON TPD.BARCODE = TPPD.BARCODE AND TPD.DEFECTUSERCODE IN ('Z16','Z17','Z18','Z19','Z20','Z21')
  342. // WHERE
  343. // TPPD.UPDATETIME >= TRUNC( SYSDATE )
  344. // AND TPPD.VALUEFLAG = 1
  345. // AND TPPD.PROCEDUREID IN ( 10, 16 )) T )TT
  346. //";
  347. // //直接获取不分页数据
  348. // DataTable dt = conn.ExecuteDatatable(sqlStr);
  349. // context.Response.Write(new JsonResult(dt).ToJson());
  350. // }
  351. }
  352. }
  353. public bool IsReusable {
  354. get {
  355. return false;
  356. }
  357. }
  358. }