From 4e245d59a1ccde808d4724946d242555b09bfea5 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期日, 28 四月 2024 11:52:15 +0800
Subject: [PATCH] 提交

---
 north-glass-erp/target/classes/mapper/mm/MaterialInventory.xml |  472 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 458 insertions(+), 14 deletions(-)

diff --git a/north-glass-erp/target/classes/mapper/mm/MaterialInventory.xml b/north-glass-erp/target/classes/mapper/mm/MaterialInventory.xml
index 49a2cf3..ba35622 100644
--- a/north-glass-erp/target/classes/mapper/mm/MaterialInventory.xml
+++ b/north-glass-erp/target/classes/mapper/mm/MaterialInventory.xml
@@ -3,18 +3,20 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.example.erp.mapper.mm.MaterialInventoryMapper">
-    <resultMap id="SelectMaterialOutbound" type="com.example.erp.entity.mm.MaterialOutboundDetail">
 
-        <result column="mid" property="id"/>
+    <resultMap id="selectMaterialOutboundDetail" type="com.example.erp.entity.mm.MaterialOutboundDetail" >
+        <id column="id" property="id"/>
         <result column="material_outbound_id" property="materialOutboundId"/>
         <result column="material_outbound_number" property="materialOutboundNumber"/>
+        <result column="inventory_id" property="inventoryId"/>
         <result column="inventory_organization" property="inventoryOrganization"/>
         <result column="material_code" property="materialCode"/>
         <result column="material_name" property="materialName"/>
+        <result column="use_id" property="useId"/>
         <result column="producer" property="producer"/>
+        <result column="unit" property="unit"/>
         <result column="width" property="width"/>
         <result column="height" property="height"/>
-        <result column="unit" property="unit"/>
         <result column="thickness" property="thickness"/>
         <result column="outbound_quantity" property="outboundQuantity"/>
         <result column="single_piece_area" property="singlePieceArea"/>
@@ -22,13 +24,17 @@
         <result column="date_of_manufacture" property="dateOfManufacture"/>
         <result column="remarks" property="remarks"/>
 
-        <result column="inventory_quantity" property="materialInventory.inventoryQuantity"/>
-        <result column="available_quantity" property="materialInventory.availableQuantity"/>
-
-        <result column="reviewed_state" property="materialOutbound.reviewedState"/>
-
+        <result column="material_requisition_personnel" property="materialOutbound.materialRequisitionPersonnel"/>
+        <result column="material_requisition_team" property="materialOutbound.materialRequisitionTeam"/>
+        <result column="order_id" property="materialOutbound.orderId"/>
+        <result column="outbound_type" property="materialOutbound.outboundType"/>
+        <result column="warehouse_manager" property="materialOutbound.warehouseManager"/>
+        <result column="material_requisition_date" property="materialOutbound.materialRequisitionDate"/>
+        <result column="reviewed" property="materialOutbound.reviewed"/>
+        <result column="reviewed_time" property="materialOutbound.reviewedTime"/>
 
     </resultMap>
+
 
 
     <select id="getSelectMaterialInventoryDate">
@@ -39,6 +45,7 @@
         mi.producer,
         mi.inventory_quantity AS inventoryQuantity,
         mi.available_quantity AS availableQuantity,
+        mi.plan_quantity AS planQuantity,
         mi.safety_stock AS safetyStock,
         mi.total_area AS totalArea,
         mi.single_piece_area singlePieceArea,
@@ -71,6 +78,50 @@
     </select>
 
 
