rpt.ashx 75 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674
  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. SUM(
  818. CASE WHEN (
  819. ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 )
  820. AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1
  821. ) THEN
  822. 1 ELSE 0
  823. END
  824. ) ONESUBSTANDARDCOUNT,
  825. SUM(
  826. CASE WHEN (
  827. ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 )
  828. AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1
  829. ) THEN
  830. 1 ELSE 0
  831. END
  832. ) TWOSUBSTANDARDCOUNT,
  833. SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT
  834. FROM
  835. TP_PM_PRODUCTIONDATA PD
  836. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = PD.BARCODE
  837. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  838. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  839. WHERE
  840. PD.ACCOUNTID = 1
  841. AND (
  842. (
  843. 11 = 11
  844. AND (
  845. ( PD.PROCEDUREID = 11 AND PD.VALUEFLAG = '1' AND PD.ISREFIRE = '0' )
  846. OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1' )
  847. )
  848. )
  849. OR (
  850. 11 = 58
  851. AND (
  852. ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' )
  853. OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' )
  854. )
  855. )
  856. OR ( 11 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 11 )
  857. )
  858. AND PD.CREATETIME >= TRUNC( SYSDATE - 7 )
  859. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  860. ),
  861. 重烧出窑总数 AS (
  862. SELECT
  863. SUM(
  864. CASE WHEN (
  865. ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 )
  866. AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1
  867. ) THEN
  868. 1 ELSE 0
  869. END
  870. ) ONESUBSTANDARDCOUNT,
  871. SUM(
  872. CASE WHEN (
  873. ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 )
  874. AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1
  875. ) THEN
  876. 1 ELSE 0
  877. END
  878. ) TWOSUBSTANDARDCOUNT,
  879. --本烧三车间次品数
  880. SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT
  881. FROM
  882. TP_PM_PRODUCTIONDATA PD
  883. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = PD.BARCODE
  884. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  885. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  886. WHERE
  887. PD.ACCOUNTID = 1
  888. AND (
  889. (
  890. 58 = 11
  891. AND (
  892. ( PD.PROCEDUREID = 11 AND PD.VALUEFLAG = '1' AND PD.ISREFIRE = '0' )
  893. OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1' )
  894. )
  895. )
  896. OR (
  897. 58 = 58
  898. AND (
  899. ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' )
  900. OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' )
  901. )
  902. )
  903. OR ( 58 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 58 )
  904. )
  905. AND PD.CREATETIME >= TRUNC( SYSDATE - 7 )
  906. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  907. ),
  908. 本烧次品重烧数 AS (
  909. SELECT
  910. SUM(
  911. CASE WHEN (
  912. GOODSLEVELTYPEID = 7
  913. AND (
  914. ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  915. AND INSTR( GOODSTYPECODE, '001002' ) = 1
  916. )
  917. ) THEN
  918. 1 ELSE 0
  919. END
  920. ) ONESUBSTANDARDCOUNT,
  921. SUM(
  922. CASE WHEN (
  923. GOODSLEVELTYPEID = 7
  924. AND (
  925. ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  926. AND INSTR( GOODSTYPECODE, '001001' ) = 1
  927. )
  928. ) THEN
  929. 1 ELSE 0
  930. END
  931. ) TWOSUBSTANDARDCOUNT,
  932. SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT,
  933. SUM(
  934. CASE WHEN (
  935. GOODSLEVELTYPEID = 6
  936. AND (
  937. ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  938. AND INSTR( GOODSTYPECODE, '001002' ) = 1
  939. )
  940. ) THEN
  941. 1 ELSE 0
  942. END
  943. ) ONEREFIRECOUNT,
  944. SUM(
  945. CASE WHEN (
  946. GOODSLEVELTYPEID = 6
  947. AND (
  948. ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  949. AND INSTR( GOODSTYPECODE, '001001' ) = 1
  950. )
  951. ) THEN
  952. 1 ELSE 0
  953. END
  954. ) TWOREFIRECOUNT,
  955. --本烧三车间重烧数
  956. SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREEREFIRECOUNT
  957. FROM
  958. (
  959. SELECT DISTINCT
  960. PD.BARCODE,
  961. GT.GOODSTYPECODE,
  962. GDD.GROUTINGLINECODE,
  963. PD.GOODSLEVELTYPEID
  964. FROM
  965. TP_PM_PRODUCTIONDATA PD
  966. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  967. INNER JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  968. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  969. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  970. WHERE
  971. PD.VALUEFLAG = '1'
  972. AND PD.ACCOUNTID = 1
  973. AND LENGTH( PD.KILNCARBATCHNO ) > 0
  974. AND PD.CREATETIME >= TRUNC( SYSDATE - 7 )
  975. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  976. AND PD.MODELTYPE IN ( - 1, - 4, - 5 )
  977. AND PD.CHECKBATCHNO = 1
  978. AND ( ( 11 <> 58 AND PD.ISREFIRE = '0' ) OR ( 11 = 58 AND PD.ISREFIRE = '6' ) )
  979. AND GDD.RECYCLINGFLAG = '0'
  980. ) T
  981. ),
  982. 重烧次品重烧数 AS (
  983. SELECT
  984. SUM(
  985. CASE WHEN (
  986. GOODSLEVELTYPEID = 7
  987. AND (
  988. ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  989. AND INSTR( GOODSTYPECODE, '001002' ) = 1
  990. )
  991. ) THEN
  992. 1 ELSE 0
  993. END
  994. ) ONESUBSTANDARDCOUNT,
  995. SUM(
  996. CASE WHEN (
  997. GOODSLEVELTYPEID = 7
  998. AND (
  999. ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1000. AND INSTR( GOODSTYPECODE, '001001' ) = 1
  1001. )
  1002. ) THEN
  1003. 1 ELSE 0
  1004. END
  1005. ) TWOSUBSTANDARDCOUNT,
  1006. SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT,
  1007. SUM(
  1008. CASE WHEN (
  1009. GOODSLEVELTYPEID = 6
  1010. AND (
  1011. ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1012. AND INSTR( GOODSTYPECODE, '001002' ) = 1
  1013. )
  1014. ) THEN
  1015. 1 ELSE 0
  1016. END
  1017. ) ONEREFIRECOUNT,
  1018. SUM(
  1019. CASE WHEN (
  1020. GOODSLEVELTYPEID = 6
  1021. AND (
  1022. ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1023. AND INSTR( GOODSTYPECODE, '001001' ) = 1
  1024. )
  1025. ) THEN
  1026. 1 ELSE 0
  1027. END
  1028. ) TWOREFIRECOUNT,
  1029. SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREEREFIRECOUNT
  1030. FROM
  1031. (
  1032. SELECT DISTINCT
  1033. PD.BARCODE,
  1034. GT.GOODSTYPECODE,
  1035. GDD.GROUTINGLINECODE,
  1036. PD.GOODSLEVELTYPEID
  1037. FROM
  1038. TP_PM_PRODUCTIONDATA PD
  1039. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  1040. INNER JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  1041. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  1042. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1043. WHERE
  1044. PD.VALUEFLAG = '1'
  1045. AND PD.ACCOUNTID = 1
  1046. AND LENGTH( PD.KILNCARBATCHNO ) > 0
  1047. AND PD.CREATETIME >= TRUNC( SYSDATE - 7 )
  1048. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  1049. AND PD.MODELTYPE IN ( - 1, - 4, - 5 )
  1050. AND PD.CHECKBATCHNO = 1
  1051. AND ( ( 58 <> 58 AND PD.ISREFIRE = '0' ) OR ( 58 = 58 AND PD.ISREFIRE = '6' ) )
  1052. AND GDD.RECYCLINGFLAG = '0'
  1053. ) T
  1054. ) SELECT
  1055. 本烧出窑总数.ONESUBSTANDARDCOUNT AS 一车间,
  1056. 本烧出窑总数.TWOSUBSTANDARDCOUNT AS 二车间,
  1057. 本烧出窑总数.THREESUBSTANDARDCOUNT AS 三车间
  1058. FROM
  1059. 本烧出窑总数 UNION ALL
  1060. SELECT
  1061. ROUND( ( ( 本烧出窑总数.ONESUBSTANDARDCOUNT - 本烧次品重烧数.ONESUBSTANDARDCOUNT - 本烧次品重烧数.ONEREFIRECOUNT ) / 本烧出窑总数.ONESUBSTANDARDCOUNT ) * 100, 1 ) AS 一车间,
  1062. ROUND( ( ( 本烧出窑总数.TWOSUBSTANDARDCOUNT - 本烧次品重烧数.TWOSUBSTANDARDCOUNT - 本烧次品重烧数.TWOREFIRECOUNT ) / 本烧出窑总数.TWOSUBSTANDARDCOUNT ) * 100, 1 ) AS 二车间,
  1063. ROUND( ( ( 本烧出窑总数.THREESUBSTANDARDCOUNT - 本烧次品重烧数.THREESUBSTANDARDCOUNT - 本烧次品重烧数.THREEREFIRECOUNT ) / 本烧出窑总数.THREESUBSTANDARDCOUNT ) * 100, 1 ) AS 三车间
  1064. FROM
  1065. 本烧出窑总数
  1066. LEFT JOIN 本烧次品重烧数 ON 1 = 1 UNION ALL
  1067. SELECT
  1068. ROUND(
  1069. (
  1070. ( ( 本烧出窑总数.ONESUBSTANDARDCOUNT -本烧次品重烧数.ONESUBSTANDARDCOUNT -本烧次品重烧数.ONEREFIRECOUNT ) + ( 重烧出窑总数.ONESUBSTANDARDCOUNT -重烧次品重烧数.ONESUBSTANDARDCOUNT -重烧次品重烧数.ONEREFIRECOUNT ) ) /本烧出窑总数.ONESUBSTANDARDCOUNT
  1071. ) * 100,
  1072. 1
  1073. ) AS 一车间,
  1074. ROUND(
  1075. (
  1076. ( ( 本烧出窑总数.TWOSUBSTANDARDCOUNT -本烧次品重烧数.TWOSUBSTANDARDCOUNT -本烧次品重烧数.TWOREFIRECOUNT ) + ( 重烧出窑总数.TWOSUBSTANDARDCOUNT -重烧次品重烧数.TWOSUBSTANDARDCOUNT -重烧次品重烧数.TWOREFIRECOUNT ) ) /本烧出窑总数.TWOSUBSTANDARDCOUNT
  1077. ) * 100,
  1078. 1
  1079. ) AS 二车间,
  1080. ROUND(
  1081. (
  1082. ( ( 本烧出窑总数.THREESUBSTANDARDCOUNT -本烧次品重烧数.THREESUBSTANDARDCOUNT -本烧次品重烧数.THREEREFIRECOUNT ) + ( 重烧出窑总数.THREESUBSTANDARDCOUNT -重烧次品重烧数.THREESUBSTANDARDCOUNT -重烧次品重烧数.THREEREFIRECOUNT ) ) /本烧出窑总数.THREESUBSTANDARDCOUNT
  1083. ) * 100,
  1084. 1
  1085. ) AS 三车间
  1086. FROM
  1087. 本烧出窑总数
  1088. LEFT JOIN 本烧次品重烧数 ON 1 = 1
  1089. LEFT JOIN 重烧出窑总数 ON 1 = 1
  1090. LEFT JOIN 重烧次品重烧数 ON 1 = 1";
  1091. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1092. string jsonStr = new JsonResult(dt).ToJson();
  1093. context.Response.Write(jsonStr);
  1094. }
  1095. if (context.Request["m"].ToString() == "Load07")
  1096. {
  1097. string sqlStr = @"SELECT
  1098. --成型小件
  1099. MAX( (
  1100. SELECT
  1101. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  1102. FROM TP_PM_GROUTINGDAILYDETAIL GDD
  1103. INNER JOIN TP_MST_GOODS G ON GDD.GOODSID = G.GOODSID
  1104. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1105. WHERE GDD.VALUEFLAG = 1
  1106. AND GDD.CREATETIME >= TRUNC( sysdate - 7 )
  1107. AND TRUNC( GDD.CREATETIME ) < TRUNC( SYSDATE )
  1108. ) ) AS SMALLGDD,
  1109. --成型大件
  1110. MAX( (
  1111. SELECT
  1112. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  1113. FROM TP_PM_GROUTINGDAILYDETAIL GDD
  1114. INNER JOIN TP_MST_GOODS G ON GDD.GOODSID = G.GOODSID
  1115. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1116. WHERE GDD.VALUEFLAG = 1
  1117. AND GDD.CREATETIME >= TRUNC( sysdate - 7 )
  1118. AND TRUNC( GDD.CREATETIME ) < TRUNC( SYSDATE )
  1119. AND SUBSTR(GDD.GROUTINGLINECODE, 0, 4) NOT IN ('C05B','C05C')
  1120. ) ) AS BIGGDD,
  1121. --半检小件
  1122. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (1,17,118,92,88) THEN 1 ELSE 0 END ) AS SMALLHALF,
  1123. --半检大件
  1124. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (1,17,118,92,88) THEN 1 ELSE 0 END ) AS BIGHALF,
  1125. --施釉小件
  1126. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (65,99) THEN 1 ELSE 0 END ) AS SMALLGLAZE,
  1127. --施釉大件
  1128. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (65,99) THEN 1 ELSE 0 END ) AS BIGGLAZE,
  1129. --烧成小件
  1130. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (10,103) THEN 1 ELSE 0 END ) AS SMALLKILN,
  1131. --烧成大件
  1132. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (10,103) THEN 1 ELSE 0 END ) AS BIGKILN,
  1133. --成检小件
  1134. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (11,104) THEN 1 ELSE 0 END ) AS SMALLCHECK,
  1135. --成检大件
  1136. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (11,104) THEN 1 ELSE 0 END ) AS BIGCHECK,
  1137. --包装小件
  1138. MAX( (
  1139. SELECT
  1140. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  1141. FROM TP_PM_FINISHEDPRODUCT F
  1142. INNER JOIN TP_MST_GOODS G ON F.GOODSID = G.GOODSID
  1143. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1144. WHERE F.VALUEFLAG = 1
  1145. AND F.CREATETIME >= TRUNC( sysdate - 7 )
  1146. AND TRUNC( F.CREATETIME ) < TRUNC( SYSDATE )
  1147. ) ) AS SMALLPACK,
  1148. MAX( (
  1149. SELECT
  1150. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  1151. FROM TP_PM_FINISHEDPRODUCT F
  1152. INNER JOIN TP_MST_GOODS G ON F.GOODSID = G.GOODSID
  1153. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1154. WHERE F.VALUEFLAG = 1
  1155. AND F.CREATETIME >= TRUNC( sysdate - 7 )
  1156. AND TRUNC( F.CREATETIME ) < TRUNC( SYSDATE )
  1157. ) ) AS BIGPACK
  1158. FROM
  1159. TP_PM_PRODUCTIONDATA PD
  1160. INNER JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
  1161. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1162. WHERE
  1163. PD.VALUEFLAG = 1
  1164. AND PD.CREATETIME >= TRUNC( sysdate - 7 )
  1165. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  1166. ";
  1167. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1168. string jsonStr = new JsonResult(dt).ToJson();
  1169. context.Response.Write(jsonStr);
  1170. }
  1171. if (context.Request["m"].ToString() == "Load06")
  1172. {
  1173. // string sqlStr = @"WITH 一车间半检产量 AS (
  1174. // SELECT
  1175. // COUNT( DISTINCT PD.BARCODE ) AS ONEHALFCHECK
  1176. // FROM
  1177. // TP_PM_PRODUCTIONDATA PD
  1178. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = PD.GOODSID
  1179. // LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID = GOODS.GOODSTYPEID
  1180. // WHERE
  1181. // PD.VALUEFLAG = 1
  1182. // AND PD.PROCEDUREID IN ( 1, 17 )
  1183. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1184. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1185. // AND INSTR( GTP.GOODSTYPECODE, '001002' ) = 1
  1186. // ),
  1187. // 二车间半检产量 AS (
  1188. // SELECT
  1189. // COUNT( DISTINCT PD.BARCODE ) AS TWOHALFCHECK
  1190. // FROM
  1191. // TP_PM_PRODUCTIONDATA PD
  1192. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = PD.GOODSID
  1193. // LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID = GOODS.GOODSTYPEID
  1194. // WHERE
  1195. // PD.VALUEFLAG = 1
  1196. // AND PD.PROCEDUREID IN ( 1, 17 )
  1197. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1198. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1199. // AND INSTR( GTP.GOODSTYPECODE, '001001' ) = 1
  1200. // ),
  1201. // 三车间半检产量 AS (
  1202. // SELECT
  1203. // COUNT( DISTINCT PD.BARCODE ) AS THREEHALFCHECK
  1204. // FROM
  1205. // TP_PM_PRODUCTIONDATA PD
  1206. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = PD.GOODSID
  1207. // LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID = GOODS.GOODSTYPEID
  1208. // WHERE
  1209. // PD.VALUEFLAG = 1
  1210. // AND PD.PROCEDUREID IN ( 118, 92, 88 )
  1211. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1212. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1213. // ),
  1214. // 车间干补数 AS (
  1215. // SELECT
  1216. // 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,
  1217. // 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,
  1218. // SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) AS THREESPECIALREPAIR
  1219. // FROM
  1220. // TP_PM_PRODUCTIONDATA PD
  1221. // LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  1222. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = GDD.GOODSID
  1223. // LEFT JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = GOODS.GOODSTYPEID
  1224. // WHERE
  1225. // PD.PROCEDUREID = 18
  1226. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1227. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1228. // ),
  1229. // 本烧出窑总数 AS (
  1230. // SELECT
  1231. // --本烧一车间数
  1232. // 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,
  1233. // --本烧二车间数
  1234. // 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,
  1235. // --本烧三车间数
  1236. // SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT
  1237. // FROM
  1238. // TP_PM_PRODUCTIONDATA PD
  1239. // LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = PD.BARCODE
  1240. // INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  1241. // INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1242. // WHERE
  1243. // PD.ACCOUNTID = 1
  1244. // AND (
  1245. // ( 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' ) ) )
  1246. // OR
  1247. // ( 11 = 58 AND ( ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' ) OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' ) ) )
  1248. // OR
  1249. // ( 11 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 11 )
  1250. // )
  1251. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1252. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1253. // ),
  1254. // 车间冷补数 AS (
  1255. // SELECT
  1256. // 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,
  1257. // 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,
  1258. // SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) AS THREELENGBU
  1259. // FROM
  1260. // TP_PM_PRODUCTIONDATA PD
  1261. // LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  1262. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = GDD.GOODSID
  1263. // LEFT JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = GOODS.GOODSTYPEID
  1264. // WHERE
  1265. // PD.PROCEDUREID IN (113,135)
  1266. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1267. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1268. // )
  1269. // SELECT
  1270. // TO_CHAR(ROUND(车间干补数.ONESPECIALREPAIR / 一车间半检产量.ONEHALFCHECK, 6) * 100,'fm99990.0') AS ONESPECIALREPAIR,
  1271. // TO_CHAR(ROUND(车间干补数.TWOSPECIALREPAIR /二车间半检产量.TWOHALFCHECK, 6) * 100,'fm99990.0') AS TWOSPECIALREPAIR,
  1272. // TO_CHAR(ROUND(车间干补数.THREESPECIALREPAIR / 三车间半检产量.THREEHALFCHECK, 6) * 100,'fm99990.0') AS THREESPECIALREPAIR,
  1273. // TO_CHAR(ROUND(车间冷补数.ONELENGBU / 本烧出窑总数.ONESUBSTANDARDCOUNT, 6) * 100,'fm99990.0') AS ONELENGBU,
  1274. // TO_CHAR(ROUND(车间冷补数.TWOLENGBU / 本烧出窑总数.TWOSUBSTANDARDCOUNT, 6) * 100,'fm99990.0') AS TWOLENGBU,
  1275. // TO_CHAR(ROUND(车间冷补数.THREELENGBU / 本烧出窑总数.THREESUBSTANDARDCOUNT, 6) * 100,'fm99990.0') AS THREELENGBU
  1276. // FROM
  1277. // 车间干补数
  1278. // INNER JOIN 车间冷补数 ON 1 = 1
  1279. // LEFT JOIN 一车间半检产量 ON 1 = 1
  1280. // LEFT JOIN 二车间半检产量 ON 1 = 1
  1281. // LEFT JOIN 三车间半检产量 ON 1 = 1
  1282. // LEFT JOIN 本烧出窑总数 ON 1 = 1
  1283. //";
  1284. string sqlStr = @"with 成检检验数 AS (
  1285. SELECT
  1286. pd.GOODSCODE,
  1287. COUNT( DISTINCT pd.BARCODE) AS 数量 FROM TP_PM_PRODUCTIONDATA pd
  1288. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1289. WHERE pd.PROCEDUREID IN( 125,131)
  1290. AND pd.VALUEFLAG=1
  1291. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1292. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1293. GROUP BY pd.GOODSCODE
  1294. ),成检废品数 AS (
  1295. SELECT
  1296. pd.GOODSCODE,
  1297. COUNT( DISTINCT pd.BARCODE) AS 数量 FROM TP_PM_PRODUCTIONDATA pd
  1298. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1299. WHERE pd.PROCEDUREID IN( 125,131)
  1300. AND pd.VALUEFLAG=1
  1301. AND pd.GOODSLEVELTYPEID in(7,13)
  1302. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1303. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1304. GROUP BY pd.GOODSCODE
  1305. )
  1306. SELECT
  1307. *
  1308. FROM(
  1309. SELECT
  1310. '成检' 工序,
  1311. TO_CHAR(成检检验数.GOODSCODE) AS GOODSCODE,
  1312. 成检检验数.数量 AS 检验数,
  1313. DECODE(NVL(成检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(成检废品数.数量, 0)) /DECODE(NVL(成检检验数.数量, 1),0,1,NVL(成检检验数.数量, 1))) * 100,'fm99990.0')) AS 废品率
  1314. FROM 成检检验数
  1315. LEFT JOIN 成检废品数 ON 成检废品数.GOODSCODE=成检检验数.GOODSCODE
  1316. ORDER BY DECODE(NVL(成检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(成检废品数.数量, 0)) /DECODE(NVL(成检检验数.数量, 1),0,1,NVL(成检检验数.数量, 1))) * 100,'fm99990.0')) DESC
  1317. ) WHERE ROWNUM<6";
  1318. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1319. string jsonStr = new JsonResult(dt).ToJson();
  1320. context.Response.Write(jsonStr);
  1321. }
  1322. if (context.Request["m"].ToString() == "Load09")
  1323. {
  1324. string sqlStr = @"SELECT
  1325. TO_CHAR(TT.plandate, 'MM-DD')AS plandate ,
  1326. TT.INSPECTIONQUANTITY,
  1327. 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,
  1328. 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
  1329. FROM (
  1330. SELECT
  1331. t.plandate
  1332. ,SUM(t.planquantity) PLANINSPECTIONQUANTITY
  1333. ,SUM(t.INSPECTIONQUANTITY) INSPECTIONQUANTITY
  1334. ,SUM(t.unqualifiedquantity) BUHEGESHU
  1335. FROM (SELECT
  1336. fp.plandate
  1337. ,SUM(fp.planinspectionquantity) planquantity
  1338. ,SUM(fp.inspectionquantity) INSPECTIONQUANTITY
  1339. ,COUNT(DISTINCT fd.barcode) unqualifiedquantity
  1340. FROM tp_pm_fqcitemsplan fp
  1341. LEFT JOIN tp_pm_fqcitemsdata fd
  1342. ON fd.planid = fp.planid
  1343. AND fd.isqualified = 0
  1344. WHERE fp.plandate > TRUNC(SYSDATE - 7)
  1345. AND fp.plandate <= TRUNC(SYSDATE)
  1346. AND fp.configtype IN ('大件', '小件')
  1347. AND fp.planinspectionquantity <> 0
  1348. GROUP BY fp.plandate) t
  1349. GROUP BY t.plandate
  1350. ) TT ORDER BY plandate ";
  1351. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1352. string jsonStr = new JsonResult(dt).ToJson();
  1353. context.Response.Write(jsonStr);
  1354. }
  1355. if (context.Request["m"].ToString() == "Load04")
  1356. {
  1357. string sqlStr = @"SELECT
  1358. *
  1359. FROM
  1360. (
  1361. SELECT
  1362. ne.GOODCODE,
  1363. COUNT( DISTINCT FD.BARCODE ) AS COUNTS
  1364. FROM
  1365. TP_PM_FINISHEDPRODUCT FD
  1366. INNER JOIN TP_MST_GOODSNEW ne ON ne.GOODCODE = FD.GOODSCODE
  1367. WHERE
  1368. FD.VALUEFLAG = 1
  1369. AND FD.CREATETIME >= TRUNC( SYSDATE - 7 )
  1370. GROUP BY
  1371. ne.GOODCODE
  1372. )
  1373. WHERE
  1374. ROWNUM <6";
  1375. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1376. string jsonStr = new JsonResult(dt).ToJson();
  1377. context.Response.Write(jsonStr);
  1378. }
  1379. #region 模具库存周转率,产品 SKU 周转率
  1380. //if (context.Request["m"].ToString() == "Load10") 请勿删除 根据要求后期可能会再次使用
  1381. // { List<CDAParameter> sqlPara = new List<CDAParameter>();
  1382. // sqlPara.Add(new CDAParameter("DATEBEGIN", DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")+ " 00:00:00", DataType.DateTime));
  1383. // sqlPara.Add(new CDAParameter("DATEEND", DateTime.Now.AddDays(0).ToString("yyyy-MM-dd")+ " 23:59:59", DataType.DateTime));
  1384. // string sqlStr = @"SELECT
  1385. // *
  1386. // FROM
  1387. // (
  1388. // SELECT
  1389. // TO_CHAR( '模具' || GOODSCODE ) AS 地点,
  1390. // GOODSCODE,
  1391. // 时间差值,
  1392. // to_char( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) / 24 ), 'fm9999990.0' ) ) 周转周期
  1393. // FROM
  1394. // (
  1395. // SELECT
  1396. // mch.GOODSCODE,
  1397. // SUM( mch.时间差 ) AS 时间差值,
  1398. // COUNT( DISTINCT goodsmould.MOULDCODE ) AS 产量
  1399. // FROM
  1400. // (
  1401. // SELECT
  1402. // mch.MOULDCODE,
  1403. // mch.GOODSCODE,
  1404. // TO_CHAR( ( ceil( ( ( mch.CREATETIME - mchh.CREATETIME ) ) * 24 ) ), 'fm9999990' ) AS 时间差
  1405. // FROM
  1406. // tp_pc_mouldchangehistory mch
  1407. // LEFT JOIN tp_pc_mouldchangehistory mchh ON mchh.MOULDCODE = mch.MOULDCODE
  1408. // AND mchh.operationtype = 1
  1409. // WHERE
  1410. // mch.accountid = 1
  1411. // AND mch.operationtype = 6 --operationtype=1 新增入库 operationtype=6 库存上线(出库) -1为变更型号
  1412. // AND mch.operationtype >- 1
  1413. // AND mch.createtime >= @DATEBEGIN@
  1414. // AND mch.createtime <= @DATEEND@
  1415. // ) mch
  1416. // LEFT JOIN tp_pc_mouldchangehistory goodsmould ON goodsmould.MOULDCODE = mch.MOULDCODE
  1417. // WHERE
  1418. // goodsmould.accountid = 1
  1419. // AND goodsmould.operationtype = 6
  1420. // AND goodsmould.operationtype >- 1
  1421. // AND goodsmould.createtime >= @DATEBEGIN@
  1422. // AND goodsmould.createtime <= @DATEEND@
  1423. // GROUP BY
  1424. // mch.GOODSCODE
  1425. // ORDER BY
  1426. // SUM( mch.时间差 ) DESC
  1427. // )
  1428. // ORDER BY
  1429. // TO_NUMBER( ( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) ), 'fm9999990.0000' ) ) ) DESC
  1430. // )
  1431. // WHERE
  1432. // ROWNUM <= 4 UNION ALL
  1433. // SELECT
  1434. // *
  1435. // FROM
  1436. // (
  1437. // SELECT
  1438. // TO_CHAR( '精坯' || GOODSCODE ) AS 地点,
  1439. // GOODSCODE,
  1440. // 时间差值,
  1441. // to_char( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) / 24 ), 'fm9999990.0' ) ) 周转周期
  1442. // FROM
  1443. // (
  1444. // SELECT
  1445. // inoutPD.GOODSCODE,
  1446. // SUM( 时间差 ) AS 时间差值,
  1447. // COUNT( DISTINCT GOODSPD.BARCODE ) 产量
  1448. // FROM
  1449. // (
  1450. // SELECT
  1451. // OUTPD.BARCODE,
  1452. // OUTPD.GOODSCODE,
  1453. // TO_CHAR( ( ceil( ( ( OUTPD.CREATETIME - INPD.CREATETIME ) * 24 ) ) ), 'fm9999990' ) AS 时间差
  1454. // FROM
  1455. // TP_PM_PRODUCTIONDATA OUTPD
  1456. // INNER JOIN TP_PM_PRODUCTIONDATA INPD ON OUTPD.BARCODE = INPD.BARCODE
  1457. // AND INPD.PROCEDUREID IN ( 53, 97 )
  1458. // AND INPD.VALUEFLAG = 1
  1459. // WHERE
  1460. // OUTPD.PROCEDUREID IN ( 119, 64, 81 )
  1461. // AND OUTPD.VALUEFLAG = 1
  1462. // AND OUTPD.createtime >= @DATEBEGIN@
  1463. // AND OUTPD.createtime <= @DATEEND@
  1464. // ) inoutPD
  1465. // INNER JOIN TP_PM_PRODUCTIONDATA GOODSPD ON GOODSPD.BARCODE = inoutPD.BARCODE
  1466. // WHERE
  1467. // GOODSPD.PROCEDUREID IN ( 119, 64, 81 )
  1468. // AND GOODSPD.VALUEFLAG = 1
  1469. // AND GOODSPD.createtime >= @DATEBEGIN@
  1470. // AND GOODSPD.createtime <= @DATEEND@
  1471. // GROUP BY
  1472. // inoutPD.GOODSCODE
  1473. // )
  1474. // ORDER BY
  1475. // TO_NUMBER( ( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) ), 'fm9999990.0000' ) ) ) DESC
  1476. // )
  1477. // WHERE
  1478. // ROWNUM <= 3 UNION ALL
  1479. // SELECT
  1480. // *
  1481. // FROM
  1482. // (
  1483. // SELECT
  1484. // TO_CHAR( '施釉' || GOODSCODE ) AS 地点,
  1485. // GOODSCODE,
  1486. // 时间差值,
  1487. // to_char( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) / 24 ), 'fm9999990.0' ) ) 周转周期
  1488. // FROM
  1489. // (
  1490. // SELECT
  1491. // inoutPD.GOODSCODE,
  1492. // SUM( 时间差 ) AS 时间差值,
  1493. // COUNT( DISTINCT GOODSPD.BARCODE ) 产量
  1494. // FROM
  1495. // (
  1496. // SELECT
  1497. // OUTPD.BARCODE,
  1498. // OUTPD.GOODSCODE,
  1499. // TO_CHAR( ( ceil( ( ( OUTPD.CREATETIME - INPD.CREATETIME ) * 24 ) ) ), 'fm9999990' ) AS 时间差
  1500. // FROM
  1501. // TP_PM_PRODUCTIONDATA OUTPD
  1502. // INNER JOIN TP_PM_PRODUCTIONDATA INPD ON OUTPD.BARCODE = INPD.BARCODE
  1503. // AND INPD.PROCEDUREID IN ( 99, 65 )
  1504. // AND INPD.VALUEFLAG = 1
  1505. // WHERE
  1506. // OUTPD.PROCEDUREID IN ( 5, 101 )
  1507. // AND OUTPD.VALUEFLAG = 1
  1508. // AND OUTPD.createtime >= @DATEBEGIN@
  1509. // AND OUTPD.createtime <= @DATEEND@
  1510. // ) inoutPD
  1511. // INNER JOIN TP_PM_PRODUCTIONDATA GOODSPD ON GOODSPD.BARCODE = inoutPD.BARCODE
  1512. // WHERE
  1513. // GOODSPD.PROCEDUREID IN ( 5, 101 )
  1514. // AND GOODSPD.VALUEFLAG = 1
  1515. // AND GOODSPD.createtime >= @DATEBEGIN@
  1516. // AND GOODSPD.createtime <= @DATEEND@
  1517. // GROUP BY
  1518. // inoutPD.GOODSCODE
  1519. // )
  1520. // ORDER BY
  1521. // TO_NUMBER( ( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) ), 'fm9999990.0000' ) ) ) DESC
  1522. // )
  1523. // WHERE
  1524. // ROWNUM <=3";
  1525. // DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
  1526. // string jsonStr = new JsonResult(dt).ToJson();
  1527. // context.Response.Write(jsonStr);
  1528. // }
  1529. #endregion
  1530. if (context.Request["m"].ToString() == "Load91")
  1531. {
  1532. string sqlStr = @"
  1533. SELECT
  1534. TO_char(T.ALLCOUNT) AS 缺陷数,
  1535. TO_char(T.INSPECTITEM) AS 缺陷名称,
  1536. TO_char(T.SUMCOUNT)缺陷总数,
  1537. TO_char(T.SUMCOUNT1)抽检数,
  1538. 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 缺陷占比
  1539. FROM (
  1540. SELECT
  1541. COUNT(1) ALLCOUNT,
  1542. TP_PM_FQCITEMSDATA.INSPECTITEM,
  1543. SUM1.SUMCOUNT,
  1544. SUM2.SUMCOUNT1
  1545. FROM TP_PM_FQCITEMSDATA
  1546. LEFT JOIN (
  1547. SELECT
  1548. COUNT(1) SUMCOUNT,
  1549. VALUEFLAG
  1550. FROM TP_PM_FQCITEMSDATA
  1551. WHERE TP_PM_FQCITEMSDATA.VALUEFLAG = 1
  1552. AND TRUNC(TP_PM_FQCITEMSDATA.CREATETIME) = TRUNC(SYSDATE)
  1553. AND TP_PM_FQCITEMSDATA.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1554. AND TP_PM_FQCITEMSDATA.ISQUALIFIED = 0
  1555. GROUP BY
  1556. VALUEFLAG
  1557. ) SUM1 ON SUM1.VALUEFLAG = TP_PM_FQCITEMSDATA.VALUEFLAG
  1558. LEFT JOIN (
  1559. SELECT
  1560. COUNT(1) SUMCOUNT1,
  1561. INSPECTITEM
  1562. FROM TP_PM_FQCITEMSDATA
  1563. WHERE TP_PM_FQCITEMSDATA.VALUEFLAG = 1
  1564. AND TRUNC(TP_PM_FQCITEMSDATA.CREATETIME) = TRUNC(SYSDATE)
  1565. AND TP_PM_FQCITEMSDATA.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1566. GROUP BY
  1567. INSPECTITEM
  1568. ) SUM2 ON SUM2.INSPECTITEM = TP_PM_FQCITEMSDATA.INSPECTITEM
  1569. WHERE TP_PM_FQCITEMSDATA.VALUEFLAG = 1
  1570. AND TRUNC(TP_PM_FQCITEMSDATA.CREATETIME)
  1571. = TRUNC(SYSDATE)
  1572. AND TP_PM_FQCITEMSDATA.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1573. AND TP_PM_FQCITEMSDATA.ISQUALIFIED = 0
  1574. GROUP BY
  1575. TP_PM_FQCITEMSDATA.INSPECTITEM,
  1576. SUM1.SUMCOUNT,
  1577. SUM2.SUMCOUNT1
  1578. ORDER BY
  1579. ALLCOUNT DESC
  1580. ) T
  1581. WHERE ROWNUM < 6";
  1582. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1583. string jsonStr = new JsonResult(dt).ToJson();
  1584. context.Response.Write(jsonStr);
  1585. }
  1586. if (context.Request["m"].ToString() == "Load10")
  1587. {
  1588. string sqlStr = @"WITH 半检检验数 AS (
  1589. SELECT
  1590. pd.GOODSCODE,
  1591. COUNT( DISTINCT pd.BARCODE) AS 数量
  1592. FROM TP_PM_PRODUCTIONDATA pd
  1593. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1594. WHERE pd.PROCEDUREID IN( 117,89,95,61)
  1595. AND pd.VALUEFLAG=1
  1596. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1597. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1598. GROUP BY pd.GOODSCODE
  1599. ),
  1600. 半检废品数 AS (
  1601. SELECT
  1602. pd.GOODSCODE,
  1603. COUNT( DISTINCT pd.BARCODE) AS 数量 FROM TP_PM_SEMICHECK pd
  1604. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1605. WHERE pd.PROCEDUREID IN( 117,89,95,61,90,96)
  1606. AND pd.VALUEFLAG=1
  1607. AND pd.GOODSLEVELTYPEID in(7,13,14)
  1608. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1609. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1610. GROUP BY pd.GOODSCODE
  1611. )
  1612. SELECT
  1613. *
  1614. FROM(
  1615. SELECT
  1616. '半检' 工序,
  1617. TO_CHAR(半检检验数.GOODSCODE) AS GOODSCODE,
  1618. 半检检验数.数量 AS 检验数,
  1619. DECODE(NVL(半检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(半检废品数.数量, 0)) /DECODE(NVL(半检检验数.数量, 1),0,1,NVL(半检检验数.数量, 1))) * 100,'fm99990.0')) AS 废品率
  1620. FROM 半检检验数
  1621. LEFT JOIN 半检废品数 ON 半检废品数.GOODSCODE=半检检验数.GOODSCODE
  1622. ORDER BY DECODE(NVL(半检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(半检废品数.数量, 0)) /DECODE(NVL(半检检验数.数量, 1),0,1,NVL(半检检验数.数量, 1))) * 100,'fm99990.0')) DESC
  1623. ) WHERE ROWNUM<6
  1624. ";
  1625. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1626. string jsonStr = new JsonResult(dt).ToJson();
  1627. context.Response.Write(jsonStr);
  1628. }
  1629. }
  1630. }
  1631. public bool IsReusable
  1632. {
  1633. get
  1634. {
  1635. return false;
  1636. }
  1637. }
  1638. }