chenlu
2024-02-27 e8ba2a1bec7ffbd78cb941521b31d000890e66de
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
@@ -64,6 +64,7 @@
        <result column="product_name" property="productName"/>
        <result column="product_id" property="productId"/>
        <result column="warehouse_num" property="warehouseNum"/>
        <result column="delivery_num" property="deliveryNum"/>
        <result column="order_number" property="deliveryDetail.orderNumber"/>
        <result column="delivery_id" property="deliveryDetail.deliveryId"/>
@@ -117,6 +118,32 @@
        where order_number=#{orderNumber}  and order_id=#{orderId}
    </update>
    <update id="updateInventoryquantityInt">
        update mm.finished_goods_inventory
        set quantity_available=quantity_available+#{quantity},
            update_time=now(),area=actual_signal_area*quantity_available
        where order_number=#{orderNumber}  and order_id=#{orderId}
    </update>
    <update id="updateInventoryquantityOut">
        update mm.finished_goods_inventory
        set quantity_available=quantity_available-#{quantity},
            update_time=now(),area=actual_signal_area*quantity_available
        where order_number=#{orderNumber}  and order_id=#{orderId}
    </update>
    <update id="updateInventoryInventoryInt">
        update mm.finished_goods_inventory
        set inventory=inventory+#{quantity}
        where order_number=#{orderNumber}  and order_id=#{orderId}
    </update>
    <update id="updateInventoryInventoryOut">
        update mm.finished_goods_inventory
        set inventory=inventory-#{quantity}
        where order_number=#{orderNumber}  and order_id=#{orderId}
    </update>
    <select id="getSelectAllocate"  resultMap="selectDeliveryFinishedGoodsInventory">
        select fgi.order_id,
               o.project,
@@ -155,10 +182,10 @@
                and od.product_name regexp #{orderDetail.productName}
            </if>
            <if test="orderDetail.width != null and orderDetail.width != ''">
                and od.width regexp #{orderDetail.width}
                and od.width regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
            </if>
            <if test="orderDetail.height != null and orderDetail.height != ''">
                and od.height regexp #{orderDetail.height}
                and od.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
            </if>
            <if test="orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
                and o.customer_id regexp #{orderDetail.order.customerId}
