guoyuji
2024-03-15 3c87c3ff67c2193ab5bfaa31f0fb1ad5a68cd5af
north-glass-erp/src/main/resources/mapper/sd/Product.xml
@@ -3,9 +3,10 @@
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.erp.mapper.sd.ProductMapper">
    <resultMap id="productmap" type="com.example.erp.entity.sd.Product" >
    <resultMap id="productMap" type="com.example.erp.entity.sd.Product" >
        <id column="id" property="id"/>
        <result column="product" property="product"/>
        <result column="product_name" property="productName"/>
        <result column="product" property="productName"/>
        <result column="total_thickness" property="totalThickness"/>
        <result column="thickness" property="thickness"/>
        <result column="query" property="query"/>
@@ -14,33 +15,96 @@
        <result column="creator" property="creator"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <association property="glassType" javaType="com.example.erp.entity.sd.GlassType">
            <result column="type_id" property="typeId"/>
        <!--接收其他外键实体类数据-->
        <association property="basicGlassType" javaType="com.example.erp.entity.sd.BasicGlassType">
            <result column="type_id" property="typeID"/>
            <result column="type_name" property="typeName"/>
        </association>
        <!--<result column="g_typeId" property="glassTypes.typeId"/>
        <result column="g_type" property="glassTypes.type"/>-->
    </resultMap>
    <select id="defaultProduct" resultMap="productmap">
        select a.id                as id,
               a.product,
               a.total_thickness,
               a.thickness,
               a.query,
               a.remarks,
               a.state,
               a.creator,
               date(a.create_time) as create_time,
               a.update_time       as update_time,
               bgt.type_id         as type_id,
               bgt.type            as type
    <select id="defaultProduct" resultMap="productMap">
        select a.id ,
        a.product_name,
        a.total_thickness,
        a.thickness,
        a.query,
        a.remarks,
        a.state,
        a.creator,
        date(a.create_time) as create_time,
        a.update_time       as update_time,
        a.type_id         as type_id,
        bgt.type_name
        from product as a
                 left join glass_type bgt on bgt.type_id = a.type_id
        left join basic_glass_type bgt on bgt.type_id = a.type_id
        <where>
            <if test="glassTypeId != null and glassTypeId != ''">
                and a.type_id regexp #{glassTypeId}
            </if>
            <if test="product.id != null and product.id != ''">
                and a.id regexp #{product.id}
            </if>
            <if test="product.productName != null and product.productName != ''">
                and a.product_name regexp #{product.productName}
            </if>
            <if test="product.basicGlassType.typeName != null and product.basicGlassType.typeName!= ''">
                and bgt.type_name regexp #{product.basicGlassType.typeName}
            </if>
            <if test="product.query != null and product.query != ''">
                and a.query regexp #{product.query}
            </if>
            <if test="product.creator != null and product.creator != ''">
                and a.creator regexp #{product.creator}
            </if>
            <if test="product.createTime != null and product.createTime != ''">
                and date(a.create_time) regexp #{product.createTime}
            </if>
        </where>
        order by id desc
        limit #{offset},#{pageSize}
        ;
    </select>
    <select id="getPageTotal" >
        select
            CEILING(count(a.id)/#{pageSize})
        from product as a
        left join basic_glass_type bgt on bgt.type_id = a.type_id
        <where>
            <if test="glassTypeId != null and glassTypeId != ''">
                and a.type_id regexp #{glassTypeId}
            </if>
            <if test="product.id != null and product.id != ''">
                and a.id regexp #{product.id}
            </if>
            <if test="product.productName != null and product.productName != ''">
                and a.product_name regexp #{product.productName}
            </if>
            <if test="product.basicGlassType.typeName != null and product.basicGlassType.typeName!= ''">
                and bgt.type_name regexp #{product.basicGlassType.typeName}
            </if>
            <if test="product.query != null and product.query != ''">
                and a.query regexp #{product.query}
            </if>
            <if test="product.creator != null and product.creator != ''">
                and a.creator regexp #{product.creator}
            </if>
            <if test="product.createTime != null and product.createTime != ''">
                and date(a.create_time) regexp #{product.createTime}
            </if>
        </where>
        order by a.id desc
        limit #{offset},#{pageSize}
        ;
    </select>
    <update id="updateProductStateById">
        update product set state = #{state} where id = #{id}
    </update>
</mapper>