DcPageOfficeHhslReportDao.xml 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  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.goldenwater.dcproj.dao.DcPageOfficeHhslReportDao">
  4. <select id="getInspectorTime" resultType="java.util.HashMap">
  5. SELECT
  6. DISTINCT T.ID, T.PNM, T2.DAY_TIME, T2.DAYS
  7. FROM
  8. (
  9. SELECT
  10. <choose>
  11. <when test="id.length()==6">
  12. substr(id,0,6)
  13. </when>
  14. <when test="id.length()==9">
  15. substr(id,0,9)
  16. </when>
  17. <otherwise>
  18. id
  19. </otherwise>
  20. </choose>
  21. ID, LISTAGG(PNM, '、') WITHIN GROUP(ORDER BY ID) PNM
  22. FROM BIS_INSP_ALL A
  23. WHERE
  24. LENGTH(ID)=12
  25. AND ID LIKE #{id} || '%'
  26. GROUP BY
  27. <choose>
  28. <when test="id.length()==6">
  29. substr(id,0,6)
  30. </when>
  31. <when test="id.length()==9">
  32. substr(id,0,9)
  33. </when>
  34. <otherwise>
  35. id
  36. </otherwise>
  37. </choose>
  38. ) T
  39. LEFT JOIN
  40. (
  41. SELECT
  42. Q.ID,Q1.PERS_NAME,Q1.ORG_NM,Q1.DPPOST,Q.PERTYPE,Q1.ADM_DUTY
  43. FROM BIS_INSP_ALL_RLATION Q
  44. INNER JOIN
  45. BIS_INSP_ALL_RLATION_PERS Q1 ON Q.PERSID=Q1.GUID
  46. WHERE LENGTH(Q.ID)=12
  47. ) T1 ON T.ID = T1.ID
  48. LEFT JOIN
  49. (
  50. SELECT
  51. ID,TO_CHAR(A.STTM, 'YYYY"年"MM"月"DD"日"') || '至' || TO_CHAR(A.ENTM, 'MM"月"DD"日"') AS DAY_TIME,
  52. ROUND(TO_NUMBER(A.ENTM - A.STTM)) AS DAYS
  53. FROM BIS_INSP_ALL A
  54. WHERE ID = #{id}
  55. ) T2 ON T.ID=T2.ID
  56. </select>
  57. <select id="getInspectorGroupAndPer" resultType="java.util.HashMap">
  58. SELECT DISTINCT
  59. T.ID,
  60. T.PNM,
  61. LISTAGG(T1.PERS_NAME, ',') WITHIN GROUP(ORDER BY T.ID, T.PNM) GROUP_PER
  62. FROM
  63. (
  64. SELECT
  65. id ID,
  66. LISTAGG(PNM, '、') WITHIN GROUP(ORDER BY ID) PNM
  67. FROM
  68. BIS_INSP_ALL A
  69. WHERE
  70. LENGTH( ID ) = 12
  71. AND ID LIKE #{id} || '%'
  72. GROUP BY
  73. id
  74. ) T
  75. LEFT JOIN (
  76. SELECT
  77. Q.ID,
  78. Q1.PERS_NAME,
  79. Q1.ORG_NM,
  80. Q1.DPPOST,
  81. Q.PERTYPE,
  82. Q1.ADM_DUTY
  83. FROM
  84. BIS_INSP_ALL_RLATION Q
  85. INNER JOIN BIS_INSP_ALL_RLATION_PERS Q1 ON Q.PERSID = Q1.GUID
  86. WHERE
  87. LENGTH( Q.ID ) = 12
  88. AND Q.ID LIKE #{id} || '%'
  89. ) T1 ON T.ID = T1.ID
  90. group by T.ID, T.PNM
  91. </select>
  92. <select id="getInspectorCity" resultType="java.util.HashMap">
  93. WITH P AS (
  94. SELECT Q.ID,
  95. Q1.ORG_NM,
  96. Q1.DPPOST,
  97. CASE
  98. WHEN Q.PERTYPE = '1' THEN
  99. '组长'
  100. WHEN Q.PERTYPE = '2' THEN
  101. '组员'
  102. WHEN Q.PERTYPE = '3' THEN
  103. '联络员'
  104. WHEN Q.PERTYPE = '4' THEN
  105. '专家'
  106. ELSE ''
  107. END AS PERTYPE,
  108. Q1.PERS_NAME,
  109. Q1.ADM_DUTY
  110. FROM BIS_INSP_ALL_RLATION Q
  111. INNER JOIN BIS_INSP_ALL_RLATION_PERS Q1 ON Q.PERSID = Q1.GUID
  112. ORDER BY Q.PERTYPE
  113. ),
  114. O AS (
  115. SELECT ID, LISTAGG(AD_FULL_NAME, ',') WITHIN GROUP(ORDER BY ID) AD_NAME FROM (
  116. SELECT DISTINCT O.ID, ad.AD_FULL_NAME
  117. FROM BIS_INSP_ALL_OBJ O
  118. LEFT JOIN
  119. (SELECT * FROM ATT_JSKEJIAN_FLKDIS_RGSTR WHERE STATE = '2') R ON O.OBJ_ID = R.OBJ_ID
  120. left join ATT_AD_X_BASE ad on ad.ad_code = R.ad_code
  121. WHERE R.ID IS NOT NULL
  122. AND LENGTH(O.ID) = 12
  123. AND O.ID LIKE #{id} || '%'
  124. ) a
  125. GROUP BY ID
  126. )
  127. SELECT DISTINCT T.ID,
  128. T.PNM,
  129. O.AD_NAME,
  130. LISTAGG(CONCAT(P.PERTYPE, P.PERS_NAME), ',') WITHIN GROUP(ORDER BY T.ID) GROUP_PER
  131. FROM (
  132. SELECT ID,
  133. LISTAGG(PNM, '、') WITHIN GROUP(ORDER BY ID) PNM
  134. FROM BIS_INSP_ALL A
  135. WHERE LENGTH(ID) = 12
  136. AND ID LIKE #{id} || '%'
  137. GROUP BY ID
  138. ) T
  139. LEFT JOIN P ON T.ID = P.ID
  140. LEFT JOIN O ON T.ID = O.ID
  141. GROUP BY T.ID, T.PNM, O.AD_NAME
  142. </select>
  143. <select id="getQestions" resultType="java.util.HashMap">
  144. SELECT A.*, AD.AD_NAME AS CITY
  145. FROM (
  146. SELECT
  147. SUBSTR(AD.AD_CODE, 0, 4) || '00000000' AD_CODE, COUNT( Q.PBLM_ID ) Q_NUM
  148. FROM BIS_INSP_ALL_OBJ O
  149. LEFT JOIN BIS_INSP_PBLM Q ON O.OBJ_ID = Q.OBJ_ID
  150. LEFT JOIN (SELECT * FROM ATT_JSKEJIAN_FLKDIS_RGSTR WHERE STATE = '2') R ON O.OBJ_ID = R.OBJ_ID
  151. LEFT JOIN ATT_AD_X_BASE AD ON AD.AD_CODE = R.AD_CODE
  152. WHERE
  153. R.ID IS NOT NULL
  154. AND Q.PBLM_ID IS NOT NULL
  155. AND LENGTH(O.ID) = 12
  156. AND O.ID LIKE #{id} || '%'
  157. GROUP BY O.ID, SUBSTR(AD.AD_CODE, 0, 4) || '00000000'
  158. ) A
  159. LEFT JOIN ATT_AD_X_BASE AD ON A.AD_CODE = AD.AD_CODE
  160. </select>
  161. <resultMap id="HhslQuestionsDto" type="cn.com.goldenwater.dcproj.dto.HhslQuestionsDto">
  162. <id column="id" property="id"/>
  163. <id column="SHI" property="shi"/>
  164. <result column="name" property="name"/>
  165. <result column="STTM" property="sttm"/>
  166. <result column="ENTM" property="entm"/>
  167. <result column="SHI_NM" property="shiNm"/>
  168. <!--
  169. collection 标签:用于定义关联的list集合类型的封装规则
  170. property:对应三级分类的list属性名
  171. ofType:集合的类型,三级分类的vo
  172. -->
  173. <collection property="xianList" ofType="cn.com.goldenwater.dcproj.dto.Xian">
  174. <id column="xian" property="xian"/>
  175. <result column="XIAN_NM" property="xianNm"/>
  176. <result column="Q_ID" property="qId"/>
  177. <result column="Q_NUM" property="qNum"/>
  178. </collection>
  179. </resultMap>
  180. <select id="getQestions2" resultMap="HhslQuestionsDto">
  181. WITH a AS (
  182. SELECT
  183. A.ID,
  184. SUBSTR( AD.AD_CODE, 0, 4 ) || '00000000' SHI,
  185. A.PNM as NAME,
  186. A.STTM,
  187. A.ENTM,
  188. SUBSTR( AD.AD_CODE, 0, 6 ) || '00000000' XIAN,
  189. AD.AD_NAME XIAN_NM,
  190. COUNT( SUBSTR( AD.AD_CODE, 0, 6 ) || '00000000' ) Q_NUM,
  191. LISTAGG(Q.PBLM_ID, ',') WITHIN GROUP(ORDER BY Q.PBLM_ID) Q_ID
  192. FROM
  193. BIS_INSP_ALL A
  194. LEFT JOIN BIS_INSP_ALL_OBJ O ON A.ID = O.ID
  195. LEFT JOIN BIS_INSP_PBLM Q ON O.OBJ_ID = Q.OBJ_ID
  196. LEFT JOIN (SELECT * FROM ATT_JSKEJIAN_FLKDIS_RGSTR WHERE STATE = '2') R ON O.OBJ_ID = R.OBJ_ID
  197. LEFT JOIN ATT_AD_X_BASE AD ON AD.AD_CODE = R.AD_CODE
  198. WHERE
  199. R.ID IS NOT NULL
  200. AND Q.PBLM_ID IS NOT NULL
  201. AND LENGTH( O.ID ) = 12
  202. AND O.ID LIKE #{id} || '%'
  203. GROUP BY
  204. A.ID,
  205. A.PNM,
  206. A.STTM,
  207. A.ENTM,
  208. SUBSTR( AD.AD_CODE, 0, 4 ) || '00000000',
  209. SUBSTR( AD.AD_CODE, 0, 6 ) || '00000000',
  210. AD.AD_NAME
  211. )
  212. SELECT A.*, AD.AD_NAME AS SHI_NM
  213. FROM A
  214. LEFT JOIN ATT_AD_X_BASE AD ON A.SHI = AD.AD_CODE
  215. ORDER BY A.ID, AD.AD_NAME
  216. </select>
  217. <select id="getBisInspPblmById" resultType="java.util.HashMap">
  218. SELECT
  219. R.NAME, R.PBLM_DESC, Q.INSP_PBLM_CODE, Q.INSP_PBLM_NAME, Q.INSP_PBLM_DESC
  220. FROM
  221. BIS_INSP_ALL_OBJ O
  222. LEFT JOIN BIS_INSP_PBLM Q ON O.OBJ_ID = Q.OBJ_ID
  223. LEFT JOIN (SELECT * FROM ATT_JSKEJIAN_FLKDIS_RGSTR WHERE STATE = '2') R ON O.OBJ_ID = R.OBJ_ID
  224. WHERE
  225. R.ID IS NOT NULL
  226. AND LENGTH( O.ID ) = 12
  227. AND Q.PBLM_ID LIKE #{id} || '%'
  228. </select>
  229. </mapper>