guoyuji
2024-01-26 97a25e0cf8fcedda488bce97cdd95d85ec829619
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
New file
@@ -0,0 +1,187 @@
<?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.FinishedGoodsInventoryMapper" >
    <resultMap id="selectFinishedGoodsInventory" type="com.example.erp.entity.mm.FinishedGoodsInventory" >
        <id column="id" property="id"/>
        <result column="inventory" property="inventory"/>
        <result column="area" property="area"/>
        <result column="actual_signal_area" property="actualSignalArea"/>
        <result column="quantity_available" property="quantityAvailable"/>
        <result column="warehouse_number" property="warehouseNumber"/>
        <result column="storage_region" property="storageRegion"/>
        <result column="status" property="status"/>
        <result column="enter_storage_time" property="enterStorageTime"/>
        <result column="remark" property="remark"/>
        <result column="update_time" property="updateTime"/>
        <result column="end_time" property="endTime"/>
            <result column="order_id" property="order.orderId"/>
            <result column="project" property="order.project"/>
            <result column="order_type" property="order.orderType"/>
            <result column="order_number" property="orderDetail.orderNumber"/>
            <result column="width" property="orderDetail.width"/>
            <result column="height" property="orderDetail.height"/>
            <result column="product_name" property="orderDetail.product.productName"/>
            <result column="product_id" property="orderDetail.product.id"/>
    </resultMap>
    <select id="defaultfinishedGoods" resultMap="selectFinishedGoodsInventory">
        select od.order_number,
               o.order_id,
               o.project,
               o.order_type,
               od.product_name,
               od.product_id,
               od.width,
               od.height,
               fgi.inventory,
               fgi.quantity_available,
               fgi.actual_signal_area,
               fgi.area,
               fgi.warehouse_number,
               fgi.storage_region,
               fgi.`status`,
               fgi.update_time,
               fgi.enter_storage_time,
               fgi.end_time,
               fgi.remark
        from finished_goods_inventory fgi
                 left join sd.order_detail od on fgi.order_number = od.order_number
                 inner join sd.`order` o on fgi.order_id = o.order_id
        <where>
            <if test="finishedGoodsInventory.orderDetail.width != null and finishedGoodsInventory.orderDetail.width != ''">
                and od.width regexp #{finishedGoodsInventory.orderDetail.width}
            </if>
            <if test="finishedGoodsInventory.orderDetail.orderNumber != null and finishedGoodsInventory.orderDetail.orderNumber != ''">
                and od.order_number regexp #{finishedGoodsInventory.orderDetail.orderNumber}
            </if>
            <if test="finishedGoodsInventory.order.orderId != null and finishedGoodsInventory.order.orderId != ''">
                and o.order_id regexp #{finishedGoodsInventory.order.orderId}
            </if>
            <if test="finishedGoodsInventory.order.project != null and finishedGoodsInventory.order.project != ''">
                and o.project regexp #{finishedGoodsInventory.order.project}
            </if>
            <if test="finishedGoodsInventory.order.orderType != null and finishedGoodsInventory.order.orderType != ''">
                and o.order_type regexp #{finishedGoodsInventory.order.orderType}
            </if>
            <if test="finishedGoodsInventory.orderDetail.height != null and finishedGoodsInventory.orderDetail.height != ''">
                and od.height regexp #{finishedGoodsInventory.orderDetail.height}
            </if>
            <if test="finishedGoodsInventory.inventory != null and finishedGoodsInventory.inventory != ''">
                and fgi.inventory regexp #{finishedGoodsInventory.inventory}
            </if>
            <if test="finishedGoodsInventory.quantityAvailable != null and finishedGoodsInventory.quantityAvailable != ''">
                and fgi.quantity_available regexp #{finishedGoodsInventory.quantityAvailable}
            </if>
            <if test="finishedGoodsInventory.actualSignalArea != null and finishedGoodsInventory.actualSignalArea != ''">
                and fgi.actual_signal_area regexp #{finishedGoodsInventory.actualSignalArea}
            </if>
            <if test="finishedGoodsInventory.area != null and finishedGoodsInventory.area != ''">
                and fgi.area regexp #{finishedGoodsInventory.area}
            </if>
            <if test="finishedGoodsInventory.warehouseNumber != null and finishedGoodsInventory.warehouseNumber != ''">
                and fgi.warehouse_number regexp #{finishedGoodsInventory.warehouseNumber}
            </if>
            <if test="finishedGoodsInventory.storageRegion != null and finishedGoodsInventory.storageRegion != ''">
                and fgi.storage_region regexp #{finishedGoodsInventory.storageRegion}
            </if>
            <if test="finishedGoodsInventory.status != null and finishedGoodsInventory.status != ''">
                and fgi.`status` regexp #{finishedGoodsInventory.status}
            </if>
            <if test="finishedGoodsInventory.enterStorageTime != null and finishedGoodsInventory.enterStorageTime != ''">
                and fgi.enter_storage_time regexp #{finishedGoodsInventory.enterStorageTime}
            </if>
            <if test="finishedGoodsInventory.updateTime != null and finishedGoodsInventory.updateTime != ''">
                and fgi.update_time regexp #{finishedGoodsInventory.updateTime}
            </if>
            <if test="finishedGoodsInventory.endTime != null and finishedGoodsInventory.endTime != ''">
                and fgi.end_time regexp #{finishedGoodsInventory.endTime}
            </if>
            <if test="finishedGoodsInventory.remark != null and finishedGoodsInventory.remark != ''">
                and fgi.remark regexp #{finishedGoodsInventory.remark}
            </if>
        </where>
        order by fgi.id
        limit #{offset},#{pageSize}
        ;
    </select>
    <select id="getPageTotal" >
        select
        CEILING(count(fgi.id)/#{pageSize})
        from finished_goods_inventory fgi
        left join sd.order_detail od on fgi.order_number = od.order_number
        inner join sd.`order` o on fgi.order_id = o.order_id
        <where>
            <if test="finishedGoodsInventory.orderDetail.width != null and finishedGoodsInventory.orderDetail.width != ''">
                and od.width regexp #{finishedGoodsInventory.orderDetail.width}
            </if>
            <if test="finishedGoodsInventory.orderDetail.orderNumber != null and finishedGoodsInventory.orderDetail.orderNumber != ''">
                and od.order_number regexp #{finishedGoodsInventory.orderDetail.orderNumber}
            </if>
            <if test="finishedGoodsInventory.order.orderId != null and finishedGoodsInventory.order.orderId != ''">
                and o.order_id regexp #{finishedGoodsInventory.order.orderId}
            </if>
            <if test="finishedGoodsInventory.order.project != null and finishedGoodsInventory.order.project != ''">
                and o.project regexp #{finishedGoodsInventory.order.project}
            </if>
            <if test="finishedGoodsInventory.order.orderType != null and finishedGoodsInventory.order.orderType != ''">
                and o.order_type regexp #{finishedGoodsInventory.order.orderType}
            </if>
            <if test="finishedGoodsInventory.orderDetail.height != null and finishedGoodsInventory.orderDetail.height != ''">
                and od.height regexp #{finishedGoodsInventory.orderDetail.height}
            </if>
            <if test="finishedGoodsInventory.inventory != null and finishedGoodsInventory.inventory != ''">
                and fgi.inventory regexp #{finishedGoodsInventory.inventory}
            </if>
            <if test="finishedGoodsInventory.quantityAvailable != null and finishedGoodsInventory.quantityAvailable != ''">
                and fgi.quantity_available regexp #{finishedGoodsInventory.quantityAvailable}
            </if>
            <if test="finishedGoodsInventory.actualSignalArea != null and finishedGoodsInventory.actualSignalArea != ''">
                and fgi.actual_signal_area regexp #{finishedGoodsInventory.actualSignalArea}
            </if>
            <if test="finishedGoodsInventory.area != null and finishedGoodsInventory.area != ''">
                and fgi.area regexp #{finishedGoodsInventory.area}
            </if>
            <if test="finishedGoodsInventory.warehouseNumber != null and finishedGoodsInventory.warehouseNumber != ''">
                and fgi.warehouse_number regexp #{finishedGoodsInventory.warehouseNumber}
            </if>
            <if test="finishedGoodsInventory.storageRegion != null and finishedGoodsInventory.storageRegion != ''">
                and fgi.storage_region regexp #{finishedGoodsInventory.storageRegion}
            </if>
            <if test="finishedGoodsInventory.status != null and finishedGoodsInventory.status != ''">
                and fgi.`status` regexp #{finishedGoodsInventory.status}
            </if>
            <if test="finishedGoodsInventory.enterStorageTime != null and finishedGoodsInventory.enterStorageTime != ''">
                and fgi.enter_storage_time regexp #{finishedGoodsInventory.enterStorageTime}
            </if>
            <if test="finishedGoodsInventory.updateTime != null and finishedGoodsInventory.updateTime != ''">
                and fgi.update_time regexp #{finishedGoodsInventory.updateTime}
            </if>
            <if test="finishedGoodsInventory.endTime != null and finishedGoodsInventory.endTime != ''">
                and fgi.end_time regexp #{finishedGoodsInventory.endTime}
            </if>
            <if test="finishedGoodsInventory.remark != null and finishedGoodsInventory.remark != ''">
                and fgi.remark regexp #{finishedGoodsInventory.remark}
            </if>
        </where>
        order by fgi.id desc
        limit #{offset},#{pageSize}
        ;
    </select>
</mapper>