BisInspIrrSprayDao.xml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  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.BisInspIrrSprayDao">
  4. <resultMap type="cn.com.goldenwater.dcproj.model.BisInspIrrSpray" id="bisInspIrrSprayResultMap">
  5. <result property="id" column="ID"/>
  6. <result property="rgstrId" column="RGSTR_ID"/>
  7. <result property="objId" column="OBJ_ID"/>
  8. <result property="code" column="CODE"/>
  9. <result property="name" column="NAME"/>
  10. <result property="adCode" column="AD_CODE"/>
  11. <result property="adName" column="AD_NAME"/>
  12. <result property="sour" column="SOUR"/>
  13. <result property="compDate" column="COMP_DATE"/>
  14. <result property="irrCode" column="IRR_CODE"/>
  15. <result property="irrName" column="IRR_NAME"/>
  16. <result property="stapleCrop" column="STAPLE_CROP"/>
  17. <result property="irrArea" column="IRR_AREA"/>
  18. <result property="higStnType" column="HIG_STN_TYPE"/>
  19. <result property="hsType" column="HS_TYPE"/>
  20. <result property="avgWorkDay" column="AVG_WORK_DAY"/>
  21. <result property="sprayType" column="SPRAY_TYPE"/>
  22. <result property="powerType" column="POWER_TYPE"/>
  23. <result property="powerVal" column="POWER_VAL"/>
  24. <result property="prjPbmArea" column="PRJ_PBM_AREA"/>
  25. <result property="prjWhoTend" column="PRJ_WHO_TEND"/>
  26. <result property="prjUsrType" column="PRJ_USR_TYPE"/>
  27. <result property="whoTend" column="WHO_TEND"/>
  28. <result property="isTendRcrd" column="IS_TEND_RCRD"/>
  29. <result property="tendRcrdType" column="TEND_RCRD_TYPE"/>
  30. <result property="isRun" column="IS_RUN"/>
  31. <result property="notRunType" column="NOT_RUN_TYPE"/>
  32. <result property="notRunNote" column="NOT_RUN_NOTE"/>
  33. <result property="isNspray" column="IS_NSPRAY"/>
  34. <result property="isNprss" column="IS_NPRSS"/>
  35. <result property="isMsrAll" column="IS_MSR_ALL"/>
  36. <result property="evaluate" column="EVALUATE"/>
  37. <result property="note" column="NOTE"/>
  38. <result property="invsrName" column="INVSR_NAME"/>
  39. <result property="invsrPhone" column="INVSR_PHONE"/>
  40. <result property="invsrTm" column="INVSR_TM"/>
  41. <result property="persId" column="PERS_ID"/>
  42. <result property="intm" column="INTM"/>
  43. <result property="uptm" column="UPTM"/>
  44. <result property="dataStat" column="DATA_STAT"/>
  45. <result property="state" column="STATE"/>
  46. <result property="centerX" column="CENTER_X"/>
  47. <result property="centerY" column="CENTER_Y"/>
  48. <result property="gdX" column="GD_X"/>
  49. <result property="gdY" column="GD_Y"/>
  50. <result property="sourNote" column="SOUR_NOTE"/>
  51. <result property="isCurryearComp" column="IS_CURRYEAR_COMP"/>
  52. <result property="beforeCurryearComp" column="BEFROE_CURRYEAR"/>
  53. <result property="afterCurryearComp" column="AFTER_CURRYEAR"/>
  54. </resultMap>
  55. <sql id="table_columns">
  56. IS_CURRYEAR_COMP,
  57. BEFROE_CURRYEAR,
  58. AFTER_CURRYEAR,
  59. SOUR_NOTE,
  60. CENTER_X,
  61. CENTER_Y,
  62. GD_X,
  63. GD_Y,
  64. ID,
  65. RGSTR_ID,
  66. OBJ_ID,
  67. CODE,
  68. NAME,
  69. AD_CODE,
  70. AD_NAME,
  71. SOUR,
  72. COMP_DATE,
  73. IRR_CODE,
  74. IRR_NAME,
  75. STAPLE_CROP,
  76. IRR_AREA,
  77. HIG_STN_TYPE,
  78. HS_TYPE,
  79. AVG_WORK_DAY,
  80. SPRAY_TYPE,
  81. POWER_TYPE,
  82. POWER_VAL,
  83. PRJ_PBM_AREA,
  84. PRJ_WHO_TEND,
  85. PRJ_USR_TYPE,
  86. WHO_TEND,
  87. IS_TEND_RCRD,
  88. TEND_RCRD_TYPE,
  89. IS_RUN,
  90. NOT_RUN_TYPE,
  91. NOT_RUN_NOTE,
  92. IS_NSPRAY,
  93. IS_NPRSS,
  94. IS_MSR_ALL,
  95. EVALUATE,
  96. NOTE,
  97. INVSR_NAME,
  98. INVSR_PHONE,
  99. INVSR_TM,
  100. PERS_ID,
  101. INTM,
  102. UPTM,
  103. DATA_STAT,
  104. STATE
  105. </sql>
  106. <sql id="entity_properties">
  107. #{isCurryearComp},
  108. #{beforeCurryearComp},
  109. #{afterCurryearComp},
  110. #{sourNote},
  111. #{centerX},
  112. #{centerY},
  113. #{gdX},
  114. #{gdY},
  115. #{id},
  116. #{rgstrId},
  117. #{objId},
  118. #{code},
  119. #{name},
  120. #{adCode},
  121. #{adName},
  122. #{sour},
  123. #{compDate},
  124. #{irrCode},
  125. #{irrName},
  126. #{stapleCrop},
  127. #{irrArea},
  128. #{higStnType},
  129. #{hsType},
  130. #{avgWorkDay},
  131. #{sprayType},
  132. #{powerType},
  133. #{powerVal},
  134. #{prjPbmArea},
  135. #{prjWhoTend},
  136. #{prjUsrType},
  137. #{whoTend},
  138. #{isTendRcrd},
  139. #{tendRcrdType},
  140. #{isRun},
  141. #{notRunType},
  142. #{notRunNote},
  143. #{isNspray},
  144. #{isNprss},
  145. #{isMsrAll},
  146. #{evaluate},
  147. #{note},
  148. #{invsrName},
  149. #{invsrPhone},
  150. #{invsrTm},
  151. #{persId},
  152. #{intm},
  153. #{uptm},
  154. #{dataStat},
  155. #{state}
  156. </sql>
  157. <!-- 使用like用法:columnName like concat('%',#columnName#,'%') -->
  158. <sql id="page_where">
  159. <trim prefix="where" prefixOverrides="and | or ">
  160. <if test="isCurryearComp != null and isCurryearComp != ''">and IS_CURRYEAR_COMP = #{isCurryearComp}</if>
  161. <if test="beforeCurryearComp != null and beforeCurryearComp != ''">and BEFROE_CURRYEAR = #{beforeCurryearComp}</if>
  162. <if test="afterCurryearComp != null and afterCurryearComp != ''">and AFTER_CURRYEAR = #{afterCurryearComp}</if>
  163. <if test="sourNote != null and sourNote != ''">and SOUR_NOTE = #{sourNote}</if>
  164. <if test="centerX != null and centerX != ''">and CENTER_X = #{centerX}</if>
  165. <if test="centerY != null and centerY != ''">and CENTER_Y = #{centerY}</if>
  166. <if test="gdX != null and gdX != ''">and GD_X = #{gdX}</if>
  167. <if test="gdY != null and gdY != ''">and GD_Y = #{gdY}</if>
  168. <if test="rgstrId != null and rgstrId != ''">and RGSTR_ID = #{rgstrId}</if>
  169. <if test="objId != null and objId != ''">and OBJ_ID = #{objId}</if>
  170. <if test="code != null and code != ''">and CODE = #{code}</if>
  171. <if test="name != null and name != ''">and NAME like concat('%',concat(#{name},'%'))</if>
  172. <if test="adCode != null and adCode != ''">and AD_CODE = #{adCode}</if>
  173. <if test="adName != null and adName != ''">and AD_NAME = #{adName}</if>
  174. <if test="sour != null and sour != ''">and SOUR = #{sour}</if>
  175. <if test="compDate != null and compDate != ''">and COMP_DATE = #{compDate}</if>
  176. <if test="irrCode != null and irrCode != ''">and IRR_CODE = #{irrCode}</if>
  177. <if test="irrName != null and irrName != ''">and IRR_NAME = #{irrName}</if>
  178. <if test="stapleCrop != null and stapleCrop != ''">and STAPLE_CROP = #{stapleCrop}</if>
  179. <if test="irrArea != null and irrArea != ''">and IRR_AREA = #{irrArea}</if>
  180. <if test="higStnType != null and higStnType != ''">and HIG_STN_TYPE = #{higStnType}</if>
  181. <if test="hsType != null and hsType != ''">and HS_TYPE = #{hsType}</if>
  182. <if test="avgWorkDay != null and avgWorkDay != ''">and AVG_WORK_DAY = #{avgWorkDay}</if>
  183. <if test="sprayType != null and sprayType != ''">and SPRAY_TYPE = #{sprayType}</if>
  184. <if test="powerType != null and powerType != ''">and POWER_TYPE = #{powerType}</if>
  185. <if test="powerVal != null and powerVal != ''">and POWER_VAL = #{powerVal}</if>
  186. <if test="prjPbmArea != null and prjPbmArea != ''">and PRJ_PBM_AREA = #{prjPbmArea}</if>
  187. <if test="prjWhoTend != null and prjWhoTend != ''">and PRJ_WHO_TEND = #{prjWhoTend}</if>
  188. <if test="prjUsrType != null and prjUsrType != ''">and PRJ_USR_TYPE = #{prjUsrType}</if>
  189. <if test="whoTend != null and whoTend != ''">and WHO_TEND = #{whoTend}</if>
  190. <if test="isTendRcrd != null and isTendRcrd != ''">and IS_TEND_RCRD = #{isTendRcrd}</if>
  191. <if test="tendRcrdType != null and tendRcrdType != ''">and TEND_RCRD_TYPE = #{tendRcrdType}</if>
  192. <if test="isRun != null and isRun != ''">and IS_RUN = #{isRun}</if>
  193. <if test="notRunType != null and notRunType != ''">and NOT_RUN_TYPE = #{notRunType}</if>
  194. <if test="notRunNote != null and notRunNote != ''">and NOT_RUN_NOTE = #{notRunNote}</if>
  195. <if test="isNspray != null and isNspray != ''">and IS_NSPRAY = #{isNspray}</if>
  196. <if test="isNprss != null and isNprss != ''">and IS_NPRSS = #{isNprss}</if>
  197. <if test="isMsrAll != null and isMsrAll != ''">and IS_MSR_ALL = #{isMsrAll}</if>
  198. <if test="evaluate != null and evaluate != ''">and EVALUATE = #{evaluate}</if>
  199. <if test="note != null and note != ''">and NOTE = #{note}</if>
  200. <if test="invsrName != null and invsrName != ''">and INVSR_NAME = #{invsrName}</if>
  201. <if test="invsrPhone != null and invsrPhone != ''">and INVSR_PHONE = #{invsrPhone}</if>
  202. <if test="invsrTm != null">and INVSR_TM = #{invsrTm}</if>
  203. <if test="persId != null and persId != ''">and PERS_ID = #{persId}</if>
  204. <if test="intm != null">and INTM = #{intm}</if>
  205. <if test="uptm != null">and UPTM = #{uptm}</if>
  206. <if test="dataStat != null and dataStat != ''">and DATA_STAT = #{dataStat}</if>
  207. <if test="state != null and state != ''">and STATE = #{state}</if>
  208. and DATA_STAT='0'
  209. </trim>
  210. </sql>
  211. <select id="get" resultMap="bisInspIrrSprayResultMap" parameterType="String" >
  212. select <include refid="table_columns" /> from BIS_INSP_IRR_SPRAY where ID = #{id}
  213. </select>
  214. <select id="getBy" resultMap="bisInspIrrSprayResultMap">
  215. select <include refid="table_columns" /> from BIS_INSP_IRR_SPRAY <include refid="page_where" />
  216. </select>
  217. <select id="findAll" resultMap="bisInspIrrSprayResultMap">
  218. select <include refid="table_columns" /> from BIS_INSP_IRR_SPRAY
  219. </select>
  220. <select id="findList" resultMap="bisInspIrrSprayResultMap">
  221. select <include refid="table_columns" /> from BIS_INSP_IRR_SPRAY <include refid="page_where" />
  222. </select>
  223. <select id="selectCount" resultType="int" >
  224. select count(ID) from BIS_INSP_IRR_SPRAY <include refid="page_where" />
  225. </select>
  226. <insert id="insert" parameterType="cn.com.goldenwater.dcproj.model.BisInspIrrSpray">
  227. insert into BIS_INSP_IRR_SPRAY( <include refid="table_columns" /> )
  228. values ( <include refid="entity_properties" /> )
  229. </insert>
  230. <delete id="delete" parameterType="java.lang.String">
  231. update BIS_INSP_IRR_SPRAY set DATA_STAT='9' where ID = #{id}
  232. </delete>
  233. <delete id="deleteBy" parameterType="cn.com.goldenwater.dcproj.model.BisInspIrrSpray">
  234. update BIS_INSP_IRR_SPRAY set DATA_STAT='9' <include refid="page_where" />
  235. </delete>
  236. <update id="deleteInFlag" parameterType="java.lang.String">
  237. update BIS_INSP_IRR_SPRAY set DATA_STAT = '9' where ID = #{id}
  238. </update>
  239. <update id="update" parameterType="cn.com.goldenwater.dcproj.model.BisInspIrrSpray">
  240. update BIS_INSP_IRR_SPRAY
  241. <trim prefix="set" suffixOverrides=",">
  242. <if test="isCurryearComp != null and isCurryearComp != ''">IS_CURRYEAR_COMP = #{isCurryearComp},</if>
  243. <if test="beforeCurryearComp != null and beforeCurryearComp != ''">BEFROE_CURRYEAR = #{beforeCurryearComp},</if>
  244. <if test="afterCurryearComp != null and afterCurryearComp != ''">AFTER_CURRYEAR = #{afterCurryearComp},</if>
  245. <if test="sourNote != null and sourNote != ''">SOUR_NOTE = #{sourNote},</if>
  246. <if test="centerX != null and centerX != ''">CENTER_X = #{centerX},</if>
  247. <if test="centerY != null and centerY != ''">CENTER_Y = #{centerY},</if>
  248. <if test="gdX != null and gdX != ''">GD_X = #{gdX},</if>
  249. <if test="gdY != null and gdY != ''">GD_Y = #{gdY},</if>
  250. <if test="rgstrId != null and rgstrId != ''">RGSTR_ID = #{rgstrId},</if>
  251. <if test="objId != null and objId != ''">OBJ_ID = #{objId},</if>
  252. <if test="code != null and code != ''">CODE = #{code},</if>
  253. <if test="name != null and name != ''">NAME = #{name},</if>
  254. <if test="adCode != null and adCode != ''">AD_CODE = #{adCode},</if>
  255. <if test="adName != null and adName != ''">AD_NAME = #{adName},</if>
  256. <if test="sour != null and sour != ''">SOUR = #{sour},</if>
  257. <if test="compDate != null and compDate != ''">COMP_DATE = #{compDate},</if>
  258. <if test="irrCode != null and irrCode != ''">IRR_CODE = #{irrCode},</if>
  259. <if test="irrName != null and irrName != ''">IRR_NAME = #{irrName},</if>
  260. <if test="stapleCrop != null and stapleCrop != ''">STAPLE_CROP = #{stapleCrop},</if>
  261. <if test="irrArea != null and irrArea != ''">IRR_AREA = #{irrArea},</if>
  262. <if test="higStnType != null and higStnType != ''">HIG_STN_TYPE = #{higStnType},</if>
  263. <if test="hsType != null and hsType != ''">HS_TYPE = #{hsType},</if>
  264. <if test="avgWorkDay != null and avgWorkDay != ''">AVG_WORK_DAY = #{avgWorkDay},</if>
  265. <if test="sprayType != null and sprayType != ''">SPRAY_TYPE = #{sprayType},</if>
  266. <if test="powerType != null and powerType != ''">POWER_TYPE = #{powerType},</if>
  267. <if test="powerVal != null and powerVal != ''">POWER_VAL = #{powerVal},</if>
  268. <if test="prjPbmArea != null and prjPbmArea != ''">PRJ_PBM_AREA = #{prjPbmArea},</if>
  269. <if test="prjWhoTend != null and prjWhoTend != ''">PRJ_WHO_TEND = #{prjWhoTend},</if>
  270. <if test="prjUsrType != null and prjUsrType != ''">PRJ_USR_TYPE = #{prjUsrType},</if>
  271. <if test="whoTend != null and whoTend != ''">WHO_TEND = #{whoTend},</if>
  272. <if test="isTendRcrd != null and isTendRcrd != ''">IS_TEND_RCRD = #{isTendRcrd},</if>
  273. <if test="tendRcrdType != null and tendRcrdType != ''">TEND_RCRD_TYPE = #{tendRcrdType},</if>
  274. <if test="isRun != null and isRun != ''">IS_RUN = #{isRun},</if>
  275. <if test="notRunType != null and notRunType != ''">NOT_RUN_TYPE = #{notRunType},</if>
  276. <if test="notRunNote != null and notRunNote != ''">NOT_RUN_NOTE = #{notRunNote},</if>
  277. <if test="isNspray != null and isNspray != ''">IS_NSPRAY = #{isNspray},</if>
  278. <if test="isNprss != null and isNprss != ''">IS_NPRSS = #{isNprss},</if>
  279. <if test="isMsrAll != null and isMsrAll != ''">IS_MSR_ALL = #{isMsrAll},</if>
  280. <if test="evaluate != null and evaluate != ''">EVALUATE = #{evaluate},</if>
  281. <if test="note != null and note != ''">NOTE = #{note},</if>
  282. <if test="invsrName != null and invsrName != ''">INVSR_NAME = #{invsrName},</if>
  283. <if test="invsrPhone != null and invsrPhone != ''">INVSR_PHONE = #{invsrPhone},</if>
  284. <if test="invsrTm != null">INVSR_TM = #{invsrTm},</if>
  285. <if test="persId != null and persId != ''">PERS_ID = #{persId},</if>
  286. <if test="intm != null">INTM = #{intm},</if>
  287. <if test="uptm != null">UPTM = #{uptm},</if>
  288. <if test="dataStat != null and dataStat != ''">DATA_STAT = #{dataStat},</if>
  289. <if test="state != null and state != ''">STATE = #{state},</if>
  290. </trim>
  291. <where>ID = #{id}</where>
  292. </update>
  293. <update id="updateBy" parameterType="cn.com.goldenwater.dcproj.model.BisInspIrrSpray">
  294. update BIS_INSP_IRR_SPRAY
  295. <trim prefix="set" suffixOverrides=",">
  296. <if test="isCurryearComp != null and isCurryearComp != ''">IS_CURRYEAR_COMP = #{isCurryearComp},</if>
  297. <if test="beforeCurryearComp != null and beforeCurryearComp != ''">BEFROE_CURRYEAR = #{beforeCurryearComp},</if>
  298. <if test="afterCurryearComp != null and afterCurryearComp != ''">AFTER_CURRYEAR = #{afterCurryearComp},</if>
  299. <if test="sourNote != null and sourNote != ''">SOUR_NOTE = #{sourNote},</if>
  300. <if test="centerX != null and centerX != ''">CENTER_X = #{centerX},</if>
  301. <if test="centerY != null and centerY != ''">CENTER_Y = #{centerY},</if>
  302. <if test="gdX != null and gdX != ''">GD_X = #{gdX},</if>
  303. <if test="gdY != null and gdY != ''">GD_Y = #{gdY},</if>
  304. <if test="rgstrId != null and rgstrId != ''">RGSTR_ID = #{rgstrId},</if>
  305. <if test="objId != null and objId != ''">OBJ_ID = #{objId},</if>
  306. <if test="code != null and code != ''">CODE = #{code},</if>
  307. <if test="name != null and name != ''">NAME = #{name},</if>
  308. <if test="adCode != null and adCode != ''">AD_CODE = #{adCode},</if>
  309. <if test="adName != null and adName != ''">AD_NAME = #{adName},</if>
  310. <if test="sour != null and sour != ''">SOUR = #{sour},</if>
  311. <if test="compDate != null and compDate != ''">COMP_DATE = #{compDate},</if>
  312. <if test="irrCode != null and irrCode != ''">IRR_CODE = #{irrCode},</if>
  313. <if test="irrName != null and irrName != ''">IRR_NAME = #{irrName},</if>
  314. <if test="stapleCrop != null and stapleCrop != ''">STAPLE_CROP = #{stapleCrop},</if>
  315. <if test="irrArea != null and irrArea != ''">IRR_AREA = #{irrArea},</if>
  316. <if test="higStnType != null and higStnType != ''">HIG_STN_TYPE = #{higStnType},</if>
  317. <if test="hsType != null and hsType != ''">HS_TYPE = #{hsType},</if>
  318. <if test="avgWorkDay != null and avgWorkDay != ''">AVG_WORK_DAY = #{avgWorkDay},</if>
  319. <if test="sprayType != null and sprayType != ''">SPRAY_TYPE = #{sprayType},</if>
  320. <if test="powerType != null and powerType != ''">POWER_TYPE = #{powerType},</if>
  321. <if test="powerVal != null and powerVal != ''">POWER_VAL = #{powerVal},</if>
  322. <if test="prjPbmArea != null and prjPbmArea != ''">PRJ_PBM_AREA = #{prjPbmArea},</if>
  323. <if test="prjWhoTend != null and prjWhoTend != ''">PRJ_WHO_TEND = #{prjWhoTend},</if>
  324. <if test="prjUsrType != null and prjUsrType != ''">PRJ_USR_TYPE = #{prjUsrType},</if>
  325. <if test="whoTend != null and whoTend != ''">WHO_TEND = #{whoTend},</if>
  326. <if test="isTendRcrd != null and isTendRcrd != ''">IS_TEND_RCRD = #{isTendRcrd},</if>
  327. <if test="tendRcrdType != null and tendRcrdType != ''">TEND_RCRD_TYPE = #{tendRcrdType},</if>
  328. <if test="isRun != null and isRun != ''">IS_RUN = #{isRun},</if>
  329. <if test="notRunType != null and notRunType != ''">NOT_RUN_TYPE = #{notRunType},</if>
  330. <if test="notRunNote != null and notRunNote != ''">NOT_RUN_NOTE = #{notRunNote},</if>
  331. <if test="isNspray != null and isNspray != ''">IS_NSPRAY = #{isNspray},</if>
  332. <if test="isNprss != null and isNprss != ''">IS_NPRSS = #{isNprss},</if>
  333. <if test="isMsrAll != null and isMsrAll != ''">IS_MSR_ALL = #{isMsrAll},</if>
  334. <if test="evaluate != null and evaluate != ''">EVALUATE = #{evaluate},</if>
  335. <if test="note != null and note != ''">NOTE = #{note},</if>
  336. <if test="invsrName != null and invsrName != ''">INVSR_NAME = #{invsrName},</if>
  337. <if test="invsrPhone != null and invsrPhone != ''">INVSR_PHONE = #{invsrPhone},</if>
  338. <if test="invsrTm != null">INVSR_TM = #{invsrTm},</if>
  339. <if test="persId != null and persId != ''">PERS_ID = #{persId},</if>
  340. <if test="intm != null">INTM = #{intm},</if>
  341. <if test="uptm != null">UPTM = #{uptm},</if>
  342. <if test="dataStat != null and dataStat != ''">DATA_STAT = #{dataStat},</if>
  343. <if test="state != null and state != ''">STATE = #{state},</if>
  344. </trim>
  345. <include refid="page_where" />
  346. </update>
  347. <!-- 其他自定义SQL -->
  348. </mapper>