Kaynağa Gözat

【NEW】新增检测表-零部件更换记录。

hao 4 yıl önce
ebeveyn
işleme
0992dc9156

+ 78 - 0
railway-admin/src/main/java/com/railway/web/controller/business/catenary/BusJcebLbjghjlController.java

@@ -0,0 +1,78 @@
+package com.railway.web.controller.business.catenary;
+
+import com.railway.business.catenary.domain.BusJcebLbjghjl;
+import com.railway.business.catenary.service.IBusJcebLbjghjlService;
+import com.railway.common.core.controller.BaseController;
+import com.railway.common.core.domain.AjaxResult;
+import com.railway.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+@Api(value = "rest/catenary/bus/jceb/lbjghjl", tags = "检测表-零部件更换记录")
+@RestController
+@Validated
+@RequestMapping(value = "business/catenary/bus/jceb/lbjghjl")
+public class BusJcebLbjghjlController extends BaseController {
+    @Autowired
+    private IBusJcebLbjghjlService busJcbLbjghjlService;
+
+    @ApiOperation(value = "新增")
+    @PostMapping("/add")
+    public AjaxResult add(@Validated @RequestBody BusJcebLbjghjl busJcebLbjghjl) {
+        return toAjax(busJcbLbjghjlService.create(busJcebLbjghjl));
+    }
+
+    @ApiOperation(value = "删除")
+    @DeleteMapping("/{ids}")
+    public AjaxResult delete(@PathVariable(value = "ids") String[] ids) {
+        return toAjax(busJcbLbjghjlService.delete(ids));
+    }
+
+    @ApiOperation(value = "更新")
+    @PutMapping("/update")
+    public AjaxResult update(@RequestBody @Valid BusJcebLbjghjl busJcebLbjghjl) {
+        return toAjax(busJcbLbjghjlService.update(busJcebLbjghjl));
+    }
+
+    @ApiOperation(value = "单个")
+    @GetMapping(value = {"/", "/{id}"})
+    public AjaxResult getInfo(@PathVariable(value = "id") String id) {
+        BusJcebLbjghjl info = busJcbLbjghjlService.getInfo(id);
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("info",info);
+        return ajax;
+    }
+
+    @ApiOperation(value = "列表")
+    @GetMapping(value = "list")
+    public TableDataInfo getList(BusJcebLbjghjl busJcebLbjghjl) {
+        startPage();
+        List<BusJcebLbjghjl> list = busJcbLbjghjlService.getList(busJcebLbjghjl);
+        return getDataTable(list);
+    }
+
+    @ApiOperation(value = "提交")
+    @PutMapping("/submit")
+    public AjaxResult submit(@RequestBody BusJcebLbjghjl busJcebLbjghjl) {
+        return toAjax(busJcbLbjghjlService.submit(busJcebLbjghjl));
+    }
+
+    @ApiOperation(value = "退回")
+    @PutMapping("/reject")
+    public AjaxResult reject(@RequestBody BusJcebLbjghjl busJcebLbjghjl) {
+        return toAjax(busJcbLbjghjlService.reject(busJcebLbjghjl));
+    }
+
+    @ApiOperation(value = "确认")
+    @PutMapping("/confirm")
+    public AjaxResult confirm(@RequestBody BusJcebLbjghjl busJcebLbjghjl) {
+        return toAjax(busJcbLbjghjlService.confirm(busJcebLbjghjl));
+    }
+
+}

+ 83 - 0
railway-business/src/main/java/com/railway/business/catenary/domain/BusJcebLbjghjl.java

