TXinyiIndustryMapper.xml 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.slibra.business.mapper.TXinyiIndustryMapper">
  6. <resultMap type="TXinyiIndustry" id="TXinyiIndustryResult">
  7. <result property="ID" column="ID" />
  8. <result property="testDate" column="TEST_DATE" />
  9. <result property="testHour" column="TEST_HOUR" />
  10. <result property="testTime" column="TEST_TIME" />
  11. <result property="jsCod" column="JS_COD" />
  12. <result property="jsPh" column="JS_PH" />
  13. <result property="jsSs" column="JS_SS" />
  14. <result property="jsTp" column="JS_TP" />
  15. <result property="jsTn" column="JS_TN" />
  16. <result property="jsNh3" column="JS_NH3" />
  17. <result property="jsSwPh" column="JS_SW_PH" />
  18. <result property="jsBfyw" column="JS_BFYW" />
  19. <result property="csSlqc" column="CS_SLQC" />
  20. <result property="csCod" column="CS_COD" />
  21. <result property="csPh" column="CS_PH" />
  22. <result property="csSs" column="CS_SS" />
  23. <result property="csTn" column="CS_TN" />
  24. <result property="csTp" column="CS_TP" />
  25. <result property="csNh3" column="CS_NH3" />
  26. <result property="oneHyzdDo" column="ONE_HYZD_DO" />
  27. <result property="oneHymdDo" column="ONE_HYMD_DO" />
  28. <result property="twoHyzdDo" column="TWO_HYZD_DO" />
  29. <result property="twoHymdDo" column="TWO_HYMD_DO" />
  30. <result property="oneMlss" column="ONE_MLSS" />
  31. <result property="twoMlss" column="TWO_MLSS" />
  32. <result property="jsTds" column="JS_TDS" />
  33. <result property="jsSlq" column="JS_SLQ" />
  34. <result property="nHlbOneGp" column="N_HLB_ONE_GP" />
  35. <result property="nHlbTwoGp" column="N_HLB_TWO_GP" />
  36. <result property="nHlbThreeGp" column="N_HLB_THREE_GP" />
  37. <result property="nHlbFourGp" column="N_HLB_FOUR_GP" />
  38. <result property="nhlBFiveGp" column="NHL_B_FIVE_GP" />
  39. <result property="nHlbSixGp" column="N_HLB_SIX_GP" />
  40. <result property="wHlbOneGp" column="W_HLB_ONE_GP" />
  41. <result property="wHlbTwoGp" column="W_HLB_TWO_GP" />
  42. <result property="wHlbThreeGp" column="W_HLB_THREE_GP" />
  43. <result property="wHlbFourGp" column="W_HLB_FOUR_GP" />
  44. <result property="wHlbFiveGp" column="W_HLB_FIVE_GP" />
  45. <result property="fjOne" column="FJ_ONE" />
  46. <result property="fjTwo" column="FJ_TWO" />
  47. <result property="fjThree" column="FJ_THREE" />
  48. <result property="fjFour" column="FJ_FOUR" />
  49. <result property="fjFive" column="FJ_FIVE" />
  50. <result property="fjSix" column="FJ_SIX" />
  51. <result property="kqllOne" column="KQLL_ONE" />
  52. <result property="kqllTwo" column="KQLL_TWO" />
  53. <result property="kqllThree" column="KQLL_THREE" />
  54. <result property="kqllFour" column="KQLL_FOUR" />
  55. <result property="kqllFive" column="KQLL_FIVE" />
  56. <result property="kqllSix" column="KQLL_SIX" />
  57. <result property="SJTYJLY" column="SJTYJLY" />
  58. <result property="CLJYSSLL" column="CLJYSSLL" />
  59. <result property="hycRjyAll" column="HYC_RJY_ALL" />
  60. <result property="hycRjyZdAll" column="HYC_RJY_ZD_ALL" />
  61. <result property="hycWnndAll" column="HYC_WNND_ALL" />
  62. <result property="CLP04YCZ" column="CL_P04_YCZ" />
  63. <result property="oneFjDl" column="ONE_FJ_DL" />
  64. <result property="twoFjDl" column="TWO_FJ_DL" />
  65. <result property="threeFjDl" column="THREE_FJ_DL" />
  66. <result property="fourFjDl" column="FOUR_FJ_DL" />
  67. <result property="fiveFjDl" column="FIVE_FJ_DL" />
  68. <result property="sixFjDl" column="SIX_FJ_DL" />
  69. <result property="oneXgsQt" column="ONE_XGS_QT" />
  70. <result property="twoXgsQt" column="TWO_XGS_QT" />
  71. <result property="threeXgsQt" column="THREE_XGS_QT" />
  72. <result property="fourXgsQt" column="FOUR_XGS_QT" />
  73. <result property="fiveXgsQt" column="FIVE_XGS_QT" />
  74. <result property="sixXgsQt" column="SIX_XGS_QT" />
  75. <result property="oneNhlbDl" column="ONE_NHLB_DL" />
  76. <result property="twoNhlbDl" column="TWO_NHLB_DL" />
  77. <result property="threeNhlbDl" column="THREE_NHLB_DL" />
  78. <result property="fourNhlbDl" column="FOUR_NHLB_DL" />
  79. <result property="fiveNhlbDl" column="FIVE_NHLB_DL" />
  80. <result property="sixNhlbDl" column="SIX_NHLB_DL" />
  81. <result property="oneCccpnbQt" column="ONE_CCCPNB_QT" />
  82. <result property="twoCccpnbQt" column="TWO_CCCPNB_QT" />
  83. <result property="oneSywndbQt" column="ONE_SYWNDB_QT" />
  84. <result property="twoSywndbQt" column="TWO_SYWNDB_QT" />
  85. <result property="oneSdclDl" column="ONE_SDCL_DL" />
  86. <result property="twoSdclDl" column="TWO_SDCL_DL" />
  87. <result property="threeSdclDl" column="THREE_SDCL_DL" />
  88. <result property="fourSdclDl" column="FOUR_SDCL_DL" />
  89. <result property="createdTime" column="CREATED_TIME" />
  90. </resultMap>
  91. <sql id="selectTXinyiIndustryVo">
  92. select ID, TEST_DATE, TEST_HOUR, TEST_TIME, JS_COD, JS_PH, JS_SS, JS_TP, JS_TN, JS_NH3, JS_SW_PH, JS_BFYW, CS_SLQC, CS_COD, CS_PH, CS_SS, CS_TN, CS_TP, CS_NH3, ONE_HYZD_DO, ONE_HYMD_DO, TWO_HYZD_DO, TWO_HYMD_DO, ONE_MLSS, TWO_MLSS, JS_TDS, JS_SLQ, N_HLB_ONE_GP, N_HLB_TWO_GP, N_HLB_THREE_GP, N_HLB_FOUR_GP, NHL_B_FIVE_GP, N_HLB_SIX_GP, W_HLB_ONE_GP, W_HLB_TWO_GP, W_HLB_THREE_GP, W_HLB_FOUR_GP, W_HLB_FIVE_GP, FJ_ONE, FJ_TWO, FJ_THREE, FJ_FOUR, FJ_FIVE, FJ_SIX, KQLL_ONE, KQLL_TWO, KQLL_THREE, KQLL_FOUR, KQLL_FIVE, KQLL_SIX, SJTYJLY, CLJYSSLL, HYC_RJY_ALL, HYC_RJY_ZD_ALL, HYC_WNND_ALL, CL_P04_YCZ, ONE_FJ_DL, TWO_FJ_DL, THREE_FJ_DL, FOUR_FJ_DL, FIVE_FJ_DL, SIX_FJ_DL, ONE_XGS_QT, TWO_XGS_QT, THREE_XGS_QT, FOUR_XGS_QT, FIVE_XGS_QT, SIX_XGS_QT, ONE_NHLB_DL, TWO_NHLB_DL, THREE_NHLB_DL, FOUR_NHLB_DL, FIVE_NHLB_DL, SIX_NHLB_DL, ONE_CCCPNB_QT, TWO_CCCPNB_QT, ONE_SYWNDB_QT, TWO_SYWNDB_QT, ONE_SDCL_DL, TWO_SDCL_DL, THREE_SDCL_DL, FOUR_SDCL_DL, CREATED_TIME from t_xinyi_industry
  93. </sql>
  94. <select id="selectTXinyiIndustryByID" parameterType="Long" resultMap="TXinyiIndustryResult">
  95. <include refid="selectTXinyiIndustryVo"/>
  96. where ID = #{ID}
  97. </select>
  98. <insert id="insertTXinyiIndustry" parameterType="TXinyiIndustry" useGeneratedKeys="true" keyProperty="ID">
  99. insert into t_xinyi_industry
  100. <trim prefix="(" suffix=")" suffixOverrides=",">
  101. <if test="testDate != null">TEST_DATE,</if>
  102. <if test="testHour != null">TEST_HOUR,</if>
  103. <if test="testTime != null">TEST_TIME,</if>
  104. <if test="jsCod != null">JS_COD,</if>
  105. <if test="jsPh != null">JS_PH,</if>
  106. <if test="jsSs != null">JS_SS,</if>
  107. <if test="jsTp != null">JS_TP,</if>
  108. <if test="jsTn != null">JS_TN,</if>
  109. <if test="jsNh3 != null">JS_NH3,</if>
  110. <if test="jsSwPh != null">JS_SW_PH,</if>
  111. <if test="jsBfyw != null">JS_BFYW,</if>
  112. <if test="csSlqc != null">CS_SLQC,</if>
  113. <if test="csCod != null">CS_COD,</if>
  114. <if test="csPh != null">CS_PH,</if>
  115. <if test="csSs != null">CS_SS,</if>
  116. <if test="csTn != null">CS_TN,</if>
  117. <if test="csTp != null">CS_TP,</if>
  118. <if test="csNh3 != null">CS_NH3,</if>
  119. <if test="oneHyzdDo != null">ONE_HYZD_DO,</if>
  120. <if test="oneHymdDo != null">ONE_HYMD_DO,</if>
  121. <if test="twoHyzdDo != null">TWO_HYZD_DO,</if>
  122. <if test="twoHymdDo != null">TWO_HYMD_DO,</if>
  123. <if test="oneMlss != null">ONE_MLSS,</if>
  124. <if test="twoMlss != null">TWO_MLSS,</if>
  125. <if test="jsTds != null">JS_TDS,</if>
  126. <if test="jsSlq != null">JS_SLQ,</if>
  127. <if test="nHlbOneGp != null">N_HLB_ONE_GP,</if>
  128. <if test="nHlbTwoGp != null">N_HLB_TWO_GP,</if>
  129. <if test="nHlbThreeGp != null">N_HLB_THREE_GP,</if>
  130. <if test="nHlbFourGp != null">N_HLB_FOUR_GP,</if>
  131. <if test="nhlBFiveGp != null">NHL_B_FIVE_GP,</if>
  132. <if test="nHlbSixGp != null">N_HLB_SIX_GP,</if>
  133. <if test="wHlbOneGp != null">W_HLB_ONE_GP,</if>
  134. <if test="wHlbTwoGp != null">W_HLB_TWO_GP,</if>
  135. <if test="wHlbThreeGp != null">W_HLB_THREE_GP,</if>
  136. <if test="wHlbFourGp != null">W_HLB_FOUR_GP,</if>
  137. <if test="wHlbFiveGp != null">W_HLB_FIVE_GP,</if>
  138. <if test="fjOne != null">FJ_ONE,</if>
  139. <if test="fjTwo != null">FJ_TWO,</if>
  140. <if test="fjThree != null">FJ_THREE,</if>
  141. <if test="fjFour != null">FJ_FOUR,</if>
  142. <if test="fjFive != null">FJ_FIVE,</if>
  143. <if test="fjSix != null">FJ_SIX,</if>
  144. <if test="kqllOne != null">KQLL_ONE,</if>
  145. <if test="kqllTwo != null">KQLL_TWO,</if>
  146. <if test="kqllThree != null">KQLL_THREE,</if>
  147. <if test="kqllFour != null">KQLL_FOUR,</if>
  148. <if test="kqllFive != null">KQLL_FIVE,</if>
  149. <if test="kqllSix != null">KQLL_SIX,</if>
  150. <if test="SJTYJLY != null">SJTYJLY,</if>
  151. <if test="CLJYSSLL != null">CLJYSSLL,</if>
  152. <if test="hycRjyAll != null">HYC_RJY_ALL,</if>
  153. <if test="hycRjyZdAll != null">HYC_RJY_ZD_ALL,</if>
  154. <if test="hycWnndAll != null">HYC_WNND_ALL,</if>
  155. <if test="CLP04YCZ != null">CL_P04_YCZ,</if>
  156. <if test="oneFjDl != null">ONE_FJ_DL,</if>
  157. <if test="twoFjDl != null">TWO_FJ_DL,</if>
  158. <if test="threeFjDl != null">THREE_FJ_DL,</if>
  159. <if test="fourFjDl != null">FOUR_FJ_DL,</if>
  160. <if test="fiveFjDl != null">FIVE_FJ_DL,</if>
  161. <if test="sixFjDl != null">SIX_FJ_DL,</if>
  162. <if test="oneXgsQt != null">ONE_XGS_QT,</if>
  163. <if test="twoXgsQt != null">TWO_XGS_QT,</if>
  164. <if test="threeXgsQt != null">THREE_XGS_QT,</if>
  165. <if test="fourXgsQt != null">FOUR_XGS_QT,</if>
  166. <if test="fiveXgsQt != null">FIVE_XGS_QT,</if>
  167. <if test="sixXgsQt != null">SIX_XGS_QT,</if>
  168. <if test="oneNhlbDl != null">ONE_NHLB_DL,</if>
  169. <if test="twoNhlbDl != null">TWO_NHLB_DL,</if>
  170. <if test="threeNhlbDl != null">THREE_NHLB_DL,</if>
  171. <if test="fourNhlbDl != null">FOUR_NHLB_DL,</if>
  172. <if test="fiveNhlbDl != null">FIVE_NHLB_DL,</if>
  173. <if test="sixNhlbDl != null">SIX_NHLB_DL,</if>
  174. <if test="oneCccpnbQt != null">ONE_CCCPNB_QT,</if>
  175. <if test="twoCccpnbQt != null">TWO_CCCPNB_QT,</if>
  176. <if test="oneSywndbQt != null">ONE_SYWNDB_QT,</if>
  177. <if test="twoSywndbQt != null">TWO_SYWNDB_QT,</if>
  178. <if test="oneSdclDl != null">ONE_SDCL_DL,</if>
  179. <if test="twoSdclDl != null">TWO_SDCL_DL,</if>
  180. <if test="threeSdclDl != null">THREE_SDCL_DL,</if>
  181. <if test="fourSdclDl != null">FOUR_SDCL_DL,</if>
  182. <if test="createdTime != null">CREATED_TIME,</if>
  183. </trim>
  184. <trim prefix="values (" suffix=")" suffixOverrides=",">
  185. <if test="testDate != null">#{testDate},</if>
  186. <if test="testHour != null">#{testHour},</if>
  187. <if test="testTime != null">#{testTime},</if>
  188. <if test="jsCod != null">#{jsCod},</if>
  189. <if test="jsPh != null">#{jsPh},</if>
  190. <if test="jsSs != null">#{jsSs},</if>
  191. <if test="jsTp != null">#{jsTp},</if>
  192. <if test="jsTn != null">#{jsTn},</if>
  193. <if test="jsNh3 != null">#{jsNh3},</if>
  194. <if test="jsSwPh != null">#{jsSwPh},</if>
  195. <if test="jsBfyw != null">#{jsBfyw},</if>
  196. <if test="csSlqc != null">#{csSlqc},</if>
  197. <if test="csCod != null">#{csCod},</if>
  198. <if test="csPh != null">#{csPh},</if>
  199. <if test="csSs != null">#{csSs},</if>
  200. <if test="csTn != null">#{csTn},</if>
  201. <if test="csTp != null">#{csTp},</if>
  202. <if test="csNh3 != null">#{csNh3},</if>
  203. <if test="oneHyzdDo != null">#{oneHyzdDo},</if>
  204. <if test="oneHymdDo != null">#{oneHymdDo},</if>
  205. <if test="twoHyzdDo != null">#{twoHyzdDo},</if>
  206. <if test="twoHymdDo != null">#{twoHymdDo},</if>
  207. <if test="oneMlss != null">#{oneMlss},</if>
  208. <if test="twoMlss != null">#{twoMlss},</if>
  209. <if test="jsTds != null">#{jsTds},</if>
  210. <if test="jsSlq != null">#{jsSlq},</if>
  211. <if test="nHlbOneGp != null">#{nHlbOneGp},</if>
  212. <if test="nHlbTwoGp != null">#{nHlbTwoGp},</if>
  213. <if test="nHlbThreeGp != null">#{nHlbThreeGp},</if>
  214. <if test="nHlbFourGp != null">#{nHlbFourGp},</if>
  215. <if test="nhlBFiveGp != null">#{nhlBFiveGp},</if>
  216. <if test="nHlbSixGp != null">#{nHlbSixGp},</if>
  217. <if test="wHlbOneGp != null">#{wHlbOneGp},</if>
  218. <if test="wHlbTwoGp != null">#{wHlbTwoGp},</if>
  219. <if test="wHlbThreeGp != null">#{wHlbThreeGp},</if>
  220. <if test="wHlbFourGp != null">#{wHlbFourGp},</if>
  221. <if test="wHlbFiveGp != null">#{wHlbFiveGp},</if>
  222. <if test="fjOne != null">#{fjOne},</if>
  223. <if test="fjTwo != null">#{fjTwo},</if>
  224. <if test="fjThree != null">#{fjThree},</if>
  225. <if test="fjFour != null">#{fjFour},</if>
  226. <if test="fjFive != null">#{fjFive},</if>
  227. <if test="fjSix != null">#{fjSix},</if>
  228. <if test="kqllOne != null">#{kqllOne},</if>
  229. <if test="kqllTwo != null">#{kqllTwo},</if>
  230. <if test="kqllThree != null">#{kqllThree},</if>
  231. <if test="kqllFour != null">#{kqllFour},</if>
  232. <if test="kqllFive != null">#{kqllFive},</if>
  233. <if test="kqllSix != null">#{kqllSix},</if>
  234. <if test="SJTYJLY != null">#{SJTYJLY},</if>
  235. <if test="CLJYSSLL != null">#{CLJYSSLL},</if>
  236. <if test="hycRjyAll != null">#{hycRjyAll},</if>
  237. <if test="hycRjyZdAll != null">#{hycRjyZdAll},</if>
  238. <if test="hycWnndAll != null">#{hycWnndAll},</if>
  239. <if test="CLP04YCZ != null">#{CLP04YCZ},</if>
  240. <if test="oneFjDl != null">#{oneFjDl},</if>
  241. <if test="twoFjDl != null">#{twoFjDl},</if>
  242. <if test="threeFjDl != null">#{threeFjDl},</if>
  243. <if test="fourFjDl != null">#{fourFjDl},</if>
  244. <if test="fiveFjDl != null">#{fiveFjDl},</if>
  245. <if test="sixFjDl != null">#{sixFjDl},</if>
  246. <if test="oneXgsQt != null">#{oneXgsQt},</if>
  247. <if test="twoXgsQt != null">#{twoXgsQt},</if>
  248. <if test="threeXgsQt != null">#{threeXgsQt},</if>
  249. <if test="fourXgsQt != null">#{fourXgsQt},</if>
  250. <if test="fiveXgsQt != null">#{fiveXgsQt},</if>
  251. <if test="sixXgsQt != null">#{sixXgsQt},</if>
  252. <if test="oneNhlbDl != null">#{oneNhlbDl},</if>
  253. <if test="twoNhlbDl != null">#{twoNhlbDl},</if>
  254. <if test="threeNhlbDl != null">#{threeNhlbDl},</if>
  255. <if test="fourNhlbDl != null">#{fourNhlbDl},</if>
  256. <if test="fiveNhlbDl != null">#{fiveNhlbDl},</if>
  257. <if test="sixNhlbDl != null">#{sixNhlbDl},</if>
  258. <if test="oneCccpnbQt != null">#{oneCccpnbQt},</if>
  259. <if test="twoCccpnbQt != null">#{twoCccpnbQt},</if>
  260. <if test="oneSywndbQt != null">#{oneSywndbQt},</if>
  261. <if test="twoSywndbQt != null">#{twoSywndbQt},</if>
  262. <if test="oneSdclDl != null">#{oneSdclDl},</if>
  263. <if test="twoSdclDl != null">#{twoSdclDl},</if>
  264. <if test="threeSdclDl != null">#{threeSdclDl},</if>
  265. <if test="fourSdclDl != null">#{fourSdclDl},</if>
  266. <if test="createdTime != null">#{createdTime},</if>
  267. </trim>
  268. </insert>
  269. <update id="updateTXinyiIndustry" parameterType="TXinyiIndustry">
  270. update t_xinyi_industry
  271. <trim prefix="SET" suffixOverrides=",">
  272. <if test="testDate != null">TEST_DATE = #{testDate},</if>
  273. <if test="testHour != null">TEST_HOUR = #{testHour},</if>
  274. <if test="testTime != null">TEST_TIME = #{testTime},</if>
  275. <if test="jsCod != null">JS_COD = #{jsCod},</if>
  276. <if test="jsPh != null">JS_PH = #{jsPh},</if>
  277. <if test="jsSs != null">JS_SS = #{jsSs},</if>
  278. <if test="jsTp != null">JS_TP = #{jsTp},</if>
  279. <if test="jsTn != null">JS_TN = #{jsTn},</if>
  280. <if test="jsNh3 != null">JS_NH3 = #{jsNh3},</if>
  281. <if test="jsSwPh != null">JS_SW_PH = #{jsSwPh},</if>
  282. <if test="jsBfyw != null">JS_BFYW = #{jsBfyw},</if>
  283. <if test="csSlqc != null">CS_SLQC = #{csSlqc},</if>
  284. <if test="csCod != null">CS_COD = #{csCod},</if>
  285. <if test="csPh != null">CS_PH = #{csPh},</if>
  286. <if test="csSs != null">CS_SS = #{csSs},</if>
  287. <if test="csTn != null">CS_TN = #{csTn},</if>
  288. <if test="csTp != null">CS_TP = #{csTp},</if>
  289. <if test="csNh3 != null">CS_NH3 = #{csNh3},</if>
  290. <if test="oneHyzdDo != null">ONE_HYZD_DO = #{oneHyzdDo},</if>
  291. <if test="oneHymdDo != null">ONE_HYMD_DO = #{oneHymdDo},</if>
  292. <if test="twoHyzdDo != null">TWO_HYZD_DO = #{twoHyzdDo},</if>
  293. <if test="twoHymdDo != null">TWO_HYMD_DO = #{twoHymdDo},</if>
  294. <if test="oneMlss != null">ONE_MLSS = #{oneMlss},</if>
  295. <if test="twoMlss != null">TWO_MLSS = #{twoMlss},</if>
  296. <if test="jsTds != null">JS_TDS = #{jsTds},</if>
  297. <if test="jsSlq != null">JS_SLQ = #{jsSlq},</if>
  298. <if test="nHlbOneGp != null">N_HLB_ONE_GP = #{nHlbOneGp},</if>
  299. <if test="nHlbTwoGp != null">N_HLB_TWO_GP = #{nHlbTwoGp},</if>
  300. <if test="nHlbThreeGp != null">N_HLB_THREE_GP = #{nHlbThreeGp},</if>
  301. <if test="nHlbFourGp != null">N_HLB_FOUR_GP = #{nHlbFourGp},</if>
  302. <if test="nhlBFiveGp != null">NHL_B_FIVE_GP = #{nhlBFiveGp},</if>
  303. <if test="nHlbSixGp != null">N_HLB_SIX_GP = #{nHlbSixGp},</if>
  304. <if test="wHlbOneGp != null">W_HLB_ONE_GP = #{wHlbOneGp},</if>
  305. <if test="wHlbTwoGp != null">W_HLB_TWO_GP = #{wHlbTwoGp},</if>
  306. <if test="wHlbThreeGp != null">W_HLB_THREE_GP = #{wHlbThreeGp},</if>
  307. <if test="wHlbFourGp != null">W_HLB_FOUR_GP = #{wHlbFourGp},</if>
  308. <if test="wHlbFiveGp != null">W_HLB_FIVE_GP = #{wHlbFiveGp},</if>
  309. <if test="fjOne != null">FJ_ONE = #{fjOne},</if>
  310. <if test="fjTwo != null">FJ_TWO = #{fjTwo},</if>
  311. <if test="fjThree != null">FJ_THREE = #{fjThree},</if>
  312. <if test="fjFour != null">FJ_FOUR = #{fjFour},</if>
  313. <if test="fjFive != null">FJ_FIVE = #{fjFive},</if>
  314. <if test="fjSix != null">FJ_SIX = #{fjSix},</if>
  315. <if test="kqllOne != null">KQLL_ONE = #{kqllOne},</if>
  316. <if test="kqllTwo != null">KQLL_TWO = #{kqllTwo},</if>
  317. <if test="kqllThree != null">KQLL_THREE = #{kqllThree},</if>
  318. <if test="kqllFour != null">KQLL_FOUR = #{kqllFour},</if>
  319. <if test="kqllFive != null">KQLL_FIVE = #{kqllFive},</if>
  320. <if test="kqllSix != null">KQLL_SIX = #{kqllSix},</if>
  321. <if test="SJTYJLY != null">SJTYJLY = #{SJTYJLY},</if>
  322. <if test="CLJYSSLL != null">CLJYSSLL = #{CLJYSSLL},</if>
  323. <if test="hycRjyAll != null">HYC_RJY_ALL = #{hycRjyAll},</if>
  324. <if test="hycRjyZdAll != null">HYC_RJY_ZD_ALL = #{hycRjyZdAll},</if>
  325. <if test="hycWnndAll != null">HYC_WNND_ALL = #{hycWnndAll},</if>
  326. <if test="CLP04YCZ != null">CL_P04_YCZ = #{CLP04YCZ},</if>
  327. <if test="oneFjDl != null">ONE_FJ_DL = #{oneFjDl},</if>
  328. <if test="twoFjDl != null">TWO_FJ_DL = #{twoFjDl},</if>
  329. <if test="threeFjDl != null">THREE_FJ_DL = #{threeFjDl},</if>
  330. <if test="fourFjDl != null">FOUR_FJ_DL = #{fourFjDl},</if>
  331. <if test="fiveFjDl != null">FIVE_FJ_DL = #{fiveFjDl},</if>
  332. <if test="sixFjDl != null">SIX_FJ_DL = #{sixFjDl},</if>
  333. <if test="oneXgsQt != null">ONE_XGS_QT = #{oneXgsQt},</if>
  334. <if test="twoXgsQt != null">TWO_XGS_QT = #{twoXgsQt},</if>
  335. <if test="threeXgsQt != null">THREE_XGS_QT = #{threeXgsQt},</if>
  336. <if test="fourXgsQt != null">FOUR_XGS_QT = #{fourXgsQt},</if>
  337. <if test="fiveXgsQt != null">FIVE_XGS_QT = #{fiveXgsQt},</if>
  338. <if test="sixXgsQt != null">SIX_XGS_QT = #{sixXgsQt},</if>
  339. <if test="oneNhlbDl != null">ONE_NHLB_DL = #{oneNhlbDl},</if>
  340. <if test="twoNhlbDl != null">TWO_NHLB_DL = #{twoNhlbDl},</if>
  341. <if test="threeNhlbDl != null">THREE_NHLB_DL = #{threeNhlbDl},</if>
  342. <if test="fourNhlbDl != null">FOUR_NHLB_DL = #{fourNhlbDl},</if>
  343. <if test="fiveNhlbDl != null">FIVE_NHLB_DL = #{fiveNhlbDl},</if>
  344. <if test="sixNhlbDl != null">SIX_NHLB_DL = #{sixNhlbDl},</if>
  345. <if test="oneCccpnbQt != null">ONE_CCCPNB_QT = #{oneCccpnbQt},</if>
  346. <if test="twoCccpnbQt != null">TWO_CCCPNB_QT = #{twoCccpnbQt},</if>
  347. <if test="oneSywndbQt != null">ONE_SYWNDB_QT = #{oneSywndbQt},</if>
  348. <if test="twoSywndbQt != null">TWO_SYWNDB_QT = #{twoSywndbQt},</if>
  349. <if test="oneSdclDl != null">ONE_SDCL_DL = #{oneSdclDl},</if>
  350. <if test="twoSdclDl != null">TWO_SDCL_DL = #{twoSdclDl},</if>
  351. <if test="threeSdclDl != null">THREE_SDCL_DL = #{threeSdclDl},</if>
  352. <if test="fourSdclDl != null">FOUR_SDCL_DL = #{fourSdclDl},</if>
  353. <if test="createdTime != null">CREATED_TIME = #{createdTime},</if>
  354. </trim>
  355. where ID = #{ID}
  356. </update>
  357. <delete id="deleteTXinyiIndustryByID" parameterType="Long">
  358. delete from t_xinyi_industry where ID = #{ID}
  359. </delete>
  360. <delete id="deleteTXinyiIndustryByIDs" parameterType="String">
  361. delete from t_xinyi_industry where ID in
  362. <foreach item="ID" collection="array" open="(" separator="," close=")">
  363. #{ID}
  364. </foreach>
  365. </delete>
  366. <!-- 下面是新增的 不允许删除或者覆盖-->
  367. <select id="getUniqueTXinyiIndustry" resultMap="TXinyiIndustryResult">
  368. <include refid="selectTXinyiIndustryVo"/>
  369. where TEST_HOUR = #{testTime}
  370. </select>
  371. <update id="updateTXinyiIndustryCLByBetweenTime" >
  372. update t_xinyi_industry set CLJYSSLL = #{cljyssll}
  373. where TEST_TIME between #{beginTime} and #{endTime}
  374. </update>
  375. <update id="updateTXinyiIndustrySJByBetweenTime" >
  376. update t_xinyi_industry set SJTYJLY = #{sjtyjly}
  377. where TEST_TIME between #{beginTime} and #{endTime}
  378. </update>
  379. <select id="getLastHour" resultType="string">
  380. SELECT TEST_HOUR FROM t_xinyi_industry ORDER BY id DESC LIMIT 1
  381. </select>
  382. <select id="getLastMinute" resultType="string">
  383. SELECT TEST_TIME FROM t_xinyi_industry ORDER BY id DESC LIMIT 1
  384. </select>
  385. <select id="selectLast10RecordsForDecision" resultType="hashmap">
  386. SELECT
  387. a.ID ID,
  388. a.TEST_DATE TEST_DATE,
  389. a.TEST_HOUR TEST_HOUR,
  390. a.JS_COD COD_in,
  391. b.JSCOD_SJZ COD_in_name,
  392. a.CS_COD COD_off,
  393. b.CSCOD_BZZ COD_off_name,
  394. b.CSCOD_GKZ COD_off_con,
  395. a.JS_TP TP_in,
  396. b.JSZL_SJZ TP_in_name,
  397. a.CS_TP TP_off,
  398. b.CSZL_BZZ TP_off_name,
  399. b.CSZL_GKZ TP_off_con,
  400. a.JS_TN TN_in,
  401. b.JSZD_SJZ TN_in_name,
  402. a.CS_TN TN_off,
  403. b.CSZZ_BZZ TN_off_name,
  404. b.CSZZ_GKZ TN_off_con,
  405. a.JS_NH3 andan_in,
  406. b.JSAD_SJZ andan_in_name,
  407. a.CS_NH3 andan_off,
  408. b.CSAD_BZZ andan_off_name,
  409. b.CSAD_GKZ andan_off_con,
  410. a.JS_SS SS_in,
  411. b.JSSS_SJZ SS_in_name,
  412. a.CS_SS SS_off,
  413. b.CSSS_BZZ SS_off_name,
  414. b.CSSS_GKZ SS_off_con,
  415. a.JS_TDS TDS_in,
  416. b.JDTDS_GKZ TDS_in_name,
  417. c.JS_SW T,
  418. a.JS_PH pH,
  419. a.JS_SLQ Q_in,
  420. b.JSSL_SJZ Q_in_name,
  421. '' continuity,
  422. '' check_rise,
  423. '' time_tips,
  424. '' cs_continuity,
  425. c.WNTJZS_ALL SVI,
  426. b.WNTJZS_GKZ SVI_con,
  427. c.WNCJB_ALL SV,
  428. b.WNCJB_GKZ SV_con,
  429. c.HFXWNND_ALL MLVSS,
  430. a.HYC_WNND_ALL MLSS,
  431. '' MLVSS_wentai,
  432. '' MLSS_wentai,
  433. c.YYC_RJY_ALL DO_ana,
  434. a.HYC_RJY_ALL DO_O,
  435. c.QYC_RJY_ALL DO_que,
  436. '' DO_que_wentai,
  437. '' DO_ana_wentai,
  438. '' DO_O_wentai,
  439. c.JS_BOD5 BOD_in,
  440. c.JS_BOD5/a.JS_TP c,
  441. c.JS_BOD5/a.JS_TN b,
  442. '' BTP_wending,
  443. '' JS_TN_wentai,
  444. a.CL_P04_YCZ CL_P04_YCZ,
  445. (a.JS_TP - a.CL_P04_YCZ)/a.JS_TP TP_LV,
  446. '' TP_LV_continuity
  447. FROM
  448. t_xinyi_industry a
  449. LEFT JOIN t_xinyi_norm_config b on 1 = 1
  450. LEFT JOIN t_xinyi_daily c on a.TEST_DATE = c.TEST_DATE
  451. WHERE 1 = 1
  452. ORDER BY a.ID DESC
  453. LIMIT 10
  454. </select>
  455. <!-- 以后不用sql拼接实验室数据 处理历史数据并新增字段,直接获取 另外把关联查询改成在java代码中处理
  456. 不用再拼接了 SqlServer同步过来的机器人实验室数据已经有了新的字段
  457. 2025年03月17日15:03:25 以前查询的是10条数据,现在改成查询25条数据
  458. -->
  459. <select id="selectLast10RecordsForDecisionOnlyIndustry" resultType="com.slibra.common.core.domain.DecisionReq">
  460. SELECT
  461. a.ID ID,
  462. a.TEST_DATE testDate,
  463. a.TEST_HOUR testHour,
  464. a.JS_COD codIn,
  465. b.JSCOD_SJZ codInName,
  466. a.CS_COD codOff,
  467. b.CSCOD_BZZ codOffName,
  468. b.CSCOD_GKZ codOffCon,
  469. a.JS_TP tpIn,
  470. b.JSZL_SJZ tpInName,
  471. a.CS_TP tpOff,
  472. b.CSZL_BZZ tpOffName,
  473. b.CSZL_GKZ tpOffCon,
  474. a.JS_TN tnIn,
  475. b.JSZD_SJZ tnInName,
  476. a.CS_TN tnOff,
  477. b.CSZZ_BZZ tnOffName,
  478. b.CSZZ_GKZ tnOffCon,
  479. a.JS_NH3 addanIn,
  480. b.JSAD_SJZ addanInName,
  481. a.CS_NH3 andanOff,
  482. b.CSAD_BZZ andanOffName,
  483. b.CSAD_GKZ andanOffCon,
  484. a.JS_SS ssIn,
  485. b.JSSS_SJZ ssInName,
  486. a.CS_SS ssOff,
  487. b.CSSS_BZZ ssOffName,
  488. b.CSSS_GKZ ssOffCon,
  489. a.JS_TDS tdsIn,
  490. b.JDTDS_GKZ tdsInName,
  491. a.JS_PH pH,
  492. a.JS_SLQ qIn,
  493. b.JSSL_SJZ qInName,
  494. b.WNTJZS_GKZ sviCon,
  495. b.WNCJB_GKZ svCon,
  496. a.CL_P04_YCZ CLP04YCZ,
  497. ( a.JS_TP - a.CL_P04_YCZ )/ a.JS_TP tpLv,
  498. a.SJTYJLY tyjyl,
  499. a.CLJYSSLL cltjl,
  500. c.HYCXSY_ALL hycxsyAll,
  501. c.QYAN_ALL qyanAll,
  502. c.QYCKXSY_ALL qyckxsyAll,
  503. c.TP_RCC_JQR eccZl,
  504. c.HYZLSY_ALL hyzlsyAll
  505. FROM
  506. t_xinyi_industry a
  507. LEFT JOIN t_xinyi_norm_config b ON 1 = 1
  508. LEFT JOIN (
  509. SELECT
  510. TEST_HOUR,
  511. any_value ( HYCXSY_ALL ) HYCXSY_ALL,
  512. any_value ( QYAN_ALL ) QYAN_ALL,
  513. any_value ( QYCKXSY_ALL ) QYCKXSY_ALL,
  514. any_value ( TP_RCC_JQR ) TP_RCC_JQR,
  515. any_value ( HYZLSY_ALL ) HYZLSY_ALL
  516. FROM
  517. t_xinyi_robot
  518. GROUP BY
  519. TEST_HOUR
  520. ) c ON a.TEST_HOUR = c.TEST_HOUR
  521. WHERE
  522. 1 = 1
  523. ORDER BY
  524. a.ID DESC
  525. LIMIT 0,25
  526. </select>
  527. <select id="selectTXinyiIndustryNewest" resultMap="TXinyiIndustryResult">
  528. <include refid="selectTXinyiIndustryVo"/>
  529. order by id desc limit 1
  530. </select>
  531. <select id="selectNIndustry" resultMap="TXinyiIndustryResult">
  532. <include refid="selectTXinyiIndustryVo"/>
  533. order by id desc limit #{size}
  534. </select>
  535. <select id="selectIndustryAvgByDate" resultMap="TXinyiIndustryResult">
  536. SELECT
  537. AVG(JS_SLQ) JS_SLQ,
  538. AVG(JS_COD) JS_COD,
  539. AVG(JS_TN) JS_TN,
  540. AVG(JS_TP) JS_TP,
  541. AVG(JS_NH3) JS_NH3,
  542. AVG(JS_SS) JS_SS,
  543. AVG(CS_SLQC) CS_SLQC,
  544. AVG(CS_COD) CS_COD,
  545. AVG(CS_TN) CS_TN,
  546. AVG(CS_TP) CS_TP,
  547. AVG(CS_NH3) CS_NH3,
  548. AVG(CS_SS) CS_SS
  549. FROM
  550. t_xinyi_industry
  551. WHERE
  552. TEST_DATE = #{date}
  553. </select>
  554. <select id="getCount" resultType="java.lang.Integer">
  555. SELECT COUNT(*) FROM t_xinyi_industry
  556. </select>
  557. <select id="selectTXinyiIndustryListByPage" resultMap="TXinyiIndustryResult">
  558. <include refid="selectTXinyiIndustryVo"/>
  559. ORDER BY id LIMIT #{start}, #{end}
  560. </select>
  561. <select id="selectJSLByDate" resultType="com.slibra.business.res.ChartBasic">
  562. SELECT
  563. TEST_HOUR time,
  564. JS_SLQ val
  565. FROM
  566. t_xinyi_industry
  567. WHERE
  568. TEST_DATE BETWEEN #{start} AND #{end}
  569. ORDER BY
  570. ID ASC
  571. </select>
  572. <select id="selectJsCodByDate" resultType="com.slibra.business.res.ChartBasic">
  573. SELECT
  574. TEST_HOUR time,
  575. JS_COD val
  576. FROM
  577. t_xinyi_industry
  578. WHERE
  579. TEST_DATE BETWEEN #{start} AND #{end}
  580. ORDER BY
  581. ID ASC
  582. </select>
  583. <select id="selectJsTnByDate" resultType="com.slibra.business.res.ChartBasic">
  584. SELECT
  585. TEST_HOUR time,
  586. JS_TN val
  587. FROM
  588. t_xinyi_industry
  589. WHERE
  590. TEST_DATE BETWEEN #{start} AND #{end}
  591. ORDER BY
  592. ID ASC
  593. </select>
  594. <select id="selectTytzjlByDate" resultType="com.slibra.business.res.ChartBasic">
  595. SELECT
  596. TEST_HOUR time,
  597. SJTYJLY val
  598. FROM
  599. t_xinyi_industry
  600. WHERE
  601. TEST_DATE BETWEEN #{start} AND #{end}
  602. ORDER BY
  603. ID ASC
  604. </select>
  605. <select id="selectTXinyiIndustryList" parameterType="TXinyiIndustry" resultMap="TXinyiIndustryResult">
  606. <include refid="selectTXinyiIndustryVo"/>
  607. <where>
  608. <if test="testDate != null and testDate != ''"> and TEST_DATE = #{testDate}</if>
  609. <if test="testHour != null and testHour != ''"> and TEST_HOUR = #{testHour}</if>
  610. <if test="testTime != null and testTime != ''"> and TEST_TIME = #{testTime}</if>
  611. <if test="jsCod != null "> and JS_COD = #{jsCod}</if>
  612. <if test="jsPh != null "> and JS_PH = #{jsPh}</if>
  613. <if test="jsSs != null "> and JS_SS = #{jsSs}</if>
  614. <if test="jsTp != null "> and JS_TP = #{jsTp}</if>
  615. <if test="jsTn != null "> and JS_TN = #{jsTn}</if>
  616. <if test="jsNh3 != null "> and JS_NH3 = #{jsNh3}</if>
  617. <if test="jsSwPh != null "> and JS_SW_PH = #{jsSwPh}</if>
  618. <if test="jsBfyw != null "> and JS_BFYW = #{jsBfyw}</if>
  619. <if test="csSlqc != null "> and CS_SLQC = #{csSlqc}</if>
  620. <if test="csCod != null "> and CS_COD = #{csCod}</if>
  621. <if test="csPh != null "> and CS_PH = #{csPh}</if>
  622. <if test="csSs != null "> and CS_SS = #{csSs}</if>
  623. <if test="csTn != null "> and CS_TN = #{csTn}</if>
  624. <if test="csTp != null "> and CS_TP = #{csTp}</if>
  625. <if test="csNh3 != null "> and CS_NH3 = #{csNh3}</if>
  626. <if test="oneHyzdDo != null "> and ONE_HYZD_DO = #{oneHyzdDo}</if>
  627. <if test="oneHymdDo != null "> and ONE_HYMD_DO = #{oneHymdDo}</if>
  628. <if test="twoHyzdDo != null "> and TWO_HYZD_DO = #{twoHyzdDo}</if>
  629. <if test="twoHymdDo != null "> and TWO_HYMD_DO = #{twoHymdDo}</if>
  630. <if test="oneMlss != null "> and ONE_MLSS = #{oneMlss}</if>
  631. <if test="twoMlss != null "> and TWO_MLSS = #{twoMlss}</if>
  632. <if test="jsTds != null "> and JS_TDS = #{jsTds}</if>
  633. <if test="jsSlq != null "> and JS_SLQ = #{jsSlq}</if>
  634. <if test="nHlbOneGp != null "> and N_HLB_ONE_GP = #{nHlbOneGp}</if>
  635. <if test="nHlbTwoGp != null "> and N_HLB_TWO_GP = #{nHlbTwoGp}</if>
  636. <if test="nHlbThreeGp != null "> and N_HLB_THREE_GP = #{nHlbThreeGp}</if>
  637. <if test="nHlbFourGp != null "> and N_HLB_FOUR_GP = #{nHlbFourGp}</if>
  638. <if test="nhlBFiveGp != null "> and NHL_B_FIVE_GP = #{nhlBFiveGp}</if>
  639. <if test="nHlbSixGp != null "> and N_HLB_SIX_GP = #{nHlbSixGp}</if>
  640. <if test="wHlbOneGp != null "> and W_HLB_ONE_GP = #{wHlbOneGp}</if>
  641. <if test="wHlbTwoGp != null "> and W_HLB_TWO_GP = #{wHlbTwoGp}</if>
  642. <if test="wHlbThreeGp != null "> and W_HLB_THREE_GP = #{wHlbThreeGp}</if>
  643. <if test="wHlbFourGp != null "> and W_HLB_FOUR_GP = #{wHlbFourGp}</if>
  644. <if test="wHlbFiveGp != null "> and W_HLB_FIVE_GP = #{wHlbFiveGp}</if>
  645. <if test="fjOne != null "> and FJ_ONE = #{fjOne}</if>
  646. <if test="fjTwo != null "> and FJ_TWO = #{fjTwo}</if>
  647. <if test="fjThree != null "> and FJ_THREE = #{fjThree}</if>
  648. <if test="fjFour != null "> and FJ_FOUR = #{fjFour}</if>
  649. <if test="fjFive != null "> and FJ_FIVE = #{fjFive}</if>
  650. <if test="fjSix != null "> and FJ_SIX = #{fjSix}</if>
  651. <if test="kqllOne != null "> and KQLL_ONE = #{kqllOne}</if>
  652. <if test="kqllTwo != null "> and KQLL_TWO = #{kqllTwo}</if>
  653. <if test="kqllThree != null "> and KQLL_THREE = #{kqllThree}</if>
  654. <if test="kqllFour != null "> and KQLL_FOUR = #{kqllFour}</if>
  655. <if test="kqllFive != null "> and KQLL_FIVE = #{kqllFive}</if>
  656. <if test="kqllSix != null "> and KQLL_SIX = #{kqllSix}</if>
  657. <if test="SJTYJLY != null "> and SJTYJLY = #{SJTYJLY}</if>
  658. <if test="CLJYSSLL != null "> and CLJYSSLL = #{CLJYSSLL}</if>
  659. <if test="hycRjyAll != null and hycRjyAll != ''"> and HYC_RJY_ALL = #{hycRjyAll}</if>
  660. <if test="hycRjyZdAll != null and hycRjyZdAll != ''"> and HYC_RJY_ZD_ALL = #{hycRjyZdAll}</if>
  661. <if test="hycWnndAll != null and hycWnndAll != ''"> and HYC_WNND_ALL = #{hycWnndAll}</if>
  662. <if test="CLP04YCZ != null "> and CL_P04_YCZ = #{CLP04YCZ}</if>
  663. <if test="createdTime != null "> and CREATED_TIME = #{createdTime}</if>
  664. <!-- 下面是新增的SQL检索条件 -->
  665. <if test="timeBegin != null and timeBegin != ''"> and TEST_DATE &gt;= #{timeBegin}</if>
  666. <if test="timeEnd != null and timeEnd != ''"> and TEST_DATE &lt;= #{timeEnd}</if>
  667. </where>
  668. order by id desc
  669. </select>
  670. <select id="getTotalTodayCSL" resultType="java.math.BigDecimal">
  671. SELECT SUM(CS_SLQC) FROM t_xinyi_industry WHERE TEST_DATE = #{date}
  672. </select>
  673. <select id="getAvgJSCodByDate" resultType="java.math.BigDecimal">
  674. SELECT
  675. avg( temp.val )
  676. FROM
  677. ( SELECT JS_SLQ * JS_COD / 2 / 10000 val FROM t_xinyi_industry WHERE TEST_HOUR BETWEEN #{dateBegin} AND #{dateEnd} ) temp
  678. </select>
  679. <select id="getAvgCSCodByDate" resultType="java.math.BigDecimal">
  680. SELECT
  681. AVG( CS_COD )
  682. FROM
  683. t_xinyi_industry
  684. WHERE
  685. TEST_HOUR BETWEEN #{dateBegin}
  686. AND #{dateEnd}
  687. </select>
  688. <select id="getAvgJSTnByDate" resultType="java.math.BigDecimal">
  689. SELECT
  690. avg( temp.val )
  691. FROM
  692. ( SELECT JS_SLQ * JS_TN / 2 / 10000 val FROM t_xinyi_industry WHERE TEST_HOUR BETWEEN #{dateBegin} AND #{dateEnd} ) temp
  693. </select>
  694. </mapper>