chenlu
2025-11-24 1e31f9f7fe6f04236e97f72c0df3ce051d5f867e
north-glass-erp/src/main/resources/mapper/sd/ProductMapper.xml
@@ -6,7 +6,7 @@
    <resultMap id="productMap" type="com.example.erp.entity.sd.Product" >
        <id column="id" property="id"/>
        <result column="product_name" property="productName"/>
        <result column="product" property="productName"/>
        <result column="product_abbreviation" property="productAbbreviation"/>
        <result column="total_thickness" property="totalThickness"/>
        <result column="thickness" property="thickness"/>
        <result column="query" property="query"/>
@@ -17,7 +17,7 @@
        <result column="update_time" property="updateTime"/>
        <!--接收其他外键实体类数据-->
        <association property="basicGlassType" javaType="com.example.erp.entity.sd.BasicGlassType">
            <result column="type_id" property="typeID"/>
            <result column="type_id" property="typeId"/>
            <result column="type_name" property="typeName"/>
        </association>
@@ -29,6 +29,7 @@
    <select id="defaultProduct" resultMap="productMap">
        select a.id ,
        a.product_name,
        a.product_abbreviation,
        a.total_thickness,
        a.thickness,
        a.query,
@@ -43,31 +44,57 @@
        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}
                and a.type_id = #{glassTypeId}
            </if>
            <if test="product.id != null and product.id != ''">
                and a.id regexp #{product.id}
                and a.id like concat('%',#{product.id},'%')
            </if>
            <if test="product.productName != null and product.productName != ''">
                and a.product_name regexp #{product.productName}
                and a.product_name like concat('%',#{product.productName},'%')
            </if>
            <if test="product.productAbbreviation != null and product.productAbbreviation != ''">
                and a.product_abbreviation like concat('%',#{product.productAbbreviation},'%')
            </if>
            <if test="product.basicGlassType.typeName != null and product.basicGlassType.typeName!= ''">
                and bgt.type_name regexp #{product.basicGlassType.typeName}
                and bgt.type_name like concat('%',#{product.basicGlassType.typeName},'%')
            </if>
            <if test="product.query != null and product.query != ''">
                and a.query regexp #{product.query}
                and a.query like concat('%',#{product.query},'%')
            </if>
            <if test="product.creator != null and product.creator != ''">
                and a.creator regexp #{product.creator}
                and a.creator like concat('%',#{product.creator},'%')
            </if>
            <if test="product.state != null">
                and a.state = #{product.state}
            </if>
            <if test="product.createTime != null and product.createTime != ''">
                and date(a.create_time) regexp #{product.createTime}
                and date(a.create_time) like concat('%',#{product.createTime},'%')
            </if>
            <if test="product.remarks != null and product.remarks != ''">
                and a.remarks like concat('%',#{product.remarks},'%')
            </if>
        </where>
        order by id desc
        order by
        <if test="orderBy == null ">
            id desc
        </if>
        <if test="orderBy == 'desc'">
            ${field} desc
        </if>
        <if test="orderBy == 'asc'">
            ${field}
        </if>
        limit #{offset},#{pageSize}
        ;
    </select>
    <select id="selectProduct">
        select * from sd.product where ${productName}=#{productNameValue}
    </select>
    <select id="selectProductId">
        select * from sd.product where ${productName}=#{productNameValue} and id != #{id}
    </select>
    <select id="getPageTotal" >
@@ -97,14 +124,32 @@
            <if test="product.createTime != null and product.createTime != ''">
                and date(a.create_time) regexp #{product.createTime}
            </if>
            <if test="product.remarks != null and product.remarks != ''">
                and a.remarks like concat('%',#{product.remarks},'%')
            </if>
            <if test="product.state != null">
                and a.state = #{product.state}
            </if>
            <if test="product.productAbbreviation != null and product.productAbbreviation != ''">
                and a.product_abbreviation like concat('%',#{product.productAbbreviation},'%')
            </if>
        </where>
        order by a.id desc
        limit #{offset},#{pageSize}
        ;
        limit #{offset},#{pageSize};
    </select>
    
    <update id="updateProductStateById">
        update product set state = #{state} where id = #{id}
    </update>
    <select id="getGlassThickness">
        select sum(REPLACE(JSON_UNQUOTE(JSON_EXTRACT(separation, '$.thickness')),'mm',''))
        from product_detail as a
        where a.prod_id = #{productId}
        and a.id &lt;= (select b.id
                        from product_detail as b
                        where b.prod_id = #{productId} and b.glass_sort = #{technologyNumber})
    </select>
</mapper>