@@ -0,0 +1,83 @@
+package com.railway.business.catenary.domain;
+
+import com.railway.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.util.Date;
+
+import org.hibernate.validator.constraints.Length;
+import javax.validation.constraints.NotNull;
+/**
+ * 检测表-零部件更换记录
+ * @author author 2021-10-19
+ */
+@Data
+@ApiModel("检测表-零部件更换记录")
+@EqualsAndHashCode(callSuper = true)
+public class BusJcebLbjghjl extends BaseEntity{
+
+    @ApiModelProperty(value = "主键", hidden = true)
+    private String id;
+
+    @ApiModelProperty(value = "站场(区间)")
+    @Length(min = 1, max = 100, message = "【站场(区间)】长度必须介于 {min} 和 {max} 之间")
+    private String qj;
+
+    @ApiModelProperty(value = "地点")
+    @Length(min = 1, max = 20, message = "【地点】长度必须介于 {min} 和 {max} 之间")
+    private String dd;
+
+    @ApiModelProperty(value = "更换前名称")
+    @Length(min = 1, max = 20, message = "【更换前名称】长度必须介于 {min} 和 {max} 之间")
+    private String ghqMc;
+
+    @ApiModelProperty(value = "更换前规格型号")
+    @Length(min = 1, max = 20, message = "【更换前规格型号】长度必须介于 {min} 和 {max} 之间")
+    private String ghqGgxh;
+
+    @ApiModelProperty(value = "更换前生产厂家")
+    @Length(min = 1, max = 20, message = "【更换前生产厂家】长度必须介于 {min} 和 {max} 之间")
+    private String ghqSccj;
+
+    @ApiModelProperty(value = "更换后名称")
+    @Length(min = 1, max = 20, message = "【更换后名称】长度必须介于 {min} 和 {max} 之间")
+    private String ghhMc;
+
+    @ApiModelProperty(value = "更换后规格型号")
+    @Length(min = 1, max = 20, message = "【更换后规格型号】长度必须介于 {min} 和 {max} 之间")
+    private String ghhGgxh;
+
+    @ApiModelProperty(value = "更换后生产厂家")
+    @Length(min = 1, max = 20, message = "【更换后生产厂家】长度必须介于 {min} 和 {max} 之间")
+    private String ghhSccj;
+
+    @ApiModelProperty(value = "更换原因")
+    @Length(min = 1, max = 100, message = "【更换原因】长度必须介于 {min} 和 {max} 之间")
+    private String ghyy;
+
+    @ApiModelProperty(value = "更换时间")
+    @Length(min = 1, max = 10, message = "【更换时间】长度必须介于 {min} 和 {max} 之间")
+    private String ghsj;
+
+    @ApiModelProperty(value = "操作人")
+    @Length(min = 1, max = 20, message = "【操作人】长度必须介于 {min} 和 {max} 之间")
+    private String czr;
+
+    @ApiModelProperty(value = "备注")
+    @Length(min = 1, max = 600, message = "【备注】长度必须介于 {min} 和 {max} 之间")
+    private String remark;
+
+    @ApiModelProperty(value = "提交状态 0未提交 1已提交 2已退回 9已确认")
+    @Length(min = 1, max = 1, message = "【提交状态 0未提交 1已提交 2已退回 9已确认】长度必须介于 {min} 和 {max} 之间")
+    private String submitState;
+
+    @ApiModelProperty(value = "del_flag")
+    @Length(min = 1, max = 1, message = "【del_flag】长度必须介于 {min} 和 {max} 之间")
+    private String delFlag;
+
+    public BusJcebLbjghjl() {
+    }
+
+}

+ 43 - 0
railway-business/src/main/java/com/railway/business/catenary/mapper/BusJcebLbjghjlMapper.java

@@ -0,0 +1,43 @@
+package com.railway.business.catenary.mapper;
+
+import com.github.pagehelper.Page;
+import com.railway.business.catenary.domain.BusJcebLbjghjl;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+/**
+* 检测表-零部件更换记录
+* @author author
+* @date 2021/10/19
+*/
+@Mapper
+@Repository
+public interface BusJcebLbjghjlMapper {
+
+    /**
+    * @Description: 新增
+    */
+    int insert(BusJcebLbjghjl busJcebLbjghjl);
+
+    /**
+    * @Description: 删除
+    */
+    int delete(@Param("id") String id);
+
+    /**
+    * @Description: 更新
+    */
+    int update(BusJcebLbjghjl busJcebLbjghjl);
+
+    /**
+    * @Description: 获取单个
+    */
+    BusJcebLbjghjl getInfo(@Param("id") String id);
+
+    /**
+    * @Description: 查询列表
+    */
+    Page<BusJcebLbjghjl> getList(BusJcebLbjghjl busJcebLbjghjl);
+
+}

