From da497e4c08c46cbde5dfcd7ea0cf2e455ee6f592 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 20 五月 2024 10:36:44 +0800
Subject: [PATCH] 添加发货报表
---
north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml | 214 +++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 205 insertions(+), 9 deletions(-)
diff --git a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
index 108874f..dc5c9b6 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -4,6 +4,37 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.erp.mapper.mm.MaterialInventoryMapper">
+ <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="thickness" property="thickness"/>
+ <result column="outbound_quantity" property="outboundQuantity"/>
+ <result column="single_piece_area" property="singlePieceArea"/>
+ <result column="inventory_area" property="inventoryArea"/>
+ <result column="date_of_manufacture" property="dateOfManufacture"/>
+ <result column="remarks" property="remarks"/>
+
+ <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">
@@ -14,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,
@@ -46,6 +78,51 @@
</select>
+ <select id="getSelectMaterialInventoryEngineeringDate">
+ select
+ ou.id as useId,
+ ou.project_no as projectNo,
+ mi.inventory_quantity 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.raw_stock_code=mi.id left join mm.material_store ms on mi.material_code=ms.id
+ left join pp.optimize_project op on op.project_no=ou.project_no
+ <where>
+ mi.plan_quantity>0 and op.state>=100 and
+ date(ou.create_time)>=#{startDate} and date(ou.create_time) <= #{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) <= #{endDate}
+
+ </where>
+ limit #{offset},#{pageSize};
+ </select>
+
+
<select id="getSelectMaterialInventory">
select
mi.id,
@@ -54,6 +131,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,
@@ -67,7 +145,10 @@
from mm.material_inventory mi left join mm.material_store ms on mi.material_code=ms.id
<where>
<if test="materialInventory.stockId != null and materialInventory.stockId != ''">
- and mi.id regexp #{materialInventory.stockId}
+ and mi.id in
+ <foreach item="id" collection="ids" open="(" separator="," close=")">
+ #{id}
+ </foreach>
</if>
</where>
@@ -83,6 +164,60 @@
<where>
<if test="materialInventory.id != null and materialInventory.id != ''">
and mi.id regexp #{materialInventory.id}
+ </if>
+
+ </where>
+
+ limit #{offset},#{pageSize};
+ </select>
+
+ <select id="getSelectMaterialInventoryEngineering">
+ select
+ ou.id as useId,
+ ou.project_no as projectNo,
+ mi.inventory_quantity 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.raw_stock_code=mi.id left join mm.material_store ms on mi.material_code=ms.id
+
+ <where>
+ <if test="optimizeUse.rawStockCode != null and optimizeUse.rawStockCode != ''">
+ and ou.id in
+ <foreach item="id" collection="ids" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </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 in
+ <foreach item="id" collection="ids" open="(" separator="," close=")">
+ #{id}
+ </foreach>
</if>
</where>
@@ -252,8 +387,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,
@@ -274,6 +421,37 @@
from mm.material_outbound_detail modd left join mm.material_inventory mi on modd.inventory_id=mi.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="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}
@@ -432,10 +610,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}
@@ -484,6 +662,18 @@
)
</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}
@@ -498,25 +688,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}
+ 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}
+ set available_quantity=available_quantity+#{quantity},inventory_quantity=inventory_quantity+#{quantity},total_area=inventory_quantity*single_piece_area
where id=#{inventoryId}
</update>
@@ -549,7 +739,7 @@
</update>
<update id="updateMaterialInventoryReturning" >
- update mm.material_inventory set inventory_quantity=inventory_quantity+#{returningWarehouseDetail.returnQuantity},
+ 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}
@@ -558,7 +748,7 @@
</update>
<update id="updateMaterialInventoryReturningNull" >
- update mm.material_inventory set inventory_quantity=inventory_quantity+#{returningWarehouseDetail.returnQuantity},
+ 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
@@ -571,5 +761,11 @@
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