chenlu
2024-09-25 430ab98c6225a276bab44c5eebb304fc6206cb73
north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -61,6 +61,7 @@
                date(mi.create_time)>=#{startDate} and date(mi.create_time) <= #{endDate} and mi.available_quantity>0
        </where>
        order by mi.id desc
        limit #{offset},#{pageSize};
    </select>
@@ -82,7 +83,7 @@
        select
        ou.id as useId,
        ou.project_no as projectNo,
        ou.use_count AS inventoryQuantity,
        mi.inventory_quantity AS inventoryQuantity,
        mi.plan_quantity AS availableQuantity,
        mi.plan_quantity AS planQuantity,
        mi.id,
@@ -98,12 +99,14 @@
        mi.dead_stock AS deadStock,
        mi.remarks,
        date(mi.create_time) AS createTime,
        ms.json from pp.optimize_use ou left join mm.material_inventory mi on ou.stock_code=mi.id left join mm.material_store ms on mi.material_code=ms.id
        ms.json from pp.optimize_use ou left join mm.material_inventory mi on ou.raw_stock_code=mi.id left join mm.material_store ms on mi.material_code=ms.id
        left join pp.optimize_project op on op.project_no=ou.project_no
        <where>
            ou.not_use_count>0 and ou.state=1 and
            mi.plan_quantity>0 and op.state>=100 and
            date(ou.create_time)>=#{startDate} and date(ou.create_time) &lt;= #{endDate}
        </where>
        order by ou.id desc
        limit #{offset},#{pageSize};
    </select>
@@ -144,7 +147,10 @@
        from mm.material_inventory mi left join mm.material_store ms on mi.material_code=ms.id
        <where>
            <if test="materialInventory.stockId != null and materialInventory.stockId != ''">
                and mi.id regexp #{materialInventory.stockId}
                and mi.id in
                <foreach item="id" collection="ids" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
        </where>
@@ -171,7 +177,7 @@
        select
        ou.id as useId,
        ou.project_no as projectNo,
        ou.use_count AS inventoryQuantity,
        mi.inventory_quantity AS inventoryQuantity,
        mi.plan_quantity AS availableQuantity,
        mi.plan_quantity AS planQuantity,
        mi.id,
@@ -187,11 +193,14 @@
        mi.dead_stock AS deadStock,
        mi.remarks,
        date(mi.create_time) AS createTime,
        ms.json from pp.optimize_use ou left join mm.material_inventory mi on ou.stock_code=mi.id left join mm.material_store ms on mi.material_code=ms.id
        ms.json from pp.optimize_use ou left join mm.material_inventory mi on ou.raw_stock_code=mi.id left join mm.material_store ms on mi.material_code=ms.id
        <where>
            <if test="optimizeUse.rawStockCode != null and optimizeUse.rawStockCode != ''">
                and ou.id regexp #{optimizeUse.rawStockCode}
                and ou.id in
                <foreach item="id" collection="ids" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
        </where>
@@ -207,7 +216,10 @@
        pp.optimize_use ou
        <where>
            <if test="optimizeUse.rawStockCode != null and optimizeUse.rawStockCode != ''">
                and ou.id regexp #{optimizeUse.rawStockCode}
                and ou.id in
                <foreach item="id" collection="ids" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
        </where>
@@ -599,6 +611,17 @@
               )
    </insert>
    <insert id="updateMaterialOutbound"  >
        update mm.material_outbound
        set material_requisition_personnel=#{materialOutbound.materialRequisitionPersonnel},
            material_requisition_team=#{materialOutbound.materialRequisitionTeam},
            order_id=#{materialOutbound.orderId},
            outbound_type=#{materialOutbound.outboundType},
            warehouse_manager=#{materialOutbound.warehouseManager},
            material_requisition_date=#{materialOutbound.materialRequisitionDate}
        where material_outbound_id = #{number}
    </insert>
    <insert id="insertMaterialOutboundDetail"  useGeneratedKeys="true" >
        insert into mm.material_outbound_detail (material_outbound_id,material_outbound_number,material_code,material_name,use_id,inventory_id,inventory_organization,producer,unit,width,
                                                 height,thickness,outbound_quantity,single_piece_area,inventory_area,date_of_manufacture,remarks)