+ 59 - 0
railway-business/src/main/java/com/railway/business/catenary/service/IBusJcebLbjghjlService.java

@@ -0,0 +1,59 @@
+package com.railway.business.catenary.service;
+
+import com.railway.business.catenary.domain.BusJcebLbjghjl;
+
+import java.util.List;
+/**
+* 检测表-零部件更换记录
+* @author author
+* @date 2021/10/19
+*/
+public interface IBusJcebLbjghjlService {
+
+    /**
+    * @Description: 新增
+    */
+    int create(BusJcebLbjghjl busJcebLbjghjl);
+
+    /**
+    * @Description: 删除
+    */
+    int delete(String[] ids);
+
+    /**
+    * @Description: 更新
+    */
+    int update(BusJcebLbjghjl busJcebLbjghjl);
+
+    /**
+    * @Description: 获取单个
+    */
+    BusJcebLbjghjl getInfo(String id);
+
+    /**
+    * @Description: 查询列表
+    */
+    List<BusJcebLbjghjl> getList(BusJcebLbjghjl busJcebLbjghjl);
+
+    /**
+     * 提交
+     * @param busJcebLbjghjl
+     * @return
+     */
+    int submit(BusJcebLbjghjl busJcebLbjghjl);
+
+    /**
+     * 退回
+     * @param busJcebLbjghjl
+     * @return
+     */
+    int reject(BusJcebLbjghjl busJcebLbjghjl);
+
+    /**
+     * 确认
+     * @param busJcebLbjghjl
+     * @return
+     */
+    int confirm(BusJcebLbjghjl busJcebLbjghjl);
+
+}

+ 109 - 0
railway-business/src/main/java/com/railway/business/catenary/service/impl/BusJcebLbjghjlServiceImpl.java