@@ -167,10 +194,10 @@
                and o.customer_name regexp #{orderDetail.order.customerName}
            </if>
            <if test="orderDetail.finishedGoodsInventory.actualSignalArea != null and orderDetail.finishedGoodsInventory.actualSignalArea != ''">
                and fgi.actual_signal_area regexp #{orderDetail.finishedGoodsInventory.actualSignalArea}
                and fgi.actual_signal_area regexp REGEXP_REPLACE(#{orderDetail.finishedGoodsInventory.actualSignalArea},'\\.0+$','')
            </if>
            <if test="orderDetail.finishedGoodsInventory.area != null and orderDetail.finishedGoodsInventory.area != ''">
                and fgi.area regexp #{orderDetail.finishedGoodsInventory.area}
                and fgi.area regexp REGEXP_REPLACE(#{orderDetail.finishedGoodsInventory.area},'\\.0+$','')
            </if>
            <if test="orderDetail.finishedGoodsInventory.storageRegion != null and orderDetail.finishedGoodsInventory.storageRegion != ''">
                and fgi.storage_region regexp #{orderDetail.finishedGoodsInventory.storageRegion}
@@ -182,11 +209,54 @@
    </select>
    <select id="getSelectAllocatePageTotal"  >
        select CEILING(count(zu.order_number)/#{pageSize}) from
        select CEILING(count(zu.order_number)/#{pageSize}) as 'pageTotal',
        count(zu.order_number) as 'total' from
            (select fgi.order_number as order_number
             from mm.finished_goods_inventory fgi
                      left join sd.order_detail od on fgi.order_id = od.order_id and fgi.order_number = od.order_number
                      left join sd.`order` o on fgi.order_id = o.order_id
        <where>
                and fgi.quantity_available>0
            <if test="orderDetail.finishedGoodsInventory.orderId != null and orderDetail.finishedGoodsInventory.orderId != ''">
                and fgi.order_id regexp #{orderDetail.finishedGoodsInventory.orderId}
            </if>
            <if test="orderDetail.order.project != null and orderDetail.order.project != ''">
                and o.project regexp #{orderDetail.order.project}
            </if>
            <if test="orderDetail.finishedGoodsInventory.orderNumber != null and orderDetail.finishedGoodsInventory.orderNumber != ''">
                and fgi.order_number regexp #{orderDetail.finishedGoodsInventory.orderNumber}
            </if>
            <if test="orderDetail.finishedGoodsInventory.quantityAvailable != null and orderDetail.finishedGoodsInventory.quantityAvailable != ''">
                and fgi.quantity_available regexp #{orderDetail.finishedGoodsInventory.quantityAvailable}
            </if>
            <if test="orderDetail.productId != null and orderDetail.productId != ''">
                and od.product_id regexp #{orderDetail.productId}
            </if>
            <if test="orderDetail.productName != null and orderDetail.productName != ''">
                and od.product_name regexp #{orderDetail.productName}
            </if>
            <if test="orderDetail.width != null and orderDetail.width != ''">
                and od.width regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
            </if>
            <if test="orderDetail.height != null and orderDetail.height != ''">
                and od.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
            </if>
            <if test="orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
                and o.customer_id regexp #{orderDetail.order.customerId}
            </if>
            <if test="orderDetail.order.customerName != null and orderDetail.order.customerName != ''">
                and o.customer_name regexp #{orderDetail.order.customerName}
            </if>
            <if test="orderDetail.finishedGoodsInventory.actualSignalArea != null and orderDetail.finishedGoodsInventory.actualSignalArea != ''">
                and fgi.actual_signal_area regexp REGEXP_REPLACE(#{orderDetail.finishedGoodsInventory.actualSignalArea},'\\.0+$','')
            </if>
            <if test="orderDetail.finishedGoodsInventory.area != null and orderDetail.finishedGoodsInventory.area != ''">
                and fgi.area regexp REGEXP_REPLACE(#{orderDetail.finishedGoodsInventory.area},'\\.0+$','')
            </if>
            <if test="orderDetail.finishedGoodsInventory.storageRegion != null and orderDetail.finishedGoodsInventory.storageRegion != ''">
                and fgi.storage_region regexp #{orderDetail.finishedGoodsInventory.storageRegion}
            </if>
        </where>
             group by fgi.order_id, fgi.order_number) as zu
        limit #{offset},#{pageSize};
@@ -195,7 +265,7 @@
    <update id="updateDeliveryDetailState">
        update sd.delivery_detail
        set delivery_detail_state=#{state}
        where order_number=#{orderDetail.deliveryDetail.orderNumber}  and order_id=#{orderDetail.deliveryDetail.orderId}
        where order_number=#{orderDetail.deliveryDetail.orderNumber}  and order_id=#{orderDetail.deliveryDetail.orderId} and delivery_id=#{orderDetail.deliveryDetail.deliveryId}
    </update>
    <update id="updateInventoryquantityavailable">
@@ -207,12 +277,14 @@
    <select id="getseletdeliveryDetailPageTotal"  >
        select CEILING(count(dd.id)/#{pageSize})
        select CEILING(count(dd.id)/#{pageSize}) as 'pageTotal',
        count(dd.id) as 'total'
        from sd.delivery_detail dd
                 left join sd.delivery d on dd.delivery_id = d.delivery_id
                 left join sd.order_detail od on od.order_id = dd.order_id and dd.order_number = od.order_number
                 left join sd.`order` o on o.order_id = dd.order_id
        <where>
                and dd.delivery_detail_state=1
            <if test="orderDetail.deliveryDetail.deliveryId != null and orderDetail.deliveryDetail.deliveryId != ''">
                and dd.delivery_id regexp #{orderDetail.deliveryDetail.deliveryId}
            </if>
@@ -232,22 +304,22 @@
                and d.customer_name regexp #{orderDetail.delivery.customerName}
            </if>
            <if test="orderDetail.width != null and orderDetail.width != ''">
                and od.width regexp #{orderDetail.width}
                and od.width regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
            </if>
            <if test="orderDetail.height != null and orderDetail.height != ''">
                and od.height regexp #{orderDetail.height}
                and od.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
            </if>
            <if test="orderDetail.delivery.quantity != null and orderDetail.delivery.quantity != ''">
                and d.quantity regexp #{orderDetail.delivery.quantity}
            </if>
            <if test="orderDetail.warehouseNum != null and orderDetail.warehouseNum != ''">
                and od.warehouseNum regexp #{orderDetail.warehouseNum}
                and od.warehouse_num regexp #{orderDetail.warehouseNum}
            </if>
            <if test="orderDetail.buildingNumber != null and orderDetail.buildingNumber != ''">
                and od.building_number regexp #{orderDetail.buildingNumber}
            </if>
            <if test="orderDetail.delivery.area != null and orderDetail.delivery.area != ''">
                and d.area regexp #{orderDetail.delivery.area}
                and d.area regexp REGEXP_REPLACE(#{orderDetail.delivery.area},'\\.0+$','')
            </if>
            <if test="orderDetail.deliveryDetail.orderNumber != null and orderDetail.deliveryDetail.orderNumber != ''">
                and dd.order_number regexp #{orderDetail.deliveryDetail.orderNumber}
@@ -279,6 +351,7 @@
               od.height,
               d.quantity,
               od.warehouse_num,
               od.delivery_num,
               d.area,
               od.building_number,
               d.creator,
@@ -287,9 +360,10 @@
        from sd.delivery_detail dd
                 left join sd.delivery d on dd.delivery_id = d.delivery_id
                 left join sd.order_detail od on od.order_id = dd.order_id and dd.order_number = od.order_number
                 left join sd.`order` o on o.order_id = dd.order_id where dd.delivery_detail_state=1
                 left join sd.`order` o on o.order_id = dd.order_id
        <where>
                and dd.delivery_detail_state=1
            <if test="orderDetail.deliveryDetail.deliveryId != null and orderDetail.deliveryDetail.deliveryId != ''">
                and dd.delivery_id regexp #{orderDetail.deliveryDetail.deliveryId}
            </if>
@@ -309,22 +383,22 @@
                and d.customer_name regexp #{orderDetail.delivery.customerName}
            </if>
            <if test="orderDetail.width != null and orderDetail.width != ''">
                and od.width regexp #{orderDetail.width}
                and od.width regexp REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
            </if>
            <if test="orderDetail.height != null and orderDetail.height != ''">
                and od.height regexp #{orderDetail.height}
                and od.height regexp REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
            </if>
            <if test="orderDetail.delivery.quantity != null and orderDetail.delivery.quantity != ''">
                and d.quantity regexp #{orderDetail.delivery.quantity}
            </if>
            <if test="orderDetail.warehouseNum != null and orderDetail.warehouseNum != ''">
                and od.warehouseNum regexp #{orderDetail.warehouseNum}
                and od.warehouse_num regexp #{orderDetail.warehouseNum}
            </if>
            <if test="orderDetail.buildingNumber != null and orderDetail.buildingNumber != ''">
                and od.building_number regexp #{orderDetail.buildingNumber}
            </if>
            <if test="orderDetail.delivery.area != null and orderDetail.delivery.area != ''">
                and d.area regexp #{orderDetail.delivery.area}
                and d.area regexp REGEXP_REPLACE(#{orderDetail.delivery.area},'\\.0+$','')
            </if>
            <if test="orderDetail.deliveryDetail.orderNumber != null and orderDetail.deliveryDetail.orderNumber != ''">
                and dd.order_number regexp #{orderDetail.deliveryDetail.orderNumber}
@@ -353,6 +427,14 @@
        select sum(warehouse_num) from sd.order_detail where order_id=#{orderId}
    </select>
    <select id="findDeliveryQuantity" >
        select quantity from sd.`delivery`  where delivery_id=#{deliveryId}
    </select>
    <select id="findDeliverydetailsum"  >
        select sum(quantity) from sd.`delivery_detail`  where delivery_id=#{deliveryId} and delivery_detail_state=#{deliveryDetailState}
    </select>
    <update id="updateOrderWarehousingState">
        update sd.`order`
        set warehousing=#{state}
@@ -363,6 +445,12 @@
        update sd.`order`
        set delivery=#{state}
        where order_id=#{orderId}
    </update>
    <update id="updateDeliveryDeliveryState">
        update sd.`delivery`
        set stock_state=#{state}
        where delivery_id=#{deliveryId}
    </update>
    <update id="updateIntOrderNumberConut">
@@ -469,10 +557,10 @@
                and od.product_name regexp #{flowCard.orderDetail.productName}
            </if>
            <if test="flowCard.orderDetail.width != null and flowCard.orderDetail.width != ''">
                and od.width regexp #{flowCard.orderDetail.width}
                and od.width regexp REGEXP_REPLACE(#{flowCard.orderDetail.width},'\\.0+$','')
            </if>
            <if test="flowCard.orderDetail.height != null and flowCard.orderDetail.height != ''">
                and od.height regexp #{flowCard.orderDetail.height}
                and od.height regexp REGEXP_REPLACE(#{flowCard.orderDetail.height},'\\.0+$','')
            </if>
            <if test="flowCard.order.creator != null and flowCard.order.creator != ''">
                and o.creator regexp #{flowCard.order.creator}
@@ -490,7 +578,7 @@
                and fc.inventory_quantity regexp #{flowCard.inventoryQuantity}
            </if>
            <if test="flowCard.order.area != null and flowCard.order.area != ''">
                and o.area regexp #{flowCard.order.area}
                and o.area regexp REGEXP_REPLACE(#{flowCard.order.area},'\\.0+$','')
            </if>
            <if test="flowCard.order.batch != null and flowCard.order.batch != ''">
                and o.batch regexp #{flowCard.order.batch}
@@ -507,7 +595,8 @@
        limit #{offset},#{pageSize};
    </select>
    <select id="getseletwarehousingPageTotal" >
        select  CEILING(count(zu.order_number)/#{pageSize}) from (
        CEILING(count(zu.order_number)/#{pageSize}) as 'pageTotal',
        count(zu.order_number) as 'total' from (
        select fc.order_number as order_number,fc.process_id from pp.flow_card fc left join sd.order_detail od on
        fc.order_id=od.order_id and fc.order_number=od.order_number inner join sd.`order` o on o.order_id=fc.order_id
        <where>
@@ -525,10 +614,10 @@
                and od.product_name regexp #{flowCard.orderDetail.productName}
            </if>
            <if test="flowCard.orderDetail.width != null and flowCard.orderDetail.width != ''">
                and od.width regexp #{flowCard.orderDetail.width}
                and od.width regexp REGEXP_REPLACE(#{flowCard.orderDetail.width},'\\.0+$','')
            </if>
            <if test="flowCard.orderDetail.height != null and flowCard.orderDetail.height != ''">
                and od.height regexp #{flowCard.orderDetail.height}
                and od.height regexp REGEXP_REPLACE(#{flowCard.orderDetail.height},'\\.0+$','')
            </if>
            <if test="flowCard.order.creator != null and flowCard.order.creator != ''">
                and o.creator regexp #{flowCard.order.creator}
@@ -546,7 +635,7 @@
                and fc.inventory_quantity regexp #{flowCard.inventoryQuantity}
            </if>
            <if test="flowCard.order.area != null and flowCard.order.area != ''">
                and o.area regexp #{flowCard.order.area}
                and o.area regexp REGEXP_REPLACE(#{flowCard.order.area},'\\.0+$','')
            </if>
            <if test="flowCard.order.batch != null and flowCard.order.batch != ''">
                and o.batch regexp #{flowCard.order.batch}
@@ -610,7 +699,7 @@
                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}
                and od.height regexp REGEXP_REPLACE(#{finishedGoodsInventory.orderDetail.height},'\\.0+$','')
            </if>
            <if test="finishedGoodsInventory.inventory != null and finishedGoodsInventory.inventory != ''">
                and fgi.inventory regexp #{finishedGoodsInventory.inventory}
@@ -619,10 +708,10 @@
                and fgi.quantity_available regexp #{finishedGoodsInventory.quantityAvailable}
            </if>
            <if test="finishedGoodsInventory.actualSignalArea != null and finishedGoodsInventory.actualSignalArea != ''">
                and fgi.actual_signal_area regexp #{finishedGoodsInventory.actualSignalArea}
                and fgi.actual_signal_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.actualSignalArea},'\\.0+$','')
            </if>
            <if test="finishedGoodsInventory.area != null and finishedGoodsInventory.area != ''">
                and fgi.area regexp #{finishedGoodsInventory.area}
                and fgi.area regexp REGEXP_REPLACE(#{finishedGoodsInventory.area},'\\.0+$','')
            </if>
            <if test="finishedGoodsInventory.warehouseNumber != null and finishedGoodsInventory.warehouseNumber != ''">
                and fgi.warehouse_number regexp #{finishedGoodsInventory.warehouseNumber}
@@ -656,7 +745,8 @@
    <select id="getPageTotal">
        select
        CEILING(count(fgi.id)/#{pageSize})
        CEILING(count(fgi.id)/#{pageSize}) as 'pageTotal',
        count(fgi.id) as 'total'
        from finished_goods_inventory fgi
        left join sd.order_detail od on fgi.order_id = od.order_id and fgi.order_number = od.order_number
        left join sd.`order` o on fgi.order_id = o.order_id
@@ -684,7 +774,7 @@
                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}
                and od.height regexp REGEXP_REPLACE(#{finishedGoodsInventory.orderDetail.height},'\\.0+$','')
            </if>
            <if test="finishedGoodsInventory.inventory != null and finishedGoodsInventory.inventory != ''">
                and fgi.inventory regexp #{finishedGoodsInventory.inventory}
@@ -693,10 +783,10 @@
                and fgi.quantity_available regexp #{finishedGoodsInventory.quantityAvailable}
            </if>
            <if test="finishedGoodsInventory.actualSignalArea != null and finishedGoodsInventory.actualSignalArea != ''">
                and fgi.actual_signal_area regexp #{finishedGoodsInventory.actualSignalArea}
                and fgi.actual_signal_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.actualSignalArea},'\\.0+$','')
            </if>
            <if test="finishedGoodsInventory.area != null and finishedGoodsInventory.area != ''">
                and fgi.area regexp #{finishedGoodsInventory.area}
                and fgi.area regexp REGEXP_REPLACE(#{finishedGoodsInventory.area},'\\.0+$','')
            </if>
            <if test="finishedGoodsInventory.warehouseNumber != null and finishedGoodsInventory.warehouseNumber != ''">
                and fgi.warehouse_number regexp #{finishedGoodsInventory.warehouseNumber}