+    <select id="getSelectMaterialInventoryEngineeringDate">
+        select
+        ou.id as useId,
+        ou.project_no as projectNo,
+        ou.use_count AS inventoryQuantity,
+        mi.plan_quantity AS availableQuantity,
+        mi.plan_quantity AS planQuantity,
+        mi.id,
+        mi.inventory_organization as inventoryOrganization,
+        mi.material_code AS materialCode,
+        mi.producer,
+        mi.safety_stock AS safetyStock,
+        mi.total_area AS totalArea,
+        mi.single_piece_area singlePieceArea,
+        date(mi.date_of_manufacture) AS dateOfManufacture,
+        mi.quality_guarantee_period qualityGuaranteePeriod,
+        mi.inventory_area AS inventoryArea,
+        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
+        <where>
+            ou.not_use_count>0 and ou.state=1 and
+            date(ou.create_time)>=#{startDate} and date(ou.create_time) &lt;= #{endDate}
+
+        </where>
+        limit #{offset},#{pageSize};
+    </select>
+
+    <select id="getSelectMaterialInventoryEngineeringDatePageTotal">
+        select
+        CEILING(count(id)/#{pageSize}) as 'pageTotal',
+        count(id) as 'total'
+        from
+        pp.optimize_use ou
+        <where>
+            ou.not_use_count>0 and ou.state=1 and
+            date(ou.create_time)>=#{startDate} and date(ou.create_time) &lt;= #{endDate}
+
+        </where>
+        limit #{offset},#{pageSize};
+    </select>
+
+
     <select id="getSelectMaterialInventory">
         select
         mi.id,
@@ -79,6 +130,7 @@
         mi.producer,
         mi.inventory_quantity AS inventoryQuantity,
         mi.available_quantity AS availableQuantity,
+        mi.plan_quantity AS planQuantity,
         mi.safety_stock AS safetyStock,
         mi.total_area AS totalArea,
         mi.single_piece_area singlePieceArea,
@@ -115,6 +167,54 @@
         limit #{offset},#{pageSize};
     </select>
 
+    <select id="getSelectMaterialInventoryEngineering">
+        select
+        ou.id as useId,
+        ou.project_no as projectNo,
+        ou.use_count AS inventoryQuantity,
+        mi.plan_quantity AS availableQuantity,
+        mi.plan_quantity AS planQuantity,
+        mi.id,
+        mi.inventory_organization as inventoryOrganization,
+        mi.material_code AS materialCode,
+        mi.producer,
+        mi.safety_stock AS safetyStock,
+        mi.total_area AS totalArea,
+        mi.single_piece_area singlePieceArea,
+        date(mi.date_of_manufacture) AS dateOfManufacture,
+        mi.quality_guarantee_period qualityGuaranteePeriod,
+        mi.inventory_area AS inventoryArea,
+        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
+
+        <where>
+            <if test="optimizeUse.rawStockCode != null and optimizeUse.rawStockCode != ''">
+                and ou.id regexp #{optimizeUse.rawStockCode}
+            </if>
+
+        </where>
+
+        limit #{offset},#{pageSize};
+    </select>
+
+    <select id="getSelectMaterialInventoryEngineeringPageTotal">
+        select
+        CEILING(count(id)/#{pageSize}) as 'pageTotal',
+        count(id) as 'total'
+        from
+        pp.optimize_use ou
+        <where>
+            <if test="optimizeUse.rawStockCode != null and optimizeUse.rawStockCode != ''">
+                and ou.id regexp #{optimizeUse.rawStockCode}
+            </if>
+
+        </where>
+
+        limit #{offset},#{pageSize};
+    </select>
+
 
     <select id="getSelectMaterialOutboundDate">
         select
@@ -123,6 +223,27 @@
         mm.material_outbound mo
         <where>
             date(mo.create_time)>=#{startDate} and date(mo.create_time) &lt;= #{endDate}
+            <if test="materialOutbound.materialOutboundId != null and materialOutbound.materialOutboundId != ''">
+                and mo.material_outbound_id regexp #{materialOutbound.materialOutboundId}
+            </if>
+            <if test="materialOutbound.materialRequisitionPersonnel != null and materialOutbound.materialRequisitionPersonnel != ''">
+                and mo.material_requisition_personnel regexp #{materialOutbound.materialRequisitionPersonnel}
+            </if>
+            <if test="materialOutbound.materialRequisitionTeam != null and materialOutbound.materialRequisitionTeam != ''">
+                and mo.material_requisition_team regexp #{materialOutbound.materialRequisitionTeam}
+            </if>
+            <if test="materialOutbound.orderId != null and materialOutbound.orderId != ''">
+                and mo.order_id regexp #{materialOutbound.orderId}
+            </if>
+            <if test="materialOutbound.outboundType != null and materialOutbound.outboundType != ''">
+                and mo.outbound_type regexp #{materialOutbound.outboundType}
+            </if>
+            <if test="materialOutbound.warehouseManager != null and materialOutbound.warehouseManager != ''">
+                and mo.warehouse_manager regexp #{materialOutbound.warehouseManager}
+            </if>
+            <if test="materialOutbound.reviewed != null and materialOutbound.reviewed != ''">
+                and mo.reviewed regexp #{materialOutbound.reviewed}
+            </if>
         </where>
         order by mo.reviewed_state desc,mo.create_time desc
         limit #{offset},#{pageSize};
@@ -136,6 +257,109 @@
         mm.material_outbound mo
         <where>
             date(mo.create_time)>=#{startDate} and date(mo.create_time) &lt;= #{endDate}
+            <if test="materialOutbound.materialOutboundId != null and materialOutbound.materialOutboundId != ''">
+                and mo.material_outbound_id regexp #{materialOutbound.materialOutboundId}
+            </if>
+            <if test="materialOutbound.materialRequisitionPersonnel != null and materialOutbound.materialRequisitionPersonnel != ''">
+                and mo.material_requisition_personnel regexp #{materialOutbound.materialRequisitionPersonnel}
+            </if>
+            <if test="materialOutbound.materialRequisitionTeam != null and materialOutbound.materialRequisitionTeam != ''">
+                and mo.material_requisition_team regexp #{materialOutbound.materialRequisitionTeam}
+            </if>
+            <if test="materialOutbound.orderId != null and materialOutbound.orderId != ''">
+                and mo.order_id regexp #{materialOutbound.orderId}
+            </if>
+            <if test="materialOutbound.outboundType != null and materialOutbound.outboundType != ''">
+                and mo.outbound_type regexp #{materialOutbound.outboundType}
+            </if>
+            <if test="materialOutbound.warehouseManager != null and materialOutbound.warehouseManager != ''">
+                and mo.warehouse_manager regexp #{materialOutbound.warehouseManager}
+            </if>
+            <if test="materialOutbound.reviewed != null and materialOutbound.reviewed != ''">
+                and mo.reviewed regexp #{materialOutbound.reviewed}
+            </if>
+        </where>
+        limit #{offset},#{pageSize};
+    </select>
+
+
+    <select id="getSelectReturningWarehouseDate">
+        select
+        *
+        from
+        mm.returning_warehouse rw
+        <where>
+            date(rw.create_time)>=#{startDate} and date(rw.create_time) &lt;= #{endDate}
+            <if test="returningWarehouse.returningId != null and returningWarehouse.returningId != ''">
+                and rw.returning_id regexp #{returningWarehouse.returningId}
+            </if>
+            <if test="returningWarehouse.materialRequisitionPersonnel != null and returningWarehouse.materialRequisitionPersonnel != ''">
+                and rw.material_requisition_personnel regexp #{returningWarehouse.materialRequisitionPersonnel}
+            </if>
+            <if test="returningWarehouse.materialRequisitionTeam != null and returningWarehouse.materialRequisitionTeam != ''">
+                and rw.material_requisition_team regexp #{returningWarehouse.materialRequisitionTeam}
+            </if>
+            <if test="returningWarehouse.orderId != null and returningWarehouse.orderId != ''">
+                and rw.order_id regexp #{returningWarehouse.orderId}
+            </if>
+            <if test="returningWarehouse.returningType != null and returningWarehouse.returningType != ''">
+                and rw.returning_type regexp #{returningWarehouse.returningType}
+            </if>
+            <if test="returningWarehouse.warehouseManager != null and returningWarehouse.warehouseManager != ''">
+                and rw.warehouse_manager regexp #{returningWarehouse.warehouseManager}
+            </if>
+            <if test="returningWarehouse.reviewed != null and returningWarehouse.reviewed != ''">
+                and rw.reviewed regexp #{returningWarehouse.reviewed}
+            </if>
+            <if test="returningWarehouse.project != null and returningWarehouse.project != ''">
+                and rw.project regexp #{returningWarehouse.project}
+            </if>
+            <if test="returningWarehouse.batch != null and returningWarehouse.batch != ''">
+                and rw.batch regexp #{returningWarehouse.batch}
+            </if>
+
+
+
+        </where>
+        order by rw.reviewed_state desc,rw.create_time desc
+        limit #{offset},#{pageSize};
+    </select>
+
+    <select id="getSelectReturningWarehouseDatePageTotal">
+        select
+        CEILING(count(id)/#{pageSize}) as 'pageTotal',
+        count(id) as 'total'
+        from
+        mm.returning_warehouse rw
+        <where>
+            date(rw.create_time)>=#{startDate} and date(rw.create_time) &lt;= #{endDate}
+            <if test="returningWarehouse.returningId != null and returningWarehouse.returningId != ''">
+                and rw.returning_id regexp #{returningWarehouse.returningId}
+            </if>
+            <if test="returningWarehouse.materialRequisitionPersonnel != null and returningWarehouse.materialRequisitionPersonnel != ''">
+                and rw.material_requisition_personnel regexp #{returningWarehouse.materialRequisitionPersonnel}
+            </if>
+            <if test="returningWarehouse.materialRequisitionTeam != null and returningWarehouse.materialRequisitionTeam != ''">
+                and rw.material_requisition_team regexp #{returningWarehouse.materialRequisitionTeam}
+            </if>
+            <if test="returningWarehouse.orderId != null and returningWarehouse.orderId != ''">
+                and rw.order_id regexp #{returningWarehouse.orderId}
+            </if>
+            <if test="returningWarehouse.returningType != null and returningWarehouse.returningType != ''">
+                and rw.returning_type regexp #{returningWarehouse.returningType}
+            </if>
+            <if test="returningWarehouse.warehouseManager != null and returningWarehouse.warehouseManager != ''">
+                and rw.warehouse_manager regexp #{returningWarehouse.warehouseManager}
+            </if>
+            <if test="returningWarehouse.reviewed != null and returningWarehouse.reviewed != ''">
+                and rw.reviewed regexp #{returningWarehouse.reviewed}
+            </if>
+            <if test="returningWarehouse.project != null and returningWarehouse.project != ''">
+                and rw.project regexp #{returningWarehouse.project}
+            </if>
+            <if test="returningWarehouse.batch != null and returningWarehouse.batch != ''">
+                and rw.batch regexp #{returningWarehouse.batch}
+            </if>
         </where>
         limit #{offset},#{pageSize};
     </select>
@@ -153,8 +377,20 @@
         limit #{offset},#{pageSize};
     </select>
 
+    <select id="SelectMaterialOutboundDetail" >
+        select
+        *
+        from mm.material_outbound_detail modd
+        <where>
+            <if test="materialOutboundDetail.materialOutboundId != null and materialOutboundDetail.materialOutboundId != ''">
+                and modd.material_outbound_id regexp #{materialOutboundDetail.materialOutboundId}
+            </if>
+        </where>
+    </select>
+
     <select id="getSelectMaterialOutboundDetail" >
         select
+        modd.use_id as useId,
         modd.inventory_id as id,
         modd.inventory_organization as inventoryOrganization,
         modd.material_code as materialCode,
@@ -183,6 +419,37 @@
         limit #{offset},#{pageSize};
     </select>
 
+    <select id="getSelectMaterialOutboundEngineering" >
+        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
+        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>
+            <if test="materialOutboundDetail.materialOutboundId != null and materialOutboundDetail.materialOutboundId != ''">
+                and modd.material_outbound_id regexp #{materialOutboundDetail.materialOutboundId}
+            </if>
+        </where>
+        limit #{offset},#{pageSize};
+    </select>
+
     <select id="getSelectMaterialOutboundDetailPageTotal">
         select
         CEILING(count(id)/#{pageSize}) as 'pageTotal',
@@ -192,6 +459,58 @@
         <where>
             <if test="materialOutboundDetail.materialOutboundId != null and materialOutboundDetail.materialOutboundId != ''">
                 and modd.material_outbound_id regexp #{materialOutboundDetail.materialOutboundId}
+            </if>
+        </where>
+        limit #{offset},#{pageSize};
+    </select>
+
+
+    <select id="getSelectReturningWarehouse">
+        select
+        *
+        from
+        mm.returning_warehouse rw
+        <where>
+            <if test="returningWarehouseDetail.returningId != null and returningWarehouseDetail.returningId != ''">
+                and returning_id regexp #{returningWarehouseDetail.returningId}
+            </if>
+        </where>
+        limit #{offset},#{pageSize};
+    </select>
+
+    <select id="getSelectReturningWarehouseDetail" >
+        select
+        rwd.inventory_id as inventoryId,
+        mi.inventory_organization as inventoryOrganization,
+        rwd.material_code as id,
+        mi.producer,
+        rwd.return_quantity as returnQuantity,
+        date(mi.date_of_manufacture) as dateOfManufacture,
+        mi.single_piece_area as singlePieceArea,
+        mi.inventory_area as inventoryArea,
+        rwd.remarks,
+        mi.inventory_quantity as inventoryQuantity,
+        ms.json
+        from mm.returning_warehouse_detail rwd left join mm.material_inventory mi on rwd.inventory_id=mi.id
+        left join mm.returning_warehouse rw on rwd.returning_id=rw.returning_id
+        left join mm.material_store ms on rwd.material_code=ms.id
+        <where>
+            <if test="returningWarehouseDetail.returningId != null and returningWarehouseDetail.returningId != ''">
+                and rwd.returning_id regexp #{returningWarehouseDetail.returningId}
+            </if>
+        </where>
+        limit #{offset},#{pageSize};
+    </select>
+
+    <select id="getSelectReturningWarehouseDetailPageTotal">
+        select
+        CEILING(count(id)/#{pageSize}) as 'pageTotal',
+        count(id) as 'total'
+        from
+        mm.returning_warehouse_detail rwd
+        <where>
+            <if test="returningWarehouseDetail.returningId != null and returningWarehouseDetail.returningId != ''">
+                and rwd.returning_id regexp #{returningWarehouseDetail.returningId}
             </if>
         </where>
         limit #{offset},#{pageSize};
@@ -218,27 +537,59 @@
         delete from mm.material_outbound_detail where material_outbound_id=#{materialOutboundId}
     </delete>
 
-    <select id="getmaximum" >
+    <delete id="deleteReturningWarehouseDetail" >
+        delete from mm.returning_warehouse_detail where returning_id=#{returningId}
+    </delete>
+
+    <select id="getMaximum" >
         select count(*) from mm.material_outbound where  date(create_time)=CURDATE()
+    </select>
+
+    <select id="getMaximums" >
+        select count(*) from mm.returning_warehouse where  date(create_time)=CURDATE()
     </select>
 
     <select id="getMaterialOutboundCount" >
         select count(*) from mm.material_outbound where  material_outbound_id=#{materialOutboundId}
     </select>
 
+    <select id="getReturningWarehouseCount" >
+        select count(*) from mm.returning_warehouse where  returning_id=#{returningId}
+    </select>
+
     <select id="getMaterialOutboundDetailMaximum" >
         select count(*) from mm.material_outbound_detail where  material_outbound_id=#{materialOutboundId}
+    </select>
+
+    <select id="getReturningWarehouseDetailMaximum" >
+        select count(*) from mm.returning_warehouse where  returning_id=#{returningId}
     </select>
 
     <select id="getMaterialInventoryCount" >
         select count(*) from mm.material_inventory where  material_code=#{materialCode} and date_of_manufacture=#{dateOfManufacture}
     </select>
 
+    <select id="getMaterialInventoryCountNull" >
+        select count(*) from mm.material_inventory where  material_code=#{materialCode} and date_of_manufacture is null
+    </select>
+
+    <select id="getMaterialInventoryCountId" >
+        select id from mm.material_inventory where  material_code=#{materialCode} and date_of_manufacture=#{dateOfManufacture}
+    </select>
+
+    <select id="getMaterialInventoryCountNullId" >
+        select id from mm.material_inventory where  material_code=#{materialCode} and date_of_manufacture is null
+    </select>
+
     <select id="getIsNotMaterialOutboundDetail" >
         select * from mm.material_outbound_detail where  material_outbound_id=#{materialOutboundId}
     </select>
 
-    <insert id="insertMaterialInventoryMapper"  useGeneratedKeys="true" >
+    <select id="getIsNotReturningWarehouseDetail" >
+        select * from mm.returning_warehouse_detail where  returning_id=#{returningId}
+    </select>
+
+    <insert id="insertMaterialOutbound"  useGeneratedKeys="true" >
         insert into mm.material_outbound(material_outbound_id,material_requisition_personnel,material_requisition_team,order_id,outbound_type,
                                          warehouse_manager,material_requisition_date,reviewed_state,create_time)
         values (
@@ -249,10 +600,10 @@
     </insert>
 
     <insert id="insertMaterialOutboundDetail"  useGeneratedKeys="true" >
-        insert into mm.material_outbound_detail (material_outbound_id,material_outbound_number,material_code,material_name,inventory_id,inventory_organization,producer,unit,width,
+        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)
         values (
-                   #{number} ,#{materialOutboundNumber},#{materialOutboundDetail.materialCode},#{materialOutboundDetail.materialName},#{materialOutboundDetail.id},
+                   #{number} ,#{materialOutboundNumber},#{materialOutboundDetail.materialCode},#{materialOutboundDetail.materialName},#{materialOutboundDetail.useId},#{materialOutboundDetail.id},
                    #{materialOutboundDetail.inventoryOrganization},#{materialOutboundDetail.producer},#{materialOutboundDetail.unit},
                    #{materialOutboundDetail.width},#{materialOutboundDetail.height},#{materialOutboundDetail.thickness},#{materialOutboundDetail.outboundQuantity},
                 #{materialOutboundDetail.singlePieceArea},#{materialOutboundDetail.inventoryArea},#{materialOutboundDetail.dateOfManufacture},#{materialOutboundDetail.remarks}
@@ -271,6 +622,48 @@
                )
     </insert>
 
+    <insert id="insertMaterialInventoryReturning"  useGeneratedKeys="true" >
+        insert into mm.material_inventory (inventory_organization, material_code, producer, stock_id,
+                                           inventory_quantity, available_quantity, safety_stock, total_area, single_piece_area,
+                                           date_of_manufacture, quality_guarantee_period, inventory_area, dead_stock, remarks, create_time)
+        values (
+                   #{returningWarehouseDetail.inventoryOrganization} ,#{materialCode},
+                   #{returningWarehouseDetail.producer},0,#{returningWarehouseDetail.returnQuantity},0,0,
+                   #{totalArea},#{singlePieceArea},#{returningWarehouseDetail.dateOfManufacture},#{returningWarehouseDetail.qualityGuaranteePeriod},
+                   #{returningWarehouseDetail.inventoryArea},0,#{returningWarehouseDetail.remarks},now()
+               )
+    </insert>
+
+
+    <insert id="insertReturningWarehouse"  useGeneratedKeys="true" >
+        insert into mm.returning_warehouse(returning_id, returning_type, material_requisition_personnel, material_requisition_team,
+                                           warehouse_manager, reviewed_state, order_id, batch, project, create_time)
+        values (
+                   #{number} ,#{returningWarehouse.returningType},#{returningWarehouse.materialRequisitionPersonnel},#{returningWarehouse.materialRequisitionTeam},
+                   #{returningWarehouse.warehouseManager},0,#{returningWarehouse.orderId},#{returningWarehouse.batch},#{returningWarehouse.project},now()
+               )
+    </insert>
+
+    <insert id="insertReturningWarehouseDetail"  useGeneratedKeys="true" >
+        insert into mm.returning_warehouse_detail (returning_id, returning_number, inventory_id, material_code, return_quantity,date_of_manufacture, remarks)
+        values (
+                   #{number} ,#{returningWarehouseNumber},#{returningWarehouseDetail.inventoryId},#{returningWarehouseDetail.id},
+                #{returningWarehouseDetail.returnQuantity},#{returningWarehouseDetail.dateOfManufacture},#{returningWarehouseDetail.remarks}
+               )
+    </insert>
+
+    <update id="updateMaterialInventoryAvailableOptOut">
+        update mm.material_inventory
+        set available_quantity=available_quantity-#{quantity}
+        where id=#{useId}
+    </update>
+
+    <update id="updateMaterialInventoryAvailableOptInt">
+        update mm.material_inventory
+        set available_quantity=available_quantity+#{quantity}
+        where id=#{useId}
+    </update>
+
     <update id="updateMaterialInventoryAvailableOut">
         update mm.material_inventory
         set available_quantity=available_quantity-#{quantity}
@@ -285,13 +678,25 @@
 
     <update id="updateMaterialInventoryInventoryOut">
         update mm.material_inventory
-        set inventory_quantity=inventory_quantity-#{quantity}
+        set inventory_quantity=inventory_quantity-#{quantity},plan_quantity=if(plan_quantity-#{quantity}>=0,plan_quantity-#{quantity},0),total_area=inventory_quantity*single_piece_area
         where id=#{inventoryId}
     </update>
 
     <update id="updateMaterialInventoryInventoryInt">
         update mm.material_inventory
-        set inventory_quantity=inventory_quantity+#{quantity}
+        set inventory_quantity=inventory_quantity+#{quantity},plan_quantity=plan_quantity+#{quantity},total_area=inventory_quantity*single_piece_area
+        where id=#{inventoryId}
+    </update>
+
+    <update id="updateMaterialInventoryAvailableInventoryOut">
+        update mm.material_inventory
+        set available_quantity=available_quantity-#{quantity},inventory_quantity=inventory_quantity-#{quantity},total_area=inventory_quantity*single_piece_area
+        where id=#{inventoryId}
+    </update>
+
+    <update id="updateMaterialInventoryAvailableInventoryInt">
+        update mm.material_inventory
+        set available_quantity=available_quantity+#{quantity},inventory_quantity=inventory_quantity+#{quantity},total_area=inventory_quantity*single_piece_area
         where id=#{inventoryId}
     </update>
 
@@ -306,6 +711,16 @@
         where material_outbound_id=#{materialOutboundId}
     </update>
 
+    <update id="updateReturningWarehouseToExamine">
+        update mm.returning_warehouse set reviewed_state=#{reviewedState},reviewed=#{reviewed},reviewed_time=now()
+        where returning_id=#{returningId}
+    </update>
+
+    <update id="updateReturningWarehouseCounterExamination">
+        update mm.returning_warehouse set reviewed_state=#{reviewedState}
+        where returning_id=#{returningId}
+    </update>
+
     <update id="updateMaterialInventory" >
         update mm.material_inventory set inventory_quantity=inventory_quantity+#{materialInventory.inventoryQuantity},
                                          available_quantity=available_quantity+#{materialInventory.inventoryQuantity},
@@ -313,5 +728,34 @@
                                      where  material_code=#{materialCode} and date_of_manufacture=#{materialInventory.dateOfManufacture}
     </update>
 
+    <update id="updateMaterialInventoryReturning" >
+        update mm.material_inventory set available_quantity=available_quantity+#{returningWarehouseDetail.returnQuantity},
+                                         total_area=total_area+#{totalArea}
+       where  material_code=#{materialCode} and
+                date_of_manufacture=#{returningWarehouseDetail.dateOfManufacture}
+
+
+    </update>
+
+    <update id="updateMaterialInventoryReturningNull" >
+        update mm.material_inventory set available_quantity=available_quantity+#{returningWarehouseDetail.returnQuantity},
+                                         total_area=total_area+#{totalArea}
+        where  material_code=#{materialCode} and
+            date_of_manufacture is null
+
+
+    </update>
+
+    <update id="updateReturningWarehouseDetail" >
+        update mm.returning_warehouse_detail set inventory_id=#{materialInventoryId}
+        where  returning_id=#{number} and returning_number=#{returningWarehouseNumber}
+    </update>
+
+    <update id="updateMaterialInventoryArea" >
+        update mm.material_inventory set single_piece_area=#{singlePieceArea},
+                                         total_area=inventory_quantity*#{singlePieceArea}
+        where  material_code=#{materialCode}
+    </update>
+
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0