rpt.ashx 96 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041
  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. using System.Linq;
  13. public class rpt : IHttpHandler, IReadOnlySessionState
  14. {
  15. public void ProcessRequest(HttpContext context)
  16. {
  17. context.Response.ContentType = "text/plain";
  18. using (IDataAccess conn = DataAccess.Create())
  19. {
  20. //成检大小件TOP3缺陷占比
  21. if (context.Request["m"].ToString() == "Load03")
  22. {
  23. string sqlStr = @"
  24. WITH 出窑数 AS (
  25. SELECT
  26. SUM(DECODE(T.OUTKILNCOUNT, 1, 1, 0)) ONEOUTKILNCOUNT,
  27. SUM(DECODE(T.OUTKILNCOUNT, 2, 1, 0)) TWOOUTKILNCOUNT,
  28. SUM(DECODE(T.OUTKILNCOUNT, 3, 1, 0)) THREEOUTKILNCOUNT
  29. FROM (
  30. SELECT
  31. CASE WHEN ((INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) AND INSTR(GT.GOODSTYPECODE, '001002') = 1) THEN 1
  32. WHEN ((INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) AND INSTR(GT.GOODSTYPECODE, '001001') = 1) THEN 2
  33. WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN 3
  34. ELSE 0 END OUTKILNCOUNT
  35. FROM
  36. TP_PM_PRODUCTIONDATA PD
  37. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.GROUTINGDAILYDETAILID = PD.GROUTINGDAILYDETAILID
  38. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  39. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  40. WHERE
  41. (( PD.PROCEDUREID <> 104 AND PD.VALUEFLAG = '1' ) OR ( PD.PROCEDUREID = 104 AND PD.CHECKFLAG = '1' ))
  42. AND (11 IS NULL OR ((11 = 11 AND ( ( PD.PROCEDUREID = 11 ) OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' ) ) ) ) )
  43. AND ( 0 IS NULL OR GDD.RECYCLINGFLAG = 0 )
  44. AND PD.ACCOUNTID = 1
  45. AND PD.PROCEDUREID IN ( 11, 104 )
  46. AND PD.KILNID IN ( 1, 2, 5 )
  47. AND PD.CREATETIME >= TRUNC(sysdate-7)
  48. AND TRUNC(PD.CREATETIME)<=TRUNC(SYSDATE)
  49. ) T
  50. ),
  51. 一车间前三缺陷数量 AS(
  52. SELECT
  53. *
  54. FROM(
  55. SELECT
  56. '一车间'AS workshops,
  57. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  58. 缺陷名称
  59. FROM
  60. (
  61. SELECT
  62. DISTINCT
  63. defect.BARCODE 缺陷条码,
  64. df.S_NAME 缺陷名称
  65. FROM TP_PM_DEFECT defect
  66. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=defect.barcode
  67. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  68. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  69. LEFT JOIN TP_MST_DEFECT df ON df.defectid =defect.defectID
  70. WHERE defect.CREATETIME>=TRUNC(sysdate-7)
  71. AND TRUNC(defect.CREATETIME)<=TRUNC(SYSDATE)
  72. AND defect.VALUEFLAG=1
  73. AND ((INSTR(gdd.GROUTINGLINECODE, 'A') = 1 OR INSTR(gdd.GROUTINGLINECODE, 'D') = 1) AND INSTR(GTP.GOODSTYPECODE, '001002') = 1)
  74. AND gdd.VALUEFLAG=1
  75. )
  76. GROUP BY 缺陷名称
  77. ORDER BY COUNT( 缺陷条码) DESC
  78. )
  79. WHERE ROWNUM<=3
  80. )
  81. ,
  82. 二车间前三缺陷数量 AS(
  83. SELECT
  84. *
  85. FROM(
  86. SELECT
  87. '二车间'AS workshops,
  88. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  89. 缺陷名称
  90. FROM
  91. (
  92. SELECT
  93. DISTINCT
  94. defect.BARCODE 缺陷条码,
  95. df.S_NAME 缺陷名称
  96. FROM TP_PM_DEFECT defect
  97. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=defect.barcode
  98. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  99. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  100. LEFT JOIN TP_MST_DEFECT df ON df.defectid =defect.defectID
  101. WHERE defect.CREATETIME>=TRUNC(sysdate-7)
  102. AND TRUNC(defect.CREATETIME)<=TRUNC(SYSDATE)
  103. AND defect.VALUEFLAG=1
  104. AND ((INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1) AND INSTR(GTP.GOODSTYPECODE, '001001') = 1)
  105. AND gdd.VALUEFLAG=1
  106. )
  107. GROUP BY 缺陷名称
  108. ORDER BY COUNT( 缺陷条码) DESC
  109. )
  110. WHERE ROWNUM<=3
  111. ),
  112. 三车间前三缺陷数量 AS(
  113. SELECT
  114. *
  115. FROM(
  116. SELECT
  117. '三车间' AS workshops,
  118. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  119. 缺陷名称
  120. FROM
  121. (
  122. SELECT
  123. DISTINCT
  124. defect.BARCODE 缺陷条码,
  125. df.S_NAME 缺陷名称
  126. FROM TP_PM_DEFECT defect
  127. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=defect.barcode
  128. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  129. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  130. LEFT JOIN TP_MST_DEFECT df ON df.defectid =defect.defectID
  131. WHERE defect.CREATETIME>=TRUNC(sysdate-7)
  132. AND TRUNC(defect.CREATETIME)<=TRUNC(SYSDATE)
  133. AND defect.VALUEFLAG=1
  134. AND INSTR(GDD.GROUTINGLINECODE, 'C') = 1
  135. AND gdd.VALUEFLAG=1
  136. )
  137. GROUP BY 缺陷名称
  138. ORDER BY COUNT( 缺陷条码) DESC
  139. )
  140. WHERE ROWNUM<=3
  141. )
  142. SELECT
  143. 一车间前三缺陷数量.workshops,
  144. DECODE( NVL( 一车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 一车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 出窑数.ONEOUTKILNCOUNT, 1 ), 0, 1, NVL( 出窑数.ONEOUTKILNCOUNT, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 一车间前三缺陷数量.缺陷名称
  145. FROM
  146. 一车间前三缺陷数量
  147. LEFT JOIN 出窑数 on 1=1
  148. UNION ALL
  149. SELECT
  150. 二车间前三缺陷数量.workshops,
  151. DECODE( NVL( 二车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 二车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 出窑数.TWOOUTKILNCOUNT, 1 ), 0, 1, NVL( 出窑数.TWOOUTKILNCOUNT, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 二车间前三缺陷数量.缺陷名称
  152. FROM
  153. 二车间前三缺陷数量
  154. LEFT JOIN 出窑数 on 1=1
  155. UNION ALL
  156. SELECT
  157. 三车间前三缺陷数量.workshops,
  158. DECODE( NVL( 三车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 三车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 出窑数.THREEOUTKILNCOUNT, 1 ), 0, 1, NVL( 出窑数.THREEOUTKILNCOUNT, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 三车间前三缺陷数量.缺陷名称
  159. FROM
  160. 三车间前三缺陷数量
  161. LEFT JOIN 出窑数 on 1=1";
  162. //直接获取不分页数据
  163. DataTable dt = conn.ExecuteDatatable(sqlStr);
  164. string jsonStr = new JsonResult(dt).ToJson();
  165. context.Response.Write(jsonStr);
  166. }
  167. if (context.Request["m"].ToString() == "Load02")
  168. {
  169. //直接获取不分页数据
  170. string sqlStr = @"WITH 一车间前三缺陷数量 AS (
  171. SELECT
  172. *
  173. FROM(
  174. SELECT
  175. workshops,
  176. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  177. 缺陷名称
  178. FROM
  179. (
  180. SELECT
  181. '一车间' workshops,
  182. CASE WHEN semicheck.GOODSLEVELTYPEID IN (2,13) or semicheck.SEMICHECKTYPE is not NULL THEN semicheck.BARCODE ELSE NULL END 缺陷条码,
  183. SEMIDEFCET.S_NAME 缺陷名称
  184. FROM TP_PM_SEMICHECK semicheck
  185. LEFT JOIN TP_PM_SEMICHECKDEFECT semicheckdefect on semicheckdefect.SEMICHECKID=semicheck.SEMICHECKID
  186. LEFT JOIN TP_MST_SEMICHECKDEFECT SEMIDEFCET ON SEMIDEFCET.DEFECTID=semicheckdefect.DEFECTID
  187. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=semicheck.barcode
  188. INNER JOIN TP_PM_PRODUCTIONDATA pd on pd.barcode=gdd.barcode AND pd.PROCEDUREID IN(1,17)
  189. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  190. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  191. WHERE semicheck.CREATETIME>=TRUNC(sysdate-7)
  192. AND TRUNC(semicheck.CREATETIME)<=TRUNC(SYSDATE)
  193. AND semicheck.VALUEFLAG=1
  194. AND INSTR(GTP.GOODSTYPECODE, '001002') = 1
  195. AND gdd.VALUEFLAG=1
  196. AND pd.VALUEFLAG=1
  197. )
  198. GROUP BY workshops,缺陷名称
  199. ORDER BY COUNT( DISTINCT 缺陷条码) DESC
  200. )
  201. WHERE ROWNUM<=3
  202. ),
  203. 二车间前三缺陷数量 AS (
  204. SELECT
  205. *
  206. FROM(
  207. SELECT
  208. workshops,
  209. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  210. 缺陷名称
  211. FROM
  212. (
  213. SELECT
  214. '二车间' workshops,
  215. CASE WHEN semicheck.GOODSLEVELTYPEID IN (2,13) or semicheck.SEMICHECKTYPE is not NULL THEN semicheck.BARCODE ELSE NULL END 缺陷条码,
  216. SEMIDEFCET.S_NAME 缺陷名称
  217. FROM TP_PM_SEMICHECK semicheck
  218. LEFT JOIN TP_PM_SEMICHECKDEFECT semicheckdefect on semicheckdefect.SEMICHECKID=semicheck.SEMICHECKID
  219. LEFT JOIN TP_MST_SEMICHECKDEFECT SEMIDEFCET ON SEMIDEFCET.DEFECTID=semicheckdefect.DEFECTID
  220. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=semicheck.barcode
  221. INNER JOIN TP_PM_PRODUCTIONDATA pd on pd.barcode=gdd.barcode AND pd.PROCEDUREID IN(1,17)
  222. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  223. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  224. WHERE semicheck.CREATETIME>=TRUNC(sysdate-7)
  225. AND TRUNC(semicheck.CREATETIME)<=TRUNC(SYSDATE)
  226. AND semicheck.VALUEFLAG=1
  227. AND INSTR(GTP.GOODSTYPECODE, '001001') = 1
  228. AND gdd.VALUEFLAG=1
  229. AND pd.VALUEFLAG=1
  230. )
  231. GROUP BY workshops,缺陷名称
  232. ORDER BY COUNT( DISTINCT 缺陷条码) DESC
  233. )
  234. WHERE ROWNUM<=3
  235. ),
  236. 三车间前三缺陷数量 AS (
  237. SELECT
  238. *
  239. FROM(
  240. SELECT
  241. workshops,
  242. COUNT( DISTINCT 缺陷条码) 缺陷数量,
  243. 缺陷名称
  244. FROM
  245. (
  246. SELECT
  247. '三车间' workshops,
  248. CASE WHEN semicheck.GOODSLEVELTYPEID IN (2,13) or semicheck.SEMICHECKTYPE is not NULL THEN semicheck.BARCODE ELSE NULL END 缺陷条码,
  249. SEMIDEFCET.S_NAME 缺陷名称
  250. FROM TP_PM_SEMICHECK semicheck
  251. LEFT JOIN TP_PM_SEMICHECKDEFECT semicheckdefect on semicheckdefect.SEMICHECKID=semicheck.SEMICHECKID
  252. LEFT JOIN TP_MST_SEMICHECKDEFECT SEMIDEFCET ON SEMIDEFCET.DEFECTID=semicheckdefect.DEFECTID
  253. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.barcode=semicheck.barcode
  254. INNER JOIN TP_PM_PRODUCTIONDATA pd on pd.barcode=gdd.barcode AND pd.PROCEDUREID IN(118,92 ,88)
  255. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=GDD.GOODSID
  256. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  257. WHERE semicheck.CREATETIME>=TRUNC(sysdate-7)
  258. AND TRUNC(semicheck.CREATETIME)<=TRUNC(SYSDATE)
  259. AND semicheck.VALUEFLAG=1
  260. AND gdd.VALUEFLAG=1
  261. AND pd.VALUEFLAG=1
  262. )
  263. GROUP BY workshops,缺陷名称
  264. ORDER BY COUNT( DISTINCT 缺陷条码) DESC
  265. )
  266. WHERE ROWNUM<=3
  267. ),
  268. 一车间产量 AS (
  269. SELECT '一车间' AS 车间, COUNT(DISTINCT PD.BARCODE )AS 检验量 FROM TP_PM_PRODUCTIONDATA PD
  270. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=PD.GOODSID
  271. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  272. WHERE PD.VALUEFLAG=1 AND PD.PROCEDUREID IN(1,17)AND PD.CREATETIME>=TRUNC(sysdate-7) AND TRUNC(PD.CREATETIME)<=TRUNC(SYSDATE)
  273. AND INSTR(GTP.GOODSTYPECODE, '001002') = 1
  274. ),
  275. 二车间产量 AS (
  276. SELECT '二车间' AS 车间, COUNT(DISTINCT PD.BARCODE )AS 检验量 FROM TP_PM_PRODUCTIONDATA PD
  277. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=PD.GOODSID
  278. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  279. WHERE PD.VALUEFLAG=1 AND PD.PROCEDUREID IN(1,17)AND PD.CREATETIME>=TRUNC(sysdate-7) AND TRUNC(PD.CREATETIME)<=TRUNC(SYSDATE)
  280. AND INSTR(GTP.GOODSTYPECODE, '001001') = 1
  281. ),三车间产量 AS (
  282. SELECT '三车间' AS 车间, COUNT(DISTINCT PD.BARCODE )AS 检验量 FROM TP_PM_PRODUCTIONDATA PD
  283. LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID=PD.GOODSID
  284. LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID=GOODS.GOODSTYPEID
  285. WHERE PD.VALUEFLAG=1 AND PD.PROCEDUREID IN(118,92 ,88)AND PD.CREATETIME>=TRUNC(sysdate-7) AND TRUNC(PD.CREATETIME)<=TRUNC(SYSDATE)
  286. )
  287. SELECT
  288. 一车间前三缺陷数量.workshops,
  289. DECODE( NVL( 一车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 一车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 一车间产量.检验量, 1 ), 0, 1, NVL( 一车间产量.检验量, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 一车间前三缺陷数量.缺陷名称
  290. FROM
  291. 一车间前三缺陷数量
  292. LEFT JOIN 一车间产量 on 1=1
  293. UNION ALL
  294. SELECT
  295. 二车间前三缺陷数量.workshops,
  296. DECODE( NVL( 二车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 二车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 二车间产量.检验量, 1 ), 0, 1, NVL( 二车间产量.检验量, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 二车间前三缺陷数量.缺陷名称
  297. FROM
  298. 二车间前三缺陷数量
  299. LEFT JOIN 二车间产量 on 1=1
  300. UNION ALL
  301. SELECT
  302. 三车间前三缺陷数量.workshops,
  303. DECODE( NVL( 三车间前三缺陷数量.缺陷数量, 0 ), 0, '0%', TO_CHAR( ( NVL( 三车间前三缺陷数量.缺陷数量, 0 ) / DECODE( NVL( 三车间产量.检验量, 1 ), 0, 1, NVL( 三车间产量.检验量, 1 ) ) ) * 100, 'fm99990.0' ) ) 缺陷占比, 三车间前三缺陷数量.缺陷名称
  304. FROM
  305. 三车间前三缺陷数量
  306. LEFT JOIN 三车间产量 on 1=1
  307. ";
  308. DataTable dt = conn.ExecuteDatatable(sqlStr);
  309. string jsonStr = new JsonResult(dt).ToJson();
  310. context.Response.Write(jsonStr);
  311. }
  312. if (context.Request["m"].ToString() == "Load05")
  313. {
  314. string sqlStr = @" SELECT '连体'AS 产品类别,
  315. H.缺陷名称,
  316. H.缺陷数,
  317. H.缺陷占比,
  318. H.上周比,
  319. CASE WHEN H.上周比 > H.缺陷占比 THEN '下降↓'
  320. ELSE '上升↑'
  321. END 对比趋势
  322. FROM(
  323. SELECT
  324. TT.DEFECTNAME 缺陷名称,
  325. TT2.COUNT 出窑数,
  326. TT.COUNT 缺陷数,
  327. TO_CHAR((TT.COUNT/TT2.COUNT)* 100,'fm99990.0') || '%' AS 缺陷占比,
  328. TT4.COUNT 上个月缺陷数量,
  329. TT6.COUNT 上个月出窑数,
  330. TO_CHAR((TT4.COUNT/TT6.COUNT)* 100,'fm99990.0') || '%' AS 上周比
  331. FROM(
  332. SELECT ROWNUM id,T.DEFECTID,T.DEFECTNAME,T.count FROM (
  333. SELECT
  334. TMD.S_NAME DEFECTNAME,
  335. TMD.DEFECTID,
  336. COUNT( 1 ) count
  337. FROM
  338. TP_PM_PRODUCTIONDATA TPPD
  339. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  340. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  341. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  342. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  343. WHERE
  344. TPPD.PROCEDUREID IN (125,131)
  345. AND TPPD.GOODSLEVELTYPEID = 7
  346. AND TPD.VALUEFLAG = 1
  347. AND TPPD.VALUEFLAG = 1
  348. AND GDTYPE.GOODSTYPECODE='001001001'
  349. AND TMD.VALUEFLAG = 1
  350. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  351. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  352. GROUP BY
  353. TMD.S_NAME,TMD.DEFECTID
  354. ORDER BY
  355. count DESC)T
  356. WHERE ROWNUM<=3
  357. )TT
  358. FULL JOIN(
  359. SELECT
  360. ROWNUM id,
  361. T2.count
  362. FROM(
  363. SELECT
  364. COUNT(1) count
  365. FROM
  366. TP_PM_PRODUCTIONDATA TPPD
  367. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  368. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  369. WHERE
  370. TPPD.PROCEDUREID IN (104,11)
  371. AND TPPD.ISREFIRE = 0
  372. AND GDTYPE.GOODSTYPECODE='001001001'
  373. AND TPPD.VALUEFLAG = 1
  374. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  375. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  376. UNION ALL
  377. SELECT
  378. COUNT(1) count
  379. FROM
  380. TP_PM_PRODUCTIONDATA TPPD
  381. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  382. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  383. WHERE
  384. TPPD.PROCEDUREID IN (104,11)
  385. AND TPPD.ISREFIRE = 0
  386. AND GDTYPE.GOODSTYPECODE='001001001'
  387. AND TPPD.VALUEFLAG = 1
  388. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  389. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  390. UNION ALL
  391. SELECT
  392. COUNT(1)
  393. FROM
  394. TP_PM_PRODUCTIONDATA TPPD
  395. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  396. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  397. WHERE
  398. TPPD.PROCEDUREID IN (104,11)
  399. AND TPPD.ISREFIRE = 0
  400. AND GDTYPE.GOODSTYPECODE='001001001'
  401. AND TPPD.VALUEFLAG = 1
  402. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  403. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  404. )T2)TT2 ON TT.id = TT2.id
  405. FULL JOIN(
  406. SELECT ROWNUM id,T4.DEFECTNAME,T4.count FROM (
  407. SELECT
  408. TMD.S_NAME DEFECTNAME,
  409. COUNT( 1 ) count
  410. FROM
  411. TP_PM_PRODUCTIONDATA TPPD
  412. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  413. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  414. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  415. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  416. WHERE
  417. TPPD.PROCEDUREID IN (125,131)
  418. AND TPPD.GOODSLEVELTYPEID = 7
  419. AND GDTYPE.GOODSTYPECODE='001001001'
  420. AND TPD.VALUEFLAG = 1
  421. AND TPPD.VALUEFLAG = 1
  422. AND TMD.VALUEFLAG = 1
  423. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  424. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  425. GROUP BY
  426. TMD.S_NAME
  427. ORDER BY
  428. count DESC)T4 WHERE ROWNUM <= 3 )TT4 ON TT.id = TT4.id
  429. FULL JOIN(
  430. SELECT
  431. ROWNUM id,
  432. T6.count
  433. FROM(
  434. SELECT
  435. COUNT(1) count
  436. FROM
  437. TP_PM_PRODUCTIONDATA TPPD
  438. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  439. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  440. WHERE
  441. TPPD.PROCEDUREID IN (104,11)
  442. AND TPPD.ISREFIRE = 0
  443. AND GDTYPE.GOODSTYPECODE='001001001'
  444. AND TPPD.VALUEFLAG = 1
  445. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  446. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  447. UNION ALL
  448. SELECT
  449. COUNT(1) count
  450. FROM
  451. TP_PM_PRODUCTIONDATA TPPD
  452. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  453. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  454. WHERE
  455. TPPD.PROCEDUREID IN (104,11)
  456. AND TPPD.ISREFIRE = 0
  457. AND GDTYPE.GOODSTYPECODE='001001001'
  458. AND TPPD.VALUEFLAG = 1
  459. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  460. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  461. UNION ALL
  462. SELECT
  463. COUNT(1)
  464. FROM
  465. TP_PM_PRODUCTIONDATA TPPD
  466. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  467. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  468. WHERE
  469. TPPD.PROCEDUREID IN (104,11)
  470. AND TPPD.ISREFIRE = 0
  471. AND GDTYPE.GOODSTYPECODE='001001001'
  472. AND TPPD.VALUEFLAG = 1
  473. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  474. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  475. )T6)TT6 ON TT.id = TT6.id
  476. )H
  477. WHERE H.缺陷数 IS NOT NULL
  478. UNION ALL
  479. SELECT
  480. '智能',
  481. H.缺陷名称,
  482. H.缺陷数,
  483. H.缺陷占比,
  484. H.上周比,
  485. CASE WHEN H.上周比 > H.缺陷占比 THEN '下降↓'
  486. ELSE '上升↑'
  487. END 对比趋势
  488. FROM(
  489. SELECT
  490. TT.DEFECTNAME 缺陷名称,
  491. TT2.COUNT 出窑数,
  492. TT.COUNT 缺陷数,
  493. TO_CHAR((TT.COUNT/TT2.COUNT)* 100,'fm99990.0') || '%' AS 缺陷占比,
  494. TT4.COUNT 上个月缺陷数量,
  495. TT6.COUNT 上个月出窑数,
  496. TO_CHAR((TT4.COUNT/TT6.COUNT)* 100,'fm99990.0') || '%' AS 上周比
  497. FROM(
  498. SELECT ROWNUM id,T.DEFECTID,T.DEFECTNAME,T.count FROM (
  499. SELECT
  500. TMD.S_NAME DEFECTNAME,
  501. TMD.DEFECTID,
  502. COUNT( 1 ) count
  503. FROM
  504. TP_PM_PRODUCTIONDATA TPPD
  505. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  506. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  507. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  508. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  509. WHERE
  510. TPPD.PROCEDUREID IN (125,131)
  511. AND TPPD.GOODSLEVELTYPEID = 7
  512. AND TPD.VALUEFLAG = 1
  513. AND TPPD.VALUEFLAG = 1
  514. AND GDTYPE.GOODSTYPECODE='001001003'
  515. AND TMD.VALUEFLAG = 1
  516. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  517. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  518. GROUP BY
  519. TMD.S_NAME,TMD.DEFECTID
  520. ORDER BY
  521. count DESC)T
  522. WHERE ROWNUM<=3
  523. )TT
  524. FULL JOIN(
  525. SELECT
  526. ROWNUM id,
  527. T2.count
  528. FROM(
  529. SELECT
  530. COUNT(1) count
  531. FROM
  532. TP_PM_PRODUCTIONDATA TPPD
  533. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  534. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  535. WHERE
  536. TPPD.PROCEDUREID IN (104,11)
  537. AND TPPD.ISREFIRE = 0
  538. AND GDTYPE.GOODSTYPECODE='001001003'
  539. AND TPPD.VALUEFLAG = 1
  540. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  541. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  542. UNION ALL
  543. SELECT
  544. COUNT(1) count
  545. FROM
  546. TP_PM_PRODUCTIONDATA TPPD
  547. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  548. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  549. WHERE
  550. TPPD.PROCEDUREID IN (104,11)
  551. AND TPPD.ISREFIRE = 0
  552. AND GDTYPE.GOODSTYPECODE='001001003'
  553. AND TPPD.VALUEFLAG = 1
  554. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  555. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  556. UNION ALL
  557. SELECT
  558. COUNT(1)
  559. FROM
  560. TP_PM_PRODUCTIONDATA TPPD
  561. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  562. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  563. WHERE
  564. TPPD.PROCEDUREID IN (104,11)
  565. AND TPPD.ISREFIRE = 0
  566. AND GDTYPE.GOODSTYPECODE='001001003'
  567. AND TPPD.VALUEFLAG = 1
  568. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  569. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  570. )T2)TT2 ON TT.id = TT2.id
  571. FULL JOIN(
  572. SELECT ROWNUM id,T4.DEFECTNAME,T4.count FROM (
  573. SELECT
  574. TMD.S_NAME DEFECTNAME,
  575. COUNT( 1 ) count
  576. FROM
  577. TP_PM_PRODUCTIONDATA TPPD
  578. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  579. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  580. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  581. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  582. WHERE
  583. TPPD.PROCEDUREID IN (125,131)
  584. AND TPPD.GOODSLEVELTYPEID = 7
  585. AND GDTYPE.GOODSTYPECODE='001001003'
  586. AND TPD.VALUEFLAG = 1
  587. AND TPPD.VALUEFLAG = 1
  588. AND TMD.VALUEFLAG = 1
  589. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  590. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  591. GROUP BY
  592. TMD.S_NAME
  593. ORDER BY
  594. count DESC)T4 WHERE ROWNUM <= 3 )TT4 ON TT.id = TT4.id
  595. FULL JOIN(
  596. SELECT
  597. ROWNUM id,
  598. T6.count
  599. FROM(
  600. SELECT
  601. COUNT(1) count
  602. FROM
  603. TP_PM_PRODUCTIONDATA TPPD
  604. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  605. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  606. WHERE
  607. TPPD.PROCEDUREID IN (104,11)
  608. AND TPPD.ISREFIRE = 0
  609. AND GDTYPE.GOODSTYPECODE='001001003'
  610. AND TPPD.VALUEFLAG = 1
  611. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  612. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  613. UNION ALL
  614. SELECT
  615. COUNT(1) count
  616. FROM
  617. TP_PM_PRODUCTIONDATA TPPD
  618. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  619. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  620. WHERE
  621. TPPD.PROCEDUREID IN (104,11)
  622. AND TPPD.ISREFIRE = 0
  623. AND GDTYPE.GOODSTYPECODE='001001003'
  624. AND TPPD.VALUEFLAG = 1
  625. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  626. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  627. UNION ALL
  628. SELECT
  629. COUNT(1)
  630. FROM
  631. TP_PM_PRODUCTIONDATA TPPD
  632. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  633. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  634. WHERE
  635. TPPD.PROCEDUREID IN (104,11)
  636. AND TPPD.ISREFIRE = 0
  637. AND GDTYPE.GOODSTYPECODE='001001003'
  638. AND TPPD.VALUEFLAG = 1
  639. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  640. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  641. )T6)TT6 ON TT.id = TT6.id
  642. )H
  643. WHERE H.缺陷数 IS NOT NULL
  644. UNION ALL
  645. SELECT
  646. '小件',
  647. H.缺陷名称,
  648. H.缺陷数,
  649. H.缺陷占比,
  650. H.上周比,
  651. CASE WHEN H.上周比 > H.缺陷占比 THEN '下降↓'
  652. ELSE '上升↑'
  653. END 对比趋势
  654. FROM(
  655. SELECT
  656. TT.DEFECTNAME 缺陷名称,
  657. TT2.COUNT 出窑数,
  658. TT.COUNT 缺陷数,
  659. TO_CHAR((NVL(TT.COUNT,0)/TT2.COUNT)* 100,'fm99990.0') || '%' AS 缺陷占比,
  660. TT4.COUNT 上个月缺陷数量,
  661. TT6.COUNT 上个月出窑数,
  662. TO_CHAR((NVL(TT4.COUNT, 0)/TT6.COUNT)* 100,'fm99990.0') || '%' AS 上周比
  663. FROM(
  664. SELECT ROWNUM id,T.DEFECTID,T.DEFECTNAME,T.count FROM (
  665. SELECT
  666. TMD.S_NAME DEFECTNAME,
  667. TMD.DEFECTID,
  668. COUNT( 1 ) count
  669. FROM
  670. TP_PM_PRODUCTIONDATA TPPD
  671. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  672. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  673. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  674. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  675. WHERE
  676. TPPD.PROCEDUREID IN (125,131)
  677. AND TPPD.GOODSLEVELTYPEID = 7
  678. AND TPD.VALUEFLAG = 1
  679. AND TPPD.VALUEFLAG = 1
  680. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  681. AND TMD.VALUEFLAG = 1
  682. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  683. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  684. GROUP BY
  685. TMD.S_NAME,TMD.DEFECTID
  686. ORDER BY
  687. count DESC)T
  688. WHERE ROWNUM<=3
  689. )TT
  690. FULL JOIN(
  691. SELECT
  692. ROWNUM id,
  693. T2.count
  694. FROM(
  695. SELECT
  696. COUNT(1) count
  697. FROM
  698. TP_PM_PRODUCTIONDATA TPPD
  699. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  700. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  701. WHERE
  702. TPPD.PROCEDUREID IN (104,11)
  703. AND TPPD.ISREFIRE = 0
  704. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  705. AND TPPD.VALUEFLAG = 1
  706. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  707. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  708. UNION ALL
  709. SELECT
  710. COUNT(1) count
  711. FROM
  712. TP_PM_PRODUCTIONDATA TPPD
  713. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  714. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  715. WHERE
  716. TPPD.PROCEDUREID IN (104,11)
  717. AND TPPD.ISREFIRE = 0
  718. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  719. AND TPPD.VALUEFLAG = 1
  720. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  721. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  722. UNION ALL
  723. SELECT
  724. COUNT(1)
  725. FROM
  726. TP_PM_PRODUCTIONDATA TPPD
  727. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  728. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  729. WHERE
  730. TPPD.PROCEDUREID IN (104,11)
  731. AND TPPD.ISREFIRE = 0
  732. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  733. AND TPPD.VALUEFLAG = 1
  734. AND TPPD.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  735. AND TPPD.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  736. )T2)TT2 ON TT.id = TT2.id
  737. FULL JOIN(
  738. SELECT ROWNUM id,T4.DEFECTNAME,T4.count FROM (
  739. SELECT
  740. TMD.S_NAME DEFECTNAME,
  741. COUNT( 1 ) count
  742. FROM
  743. TP_PM_PRODUCTIONDATA TPPD
  744. LEFT JOIN TP_PM_DEFECT TPD ON TPPD.BARCODE = TPD.BARCODE
  745. LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID
  746. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  747. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  748. WHERE
  749. TPPD.PROCEDUREID IN (125,131)
  750. AND TPPD.GOODSLEVELTYPEID = 7
  751. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  752. AND TPD.VALUEFLAG = 1
  753. AND TPPD.VALUEFLAG = 1
  754. AND TMD.VALUEFLAG = 1
  755. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  756. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  757. GROUP BY
  758. TMD.S_NAME
  759. ORDER BY
  760. count DESC)T4 WHERE ROWNUM <= 3 )TT4 ON TT.id = TT4.id
  761. FULL JOIN(
  762. SELECT
  763. ROWNUM id,
  764. T6.count
  765. FROM(
  766. SELECT
  767. COUNT(1) count
  768. FROM
  769. TP_PM_PRODUCTIONDATA TPPD
  770. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  771. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  772. WHERE
  773. TPPD.PROCEDUREID IN (104,11)
  774. AND TPPD.ISREFIRE = 0
  775. AND SUBSTR(GDTYPE.GOODSTYPECODE,0,6)='001002'
  776. AND TPPD.VALUEFLAG = 1
  777. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  778. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  779. UNION ALL
  780. SELECT
  781. COUNT(1) count
  782. FROM
  783. TP_PM_PRODUCTIONDATA TPPD
  784. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  785. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  786. WHERE
  787. TPPD.PROCEDUREID IN (104,11)
  788. AND TPPD.ISREFIRE = 0
  789. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  790. AND TPPD.VALUEFLAG = 1
  791. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  792. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  793. UNION ALL
  794. SELECT
  795. COUNT(1)
  796. FROM
  797. TP_PM_PRODUCTIONDATA TPPD
  798. LEFT JOIN TP_MST_GOODS GD ON GD.GOODSID=TPPD.GOODSID
  799. LEFT JOIN TP_MST_GOODSTYPE GDTYPE ON GD.GOODSTYPEID=GDTYPE.GOODSTYPEID
  800. WHERE
  801. TPPD.PROCEDUREID IN (104,11)
  802. AND TPPD.ISREFIRE = 0
  803. AND SUBSTR( GDTYPE.GOODSTYPECODE,0,6)='001002'
  804. AND TPPD.VALUEFLAG = 1
  805. AND TPPD.CREATETIME >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6)
  806. AND TPPD.CREATETIME < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  807. )T6)TT6 ON TT.id = TT6.id
  808. )H
  809. WHERE H.缺陷数 IS NOT NULL ";
  810. DataTable dt = conn.ExecuteDatatable(sqlStr);
  811. string jsonStr = new JsonResult(dt).ToJson();
  812. context.Response.Write(jsonStr);
  813. }
  814. if (context.Request["m"].ToString() == "Load01")
  815. {
  816. // string sqlStr = "WITH 本烧出窑总数 AS (\n" +
  817. //" SELECT\n" +
  818. //" SUM(\n" +
  819. //" CASE WHEN (\n" +
  820. //" ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  821. //" AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 \n" +
  822. //" ) THEN\n" +
  823. //" 1 ELSE 0 \n" +
  824. //" END \n" +
  825. //" ) ONESUBSTANDARDCOUNT,\n" +
  826. //" SUM(\n" +
  827. //" CASE WHEN (\n" +
  828. //" ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  829. //" AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 \n" +
  830. //" ) THEN\n" +
  831. //" 1 ELSE 0 \n" +
  832. //" END \n" +
  833. //" ) TWOSUBSTANDARDCOUNT,\n" +
  834. //" SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT \n" +
  835. //"FROM\n" +
  836. //" TP_PM_PRODUCTIONDATA PD\n" +
  837. //" LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = PD.BARCODE\n" +
  838. //" INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID\n" +
  839. //" INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID \n" +
  840. //"WHERE\n" +
  841. //" PD.ACCOUNTID = 1 \n" +
  842. //" AND (\n" +
  843. //" (\n" +
  844. //" 11 = 11 \n" +
  845. //" AND (\n" +
  846. //" ( PD.PROCEDUREID = 11 AND PD.VALUEFLAG = '1' AND PD.ISREFIRE = '0' ) \n" +
  847. //" OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1' ) \n" +
  848. //" ) \n" +
  849. //" ) \n" +
  850. //" OR (\n" +
  851. //" 11 = 58 \n" +
  852. //" AND (\n" +
  853. //" ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' ) \n" +
  854. //" OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' ) \n" +
  855. //" ) \n" +
  856. //" ) \n" +
  857. //" OR ( 11 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 11 ) \n" +
  858. //" ) \n" +
  859. //" AND PD.CREATETIME >= TRUNC( SYSDATE - 7 ) \n" +
  860. //" AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE ) \n" +
  861. //" ),\n" +
  862. //" 重烧出窑总数 AS (\n" +
  863. //" SELECT\n" +
  864. //" SUM(\n" +
  865. //" CASE WHEN (\n" +
  866. //" ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  867. //" AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1 \n" +
  868. //" ) THEN\n" +
  869. //" 1 ELSE 0 \n" +
  870. //" END \n" +
  871. //" ) ONESUBSTANDARDCOUNT,\n" +
  872. //" SUM(\n" +
  873. //" CASE WHEN (\n" +
  874. //" ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  875. //" AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1 \n" +
  876. //" ) THEN\n" +
  877. //" 1 ELSE 0 \n" +
  878. //" END \n" +
  879. //" ) TWOSUBSTANDARDCOUNT,\n" +
  880. //"--本烧三车间次品数\n" +
  881. //" SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT \n" +
  882. //"FROM\n" +
  883. //" TP_PM_PRODUCTIONDATA PD\n" +
  884. //" LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = PD.BARCODE\n" +
  885. //" INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID\n" +
  886. //" INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID \n" +
  887. //"WHERE\n" +
  888. //" PD.ACCOUNTID = 1 \n" +
  889. //" AND (\n" +
  890. //" (\n" +
  891. //" 58 = 11 \n" +
  892. //" AND (\n" +
  893. //" ( PD.PROCEDUREID = 11 AND PD.VALUEFLAG = '1' AND PD.ISREFIRE = '0' ) \n" +
  894. //" OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1' ) \n" +
  895. //" ) \n" +
  896. //" ) \n" +
  897. //" OR (\n" +
  898. //" 58 = 58 \n" +
  899. //" AND (\n" +
  900. //" ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' ) \n" +
  901. //" OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' ) \n" +
  902. //" ) \n" +
  903. //" ) \n" +
  904. //" OR ( 58 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 58 ) \n" +
  905. //" ) \n" +
  906. //" AND PD.CREATETIME >= TRUNC( SYSDATE - 7 ) \n" +
  907. //" AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE ) \n" +
  908. //" ),\n" +
  909. //" 本烧次品重烧数 AS (\n" +
  910. //" SELECT\n" +
  911. //" SUM(\n" +
  912. //" CASE WHEN (\n" +
  913. //" GOODSLEVELTYPEID = 7 \n" +
  914. //" AND (\n" +
  915. //" ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  916. //" AND INSTR( GOODSTYPECODE, '001002' ) = 1 \n" +
  917. //" ) \n" +
  918. //" ) THEN\n" +
  919. //" 1 ELSE 0 \n" +
  920. //" END \n" +
  921. //" ) ONESUBSTANDARDCOUNT,\n" +
  922. //" SUM(\n" +
  923. //" CASE WHEN (\n" +
  924. //" GOODSLEVELTYPEID = 7 \n" +
  925. //" AND (\n" +
  926. //" ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  927. //" AND INSTR( GOODSTYPECODE, '001001' ) = 1 \n" +
  928. //" ) \n" +
  929. //" ) THEN\n" +
  930. //" 1 ELSE 0 \n" +
  931. //" END \n" +
  932. //" ) TWOSUBSTANDARDCOUNT,\n" +
  933. //" SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT,\n" +
  934. //" SUM(\n" +
  935. //" CASE WHEN (\n" +
  936. //" GOODSLEVELTYPEID = 6 \n" +
  937. //" AND (\n" +
  938. //" ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  939. //" AND INSTR( GOODSTYPECODE, '001002' ) = 1 \n" +
  940. //" ) \n" +
  941. //" ) THEN\n" +
  942. //" 1 ELSE 0 \n" +
  943. //" END \n" +
  944. //" ) ONEREFIRECOUNT,\n" +
  945. //" SUM(\n" +
  946. //" CASE WHEN (\n" +
  947. //" GOODSLEVELTYPEID = 6 \n" +
  948. //" AND (\n" +
  949. //" ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  950. //" AND INSTR( GOODSTYPECODE, '001001' ) = 1 \n" +
  951. //" ) \n" +
  952. //" ) THEN\n" +
  953. //" 1 ELSE 0 \n" +
  954. //" END \n" +
  955. //" ) TWOREFIRECOUNT,\n" +
  956. //"--本烧三车间重烧数\n" +
  957. //" SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREEREFIRECOUNT \n" +
  958. //"FROM\n" +
  959. //" (\n" +
  960. //" SELECT DISTINCT\n" +
  961. //" PD.BARCODE,\n" +
  962. //" GT.GOODSTYPECODE,\n" +
  963. //" GDD.GROUTINGLINECODE,\n" +
  964. //" PD.GOODSLEVELTYPEID \n" +
  965. //" FROM\n" +
  966. //" TP_PM_PRODUCTIONDATA PD\n" +
  967. //" LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE\n" +
  968. //" INNER JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID\n" +
  969. //" INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID\n" +
  970. //" INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID \n" +
  971. //" WHERE\n" +
  972. //" PD.VALUEFLAG = '1' \n" +
  973. //" AND PD.ACCOUNTID = 1 \n" +
  974. //" AND LENGTH( PD.KILNCARBATCHNO ) > 0 \n" +
  975. //" AND PD.CREATETIME >= TRUNC( SYSDATE - 7 ) \n" +
  976. //" AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE ) \n" +
  977. //" AND PD.MODELTYPE IN ( - 1, - 4, - 5 ) \n" +
  978. //" AND PD.CHECKBATCHNO = 1 \n" +
  979. //" AND ( ( 11 <> 58 AND PD.ISREFIRE = '0' ) OR ( 11 = 58 AND PD.ISREFIRE = '6' ) ) \n" +
  980. //" AND GDD.RECYCLINGFLAG = '0' \n" +
  981. //" ) T \n" +
  982. //" ),\n" +
  983. //" 重烧次品重烧数 AS (\n" +
  984. //" SELECT\n" +
  985. //" SUM(\n" +
  986. //" CASE WHEN (\n" +
  987. //" GOODSLEVELTYPEID = 7 \n" +
  988. //" AND (\n" +
  989. //" ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  990. //" AND INSTR( GOODSTYPECODE, '001002' ) = 1 \n" +
  991. //" ) \n" +
  992. //" ) THEN\n" +
  993. //" 1 ELSE 0 \n" +
  994. //" END \n" +
  995. //" ) ONESUBSTANDARDCOUNT,\n" +
  996. //" SUM(\n" +
  997. //" CASE WHEN (\n" +
  998. //" GOODSLEVELTYPEID = 7 \n" +
  999. //" AND (\n" +
  1000. //" ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  1001. //" AND INSTR( GOODSTYPECODE, '001001' ) = 1 \n" +
  1002. //" ) \n" +
  1003. //" ) THEN\n" +
  1004. //" 1 ELSE 0 \n" +
  1005. //" END \n" +
  1006. //" ) TWOSUBSTANDARDCOUNT,\n" +
  1007. //" SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT,\n" +
  1008. //" SUM(\n" +
  1009. //" CASE WHEN (\n" +
  1010. //" GOODSLEVELTYPEID = 6 \n" +
  1011. //" AND (\n" +
  1012. //" ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  1013. //" AND INSTR( GOODSTYPECODE, '001002' ) = 1 \n" +
  1014. //" ) \n" +
  1015. //" ) THEN\n" +
  1016. //" 1 ELSE 0 \n" +
  1017. //" END \n" +
  1018. //" ) ONEREFIRECOUNT,\n" +
  1019. //" SUM(\n" +
  1020. //" CASE WHEN (\n" +
  1021. //" GOODSLEVELTYPEID = 6 \n" +
  1022. //" AND (\n" +
  1023. //" ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 ) \n" +
  1024. //" AND INSTR( GOODSTYPECODE, '001001' ) = 1 \n" +
  1025. //" ) \n" +
  1026. //" ) THEN\n" +
  1027. //" 1 ELSE 0 \n" +
  1028. //" END \n" +
  1029. //" ) TWOREFIRECOUNT,\n" +
  1030. //" SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREEREFIRECOUNT \n" +
  1031. //"FROM\n" +
  1032. //" (\n" +
  1033. //" SELECT DISTINCT\n" +
  1034. //" PD.BARCODE,\n" +
  1035. //" GT.GOODSTYPECODE,\n" +
  1036. //" GDD.GROUTINGLINECODE,\n" +
  1037. //" PD.GOODSLEVELTYPEID \n" +
  1038. //" FROM\n" +
  1039. //" TP_PM_PRODUCTIONDATA PD\n" +
  1040. //" LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE\n" +
  1041. //" INNER JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID\n" +
  1042. //" INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID\n" +
  1043. //" INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID \n" +
  1044. //" WHERE\n" +
  1045. //" PD.VALUEFLAG = '1' \n" +
  1046. //" AND PD.ACCOUNTID = 1 \n" +
  1047. //" AND LENGTH( PD.KILNCARBATCHNO ) > 0 \n" +
  1048. //" AND PD.CREATETIME >= TRUNC( SYSDATE - 7 ) \n" +
  1049. //" AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE ) \n" +
  1050. //" AND PD.MODELTYPE IN ( - 1, - 4, - 5 ) \n" +
  1051. //" AND PD.CHECKBATCHNO = 1 \n" +
  1052. //" AND ( ( 58 <> 58 AND PD.ISREFIRE = '0' ) OR ( 58 = 58 AND PD.ISREFIRE = '6' ) ) \n" +
  1053. //" AND GDD.RECYCLINGFLAG = '0' \n" +
  1054. //" ) T \n" +
  1055. //" ) SELECT\n" +
  1056. //" 本烧出窑总数.ONESUBSTANDARDCOUNT AS 一车间,\n" +
  1057. //" 本烧出窑总数.TWOSUBSTANDARDCOUNT AS 二车间,\n" +
  1058. //" 本烧出窑总数.THREESUBSTANDARDCOUNT AS 三车间 \n" +
  1059. //"FROM\n" +
  1060. //" 本烧出窑总数 UNION ALL\n" +
  1061. //"SELECT\n" +
  1062. //" ROUND( ( ( 本烧出窑总数.ONESUBSTANDARDCOUNT - 本烧次品重烧数.ONESUBSTANDARDCOUNT - 本烧次品重烧数.ONEREFIRECOUNT ) / 本烧出窑总数.ONESUBSTANDARDCOUNT ) * 100, 1 ) AS 一车间,\n" +
  1063. //" ROUND( ( ( 本烧出窑总数.TWOSUBSTANDARDCOUNT - 本烧次品重烧数.TWOSUBSTANDARDCOUNT - 本烧次品重烧数.TWOREFIRECOUNT ) / 本烧出窑总数.TWOSUBSTANDARDCOUNT ) * 100, 1 ) AS 二车间,\n" +
  1064. //" ROUND( ( ( 本烧出窑总数.THREESUBSTANDARDCOUNT - 本烧次品重烧数.THREESUBSTANDARDCOUNT - 本烧次品重烧数.THREEREFIRECOUNT ) / 本烧出窑总数.THREESUBSTANDARDCOUNT ) * 100, 1 ) AS 三车间 \n" +
  1065. //"FROM\n" +
  1066. //" 本烧出窑总数\n" +
  1067. //" LEFT JOIN 本烧次品重烧数 ON 1 = 1 UNION ALL\n" +
  1068. //"SELECT\n" +
  1069. //" ROUND(\n" +
  1070. //" (\n" +
  1071. //" ( ( 本烧出窑总数.ONESUBSTANDARDCOUNT -本烧次品重烧数.ONESUBSTANDARDCOUNT -本烧次品重烧数.ONEREFIRECOUNT ) + ( 重烧出窑总数.ONESUBSTANDARDCOUNT -重烧次品重烧数.ONESUBSTANDARDCOUNT -重烧次品重烧数.ONEREFIRECOUNT ) ) /本烧出窑总数.ONESUBSTANDARDCOUNT \n" +
  1072. //" ) * 100,\n" +
  1073. //" 1 \n" +
  1074. //" ) AS 一车间,\n" +
  1075. //" ROUND(\n" +
  1076. //" (\n" +
  1077. //" ( ( 本烧出窑总数.TWOSUBSTANDARDCOUNT -本烧次品重烧数.TWOSUBSTANDARDCOUNT -本烧次品重烧数.TWOREFIRECOUNT ) + ( 重烧出窑总数.TWOSUBSTANDARDCOUNT -重烧次品重烧数.TWOSUBSTANDARDCOUNT -重烧次品重烧数.TWOREFIRECOUNT ) ) /本烧出窑总数.TWOSUBSTANDARDCOUNT \n" +
  1078. //" ) * 100,\n" +
  1079. //" 1 \n" +
  1080. //" ) AS 二车间,\n" +
  1081. //" ROUND(\n" +
  1082. //" (\n" +
  1083. //" ( ( 本烧出窑总数.THREESUBSTANDARDCOUNT -本烧次品重烧数.THREESUBSTANDARDCOUNT -本烧次品重烧数.THREEREFIRECOUNT ) + ( 重烧出窑总数.THREESUBSTANDARDCOUNT -重烧次品重烧数.THREESUBSTANDARDCOUNT -重烧次品重烧数.THREEREFIRECOUNT ) ) /本烧出窑总数.THREESUBSTANDARDCOUNT \n" +
  1084. //" ) * 100,\n" +
  1085. //" 1 \n" +
  1086. //" ) AS 三车间 \n" +
  1087. //"FROM\n" +
  1088. //" 本烧出窑总数\n" +
  1089. //" LEFT JOIN 本烧次品重烧数 ON 1 = 1\n" +
  1090. //" LEFT JOIN 重烧出窑总数 ON 1 = 1\n" +
  1091. //" LEFT JOIN 重烧次品重烧数 ON 1 = 1";
  1092. //DataTable dt = conn.ExecuteDatatable(sqlStr);
  1093. //string jsonStr = new JsonResult(dt).ToJson();
  1094. //context.Response.Write(jsonStr);
  1095. string 本烧出窑总数sql = @" SELECT
  1096. SUM(
  1097. CASE WHEN (
  1098. ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 )
  1099. AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1
  1100. ) THEN
  1101. 1 ELSE 0
  1102. END
  1103. ) ONESUBSTANDARDCOUNT,
  1104. SUM(
  1105. CASE WHEN (
  1106. ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 )
  1107. AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1
  1108. ) THEN
  1109. 1 ELSE 0
  1110. END
  1111. ) TWOSUBSTANDARDCOUNT,
  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. (
  1122. 11 = 11
  1123. AND (
  1124. ( PD.PROCEDUREID = 11 AND PD.VALUEFLAG = '1' AND PD.ISREFIRE = '0' )
  1125. OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1' )
  1126. )
  1127. )
  1128. OR (
  1129. 11 = 58
  1130. AND (
  1131. ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' )
  1132. OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' )
  1133. )
  1134. )
  1135. OR ( 11 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 11 )
  1136. )
  1137. AND PD.CREATETIME >= TRUNC( SYSDATE - 7 )
  1138. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE ) ";
  1139. DataTable dt1 = conn.ExecuteDatatable(本烧出窑总数sql);
  1140. var 本烧出窑总数 = new List<sqlResultOne>();
  1141. for (int i = 0; i < dt1.Rows.Count; i++)
  1142. {
  1143. 本烧出窑总数.Add(new sqlResultOne()
  1144. {
  1145. ONESUBSTANDARDCOUNT = double.Parse(dt1.Rows[i]["ONESUBSTANDARDCOUNT"].ToString()),
  1146. TWOSUBSTANDARDCOUNT = double.Parse(dt1.Rows[i]["TWOSUBSTANDARDCOUNT"].ToString()),
  1147. THREESUBSTANDARDCOUNT = double.Parse(dt1.Rows[i]["THREESUBSTANDARDCOUNT"].ToString())
  1148. });
  1149. }
  1150. string 重烧出窑总数sql = @"SELECT
  1151. SUM(
  1152. CASE WHEN (
  1153. ( INSTR( GDD.GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 )
  1154. AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1
  1155. ) THEN
  1156. 1 ELSE 0
  1157. END
  1158. ) ONESUBSTANDARDCOUNT,
  1159. SUM(
  1160. CASE WHEN (
  1161. ( INSTR( GDD.GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GDD.GROUTINGLINECODE, 'D' ) = 1 )
  1162. AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1
  1163. ) THEN
  1164. 1 ELSE 0
  1165. END
  1166. ) TWOSUBSTANDARDCOUNT,
  1167. --本烧三车间次品数
  1168. SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT
  1169. FROM
  1170. TP_PM_PRODUCTIONDATA PD
  1171. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = PD.BARCODE
  1172. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  1173. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1174. WHERE
  1175. PD.ACCOUNTID = 1
  1176. AND (
  1177. (
  1178. 58 = 11
  1179. AND (
  1180. ( PD.PROCEDUREID = 11 AND PD.VALUEFLAG = '1' AND PD.ISREFIRE = '0' )
  1181. OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '0' AND PD.CHECKFLAG = '1' )
  1182. )
  1183. )
  1184. OR (
  1185. 58 = 58
  1186. AND (
  1187. ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' )
  1188. OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' )
  1189. )
  1190. )
  1191. OR ( 58 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 58 )
  1192. )
  1193. AND PD.CREATETIME >= TRUNC( SYSDATE - 7 )
  1194. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE ) ";
  1195. DataTable dt2 = conn.ExecuteDatatable(重烧出窑总数sql);
  1196. var 重烧出窑总数 = new List<sqlResultOne>();
  1197. for (int i = 0; i < dt2.Rows.Count; i++)
  1198. {
  1199. 重烧出窑总数.Add(new sqlResultOne()
  1200. {
  1201. ONESUBSTANDARDCOUNT = double.Parse(dt2.Rows[i]["ONESUBSTANDARDCOUNT"].ToString()),
  1202. TWOSUBSTANDARDCOUNT = double.Parse(dt2.Rows[i]["TWOSUBSTANDARDCOUNT"].ToString()),
  1203. THREESUBSTANDARDCOUNT = double.Parse(dt2.Rows[i]["THREESUBSTANDARDCOUNT"].ToString())
  1204. });
  1205. }
  1206. string 本烧次品重烧数sql = @" SELECT
  1207. SUM(
  1208. CASE WHEN (
  1209. GOODSLEVELTYPEID = 7
  1210. AND (
  1211. ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1212. AND INSTR( GOODSTYPECODE, '001002' ) = 1
  1213. )
  1214. ) THEN
  1215. 1 ELSE 0
  1216. END
  1217. ) ONESUBSTANDARDCOUNT,
  1218. SUM(
  1219. CASE WHEN (
  1220. GOODSLEVELTYPEID = 7
  1221. AND (
  1222. ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1223. AND INSTR( GOODSTYPECODE, '001001' ) = 1
  1224. )
  1225. ) THEN
  1226. 1 ELSE 0
  1227. END
  1228. ) TWOSUBSTANDARDCOUNT,
  1229. SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT,
  1230. SUM(
  1231. CASE WHEN (
  1232. GOODSLEVELTYPEID = 6
  1233. AND (
  1234. ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1235. AND INSTR( GOODSTYPECODE, '001002' ) = 1
  1236. )
  1237. ) THEN
  1238. 1 ELSE 0
  1239. END
  1240. ) ONEREFIRECOUNT,
  1241. SUM(
  1242. CASE WHEN (
  1243. GOODSLEVELTYPEID = 6
  1244. AND (
  1245. ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1246. AND INSTR( GOODSTYPECODE, '001001' ) = 1
  1247. )
  1248. ) THEN
  1249. 1 ELSE 0
  1250. END
  1251. ) TWOREFIRECOUNT,
  1252. --本烧三车间重烧数
  1253. SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREEREFIRECOUNT
  1254. FROM
  1255. (
  1256. SELECT DISTINCT
  1257. PD.BARCODE,
  1258. GT.GOODSTYPECODE,
  1259. GDD.GROUTINGLINECODE,
  1260. PD.GOODSLEVELTYPEID
  1261. FROM
  1262. TP_PM_PRODUCTIONDATA PD
  1263. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  1264. INNER JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  1265. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  1266. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1267. WHERE
  1268. PD.VALUEFLAG = '1'
  1269. AND PD.ACCOUNTID = 1
  1270. AND LENGTH( PD.KILNCARBATCHNO ) > 0
  1271. AND PD.CREATETIME >= TRUNC( SYSDATE - 7 )
  1272. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  1273. AND PD.MODELTYPE IN ( - 1, - 4, - 5 )
  1274. AND PD.CHECKBATCHNO = 1
  1275. AND ( ( 11 <> 58 AND PD.ISREFIRE = '0' ) OR ( 11 = 58 AND PD.ISREFIRE = '6' ) )
  1276. AND GDD.RECYCLINGFLAG = '0'
  1277. ) T ";
  1278. DataTable dt3 = conn.ExecuteDatatable(本烧次品重烧数sql);
  1279. var 本烧次品重烧数 = new List<sqlResultTwo>();
  1280. for (int i = 0; i < dt3.Rows.Count; i++)
  1281. {
  1282. 本烧次品重烧数.Add(new sqlResultTwo()
  1283. {
  1284. ONESUBSTANDARDCOUNT = double.Parse(dt3.Rows[i]["ONESUBSTANDARDCOUNT"].ToString()),
  1285. TWOSUBSTANDARDCOUNT = double.Parse(dt3.Rows[i]["TWOSUBSTANDARDCOUNT"].ToString()),
  1286. THREESUBSTANDARDCOUNT = double.Parse(dt3.Rows[i]["THREESUBSTANDARDCOUNT"].ToString()),
  1287. ONEREFIRECOUNT = double.Parse(dt3.Rows[i]["ONEREFIRECOUNT"].ToString()),
  1288. TWOREFIRECOUNT = double.Parse(dt3.Rows[i]["TWOREFIRECOUNT"].ToString()),
  1289. THREEREFIRECOUNT = double.Parse(dt3.Rows[i]["THREEREFIRECOUNT"].ToString()),
  1290. });
  1291. }
  1292. string 重烧次品重烧数sql = @"SELECT
  1293. SUM(
  1294. CASE WHEN (
  1295. GOODSLEVELTYPEID = 7
  1296. AND (
  1297. ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1298. AND INSTR( GOODSTYPECODE, '001002' ) = 1
  1299. )
  1300. ) THEN
  1301. 1 ELSE 0
  1302. END
  1303. ) ONESUBSTANDARDCOUNT,
  1304. SUM(
  1305. CASE WHEN (
  1306. GOODSLEVELTYPEID = 7
  1307. AND (
  1308. ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1309. AND INSTR( GOODSTYPECODE, '001001' ) = 1
  1310. )
  1311. ) THEN
  1312. 1 ELSE 0
  1313. END
  1314. ) TWOSUBSTANDARDCOUNT,
  1315. SUM( CASE WHEN ( GOODSLEVELTYPEID = 7 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT,
  1316. SUM(
  1317. CASE WHEN (
  1318. GOODSLEVELTYPEID = 6
  1319. AND (
  1320. ( INSTR( GROUTINGLINECODE, 'A' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1321. AND INSTR( GOODSTYPECODE, '001002' ) = 1
  1322. )
  1323. ) THEN
  1324. 1 ELSE 0
  1325. END
  1326. ) ONEREFIRECOUNT,
  1327. SUM(
  1328. CASE WHEN (
  1329. GOODSLEVELTYPEID = 6
  1330. AND (
  1331. ( INSTR( GROUTINGLINECODE, 'B' ) = 1 OR INSTR( GROUTINGLINECODE, 'D' ) = 1 )
  1332. AND INSTR( GOODSTYPECODE, '001001' ) = 1
  1333. )
  1334. ) THEN
  1335. 1 ELSE 0
  1336. END
  1337. ) TWOREFIRECOUNT,
  1338. SUM( CASE WHEN ( GOODSLEVELTYPEID = 6 AND INSTR( GROUTINGLINECODE, 'C' ) = 1 ) THEN 1 ELSE 0 END ) THREEREFIRECOUNT
  1339. FROM
  1340. (
  1341. SELECT DISTINCT
  1342. PD.BARCODE,
  1343. GT.GOODSTYPECODE,
  1344. GDD.GROUTINGLINECODE,
  1345. PD.GOODSLEVELTYPEID
  1346. FROM
  1347. TP_PM_PRODUCTIONDATA PD
  1348. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  1349. INNER JOIN TP_PM_DEFECT D ON D.PRODUCTIONDATAID = PD.PRODUCTIONDATAID
  1350. INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  1351. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1352. WHERE
  1353. PD.VALUEFLAG = '1'
  1354. AND PD.ACCOUNTID = 1
  1355. AND LENGTH( PD.KILNCARBATCHNO ) > 0
  1356. AND PD.CREATETIME >= TRUNC( SYSDATE - 7 )
  1357. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  1358. AND PD.MODELTYPE IN ( - 1, - 4, - 5 )
  1359. AND PD.CHECKBATCHNO = 1
  1360. AND ( ( 58 <> 58 AND PD.ISREFIRE = '0' ) OR ( 58 = 58 AND PD.ISREFIRE = '6' ) )
  1361. AND GDD.RECYCLINGFLAG = '0'
  1362. ) T ";
  1363. DataTable dt4 = conn.ExecuteDatatable(重烧次品重烧数sql);
  1364. var 重烧次品重烧数 = new List<sqlResultTwo>();
  1365. for (int i = 0; i < dt4.Rows.Count; i++)
  1366. {
  1367. 重烧次品重烧数.Add(new sqlResultTwo()
  1368. {
  1369. ONESUBSTANDARDCOUNT = double.Parse(dt4.Rows[i]["ONESUBSTANDARDCOUNT"].ToString()),
  1370. TWOSUBSTANDARDCOUNT = double.Parse(dt4.Rows[i]["TWOSUBSTANDARDCOUNT"].ToString()),
  1371. THREESUBSTANDARDCOUNT = double.Parse(dt4.Rows[i]["THREESUBSTANDARDCOUNT"].ToString()),
  1372. ONEREFIRECOUNT = double.Parse(dt4.Rows[i]["ONEREFIRECOUNT"].ToString()),
  1373. TWOREFIRECOUNT = double.Parse(dt4.Rows[i]["TWOREFIRECOUNT"].ToString()),
  1374. THREEREFIRECOUNT = double.Parse(dt4.Rows[i]["THREEREFIRECOUNT"].ToString()),
  1375. });
  1376. }
  1377. var results = new List<Result>();
  1378. // 第一个SELECT
  1379. var firstSelect = 本烧出窑总数.Select(ex => new Result
  1380. {
  1381. 一车间 = ex.ONESUBSTANDARDCOUNT,
  1382. 二车间 = ex.TWOSUBSTANDARDCOUNT,
  1383. 三车间 = ex.THREESUBSTANDARDCOUNT
  1384. }).Cast<Result>();
  1385. results.AddRange(firstSelect);
  1386. // 第二个SELECT
  1387. var secondSelect = from b in 本烧出窑总数
  1388. join bc in 本烧次品重烧数 on 1 equals 1 into bcj
  1389. from bc in bcj.DefaultIfEmpty()
  1390. select new Result
  1391. {
  1392. 一车间 = Math.Round(((b.ONESUBSTANDARDCOUNT - bc.ONESUBSTANDARDCOUNT - bc.ONEREFIRECOUNT) / (double)b.ONESUBSTANDARDCOUNT) * 100, 1),
  1393. 二车间 = Math.Round(((b.TWOSUBSTANDARDCOUNT - bc.TWOSUBSTANDARDCOUNT - bc.TWOREFIRECOUNT) / (double)b.TWOSUBSTANDARDCOUNT) * 100, 1),
  1394. 三车间 = Math.Round(((b.THREESUBSTANDARDCOUNT - bc.THREESUBSTANDARDCOUNT - bc.THREEREFIRECOUNT) / (double)b.THREESUBSTANDARDCOUNT) * 100, 1)
  1395. };
  1396. results.AddRange(secondSelect);
  1397. // 第三个SELECT
  1398. var thirdSelect = from b in 本烧出窑总数
  1399. join bc in 本烧次品重烧数 on 1 equals 1 into bcj
  1400. from bc in bcj.DefaultIfEmpty()
  1401. join z in 本烧出窑总数 on 1 equals 1 into zj
  1402. from z in zj.DefaultIfEmpty()
  1403. join zc in 重烧次品重烧数 on 1 equals 1 into zcj
  1404. from zc in zcj.DefaultIfEmpty()
  1405. select new Result
  1406. {
  1407. 一车间 = Math.Round(
  1408. (((b.ONESUBSTANDARDCOUNT - (bc != null ? bc.ONESUBSTANDARDCOUNT : 0) - (bc != null ? bc.ONEREFIRECOUNT : 0)) +
  1409. ((z != null ? z.ONESUBSTANDARDCOUNT : 0) - (zc != null ? zc.ONESUBSTANDARDCOUNT : 0) - (zc != null ? zc.ONEREFIRECOUNT : 0))) /
  1410. (double)(b.ONESUBSTANDARDCOUNT != 0 ? b.ONESUBSTANDARDCOUNT : 1)) * 100,
  1411. 1),
  1412. 二车间 = Math.Round(
  1413. (((b.TWOSUBSTANDARDCOUNT - (bc != null ? bc.TWOSUBSTANDARDCOUNT : 0) - (bc != null ? bc.TWOREFIRECOUNT : 0)) +
  1414. ((z != null ? z.TWOSUBSTANDARDCOUNT : 0) - (zc != null ? zc.TWOSUBSTANDARDCOUNT : 0) - (zc != null ? zc.TWOREFIRECOUNT : 0))) /
  1415. (double)(b.TWOSUBSTANDARDCOUNT != 0 ? b.TWOSUBSTANDARDCOUNT : 1)) * 100,
  1416. 1),
  1417. 三车间 = Math.Round(
  1418. (((b.THREESUBSTANDARDCOUNT - (bc != null ? bc.THREESUBSTANDARDCOUNT : 0) - (bc != null ? bc.THREEREFIRECOUNT : 0)) +
  1419. ((z != null ? z.THREESUBSTANDARDCOUNT : 0) - (zc != null ? zc.THREESUBSTANDARDCOUNT : 0) - (zc != null ? zc.THREEREFIRECOUNT : 0))) /
  1420. (double)(b.THREESUBSTANDARDCOUNT != 0 ? b.THREESUBSTANDARDCOUNT : 1)) * 100,
  1421. 1)
  1422. };
  1423. results.AddRange(thirdSelect);
  1424. DataTable dt = new DataTable();
  1425. dt.Columns.Add("一车间");
  1426. dt.Columns.Add("二车间");
  1427. dt.Columns.Add("三车间");
  1428. foreach (var item in results)
  1429. {
  1430. DataRow dr = dt.NewRow();
  1431. dr["一车间"] = item.一车间;
  1432. dr["二车间"] = item.二车间;
  1433. dr["三车间"] = item.三车间;
  1434. dt.Rows.Add(dr);
  1435. }
  1436. string jsonStr = new JsonResult(dt).ToJson();
  1437. context.Response.Write(jsonStr);
  1438. }
  1439. if (context.Request["m"].ToString() == "Load07")
  1440. {
  1441. string sqlStr = @"SELECT
  1442. --成型小件
  1443. MAX( (
  1444. SELECT
  1445. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  1446. FROM TP_PM_GROUTINGDAILYDETAIL GDD
  1447. INNER JOIN TP_MST_GOODS G ON GDD.GOODSID = G.GOODSID
  1448. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1449. WHERE GDD.VALUEFLAG = 1
  1450. AND GDD.CREATETIME >= TRUNC( sysdate - 7 )
  1451. AND TRUNC( GDD.CREATETIME ) < TRUNC( SYSDATE )
  1452. ) ) AS SMALLGDD,
  1453. --成型大件
  1454. MAX( (
  1455. SELECT
  1456. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  1457. FROM TP_PM_GROUTINGDAILYDETAIL GDD
  1458. INNER JOIN TP_MST_GOODS G ON GDD.GOODSID = G.GOODSID
  1459. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1460. WHERE GDD.VALUEFLAG = 1
  1461. AND GDD.CREATETIME >= TRUNC( sysdate - 7 )
  1462. AND TRUNC( GDD.CREATETIME ) < TRUNC( SYSDATE )
  1463. AND SUBSTR(GDD.GROUTINGLINECODE, 0, 4) NOT IN ('C05B','C05C')
  1464. ) ) AS BIGGDD,
  1465. --半检小件
  1466. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (1,17,118,92,88) THEN 1 ELSE 0 END ) AS SMALLHALF,
  1467. --半检大件
  1468. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (1,17,118,92,88) THEN 1 ELSE 0 END ) AS BIGHALF,
  1469. --施釉小件
  1470. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (65,99) THEN 1 ELSE 0 END ) AS SMALLGLAZE,
  1471. --施釉大件
  1472. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (65,99) THEN 1 ELSE 0 END ) AS BIGGLAZE,
  1473. --烧成小件
  1474. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (10,103) THEN 1 ELSE 0 END ) AS SMALLKILN,
  1475. --烧成大件
  1476. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (10,103) THEN 1 ELSE 0 END ) AS BIGKILN,
  1477. --成检小件
  1478. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001002' ) = 1) AND PD.PROCEDUREID IN (11,104) THEN 1 ELSE 0 END ) AS SMALLCHECK,
  1479. --成检大件
  1480. SUM(CASE WHEN (INSTR( GT.GOODSTYPECODE, '001001' ) = 1) AND PD.PROCEDUREID IN (11,104) THEN 1 ELSE 0 END ) AS BIGCHECK,
  1481. --包装小件
  1482. MAX( (
  1483. SELECT
  1484. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001002' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  1485. FROM TP_PM_FINISHEDPRODUCT F
  1486. INNER JOIN TP_MST_GOODS G ON F.GOODSID = G.GOODSID
  1487. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1488. WHERE F.VALUEFLAG = 1
  1489. AND F.CREATETIME >= TRUNC( sysdate - 7 )
  1490. AND TRUNC( F.CREATETIME ) < TRUNC( SYSDATE )
  1491. ) ) AS SMALLPACK,
  1492. MAX( (
  1493. SELECT
  1494. SUM( CASE WHEN ( INSTR( GT.GOODSTYPECODE, '001001' ) = 1 ) THEN 1 ELSE 0 END ) AS SMALLPACK
  1495. FROM TP_PM_FINISHEDPRODUCT F
  1496. INNER JOIN TP_MST_GOODS G ON F.GOODSID = G.GOODSID
  1497. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1498. WHERE F.VALUEFLAG = 1
  1499. AND F.CREATETIME >= TRUNC( sysdate - 7 )
  1500. AND TRUNC( F.CREATETIME ) < TRUNC( SYSDATE )
  1501. ) ) AS BIGPACK
  1502. FROM
  1503. TP_PM_PRODUCTIONDATA PD
  1504. INNER JOIN TP_MST_GOODS G ON G.GOODSID = PD.GOODSID
  1505. INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1506. WHERE
  1507. PD.VALUEFLAG = 1
  1508. AND PD.CREATETIME >= TRUNC( sysdate - 7 )
  1509. AND TRUNC( PD.CREATETIME ) < TRUNC( SYSDATE )
  1510. ";
  1511. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1512. string jsonStr = new JsonResult(dt).ToJson();
  1513. context.Response.Write(jsonStr);
  1514. }
  1515. if (context.Request["m"].ToString() == "Load06")
  1516. {
  1517. // string sqlStr = @"WITH 一车间半检产量 AS (
  1518. // SELECT
  1519. // COUNT( DISTINCT PD.BARCODE ) AS ONEHALFCHECK
  1520. // FROM
  1521. // TP_PM_PRODUCTIONDATA PD
  1522. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = PD.GOODSID
  1523. // LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID = GOODS.GOODSTYPEID
  1524. // WHERE
  1525. // PD.VALUEFLAG = 1
  1526. // AND PD.PROCEDUREID IN ( 1, 17 )
  1527. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1528. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1529. // AND INSTR( GTP.GOODSTYPECODE, '001002' ) = 1
  1530. // ),
  1531. // 二车间半检产量 AS (
  1532. // SELECT
  1533. // COUNT( DISTINCT PD.BARCODE ) AS TWOHALFCHECK
  1534. // FROM
  1535. // TP_PM_PRODUCTIONDATA PD
  1536. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = PD.GOODSID
  1537. // LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID = GOODS.GOODSTYPEID
  1538. // WHERE
  1539. // PD.VALUEFLAG = 1
  1540. // AND PD.PROCEDUREID IN ( 1, 17 )
  1541. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1542. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1543. // AND INSTR( GTP.GOODSTYPECODE, '001001' ) = 1
  1544. // ),
  1545. // 三车间半检产量 AS (
  1546. // SELECT
  1547. // COUNT( DISTINCT PD.BARCODE ) AS THREEHALFCHECK
  1548. // FROM
  1549. // TP_PM_PRODUCTIONDATA PD
  1550. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = PD.GOODSID
  1551. // LEFT JOIN TP_MST_GOODSTYPE GTP ON GTP.GOODSTYPEID = GOODS.GOODSTYPEID
  1552. // WHERE
  1553. // PD.VALUEFLAG = 1
  1554. // AND PD.PROCEDUREID IN ( 118, 92, 88 )
  1555. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1556. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1557. // ),
  1558. // 车间干补数 AS (
  1559. // SELECT
  1560. // 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,
  1561. // 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,
  1562. // SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) AS THREESPECIALREPAIR
  1563. // FROM
  1564. // TP_PM_PRODUCTIONDATA PD
  1565. // LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  1566. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = GDD.GOODSID
  1567. // LEFT JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = GOODS.GOODSTYPEID
  1568. // WHERE
  1569. // PD.PROCEDUREID = 18
  1570. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1571. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1572. // ),
  1573. // 本烧出窑总数 AS (
  1574. // SELECT
  1575. // --本烧一车间数
  1576. // 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,
  1577. // --本烧二车间数
  1578. // 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,
  1579. // --本烧三车间数
  1580. // SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) THREESUBSTANDARDCOUNT
  1581. // FROM
  1582. // TP_PM_PRODUCTIONDATA PD
  1583. // LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = PD.BARCODE
  1584. // INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
  1585. // INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
  1586. // WHERE
  1587. // PD.ACCOUNTID = 1
  1588. // AND (
  1589. // ( 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' ) ) )
  1590. // OR
  1591. // ( 11 = 58 AND ( ( PD.PROCEDUREID = 58 AND PD.VALUEFLAG = '1' ) OR ( PD.PROCEDUREID = 104 AND PD.ISREFIRE = '6' AND PD.CHECKFLAG = '1' ) ) )
  1592. // OR
  1593. // ( 11 NOT IN ( 11, 58 ) AND PD.VALUEFLAG = '1' AND PD.PROCEDUREID = 11 )
  1594. // )
  1595. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1596. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1597. // ),
  1598. // 车间冷补数 AS (
  1599. // SELECT
  1600. // 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,
  1601. // 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,
  1602. // SUM( CASE WHEN INSTR( GDD.GROUTINGLINECODE, 'C' ) = 1 THEN 1 ELSE 0 END ) AS THREELENGBU
  1603. // FROM
  1604. // TP_PM_PRODUCTIONDATA PD
  1605. // LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON PD.BARCODE = GDD.BARCODE
  1606. // LEFT JOIN TP_MST_GOODS GOODS ON GOODS.GOODSID = GDD.GOODSID
  1607. // LEFT JOIN TP_MST_GOODSTYPE GT ON GT.GOODSTYPEID = GOODS.GOODSTYPEID
  1608. // WHERE
  1609. // PD.PROCEDUREID IN (113,135)
  1610. // AND PD.CREATETIME >= TRUNC( sysdate-7 )
  1611. // AND TRUNC( PD.CREATETIME ) <= TRUNC( SYSDATE )
  1612. // )
  1613. // SELECT
  1614. // TO_CHAR(ROUND(车间干补数.ONESPECIALREPAIR / 一车间半检产量.ONEHALFCHECK, 6) * 100,'fm99990.0') AS ONESPECIALREPAIR,
  1615. // TO_CHAR(ROUND(车间干补数.TWOSPECIALREPAIR /二车间半检产量.TWOHALFCHECK, 6) * 100,'fm99990.0') AS TWOSPECIALREPAIR,
  1616. // TO_CHAR(ROUND(车间干补数.THREESPECIALREPAIR / 三车间半检产量.THREEHALFCHECK, 6) * 100,'fm99990.0') AS THREESPECIALREPAIR,
  1617. // TO_CHAR(ROUND(车间冷补数.ONELENGBU / 本烧出窑总数.ONESUBSTANDARDCOUNT, 6) * 100,'fm99990.0') AS ONELENGBU,
  1618. // TO_CHAR(ROUND(车间冷补数.TWOLENGBU / 本烧出窑总数.TWOSUBSTANDARDCOUNT, 6) * 100,'fm99990.0') AS TWOLENGBU,
  1619. // TO_CHAR(ROUND(车间冷补数.THREELENGBU / 本烧出窑总数.THREESUBSTANDARDCOUNT, 6) * 100,'fm99990.0') AS THREELENGBU
  1620. // FROM
  1621. // 车间干补数
  1622. // INNER JOIN 车间冷补数 ON 1 = 1
  1623. // LEFT JOIN 一车间半检产量 ON 1 = 1
  1624. // LEFT JOIN 二车间半检产量 ON 1 = 1
  1625. // LEFT JOIN 三车间半检产量 ON 1 = 1
  1626. // LEFT JOIN 本烧出窑总数 ON 1 = 1
  1627. //";
  1628. string sqlStr = @"with 成检检验数 AS (
  1629. SELECT
  1630. pd.GOODSCODE,
  1631. COUNT( DISTINCT pd.BARCODE) AS 数量 FROM TP_PM_PRODUCTIONDATA pd
  1632. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1633. WHERE pd.PROCEDUREID IN( 125,131)
  1634. AND pd.VALUEFLAG=1
  1635. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1636. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1637. GROUP BY pd.GOODSCODE
  1638. ),成检废品数 AS (
  1639. SELECT
  1640. pd.GOODSCODE,
  1641. COUNT( DISTINCT pd.BARCODE) AS 数量 FROM TP_PM_PRODUCTIONDATA pd
  1642. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1643. WHERE pd.PROCEDUREID IN( 125,131)
  1644. AND pd.VALUEFLAG=1
  1645. AND pd.GOODSLEVELTYPEID in(7,13)
  1646. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1647. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1648. GROUP BY pd.GOODSCODE
  1649. )
  1650. SELECT
  1651. *
  1652. FROM(
  1653. SELECT
  1654. '成检' 工序,
  1655. TO_CHAR(成检检验数.GOODSCODE) AS GOODSCODE,
  1656. 成检检验数.数量 AS 检验数,
  1657. DECODE(NVL(成检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(成检废品数.数量, 0)) /DECODE(NVL(成检检验数.数量, 1),0,1,NVL(成检检验数.数量, 1))) * 100,'fm99990.0')) AS 废品率
  1658. FROM 成检检验数
  1659. LEFT JOIN 成检废品数 ON 成检废品数.GOODSCODE=成检检验数.GOODSCODE
  1660. ORDER BY DECODE(NVL(成检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(成检废品数.数量, 0)) /DECODE(NVL(成检检验数.数量, 1),0,1,NVL(成检检验数.数量, 1))) * 100,'fm99990.0')) DESC
  1661. ) WHERE ROWNUM<6";
  1662. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1663. string jsonStr = new JsonResult(dt).ToJson();
  1664. context.Response.Write(jsonStr);
  1665. }
  1666. if (context.Request["m"].ToString() == "Load09")
  1667. {
  1668. string sqlStr = @"SELECT
  1669. TO_CHAR(TT.plandate, 'MM-DD')AS plandate ,
  1670. TT.INSPECTIONQUANTITY,
  1671. 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,
  1672. 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
  1673. FROM (
  1674. SELECT
  1675. t.plandate
  1676. ,SUM(t.planquantity) PLANINSPECTIONQUANTITY
  1677. ,SUM(t.INSPECTIONQUANTITY) INSPECTIONQUANTITY
  1678. ,SUM(t.unqualifiedquantity) BUHEGESHU
  1679. FROM (SELECT
  1680. fp.plandate
  1681. ,SUM(fp.planinspectionquantity) planquantity
  1682. ,SUM(fp.inspectionquantity) INSPECTIONQUANTITY
  1683. ,COUNT(DISTINCT fd.barcode) unqualifiedquantity
  1684. FROM tp_pm_fqcitemsplan fp
  1685. LEFT JOIN tp_pm_fqcitemsdata fd
  1686. ON fd.planid = fp.planid
  1687. AND fd.isqualified = 0
  1688. WHERE fp.plandate > TRUNC(SYSDATE - 7)
  1689. AND fp.plandate <= TRUNC(SYSDATE)
  1690. AND fp.configtype IN ('大件', '小件')
  1691. AND fp.planinspectionquantity <> 0
  1692. GROUP BY fp.plandate) t
  1693. GROUP BY t.plandate
  1694. ) TT ORDER BY plandate ";
  1695. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1696. string jsonStr = new JsonResult(dt).ToJson();
  1697. context.Response.Write(jsonStr);
  1698. }
  1699. if (context.Request["m"].ToString() == "Load04")
  1700. {
  1701. string sqlStr = @"SELECT
  1702. *
  1703. FROM
  1704. (
  1705. SELECT
  1706. ne.GOODCODE,
  1707. COUNT( DISTINCT FD.BARCODE ) AS COUNTS
  1708. FROM
  1709. TP_PM_FINISHEDPRODUCT FD
  1710. INNER JOIN TP_MST_GOODSNEW ne ON ne.GOODCODE = FD.GOODSCODE
  1711. WHERE
  1712. FD.VALUEFLAG = 1
  1713. AND FD.CREATETIME >= TRUNC( SYSDATE - 7 )
  1714. GROUP BY
  1715. ne.GOODCODE
  1716. )
  1717. WHERE
  1718. ROWNUM <6";
  1719. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1720. string jsonStr = new JsonResult(dt).ToJson();
  1721. context.Response.Write(jsonStr);
  1722. }
  1723. #region 模具库存周转率,产品 SKU 周转率
  1724. //if (context.Request["m"].ToString() == "Load10") 请勿删除 根据要求后期可能会再次使用
  1725. // { List<CDAParameter> sqlPara = new List<CDAParameter>();
  1726. // sqlPara.Add(new CDAParameter("DATEBEGIN", DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")+ " 00:00:00", DataType.DateTime));
  1727. // sqlPara.Add(new CDAParameter("DATEEND", DateTime.Now.AddDays(0).ToString("yyyy-MM-dd")+ " 23:59:59", DataType.DateTime));
  1728. // string sqlStr = @"SELECT
  1729. // *
  1730. // FROM
  1731. // (
  1732. // SELECT
  1733. // TO_CHAR( '模具' || GOODSCODE ) AS 地点,
  1734. // GOODSCODE,
  1735. // 时间差值,
  1736. // to_char( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) / 24 ), 'fm9999990.0' ) ) 周转周期
  1737. // FROM
  1738. // (
  1739. // SELECT
  1740. // mch.GOODSCODE,
  1741. // SUM( mch.时间差 ) AS 时间差值,
  1742. // COUNT( DISTINCT goodsmould.MOULDCODE ) AS 产量
  1743. // FROM
  1744. // (
  1745. // SELECT
  1746. // mch.MOULDCODE,
  1747. // mch.GOODSCODE,
  1748. // TO_CHAR( ( ceil( ( ( mch.CREATETIME - mchh.CREATETIME ) ) * 24 ) ), 'fm9999990' ) AS 时间差
  1749. // FROM
  1750. // tp_pc_mouldchangehistory mch
  1751. // LEFT JOIN tp_pc_mouldchangehistory mchh ON mchh.MOULDCODE = mch.MOULDCODE
  1752. // AND mchh.operationtype = 1
  1753. // WHERE
  1754. // mch.accountid = 1
  1755. // AND mch.operationtype = 6 --operationtype=1 新增入库 operationtype=6 库存上线(出库) -1为变更型号
  1756. // AND mch.operationtype >- 1
  1757. // AND mch.createtime >= @DATEBEGIN@
  1758. // AND mch.createtime <= @DATEEND@
  1759. // ) mch
  1760. // LEFT JOIN tp_pc_mouldchangehistory goodsmould ON goodsmould.MOULDCODE = mch.MOULDCODE
  1761. // WHERE
  1762. // goodsmould.accountid = 1
  1763. // AND goodsmould.operationtype = 6
  1764. // AND goodsmould.operationtype >- 1
  1765. // AND goodsmould.createtime >= @DATEBEGIN@
  1766. // AND goodsmould.createtime <= @DATEEND@
  1767. // GROUP BY
  1768. // mch.GOODSCODE
  1769. // ORDER BY
  1770. // SUM( mch.时间差 ) DESC
  1771. // )
  1772. // ORDER BY
  1773. // TO_NUMBER( ( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) ), 'fm9999990.0000' ) ) ) DESC
  1774. // )
  1775. // WHERE
  1776. // ROWNUM <= 4 UNION ALL
  1777. // SELECT
  1778. // *
  1779. // FROM
  1780. // (
  1781. // SELECT
  1782. // TO_CHAR( '精坯' || GOODSCODE ) AS 地点,
  1783. // GOODSCODE,
  1784. // 时间差值,
  1785. // to_char( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) / 24 ), 'fm9999990.0' ) ) 周转周期
  1786. // FROM
  1787. // (
  1788. // SELECT
  1789. // inoutPD.GOODSCODE,
  1790. // SUM( 时间差 ) AS 时间差值,
  1791. // COUNT( DISTINCT GOODSPD.BARCODE ) 产量
  1792. // FROM
  1793. // (
  1794. // SELECT
  1795. // OUTPD.BARCODE,
  1796. // OUTPD.GOODSCODE,
  1797. // TO_CHAR( ( ceil( ( ( OUTPD.CREATETIME - INPD.CREATETIME ) * 24 ) ) ), 'fm9999990' ) AS 时间差
  1798. // FROM
  1799. // TP_PM_PRODUCTIONDATA OUTPD
  1800. // INNER JOIN TP_PM_PRODUCTIONDATA INPD ON OUTPD.BARCODE = INPD.BARCODE
  1801. // AND INPD.PROCEDUREID IN ( 53, 97 )
  1802. // AND INPD.VALUEFLAG = 1
  1803. // WHERE
  1804. // OUTPD.PROCEDUREID IN ( 119, 64, 81 )
  1805. // AND OUTPD.VALUEFLAG = 1
  1806. // AND OUTPD.createtime >= @DATEBEGIN@
  1807. // AND OUTPD.createtime <= @DATEEND@
  1808. // ) inoutPD
  1809. // INNER JOIN TP_PM_PRODUCTIONDATA GOODSPD ON GOODSPD.BARCODE = inoutPD.BARCODE
  1810. // WHERE
  1811. // GOODSPD.PROCEDUREID IN ( 119, 64, 81 )
  1812. // AND GOODSPD.VALUEFLAG = 1
  1813. // AND GOODSPD.createtime >= @DATEBEGIN@
  1814. // AND GOODSPD.createtime <= @DATEEND@
  1815. // GROUP BY
  1816. // inoutPD.GOODSCODE
  1817. // )
  1818. // ORDER BY
  1819. // TO_NUMBER( ( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) ), 'fm9999990.0000' ) ) ) DESC
  1820. // )
  1821. // WHERE
  1822. // ROWNUM <= 3 UNION ALL
  1823. // SELECT
  1824. // *
  1825. // FROM
  1826. // (
  1827. // SELECT
  1828. // TO_CHAR( '施釉' || GOODSCODE ) AS 地点,
  1829. // GOODSCODE,
  1830. // 时间差值,
  1831. // to_char( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) / 24 ), 'fm9999990.0' ) ) 周转周期
  1832. // FROM
  1833. // (
  1834. // SELECT
  1835. // inoutPD.GOODSCODE,
  1836. // SUM( 时间差 ) AS 时间差值,
  1837. // COUNT( DISTINCT GOODSPD.BARCODE ) 产量
  1838. // FROM
  1839. // (
  1840. // SELECT
  1841. // OUTPD.BARCODE,
  1842. // OUTPD.GOODSCODE,
  1843. // TO_CHAR( ( ceil( ( ( OUTPD.CREATETIME - INPD.CREATETIME ) * 24 ) ) ), 'fm9999990' ) AS 时间差
  1844. // FROM
  1845. // TP_PM_PRODUCTIONDATA OUTPD
  1846. // INNER JOIN TP_PM_PRODUCTIONDATA INPD ON OUTPD.BARCODE = INPD.BARCODE
  1847. // AND INPD.PROCEDUREID IN ( 99, 65 )
  1848. // AND INPD.VALUEFLAG = 1
  1849. // WHERE
  1850. // OUTPD.PROCEDUREID IN ( 5, 101 )
  1851. // AND OUTPD.VALUEFLAG = 1
  1852. // AND OUTPD.createtime >= @DATEBEGIN@
  1853. // AND OUTPD.createtime <= @DATEEND@
  1854. // ) inoutPD
  1855. // INNER JOIN TP_PM_PRODUCTIONDATA GOODSPD ON GOODSPD.BARCODE = inoutPD.BARCODE
  1856. // WHERE
  1857. // GOODSPD.PROCEDUREID IN ( 5, 101 )
  1858. // AND GOODSPD.VALUEFLAG = 1
  1859. // AND GOODSPD.createtime >= @DATEBEGIN@
  1860. // AND GOODSPD.createtime <= @DATEEND@
  1861. // GROUP BY
  1862. // inoutPD.GOODSCODE
  1863. // )
  1864. // ORDER BY
  1865. // TO_NUMBER( ( TO_CHAR( ( NVL( 时间差值, 0 ) / NVL( 产量, 1 ) ), 'fm9999990.0000' ) ) ) DESC
  1866. // )
  1867. // WHERE
  1868. // ROWNUM <=3";
  1869. // DataTable dt = conn.ExecuteDatatable(sqlStr, sqlPara.ToArray());
  1870. // string jsonStr = new JsonResult(dt).ToJson();
  1871. // context.Response.Write(jsonStr);
  1872. // }
  1873. #endregion
  1874. if (context.Request["m"].ToString() == "Load91")
  1875. {
  1876. string sqlStr = @"
  1877. SELECT
  1878. TO_char(T.ALLCOUNT) AS 缺陷数,
  1879. TO_char(T.INSPECTITEM) AS 缺陷名称,
  1880. TO_char(T.SUMCOUNT)缺陷总数,
  1881. TO_char(T.SUMCOUNT1)抽检数,
  1882. 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 缺陷占比
  1883. FROM (
  1884. SELECT
  1885. COUNT(1) ALLCOUNT,
  1886. TP_PM_FQCITEMSDATA.INSPECTITEM,
  1887. SUM1.SUMCOUNT,
  1888. SUM2.SUMCOUNT1
  1889. FROM TP_PM_FQCITEMSDATA
  1890. LEFT JOIN (
  1891. SELECT
  1892. COUNT(1) SUMCOUNT,
  1893. VALUEFLAG
  1894. FROM TP_PM_FQCITEMSDATA
  1895. WHERE TP_PM_FQCITEMSDATA.VALUEFLAG = 1
  1896. AND TRUNC(TP_PM_FQCITEMSDATA.CREATETIME) = TRUNC(SYSDATE)
  1897. AND TP_PM_FQCITEMSDATA.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1898. AND TP_PM_FQCITEMSDATA.ISQUALIFIED = 0
  1899. GROUP BY
  1900. VALUEFLAG
  1901. ) SUM1 ON SUM1.VALUEFLAG = TP_PM_FQCITEMSDATA.VALUEFLAG
  1902. LEFT JOIN (
  1903. SELECT
  1904. COUNT(1) SUMCOUNT1,
  1905. INSPECTITEM
  1906. FROM TP_PM_FQCITEMSDATA
  1907. WHERE TP_PM_FQCITEMSDATA.VALUEFLAG = 1
  1908. AND TRUNC(TP_PM_FQCITEMSDATA.CREATETIME) = TRUNC(SYSDATE)
  1909. AND TP_PM_FQCITEMSDATA.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1910. GROUP BY
  1911. INSPECTITEM
  1912. ) SUM2 ON SUM2.INSPECTITEM = TP_PM_FQCITEMSDATA.INSPECTITEM
  1913. WHERE TP_PM_FQCITEMSDATA.VALUEFLAG = 1
  1914. AND TRUNC(TP_PM_FQCITEMSDATA.CREATETIME)
  1915. = TRUNC(SYSDATE)
  1916. AND TP_PM_FQCITEMSDATA.INSPECTTYPE IN (616, 617, 653, 654, 647)
  1917. AND TP_PM_FQCITEMSDATA.ISQUALIFIED = 0
  1918. GROUP BY
  1919. TP_PM_FQCITEMSDATA.INSPECTITEM,
  1920. SUM1.SUMCOUNT,
  1921. SUM2.SUMCOUNT1
  1922. ORDER BY
  1923. ALLCOUNT DESC
  1924. ) T
  1925. WHERE ROWNUM < 6";
  1926. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1927. string jsonStr = new JsonResult(dt).ToJson();
  1928. context.Response.Write(jsonStr);
  1929. }
  1930. if (context.Request["m"].ToString() == "Load10")
  1931. {
  1932. string sqlStr = @"WITH 半检检验数 AS (
  1933. SELECT
  1934. pd.GOODSCODE,
  1935. COUNT( DISTINCT pd.BARCODE) AS 数量
  1936. FROM TP_PM_PRODUCTIONDATA pd
  1937. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1938. WHERE pd.PROCEDUREID IN( 117,89,95,61)
  1939. AND pd.VALUEFLAG=1
  1940. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1941. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1942. GROUP BY pd.GOODSCODE
  1943. ),
  1944. 半检废品数 AS (
  1945. SELECT
  1946. pd.GOODSCODE,
  1947. COUNT( DISTINCT pd.BARCODE) AS 数量 FROM TP_PM_SEMICHECK pd
  1948. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE=pd.BARCODE AND gdd.TESTMOULDFLAG=0
  1949. WHERE pd.PROCEDUREID IN( 117,89,95,61,90,96)
  1950. AND pd.VALUEFLAG=1
  1951. AND pd.GOODSLEVELTYPEID in(7,13,14)
  1952. AND pd.CREATETIME >=TRUNC(NEXT_DAY(SYSDATE-8,1)+1)
  1953. AND pd.CREATETIME< TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1
  1954. GROUP BY pd.GOODSCODE
  1955. )
  1956. SELECT
  1957. *
  1958. FROM(
  1959. SELECT
  1960. '半检' 工序,
  1961. TO_CHAR(半检检验数.GOODSCODE) AS GOODSCODE,
  1962. 半检检验数.数量 AS 检验数,
  1963. DECODE(NVL(半检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(半检废品数.数量, 0)) /DECODE(NVL(半检检验数.数量, 1),0,1,NVL(半检检验数.数量, 1))) * 100,'fm99990.0')) AS 废品率
  1964. FROM 半检检验数
  1965. LEFT JOIN 半检废品数 ON 半检废品数.GOODSCODE=半检检验数.GOODSCODE
  1966. ORDER BY DECODE(NVL(半检废品数.数量, 0),0,'0%',TO_CHAR(((NVL(半检废品数.数量, 0)) /DECODE(NVL(半检检验数.数量, 1),0,1,NVL(半检检验数.数量, 1))) * 100,'fm99990.0')) DESC
  1967. ) WHERE ROWNUM<6
  1968. ";
  1969. DataTable dt = conn.ExecuteDatatable(sqlStr);
  1970. string jsonStr = new JsonResult(dt).ToJson();
  1971. context.Response.Write(jsonStr);
  1972. }
  1973. }
  1974. }
  1975. public bool IsReusable
  1976. {
  1977. get
  1978. {
  1979. return false;
  1980. }
  1981. }
  1982. public class sqlResultOne
  1983. {
  1984. public double ONESUBSTANDARDCOUNT { get; set; }
  1985. public double TWOSUBSTANDARDCOUNT { get; set; }
  1986. public double THREESUBSTANDARDCOUNT { get; set; }
  1987. }
  1988. public class sqlResultTwo : sqlResultOne
  1989. {
  1990. public double ONEREFIRECOUNT { get; set; }
  1991. public double TWOREFIRECOUNT { get; set; }
  1992. public double THREEREFIRECOUNT { get; set; }
  1993. }
  1994. public class Result
  1995. {
  1996. public double 一车间 { get; set; }
  1997. public double 二车间 { get; set; }
  1998. public double 三车间 { get; set; }
  1999. }
  2000. }