@@ -0,0 +1,109 @@
+package com.railway.business.catenary.service.impl;
+
+import com.railway.business.catenary.domain.BusJcebLbjghjl;
+import com.railway.business.catenary.enums.DelFlagEnum;
+import com.railway.business.catenary.enums.TestTableStatusEnum;
+import com.railway.business.catenary.mapper.BusJcebLbjghjlMapper;
+import com.railway.business.catenary.service.IBusJcebLbjghjlService;
+import com.railway.common.utils.SecurityUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+/**
+* 检测表-零部件更换记录
+* @author author
+* @date 2021/10/19
+*/
+@Service
+@Transactional(readOnly = true)
+public class BusJcebLbjghjlServiceImpl implements IBusJcebLbjghjlService {
+@Autowired
+private BusJcebLbjghjlMapper busJcebLbjghjlMapper;
+
+	/**
+	* @Description: 新增
+	*/
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public int create(BusJcebLbjghjl busJcebLbjghjl) {
+	    busJcebLbjghjl.setCreateTime(new Date());
+        busJcebLbjghjl.setCreateBy(SecurityUtils.getUsername());
+		busJcebLbjghjl.setDelFlag(DelFlagEnum.NOT_DELETE.getCode());
+		if (StringUtils.isBlank(busJcebLbjghjl.getSubmitState())) {
+			busJcebLbjghjl.setSubmitState(TestTableStatusEnum.UNREPORTED.getCode());
+		}
+		return busJcebLbjghjlMapper.insert(busJcebLbjghjl);
+	}
+
+	/**
+	* @Description: 删除
+	*/
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public int delete(String[] ids) {
+		int r =0;
+		for (String id : ids) {
+			int j= busJcebLbjghjlMapper.delete(id);
+			r = r + j;
+		}
+		return	r;
+	}
+
+	/**
+	* @Description: 更新
+	*/
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public int update(BusJcebLbjghjl busJcebLbjghjl) {
+		busJcebLbjghjl.setUpdateTime(new Date());
+    	busJcebLbjghjl.setUpdateBy(SecurityUtils.getUsername());
+		return busJcebLbjghjlMapper.update(busJcebLbjghjl);
+	}
+
+	/**
+	* @Description: 获取单个
+	*/
+	@Override
+	public BusJcebLbjghjl getInfo(String id) {
+		return busJcebLbjghjlMapper.getInfo(id);
+	}
+
+	/**
+	* @Description: 查询列表
+	*/
+	@Override
+	public List<BusJcebLbjghjl> getList(BusJcebLbjghjl busJcebLbjghjl) {
+		return busJcebLbjghjlMapper.getList(busJcebLbjghjl);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public int submit(BusJcebLbjghjl busJcebLbjghjl) {
+		busJcebLbjghjl.setUpdateTime(new Date());
+		busJcebLbjghjl.setUpdateBy(SecurityUtils.getUsername());
+		busJcebLbjghjl.setSubmitState(TestTableStatusEnum.REPORTED.getCode());
+		return busJcebLbjghjlMapper.update(busJcebLbjghjl);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public int reject(BusJcebLbjghjl busJcebLbjghjl) {
+		busJcebLbjghjl.setUpdateTime(new Date());
+		busJcebLbjghjl.setUpdateBy(SecurityUtils.getUsername());
+		busJcebLbjghjl.setSubmitState(TestTableStatusEnum.RETURNED.getCode());
+		return busJcebLbjghjlMapper.update(busJcebLbjghjl);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public int confirm(BusJcebLbjghjl busJcebLbjghjl) {
+		busJcebLbjghjl.setUpdateTime(new Date());
+		busJcebLbjghjl.setUpdateBy(SecurityUtils.getUsername());
+		busJcebLbjghjl.setSubmitState(TestTableStatusEnum.COMPLETED.getCode());
+		return busJcebLbjghjlMapper.update(busJcebLbjghjl);
+	}
+}

+ 272 - 0
railway-business/src/main/resources/mapper/business/BusJcebLbjghjlMapper.xml

@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.railway.business.catenary.mapper.BusJcebLbjghjlMapper">
+
+    <resultMap id="BaseResultMap" type="com.railway.business.catenary.domain.BusJcebLbjghjl">
+                <result column="id" property="id"/>
+                <result column="qj" property="qj"/>
+                <result column="dd" property="dd"/>
+                <result column="ghq_mc" property="ghqMc"/>
+                <result column="ghq_ggxh" property="ghqGgxh"/>
+                <result column="ghq_sccj" property="ghqSccj"/>
+                <result column="ghh_mc" property="ghhMc"/>
+                <result column="ghh_ggxh" property="ghhGgxh"/>
+                <result column="ghh_sccj" property="ghhSccj"/>
+                <result column="ghyy" property="ghyy"/>
+                <result column="ghsj" property="ghsj"/>
+                <result column="czr" property="czr"/>
+                <result column="remark" property="remark"/>
+                <result column="submit_state" property="submitState"/>
+                <result column="del_flag" property="delFlag"/>
+                <result column="create_by" property="createBy"/>
+                <result column="create_time" property="createTime"/>
+                <result column="update_by" property="updateBy"/>
+                <result column="update_time" property="updateTime"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+                id,
+                qj,
+                dd,
+                ghq_mc,
+                ghq_ggxh,
+                ghq_sccj,
+                ghh_mc,
+                ghh_ggxh,
+                ghh_sccj,
+                ghyy,
+                ghsj,
+                czr,
+                remark,
+                submit_state,
+                del_flag,
+                create_by,
+                create_time,
+                update_by,
+                update_time
+    </sql>
+
+    <insert id="insert" parameterType="com.railway.business.catenary.domain.BusJcebLbjghjl">
+        <selectKey keyProperty="id" order="BEFORE" resultType="String">
+            select replace(uuid(), '-', '') from dual
+        </selectKey>
+        INSERT INTO bus_jceb_lbjghjl
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                    <if test ='null != qj'>
+                    qj,
+                    </if>
+                    <if test ='null != dd'>
+                    dd,
+                    </if>
+                    <if test ='null != ghqMc'>
+                    ghq_mc,
+                    </if>
+                    <if test ='null != ghqGgxh'>
+                    ghq_ggxh,
+                    </if>
+                    <if test ='null != ghqSccj'>
+                    ghq_sccj,
+                    </if>
+                    <if test ='null != ghhMc'>
+                    ghh_mc,
+                    </if>
+                    <if test ='null != ghhGgxh'>
+                    ghh_ggxh,
+                    </if>
+                    <if test ='null != ghhSccj'>
+                    ghh_sccj,
+                    </if>
+                    <if test ='null != ghyy'>
+                    ghyy,
+                    </if>
+                    <if test ='null != ghsj'>
+                    ghsj,
+                    </if>
+                    <if test ='null != czr'>
+                    czr,
+                    </if>
+                    <if test ='null != remark'>
+                    remark,
+                    </if>
+                    <if test ='null != submitState'>
+                    submit_state,
+                    </if>
+                    <if test ='null != delFlag'>
+                    del_flag,
+                    </if>
+                    <if test ='null != createBy'>
+                    create_by,
+                    </if>
+                    <if test ='null != createTime'>
+                    create_time,
+                    </if>
+                    <if test ='null != updateBy'>
+                    update_by,
+                    </if>
+                    <if test ='null != updateTime'>
+                    update_time
+                    </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                    <if test ='null != qj'>
+                    #{qj},
+                    </if>
+                    <if test ='null != dd'>
+                    #{dd},
+                    </if>
+                    <if test ='null != ghqMc'>
+                    #{ghqMc},
+                    </if>
+                    <if test ='null != ghqGgxh'>
+                    #{ghqGgxh},
+                    </if>
+                    <if test ='null != ghqSccj'>
+                    #{ghqSccj},
+                    </if>
+                    <if test ='null != ghhMc'>
+                    #{ghhMc},
+                    </if>
+                    <if test ='null != ghhGgxh'>
+                    #{ghhGgxh},
+                    </if>
+                    <if test ='null != ghhSccj'>
+                    #{ghhSccj},
+                    </if>
+                    <if test ='null != ghyy'>
+                    #{ghyy},
+                    </if>
+                    <if test ='null != ghsj'>
+                    #{ghsj},
+                    </if>
+                    <if test ='null != czr'>
+                    #{czr},
+                    </if>
+                    <if test ='null != remark'>
+                    #{remark},
+                    </if>
+                    <if test ='null != submitState'>
+                    #{submitState},
+                    </if>
+                    <if test ='null != delFlag'>
+                    #{delFlag},
+                    </if>
+                    <if test ='null != createBy'>
+                    #{createBy},
+                    </if>
+                    <if test ='null != createTime'>
+                    #{createTime},
+                    </if>
+                    <if test ='null != updateBy'>
+                    #{updateBy},
+                    </if>
+                    <if test ='null != updateTime'>
+                    #{updateTime}
+                    </if>
+        </trim>
+    </insert>
+
+    <delete id="delete">
+        UPDATE bus_jceb_lbjghjl
+        set del_flag='1'
+        WHERE id = #{id}
+    </delete>
+
+    <update id="update" parameterType="com.railway.business.catenary.domain.BusJcebLbjghjl">
+        UPDATE bus_jceb_lbjghjl
+        <set>
+                    <if test ='null != qj'>qj = #{qj},</if>
+                    <if test ='null != dd'>dd = #{dd},</if>
+                    <if test ='null != ghqMc'>ghq_mc = #{ghqMc},</if>
+                    <if test ='null != ghqGgxh'>ghq_ggxh = #{ghqGgxh},</if>
+                    <if test ='null != ghqSccj'>ghq_sccj = #{ghqSccj},</if>
+                    <if test ='null != ghhMc'>ghh_mc = #{ghhMc},</if>
+                    <if test ='null != ghhGgxh'>ghh_ggxh = #{ghhGgxh},</if>
+                    <if test ='null != ghhSccj'>ghh_sccj = #{ghhSccj},</if>
+                    <if test ='null != ghyy'>ghyy = #{ghyy},</if>
+                    <if test ='null != ghsj'>ghsj = #{ghsj},</if>
+                    <if test ='null != czr'>czr = #{czr},</if>
+                    <if test ='null != remark'>remark = #{remark},</if>
+                    <if test ='null != submitState'>submit_state = #{submitState},</if>
+                    <if test ='null != delFlag'>del_flag = #{delFlag},</if>
+                    <if test ='null != createBy'>create_by = #{createBy},</if>
+                    <if test ='null != createTime'>create_time = #{createTime},</if>
+                    <if test ='null != updateBy'>update_by = #{updateBy},</if>
+                    <if test ='null != updateTime'>update_time = #{updateTime}</if>
+        </set>
+        WHERE id = #{id}
+    </update>
+
+
+    <select id="getInfo" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM bus_jceb_lbjghjl
+        WHERE del_flag='0' and id = #{id}
+
+    </select>
+
+    <select id="getList" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM bus_jceb_lbjghjl
+        <where>
+            del_flag='0'
+                <if test="qj!=null and qj!=''">
+                    and qj=#{qj}
+                </if>
+                <if test="dd!=null and dd!=''">
+                    and dd=#{dd}
+                </if>
+                <if test="ghqMc!=null and ghqMc!=''">
+                    and ghq_mc=#{ghqMc}
+                </if>
+                <if test="ghqGgxh!=null and ghqGgxh!=''">
+                    and ghq_ggxh=#{ghqGgxh}
+                </if>
+                <if test="ghqSccj!=null and ghqSccj!=''">
+                    and ghq_sccj=#{ghqSccj}
+                </if>
+                <if test="ghhMc!=null and ghhMc!=''">
+                    and ghh_mc=#{ghhMc}
+                </if>
+                <if test="ghhGgxh!=null and ghhGgxh!=''">
+                    and ghh_ggxh=#{ghhGgxh}
+                </if>
+                <if test="ghhSccj!=null and ghhSccj!=''">
+                    and ghh_sccj=#{ghhSccj}
+                </if>
+                <if test="ghyy!=null and ghyy!=''">
+                    and ghyy=#{ghyy}
+                </if>
+                <if test="ghsj!=null and ghsj!=''">
+                    and ghsj=#{ghsj}
+                </if>
+                <if test="czr!=null and czr!=''">
+                    and czr=#{czr}
+                </if>
+                <if test="remark!=null and remark!=''">
+                    and remark=#{remark}
+                </if>
+                <if test="submitState!=null and submitState!=''">
+                    and submit_state=#{submitState}
+                </if>
+                <if test="delFlag!=null and delFlag!=''">
+                    and del_flag=#{delFlag}
+                </if>
+                <if test="createBy!=null and createBy!=''">
+                    and create_by=#{createBy}
+                </if>
+                <if test="createTime!=null and createTime!=''">
+                    and create_time=#{createTime}
+                </if>
+                <if test="updateBy!=null and updateBy!=''">
+                    and update_by=#{updateBy}
+                </if>
+                <if test="updateTime!=null and updateTime!=''">
+                    and update_time=#{updateTime}
+                </if>
+        </where>
+    </select>
+
+</mapper>