LayeredWaterDao.xml 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="cn.com.victorysoft.business.cyyzs.dao.LayeredWaterDao">
  4. <sql id="Base_Column_List">
  5. RECORD_DATE
  6. , DWDM, su.UNITNAME DWMC, QKDM, sb.BLOCKNAME QKMC,
  7. YCLX, (select flag_name from sys_flag where category_code = 'YCLX' and flag_code = yclx) YCLXMC,
  8. GYLX, (select flag_name from sys_flag where category_code = 'GYLX' and flag_code = gylx) GYLXMC,
  9. WELLNAME, LAYER, PLAN_DAILY_WATER, PP, PC, PT, DAILY_WATER
  10. </sql>
  11. <select id="selectList" parameterType="cn.com.victorysoft.business.cyyzs.param.LayeredWaterParam"
  12. resultType="cn.com.victorysoft.business.cyyzs.entity.LayeredWater">
  13. select * from (
  14. SELECT RECORD_DATE, DWDM, replace(su.FULLNAME,'胜利油田分公司/','') DWMC, QKDM, sb.BLOCKNAME QKMC, YCLX,
  15. (SELECT flag_name FROM sys_flag WHERE category_code = 'YCLX' AND flag_code = yclx) YCLXMC,
  16. GYLX,
  17. (SELECT flag_name FROM sys_flag WHERE category_code = 'GYLX' AND flag_code = gylx) GYLXMC,
  18. WELLNAME, LAYER, PLAN_DAILY_WATER, PP, PC, PT, DAILY_WATER, SECTION
  19. FROM WELL_SECTION_DAILY wsd
  20. LEFT JOIN WATER_WELL_BASIC web ON wsd.WELLNAME = web.JH
  21. LEFT JOIN WELL_PROCESS_TYPE wpt ON wsd.WELLNAME = wpt.JH and wpt.fwsj &lt;= #{enddate,jdbcType=VARCHAR} and rownum = '1'
  22. LEFT JOIN sys_unitinfo su ON wsd.UNITCODE = su.UNITCODE
  23. LEFT JOIN sys_blockinfo sb ON web.QKDM = sb.BLOCKCODE
  24. WHERE RECORD_DATE = #{enddate,jdbcType=VARCHAR}
  25. AND wsd.UNITCODE IN (SELECT unitcode
  26. FROM SYS_UNITINFO
  27. START WITH UNITCODE = '30200000'
  28. CONNECT BY PRIOR UNITCODE = P_UNITCODE)) a
  29. inner join
  30. (select SECTION,WELLNAME,
  31. ROUND(sum(DAILY_WATER), 2) ljzsl,
  32. ROUND(sum(OPEN_TIME), 2) ljzssj,
  33. case when sum(OPEN_TIME) = '0' then 0 when sum(OPEN_TIME) = null then 0 else
  34. ROUND(sum(DAILY_WATER)/sum(OPEN_TIME), 2) end rznl,
  35. case when sum(PLAN_DAILY_WATER) = '0' then 0 when sum(PLAN_DAILY_WATER) = null then 0 else
  36. ROUND((sum(DAILY_WATER)/sum(PLAN_DAILY_WATER)), 2) end cz,
  37. case
  38. when sum(DAILY_WATER) = 0 then '不检'
  39. when
  40. (case when sum(PLAN_DAILY_WATER) != 0 then sum(DAILY_WATER)/sum(PLAN_DAILY_WATER) end) >= 0.8 and (case when sum(PLAN_DAILY_WATER) != 0 then sum(DAILY_WATER)/sum(PLAN_DAILY_WATER) end) &lt;= 1.2 then '合格'
  41. when (case when sum(PLAN_DAILY_WATER) != 0 then sum(DAILY_WATER)/sum(PLAN_DAILY_WATER) end) &lt; 0.8 then '欠注'
  42. when (case when sum(PLAN_DAILY_WATER) != 0 then sum(DAILY_WATER)/sum(PLAN_DAILY_WATER) end) > 1.2 then '超注'
  43. else '不清' end fxpj
  44. from WELL_SECTION_DAILY
  45. WHERE RECORD_DATE >= #{startdate,jdbcType=VARCHAR} AND RECORD_DATE &lt;= #{enddate,jdbcType=VARCHAR}
  46. group by SECTION,WELLNAME) b on a.SECTION = b.SECTION and a.WELLNAME = b.WELLNAME
  47. where
  48. a.DWDM in (select unitcode
  49. from SYS_UNITINFO
  50. start with UNITCODE = #{unitcode,jdbcType=VARCHAR}
  51. connect by prior UNITCODE = P_UNITCODE)
  52. <if test="blockcode != null and blockcode != ''">
  53. and a.QKDM = #{blockcode,jdbcType=VARCHAR}
  54. </if>
  55. <if test="oiltype != null and oiltype != ''">
  56. and a.YCLX = #{oiltype,jdbcType=VARCHAR}
  57. </if>
  58. <if test="crafttype != null and crafttype != ''">
  59. and a.GYLX = #{crafttype,jdbcType=VARCHAR}
  60. </if>
  61. <if test="wellname != null and wellname != ''">
  62. and a.WELLNAME = #{wellname,jdbcType=VARCHAR}
  63. </if>
  64. <if test="evaluation != null and evaluation != ''">
  65. and fxpj = #{evaluation,jdbcType=VARCHAR}
  66. </if>
  67. order by a.WELLNAME
  68. </select>
  69. </mapper>