<?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="fid" property="id"/>
|
<result column="id" property="id"/>
|
<result column="order_id" property="orderId"/>
|
<result column="order_number" property="orderNumber"/>
|
<result column="process_id" property="processId"/>
|
<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="box_no" property="boxNo"/>
|
<result column="weight" property="weight"/>
|
<result column="compute_area" property="computeArea"/>
|
<result column="compute_gross_area" property="computeGrossArea"/>
|
|
<result column="order_id" property="order.orderId"/>
|
<result column="project" property="order.project"/>
|
<result column="order_type" property="order.orderType"/>
|
<result column="customer_id" property="order.customerId"/>
|
<result column="customer_name" property="order.customerName"/>
|
<result column="batch" property="order.batch"/>
|
<result column="salesman" property="order.salesman"/>
|
|
|
<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.productName"/>
|
<result column="product_id" property="orderDetail.productId"/>
|
<result column="building_number" property="orderDetail.buildingNumber"/>
|
|
</resultMap>
|
<!--映射成品入库-->
|
<resultMap id="selectFlowCard" type="com.example.erp.entity.pp.FlowCard">
|
<id column="id" property="id"/>
|
<result column="order_number" property="orderNumber"/>
|
<result column="inventory_quantity" property="inventoryQuantity"/>
|
<result column="process_id" property="processId"/>
|
<result column="received_quantity" property="receivedQuantity"/>
|
<result column="fc_quantity" property="quantity"/>
|
|
|
<result column="order_id" property="order.orderId"/>
|
<result column="project" property="order.project"/>
|
<result column="creator" property="order.creator"/>
|
<result column="area" property="order.area"/>
|
<result column="batch" property="order.batch"/>
|
<result column="order_quantity" property="order.quantity"/>
|
<result column="calculate_type" property="order.calculateType"/>
|
|
<result column="building_number" property="orderDetail.buildingNumber"/>
|
<result column="width" property="orderDetail.width"/>
|
<result column="height" property="orderDetail.height"/>
|
<result column="product_name" property="orderDetail.productName"/>
|
<result column="product_id" property="orderDetail.productId"/>
|
<result column="quantity" property="orderDetail.quantity"/>
|
|
<result column="price" property="orderDetail.price"/>
|
<result column="areas" property="orderDetail.area"/>
|
<result column="gross_area" property="orderDetail.grossArea"/>
|
<result column="compute_area" property="orderDetail.computeArea"/>
|
<result column="compute_gross_area" property="orderDetail.computeGrossArea"/>
|
</resultMap>
|
|
<!--映射成品出库-->
|
<resultMap id="selectDelivery" type="com.example.erp.entity.sd.OrderDetail">
|
<id column="id" property="id"/>
|
<result column="building_number" property="buildingNumber"/>
|
<result column="width" property="width"/>
|
<result column="height" property="height"/>
|
<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"/>
|
<result column="delivery_number" property="deliveryDetail.deliveryNumber"/>
|
<result column="delivery_detail_remakes" property="deliveryDetail.deliveryDetailRemakes"/>
|
<result column="delivery_detail_state" property="deliveryDetail.deliveryDetailState"/>
|
<result column="order_id" property="deliveryDetail.orderId"/>
|
<result column="create_time" property="deliveryDetail.createTime"/>
|
<result column="dd_quantity" property="deliveryDetail.quantity"/>
|
<result column="box_no" property="deliveryDetail.boxNo"/>
|
<result column="area" property="deliveryDetail.area"/>
|
|
<result column="project" property="order.project"/>
|
|
<result column="creator" property="delivery.creator"/>
|
<result column="customer_name" property="delivery.customerName"/>
|
<result column="d_quantity" property="delivery.quantity"/>
|
|
|
|
</resultMap>
|
|
<!--映射订单调拨-->
|
<resultMap id="selectDeliveryFinishedGoodsInventory" type="com.example.erp.entity.sd.OrderDetail">
|
|
<result column="width" property="width"/>
|
<result column="height" property="height"/>
|
<result column="product_name" property="productName"/>
|
<result column="product_id" property="productId"/>
|
|
<result column="order_id" property="finishedGoodsInventory.orderId"/>
|
<result column="order_number" property="finishedGoodsInventory.orderNumber"/>
|
<result column="quantity_available" property="finishedGoodsInventory.quantityAvailable"/>
|
<result column="actual_signal_area" property="finishedGoodsInventory.actualSignalArea"/>
|
<result column="area" property="finishedGoodsInventory.area"/>
|
<result column="storage_region" property="finishedGoodsInventory.storageRegion"/>
|
|
<result column="project" property="order.project"/>
|
<result column="customer_id" property="order.customerId"/>
|
<result column="customer_name" property="order.customerName"/>
|
|
|
</resultMap>
|
<update id="updateInventoryquantityAllocateInt">
|
update mm.finished_goods_inventory
|
set inventory=inventory+#{quantity},quantity_available=quantity_available+#{quantity},
|
update_time=now(),area=actual_signal_area*quantity_available,compute_gross_area=compute_area*quantity_available
|
where order_number=#{orderNumber} and order_id=#{orderId}
|
</update>
|
|
<update id="updateInventoryquantityAllocateOut">
|
update mm.finished_goods_inventory
|
set inventory=inventory-#{quantity},quantity_available=quantity_available-#{quantity},
|
update_time=now(),area=actual_signal_area*quantity_available,compute_gross_area=compute_area*quantity_available
|
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,compute_gross_area=compute_area*quantity_available
|
where order_number=#{orderNumber} and order_id=#{orderId}
|
</update>
|
<update id="updateInventoryquantityIntBybox">
|
update mm.finished_goods_inventory
|
set quantity_available=quantity_available+#{quantity},
|
update_time=now(),area=actual_signal_area*quantity_available,compute_gross_area=compute_area*quantity_available
|
where order_number=#{orderNumber} and order_id=#{orderId}
|
<if test="boxNo != null ">
|
and trim(box_no) = trim(#{boxNo})
|
</if>
|
<if test="boxNo == null ">
|
and box_no is null
|
</if>
|
</update>
|
|
<update id="updateInventoryquantityOut">
|
update mm.finished_goods_inventory
|
set quantity_available=quantity_available-#{quantity},
|
update_time=now(),area=actual_signal_area*quantity_available,compute_gross_area=compute_area*quantity_available
|
where order_id=#{orderId} and order_number=#{orderNumber}
|
<if test="boxNo != null ">
|
and trim(box_no) = trim(#{boxNo})
|
</if>
|
<if test="boxNo == null ">
|
and box_no is null
|
</if>
|
</update>
|
|
<update id="updateInventoryInventoryInt">
|
update mm.finished_goods_inventory
|
set inventory=inventory+#{quantity}
|
where order_number=#{orderNumber} and order_id=#{orderId}
|
<if test="remarks != null ">
|
and trim(box_no) = trim(#{remarks})
|
</if>
|
<if test="remarks == null ">
|
and box_no is null
|
</if>
|
</update>
|
|
<update id="updateInventoryInventoryOut">
|
update mm.finished_goods_inventory
|
set inventory=inventory-#{quantity}
|
where order_number=#{orderNumber} and order_id=#{orderId}
|
<if test="boxNo != null ">
|
and trim(box_no) = trim(#{boxNo})
|
</if>
|
<if test="boxNo == null ">
|
and box_no is null
|
</if>
|
|
</update>
|
|
<select id="getSelectAllocate" resultMap="selectDeliveryFinishedGoodsInventory">
|
select fgi.order_id,
|
o.project,
|
fgi.order_number,
|
fgi.quantity_available,
|
od.product_id,
|
od.product_name,
|
od.width,
|
od.height,
|
o.customer_id,
|
o.customer_name,
|
fgi.actual_signal_area,
|
fgi.area,
|
fgi.storage_region
|
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.status = 0 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,fgi.box_no
|
|
limit #{offset},#{pageSize};
|
</select>
|
|
<select id="getSelectAllocatePageTotal" >
|
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};
|
</select>
|
|
<update id="updateDeliveryDetailState">
|
update sd.delivery_detail
|
set delivery_detail_state=#{state}
|
where order_number=#{orderNumber} and order_id=#{orderId} and delivery_id=#{deliveryId}
|
<if test="remarks != null ">
|
and trim(box_no) = trim(#{remarks})
|
</if>
|
<if test="remarks == null ">
|
and box_no is null
|
</if>
|
</update>
|
|
<update id="updateInventoryquantityavailable">
|
update mm.finished_goods_inventory
|
set inventory=0,quantity_available=0,
|
update_time=now(),area=0,status=1,compute_gross_area=0
|
where order_number=#{orderDetail.deliveryDetail.orderNumber} and order_id=#{orderDetail.deliveryDetail.orderId}
|
</update>
|
|
|
<select id="getSelectDeliveryDetailPageTotal" >
|
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 != null and orderDetail.deliveryDetail.deliveryId != null and orderDetail.deliveryDetail.deliveryId != ''">
|
and dd.delivery_id regexp #{orderDetail.deliveryDetail.deliveryId}
|
</if>
|
<if test="orderDetail.deliveryDetail != null and orderDetail.deliveryDetail.orderId != null and orderDetail.deliveryDetail.orderId != ''">
|
and dd.order_id regexp #{orderDetail.deliveryDetail.orderId}
|
</if>
|
<if test="orderDetail.order != null and orderDetail.order.project != null and orderDetail.order.project != ''">
|
and o.project regexp #{orderDetail.order.project}
|
</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.delivery != null and orderDetail.delivery.customerName != null and orderDetail.delivery.customerName != ''">
|
and d.customer_name regexp #{orderDetail.delivery.customerName}
|
</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.delivery != null and 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.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 != null and orderDetail.delivery.area != null and orderDetail.delivery.area != ''">
|
and d.area regexp REGEXP_REPLACE(#{orderDetail.delivery.area},'\\.0+$','')
|
</if>
|
<if test="orderDetail.deliveryDetail != null and orderDetail.deliveryDetail.orderNumber != null and orderDetail.deliveryDetail.orderNumber != ''">
|
and dd.order_number regexp #{orderDetail.deliveryDetail.orderNumber}
|
</if>
|
<if test="orderDetail.delivery != null and orderDetail.delivery.creator != null and orderDetail.delivery.creator != ''">
|
and d.creator regexp #{orderDetail.delivery.creator}
|
</if>
|
<if test="orderDetail.deliveryDetail != null and orderDetail.deliveryDetail.createTime != null and orderDetail.deliveryDetail.createTime != ''">
|
and dd.create_time regexp #{orderDetail.deliveryDetail.createTime}
|
</if>
|
<if test="orderDetail.deliveryDetail != null and orderDetail.deliveryDetail.deliveryDetailRemakes != null and orderDetail.deliveryDetail.deliveryDetailRemakes != ''">
|
and dd.delivery_detail_remakes regexp #{orderDetail.deliveryDetail.deliveryDetailRemakes}
|
</if>
|
</where>
|
order by dd.id desc
|
|
limit #{offset},#{pageSize};
|
</select>
|
|
<select id="getSelectDeliveryDetail" resultMap="selectDelivery">
|
select dd.delivery_id,
|
dd.order_number,
|
dd.order_id,
|
o.project,
|
od.product_id,
|
od.product_name,
|
d.customer_name,
|
od.width,
|
od.height,
|
dd.quantity as dd_quantity,
|
od.warehouse_num,
|
od.delivery_num,
|
dd.area,
|
od.building_number,
|
d.creator,
|
dd.delivery_detail_remakes,
|
dd.create_time,
|
dd.box_no
|
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 and d.delivery_state=2
|
<if test="orderDetail.deliveryDetail != null and orderDetail.deliveryDetail.deliveryId != null and orderDetail.deliveryDetail.deliveryId != ''">
|
and dd.delivery_id regexp #{orderDetail.deliveryDetail.deliveryId}
|
</if>
|
<if test="orderDetail.deliveryDetail != null and orderDetail.deliveryDetail.orderId != null and orderDetail.deliveryDetail.orderId != ''">
|
and dd.order_id regexp #{orderDetail.deliveryDetail.orderId}
|
</if>
|
<if test="orderDetail.order != null and orderDetail.order.project != null and orderDetail.order.project != ''">
|
and o.project regexp #{orderDetail.order.project}
|
</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.delivery != null and orderDetail.delivery.customerName != null and orderDetail.delivery.customerName != ''">
|
and d.customer_name regexp #{orderDetail.delivery.customerName}
|
</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.delivery != null and 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.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 != null and orderDetail.delivery.area != null and orderDetail.delivery.area != ''">
|
and d.area regexp REGEXP_REPLACE(#{orderDetail.delivery.area},'\\.0+$','')
|
</if>
|
<if test="orderDetail.deliveryDetail != null and orderDetail.deliveryDetail.orderNumber != null and orderDetail.deliveryDetail.orderNumber != ''">
|
and dd.order_number regexp #{orderDetail.deliveryDetail.orderNumber}
|
</if>
|
<if test="orderDetail.delivery != null and orderDetail.delivery.creator != null and orderDetail.delivery.creator != ''">
|
and d.creator regexp #{orderDetail.delivery.creator}
|
</if>
|
<if test="orderDetail.deliveryDetail != null and orderDetail.deliveryDetail.createTime != null and orderDetail.deliveryDetail.createTime != ''">
|
and dd.create_time regexp #{orderDetail.deliveryDetail.createTime}
|
</if>
|
<if test="orderDetail.deliveryDetail != null and orderDetail.deliveryDetail.deliveryDetailRemakes != null and orderDetail.deliveryDetail.deliveryDetailRemakes != ''">
|
and dd.delivery_detail_remakes regexp #{orderDetail.deliveryDetail.deliveryDetailRemakes}
|
</if>
|
</where>
|
|
order by dd.id desc
|
|
limit #{offset},#{pageSize};
|
</select>
|
|
<select id="findOrderQuantity" >
|
select quantity from sd.`order` where order_id=#{orderId}
|
</select>
|
|
<select id="findOrderNumberdsum" >
|
select sum(warehouse_num) from sd.order_detail where order_id=#{orderId}
|
</select>
|
|
<select id="findOrderDeliveryQuantitySum" >
|
select sum(delivery_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="findOrderDelivery" >
|
select * from sd.`delivery` where order_id=#{orderId}
|
</select>
|
|
<select id="findDeliverydetailsum" >
|
select ifnull(sum(quantity),0) from sd.`delivery_detail` where delivery_id=#{deliveryId} and delivery_detail_state=#{deliveryDetailState}
|
</select>
|
|
<select id="findFinishedOperateLogQuantity" >
|
select sum(quantity) from mm.finished_operate_log where operate_type='出库' and status='未审核' and order_id=#{orderId}
|
</select>
|
|
<update id="updateOrderWarehousingState">
|
update sd.`order`
|
set warehousing=#{state}
|
where order_id=#{orderId}
|
</update>
|
|
<update id="updateOrderDeliveryState">
|
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">
|
update sd.order_detail
|
set warehouse_num=warehouse_num+${quantity},update_time=now()
|
where order_number=#{orderNumber} and order_id=#{orderId}
|
</update>
|
|
<update id="updateOutOrderNumberConut">
|
update sd.order_detail
|
set warehouse_num=warehouse_num-${quantity}
|
where order_number=#{orderNumber} and order_id=#{orderId}
|
</update>
|
|
<update id="updateOrderNumberConut">
|
update sd.order_detail
|
set warehouse_num=warehouse_num+${quantity},update_time=now()
|
where order_number=#{orderNumber} and order_id=#{orderId}
|
</update>
|
|
<update id="updateflowcard">
|
update pp.flow_card
|
set received_quantity=received_quantity+${inventoryQuantity},storage_time=now()
|
where order_number=#{orderNumber} and process_id=#{processId} and order_id=#{order.orderId}
|
</update>
|
|
<update id="updateflowcardOut">
|
update pp.flow_card
|
set received_quantity=received_quantity-${finishedOperateLog.cancelAvailable},storage_time=now()
|
where order_number=#{finishedOperateLog.operationNumber} and process_id=#{finishedOperateLog.processId} and order_id=#{finishedOperateLog.orderId}
|
</update>
|
|
<update id="updateInventory">
|
update mm.finished_goods_inventory
|
set inventory=inventory+${flowCard.inventoryQuantity},quantity_available=quantity_available+${flowCard.inventoryQuantity},
|
update_time=now(),area=actual_signal_area*quantity_available,compute_gross_area=compute_area*quantity_available
|
<if test="storageRegion != null and storageRegion != ''">
|
, storage_region= #{storageRegion}
|
</if>
|
<if test="remark != null and remark != ''">
|
, remark= #{remark}
|
</if>
|
<if test="container != null ">
|
, box_no= #{container}
|
</if>
|
where order_number=#{flowCard.orderNumber} and order_id=#{flowCard.order.orderId}
|
<if test="container != null ">
|
and box_no= #{container}
|
</if>
|
<if test="container == null ">
|
and box_no is null
|
</if>
|
|
</update>
|
|
<update id="updateInventoryOut">
|
update mm.finished_goods_inventory
|
set inventory=inventory-${finishedOperateLog.cancelAvailable},quantity_available=quantity_available-${finishedOperateLog.cancelAvailable},
|
update_time=now(),area=actual_signal_area*quantity_available,compute_gross_area=compute_area*quantity_available
|
where order_number=#{finishedOperateLog.operationNumber} and order_id=#{finishedOperateLog.orderId}
|
<if test="finishedOperateLog.remarks != null and finishedOperateLog.remarks != ''">
|
and box_no=#{finishedOperateLog.remarks}
|
</if>
|
<if test="finishedOperateLog.remarks == null ">
|
and box_no is null
|
</if>
|
</update>
|
|
<insert id="insertFinishedGoodsInventory" useGeneratedKeys="true" >
|
insert into mm.finished_goods_inventory (order_id,
|
order_number,
|
process_id,
|
inventory,
|
actual_signal_area,
|
area,
|
quantity_available,
|
warehouse_number,
|
storage_region,
|
`status`,
|
enter_storage_time,
|
box_no,
|
update_time,
|
end_time,
|
remark,
|
compute_area,
|
compute_gross_area
|
|
)
|
values (
|
#{flowCard.order.orderId} ,#{flowCard.orderNumber},#{flowCard.processId},#{flowCard.inventoryQuantity},ROUND(#{flowCard.orderDetail.width}*#{flowCard.orderDetail.height}/1000000,2),
|
ROUND(#{flowCard.orderDetail.width}*#{flowCard.orderDetail.height}*#{flowCard.inventoryQuantity}/1000000,2),
|
#{flowCard.inventoryQuantity},null,#{storageRegion},
|
0,now(),#{container},now(),null,#{remark},#{getComputeArea},#{getComputeArea}*#{flowCard.inventoryQuantity}
|
)
|
</insert>
|
|
<select id="findOrderNumberdcount" >
|
select count(*)
|
from mm.`finished_goods_inventory`
|
where order_number = #{orderNumber} and order_id=#{orderId}
|
<if test="boxNo != null ">
|
and box_no=#{boxNo}
|
</if>
|
<if test="boxNo == null ">
|
and box_no is null
|
</if>
|
|
</select>
|
|
<select id="findOrderNumberdContainercount" >
|
select count(*)
|
from mm.`finished_goods_inventory`
|
where order_number = #{orderNumber} and order_id=#{orderId}
|
<if test="container != null ">
|
and box_no=#{container}
|
</if>
|
<if test="container == null ">
|
and box_no is null
|
</if>
|
|
</select>
|
|
<select id="findOrderNumberd" >
|
select *
|
from mm.`finished_goods_inventory`
|
where order_number = #{orderNumber} and order_id=#{orderId};
|
|
</select>
|
|
<select id="findOrderDetailNumberd" >
|
select *
|
from sd.`order_detail`
|
where order_number = #{orderNumber} and order_id=#{orderId};
|
|
</select>
|
|
<select id="finishedGoodsInventorybycount" >
|
select quantity_available
|
from mm.`finished_goods_inventory`
|
where order_number = #{orderNumber} and order_id=#{orderId};
|
|
</select>
|
|
<select id="getSelectWarehousingByProcessId" resultMap="selectFlowCard">
|
select
|
fc.id,
|
o.order_id,
|
od.building_number,
|
od.product_id,
|
od.product_name,
|
od.width,
|
od.height,
|
o.creator,
|
o.project,
|
fc.order_number,
|
od.quantity,
|
fc.inventory_quantity-fc.received_quantity as inventory_quantity,
|
o.area,
|
fc.process_id,
|
fc.received_quantity,
|
o.batch,
|
o.calculate_type,
|
od.compute_area,
|
od.price,
|
od.area as areas,
|
od.gross_area,
|
od.compute_gross_area
|
from (select *,min(inventory_quantity) as min_inventory_quantity from pp.flow_card group by order_id,order_number,process_id) as 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 fc.received_quantity <![CDATA[<]]> fc.min_inventory_quantity and o.create_order>0 and
|
fc.order_id=#{order_id} and fc.order_number=#{order_number} and fc.process_id=#{process_id};
|
|
</select>
|
|
|
<select id="getSelectWarehousing" resultMap="selectFlowCard">
|
select
|
fc.id,
|
o.order_id,
|
od.building_number,
|
od.product_id,
|
od.product_name,
|
od.width,
|
od.height,
|
o.creator,
|
o.project,
|
fc.order_number,
|
od.quantity,
|
fc.quantity as fc_quantity,
|
fc.inventory_quantity-fc.received_quantity as inventory_quantity,
|
o.area,
|
fc.process_id,
|
fc.received_quantity,
|
o.batch,
|
o.calculate_type,
|
od.compute_area,
|
od.price,
|
od.area as areas,
|
od.gross_area,
|
od.compute_gross_area
|
from (select *,min(inventory_quantity) as min_inventory_quantity from pp.flow_card group by order_id,order_number,process_id) as 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>
|
and fc.received_quantity <![CDATA[<]]> fc.min_inventory_quantity and o.create_order>0
|
<if test="flowCard.order != null and flowCard.order.orderId != null and flowCard.order.orderId != ''">
|
and o.order_id regexp #{flowCard.order.orderId}
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.buildingNumber != null and flowCard.orderDetail.buildingNumber != ''">
|
and od.building_number regexp #{flowCard.orderDetail.buildingNumber}
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
|
and od.product_id regexp #{flowCard.orderDetail.productId}
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.productName != null and flowCard.orderDetail.productName != ''">
|
and od.product_name regexp #{flowCard.orderDetail.productName}
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.width != null and flowCard.orderDetail.width != ''">
|
and od.width regexp REGEXP_REPLACE(#{flowCard.orderDetail.width},'\\.0+$','')
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.height != null and flowCard.orderDetail.height != ''">
|
and od.height regexp REGEXP_REPLACE(#{flowCard.orderDetail.height},'\\.0+$','')
|
</if>
|
<if test="flowCard.order != null and flowCard.order.creator != null and flowCard.order.creator != ''">
|
and o.creator regexp #{flowCard.order.creator}
|
</if>
|
<if test="flowCard.order != null and flowCard.order.project != null and flowCard.order.project != ''">
|
and o.project regexp #{flowCard.order.project}
|
</if>
|
<if test="flowCard.orderNumber != null and flowCard.orderNumber != ''">
|
and fc.order_number regexp #{flowCard.orderNumber}
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.quantity != null and flowCard.orderDetail.quantity != ''">
|
and od.quantity regexp #{flowCard.orderDetail.quantity}
|
</if>
|
<if test="flowCard.inventoryQuantity != null and flowCard.inventoryQuantity != ''">
|
and fc.inventory_quantity regexp #{flowCard.inventoryQuantity}
|
</if>
|
<if test="flowCard.order != null and flowCard.order.area != null and flowCard.order.area != ''">
|
and o.area regexp REGEXP_REPLACE(#{flowCard.order.area},'\\.0+$','')
|
</if>
|
<if test="flowCard.order != null and flowCard.order.batch != null and flowCard.order.batch != ''">
|
and o.batch regexp #{flowCard.order.batch}
|
</if>
|
<if test="flowCard.processId != null and flowCard.processId != ''">
|
and fc.process_id regexp #{flowCard.processId}
|
</if>
|
<if test="flowCard.receivedQuantity != null and flowCard.receivedQuantity != ''">
|
and fc.received_quantity regexp #{flowCard.receivedQuantity}
|
</if>
|
|
</where>
|
group by fc.order_id,fc.order_number,fc.process_id order by fc.create_time desc
|
limit #{offset},#{pageSize};
|
</select>
|
<select id="getSelectWarehousingPageTotal" >
|
select
|
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>
|
and fc.received_quantity <![CDATA[<]]> fc.inventory_quantity and o.create_order>0
|
<if test="flowCard.order != null and flowCard.order.orderId != null and flowCard.order.orderId != ''">
|
and o.order_id regexp #{flowCard.order.orderId}
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.buildingNumber != null and flowCard.orderDetail.buildingNumber != ''">
|
and od.building_number regexp #{flowCard.orderDetail.buildingNumber}
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
|
and od.product_id regexp #{flowCard.orderDetail.productId}
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.productName != null and flowCard.orderDetail.productName != ''">
|
and od.product_name regexp #{flowCard.orderDetail.productName}
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.width != null and flowCard.orderDetail.width != ''">
|
and od.width regexp REGEXP_REPLACE(#{flowCard.orderDetail.width},'\\.0+$','')
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.height != null and flowCard.orderDetail.height != ''">
|
and od.height regexp REGEXP_REPLACE(#{flowCard.orderDetail.height},'\\.0+$','')
|
</if>
|
<if test="flowCard.order != null and flowCard.order.creator != null and flowCard.order.creator != ''">
|
and o.creator regexp #{flowCard.order.creator}
|
</if>
|
<if test="flowCard.order != null and flowCard.order.project != null and flowCard.order.project != ''">
|
and o.project regexp #{flowCard.order.project}
|
</if>
|
<if test="flowCard.orderNumber != null and flowCard.orderNumber != ''">
|
and fc.order_number regexp #{flowCard.orderNumber}
|
</if>
|
<if test="flowCard.orderDetail != null and flowCard.orderDetail.quantity != null and flowCard.orderDetail.quantity != ''">
|
and od.quantity regexp #{flowCard.orderDetail.quantity}
|
</if>
|
<if test="flowCard.inventoryQuantity != null and flowCard.inventoryQuantity != ''">
|
and fc.inventory_quantity regexp #{flowCard.inventoryQuantity}
|
</if>
|
<if test="flowCard.order != null and flowCard.order.area != null and flowCard.order.area != ''">
|
and o.area regexp REGEXP_REPLACE(#{flowCard.order.area},'\\.0+$','')
|
</if>
|
<if test="flowCard.order != null and flowCard.order.batch != null and flowCard.order.batch != ''">
|
and o.batch regexp #{flowCard.order.batch}
|
</if>
|
<if test="flowCard.processId != null and flowCard.processId != ''">
|
and fc.process_id regexp #{flowCard.processId}
|
</if>
|
<if test="flowCard.receivedQuantity != null and flowCard.receivedQuantity != ''">
|
and fc.received_quantity regexp #{flowCard.receivedQuantity}
|
</if>
|
|
</where>
|
group by fc.order_id,fc.order_number,fc.process_id order by fc.create_time) as zu
|
</select>
|
|
|
<select id="defaultfinishedGoods" resultMap="selectFinishedGoodsInventory">
|
select
|
fgi.id,
|
fgi.process_id,
|
od.order_number,
|
o.order_id,
|
o.project,
|
o.order_type,
|
o.customer_id,
|
o.customer_name,
|
o.batch,
|
o.salesman,
|
od.product_name,
|
od.product_id,
|
od.width,
|
od.height,
|
od.building_number,
|
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,
|
fgi.box_no,
|
fgi.compute_area,
|
fgi.compute_gross_area,
|
round(fgi.area*p.total_thickness*2.5/1000,5) as weight
|
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
|
left join sd.product p on p.id=od.product_id
|
<where>
|
and fgi.status = 0 and fgi.quantity_available>0 and o.create_order>0
|
<if test="finishedGoodsInventory.orderDetail.width != null and finishedGoodsInventory.orderDetail.width != ''">
|
and od.width regexp REGEXP_REPLACE(#{finishedGoodsInventory.orderDetail.width},'\\.0+$','')
|
</if>
|
<if test="finishedGoodsInventory.orderDetail.orderNumber != null and finishedGoodsInventory.orderDetail.orderNumber != ''">
|
and od.order_number like concat('%', #{finishedGoodsInventory.orderDetail.orderNumber}, '%')
|
</if>
|
<if test="finishedGoodsInventory.orderDetail.productName != null and finishedGoodsInventory.orderDetail.productName != ''">
|
and od.product_name like concat('%', #{finishedGoodsInventory.orderDetail.productName}, '%')
|
</if>
|
<if test="finishedGoodsInventory.orderDetail.productId != null and finishedGoodsInventory.orderDetail.productId != ''">
|
and od.product_id like concat('%', #{finishedGoodsInventory.orderDetail.productId}, '%')
|
</if>
|
<if test="finishedGoodsInventory.orderDetail.buildingNumber != null and finishedGoodsInventory.orderDetail.buildingNumber != ''">
|
and od.building_number like concat('%', #{finishedGoodsInventory.orderDetail.buildingNumber}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.orderId != null and finishedGoodsInventory.order.orderId != ''">
|
and o.order_id like concat('%', #{finishedGoodsInventory.order.orderId}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.project != null and finishedGoodsInventory.order.project != ''">
|
and o.project like concat('%', #{finishedGoodsInventory.order.project}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.orderType != null and finishedGoodsInventory.order.orderType != ''">
|
and o.order_type like concat('%', #{finishedGoodsInventory.order.orderType}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.customerId != null and finishedGoodsInventory.order.customerId != ''">
|
and o.customer_id like concat('%', #{finishedGoodsInventory.order.customerId}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.customerName != null and finishedGoodsInventory.order.customerName != ''">
|
and o.customer_name like concat('%', #{finishedGoodsInventory.order.customerName}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.batch != null and finishedGoodsInventory.order.batch != ''">
|
and o.batch like concat('%', #{finishedGoodsInventory.order.batch}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.salesman != null and finishedGoodsInventory.order.salesman != ''">
|
and o.salesman like concat('%', #{finishedGoodsInventory.order.salesman}, '%')
|
</if>
|
<if test="finishedGoodsInventory.orderDetail.height != null and 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 like concat('%', #{finishedGoodsInventory.inventory}, '%')
|
</if>
|
<if test="finishedGoodsInventory.quantityAvailable != null and finishedGoodsInventory.quantityAvailable != ''">
|
and fgi.quantity_available like concat('%', #{finishedGoodsInventory.quantityAvailable}, '%')
|
</if>
|
<if test="finishedGoodsInventory.actualSignalArea != null and finishedGoodsInventory.actualSignalArea != ''">
|
and fgi.actual_signal_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.actualSignalArea},'\\.0+$','')
|
</if>
|
<if test="finishedGoodsInventory.computeArea != null and finishedGoodsInventory.computeArea != ''">
|
and fgi.compute_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.computeArea},'\\.0+$','')
|
</if>
|
<if test="finishedGoodsInventory.computeGrossArea != null and finishedGoodsInventory.computeGrossArea != ''">
|
and fgi.compute_gross_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.computeGrossArea},'\\.0+$','')
|
</if>
|
<if test="finishedGoodsInventory.area != null and finishedGoodsInventory.area != ''">
|
and fgi.area regexp REGEXP_REPLACE(#{finishedGoodsInventory.area},'\\.0+$','')
|
</if>
|
<if test="finishedGoodsInventory.warehouseNumber != null and finishedGoodsInventory.warehouseNumber != ''">
|
and fgi.warehouse_number like concat('%', #{finishedGoodsInventory.warehouseNumber}, '%')
|
</if>
|
<if test="finishedGoodsInventory.storageRegion != null and finishedGoodsInventory.storageRegion != ''">
|
and fgi.storage_region like concat('%', #{finishedGoodsInventory.storageRegion}, '%')
|
</if>
|
<if test="finishedGoodsInventory.status != null and finishedGoodsInventory.status != ''">
|
and fgi.`status` like concat('%', #{finishedGoodsInventory.status}, '%')
|
</if>
|
<if test="finishedGoodsInventory.enterStorageTime != null and finishedGoodsInventory.enterStorageTime != ''">
|
and fgi.enter_storage_time like concat('%', #{finishedGoodsInventory.enterStorageTime}, '%')
|
</if>
|
<if test="finishedGoodsInventory.updateTime != null and finishedGoodsInventory.updateTime != ''">
|
and fgi.update_time like concat('%', #{finishedGoodsInventory.updateTime}, '%')
|
</if>
|
<if test="finishedGoodsInventory.endTime != null and finishedGoodsInventory.endTime != ''">
|
and fgi.end_time like concat('%', #{finishedGoodsInventory.endTime}, '%')
|
</if>
|
<if test="finishedGoodsInventory.remark != null and finishedGoodsInventory.remark != ''">
|
and fgi.remark like concat('%', #{finishedGoodsInventory.remark}, '%')
|
</if>
|
<if test="finishedGoodsInventory.boxNo != null and finishedGoodsInventory.boxNo != ''">
|
and fgi.box_no like concat('%', #{finishedGoodsInventory.boxNo}, '%')
|
</if>
|
|
</where>
|
order by fgi.update_time desc
|
|
<!-- limit #{offset},#{pageSize}-->
|
;
|
</select>
|
|
|
<select id="getPageTotal">
|
select
|
1 as 'pageTotal',
|
<!-- CEILING(count(fgi.id)/#{pageSize}) as 'pageTotal', -->
|
|
count(fgi.id) as 'total'
|
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.status = 0 and fgi.quantity_available>0 and o.create_order>0
|
<if test="finishedGoodsInventory.orderDetail.width != null and finishedGoodsInventory.orderDetail.width != ''">
|
and od.width regexp REGEXP_REPLACE(#{finishedGoodsInventory.orderDetail.width},'\\.0+$','')
|
</if>
|
<if test="finishedGoodsInventory.orderDetail.orderNumber != null and finishedGoodsInventory.orderDetail.orderNumber != ''">
|
and od.order_number like concat('%', #{finishedGoodsInventory.orderDetail.orderNumber}, '%')
|
</if>
|
<if test="finishedGoodsInventory.orderDetail.productName != null and finishedGoodsInventory.orderDetail.productName != ''">
|
and od.product_name like concat('%', #{finishedGoodsInventory.orderDetail.productName}, '%')
|
</if>
|
<if test="finishedGoodsInventory.orderDetail.productId != null and finishedGoodsInventory.orderDetail.productId != ''">
|
and od.product_id like concat('%', #{finishedGoodsInventory.orderDetail.productId}, '%')
|
</if>
|
<if test="finishedGoodsInventory.orderDetail.buildingNumber != null and finishedGoodsInventory.orderDetail.buildingNumber != ''">
|
and od.building_number like concat('%', #{finishedGoodsInventory.orderDetail.buildingNumber}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.orderId != null and finishedGoodsInventory.order.orderId != ''">
|
and o.order_id like concat('%', #{finishedGoodsInventory.order.orderId}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.project != null and finishedGoodsInventory.order.project != ''">
|
and o.project like concat('%', #{finishedGoodsInventory.order.project}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.orderType != null and finishedGoodsInventory.order.orderType != ''">
|
and o.order_type like concat('%', #{finishedGoodsInventory.order.orderType}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.customerId != null and finishedGoodsInventory.order.customerId != ''">
|
and o.customer_id like concat('%', #{finishedGoodsInventory.order.customerId}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.customerName != null and finishedGoodsInventory.order.customerName != ''">
|
and o.customer_name like concat('%', #{finishedGoodsInventory.order.customerName}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.batch != null and finishedGoodsInventory.order.batch != ''">
|
and o.batch like concat('%', #{finishedGoodsInventory.order.batch}, '%')
|
</if>
|
<if test="finishedGoodsInventory.order.salesman != null and finishedGoodsInventory.order.salesman != ''">
|
and o.salesman like concat('%', #{finishedGoodsInventory.order.salesman}, '%')
|
</if>
|
<if test="finishedGoodsInventory.orderDetail.height != null and 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 like concat('%', #{finishedGoodsInventory.inventory}, '%')
|
</if>
|
<if test="finishedGoodsInventory.quantityAvailable != null and finishedGoodsInventory.quantityAvailable != ''">
|
and fgi.quantity_available like concat('%', #{finishedGoodsInventory.quantityAvailable}, '%')
|
</if>
|
<if test="finishedGoodsInventory.actualSignalArea != null and finishedGoodsInventory.actualSignalArea != ''">
|
and fgi.actual_signal_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.actualSignalArea},'\\.0+$','')
|
</if>
|
<if test="finishedGoodsInventory.computeArea != null and finishedGoodsInventory.computeArea != ''">
|
and fgi.compute_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.computeArea},'\\.0+$','')
|
</if>
|
<if test="finishedGoodsInventory.computeGrossArea != null and finishedGoodsInventory.computeGrossArea != ''">
|
and fgi.compute_gross_area regexp REGEXP_REPLACE(#{finishedGoodsInventory.computeGrossArea},'\\.0+$','')
|
</if>
|
<if test="finishedGoodsInventory.area != null and finishedGoodsInventory.area != ''">
|
and fgi.area regexp REGEXP_REPLACE(#{finishedGoodsInventory.area},'\\.0+$','')
|
</if>
|
<if test="finishedGoodsInventory.warehouseNumber != null and finishedGoodsInventory.warehouseNumber != ''">
|
and fgi.warehouse_number like concat('%', #{finishedGoodsInventory.warehouseNumber}, '%')
|
</if>
|
<if test="finishedGoodsInventory.storageRegion != null and finishedGoodsInventory.storageRegion != ''">
|
and fgi.storage_region like concat('%', #{finishedGoodsInventory.storageRegion}, '%')
|
</if>
|
<if test="finishedGoodsInventory.status != null and finishedGoodsInventory.status != ''">
|
and fgi.`status` like concat('%', #{finishedGoodsInventory.status}, '%')
|
</if>
|
<if test="finishedGoodsInventory.enterStorageTime != null and finishedGoodsInventory.enterStorageTime != ''">
|
and fgi.enter_storage_time like concat('%', #{finishedGoodsInventory.enterStorageTime}, '%')
|
</if>
|
<if test="finishedGoodsInventory.updateTime != null and finishedGoodsInventory.updateTime != ''">
|
and fgi.update_time like concat('%', #{finishedGoodsInventory.updateTime}, '%')
|
</if>
|
<if test="finishedGoodsInventory.endTime != null and finishedGoodsInventory.endTime != ''">
|
and fgi.end_time like concat('%', #{finishedGoodsInventory.endTime}, '%')
|
</if>
|
<if test="finishedGoodsInventory.remark != null and finishedGoodsInventory.remark != ''">
|
and fgi.remark like concat('%', #{finishedGoodsInventory.remark}, '%')
|
</if>
|
<if test="finishedGoodsInventory.boxNo != null and finishedGoodsInventory.boxNo != ''">
|
and fgi.box_no like concat('%', #{finishedGoodsInventory.boxNo}, '%')
|
</if>
|
|
</where>
|
|
order by fgi.update_time desc
|
<!-- limit #{offset},#{pageSize} as 'pageTotal', -->
|
;
|
</select>
|
|
<select id="getSelectOrderDetail" >
|
select * from sd.order_detail where order_id=#{orderId}
|
</select>
|
|
<insert id="insertOrderFinishedGoodsInventory" useGeneratedKeys="true" >
|
insert into mm.finished_goods_inventory (order_id,
|
order_number,
|
process_id,
|
inventory,
|
actual_signal_area,
|
area,
|
quantity_available,
|
warehouse_number,
|
storage_region,
|
`status`,
|
enter_storage_time,
|
update_time,
|
end_time,
|
remark,
|
compute_area,
|
compute_gross_area
|
|
)
|
values (
|
#{orderDetail.orderId} ,#{orderDetail.orderNumber},"",#{orderDetail.quantity},#{orderDetail.area},
|
#{orderDetail.grossArea},
|
#{orderDetail.quantity},null,"",
|
0,now(),now(),null,"",#{orderDetail.computeArea},
|
#{orderDetail.computeGrossArea}
|
)
|
</insert>
|
|
<update id="updateOrderInventory">
|
update mm.finished_goods_inventory
|
set inventory=inventory+${orderDetail.quantity},quantity_available=quantity_available+${orderDetail.quantity},
|
update_time=now(),area=actual_signal_area*quantity_available,compute_gross_area=compute_area*quantity_available
|
where order_number=#{orderDetail.orderNumber} and order_id=#{orderDetail.orderId}
|
</update>
|
|
<select id="findFlowCard">
|
select * from pp.flow_card
|
where order_number=#{orderNumber} and process_id=#{processId} and order_id=#{order.orderId} group by process_id
|
</select>
|
|
<select id="findDeliverydetail">
|
select * from sd.delivery_detail
|
where order_number=#{orderNumber}
|
and order_id=#{orderId}
|
and delivery_id=#{deliveryId}
|
and delivery_detail_state=0
|
<if test="boxNo != null ">
|
and box_no=trim(#{boxNo})
|
</if>
|
<if test="boxNo == null ">
|
and box_no is null
|
</if>
|
</select>
|
|
<select id="getSelectDeliveryDetailDeliveryId" resultMap="selectDelivery">
|
select dd.delivery_id,
|
dd.order_number,
|
dd.order_id,
|
o.project,
|
od.product_id,
|
od.product_name,
|
d.customer_name,
|
od.width,
|
od.height,
|
dd.quantity as dd_quantity,
|
od.warehouse_num,
|
od.delivery_num,
|
dd.area,
|
od.building_number,
|
d.creator,
|
dd.delivery_detail_remakes,
|
dd.delivery_detail_state,
|
dd.create_time,
|
dd.box_no
|
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_id= #{deliveryId}
|
|
</select>
|
|
|
<select id="getPrintTitleByBox">
|
select kkk.*,
|
rw.teams_groups_name as teams_groups_name2
|
from(select #{orderId} as order_id,
|
o.customer_name,
|
o.customer_id,
|
o.project,
|
(select batch from sd.`order` pp1 where pp1.order_id =#{orderId} ) as batch,
|
fol.box_no as 'remarks',
|
SUM(fol.quantity_available) as quantity,
|
ROUND( sum(od.width * od.height * fol.quantity_available) / 1000000, 2 ) as area,
|
ROUND( sum(od.width * od.height * fol.quantity_available*p.total_thickness*2.5) / 1000000, 2 ) as weight,
|
fol.process_id,
|
aaa.teams_groups_name,
|
aaa.previous_process,
|
date( aaa.reporting_work_time) as reporting_work_time
|
from (SELECT *
|
FROM mm.finished_goods_inventory aa
|
where aa.box_no=#{boxNo}
|
and aa.quantity_available>0
|
) as fol
|
left join sd.order_detail od on fol.order_id = od.order_id and fol.order_number = od.order_number
|
left join sd.`order` o on o.order_id=fol.order_id
|
left join sd.product p on od.product_id=p.id
|
left join (select teams_groups_name,process_id,previous_process,reporting_work_time from pp.reporting_work where this_process='包装' group by process_id) aaa on aaa.process_id=fol.process_id
|
where o.customer_id=#{customerId}
|
and o.project=#{project}
|
|
group by fol.box_no,o.customer_name,o.project
|
) as kkk
|
left join pp.reporting_work rw on rw.process_id=kkk.process_id and rw.this_process=kkk.previous_process
|
group by kkk.remarks,kkk.customer_id,kkk.project
|
|
</select>
|
|
<select id="getorderProductByBoxNo">
|
SELECT
|
od.product_id,
|
od.product_name,
|
pro.thickness
|
FROM
|
( SELECT * FROM mm.finished_goods_inventory aa
|
WHERE aa.order_id = #{orderId}
|
AND aa.box_no = #{boxNo}
|
AND aa.quantity_available > 0 ) fol
|
|
LEFT JOIN sd.order_detail od ON fol.order_id = od.order_id
|
AND fol.order_number = od.order_number
|
left join sd.product as pro
|
on pro.id = od.product_id
|
LEFT JOIN sd.`order` o ON o.order_id = fol.order_id
|
group by
|
od.product_id
|
|
</select>
|
<select id="getPrintDetail">
|
SELECT
|
ifnull(od.building_number,ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'')) as building_number,
|
od.width,
|
od.height,
|
sum(fol.quantity_available) as quantity,
|
od.product_name,
|
od.product_id,
|
ROUND(sum(fol.compute_area * fol.quantity_available) , 2 ) as area,
|
ROUND(sum(od.width * od.height * fol.quantity_available / 1000000) , 2 )*#{thickness}*2.5 as weight
|
FROM
|
( SELECT * FROM mm.finished_goods_inventory aa
|
WHERE aa.order_id = #{orderId}
|
AND aa.box_no = #{boxNo}
|
AND aa.quantity_available > 0 ) fol
|
|
LEFT JOIN sd.order_detail od
|
ON fol.order_id = od.order_id
|
AND fol.order_number = od.order_number
|
LEFT JOIN sd.`order` o
|
ON o.order_id = fol.order_id
|
WHERE
|
od.product_id=#{productId}
|
group by od.order_id,od.order_number
|
ORDER BY
|
od.order_number
|
</select>
|
|
<delete id="deleteFinishedGoodsInventoryDate" >
|
delete fgi from mm.finished_goods_inventory fgi left join sd.`order` o on o.order_id=fgi.order_id
|
where o.create_time < DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
|
and o.delivery=2 and fgi.inventory=0
|
</delete>
|
|
|
|
<select id="getFinishedGoodsInventoryList" resultMap="selectFinishedGoodsInventory">
|
select
|
fgi.id,
|
fgi.process_id,
|
od.order_number,
|
o.order_id,
|
o.project,
|
o.order_type,
|
o.customer_id,
|
o.customer_name,
|
o.batch,
|
o.salesman,
|
od.product_name,
|
od.product_id,
|
od.width,
|
od.height,
|
od.building_number,
|
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,
|
fgi.box_no,
|
fgi.compute_area,
|
fgi.compute_gross_area,
|
round(fgi.area*p.total_thickness*2.5/1000,5) as weight
|
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
|
left join sd.product p on p.id=od.product_id
|
where fgi.status = 0 and fgi.quantity_available>0 and o.create_order>0
|
order by fgi.update_time desc;
|
</select>
|
</mapper>
|