rpt.ashx 77 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576
  1. <%@ WebHandler Language="C#" Class="rpt" %>
  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 rpt : IHttpHandler, IReadOnlySessionState
  13. {
  14. public void ProcessRequest(HttpContext context)
  15. {
  16. context.Response.ContentType = "text/plain";
  17. using (IDataAccess conn = DataAccess.Create())
  18. {
  19. //成检大小件TOP3缺陷占比
  20. if (context.Request["m"].ToString() == "Load03")
  21. {
  22. string sqlStr = @"
  23. WITH 出窑数 AS (
  24. SELECT
  25. SUM(DECODE(T.OUTKILNCOUNT, 1, 1, 0)) ONEOUTKILNCOUNT,
  26. SUM(DECODE(T.OUTKILNCOUNT, 2, 1, 0)) TWOOUTKILNCOUNT,
  27. SUM(DECODE(T.OUTKILNCOUNT, 3, 1, 0)) THREEOUTKILNCOUNT
  28. FROM (
  29. SELECT
  30. CASE WHEN ((INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) AND INSTR(GT.GOODSTYPECODE, '001002') = 1) THEN 1
  31. WHEN ((INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) AND INSTR(GT.GOODSTYPECODE, '001001') = 1) THEN 2
  32. WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 3
  33. ELSE 0 END OUTKILNCOUNT
  34. FROM
  35. TP_PM_PRODUCTIONDATA PD
  36. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  37. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  38. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  39. WHERE
  40. (( PD.PROCEDUREID <> 104 AND PD.VALUEFLAG = '1' ) OR ( PD.PROCEDUREID = 104 AND PD.CHECKFLAG = '1' ))
  41. AND (11 IS NULL OR ((11 = 11 AND ( ( PD.PROCEDUREID = 11 ) OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' ) ) ) ) )
  42. AND ( 0 IS NULL OR GDD.RECYCLINGFLAG = 0 )
  43. AND PD.ACCOUNTID = 1
  44. AND PD.PROCEDUREID IN ( 11, 104 )
  45. AND PD.KILNID IN ( 1, 2, 5 )
  46. AND PD.CREATETIME >= TRUNC(sysdate-7)
  47. AND TRUNC(PD.CREATETIME)<=TRUNC(SYSDATE)
  48. ) T
  49. ),
  50. 一车间前三缺陷数量 AS(
  51. SELECT
  52. *
  53. FROM(
  54. SELECT
  55. '一车间'AS workshops,
  56. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  57. 缺陷名称
  58. FROM
  59. (
  60. SELECT
  61. DISTINCT
  62. defect.BARCODE 缺陷条码,
  63. df.S_NAME 缺陷名称
  64. FROM TP_PM_DEFECT defect
  65. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=defect.barcode
  66. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  67. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  68. LEFT JOIN TP_MST_DEFECT df ON df.defectid =defect.defectID
  69. WHERE defect.CREATETIME>=TRUNC(sysdate-7)
  70. AND TRUNC(defect.CREATETIME)<=TRUNC(SYSDATE)
  71. AND defect.VALUEFLAG=1
  72. AND ((INSTR(gdd.GROUTINGLINECODE, 'A') = 1 OR INSTR(gdd.GROUTINGLINECODE, 'D') = 1) AND INSTR(GTP.GOODSTYPECODE, '001002') = 1)
  73. AND gdd.VALUEFLAG=1
  74. )
  75. GROUP BY 缺陷名称
  76. ORDER BY COUNT( 缺陷条码) DESC
  77. )
  78. WHERE ROWNUM<=3
  79. )
  80. ,
  81. 二车间前三缺陷数量 AS(
  82. SELECT
  83. *
  84. FROM(
  85. SELECT
  86. '二车间'AS workshops,
  87. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  88. 缺陷名称
  89. FROM
  90. (
  91. SELECT
  92. DISTINCT
  93. defect.BARCODE 缺陷条码,
  94. df.S_NAME 缺陷名称
  95. FROM TP_PM_DEFECT defect
  96. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=defect.barcode
  97. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  98. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  99. LEFT JOIN TP_MST_DEFECT df ON df.defectid =defect.defectID
  100. WHERE defect.CREATETIME>=TRUNC(sysdate-7)
  101. AND TRUNC(defect.CREATETIME)<=TRUNC(SYSDATE)
  102. AND defect.VALUEFLAG=1
  103. AND ((INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) AND INSTR(GTP.GOODSTYPECODE, '001001') = 1)
  104. AND gdd.VALUEFLAG=1
  105. )
  106. GROUP BY 缺陷名称
  107. ORDER BY COUNT( 缺陷条码) DESC
  108. )
  109. WHERE ROWNUM<=3
  110. ),
  111. 三车间前三缺陷数量 AS(
  112. SELECT
  113. *
  114. FROM(
  115. SELECT
  116. '三车间' AS workshops,
  117. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  118. 缺陷名称
  119. FROM
  120. (
  121. SELECT
  122. DISTINCT
  123. defect.BARCODE 缺陷条码,
  124. df.S_NAME 缺陷名称
  125. FROM TP_PM_DEFECT defect
  126. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=defect.barcode
  127. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  128. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  129. LEFT JOIN TP_MST_DEFECT df ON df.defectid =defect.defectID
  130. WHERE defect.CREATETIME>=TRUNC(sysdate-7)
  131. AND TRUNC(defect.CREATETIME)<=TRUNC(SYSDATE)
  132. AND defect.VALUEFLAG=1
  133. AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1
  134. AND gdd.VALUEFLAG=1
  135. )
  136. GROUP BY 缺陷名称
  137. ORDER BY COUNT( 缺陷条码) DESC
  138. )
  139. WHERE ROWNUM<=3
  140. )
  141. SELECT
  142. 一车间前三缺陷数量.workshops,
  143. DECODE( NVL( 一车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 一车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 出窑数.ONEOUTKILNCOUNT, 1 ), 0, 1, NVL( 出窑数.ONEOUTKILNCOUNT, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 一车间前三缺陷数量.缺陷名称
  144. FROM
  145. 一车间前三缺陷数量
  146. LEFT JOIN 出窑数 on 1=1
  147. UNION ALL
  148. SELECT
  149. 二车间前三缺陷数量.workshops,
  150. DECODE( NVL( 二车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 二车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 出窑数.TWOOUTKILNCOUNT, 1 ), 0, 1, NVL( 出窑数.TWOOUTKILNCOUNT, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 二车间前三缺陷数量.缺陷名称
  151. FROM
  152. 二车间前三缺陷数量
  153. LEFT JOIN 出窑数 on 1=1
  154. UNION ALL
  155. SELECT
  156. 三车间前三缺陷数量.workshops,
  157. DECODE( NVL( 三车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 三车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 出窑数.THREEOUTKILNCOUNT, 1 ), 0, 1, NVL( 出窑数.THREEOUTKILNCOUNT, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 三车间前三缺陷数量.缺陷名称
  158. FROM
  159. 三车间前三缺陷数量
  160. LEFT JOIN 出窑数 on 1=1";
  161. //直接获取不分页数据
  162. DataTable dt = conn.ExecuteDatatable(sqlStr);
  163. string jsonStr = new JsonResult(dt).ToJson();
  164. context.Response.Write(jsonStr);
  165. }
  166. if (context.Request["m"].ToString() == "Load02")
  167. {
  168. //直接获取不分页数据
  169. string sqlStr = @"WITH 一车间前三缺陷数量 AS (
  170. SELECT
  171. *
  172. FROM(
  173. SELECT
  174. workshops,
  175. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  176. 缺陷名称
  177. FROM
  178. (
  179. SELECT
  180. '一车间' workshops,
  181. CASE WHEN semicheck.GOODSLEVELTYPEID IN (2,13) or semicheck.SEMICHECKTYPE is not NULL THEN semicheck.BARCODE ELSE NULL END 缺陷条码,
  182. SEMIDEFCET.S_NAME 缺陷名称
  183. FROM TP_PM_SEMICHECK semicheck
  184. LEFT JOIN TP_PM_SEMICHECKDEFECT semicheckdefect on semicheckdefect.SEMICHECKID=semicheck.SEMICHECKID
  185. LEFT JOIN TP_MST_SEMICHECKDEFECT SEMIDEFCET ON SEMIDEFCET.DEFECTID=semicheckdefect.DEFECTID
  186. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=semicheck.barcode
  187. INNER JOIN TP_PM_PRODUCTIONDATA pd on pd.barcode=gdd.barcode AND pd.PROCEDUREID IN(1,17)
  188. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  189. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  190. WHERE semicheck.CREATETIME>=TRUNC(sysdate-7)
  191. AND TRUNC(semicheck.CREATETIME)<=TRUNC(SYSDATE)
  192. AND semicheck.VALUEFLAG=1
  193. AND INSTR(GTP.GOODSTYPECODE, '001002') = 1
  194. AND gdd.VALUEFLAG=1
  195. AND pd.VALUEFLAG=1
  196. )
  197. GROUP BY workshops,缺陷名称
  198. ORDER BY COUNT( DISTINCT 缺陷条码) DESC
  199. )
  200. WHERE ROWNUM<=3
  201. ),
  202. 二车间前三缺陷数量 AS (
  203. SELECT
  204. *
  205. FROM(
  206. SELECT
  207. workshops,
  208. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  209. 缺陷名称
  210. FROM
  211. (
  212. SELECT
  213. '二车间' workshops,
  214. CASE WHEN semicheck.GOODSLEVELTYPEID IN (2,13) or semicheck.SEMICHECKTYPE is not NULL THEN semicheck.BARCODE ELSE NULL END 缺陷条码,
  215. SEMIDEFCET.S_NAME 缺陷名称
  216. FROM TP_PM_SEMICHECK semicheck
  217. LEFT JOIN TP_PM_SEMICHECKDEFECT semicheckdefect on semicheckdefect.SEMICHECKID=semicheck.SEMICHECKID
  218. LEFT JOIN TP_MST_SEMICHECKDEFECT SEMIDEFCET ON SEMIDEFCET.DEFECTID=semicheckdefect.DEFECTID
  219. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=semicheck.barcode
  220. INNER JOIN TP_PM_PRODUCTIONDATA pd on pd.barcode=gdd.barcode AND pd.PROCEDUREID IN(1,17)
  221. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  222. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  223. WHERE semicheck.CREATETIME>=TRUNC(sysdate-7)
  224. AND TRUNC(semicheck.CREATETIME)<=TRUNC(SYSDATE)
  225. AND semicheck.VALUEFLAG=1
  226. AND INSTR(GTP.GOODSTYPECODE, '001001') = 1
  227. AND gdd.VALUEFLAG=1
  228. AND pd.VALUEFLAG=1
  229. )
  230. GROUP BY workshops,缺陷名称
  231. ORDER BY COUNT( DISTINCT 缺陷条码) DESC
  232. )
  233. WHERE ROWNUM<=3
  234. ),
  235. 三车间前三缺陷数量 AS (
  236. SELECT
  237. *
  238. FROM(
  239. SELECT
  240. workshops,
  241. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  242. 缺陷名称
  243. FROM
  244. (
  245. SELECT
  246. '三车间' workshops,
  247. CASE WHEN semicheck.GOODSLEVELTYPEID IN (2,13) or semicheck.SEMICHECKTYPE is not NULL THEN semicheck.BARCODE ELSE NULL END 缺陷条码,
  248. SEMIDEFCET.S_NAME 缺陷名称
  249. FROM TP_PM_SEMICHECK semicheck
  250. LEFT JOIN TP_PM_SEMICHECKDEFECT semicheckdefect on semicheckdefect.SEMICHECKID=semicheck.SEMICHECKID
  251. LEFT JOIN TP_MST_SEMICHECKDEFECT SEMIDEFCET ON SEMIDEFCET.DEFECTID=semicheckdefect.DEFECTID
  252. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=semicheck.barcode
  253. INNER JOIN TP_PM_PRODUCTIONDATA pd on pd.barcode=gdd.barcode AND pd.PROCEDUREID IN(118,92 ,88)
  254. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  255. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  256. WHERE semicheck.CREATETIME>=TRUNC(sysdate-7)
  257. AND TRUNC(semicheck.CREATETIME)<=TRUNC(SYSDATE)
  258. AND semicheck.VALUEFLAG=1
  259. AND gdd.VALUEFLAG=1
  260. AND pd.VALUEFLAG=1
  261. )
  262. GROUP BY workshops,缺陷名称
  263. ORDER BY COUNT( DISTINCT 缺陷条码) DESC
  264. )
  265. WHERE ROWNUM<=3
  266. ),
  267. 一车间产量 AS (
  268. SELECT '一车间' AS 车间, COUNT(DISTINCT PD.BARCODE )AS 检验量 FROM TP_PM_PRODUCTIONDATA PD
  269. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=PD.GOODSID
  270. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  271. WHERE PD.VALUEFLAG=1 AND PD.PROCEDUREID IN(1,17)AND PD.CREATETIME>=TRUNC(sysdate-7) AND TRUNC(PD.CREATETIME)<=TRUNC(SYSDATE)
  272. AND INSTR(GTP.GOODSTYPECODE, '001002') = 1
  273. ),
  274. 二车间产量 AS (
  275. SELECT '二车间' AS 车间, COUNT(DISTINCT PD.BARCODE )AS 检验量 FROM TP_PM_PRODUCTIONDATA PD
  276. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=PD.GOODSID
  277. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  278. WHERE PD.VALUEFLAG=1 AND PD.PROCEDUREID IN(1,17)AND PD.CREATETIME>=TRUNC(sysdate-7) AND TRUNC(PD.CREATETIME)<=TRUNC(SYSDATE)
  279. AND INSTR(GTP.GOODSTYPECODE, '001001') = 1
  280. ),三车间产量 AS (
  281. SELECT '三车间' AS 车间, COUNT(DISTINCT PD.BARCODE )AS 检验量 FROM TP_PM_PRODUCTIONDATA PD
  282. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=PD.GOODSID
  283. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  284. WHERE PD.VALUEFLAG=1 AND PD.PROCEDUREID IN(118,92 ,88)AND PD.CREATETIME>=TRUNC(sysdate-7) AND TRUNC(PD.CREATETIME)<=TRUNC(SYSDATE)
  285. )
  286. SELECT
  287. 一车间前三缺陷数量.workshops,
  288. DECODE( NVL( 一车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 一车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 一车间产量.检验量, 1 ), 0, 1, NVL( 一车间产量.检验量, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 一车间前三缺陷数量.缺陷名称
  289. FROM
  290. 一车间前三缺陷数量
  291. LEFT JOIN 一车间产量 on 1=1
  292. UNION ALL
  293. SELECT
  294. 二车间前三缺陷数量.workshops,
  295. DECODE( NVL( 二车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 二车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 二车间产量.检验量, 1 ), 0, 1, NVL( 二车间产量.检验量, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 二车间前三缺陷数量.缺陷名称
  296. FROM
  297. 二车间前三缺陷数量
  298. LEFT JOIN 二车间产量 on 1=1
  299. UNION ALL
  300. SELECT
  301. 三车间前三缺陷数量.workshops,
  302. DECODE( NVL( 三车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 三车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 三车间产量.检验量, 1 ), 0, 1, NVL( 三车间产量.检验量, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 三车间前三缺陷数量.缺陷名称
  303. FROM
  304. 三车间前三缺陷数量
  305. LEFT JOIN 三车间产量 on 1=1
  306. ";
  307. DataTable dt = conn.ExecuteDatatable(sqlStr);
  308. string jsonStr = new JsonResult(dt).ToJson();
  309. context.Response.Write(jsonStr);
  310. }
  311. if (context.Request["m"].ToString() == "Load05")
  312. {
  313. string sqlStr = @" SELECT '连体'AS 产品类别,
  314. H.缺陷名称,
  315. H.缺陷数,
  316. H.缺陷占比,
  317. H.上周比,
  318. CASE WHEN H.上周比 > H.缺陷占比 THEN '下降↓'
  319. ELSE '上升↑'
  320. END 对比趋势
  321. FROM(
  322. SELECT
  323. TT.DEFECTNAME 缺陷名称,
  324. TT2.COUNT 出窑数,
  325. TT.COUNT 缺陷数,
  326. TO_CHAR((TT.COUNT/TT2.COUNT)* 100,'fm99990.0') || '%' AS 缺陷占比,
  327. TT4.COUNT 上个月缺陷数量,
  328. TT6.COUNT 上个月出窑数,
  329. TO_CHAR((TT4.COUNT/TT6.COUNT)* 100,'fm99990.0') || '%' AS 上周比
  330. FROM(
  331. SELECT ROWNUM id,T.DEFECTID,T.DEFECTNAME,T.count FROM (
  332. SELECT
  333. TMD.S_NAME DEFECTNAME,
  334. TMD.DEFECTID,
  335. COUNT( 1 ) count
  336. FROM
  337. TP_PM_PRODUCTIONDATA TPPD
  338. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  339. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  340. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  341. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  342. WHERE
  343. TPPD.PROCEDUREID IN (125,131)
  344. AND TPPD.GOODSLEVELTYPEID = 7
  345. AND TPD.VALUEFLAG = 1
  346. AND TPPD.VALUEFLAG = 1
  347. AND GDTYPE.GOODSTYPECODE='001001001'
  348. AND TMD.VALUEFLAG = 1
  349. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  350. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  351. GROUP BY
  352. TMD.S_NAME,TMD.DEFECTID
  353. ORDER BY
  354. count DESC)T
  355. WHERE ROWNUM<=3
  356. )TT
  357. FULL JOIN(
  358. SELECT
  359. ROWNUM id,
  360. T2.count
  361. FROM(
  362. SELECT
  363. COUNT(1) count
  364. FROM
  365. TP_PM_PRODUCTIONDATA TPPD
  366. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  367. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  368. WHERE
  369. TPPD.PROCEDUREID IN (104,11)
  370. AND TPPD.ISREFIRE = 0
  371. AND GDTYPE.GOODSTYPECODE='001001001'
  372. AND TPPD.VALUEFLAG = 1
  373. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  374. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  375. UNION ALL
  376. SELECT
  377. COUNT(1) count
  378. FROM
  379. TP_PM_PRODUCTIONDATA TPPD
  380. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  381. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  382. WHERE
  383. TPPD.PROCEDUREID IN (104,11)
  384. AND TPPD.ISREFIRE = 0
  385. AND GDTYPE.GOODSTYPECODE='001001001'
  386. AND TPPD.VALUEFLAG = 1
  387. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  388. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  389. UNION ALL
  390. SELECT
  391. COUNT(1)
  392. FROM
  393. TP_PM_PRODUCTIONDATA TPPD
  394. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  395. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  396. WHERE
  397. TPPD.PROCEDUREID IN (104,11)
  398. AND TPPD.ISREFIRE = 0
  399. AND GDTYPE.GOODSTYPECODE='001001001'
  400. AND TPPD.VALUEFLAG = 1
  401. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  402. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  403. )T2)TT2 ON TT.id = TT2.id
  404. FULL JOIN(
  405. SELECT ROWNUM id,T4.DEFECTNAME,T4.count FROM (
  406. SELECT
  407. TMD.S_NAME DEFECTNAME,
  408. COUNT( 1 ) count
  409. FROM
  410. TP_PM_PRODUCTIONDATA TPPD
  411. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  412. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  413. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  414. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  415. WHERE
  416. TPPD.PROCEDUREID IN (125,131)
  417. AND TPPD.GOODSLEVELTYPEID = 7
  418. AND GDTYPE.GOODSTYPECODE='001001001'
  419. AND TPD.VALUEFLAG = 1
  420. AND TPPD.VALUEFLAG = 1
  421. AND TMD.VALUEFLAG = 1
  422. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  423. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  424. GROUP BY
  425. TMD.S_NAME
  426. ORDER BY
  427. count DESC)T4 WHERE ROWNUM <= 3 )TT4 ON TT.id = TT4.id
  428. FULL JOIN(
  429. SELECT
  430. ROWNUM id,
  431. T6.count
  432. FROM(
  433. SELECT
  434. COUNT(1) count
  435. FROM
  436. TP_PM_PRODUCTIONDATA TPPD
  437. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  438. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  439. WHERE
  440. TPPD.PROCEDUREID IN (104,11)
  441. AND TPPD.ISREFIRE = 0
  442. AND GDTYPE.GOODSTYPECODE='001001001'
  443. AND TPPD.VALUEFLAG = 1
  444. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  445. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  446. UNION ALL
  447. SELECT
  448. COUNT(1) count
  449. FROM
  450. TP_PM_PRODUCTIONDATA TPPD
  451. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  452. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  453. WHERE
  454. TPPD.PROCEDUREID IN (104,11)
  455. AND TPPD.ISREFIRE = 0
  456. AND GDTYPE.GOODSTYPECODE='001001001'
  457. AND TPPD.VALUEFLAG = 1
  458. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  459. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  460. UNION ALL
  461. SELECT
  462. COUNT(1)
  463. FROM
  464. TP_PM_PRODUCTIONDATA TPPD
  465. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  466. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  467. WHERE
  468. TPPD.PROCEDUREID IN (104,11)
  469. AND TPPD.ISREFIRE = 0
  470. AND GDTYPE.GOODSTYPECODE='001001001'
  471. AND TPPD.VALUEFLAG = 1
  472. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  473. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  474. )T6)TT6 ON TT.id = TT6.id
  475. )H
  476. WHERE H.缺陷数 IS NOT NULL
  477. UNION ALL
  478. SELECT
  479. '智能',
  480. H.缺陷名称,
  481. H.缺陷数,
  482. H.缺陷占比,
  483. H.上周比,
  484. CASE WHEN H.上周比 > H.缺陷占比 THEN '下降↓'
  485. ELSE '上升↑'
  486. END 对比趋势
  487. FROM(
  488. SELECT
  489. TT.DEFECTNAME 缺陷名称,
  490. TT2.COUNT 出窑数,
  491. TT.COUNT 缺陷数,
  492. TO_CHAR((TT.COUNT/TT2.COUNT)* 100,'fm99990.0') || '%' AS 缺陷占比,
  493. TT4.COUNT 上个月缺陷数量,
  494. TT6.COUNT 上个月出窑数,
  495. TO_CHAR((TT4.COUNT/TT6.COUNT)* 100,'fm99990.0') || '%' AS 上周比
  496. FROM(
  497. SELECT ROWNUM id,T.DEFECTID,T.DEFECTNAME,T.count FROM (
  498. SELECT
  499. TMD.S_NAME DEFECTNAME,
  500. TMD.DEFECTID,
  501. COUNT( 1 ) count
  502. FROM
  503. TP_PM_PRODUCTIONDATA TPPD
  504. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  505. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  506. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  507. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  508. WHERE
  509. TPPD.PROCEDUREID IN (125,131)
  510. AND TPPD.GOODSLEVELTYPEID = 7
  511. AND TPD.VALUEFLAG = 1
  512. AND TPPD.VALUEFLAG = 1
  513. AND GDTYPE.GOODSTYPECODE='001001003'
  514. AND TMD.VALUEFLAG = 1
  515. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  516. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  517. GROUP BY
  518. TMD.S_NAME,TMD.DEFECTID
  519. ORDER BY
  520. count DESC)T
  521. WHERE ROWNUM<=3
  522. )TT
  523. FULL JOIN(
  524. SELECT
  525. ROWNUM id,
  526. T2.count
  527. FROM(
  528. SELECT
  529. COUNT(1) count
  530. FROM
  531. TP_PM_PRODUCTIONDATA TPPD
  532. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  533. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  534. WHERE
  535. TPPD.PROCEDUREID IN (104,11)
  536. AND TPPD.ISREFIRE = 0
  537. AND GDTYPE.GOODSTYPECODE='001001003'
  538. AND TPPD.VALUEFLAG = 1
  539. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  540. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  541. UNION ALL
  542. SELECT
  543. COUNT(1) count
  544. FROM
  545. TP_PM_PRODUCTIONDATA TPPD
  546. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  547. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  548. WHERE
  549. TPPD.PROCEDUREID IN (104,11)
  550. AND TPPD.ISREFIRE = 0
  551. AND GDTYPE.GOODSTYPECODE='001001003'
  552. AND TPPD.VALUEFLAG = 1
  553. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  554. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  555. UNION ALL
  556. SELECT
  557. COUNT(1)
  558. FROM
  559. TP_PM_PRODUCTIONDATA TPPD
  560. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  561. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  562. WHERE
  563. TPPD.PROCEDUREID IN (104,11)
  564. AND TPPD.ISREFIRE = 0
  565. AND GDTYPE.GOODSTYPECODE='001001003'
  566. AND TPPD.VALUEFLAG = 1
  567. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  568. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  569. )T2)TT2 ON TT.id = TT2.id
  570. FULL JOIN(
  571. SELECT ROWNUM id,T4.DEFECTNAME,T4.count FROM (
  572. SELECT
  573. TMD.S_NAME DEFECTNAME,
  574. COUNT( 1 ) count
  575. FROM
  576. TP_PM_PRODUCTIONDATA TPPD
  577. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  578. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  579. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  580. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  581. WHERE
  582. TPPD.PROCEDUREID IN (125,131)
  583. AND TPPD.GOODSLEVELTYPEID = 7
  584. AND GDTYPE.GOODSTYPECODE='001001003'
  585. AND TPD.VALUEFLAG = 1
  586. AND TPPD.VALUEFLAG = 1
  587. AND TMD.VALUEFLAG = 1
  588. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  589. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  590. GROUP BY
  591. TMD.S_NAME
  592. ORDER BY
  593. count DESC)T4 WHERE ROWNUM <= 3 )TT4 ON TT.id = TT4.id
  594. FULL JOIN(
  595. SELECT
  596. ROWNUM id,
  597. T6.count
  598. FROM(
  599. SELECT
  600. COUNT(1) count
  601. FROM
  602. TP_PM_PRODUCTIONDATA TPPD
  603. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  604. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  605. WHERE
  606. TPPD.PROCEDUREID IN (104,11)
  607. AND TPPD.ISREFIRE = 0
  608. AND GDTYPE.GOODSTYPECODE='001001003'
  609. AND TPPD.VALUEFLAG = 1
  610. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  611. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  612. UNION ALL
  613. SELECT
  614. COUNT(1) count
  615. FROM
  616. TP_PM_PRODUCTIONDATA TPPD
  617. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  618. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  619. WHERE
  620. TPPD.PROCEDUREID IN (104,11)
  621. AND TPPD.ISREFIRE = 0
  622. AND GDTYPE.GOODSTYPECODE='001001003'
  623. AND TPPD.VALUEFLAG = 1
  624. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  625. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  626. UNION ALL
  627. SELECT
  628. COUNT(1)
  629. FROM
  630. TP_PM_PRODUCTIONDATA TPPD
  631. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  632. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  633. WHERE
  634. TPPD.PROCEDUREID IN (104,11)
  635. AND TPPD.ISREFIRE = 0
  636. AND GDTYPE.GOODSTYPECODE='001001003'
  637. AND TPPD.VALUEFLAG = 1
  638. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  639. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  640. )T6)TT6 ON TT.id = TT6.id
  641. )H
  642. WHERE H.缺陷数 IS NOT NULL
  643. UNION ALL
  644. SELECT
  645. '小件',
  646. H.缺陷名称,
  647. H.缺陷数,
  648. H.缺陷占比,
  649. H.上周比,
  650. CASE WHEN H.上周比 > H.缺陷占比 THEN '下降↓'
  651. ELSE '上升↑'
  652. END 对比趋势
  653. FROM(
  654. SELECT
  655. TT.DEFECTNAME 缺陷名称,
  656. TT2.COUNT 出窑数,
  657. TT.COUNT 缺陷数,
  658. TO_CHAR((NVL(TT.COUNT,0)/TT2.COUNT)* 100,'fm99990.0') || '%' AS 缺陷占比,
  659. TT4.COUNT 上个月缺陷数量,
  660. TT6.COUNT 上个月出窑数,
  661. TO_CHAR((NVL(TT4.COUNT, 0)/TT6.COUNT)* 100,'fm99990.0') || '%' AS 上周比
  662. FROM(
  663. SELECT ROWNUM id,T.DEFECTID,T.DEFECTNAME,T.count FROM (
  664. SELECT
  665. TMD.S_NAME DEFECTNAME,
  666. TMD.DEFECTID,
  667. COUNT( 1 ) count
  668. FROM
  669. TP_PM_PRODUCTIONDATA TPPD
  670. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  671. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  672. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  673. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  674. WHERE
  675. TPPD.PROCEDUREID IN (125,131)
  676. AND TPPD.GOODSLEVELTYPEID = 7
  677. AND TPD.VALUEFLAG = 1
  678. AND TPPD.VALUEFLAG = 1
  679. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  680. AND TMD.VALUEFLAG = 1
  681. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  682. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  683. GROUP BY
  684. TMD.S_NAME,TMD.DEFECTID
  685. ORDER BY
  686. count DESC)T
  687. WHERE ROWNUM<=3
  688. )TT
  689. FULL JOIN(
  690. SELECT
  691. ROWNUM id,
  692. T2.count
  693. FROM(
  694. SELECT
  695. COUNT(1) count
  696. FROM
  697. TP_PM_PRODUCTIONDATA TPPD
  698. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  699. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  700. WHERE
  701. TPPD.PROCEDUREID IN (104,11)
  702. AND TPPD.ISREFIRE = 0
  703. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  704. AND TPPD.VALUEFLAG = 1
  705. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  706. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  707. UNION ALL
  708. SELECT
  709. COUNT(1) count
  710. FROM
  711. TP_PM_PRODUCTIONDATA TPPD
  712. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  713. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  714. WHERE
  715. TPPD.PROCEDUREID IN (104,11)
  716. AND TPPD.ISREFIRE = 0
  717. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  718. AND TPPD.VALUEFLAG = 1
  719. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  720. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  721. UNION ALL
  722. SELECT
  723. COUNT(1)
  724. FROM
  725. TP_PM_PRODUCTIONDATA TPPD
  726. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  727. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  728. WHERE
  729. TPPD.PROCEDUREID IN (104,11)
  730. AND TPPD.ISREFIRE = 0
  731. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  732. AND TPPD.VALUEFLAG = 1
  733. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  734. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  735. )T2)TT2 ON TT.id = TT2.id
  736. FULL JOIN(
  737. SELECT ROWNUM id,T4.DEFECTNAME,T4.count FROM (
  738. SELECT
  739. TMD.S_NAME DEFECTNAME,
  740. COUNT( 1 ) count
  741. FROM
  742. TP_PM_PRODUCTIONDATA TPPD
  743. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  744. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  745. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  746. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  747. WHERE
  748. TPPD.PROCEDUREID IN (125,131)
  749. AND TPPD.GOODSLEVELTYPEID = 7
  750. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  751. AND TPD.VALUEFLAG = 1
  752. AND TPPD.VALUEFLAG = 1
  753. AND TMD.VALUEFLAG = 1
  754. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  755. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  756. GROUP BY
  757. TMD.S_NAME
  758. ORDER BY
  759. count DESC)T4 WHERE ROWNUM <= 3 )TT4 ON TT.id = TT4.id
  760. FULL JOIN(
  761. SELECT
  762. ROWNUM id,
  763. T6.count
  764. FROM(
  765. SELECT
  766. COUNT(1) count
  767. FROM
  768. TP_PM_PRODUCTIONDATA TPPD
  769. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  770. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  771. WHERE
  772. TPPD.PROCEDUREID IN (104,11)
  773. AND TPPD.ISREFIRE = 0
  774. AND SUBSTR(GDTYPE.GOODSTYPECODE,0,6)='001002'
  775. AND TPPD.VALUEFLAG = 1
  776. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  777. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  778. UNION ALL
  779. SELECT
  780. COUNT(1) count
  781. FROM
  782. TP_PM_PRODUCTIONDATA TPPD
  783. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  784. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  785. WHERE
  786. TPPD.PROCEDUREID IN (104,11)
  787. AND TPPD.ISREFIRE = 0
  788. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  789. AND TPPD.VALUEFLAG = 1
  790. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  791. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  792. UNION ALL
  793. SELECT
  794. COUNT(1)
  795. FROM
  796. TP_PM_PRODUCTIONDATA TPPD
  797. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  798. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  799. WHERE
  800. TPPD.PROCEDUREID IN (104,11)
  801. AND TPPD.ISREFIRE = 0
  802. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  803. AND TPPD.VALUEFLAG = 1
  804. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  805. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  806. )T6)TT6 ON TT.id = TT6.id
  807. )H
  808. WHERE H.缺陷数 IS NOT NULL ";
  809. DataTable dt = conn.ExecuteDatatable(sqlStr);
  810. string jsonStr = new JsonResult(dt).ToJson();
  811. context.Response.Write(jsonStr);
  812. }
  813. if (context.Request["m"].ToString() == "Load01")
  814. {
  815. string sqlStr = @"WITH 本烧出窑总数 AS (
  816. SELECT
  817. --本烧一车间次品数
  818. SUM( CASE WHEN ( ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) ONESUBSTANDARDCOUNT,
  819. --本烧二车间次品数
  820. SUM( CASE WHEN ( ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) TWOSUBSTANDARDCOUNT,
  821. --本烧三车间次品数
  822. SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT
  823. FROM
  824. TP_PM_PRODUCTIONDATA PD
  825. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = PD.BARCODE
  826. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  827. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  828. WHERE
  829. PD.ACCOUNTID = 1
  830. AND (
  831. ( 11 = 11 AND ( ( PD.PROCEDUREID = 11 AND PD.VALUEFLAG = '1' AND PD.ISREFIRE = '0' ) OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1' ) ) )
  832. OR
  833. ( 11 = 58 AND ( ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' ) OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' ) ) )
  834. OR
  835. ( 11 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 11 )
  836. )
  837. AND PD.CREATETIME >= TRUNC( sysdate - 7 )
  838. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  839. ),
  840. 重烧出窑总数 AS (
  841. SELECT
  842. --本烧一车间次品数
  843. SUM( CASE WHEN ( ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) ONESUBSTANDARDCOUNT,
  844. --本烧二车间次品数
  845. SUM( CASE WHEN ( ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) TWOSUBSTANDARDCOUNT,
  846. --本烧三车间次品数
  847. SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT
  848. FROM
  849. TP_PM_PRODUCTIONDATA PD
  850. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = PD.BARCODE
  851. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  852. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  853. WHERE
  854. PD.ACCOUNTID = 1
  855. AND (
  856. ( 58 = 11 AND ( ( PD.PROCEDUREID = 11 AND PD.VALUEFLAG = '1' AND PD.ISREFIRE = '0' ) OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1' ) ) )
  857. OR
  858. ( 58 = 58 AND ( ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' ) OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' ) ) )
  859. OR
  860. ( 58 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 58 )
  861. )
  862. AND PD.CREATETIME >= TRUNC( sysdate - 7 )
  863. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  864. ),
  865. 本烧次品重烧数 AS (
  866. SELECT
  867. --本烧一车间次品数
  868. SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND ( ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GOODSTYPECODE, '001002' ) = 1 ) ) THEN 1 ELSE 0 END ) ONESUBSTANDARDCOUNT,
  869. --本烧二车间次品数
  870. SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND ( ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GOODSTYPECODE, '001001' ) = 1 ) ) THEN 1 ELSE 0 END ) TWOSUBSTANDARDCOUNT,
  871. --本烧三车间次品数
  872. SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT,
  873. --本烧一车间重烧数
  874. SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND ( ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GOODSTYPECODE, '001002' ) = 1 ) ) THEN 1 ELSE 0 END ) ONEREFIRECOUNT,
  875. --本烧二车间重烧数
  876. SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND ( ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GOODSTYPECODE, '001001' ) = 1 ) ) THEN 1 ELSE 0 END ) TWOREFIRECOUNT,
  877. --本烧三车间重烧数
  878. SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREEREFIRECOUNT
  879. FROM
  880. (
  881. SELECT DISTINCT
  882. PD.BARCODE,
  883. GT.GOODSTYPECODE,
  884. GDD.GROUTINGLINECODE,
  885. PD.GOODSLEVELTYPEID
  886. FROM
  887. TP_PM_PRODUCTIONDATA PD
  888. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  889. INNER JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  890. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  891. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  892. WHERE
  893. PD.VALUEFLAG = '1'
  894. AND PD.ACCOUNTID = 1
  895. AND LENGTH( PD.KILNCARBATCHNO ) > 0
  896. AND PD.CREATETIME >= TRUNC( sysdate - 7 )
  897. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  898. AND PD.MODELTYPE IN ( -1, -4, -5 )
  899. AND PD.CHECKBATCHNO = 1
  900. AND ( ( 11 <> 58 AND PD.ISREFIRE = '0' ) OR ( 11 = 58 AND PD.ISREFIRE = '6' ) )
  901. AND GDD.RECYCLINGFLAG = '0'
  902. ) T
  903. ),
  904. 重烧次品重烧数 AS (
  905. SELECT
  906. --本烧一车间次品数
  907. SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND ( ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GOODSTYPECODE, '001002' ) = 1 ) ) THEN 1 ELSE 0 END ) ONESUBSTANDARDCOUNT,
  908. --本烧二车间次品数
  909. SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND ( ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GOODSTYPECODE, '001001' ) = 1 ) ) THEN 1 ELSE 0 END ) TWOSUBSTANDARDCOUNT,
  910. --本烧三车间次品数
  911. SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT,
  912. --本烧一车间重烧数
  913. SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND ( ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GOODSTYPECODE, '001002' ) = 1 ) ) THEN 1 ELSE 0 END ) ONEREFIRECOUNT,
  914. --本烧二车间重烧数
  915. SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND ( ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GOODSTYPECODE, '001001' ) = 1 ) ) THEN 1 ELSE 0 END ) TWOREFIRECOUNT,
  916. --本烧三车间重烧数
  917. SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREEREFIRECOUNT
  918. FROM
  919. (
  920. SELECT DISTINCT
  921. PD.BARCODE,
  922. GT.GOODSTYPECODE,
  923. GDD.GROUTINGLINECODE,
  924. PD.GOODSLEVELTYPEID
  925. FROM
  926. TP_PM_PRODUCTIONDATA PD
  927. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  928. INNER JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  929. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  930. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  931. WHERE
  932. PD.VALUEFLAG = '1'
  933. AND PD.ACCOUNTID = 1
  934. AND LENGTH( PD.KILNCARBATCHNO ) > 0
  935. AND PD.CREATETIME >= TRUNC( sysdate - 7 )
  936. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  937. AND PD.MODELTYPE IN ( -1, -4, -5 )
  938. AND PD.CHECKBATCHNO = 1
  939. AND ( ( 58 <> 58 AND PD.ISREFIRE = '0' ) OR ( 58 = 58 AND PD.ISREFIRE = '6' ) )
  940. AND GDD.RECYCLINGFLAG = '0'
  941. ) T
  942. )
  943. SELECT
  944. 本烧出窑总数.ONESUBSTANDARDCOUNT AS 一车间,
  945. 本烧出窑总数.TWOSUBSTANDARDCOUNT AS 二车间,
  946. 本烧出窑总数.THREESUBSTANDARDCOUNT AS 三车间
  947. FROM
  948. 本烧出窑总数
  949. UNION ALL
  950. SELECT
  951. ROUND( ( (本烧出窑总数.ONESUBSTANDARDCOUNT - 本烧次品重烧数.ONESUBSTANDARDCOUNT - 本烧次品重烧数.ONEREFIRECOUNT ) / 本烧出窑总数.ONESUBSTANDARDCOUNT )*100 ,1 ) AS 一车间,
  952. ROUND( ( (本烧出窑总数.TWOSUBSTANDARDCOUNT - 本烧次品重烧数.TWOSUBSTANDARDCOUNT - 本烧次品重烧数.TWOREFIRECOUNT) / 本烧出窑总数.TWOSUBSTANDARDCOUNT )*100 ,1 ) AS 二车间,
  953. ROUND( ( (本烧出窑总数.THREESUBSTANDARDCOUNT - 本烧次品重烧数.THREESUBSTANDARDCOUNT - 本烧次品重烧数.THREEREFIRECOUNT) / 本烧出窑总数.THREESUBSTANDARDCOUNT )*100 ,1 ) AS 三车间
  954. FROM
  955. 本烧出窑总数
  956. LEFT JOIN 本烧次品重烧数 ON 1 = 1
  957. UNION ALL
  958. SELECT
  959. ROUND((((本烧出窑总数.ONESUBSTANDARDCOUNT-本烧次品重烧数.ONESUBSTANDARDCOUNT-本烧次品重烧数.ONEREFIRECOUNT)+(重烧出窑总数.ONESUBSTANDARDCOUNT-重烧次品重烧数.ONESUBSTANDARDCOUNT-重烧次品重烧数.ONEREFIRECOUNT))/本烧出窑总数.ONESUBSTANDARDCOUNT)*100 ,1 ) AS 一车间,
  960. ROUND((((本烧出窑总数.TWOSUBSTANDARDCOUNT-本烧次品重烧数.TWOSUBSTANDARDCOUNT-本烧次品重烧数.TWOREFIRECOUNT)+(重烧出窑总数.TWOSUBSTANDARDCOUNT-重烧次品重烧数.TWOSUBSTANDARDCOUNT-重烧次品重烧数.TWOREFIRECOUNT))/本烧出窑总数.TWOSUBSTANDARDCOUNT)*100 ,1 ) AS 二车间,
  961. ROUND((((本烧出窑总数.THREESUBSTANDARDCOUNT-本烧次品重烧数.THREESUBSTANDARDCOUNT-本烧次品重烧数.THREEREFIRECOUNT)+(重烧出窑总数.THREESUBSTANDARDCOUNT-重烧次品重烧数.THREESUBSTANDARDCOUNT-重烧次品重烧数.THREEREFIRECOUNT))/本烧出窑总数.THREESUBSTANDARDCOUNT)*100 ,1 ) AS 三车间
  962. FROM
  963. 本烧出窑总数
  964. LEFT JOIN 本烧次品重烧数 ON 1 = 1
  965. LEFT JOIN 重烧出窑总数 ON 1 = 1
  966. LEFT JOIN 重烧次品重烧数 ON 1 = 1";
  967. DataTable dt = conn.ExecuteDatatable(sqlStr);
  968. string jsonStr = new JsonResult(dt).ToJson();
  969. context.Response.Write(jsonStr);
  970. }
  971. if (context.Request["m"].ToString() == "Load07")
  972. {
  973. string sqlStr = @"SELECT
  974. --成型小件
  975. MAX( (
  976. SELECT
  977. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  978. FROM TP_PM_GROUTINGDAILYDETAIL GDD
  979. INNER JOIN TP_MST_GOODS G ON GDD.GOODSID = G.GOODSID
  980. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  981. WHERE GDD.VALUEFLAG = 1
  982. AND GDD.CREATETIME >= TRUNC( sysdate - 7 )
  983. AND TRUNC( GDD.CREATETIME ) < TRUNC( SYSDATE )
  984. ) ) AS SMALLGDD,
  985. --成型大件
  986. MAX( (
  987. SELECT
  988. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  989. FROM TP_PM_GROUTINGDAILYDETAIL GDD
  990. INNER JOIN TP_MST_GOODS G ON GDD.GOODSID = G.GOODSID
  991. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  992. WHERE GDD.VALUEFLAG = 1
  993. AND GDD.CREATETIME >= TRUNC( sysdate - 7 )
  994. AND TRUNC( GDD.CREATETIME ) < TRUNC( SYSDATE )
  995. AND SUBSTR(GDD.GROUTINGLINECODE, 0, 4) NOT IN ('C05B','C05C')
  996. ) ) AS BIGGDD,
  997. --半检小件
  998. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (1,17,118,92,88) THEN 1 ELSE 0 END ) AS SMALLHALF,
  999. --半检大件
  1000. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (1,17,118,92,88) THEN 1 ELSE 0 END ) AS BIGHALF,
  1001. --施釉小件
  1002. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (65,99) THEN 1 ELSE 0 END ) AS SMALLGLAZE,
  1003. --施釉大件
  1004. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (65,99) THEN 1 ELSE 0 END ) AS BIGGLAZE,
  1005. --烧成小件
  1006. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (10,103) THEN 1 ELSE 0 END ) AS SMALLKILN,
  1007. --烧成大件
  1008. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (10,103) THEN 1 ELSE 0 END ) AS BIGKILN,
  1009. --成检小件
  1010. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (11,104) THEN 1 ELSE 0 END ) AS SMALLCHECK,
  1011. --成检大件
  1012. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (11,104) THEN 1 ELSE 0 END ) AS BIGCHECK,
  1013. --包装小件
  1014. MAX( (
  1015. SELECT
  1016. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  1017. FROM TP_PM_FINISHEDPRODUCT F
  1018. INNER JOIN TP_MST_GOODS G ON F.GOODSID = G.GOODSID
  1019. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1020. WHERE F.VALUEFLAG = 1
  1021. AND F.CREATETIME >= TRUNC( sysdate - 7 )
  1022. AND TRUNC( F.CREATETIME ) < TRUNC( SYSDATE )
  1023. ) ) AS SMALLPACK,
  1024. MAX( (
  1025. SELECT
  1026. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  1027. FROM TP_PM_FINISHEDPRODUCT F
  1028. INNER JOIN TP_MST_GOODS G ON F.GOODSID = G.GOODSID
  1029. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1030. WHERE F.VALUEFLAG = 1
  1031. AND F.CREATETIME >= TRUNC( sysdate - 7 )
  1032. AND TRUNC( F.CREATETIME ) < TRUNC( SYSDATE )
  1033. ) ) AS BIGPACK
  1034. FROM
  1035. TP_PM_PRODUCTIONDATA PD
  1036. INNER JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
  1037. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1038. WHERE
  1039. PD.VALUEFLAG = 1
  1040. AND PD.CREATETIME >= TRUNC( sysdate - 7 )
  1041. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  1042. ";
  1043. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1044. string jsonStr = new JsonResult(dt).ToJson();
  1045. context.Response.Write(jsonStr);
  1046. }
  1047. if (context.Request["m"].ToString() == "Load06")
  1048. {
  1049. // string sqlStr = @"WITH 一车间半检产量 AS (
  1050. // SELECT
  1051. // COUNT( DISTINCT PD.BARCODE ) AS ONEHALFCHECK
  1052. // FROM
  1053. // TP_PM_PRODUCTIONDATA PD
  1054. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = PD.GOODSID
  1055. // LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID = GOODS.GOODSTYPEID
  1056. // WHERE
  1057. // PD.VALUEFLAG = 1
  1058. // AND PD.PROCEDUREID IN ( 1, 17 )
  1059. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1060. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1061. // AND INSTR( GTP.GOODSTYPECODE, '001002' ) = 1
  1062. // ),
  1063. // 二车间半检产量 AS (
  1064. // SELECT
  1065. // COUNT( DISTINCT PD.BARCODE ) AS TWOHALFCHECK
  1066. // FROM
  1067. // TP_PM_PRODUCTIONDATA PD
  1068. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = PD.GOODSID
  1069. // LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID = GOODS.GOODSTYPEID
  1070. // WHERE
  1071. // PD.VALUEFLAG = 1
  1072. // AND PD.PROCEDUREID IN ( 1, 17 )
  1073. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1074. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1075. // AND INSTR( GTP.GOODSTYPECODE, '001001' ) = 1
  1076. // ),
  1077. // 三车间半检产量 AS (
  1078. // SELECT
  1079. // COUNT( DISTINCT PD.BARCODE ) AS THREEHALFCHECK
  1080. // FROM
  1081. // TP_PM_PRODUCTIONDATA PD
  1082. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = PD.GOODSID
  1083. // LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID = GOODS.GOODSTYPEID
  1084. // WHERE
  1085. // PD.VALUEFLAG = 1
  1086. // AND PD.PROCEDUREID IN ( 118, 92, 88 )
  1087. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1088. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1089. // ),
  1090. // 车间干补数 AS (
  1091. // SELECT
  1092. // SUM( CASE WHEN ( ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS ONESPECIALREPAIR,
  1093. // SUM( CASE WHEN ( ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) AS TWOSPECIALREPAIR,
  1094. // SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) AS THREESPECIALREPAIR
  1095. // FROM
  1096. // TP_PM_PRODUCTIONDATA PD
  1097. // LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  1098. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = GDD.GOODSID
  1099. // LEFT JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = GOODS.GOODSTYPEID
  1100. // WHERE
  1101. // PD.PROCEDUREID = 18
  1102. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1103. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1104. // ),
  1105. // 本烧出窑总数 AS (
  1106. // SELECT
  1107. // --本烧一车间数
  1108. // SUM( CASE WHEN ( ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) ONESUBSTANDARDCOUNT,
  1109. // --本烧二车间数
  1110. // SUM( CASE WHEN ( ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) TWOSUBSTANDARDCOUNT,
  1111. // --本烧三车间数
  1112. // SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT
  1113. // FROM
  1114. // TP_PM_PRODUCTIONDATA PD
  1115. // LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = PD.BARCODE
  1116. // INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  1117. // INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1118. // WHERE
  1119. // PD.ACCOUNTID = 1
  1120. // AND (
  1121. // ( 11 = 11 AND ( ( PD.PROCEDUREID = 11 AND PD.VALUEFLAG = '1' AND PD.ISREFIRE = '0' ) OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1' ) ) )
  1122. // OR
  1123. // ( 11 = 58 AND ( ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' ) OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' ) ) )
  1124. // OR
  1125. // ( 11 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 11 )
  1126. // )
  1127. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1128. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1129. // ),
  1130. // 车间冷补数 AS (
  1131. // SELECT
  1132. // SUM( CASE WHEN ( ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS ONELENGBU,
  1133. // SUM( CASE WHEN ( ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) AS TWOLENGBU,
  1134. // SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) AS THREELENGBU
  1135. // FROM
  1136. // TP_PM_PRODUCTIONDATA PD
  1137. // LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  1138. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = GDD.GOODSID
  1139. // LEFT JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = GOODS.GOODSTYPEID
  1140. // WHERE
  1141. // PD.PROCEDUREID IN (113,135)
  1142. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1143. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1144. // )
  1145. // SELECT
  1146. // TO_CHAR(ROUND(车间干补数.ONESPECIALREPAIR / 一车间半检产量.ONEHALFCHECK, 6) * 100,'fm99990.0') AS ONESPECIALREPAIR,
  1147. // TO_CHAR(ROUND(车间干补数.TWOSPECIALREPAIR /二车间半检产量.TWOHALFCHECK, 6) * 100,'fm99990.0') AS TWOSPECIALREPAIR,
  1148. // TO_CHAR(ROUND(车间干补数.THREESPECIALREPAIR / 三车间半检产量.THREEHALFCHECK, 6) * 100,'fm99990.0') AS THREESPECIALREPAIR,
  1149. // TO_CHAR(ROUND(车间冷补数.ONELENGBU / 本烧出窑总数.ONESUBSTANDARDCOUNT, 6) * 100,'fm99990.0') AS ONELENGBU,
  1150. // TO_CHAR(ROUND(车间冷补数.TWOLENGBU / 本烧出窑总数.TWOSUBSTANDARDCOUNT, 6) * 100,'fm99990.0') AS TWOLENGBU,
  1151. // TO_CHAR(ROUND(车间冷补数.THREELENGBU / 本烧出窑总数.THREESUBSTANDARDCOUNT, 6) * 100,'fm99990.0') AS THREELENGBU
  1152. // FROM
  1153. // 车间干补数
  1154. // INNER JOIN 车间冷补数 ON 1 = 1
  1155. // LEFT JOIN 一车间半检产量 ON 1 = 1
  1156. // LEFT JOIN 二车间半检产量 ON 1 = 1
  1157. // LEFT JOIN 三车间半检产量 ON 1 = 1
  1158. // LEFT JOIN 本烧出窑总数 ON 1 = 1
  1159. //";
  1160. string sqlStr = @"with 成检检验数 AS (
  1161. SELECT
  1162. pd.GOODSCODE,
  1163. COUNT( DISTINCT pd.BARCODE) AS 数量 FROM TP_PM_PRODUCTIONDATA pd
  1164. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1165. WHERE pd.PROCEDUREID IN( 125,131)
  1166. AND pd.VALUEFLAG=1
  1167. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1168. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1169. GROUP BY pd.GOODSCODE
  1170. ),成检废品数 AS (
  1171. SELECT
  1172. pd.GOODSCODE,
  1173. COUNT( DISTINCT pd.BARCODE) AS 数量 FROM TP_PM_PRODUCTIONDATA pd
  1174. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1175. WHERE pd.PROCEDUREID IN( 125,131)
  1176. AND pd.VALUEFLAG=1
  1177. AND pd.GOODSLEVELTYPEID in(7,13)
  1178. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1179. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1180. GROUP BY pd.GOODSCODE
  1181. )
  1182. SELECT
  1183. *
  1184. FROM(
  1185. SELECT
  1186. '成检' 工序,
  1187. TO_CHAR(成检检验数.GOODSCODE) AS GOODSCODE,
  1188. 成检检验数.数量 AS 检验数,
  1189. DECODE(NVL(成检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(成检废品数.数量, 0)) /DECODE(NVL(成检检验数.数量, 1),0,1,NVL(成检检验数.数量, 1))) * 100,'fm99990.0')) AS 废品率
  1190. FROM 成检检验数
  1191. LEFT JOIN 成检废品数 ON 成检废品数.GOODSCODE=成检检验数.GOODSCODE
  1192. ORDER BY DECODE(NVL(成检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(成检废品数.数量, 0)) /DECODE(NVL(成检检验数.数量, 1),0,1,NVL(成检检验数.数量, 1))) * 100,'fm99990.0')) DESC
  1193. ) WHERE ROWNUM<6";
  1194. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1195. string jsonStr = new JsonResult(dt).ToJson();
  1196. context.Response.Write(jsonStr);
  1197. }
  1198. if (context.Request["m"].ToString() == "Load09")
  1199. {
  1200. string sqlStr = @"SELECT
  1201. SUBSTR(TT.DICTIONARYVALUE, 0, 4) AS DICTIONARYVALUE,
  1202. TT.INSPECTIONQUANTITY,
  1203. DECODE(NVL(TT.INSPECTIONQUANTITY, 0),0,0,TO_CHAR(((NVL(TT.INSPECTIONQUANTITY, 0)) /DECODE(NVL(TT.PLANINSPECTIONQUANTITY, 1),0,1,NVL(TT.PLANINSPECTIONQUANTITY, 1))) * 100,'fm99990.0')) AS WANCHENGLV,
  1204. 100 - DECODE(NVL(TT.BUHEGESHU, 0) ,0 ,0,TO_CHAR(((NVL(TT.BUHEGESHU, 0)) / DECODE(NVL(TT.INSPECTIONQUANTITY, 1), 0, 1, NVL(TT.INSPECTIONQUANTITY, 1))) * 100,'fm99990.0')) AS HEGELV
  1205. FROM (
  1206. SELECT
  1207. T.INSPECTTYPE,
  1208. T.DICTIONARYVALUE,
  1209. SUM(T.PLANINSPECTIONQUANTITY) PLANINSPECTIONQUANTITY,
  1210. SUM(T.INSPECTIONQUANTITY) INSPECTIONQUANTITY,
  1211. SUM(T.BUHEGESHU) BUHEGESHU
  1212. FROM (
  1213. SELECT
  1214. TP_PM_FQCITEMSPLAN.INSPECTTYPE,
  1215. TP_MST_DATADICTIONARY.DICTIONARYVALUE,
  1216. SUM(TP_PM_FQCITEMSPLAN.PLANINSPECTIONQUANTITY) PLANINSPECTIONQUANTITY,
  1217. SUM(TP_PM_FQCITEMSPLAN.INSPECTIONQUANTITY) INSPECTIONQUANTITY,
  1218. 0 BUHEGESHU
  1219. FROM TP_PM_FQCITEMSPLAN
  1220. LEFT JOIN TP_MST_DATADICTIONARY ON TP_MST_DATADICTIONARY.DICTIONARYID = TP_PM_FQCITEMSPLAN.INSPECTTYPE
  1221. LEFT JOIN TP_MST_GOODS ON TP_MST_GOODS.GOODSID = TP_PM_FQCITEMSPLAN.GOODSID
  1222. LEFT JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = TP_MST_GOODS.GOODSTYPEID AND TP_MST_DATADICTIONARY.DICTIONARYTYPE = 'TPC021'
  1223. WHERE TP_PM_FQCITEMSPLAN.VALUEFLAG = 1
  1224. AND TP_PM_FQCITEMSPLAN.ACCOUNTID = 1
  1225. AND TP_PM_FQCITEMSPLAN.CREATETIME >= TRUNC(SYSDATE - 7)
  1226. AND TRUNC(TP_PM_FQCITEMSPLAN.CREATETIME) <= TRUNC(SYSDATE)
  1227. AND TP_PM_FQCITEMSPLAN.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1228. AND TP_PM_FQCITEMSPLAN.INSPECTIONQUANTITY <> 0
  1229. GROUP BY
  1230. TP_PM_FQCITEMSPLAN.INSPECTTYPE,
  1231. TP_MST_DATADICTIONARY.DICTIONARYVALUE
  1232. UNION ALL
  1233. SELECT
  1234. TP_PM_FQCITEMSDATA.INSPECTTYPE,
  1235. TP_MST_DATADICTIONARY.DICTIONARYVALUE,
  1236. 0 PLANINSPECTIONQUANTITY,
  1237. 0 INSPECTIONQUANTITY,
  1238. SUM(CASE WHEN TP_PM_FQCITEMSDATA.ISQUALIFIED = 0 THEN 1 ELSE 0 END) BUHEGESHU
  1239. FROM TP_PM_FQCITEMSDATA
  1240. LEFT JOIN TP_MST_DATADICTIONARY ON TP_MST_DATADICTIONARY.DICTIONARYID = TP_PM_FQCITEMSDATA.INSPECTTYPE
  1241. WHERE TP_PM_FQCITEMSDATA.VALUEFLAG = 1
  1242. AND TP_PM_FQCITEMSDATA.CREATETIME >= TRUNC(SYSDATE - 7)
  1243. AND TRUNC(TP_PM_FQCITEMSDATA.CREATETIME) <= TRUNC(SYSDATE)
  1244. AND TP_PM_FQCITEMSDATA.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1245. GROUP BY
  1246. TP_PM_FQCITEMSDATA.INSPECTTYPE,
  1247. TP_MST_DATADICTIONARY.DICTIONARYVALUE
  1248. ) T
  1249. GROUP BY
  1250. T.INSPECTTYPE,
  1251. T.DICTIONARYVALUE
  1252. ) TT";
  1253. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1254. string jsonStr = new JsonResult(dt).ToJson();
  1255. context.Response.Write(jsonStr);
  1256. }
  1257. if (context.Request["m"].ToString() == "Load04")
  1258. {
  1259. string sqlStr = @"SELECT
  1260. *
  1261. FROM
  1262. (
  1263. SELECT
  1264. goodssap.GOODSCODE,
  1265. COUNT(DISTINCT FD.BARCODE) AS COUNTS,
  1266. goodssap.CREATETIME
  1267. FROM
  1268. TP_PM_FINISHEDPRODUCT FD
  1269. LEFT JOIN TP_MST_GOODSLOGOSAP goodssap ON goodssap.GOODSCODE=FD.GOODSCODE
  1270. WHERE FD.VALUEFLAG = 1
  1271. AND FD.CREATETIME >= TRUNC( SYSDATE - 7 )
  1272. AND TRUNC( FD.CREATETIME ) <= TRUNC( SYSDATE )
  1273. AND goodssap.GOODSCODE is NOT NULL
  1274. GROUP BY goodssap.GOODSCODE,goodssap.CREATETIME
  1275. ORDER BY goodssap.CREATETIME desc
  1276. )
  1277. WHERE ROWNUM<6";
  1278. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1279. string jsonStr = new JsonResult(dt).ToJson();
  1280. context.Response.Write(jsonStr);
  1281. }
  1282. #region 模具库存周转率,产品 SKU 周转率
  1283. //if (context.Request["m"].ToString() == "Load10") 请勿删除 根据要求后期可能会再次使用
  1284. // { List<CDAParameter> sqlPara = new List<CDAParameter>();
  1285. // sqlPara.Add(new CDAParameter("DATEBEGIN", DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")+ " 00:00:00", DataType.DateTime));
  1286. // sqlPara.Add(new CDAParameter("DATEEND", DateTime.Now.AddDays(0).ToString("yyyy-MM-dd")+ " 23:59:59", DataType.DateTime));
  1287. // string sqlStr = @"SELECT
  1288. // *
  1289. // FROM
  1290. // (
  1291. // SELECT
  1292. // TO_CHAR( '模具' || GOODSCODE ) AS 地点,
  1293. // GOODSCODE,
  1294. // 时间差值,
  1295. // to_char( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) / 24 ), 'fm9999990.0' ) ) 周转周期
  1296. // FROM
  1297. // (
  1298. // SELECT
  1299. // mch.GOODSCODE,
  1300. // SUM( mch.时间差 ) AS 时间差值,
  1301. // COUNT( DISTINCT goodsmould.MOULDCODE ) AS 产量
  1302. // FROM
  1303. // (
  1304. // SELECT
  1305. // mch.MOULDCODE,
  1306. // mch.GOODSCODE,
  1307. // TO_CHAR( ( ceil( ( ( mch.CREATETIME - mchh.CREATETIME ) ) * 24 ) ), 'fm9999990' ) AS 时间差
  1308. // FROM
  1309. // tp_pc_mouldchangehistory mch
  1310. // LEFT JOIN tp_pc_mouldchangehistory mchh ON mchh.MOULDCODE = mch.MOULDCODE
  1311. // AND mchh.operationtype = 1
  1312. // WHERE
  1313. // mch.accountid = 1
  1314. // AND mch.operationtype = 6 --operationtype=1 新增入库 operationtype=6 库存上线(出库) -1为变更型号
  1315. // AND mch.operationtype >- 1
  1316. // AND mch.createtime >= @DATEBEGIN@
  1317. // AND mch.createtime <= @DATEEND@
  1318. // ) mch
  1319. // LEFT JOIN tp_pc_mouldchangehistory goodsmould ON goodsmould.MOULDCODE = mch.MOULDCODE
  1320. // WHERE
  1321. // goodsmould.accountid = 1
  1322. // AND goodsmould.operationtype = 6
  1323. // AND goodsmould.operationtype >- 1
  1324. // AND goodsmould.createtime >= @DATEBEGIN@
  1325. // AND goodsmould.createtime <= @DATEEND@
  1326. // GROUP BY
  1327. // mch.GOODSCODE
  1328. // ORDER BY
  1329. // SUM( mch.时间差 ) DESC
  1330. // )
  1331. // ORDER BY
  1332. // TO_NUMBER( ( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) ), 'fm9999990.0000' ) ) ) DESC
  1333. // )
  1334. // WHERE
  1335. // ROWNUM <= 4 UNION ALL
  1336. // SELECT
  1337. // *
  1338. // FROM
  1339. // (
  1340. // SELECT
  1341. // TO_CHAR( '精坯' || GOODSCODE ) AS 地点,
  1342. // GOODSCODE,
  1343. // 时间差值,
  1344. // to_char( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) / 24 ), 'fm9999990.0' ) ) 周转周期
  1345. // FROM
  1346. // (
  1347. // SELECT
  1348. // inoutPD.GOODSCODE,
  1349. // SUM( 时间差 ) AS 时间差值,
  1350. // COUNT( DISTINCT GOODSPD.BARCODE ) 产量
  1351. // FROM
  1352. // (
  1353. // SELECT
  1354. // OUTPD.BARCODE,
  1355. // OUTPD.GOODSCODE,
  1356. // TO_CHAR( ( ceil( ( ( OUTPD.CREATETIME - INPD.CREATETIME ) * 24 ) ) ), 'fm9999990' ) AS 时间差
  1357. // FROM
  1358. // TP_PM_PRODUCTIONDATA OUTPD
  1359. // INNER JOIN TP_PM_PRODUCTIONDATA INPD ON OUTPD.BARCODE = INPD.BARCODE
  1360. // AND INPD.PROCEDUREID IN ( 53, 97 )
  1361. // AND INPD.VALUEFLAG = 1
  1362. // WHERE
  1363. // OUTPD.PROCEDUREID IN ( 119, 64, 81 )
  1364. // AND OUTPD.VALUEFLAG = 1
  1365. // AND OUTPD.createtime >= @DATEBEGIN@
  1366. // AND OUTPD.createtime <= @DATEEND@
  1367. // ) inoutPD
  1368. // INNER JOIN TP_PM_PRODUCTIONDATA GOODSPD ON GOODSPD.BARCODE = inoutPD.BARCODE
  1369. // WHERE
  1370. // GOODSPD.PROCEDUREID IN ( 119, 64, 81 )
  1371. // AND GOODSPD.VALUEFLAG = 1
  1372. // AND GOODSPD.createtime >= @DATEBEGIN@
  1373. // AND GOODSPD.createtime <= @DATEEND@
  1374. // GROUP BY
  1375. // inoutPD.GOODSCODE
  1376. // )
  1377. // ORDER BY
  1378. // TO_NUMBER( ( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) ), 'fm9999990.0000' ) ) ) DESC
  1379. // )
  1380. // WHERE
  1381. // ROWNUM <= 3 UNION ALL
  1382. // SELECT
  1383. // *
  1384. // FROM
  1385. // (
  1386. // SELECT
  1387. // TO_CHAR( '施釉' || GOODSCODE ) AS 地点,
  1388. // GOODSCODE,
  1389. // 时间差值,
  1390. // to_char( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) / 24 ), 'fm9999990.0' ) ) 周转周期
  1391. // FROM
  1392. // (
  1393. // SELECT
  1394. // inoutPD.GOODSCODE,
  1395. // SUM( 时间差 ) AS 时间差值,
  1396. // COUNT( DISTINCT GOODSPD.BARCODE ) 产量
  1397. // FROM
  1398. // (
  1399. // SELECT
  1400. // OUTPD.BARCODE,
  1401. // OUTPD.GOODSCODE,
  1402. // TO_CHAR( ( ceil( ( ( OUTPD.CREATETIME - INPD.CREATETIME ) * 24 ) ) ), 'fm9999990' ) AS 时间差
  1403. // FROM
  1404. // TP_PM_PRODUCTIONDATA OUTPD
  1405. // INNER JOIN TP_PM_PRODUCTIONDATA INPD ON OUTPD.BARCODE = INPD.BARCODE
  1406. // AND INPD.PROCEDUREID IN ( 99, 65 )
  1407. // AND INPD.VALUEFLAG = 1
  1408. // WHERE
  1409. // OUTPD.PROCEDUREID IN ( 5, 101 )
  1410. // AND OUTPD.VALUEFLAG = 1
  1411. // AND OUTPD.createtime >= @DATEBEGIN@
  1412. // AND OUTPD.createtime <= @DATEEND@
  1413. // ) inoutPD
  1414. // INNER JOIN TP_PM_PRODUCTIONDATA GOODSPD ON GOODSPD.BARCODE = inoutPD.BARCODE
  1415. // WHERE
  1416. // GOODSPD.PROCEDUREID IN ( 5, 101 )
  1417. // AND GOODSPD.VALUEFLAG = 1
  1418. // AND GOODSPD.createtime >= @DATEBEGIN@
  1419. // AND GOODSPD.createtime <= @DATEEND@
  1420. // GROUP BY
  1421. // inoutPD.GOODSCODE
  1422. // )
  1423. // ORDER BY
  1424. // TO_NUMBER( ( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) ), 'fm9999990.0000' ) ) ) DESC
  1425. // )
  1426. // WHERE
  1427. // ROWNUM <=3";
  1428. // DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
  1429. // string jsonStr = new JsonResult(dt).ToJson();
  1430. // context.Response.Write(jsonStr);
  1431. // }
  1432. #endregion
  1433. if (context.Request["m"].ToString() == "Load91")
  1434. {
  1435. string sqlStr = @"
  1436. SELECT
  1437. TO_char(T.ALLCOUNT) AS 缺陷数,
  1438. TO_char(T.INSPECTITEM) AS 缺陷名称,
  1439. TO_char(T.SUMCOUNT)缺陷总数,
  1440. TO_char(T.SUMCOUNT1)抽检数,
  1441. TO_char(DECODE(NVL(T.ALLCOUNT, 0) ,0 ,'0%' ,TO_CHAR(((NVL(T.ALLCOUNT, 0)) / DECODE(NVL(T.SUMCOUNT1, 1) ,0 ,1 ,NVL(T.SUMCOUNT1, 1))) * 100 ,'fm99990.0'))) AS 缺陷占比
  1442. FROM (
  1443. SELECT
  1444. COUNT(1) ALLCOUNT,
  1445. TP_PM_FQCITEMSDATA.INSPECTITEM,
  1446. SUM1.SUMCOUNT,
  1447. SUM2.SUMCOUNT1
  1448. FROM TP_PM_FQCITEMSDATA
  1449. LEFT JOIN (
  1450. SELECT
  1451. COUNT(1) SUMCOUNT,
  1452. VALUEFLAG
  1453. FROM TP_PM_FQCITEMSDATA
  1454. WHERE TP_PM_FQCITEMSDATA.VALUEFLAG = 1
  1455. AND TRUNC(TP_PM_FQCITEMSDATA.CREATETIME) = TRUNC(SYSDATE)
  1456. AND TP_PM_FQCITEMSDATA.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1457. AND TP_PM_FQCITEMSDATA.ISQUALIFIED = 0
  1458. GROUP BY
  1459. VALUEFLAG
  1460. ) SUM1 ON SUM1.VALUEFLAG = TP_PM_FQCITEMSDATA.VALUEFLAG
  1461. LEFT JOIN (
  1462. SELECT
  1463. COUNT(1) SUMCOUNT1,
  1464. INSPECTITEM
  1465. FROM TP_PM_FQCITEMSDATA
  1466. WHERE TP_PM_FQCITEMSDATA.VALUEFLAG = 1
  1467. AND TRUNC(TP_PM_FQCITEMSDATA.CREATETIME) = TRUNC(SYSDATE)
  1468. AND TP_PM_FQCITEMSDATA.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1469. GROUP BY
  1470. INSPECTITEM
  1471. ) SUM2 ON SUM2.INSPECTITEM = TP_PM_FQCITEMSDATA.INSPECTITEM
  1472. WHERE TP_PM_FQCITEMSDATA.VALUEFLAG = 1
  1473. AND TRUNC(TP_PM_FQCITEMSDATA.CREATETIME)
  1474. = TRUNC(SYSDATE)
  1475. AND TP_PM_FQCITEMSDATA.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1476. AND TP_PM_FQCITEMSDATA.ISQUALIFIED = 0
  1477. GROUP BY
  1478. TP_PM_FQCITEMSDATA.INSPECTITEM,
  1479. SUM1.SUMCOUNT,
  1480. SUM2.SUMCOUNT1
  1481. ORDER BY
  1482. ALLCOUNT DESC
  1483. ) T
  1484. WHERE ROWNUM < 6";
  1485. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1486. string jsonStr = new JsonResult(dt).ToJson();
  1487. context.Response.Write(jsonStr);
  1488. }
  1489. if (context.Request["m"].ToString() == "Load10")
  1490. {
  1491. string sqlStr = @"WITH 半检检验数 AS (
  1492. SELECT
  1493. pd.GOODSCODE,
  1494. COUNT( DISTINCT pd.BARCODE) AS 数量
  1495. FROM TP_PM_PRODUCTIONDATA pd
  1496. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1497. WHERE pd.PROCEDUREID IN( 117,89,95,61)
  1498. AND pd.VALUEFLAG=1
  1499. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1500. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1501. GROUP BY pd.GOODSCODE
  1502. ),
  1503. 半检废品数 AS (
  1504. SELECT
  1505. pd.GOODSCODE,
  1506. COUNT( DISTINCT pd.BARCODE) AS 数量 FROM TP_PM_SEMICHECK pd
  1507. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1508. WHERE pd.PROCEDUREID IN( 117,89,95,61,90,96)
  1509. AND pd.VALUEFLAG=1
  1510. AND pd.GOODSLEVELTYPEID in(7,13,14)
  1511. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1512. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1513. GROUP BY pd.GOODSCODE
  1514. )
  1515. SELECT
  1516. *
  1517. FROM(
  1518. SELECT
  1519. '半检' 工序,
  1520. TO_CHAR(半检检验数.GOODSCODE) AS GOODSCODE,
  1521. 半检检验数.数量 AS 检验数,
  1522. DECODE(NVL(半检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(半检废品数.数量, 0)) /DECODE(NVL(半检检验数.数量, 1),0,1,NVL(半检检验数.数量, 1))) * 100,'fm99990.0')) AS 废品率
  1523. FROM 半检检验数
  1524. LEFT JOIN 半检废品数 ON 半检废品数.GOODSCODE=半检检验数.GOODSCODE
  1525. ORDER BY DECODE(NVL(半检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(半检废品数.数量, 0)) /DECODE(NVL(半检检验数.数量, 1),0,1,NVL(半检检验数.数量, 1))) * 100,'fm99990.0')) DESC
  1526. ) WHERE ROWNUM<6
  1527. ";
  1528. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1529. string jsonStr = new JsonResult(dt).ToJson();
  1530. context.Response.Write(jsonStr);
  1531. }
  1532. }
  1533. }
  1534. public bool IsReusable
  1535. {
  1536. get
  1537. {
  1538. return false;
  1539. }
  1540. }
  1541. }