sadjv3_java/src/main/resources/mapper/material/MaterialMapper.xml

172 lines
9.1 KiB
XML

<?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.sqx.modules.material.dao.MaterialMapper">
<resultMap id="BaseResultMap" type="com.sqx.modules.material.entity.Material">
<result column="id" property="id"/>
<result column="material_name" property="materialName"/>
<result column="material_minimum" property="materialMinimum"/>
<result column="goods_id" property="goodsId"/>
<result column="detail" property="detail"/>
<result column="status" property="status"/>
<result column="create_user" property="createUser"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<resultMap id="MaterialArtificerMap" type="com.sqx.modules.material.entity.MaterialArtificer">
<id property="id" column="id" jdbcType="INTEGER"/>
<result property="artificerId" column="artificer_id" jdbcType="INTEGER"/>
<result property="materialId" column="material_id" jdbcType="INTEGER"/>
<result property="residue" column="residue" jdbcType="INTEGER"/>
<result column="material_name" property="materialName"/>
<result column="material_minimum" property="materialMinimum"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t.id,t.detail, t.material_name , t.material_minimum , t.status , t.create_user , t.create_time , t.update_user , t.update_time</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM material t
where t.is_deleted = "0"
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Integer">
SELECT
<include refid="baseColumns"/>
FROM material t WHERE id = #{id} and is_deleted = "0"
</select>
<!-- 插入全部字段 -->
<insert id="insert" parameterType="com.sqx.modules.material.entity.Material" keyProperty="id" keyColumn="id"
useGeneratedKeys="true">
INSERT INTO material
<trim prefix="(" suffix=")" suffixOverrides=",">material_name,t.detail, material_minimum, status, create_user,
create_time, update_user, update_time,
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">#{materialName}, #{detail}, #{materialMinimum}, #{status},
#{createUser}, #{createTime}, #{updateUser}, #{updateTime},
</trim>
</insert>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.sqx.modules.material.entity.Material" keyProperty="id" keyColumn="id" useGeneratedKeys="true">
INSERT INTO material
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="materialName != null">material_name,</if>
<if test="materialMinimum != null">material_minimum,</if>
<if test="goodsId != null">goods_id,</if>
<if test="status != null">status,</if>
<if test="detail != null">detail,</if>
<if test="createUser != null">create_user,</if>
<if test="createTime != null">create_time,</if>
<if test="updateUser != null">update_user,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="materialName != null">#{materialName},</if>
<if test="materialMinimum != null">#{materialMinimum},</if>
<if test="goodsId != null">#{goodsId},</if>
<if test="status != null">#{status},</if>
<if test="detail != null">#{detail},</if>
<if test="createUser != null">#{createUser},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateUser != null">#{updateUser},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.sqx.modules.material.entity.Material">UPDATE material
<set>material_name=#{materialName},detail=#{detail}, material_minimum=#{materialMinimum}, status=#{status},
create_user=#{createUser}, create_time=#{createTime}, update_user=#{updateUser}, update_time=#{updateTime},
</set>
WHERE id = #{id}
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.sqx.modules.material.entity.Material">UPDATE material
<set>
<if test="materialName != null">material_name=#{materialName},</if>
<if test="detail != null">detail=#{detail},</if>
<if test="goodsId != null">goods_id=#{goodsId},</if>
<if test="materialMinimum != null">material_minimum=#{materialMinimum},</if>
<if test="status != null">status=#{status},</if>
<if test="createUser != null">create_user=#{createUser},</if>
<if test="createTime != null">create_time=#{createTime},</if>
<if test="updateUser != null">update_user=#{updateUser},</if>
<if test="updateTime != null">update_time=#{updateTime},</if>
</set>
WHERE id = #{id}
</update>
<!-- 根据主键删除记录 -->
<delete id="delete" parameterType="com.sqx.modules.material.entity.Material">
UPDATE material
SET is_deleted=1
WHERE id = #{id}
</delete>
<select id="selectMaterialArtificer" resultType="com.sqx.modules.material.entity.MaterialArtificerResult">
select a.id,m.id as materialId ,m.material_name,m.material_minimum,a.residue,a.artificer_id FROM material m
RIGHT JOIN material_artificer a on m.id = a.material_id
where m.is_deleted = "0"
<if test="materialArtificer.status!=null and materialArtificer.status !='' ">
and m.status = #{materialArtificer.status}
</if>
<if test="materialArtificer.artificerId!=null and materialArtificer.artificerId !='' ">
and a.artificer_id = #{materialArtificer.artificerId}
</if>
<if test="materialArtificer.materialName!=null and materialArtificer.materialName !=''" >
and m.material_name like '%'#{materialArtificer.materialName}'%'
</if>
</select>
<select id="selectMaterialArtificerList" resultType="com.sqx.modules.material.entity.MaterialArtificerResult">
select a.id,m.id as materialId ,m.material_name,m.material_minimum,a.residue,a.artificer_id FROM material m
RIGHT JOIN material_artificer a on m.id = a.material_id
where m.is_deleted = "0"
<if test="materialArtificer.status!=null and materialArtificer.status !='' ">
and m.status = #{materialArtificer.status}
</if>
<if test="materialArtificer.artificerId!=null and materialArtificer.artificerId !='' ">
and a.artificer_id = #{materialArtificer.artificerId}
</if>
<if test="materialArtificer.materialName!=null and materialArtificer.materialName !=''" >
and m.material_name like '%'#{materialArtificer.materialName}'%'
</if>
</select>
<select id="selectMaterialMassage" resultType="com.sqx.modules.material.entity.MaterialMassageResult">
select a.id,m.id as materialId,m.material_name,m.material_minimum,a.consume,a.massage_type_id FROM material m
RIGHT JOIN material_massage a on m.id = a.material_id
where m.is_deleted = "0"
<if test="materialMassage.massageTypeId!=null and materialMassage.massageTypeId !=''">
and a.massage_type_id = #{materialMassage.massageTypeId}
</if>
<if test="materialMassage.materialName!=null and materialMassage.materialName !='' ">
and m.material_name like '%'#{materialMassage.materialName}'%'
</if>
<!-- <if test="materialMassage.status!=null and materialMassage.status !=''">
and m.status = #{materialMassage.status}
</if>-->
<if test="materialMassage.list!=null">
and m.status in
<foreach item="id" collection="materialMassage.list" open="(" separator="," close=")">
#{id}
</foreach>
</if>
GROUP BY m.id,m.material_name
</select>
<select id="selectPages" resultType="com.sqx.modules.material.entity.Material">
select m.status,m.id ,m.material_name,m.material_minimum,m.goods_id,s.title as goodsName,m.detail FROM material m
LEFT JOIN self_goods s on s.id = m.goods_id
where m.is_deleted = "0"
<if test="material.goodsId!=null and material.goodsId !=''">
and s.goods_id = #{material.goodsId}
</if>
<if test="material.materialName!=null and material.materialName !='' ">
and m.material_name like concat('%',#{material.materialName},'%')
</if>
<if test="material.status!=null and material.status !=''">
and m.status = #{material.status}
</if>
</select>
</mapper>