@@ -758,4 +781,137 @@
    </update>
    <select id="getSelectSurplusMaterialsDate" >
        select *
        from mm.surplus_materials
        <where>
                and date(create_time)>=#{startDate} and date(create_time) &lt;= #{endDate} and quantity>0
            <if test="surplusMaterials.width != null and surplusMaterials.width != ''">
                and width regexp #{surplusMaterials.width}
            </if>
            <if test="surplusMaterials.height != null and surplusMaterials.height != ''">
                and height regexp #{surplusMaterials.height}
            </if>
            <if test="surplusMaterials.thickness != null and surplusMaterials.thickness != ''">
                and thickness regexp #{surplusMaterials.thickness}
            </if>
            <if test="surplusMaterials.quantity != null and surplusMaterials.quantity != ''">
                and quantity regexp #{surplusMaterials.quantity}
            </if>
            <if test="surplusMaterials.colour != null and surplusMaterials.colour != ''">
                and colour regexp #{surplusMaterials.colour}
            </if>
            <if test="surplusMaterials.remarks != null and surplusMaterials.remarks != ''">
                and remarks regexp #{surplusMaterials.remarks}
            </if>
        </where>
        limit #{offset},#{pageSize};
    </select>
    <select id="getSelectSurplusMaterialsDatePageTotal" >
        select CEILING(count(id)/#{pageSize}) as 'pageTotal',
        count(id) as 'total'
        from mm.surplus_materials
        <where>
            and date(create_time)>=#{startDate} and date(create_time) &lt;= #{endDate} and quantity>0
            <if test="surplusMaterials.width != null and surplusMaterials.width != ''">
                and width regexp #{surplusMaterials.width}
            </if>
            <if test="surplusMaterials.height != null and surplusMaterials.height != ''">
                and height regexp #{surplusMaterials.height}
            </if>
            <if test="surplusMaterials.thickness != null and surplusMaterials.thickness != ''">
                and thickness regexp #{surplusMaterials.thickness}
            </if>
            <if test="surplusMaterials.quantity != null and surplusMaterials.quantity != ''">
                and quantity regexp #{surplusMaterials.quantity}
            </if>
            <if test="surplusMaterials.colour != null and surplusMaterials.colour != ''">
                and colour regexp #{surplusMaterials.colour}
            </if>
            <if test="surplusMaterials.remarks != null and surplusMaterials.remarks != ''">
                and remarks regexp #{surplusMaterials.remarks}
            </if>
        </where>
    </select>
    <select id="selectSurplusMaterialsCount" >
        select *
        from mm.surplus_materials
        where width=#{surplusMaterials.width} and height=#{surplusMaterials.height}
          and thickness=#{surplusMaterials.thickness} and colour=#{surplusMaterials.colour} limit 0,1
    </select>
    <insert id="insertSurplusMaterials">
        insert into mm.surplus_materials (width,height,thickness,quantity,colour,create_time)
        values (#{surplusMaterials.width},#{surplusMaterials.height},#{surplusMaterials.thickness},#{surplusMaterials.quantity},#{surplusMaterials.colour},now())
    </insert>
    <insert id="insertSurplusMaterialsLog">
        insert into mm.surplus_materials_log (width,height,thickness,quantity,colour,type,creator,create_time)
        values (#{surplusMaterials.width},#{surplusMaterials.height},#{surplusMaterials.thickness},
                #{surplusMaterials.quantity},#{surplusMaterials.colour},#{type},#{creator},now())
    </insert>
    <update id="updateSurplusMaterialsOutQuantity">
        update mm.surplus_materials set quantity=quantity-#{surplusMaterials.quantity} where id=#{surplusMaterials.id}
    </update>
    <update id="updateSurplusMaterialsIntQuantity">
        update mm.surplus_materials set quantity=quantity+#{surplusMaterials.quantity} where id=#{surplusMaterials.id}
    </update>
    <select id="getPrintCreateOutbound" >
        select id,
               material_outbound_id,
               material_requisition_personnel,
               material_requisition_team,
               order_id,
               outbound_type,
               warehouse_manager,
               date(material_requisition_date) as material_requisition_date,
               reviewed,
               date(reviewed_time) as reviewed_time,
               reviewed_state,
               date(create_time) as create_time
        from mm.material_outbound
        where material_outbound_id = #{materialOutboundId}
    </select>
    <select id="getPrintCreateOutboundDetail" >
        select
            ou.project_no as  projectNo,
            modd.inventory_id as id,
            modd.inventory_organization as inventoryOrganization,
            modd.material_code as materialCode,
            modd.material_name as materialName,
            modd.producer,
            modd.width,
            modd.height,
            modd.thickness,
            modd.unit,
            modd.outbound_quantity as outboundQuantity,
            date(modd.date_of_manufacture) as dateOfManufacture,
            modd.single_piece_area as singlePieceArea,
            modd.inventory_area as inventoryArea,
            modd.remarks,
            ou.use_count as inventoryQuantity,
            if(mo.reviewed_state!=1,modd.outbound_quantity+ou.not_use_count,ou.not_use_count) as availableQuantity,
            ms.json,
            modd.producer
        from mm.material_outbound_detail modd left join pp.optimize_use ou on modd.use_id=ou.id
                                              left join mm.material_outbound mo on modd.material_outbound_id=mo.material_outbound_id
                                              left join mm.material_store ms on modd.material_code=ms.id
        where modd.material_outbound_id = #{materialOutboundId}
    </select>
    <select id="getMaterialInventoryById" >
        select
            *
        from mm.material_inventory mi
        where mi.id = #{id}
    </select>
</mapper>