chenlu
2025-09-08 716384b3c2e70842e093207cfd374d2a39fffbe6
north-glass-erp/src/main/resources/mapper/mm/FinishedGlassShelf.xml
New file
@@ -0,0 +1,298 @@
<?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.example.erp.mapper.mm.FinishedGlassShelfMapper">
    <resultMap id="selectFinishedGlassShelfEmitDetails" type="com.example.erp.entity.mm.FinishedGlassShelfEmitDetails">
        <id column="id" property="id"/>
        <result column="emit_id" property="emitId"/>
        <result column="emit_number" property="emitNumber"/>
        <result column="information_id" property="informationId"/>
        <result column="glass_shelf_number" property="glassShelfNumber"/>
        <result column="glass_shelf_name" property="glassShelfName"/>
        <result column="withdraw_quantity" property="withdrawQuantity"/>
        <result column="quantity" property="quantity"/>
        <result column="unit" property="unit"/>
        <result column="price" property="price"/>
        <result column="money" property="money"/>
        <result column="remarks" property="remarks"/>
        <result column="available_quantity" property="finishedGlassShelfInformation.availableQuantity"/>
        <result column="total_quantity" property="finishedGlassShelfInformation.totalQuantity"/>
    </resultMap>
    <select id="getSelectFinishedGlassShelfInformation">
        select
        *
        from
        mm.finished_glass_shelf_information
        where glass_shelf_number = #{finishedGlassShelfInformation.glassShelfNumber}
          and glass_shelf_name = #{finishedGlassShelfInformation.glassShelfName}
            and price = #{finishedGlassShelfInformation.price}
            and unit = #{finishedGlassShelfInformation.unit}
            and max_weight = #{finishedGlassShelfInformation.maxWeight}
            and max_width = #{finishedGlassShelfInformation.maxWidth}
            and max_height = #{finishedGlassShelfInformation.maxHeight}
    </select>
    <insert id="insetFinishedGlassShelfInformation"  useGeneratedKeys="true" >
        insert into mm.finished_glass_shelf_information(glass_shelf_number,glass_shelf_name,available_quantity,
                                                        total_quantity,price,money,unit,max_weight,max_width,max_height,remarks,create_time)
        values (
                   #{finishedGlassShelfInformation.glassShelfNumber},#{finishedGlassShelfInformation.glassShelfName}
                   ,#{finishedGlassShelfInformation.totalQuantity},#{finishedGlassShelfInformation.totalQuantity}
                   ,#{finishedGlassShelfInformation.price},#{finishedGlassShelfInformation.money}
                   ,#{finishedGlassShelfInformation.unit},#{finishedGlassShelfInformation.maxWeight}
                   ,#{finishedGlassShelfInformation.maxWidth},#{finishedGlassShelfInformation.maxHeight},#{finishedGlassShelfInformation.remarks},now()
               )
    </insert>
    <insert id="insetFinishedGlassShelfLog"  useGeneratedKeys="true" >
        insert into mm.finished_glass_shelf_log(type,glass_shelf_number,glass_shelf_name,quantity,price,money,unit,
                                                max_weight,max_width,max_height,remarks,create_time)
        values (
                  3,#{finishedGlassShelfInformation.glassShelfNumber},#{finishedGlassShelfInformation.glassShelfName}
               ,#{finishedGlassShelfInformation.totalQuantity}
               ,#{finishedGlassShelfInformation.price},#{finishedGlassShelfInformation.money}
               ,#{finishedGlassShelfInformation.unit},#{finishedGlassShelfInformation.maxWeight}
               ,#{finishedGlassShelfInformation.maxWidth},#{finishedGlassShelfInformation.maxHeight},#{finishedGlassShelfInformation.remarks},now()
               )
    </insert>
    <update id="updateFinishedGlassShelfInformationQuantity">
        update mm.finished_glass_shelf_information set available_quantity=available_quantity+ #{quantity},
                                                       total_quantity=total_quantity+#{quantity} where id=#{id}
    </update>
    <update id="updateFinishedGlassShelfInformation">
        update mm.finished_glass_shelf_information set glass_shelf_number=#{finishedGlassShelfInformation.glassShelfNumber},
                                                       glass_shelf_name=#{finishedGlassShelfInformation.glassShelfName},
                                                       available_quantity=#{finishedGlassShelfInformation.availableQuantity},
                                                       total_quantity=#{finishedGlassShelfInformation.totalQuantity},
                                                       price=#{finishedGlassShelfInformation.price},
                                                       money=#{finishedGlassShelfInformation.money},
                                                       unit=#{finishedGlassShelfInformation.unit},
                                                       max_weight=#{finishedGlassShelfInformation.maxWeight},
                                                       max_width=#{finishedGlassShelfInformation.maxWidth},
                                                       max_height=#{finishedGlassShelfInformation.maxHeight},
                                                       remarks=#{finishedGlassShelfInformation.remarks},
                                                       create_time=now()
                                                   where id=#{id}
    </update>
    <select id="getSelectFinishedGlassShelfInformationDate">
        select * from mm.finished_glass_shelf_information where available_quantity>0 limit #{offset},#{pageSize};
    </select>
    <select id="getSelectFinishedGlassShelfInformationDatePageTotal">
        select
        CEILING(count(id)/#{pageSize}) as 'pageTotal',
        count(id) as 'total'
        from
        mm.finished_glass_shelf_information where available_quantity>0
    </select>
    <select id="getSelectFinishedGlassShelfInformationById">
        select
        *
        from
        mm.finished_glass_shelf_information  where id = #{id}
    </select>
    <select id="getSelectFinishedGlassShelfInformationInId">
        select
            id as informationId,
        glass_shelf_number as glassShelfNumber,
        glass_shelf_name as glassShelfName,
        available_quantity as availableQuantity,
        total_quantity as totalQuantity,
        price,
        money,
        unit,
        max_weight as maxWeight,
        max_width as maxWidth,
        max_height as maxHeight,
        remarks
        from
            mm.finished_glass_shelf_information  where id in
        <foreach item="id" collection="ids" open="(" separator="," close=")">
            #{id}
        </foreach>
    </select>
    <delete id="deleteFinishedGlassShelfInformationById">
        delete  from mm.finished_glass_shelf_information  where id=#{id}
    </delete>
    <select id="getSelectFinishedGlassShelfEmitByemitId">
        select * from
        mm.finished_glass_shelf_emit
        where emit_id=#{emitId}
    </select>
    <select id="getSelectFinishedGlassShelfEmitDetailsByemitId" >
        select
            fed.information_id as informationId,
            fed.glass_shelf_number as glassShelfNumber,
            fed.glass_shelf_name as glassShelfName,
            fed.quantity as quantity,
            fi.available_quantity+fed.quantity as availableQuantity,
            fi.total_quantity as totalQuantity,
            fed.price,
            fed.money,
            fed.unit,
            fed.remarks
            from
            mm.finished_glass_shelf_emit_details fed left join mm.finished_glass_shelf_information fi on fed.information_id=fi.id
        where emit_id=#{emitId}
    </select>
    <select id="getSelectFinishedGlassShelfEmitDetailsByemitId1" >
        select * from mm.finished_glass_shelf_emit_details where emit_id=#{emitId}
    </select>
    <select id="getmaximumEmit" >
        select ifnull(SUBSTR(max(right(emit_id,8)) from 7),0) from  mm.finished_glass_shelf_emit where  date(create_time)=CURDATE()
    </select>
    <select id="getmaximumWithdraw" >
        select ifnull(SUBSTR(max(right(emit_id,8)) from 7),0) from  mm.finished_glass_shelf_withdraw where  date(create_time)=CURDATE()
    </select>
    <insert id="insertFinishedGlassShelfEmit"  useGeneratedKeys="true" >
        insert into mm.finished_glass_shelf_emit(emit_id,create_time,withdraw_time,customer_name,project,operator,state,remarks)
        values (
                   #{emitId},now(),#{finishedGlassShelfEmit.withdrawTime},#{finishedGlassShelfEmit.customerName}
               ,#{finishedGlassShelfEmit.project},#{finishedGlassShelfEmit.operator},0,#{finishedGlassShelfEmit.remarks}
               )
    </insert>
    <insert id="insertFinishedGlassShelfEmitDetails"  useGeneratedKeys="true" >
        insert into mm.finished_glass_shelf_emit_details(emit_id,emit_number,information_id,glass_shelf_number,glass_shelf_name,
                                                         withdraw_quantity,quantity,price,unit,money,remarks)
        values (
                   #{emitId},#{emitNumber},#{finishedGlassShelfEmitDetails.informationId},
                #{finishedGlassShelfEmitDetails.glassShelfNumber},#{finishedGlassShelfEmitDetails.glassShelfName}
               ,0,#{finishedGlassShelfEmitDetails.quantity},#{finishedGlassShelfEmitDetails.price},#{finishedGlassShelfEmitDetails.unit},
                #{finishedGlassShelfEmitDetails.money},#{finishedGlassShelfEmitDetails.remarks}
               )
    </insert>
    <insert id="insertFinishedGlassShelfEmitDetailsLog"  useGeneratedKeys="true" >
        insert into mm.finished_glass_shelf_log(document_id,document_number,type,glass_shelf_number,glass_shelf_name,quantity,price,money,unit,
                                                remarks,create_time)
        values (
                   #{emitId},#{emitNumber},1, #{finishedGlassShelfEmitDetails.glassShelfNumber},#{finishedGlassShelfEmitDetails.glassShelfName},
               #{finishedGlassShelfEmitDetails.quantity},#{finishedGlassShelfEmitDetails.price},
                #{finishedGlassShelfEmitDetails.money},#{finishedGlassShelfEmitDetails.unit},#{finishedGlassShelfEmitDetails.remarks},now()
               )
    </insert>
    <update id="updateInformationAvailableQuantityOut">
        update mm.finished_glass_shelf_information set available_quantity=available_quantity-#{finishedGlassShelfEmitDetails.quantity}
                                                   where id=#{finishedGlassShelfEmitDetails.informationId}
    </update>
    <update id="updateInformationAvailableQuantityInt">
        update mm.finished_glass_shelf_information set available_quantity=available_quantity+#{finishedGlassShelfEmitDetails.quantity}
        where id=#{finishedGlassShelfEmitDetails.informationId}
    </update>
    <update id="updateFinishedGlassShelfEmit"  >
        update mm.finished_glass_shelf_emit set create_time=now(),
                                                withdraw_time=#{finishedGlassShelfEmit.withdrawTime},
                                                customer_name=#{finishedGlassShelfEmit.customerName},
                                                project=#{finishedGlassShelfEmit.project},
                                                operator=#{finishedGlassShelfEmit.operator},
                                                remarks=#{finishedGlassShelfEmit.remarks}
                                            where emit_id=#{emitId}
    </update>
    <delete id="deleteFinishedGlassShelfEmitDetails"  >
        delete from mm.finished_glass_shelf_emit_details  where emit_id=#{emitId}
    </delete>
    <delete id="deleteFinishedGlassShelfEmit"  >
        delete from mm.finished_glass_shelf_emit  where emit_id=#{emitId}
    </delete>
    <delete id="deleteFinishedGlassShelfEmitDetailsLog"  >
        delete from mm.finished_glass_shelf_log  where document_id=#{emitId}
    </delete>
    <update id="updateFinishedGlassShelfEmitDetailsLog"  >
        update mm.finished_glass_shelf_log set state=1  where document_id=#{emitId}
    </update>
    <select id="getSelectFinishedGlassShelfEmit">
        select * from mm.finished_glass_shelf_emit
        <where>
            date(create_time)>=#{startDate} and date(create_time) &lt;= #{endDate}
            <if test="emit.emitId != null and emit.emitId != ''">
                and emit_id regexp #{emit.emitId}
            </if>
            <if test="emit.customerName != null and emit.customerName != ''">
                and customer_name regexp #{emit.customerName}
            </if>
            <if test="emit.project != null and emit.project != ''">
                and project regexp #{emit.project}
            </if>
            <if test="emit.operator != null and emit.operator != ''">
                and operator regexp #{emit.operator}
            </if>
            <if test="emit.state != null and emit.state != ''">
                and state regexp #{emit.state}
            </if>
            <if test="emit.remarks != null and emit.remarks != ''">
                and remarks regexp #{emit.remarks}
            </if>
        </where>
        group by emit_id
        limit #{offset},#{pageSize};
    </select>
    <select id="getSelectFinishedGlassShelfEmitPageTotal">
        select
        CEILING(count(id)/#{pageSize}) as 'pageTotal',
        count(id) as 'total'
        from mm.finished_glass_shelf_emit
        <where>
            date(create_time)>=#{startDate} and date(create_time) &lt;= #{endDate}
            <if test="emit.emitId != null and emit.emitId != ''">
                and emit_id regexp #{emit.emitId}
            </if>
            <if test="emit.customerName != null and emit.customerName != ''">
                and customer_name regexp #{emit.customerName}
            </if>
            <if test="emit.project != null and emit.project != ''">
                and project regexp #{emit.project}
            </if>
            <if test="emit.operator != null and emit.operator != ''">
                and operator regexp #{emit.operator}
            </if>
            <if test="emit.state != null and emit.state != ''">
                and state regexp #{emit.state}
            </if>
            <if test="emit.remarks != null and emit.remarks != ''">
                and remarks regexp #{emit.remarks}
            </if>
        </where>
        limit #{offset},#{pageSize};
    </select>
</mapper>