Onecheck.ashx 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548
  1. <%@ WebHandler Language="C#" Class="Get_HG5010_CHECK_DEFECT" %>
  2. using System;
  3. using System.Web;
  4. using System.Web.SessionState;
  5. using System.Configuration;
  6. using Newtonsoft.Json.Linq;
  7. using System.Data;
  8. using Curtain.DataAccess;
  9. using Curtain.Log;
  10. using DK.XuWei.WebMes;
  11. using System.Collections.Generic;
  12. public class Get_HG5010_CHECK_DEFECT : IHttpHandler, IRequiresSessionState
  13. {
  14. public void ProcessRequest(HttpContext context)
  15. {
  16. using (IDataAccess conn = DataAccess.Create())
  17. {
  18. if (context.Request["m"].ToString() == "fwq")
  19. {
  20. string time = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm ");
  21. Dictionary<string, string> d = new Dictionary<string, string>();
  22. JObject json = new JObject(
  23. new JProperty("success", true),
  24. new JProperty("sj", time)
  25. );
  26. context.Response.Write(json.ToString());
  27. }
  28. if (context.Request["m"].ToString() == "SUM")
  29. {
  30. string sqlStr = @"
  31. SELECT
  32. COUNT(1) 成检交接数量
  33. FROM
  34. TP_PM_PRODUCTIONDATA PD
  35. WHERE
  36. PD.VALUEFLAG = '1'
  37. AND PD.CREATETIME >= trunc(sysdate)
  38. AND PD.PROCEDUREID IN (55) ";
  39. object SUMALL = conn.ExecuteScalar(sqlStr, null);
  40. JObject json = new JObject(
  41. new JProperty("success", true),
  42. new JProperty("sumall", Convert.ToInt32(SUMALL))
  43. );
  44. context.Response.Write(json.ToString());
  45. }
  46. #region 交坯质量 sql
  47. if (context.Request["m"].ToString() == "firstTable") {
  48. string sqlStr = @"
  49. WITH 检验数 AS (
  50. SELECT
  51. COUNT( * ) 成检交接数量,
  52. PDA.USERCODE
  53. FROM
  54. TP_PM_PRODUCTIONDATA PD
  55. LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
  56. LEFT JOIN TP_MST_GOODSTYPE GDT ON GD.GOODSTYPEID = GDT.GOODSTYPEID
  57. INNER JOIN TP_PM_PRODUCTIONDATA PDA ON PDA.BARCODE=PD.BARCODE
  58. AND PDA.USERCODE IN ('T03','T04','T05','T06','T07','T08','T09','T12','T13','T14','T15','T16','T17','T18','T19','T25','T26')
  59. WHERE
  60. PD.VALUEFLAG = '1'
  61. AND PD.CREATETIME >= trunc(sysdate)
  62. AND PD.PROCEDUREID IN ( 48,9 )
  63. GROUP BY
  64. PDA.USERCODE
  65. ),
  66. 工序缺陷数量 AS (
  67. SELECT
  68. PD.USERCODE,
  69. SUM(CASE WHEN DEFECT.DEFECTCODE IN ('1','3', '6','10','20','22','24','25','32','33','35','36','54','56') THEN 1 ELSE 0 END) 一检数量
  70. FROM
  71. TP_PM_DEFECT DEFECT
  72. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON DEFECT.BARCODE = PD.BARCODE
  73. WHERE
  74. DEFECT.CREATETIME >= trunc(sysdate)
  75. AND PD.VALUEFLAG = '1' --有效
  76. AND DEFECT.VALUEFLAG = '1' --有效
  77. AND PD.USERCODE IN ('T03','T04','T05','T06','T07','T08','T09','T12','T13','T14','T15','T16','T17','T18','T19','T25','T26')
  78. GROUP BY
  79. PD.USERCODE
  80. ),
  81. 前三部位 AS (
  82. SELECT
  83. users.USERCODE,
  84. (SELECT
  85. LISTAGG ( 前三部位 ) WITHIN GROUP ( ORDER BY 数量 DESC )
  86. FROM
  87. ( SELECT T.位置 || '(' || T.数量 || ')' 前三部位, T.数量
  88. FROM ( SELECT TMDPI.DEFECTPOSITIONNAME 位置, COUNT( 1 ) 数量
  89. FROM
  90. TP_PM_DEFECT TMDP
  91. LEFT JOIN TP_MST_DEFECTPOSITION TMDPI ON TMDP.DEFECTPOSITIONID = TMDPI.DEFECTPOSITIONID
  92. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON TMDP.BARCODE = PD.BARCODE
  93. WHERE
  94. TMDP.CREATETIME >= trunc( SYSDATE )
  95. AND PD.USERCODE = users.USERCODE
  96. AND TMDP.DEFECTCODE IN ( '1' )
  97. AND PD.VALUEFLAG = '1' --有效
  98. AND TMDP.VALUEFLAG = '1' --有效
  99. GROUP BY
  100. TMDPI.DEFECTPOSITIONID, TMDPI.DEFECTPOSITIONNAME
  101. ORDER BY COUNT( 1 ) DESC ) T WHERE ROWNUM <= 3 ) ) 裂,
  102. (SELECT
  103. LISTAGG ( 前三部位 ) WITHIN GROUP ( ORDER BY 数量 DESC )
  104. FROM
  105. ( SELECT T.位置 || '(' || T.数量 || ')' 前三部位, T.数量
  106. FROM ( SELECT TMDPI.DEFECTPOSITIONNAME 位置, COUNT( 1 ) 数量
  107. FROM
  108. TP_PM_DEFECT TMDP
  109. LEFT JOIN TP_MST_DEFECTPOSITION TMDPI ON TMDP.DEFECTPOSITIONID = TMDPI.DEFECTPOSITIONID
  110. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON TMDP.BARCODE = PD.BARCODE
  111. WHERE
  112. TMDP.CREATETIME >= trunc( SYSDATE )
  113. AND PD.USERCODE = users.USERCODE
  114. AND TMDP.DEFECTCODE IN ( '3' )
  115. AND PD.VALUEFLAG = '1' --有效
  116. AND TMDP.VALUEFLAG = '1' --有效
  117. GROUP BY
  118. TMDPI.DEFECTPOSITIONID, TMDPI.DEFECTPOSITIONNAME
  119. ORDER BY COUNT( 1 ) DESC ) T WHERE ROWNUM <= 3 ) ) 不平,
  120. (SELECT
  121. LISTAGG ( 前三部位 ) WITHIN GROUP ( ORDER BY 数量 DESC )
  122. FROM
  123. ( SELECT T.位置 || '(' || T.数量 || ')' 前三部位, T.数量
  124. FROM ( SELECT TMDPI.DEFECTPOSITIONNAME 位置, COUNT( 1 ) 数量
  125. FROM
  126. TP_PM_DEFECT TMDP
  127. LEFT JOIN TP_MST_DEFECTPOSITION TMDPI ON TMDP.DEFECTPOSITIONID = TMDPI.DEFECTPOSITIONID
  128. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON TMDP.BARCODE = PD.BARCODE
  129. WHERE
  130. TMDP.CREATETIME >= trunc( SYSDATE )
  131. AND PD.USERCODE = users.USERCODE
  132. AND TMDP.DEFECTCODE IN ( '6','10','20','22','24','25','32','33','35','36','54','56')
  133. AND PD.VALUEFLAG = '1' --有效
  134. AND TMDP.VALUEFLAG = '1' --有效
  135. GROUP BY
  136. TMDPI.DEFECTPOSITIONID, TMDPI.DEFECTPOSITIONNAME
  137. ORDER BY COUNT( 1 ) DESC ) T WHERE ROWNUM <= 3 ) ) 其他
  138. FROM TP_MST_USER users
  139. WHERE USERCODE IN ('T03','T04','T05','T06','T07','T08','T09','T12','T13','T14','T15','T16','T17','T18','T19','T25','T26')
  140. ),
  141. 数量 AS(
  142. SELECT
  143. PD.USERCODE,
  144. SUM( CASE WHEN DEFECT.DEFECTCODE IN ( '1' ) THEN 1 ELSE 0 END ) 裂,
  145. SUM( CASE WHEN DEFECT.DEFECTCODE IN ( '3' ) THEN 1 ELSE 0 END ) 不平,
  146. SUM( CASE WHEN DEFECT.DEFECTCODE IN ( '6','10','20','22','24','25','32','33','35','36','54','56') THEN 1 ELSE 0 END ) 其他
  147. FROM
  148. TP_PM_DEFECT DEFECT
  149. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON DEFECT.BARCODE = PD.BARCODE
  150. WHERE
  151. DEFECT.CREATETIME >= trunc(sysdate)
  152. AND PD.USERCODE IN ('T03','T04','T05','T06','T07','T08','T09','T12','T13','T14','T15','T16','T17','T18','T19','T25','T26')
  153. AND PD.VALUEFLAG = '1' --有效
  154. AND DEFECT.VALUEFLAG = '1' --有效
  155. GROUP BY
  156. PD.USERCODE
  157. ),
  158. 产量 AS(
  159. SELECT
  160. PD.USERCODE,
  161. COUNT(1) AS 产量
  162. FROM
  163. TP_PM_PRODUCTIONDATA PD
  164. WHERE
  165. PD.CREATETIME >= trunc(sysdate)
  166. AND PD.USERCODE IN ('T03','T04','T05','T06','T07','T08','T09','T12','T13','T14','T15','T16','T17','T18','T19','T25','T26')
  167. AND PD.VALUEFLAG = '1' --有效
  168. AND PD.PROCEDUREID=55
  169. GROUP BY
  170. PD.USERCODE
  171. )
  172. SELECT
  173. *
  174. FROM(
  175. SELECT
  176. 前三部位.USERCODE,
  177. NVL(数量.裂, 0) AS 数量裂,
  178. NVL(数量.不平, 0) AS 数量不平,
  179. NVL(数量.其他, 0)AS 数量其他,
  180. NVL(前三部位.裂, '--')裂,
  181. NVL(前三部位.不平,'--')不平,
  182. NVL(前三部位.其他, '--')其他,
  183. NVL(产量.产量, 0) AS 产量,
  184. DECODE( NVL( 工序缺陷数量.一检数量, 0 ), 0, '100%', TO_CHAR( ( ( NVL( 检验数.成检交接数量, 1 )- NVL( 工序缺陷数量.一检数量, 0 )) / DECODE( NVL( 检验数.成检交接数量, 1 ), 0, 1, NVL( 检验数.成检交接数量, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) 合格率
  185. FROM 前三部位
  186. LEFT JOIN 检验数 ON 检验数.USERCODE = 前三部位.USERCODE
  187. LEFT JOIN 工序缺陷数量 ON 工序缺陷数量.USERCODE=前三部位.USERCODE
  188. LEFT JOIN 数量 on 数量.USERCODE=前三部位.USERCODE
  189. LEFT JOIN 产量 ON 产量.USERCODE=前三部位.USERCODE
  190. order by 前三部位.USERCODE
  191. )
  192. ";
  193. int page = 1;
  194. if (Convert.ToInt32(context.Request["page"].ToString()) != 1)
  195. {
  196. page = Convert.ToInt32(context.Request["page"].ToString());
  197. }
  198. int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 8;
  199. //获取分页数据
  200. int total = 0;
  201. DataTable dt = conn.SelectPages(page, rows, out total, sqlStr);
  202. context.Response.Write( new JsonResult(dt) { total = total }.ToJson());
  203. }
  204. if (context.Request["m"].ToString() == "count") {
  205. string sqlStr = @"
  206. WITH 检验数 AS (
  207. SELECT
  208. COUNT( * ) 成检交接数量,
  209. PDA.USERCODE
  210. FROM
  211. TP_PM_PRODUCTIONDATA PD
  212. LEFT JOIN TP_MST_GOODS GD ON PD.GOODSID = GD.GOODSID
  213. LEFT JOIN TP_MST_GOODSTYPE GDT ON GD.GOODSTYPEID = GDT.GOODSTYPEID
  214. INNER JOIN TP_PM_PRODUCTIONDATA PDA ON PDA.BARCODE=PD.BARCODE
  215. AND PDA.USERCODE IN ('T03','T04','T05','T06','T07','T08','T09','T12','T13','T14','T15','T16','T17','T18','T19','T25','T26')
  216. WHERE
  217. PD.VALUEFLAG = '1'
  218. AND PD.CREATETIME >= trunc(sysdate)
  219. AND PD.PROCEDUREID IN ( 48,9 )
  220. GROUP BY
  221. PDA.USERCODE
  222. ),
  223. 工序缺陷数量 AS (
  224. SELECT
  225. PD.USERCODE,
  226. SUM(CASE WHEN DEFECT.DEFECTCODE IN ('1','3', '6','10','20','22','24','25','32','33','35','36','54','56') THEN 1 ELSE 0 END) 一检数量
  227. FROM
  228. TP_PM_DEFECT DEFECT
  229. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON DEFECT.BARCODE = PD.BARCODE
  230. WHERE
  231. DEFECT.CREATETIME >= trunc(sysdate)
  232. AND PD.VALUEFLAG = '1' --有效
  233. AND DEFECT.VALUEFLAG = '1' --有效
  234. AND PD.USERCODE IN ('T03','T04','T05','T06','T07','T08','T09','T12','T13','T14','T15','T16','T17','T18','T19','T25','T26')
  235. GROUP BY
  236. PD.USERCODE
  237. ),
  238. 前三部位 AS (
  239. SELECT
  240. users.USERCODE,
  241. (SELECT
  242. LISTAGG ( 前三部位 ) WITHIN GROUP ( ORDER BY 数量 DESC )
  243. FROM
  244. ( SELECT T.位置 || '(' || T.数量 || ')' 前三部位, T.数量
  245. FROM ( SELECT TMDPI.DEFECTPOSITIONNAME 位置, COUNT( 1 ) 数量
  246. FROM
  247. TP_PM_DEFECT TMDP
  248. LEFT JOIN TP_MST_DEFECTPOSITION TMDPI ON TMDP.DEFECTPOSITIONID = TMDPI.DEFECTPOSITIONID
  249. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON TMDP.BARCODE = PD.BARCODE
  250. WHERE
  251. TMDP.CREATETIME >= trunc( SYSDATE )
  252. AND PD.USERCODE = users.USERCODE
  253. AND TMDP.DEFECTCODE IN ( '1' )
  254. AND PD.VALUEFLAG = '1' --有效
  255. AND TMDP.VALUEFLAG = '1' --有效
  256. GROUP BY
  257. TMDPI.DEFECTPOSITIONID, TMDPI.DEFECTPOSITIONNAME
  258. ORDER BY COUNT( 1 ) DESC ) T WHERE ROWNUM <= 3 ) ) 裂,
  259. (SELECT
  260. LISTAGG ( 前三部位 ) WITHIN GROUP ( ORDER BY 数量 DESC )
  261. FROM
  262. ( SELECT T.位置 || '(' || T.数量 || ')' 前三部位, T.数量
  263. FROM ( SELECT TMDPI.DEFECTPOSITIONNAME 位置, COUNT( 1 ) 数量
  264. FROM
  265. TP_PM_DEFECT TMDP
  266. LEFT JOIN TP_MST_DEFECTPOSITION TMDPI ON TMDP.DEFECTPOSITIONID = TMDPI.DEFECTPOSITIONID
  267. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON TMDP.BARCODE = PD.BARCODE
  268. WHERE
  269. TMDP.CREATETIME >= trunc( SYSDATE )
  270. AND PD.USERCODE = users.USERCODE
  271. AND TMDP.DEFECTCODE IN ( '3' )
  272. AND PD.VALUEFLAG = '1' --有效
  273. AND TMDP.VALUEFLAG = '1' --有效
  274. GROUP BY
  275. TMDPI.DEFECTPOSITIONID, TMDPI.DEFECTPOSITIONNAME
  276. ORDER BY COUNT( 1 ) DESC ) T WHERE ROWNUM <= 3 ) ) 不平,
  277. (SELECT
  278. LISTAGG ( 前三部位 ) WITHIN GROUP ( ORDER BY 数量 DESC )
  279. FROM
  280. ( SELECT T.位置 || '(' || T.数量 || ')' 前三部位, T.数量
  281. FROM ( SELECT TMDPI.DEFECTPOSITIONNAME 位置, COUNT( 1 ) 数量
  282. FROM
  283. TP_PM_DEFECT TMDP
  284. LEFT JOIN TP_MST_DEFECTPOSITION TMDPI ON TMDP.DEFECTPOSITIONID = TMDPI.DEFECTPOSITIONID
  285. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON TMDP.BARCODE = PD.BARCODE
  286. WHERE
  287. TMDP.CREATETIME >= trunc( SYSDATE )
  288. AND PD.USERCODE = users.USERCODE
  289. AND TMDP.DEFECTCODE IN ( '6','10','20','22','24','25','32','33','35','36','54','56')
  290. AND PD.VALUEFLAG = '1' --有效
  291. AND TMDP.VALUEFLAG = '1' --有效
  292. GROUP BY
  293. TMDPI.DEFECTPOSITIONID, TMDPI.DEFECTPOSITIONNAME
  294. ORDER BY COUNT( 1 ) DESC ) T WHERE ROWNUM <= 3 ) ) 其他
  295. FROM TP_MST_USER users
  296. WHERE USERCODE IN ('T03','T04','T05','T06','T07','T08','T09','T12','T13','T14','T15','T16','T17','T18','T19','T25','T26')
  297. ),
  298. 数量 AS(
  299. SELECT
  300. PD.USERCODE,
  301. SUM( CASE WHEN DEFECT.DEFECTCODE IN ( '1' ) THEN 1 ELSE 0 END ) 裂,
  302. SUM( CASE WHEN DEFECT.DEFECTCODE IN ( '3' ) THEN 1 ELSE 0 END ) 不平,
  303. SUM( CASE WHEN DEFECT.DEFECTCODE IN ( '6','10','20','22','24','25','32','33','35','36','54','56') THEN 1 ELSE 0 END ) 其他
  304. FROM
  305. TP_PM_DEFECT DEFECT
  306. LEFT JOIN TP_PM_PRODUCTIONDATA PD ON DEFECT.BARCODE = PD.BARCODE
  307. WHERE
  308. DEFECT.CREATETIME >= trunc(sysdate)
  309. AND PD.USERCODE IN ('T03','T04','T05','T06','T07','T08','T09','T12','T13','T14','T15','T16','T17','T18','T19','T25','T26')
  310. AND PD.VALUEFLAG = '1' --有效
  311. AND DEFECT.VALUEFLAG = '1' --有效
  312. GROUP BY
  313. PD.USERCODE
  314. )
  315. SELECT
  316. COUNT(*)
  317. FROM(
  318. SELECT
  319. 前三部位.USERCODE,
  320. NVL(数量.裂, 0) AS 数量裂,
  321. NVL(数量.不平, 0) AS 数量不平,
  322. NVL(数量.其他, 0)AS 数量其他,
  323. NVL(前三部位.裂, '--')裂,
  324. NVL(前三部位.不平,'--')不平,
  325. NVL(前三部位.其他, '--')其他,
  326. DECODE( NVL( 工序缺陷数量.一检数量, 0 ), 0, '100%', TO_CHAR( ( ( NVL( 检验数.成检交接数量, 1 )- NVL( 工序缺陷数量.一检数量, 0 )) / DECODE( NVL( 检验数.成检交接数量, 1 ), 0, 1, NVL( 检验数.成检交接数量, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) 合格率
  327. FROM 前三部位
  328. LEFT JOIN 检验数 ON 检验数.USERCODE = 前三部位.USERCODE
  329. LEFT JOIN 工序缺陷数量 ON 工序缺陷数量.USERCODE=前三部位.USERCODE
  330. LEFT JOIN 数量 on 数量.USERCODE=前三部位.USERCODE
  331. order by 前三部位.USERCODE
  332. )
  333. WHERE 合格率!='0%'";
  334. object count = conn.ExecuteScalar(sqlStr,null);
  335. JObject json = new JObject(
  336. new JProperty("success",true),
  337. new JProperty("counts", Convert.ToInt32(count))
  338. );
  339. context.Response.Write(json.ToString());
  340. }
  341. #endregion
  342. #region 重点关注成型样式 sql
  343. if (context.Request["m"].ToString() == "second") {
  344. string sqlStr = @"SELECT
  345. ROWNUM AS 序号,
  346. GROUTINGLINECODE,
  347. GOODSCODE,
  348. USERCODE,
  349. message,
  350. ConcernMessage
  351. FROM(
  352. SELECT
  353. GROUTINGLINECODE AS GROUTINGLINECODE ,
  354. GOODSCODE AS GOODSCODE,
  355. GROUTINGUSERCODE AS USERCODE,
  356. message,
  357. ConcernMessage
  358. FROM(SELECT
  359. GROUTINGLINECODE,
  360. GOODSCODE,
  361. GROUTINGUSERCODE,
  362. message,
  363. SUM(ConcernMessage) as ConcernMessage
  364. FROM
  365. (
  366. SELECT
  367. GROUTINGLINECODE,
  368. GOODSCODE,
  369. GROUTINGUSERCODE,
  370. nums,
  371. CASE WHEN NEWMOLDFLAG='1' THEN '新模'
  372. WHEN CONVERTPRODUCEFLAG='1' THEN '转产'
  373. WHEN CONVERTLINEGLAG='1' THEN '变线'
  374. WHEN countday >=15 THEN '距离注浆时间'||countday||'天'
  375. WHEN countday<15 THEN '第'|| GROUTINGCOUNT ||'次注浆' end message,
  376. NUMS as ConcernMessage
  377. FROM(
  378. SELECT
  379. GROUTINGLINECODE,
  380. GROUTINGUSERCODE,
  381. GOODSCODE,
  382. NEWMOLDFLAG,
  383. CONVERTPRODUCEFLAG,
  384. CONVERTLINEGLAG,
  385. GROUTINGCOUNT,
  386. COUNT(GROUTINGDAILYDETAILID) NUMS,
  387. countday
  388. FROM(
  389. SELECT
  390. bak.GROUTINGDAILYDETAILID,bak.GROUTINGLINECODE,
  391. bak.PROCEDURETIME,bak.PROCEDUREID,bak.GROUTINGUSERCODE,bak.GOODSCODE,
  392. (TRUNC(SYSDATE)-TRUNC(bak.GROUTINGDATE))countday,
  393. gd.GROUTINGCOUNT as GROUTINGCOUNT,
  394. TGS.NEWMOLDFLAG,
  395. TGS.CONVERTPRODUCEFLAG,
  396. TGS.CONVERTLINEGLAG
  397. FROM TP_PM_INPRODUCTION_BAK7OCLOCK bak
  398. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gd on gd.GROUTINGDAILYDETAILID=bak.GROUTINGDAILYDETAILID
  399. LEFT JOIN TP_PM_GROUTINGSPECIAL TGS ON TGS.GROUTINGLINEID = bak.GROUTINGLINEID
  400. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = GD.GOODSID
  401. WHERE(bak.PROCEDUREID = 50 or bak.PROCEDUREID=29)
  402. AND G.GOODS_LINE_TYPE = 0
  403. AND bak.BACKUPTIME >= TRUNC( SYSDATE) ORDER BY bak.PROCEDUREID desc,bak.PROCEDURETIME ASC
  404. )
  405. WHERE ROWNUM<=2100
  406. GROUP BY GROUTINGLINECODE,
  407. GROUTINGUSERCODE,
  408. GOODSCODE,
  409. NEWMOLDFLAG,
  410. CONVERTPRODUCEFLAG,
  411. GROUTINGCOUNT,
  412. countday,
  413. CONVERTLINEGLAG
  414. )WHERE ( ( (GROUTINGCOUNT BETWEEN 1 AND 5 OR GROUTINGCOUNT >90) OR countday>=15) OR( NEWMOLDFLAG='1' OR CONVERTPRODUCEFLAG='1' OR CONVERTLINEGLAG='1' ))
  415. )
  416. GROUP BY
  417. GROUTINGLINECODE,
  418. GROUTINGUSERCODE,
  419. GOODSCODE,
  420. message
  421. ) ORDER BY GROUTINGLINECODE ,GROUTINGUSERCODE,message
  422. )";
  423. int page = 1;
  424. if (Convert.ToInt32(context.Request["secondpages"].ToString()) != 1)
  425. {
  426. page = Convert.ToInt32(context.Request["secondpages"].ToString());
  427. }
  428. int rows = HttpContext.Current.Request["rows"] is object ? Convert.ToInt32(HttpContext.Current.Request["rows"]) : 11;
  429. //获取分页数据
  430. int total = 0;
  431. DataTable dt = conn.SelectPages(page, rows, out total, sqlStr);
  432. context.Response.Write( new JsonResult(dt) { total = total }.ToJson());
  433. }
  434. if (context.Request["m"].ToString() == "secondcount") {
  435. string sqlStr = @"SELECT
  436. COUNT(*)
  437. FROM
  438. (
  439. SELECT
  440. ROWNUM as 序号 ,
  441. GROUTINGLINECODE AS GROUTINGLINECODE ,
  442. GOODSCODE AS GOODSCODE,
  443. GROUTINGUSERCODE AS USERCODE,
  444. message,
  445. ConcernMessage
  446. FROM(SELECT
  447. GROUTINGLINECODE,
  448. GOODSCODE,
  449. GROUTINGUSERCODE,
  450. message,
  451. SUM(ConcernMessage) as ConcernMessage
  452. FROM
  453. (
  454. SELECT
  455. GROUTINGLINECODE,
  456. GOODSCODE,
  457. GROUTINGUSERCODE,
  458. CASE WHEN NEWMOLDFLAG='1' THEN '新模'
  459. WHEN CONVERTPRODUCEFLAG='1' THEN '转产'
  460. WHEN CONVERTLINEGLAG='1' THEN '变线'
  461. WHEN countday >=15 THEN '距离注浆时间'||countday||'天'
  462. WHEN countday<15 THEN '第'|| GROUTINGCOUNT ||'次注浆' end message,
  463. NUMS as ConcernMessage
  464. FROM(
  465. SELECT
  466. GROUTINGLINECODE,
  467. GROUTINGUSERCODE,
  468. GOODSCODE,
  469. NEWMOLDFLAG,
  470. CONVERTPRODUCEFLAG,
  471. CONVERTLINEGLAG,
  472. GROUTINGCOUNT,
  473. COUNT(GROUTINGDAILYDETAILID) NUMS,
  474. countday
  475. FROM(
  476. SELECT
  477. bak.GROUTINGDAILYDETAILID,bak.GROUTINGLINECODE,
  478. bak.PROCEDURETIME,bak.PROCEDUREID,bak.GROUTINGUSERCODE,bak.GOODSCODE,
  479. (TRUNC(SYSDATE)-TRUNC(bak.GROUTINGDATE))countday,
  480. gd.GROUTINGCOUNT as GROUTINGCOUNT,
  481. TGS.NEWMOLDFLAG,
  482. TGS.CONVERTPRODUCEFLAG,
  483. TGS.CONVERTLINEGLAG
  484. FROM TP_PM_INPRODUCTION_BAK7OCLOCK bak
  485. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gd on gd.GROUTINGDAILYDETAILID=bak.GROUTINGDAILYDETAILID
  486. LEFT JOIN TP_PM_GROUTINGSPECIAL TGS ON TGS.GROUTINGLINEID = bak.GROUTINGLINEID
  487. LEFT JOIN TP_MST_GOODS G ON G.GOODSID = gd.GOODSID
  488. WHERE(bak.PROCEDUREID = 50 or bak.PROCEDUREID=29)
  489. AND G.GOODS_LINE_TYPE = 0
  490. AND bak.BACKUPTIME >= TRUNC( SYSDATE) ORDER BY bak.PROCEDUREID desc,bak.PROCEDURETIME ASC
  491. )
  492. WHERE ROWNUM<=2100
  493. GROUP BY GROUTINGLINECODE,
  494. GROUTINGUSERCODE,
  495. GOODSCODE,
  496. NEWMOLDFLAG,
  497. CONVERTPRODUCEFLAG,
  498. GROUTINGCOUNT,
  499. countday,
  500. CONVERTLINEGLAG
  501. )WHERE ( ( (GROUTINGCOUNT BETWEEN 1 AND 5 OR GROUTINGCOUNT >90) OR countday>=15) OR( NEWMOLDFLAG='1' OR CONVERTPRODUCEFLAG='1' OR CONVERTLINEGLAG='1' ))
  502. )
  503. GROUP BY
  504. GROUTINGLINECODE,
  505. GOODSCODE,
  506. message,
  507. GROUTINGUSERCODE )) ";
  508. object count = conn.ExecuteScalar(sqlStr,null);
  509. JObject json = new JObject(
  510. new JProperty("success",true),
  511. new JProperty("counts", Convert.ToInt32(count))
  512. );
  513. context.Response.Write(json.ToString());
  514. }
  515. #endregion
  516. }
  517. }
  518. public bool IsReusable
  519. {
  520. get
  521. {
  522. return false;
  523. }
  524. }
  525. }