<?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.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>
|
|
<resultMap id="selectMaterialOutboundLog" type="com.example.erp.entity.mm.MaterialLog" >
|
<id column="id" property="id"/>
|
<result column="operation_order_number" property="operationOrderNumber"/>
|
<result column="operate_type" property="operateType"/>
|
<result column="operation_number" property="operationNumber"/>
|
<result column="inventory_id" property="inventoryId"/>
|
<result column="material_code" property="materialCode"/>
|
<result column="material_name" property="materialName"/>
|
<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="quantity" property="quantity"/>
|
<result column="single_piece_area" property="singlePieceArea"/>
|
<result column="inventory_area" property="inventoryArea"/>
|
<result column="operator" property="operator"/>
|
<result column="remarks" property="remarks"/>
|
<result column="operate_time" property="operateTime"/>
|
<result column="use_count" property="useCount"/>
|
|
<result column="order_id" property="materialOutbound.orderId"/>
|
<result column="project" property="materialOutbound.project"/>
|
<result column="batch" property="materialOutbound.batch"/>
|
</resultMap>
|
|
|
|
<select id="getSelectMaterialInventoryDate">
|
select
|
mi.id,
|
mi.inventory_organization as inventoryOrganization,
|
mi.material_code AS materialCode,
|
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,
|
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 mm.material_inventory mi left join mm.material_store ms on mi.material_code=ms.id
|
<where>
|
and mi.available_quantity>0
|
|
</where>
|
order by mi.id desc
|
</select>
|
|
<select id="getSelectMaterialInventoryDatePageTotal">
|
select
|
CEILING(count(id)/#{pageSize}) as 'pageTotal',
|
count(id) as 'total'
|
from
|
mm.material_inventory mi
|
<where>
|
and mi.available_quantity>0
|
|
</where>
|
</select>
|
|
|
<select id="getSelectMaterialInventoryEngineeringDate">
|
select
|
ou.id as useId,
|
ou.project_no as projectNo,
|
mi.inventory_quantity AS inventoryQuantity,
|
mi.available_quantity AS availableQuantity,
|
ou.not_use_count 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>
|
ou.not_use_count>0 and mi.plan_quantity>0 and op.state>=100 and ou.state=1
|
|
</where>
|
order by ou.id desc
|
</select>
|
|
<select id="getSelectMaterialInventoryEngineeringDatePageTotal">
|
select
|
CEILING(count(ou.id)/#{pageSize}) as 'pageTotal',
|
count(ou.id) as 'total'
|
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 ou.state=1
|
|
</where>
|
</select>
|
|
|
<select id="getSelectMaterialInventory">
|
select
|
mi.id,
|
mi.inventory_organization as inventoryOrganization,
|
mi.material_code AS materialCode,
|
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,
|
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 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 in
|
<foreach item="id" collection="ids" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
|
</where>
|
</select>
|
|
<select id="getSelectMaterialInventoryPageTotal">
|
select
|
CEILING(count(id)/#{pageSize}) as 'pageTotal',
|
count(id) as 'total'
|
from
|
mm.material_inventory mi
|
<where>
|
<if test="materialInventory.id != null and materialInventory.id != ''">
|
and mi.id regexp #{materialInventory.id}
|
</if>
|
|
</where>
|
|
</select>
|
|
<select id="getSelectMaterialInventoryEngineering">
|
select
|
ou.id as useId,
|
ou.project_no as projectNo,
|
mi.inventory_quantity AS inventoryQuantity,
|
ou.not_use_count AS availableQuantity,
|
ou.not_use_count AS planQuantity,
|
ou.not_use_count AS outboundQuantity,
|
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>
|
|
</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>
|
|
</select>
|
|
|
<select id="getSelectMaterialOutboundDate">
|
select
|
*
|
from
|
mm.material_outbound mo
|
<where>
|
date(mo.create_time)>=#{startDate} and date(mo.create_time) <= #{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>
|
<if test="materialOutbound.project != null and materialOutbound.project != ''">
|
and mo.project regexp #{materialOutbound.project}
|
</if>
|
<if test="materialOutbound.batch != null and materialOutbound.batch != ''">
|
and mo.batch regexp #{materialOutbound.batch}
|
</if>
|
</where>
|
order by mo.create_time desc
|
limit #{offset},#{pageSize};
|
</select>
|
|
<select id="getSelectMaterialOutboundDatePageTotal">
|
select
|
CEILING(count(id)/#{pageSize}) as 'pageTotal',
|
count(id) as 'total'
|
from
|
mm.material_outbound mo
|
<where>
|
date(mo.create_time)>=#{startDate} and date(mo.create_time) <= #{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>
|
<if test="materialOutbound.project != null and materialOutbound.project != ''">
|
and mo.project regexp #{materialOutbound.project}
|
</if>
|
<if test="materialOutbound.batch != null and materialOutbound.batch != ''">
|
and mo.batch regexp #{materialOutbound.batch}
|
</if>
|
</where>
|
</select>
|
|
|
<select id="getSelectReturningWarehouseDate">
|
select
|
*
|
from
|
mm.returning_warehouse rw
|
<where>
|
date(rw.create_time)>=#{startDate} and date(rw.create_time) <= #{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) <= #{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>
|
</select>
|
|
<select id="getSelectMaterialOutbound">
|
select
|
*
|
from
|
mm.material_outbound mo
|
<where>
|
<if test="materialOutboundDetail.materialOutboundId != null and materialOutboundDetail.materialOutboundId != ''">
|
and mo.material_outbound_id regexp #{materialOutboundDetail.materialOutboundId}
|
</if>
|
</where>
|
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,
|
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,
|
mi.inventory_quantity as inventoryQuantity,
|
if(mo.reviewed_state!=1,modd.outbound_quantity+mi.available_quantity,mi.available_quantity) as availableQuantity,
|
ms.json
|
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>
|
</select>
|
|
<select id="getSelectMaterialOutboundEngineering" >
|
select
|
ou.id as useId,
|
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>
|
</select>
|
|
<select id="getSelectMaterialOutboundDetailPageTotal">
|
select
|
CEILING(count(id)/#{pageSize}) as 'pageTotal',
|
count(id) as 'total'
|
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="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>
|
</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>
|
</select>
|
|
|
<insert id="insertMaterialStore" useGeneratedKeys="true" >
|
insert into mm.material_store (type,json,create_time
|
)
|
values (
|
#{type},#{json},now()
|
)
|
</insert>
|
|
<update id="updateMaterialStore" >
|
update mm.material_store set json=#{json} where id=#{id}
|
</update>
|
|
<delete id="deleteMaterialOutbound" >
|
delete from mm.material_outbound where material_outbound_id=#{materialOutboundId}
|
</delete>
|
|
<delete id="deleteMaterialOutboundDetail" >
|
delete from mm.material_outbound_detail where material_outbound_id=#{materialOutboundId}
|
</delete>
|
|
<delete id="deleteMaterialLog" >
|
delete from mm.material_log where operation_order_number=#{materialOutboundId}
|
</delete>
|
|
<delete id="deleteMaterialLogById" >
|
delete from mm.material_log where id=#{id}
|
</delete>
|
|
<delete id="deleteReturningWarehouseDetail" >
|
delete from mm.returning_warehouse_detail where returning_id=#{returningId}
|
</delete>
|
|
<delete id="deleteReturningWarehouse" >
|
delete from mm.returning_warehouse where returning_id=#{returningId}
|
</delete>
|
|
<select id="getMaximum" >
|
select
|
ifnull(SUBSTR(max(right(material_outbound_id,8)) from 7),0)
|
from
|
mm.material_outbound as a
|
where
|
date(a.create_time) = curdate()
|
|
</select>
|
|
<select id="getMaximums" >
|
select
|
ifnull(SUBSTR(max(right(returning_id,8)) from 7),0)
|
from
|
mm.returning_warehouse as a
|
where
|
date(a.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 * from mm.material_inventory where material_code=#{materialCode} and date_of_manufacture=#{dateOfManufacture}
|
</select>
|
|
<select id="getMaterialInventoryCountNull" >
|
select * 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>
|
|
<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,project,batch)
|
values (
|
#{number} ,#{materialOutbound.materialRequisitionPersonnel},#{materialOutbound.materialRequisitionTeam},
|
#{materialOutbound.orderId},#{materialOutbound.outboundType},#{materialOutbound.warehouseManager},#{materialOutbound.materialRequisitionDate},
|
0,now(),#{materialOutbound.project},#{materialOutbound.batch}
|
)
|
</insert>
|
|
<insert id="updateMaterialOutbound" >
|
update mm.material_outbound
|
set material_requisition_personnel=#{materialOutbound.materialRequisitionPersonnel},
|
material_requisition_team=#{materialOutbound.materialRequisitionTeam},
|
order_id=#{materialOutbound.orderId},
|
outbound_type=#{materialOutbound.outboundType},
|
warehouse_manager=#{materialOutbound.warehouseManager},
|
material_requisition_date=#{materialOutbound.materialRequisitionDate},
|
project=#{materialOutbound.project},
|
batch=#{materialOutbound.batch}
|
where material_outbound_id = #{number}
|
</insert>
|
|
<insert id="insertMaterialOutboundDetail" useGeneratedKeys="true" >
|
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.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}
|
)
|
</insert>
|
|
<insert id="insertMaterialInventory" 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 (
|
#{materialInventory.inventoryOrganization} ,#{materialCode},
|
#{materialInventory.producer},0,#{materialInventory.inventoryQuantity},#{materialInventory.inventoryQuantity},0,
|
#{totalArea},#{singlePieceArea},#{materialInventory.dateOfManufacture},#{materialInventory.qualityGuaranteePeriod},
|
#{materialInventory.inventoryArea},0,#{materialInventory.remarks},now()
|
)
|
</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 pp.optimize_use
|
set not_use_count=not_use_count-#{quantity}
|
where id=#{useId}
|
</update>
|
|
<update id="updateMaterialInventoryAvailableOptInt">
|
update pp.optimize_use
|
set not_use_count=not_use_count+#{quantity}
|
where id=#{useId}
|
</update>
|
|
<update id="updateMaterialInventoryAvailableOut">
|
update mm.material_inventory
|
set available_quantity=available_quantity-#{quantity}
|
where id=#{inventoryId}
|
</update>
|
|
<update id="updateMaterialInventoryAvailableInt">
|
update mm.material_inventory
|
set available_quantity=available_quantity+#{quantity}
|
where id=#{inventoryId}
|
</update>
|
|
<update id="updateMaterialInventoryInventoryPlanQuantityOut">
|
update mm.material_inventory
|
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="updateMaterialInventoryInventoryPlanQuantityInt">
|
update mm.material_inventory
|
set inventory_quantity=inventory_quantity+#{quantity},plan_quantity=plan_quantity+#{quantity},total_area=inventory_quantity*single_piece_area
|
where id=#{inventoryId}
|
</update>
|
|
<update id="updateMaterialInventoryInventoryOut">
|
update mm.material_inventory
|
set inventory_quantity=inventory_quantity-#{quantity},total_area=inventory_quantity*single_piece_area
|
where id=#{inventoryId}
|
</update>
|
|
<update id="updateMaterialInventoryInventoryInt">
|
update mm.material_inventory
|
set inventory_quantity=inventory_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>
|
|
<update id="updateMaterialInventoryAvailableInventoryOutMes">
|
update mm.material_inventory
|
set available_quantity=available_quantity-#{quantity},inventory_quantity=inventory_quantity-#{quantity},
|
plan_quantity=plan_quantity-#{quantity},total_area=inventory_quantity*single_piece_area
|
where id=#{inventoryId}
|
</update>
|
|
|
<update id="updateMaterialOutboundToExamine">
|
update mm.material_outbound set reviewed_state=#{reviewedState},reviewed=#{reviewed},reviewed_time=now()
|
where material_outbound_id=#{materialOutboundId}
|
</update>
|
|
<update id="updateMaterialOutboundCounterExamination">
|
update mm.material_outbound set reviewed_state=#{reviewedState}
|
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},
|
total_area=single_piece_area*inventory_quantity
|
where material_code=#{materialCode} and date_of_manufacture=#{materialInventory.dateOfManufacture}
|
</update>
|
|
<update id="updateMaterialInventoryNull" >
|
update mm.material_inventory set inventory_quantity=inventory_quantity+#{materialInventory.inventoryQuantity},
|
available_quantity=available_quantity+#{materialInventory.inventoryQuantity},
|
total_area=single_piece_area*inventory_quantity
|
where material_code=#{materialCode} and date_of_manufacture is null
|
</update>
|
|
<update id="updateMaterialInventoryOut" >
|
update mm.material_inventory set inventory_quantity=inventory_quantity-#{quantity},
|
available_quantity=available_quantity-#{quantity},
|
total_area=single_piece_area*inventory_quantity
|
where material_code=#{materialCode} and date_of_manufacture=#{dateOfManufacture}
|
</update>
|
|
<update id="updateMaterialInventoryNullOut" >
|
update mm.material_inventory set inventory_quantity=inventory_quantity-#{quantity},
|
available_quantity=available_quantity-#{quantity},
|
total_area=single_piece_area*inventory_quantity
|
where material_code=#{materialCode} and date_of_manufacture is null
|
</update>
|
|
<update id="updateMaterialInventoryReturning" >
|
update mm.material_inventory set available_quantity=available_quantity+#{returningWarehouseDetail.returnQuantity}
|
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}
|
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>
|
|
|
<select id="getSelectSurplusMaterialsDate" >
|
select *
|
from mm.surplus_materials
|
<where>
|
and date(create_time)>=#{startDate} and date(create_time) <= #{endDate} and quantity>0
|
<if test="surplusMaterials.width != null and surplusMaterials.width != ''">
|
and width regexp #{surplusMaterials.width}
|
</if>
|
<if test="surplusMaterials.height != null and surplusMaterials.height != ''">
|
and height regexp #{surplusMaterials.height}
|
</if>
|
<if test="surplusMaterials.thickness != null and surplusMaterials.thickness != ''">
|
and thickness regexp #{surplusMaterials.thickness}
|
</if>
|
<if test="surplusMaterials.quantity != null and surplusMaterials.quantity != ''">
|
and quantity regexp #{surplusMaterials.quantity}
|
</if>
|
<if test="surplusMaterials.colour != null and surplusMaterials.colour != ''">
|
and colour regexp #{surplusMaterials.colour}
|
</if>
|
<if test="surplusMaterials.remarks != null and surplusMaterials.remarks != ''">
|
and remarks regexp #{surplusMaterials.remarks}
|
</if>
|
</where>
|
limit #{offset},#{pageSize};
|
</select>
|
|
<select id="getSelectSurplusMaterialsDatePageTotal" >
|
select CEILING(count(id)/#{pageSize}) as 'pageTotal',
|
count(id) as 'total'
|
from mm.surplus_materials
|
<where>
|
and date(create_time)>=#{startDate} and date(create_time) <= #{endDate} and quantity>0
|
<if test="surplusMaterials.width != null and surplusMaterials.width != ''">
|
and width regexp #{surplusMaterials.width}
|
</if>
|
<if test="surplusMaterials.height != null and surplusMaterials.height != ''">
|
and height regexp #{surplusMaterials.height}
|
</if>
|
<if test="surplusMaterials.thickness != null and surplusMaterials.thickness != ''">
|
and thickness regexp #{surplusMaterials.thickness}
|
</if>
|
<if test="surplusMaterials.quantity != null and surplusMaterials.quantity != ''">
|
and quantity regexp #{surplusMaterials.quantity}
|
</if>
|
<if test="surplusMaterials.colour != null and surplusMaterials.colour != ''">
|
and colour regexp #{surplusMaterials.colour}
|
</if>
|
<if test="surplusMaterials.remarks != null and surplusMaterials.remarks != ''">
|
and remarks regexp #{surplusMaterials.remarks}
|
</if>
|
</where>
|
</select>
|
|
<select id="selectSurplusMaterialsCount" >
|
select *
|
from mm.surplus_materials
|
where width=#{surplusMaterials.width} and height=#{surplusMaterials.height}
|
and thickness=#{surplusMaterials.thickness} and colour=#{surplusMaterials.colour} limit 0,1
|
</select>
|
|
|
<insert id="insertSurplusMaterials">
|
insert into mm.surplus_materials (width,height,thickness,quantity,colour,create_time)
|
values (#{surplusMaterials.width},#{surplusMaterials.height},#{surplusMaterials.thickness},#{surplusMaterials.quantity},#{surplusMaterials.colour},now())
|
</insert>
|
|
<insert id="insertSurplusMaterialsLog">
|
insert into mm.surplus_materials_log (width,height,thickness,quantity,colour,type,creator,create_time)
|
values (#{surplusMaterials.width},#{surplusMaterials.height},#{surplusMaterials.thickness},
|
#{surplusMaterials.quantity},#{surplusMaterials.colour},#{type},#{creator},now())
|
</insert>
|
|
<update id="updateSurplusMaterialsOutQuantity">
|
update mm.surplus_materials set quantity=quantity-#{surplusMaterials.quantity} where id=#{surplusMaterials.id}
|
</update>
|
|
<update id="updateSurplusMaterialsIntQuantity">
|
update mm.surplus_materials set quantity=quantity+#{surplusMaterials.quantity} where id=#{surplusMaterials.id}
|
</update>
|
|
<select id="getPrintCreateOutbound" >
|
select id,
|
material_outbound_id,
|
material_requisition_personnel,
|
material_requisition_team,
|
order_id,
|
outbound_type,
|
warehouse_manager,
|
date(material_requisition_date) as material_requisition_date,
|
reviewed,
|
date(reviewed_time) as reviewed_time,
|
reviewed_state,
|
date(create_time) as create_time
|
from mm.material_outbound
|
where material_outbound_id = #{materialOutboundId}
|
</select>
|
|
<select id="getPrintCreateOutboundDetail" >
|
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,
|
modd.producer
|
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 modd.material_outbound_id = #{materialOutboundId}
|
</select>
|
|
<select id="getMaterialInventoryById" >
|
select
|
*
|
from mm.material_inventory mi
|
where mi.id = #{id}
|
</select>
|
|
<select id="getMaterialLogReport" resultMap="selectMaterialOutboundLog">
|
select *
|
from mm.material_log ml left join mm.material_outbound mo on mo.material_outbound_id=ml.operation_order_number
|
<where>
|
date(ml.operate_time)>=#{startDate} and date(ml.operate_time) <= #{endDate} and ml.operate_type=#{type}
|
<if test="materialLog.operateType != null and materialLog.operateType != ''">
|
and ml.operate_type regexp #{materialLog.operateType}
|
</if>
|
<if test="materialLog.operationOrderNumber != null and materialLog.operationOrderNumber != ''">
|
and ml.operation_order_number regexp #{materialLog.operationOrderNumber}
|
</if>
|
<if test="materialLog.operationNumber != null and materialLog.operationNumber != ''">
|
and ml.operation_number regexp #{materialLog.operationNumber}
|
</if>
|
<if test="materialLog.quantity != null and materialLog.quantity != ''">
|
and ml.quantity regexp #{materialLog.quantity}
|
</if>
|
<if test="materialLog.width != null and materialLog.width != ''">
|
and ml.width regexp REGEXP_REPLACE(#{materialLog.width},'\\.0+$','')
|
</if>
|
<if test="materialLog.height != null and materialLog.height != ''">
|
and ml.height regexp REGEXP_REPLACE(#{materialLog.height},'\\.0+$','')
|
</if>
|
<if test="materialLog.thickness != null and materialLog.thickness != ''">
|
and ml.thickness regexp REGEXP_REPLACE(#{materialLog.thickness},'\\.0+$','')
|
</if>
|
|
<if test="materialLog.inventoryId != null and materialLog.inventoryId != ''">
|
and ml.inventory_id regexp #{materialLog.inventoryId}
|
</if>
|
<if test="materialLog.materialCode != null and materialLog.materialCode != ''">
|
and ml.material_code regexp #{materialLog.materialCode}
|
</if>
|
<if test="materialLog.materialName != null and materialLog.materialName != ''">
|
and ml.material_name regexp #{materialLog.materialName}
|
</if>
|
<if test="materialLog.producer != null and materialLog.producer != ''">
|
and ml.producer regexp #{materialLog.producer}
|
</if>
|
<if test="materialLog.unit != null and materialLog.unit != ''">
|
and ml.unit regexp #{materialLog.unit}
|
</if>
|
<if test="materialLog.singlePieceArea != null and materialLog.singlePieceArea != ''">
|
and ml.singlePieceArea regexp REGEXP_REPLACE(#{materialLog.singlePieceArea},'\\.0+$','')
|
</if>
|
<if test="materialLog.inventoryArea != null and materialLog.inventoryArea != ''">
|
and ml.inventoryArea regexp #{materialLog.inventoryArea}
|
</if>
|
<if test="materialLog.operator != null and materialLog.operator != ''">
|
and ml.operator regexp #{materialLog.operator}
|
</if>
|
<if test="materialLog.remarks != null and materialLog.remarks != ''">
|
and ml.remarks regexp #{materialLog.remarks}
|
</if>
|
<if test="materialLog.projectNo != null and materialLog.projectNo != ''">
|
and ml.project_no regexp #{materialLog.projectNo}
|
</if>
|
<if test="materialLog.materialOutbound!=null and (materialLog.materialOutbound.orderId != null and materialLog.materialOutbound.orderId != '')">
|
and mo.order_id regexp #{materialLog.materialOutbound.orderId}
|
</if>
|
<if test=" materialLog.materialOutbound!=null and materialLog.materialOutbound.project != null and materialLog.materialOutbound.project != ''">
|
and mo.project regexp #{materialLog.materialOutbound.project}
|
</if>
|
<if test=" materialLog.materialOutbound!=null and materialLog.materialOutbound.batch != null and materialLog.materialOutbound.batch != ''">
|
and mo.batch regexp #{materialLog.materialOutbound.batch}
|
</if>
|
</where>
|
order by ml.id desc
|
limit #{offset},#{pageSize};
|
</select>
|
|
|
<select id="getMaterialLogReportTotal">
|
select CEILING(count(ml.id)/#{pageSize}) as 'pageTotal',
|
count(ml.id) as 'total'
|
from mm.material_log ml left join mm.material_outbound mo on mo.material_outbound_id=ml.operation_order_number
|
<where>
|
date(ml.operate_time)>=#{startDate} and date(ml.operate_time) <= #{endDate} and ml.operate_type=#{type}
|
<if test="materialLog.operateType != null and materialLog.operateType != ''">
|
and ml.operate_type regexp #{materialLog.operateType}
|
</if>
|
<if test="materialLog.operationOrderNumber != null and materialLog.operationOrderNumber != ''">
|
and ml.operation_order_number regexp #{materialLog.operationOrderNumber}
|
</if>
|
<if test="materialLog.operationNumber != null and materialLog.operationNumber != ''">
|
and ml.operation_number regexp #{materialLog.operationNumber}
|
</if>
|
<if test="materialLog.quantity != null and materialLog.quantity != ''">
|
and ml.quantity regexp #{materialLog.quantity}
|
</if>
|
<if test="materialLog.width != null and materialLog.width != ''">
|
and ml.width regexp REGEXP_REPLACE(#{materialLog.width},'\\.0+$','')
|
</if>
|
<if test="materialLog.height != null and materialLog.height != ''">
|
and ml.height regexp REGEXP_REPLACE(#{materialLog.height},'\\.0+$','')
|
</if>
|
<if test="materialLog.thickness != null and materialLog.thickness != ''">
|
and ml.thickness regexp REGEXP_REPLACE(#{materialLog.thickness},'\\.0+$','')
|
</if>
|
|
<if test="materialLog.inventoryId != null and materialLog.inventoryId != ''">
|
and ml.inventory_id regexp #{materialLog.inventoryId}
|
</if>
|
<if test="materialLog.materialCode != null and materialLog.materialCode != ''">
|
and ml.material_code regexp #{materialLog.materialCode}
|
</if>
|
<if test="materialLog.materialName != null and materialLog.materialName != ''">
|
and ml.material_name regexp #{materialLog.materialName}
|
</if>
|
<if test="materialLog.producer != null and materialLog.producer != ''">
|
and ml.producer regexp #{materialLog.producer}
|
</if>
|
<if test="materialLog.unit != null and materialLog.unit != ''">
|
and ml.unit regexp #{materialLog.unit}
|
</if>
|
<if test="materialLog.singlePieceArea != null and materialLog.singlePieceArea != ''">
|
and ml.singlePieceArea regexp REGEXP_REPLACE(#{materialLog.singlePieceArea},'\\.0+$','')
|
</if>
|
<if test="materialLog.inventoryArea != null and materialLog.inventoryArea != ''">
|
and ml.inventoryArea regexp #{materialLog.inventoryArea}
|
</if>
|
<if test="materialLog.operator != null and materialLog.operator != ''">
|
and ml.operator regexp #{materialLog.operator}
|
</if>
|
<if test="materialLog.remarks != null and materialLog.remarks != ''">
|
and ml.remarks regexp #{materialLog.remarks}
|
</if>
|
<if test="materialLog.projectNo != null and materialLog.projectNo != ''">
|
and ml.project_no regexp #{materialLog.projectNo}
|
</if>
|
<if test="materialLog.materialOutbound!=null and (materialLog.materialOutbound.orderId != null and materialLog.materialOutbound.orderId != '')">
|
and mo.order_id regexp #{materialLog.materialOutbound.orderId}
|
</if>
|
<if test=" materialLog.materialOutbound!=null and materialLog.materialOutbound.project != null and materialLog.materialOutbound.project != ''">
|
and mo.project regexp #{materialLog.materialOutbound.project}
|
</if>
|
<if test=" materialLog.materialOutbound!=null and materialLog.materialOutbound.batch != null and materialLog.materialOutbound.batch != ''">
|
and mo.batch regexp #{materialLog.materialOutbound.batch}
|
</if>
|
</where>
|
</select>
|
|
|
<select id="exportMaterialLogReport">
|
select * from mm.material_log ml
|
where date(ml.operate_time)>=#{dates[0]} and date(ml.operate_time) <= #{dates[1]} and ml.operate_type=#{type}
|
|
</select>
|
|
<select id="deleteMaterialInventory">
|
delete from
|
mm.material_inventory mi
|
<where>
|
<if test="ids != null and ids != ''">
|
and mi.id in
|
<foreach item="id" collection="ids" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
|
</where>
|
</select>
|
|
<select id="getSelectMaterialOutboundProjectNo">
|
select * from mm.material_outbound mo where order_id=#{projectNo}
|
</select>
|
|
<select id="getSelectOptimizeUses">
|
select * from pp.optimize_use where project_no=#{projectNo} and width=#{width} and height=#{height} and state=1
|
</select>
|
|
<select id="getSelectMaterialOutboundOptimizeUses">
|
select * from mm.material_outbound_detail mo
|
<where>
|
mo.material_outbound_id=#{materialOutboundId}
|
<if test="useId != null">
|
and mo.use_id=#{useId}
|
</if>
|
</where>
|
</select>
|
|
<update id="updateMaterialOutboundOptimizeUses">
|
update mm.material_outbound_detail set outbound_quantity=outbound_quantity+#{quantity} where use_id=#{useId};
|
</update>
|
|
<update id="updateOptimizeUsesMes">
|
update pp.optimize_use set not_use_count=not_use_count-#{quantity} where id=#{useId};
|
</update>
|
|
<insert id="insertMaterialOutboundDetailOptimizeUses" useGeneratedKeys="true" >
|
insert into mm.material_outbound_detail (material_outbound_id,material_outbound_number,material_code,use_id,inventory_id,inventory_organization,
|
outbound_quantity,single_piece_area,inventory_area,date_of_manufacture)
|
values (
|
#{materialOutboundId} ,#{number},#{materialCode},#{useId},#{inventoryId},'原片库',#{outboundQuantity},
|
#{singlePieceArea},#{inventoryArea},#{dateOfManufacture}
|
)
|
</insert>
|
|
<insert id="insertMaterialOutboundOptimizeUses" useGeneratedKeys="true" >
|
insert into mm.material_outbound(material_outbound_id,order_id,outbound_type,
|
warehouse_manager,material_requisition_date,reviewed_state,reviewed,create_time,reviewed_time)
|
values (
|
#{materialOutboundId} ,#{projectNo},'标准出库',#{name},now(),1,#{name},now(),now()
|
)
|
</insert>
|
|
<select id="selectProjectNo">
|
select project_no from pp.optimize_use where id=#{useId};
|
</select>
|
|
<select id="getOptimizeOutboundReport">
|
SELECT
|
ml.operation_order_number,
|
ml.project_no,
|
ml.inventory_id,
|
ml.material_name,
|
ml.unit,
|
ml.width,
|
ml.height,
|
ml.thickness,
|
ml.quantity,
|
round(ml.width*ml.height*ml.quantity/1000000,2) as area,
|
ou.use_count,
|
ou.not_use_count,
|
ml.operator,
|
ml.operate_time
|
|
FROM
|
mm.material_log AS ml
|
LEFT JOIN pp.optimize_use AS ou ON ou.project_no = ml.project_no
|
AND ou.raw_stock_code = ml.inventory_id
|
WHERE
|
ou.project_no IS NOT NULL
|
AND date( ml.operate_time )>= #{startDate} and date(ml.operate_time) <= #{endDate}
|
and ml.operate_type=#{type}
|
|
<if test="materialLog.operationOrderNumber != null and materialLog.operationOrderNumber != ''">
|
and ml.operation_order_number regexp #{materialLog.operationOrderNumber}
|
</if>
|
<if test="materialLog.useCount != null and materialLog.useCount != ''">
|
and ou.use_count regexp #{materialLog.useCount}
|
</if>
|
<if test="materialLog.quantity != null and materialLog.quantity != ''">
|
and ml.quantity regexp #{materialLog.quantity}
|
</if>
|
<if test="materialLog.width != null and materialLog.width != ''">
|
and ml.width regexp REGEXP_REPLACE(#{materialLog.width},'\\.0+$','')
|
</if>
|
<if test="materialLog.height != null and materialLog.height != ''">
|
and ml.height regexp REGEXP_REPLACE(#{materialLog.height},'\\.0+$','')
|
</if>
|
<if test="materialLog.thickness != null and materialLog.thickness != ''">
|
and ml.thickness regexp REGEXP_REPLACE(#{materialLog.thickness},'\\.0+$','')
|
</if>
|
|
<if test="materialLog.inventoryId != null and materialLog.inventoryId != ''">
|
and ml.inventory_id regexp #{materialLog.inventoryId}
|
</if>
|
|
<if test="materialLog.materialName != null and materialLog.materialName != ''">
|
and ml.material_name regexp #{materialLog.materialName}
|
</if>
|
<if test="materialLog.producer != null and materialLog.producer != ''">
|
and ml.producer regexp #{materialLog.producer}
|
</if>
|
<if test="materialLog.unit != null and materialLog.unit != ''">
|
and ml.unit regexp #{materialLog.unit}
|
</if>
|
<if test="materialLog.operator != null and materialLog.operator != ''">
|
and ml.operator regexp #{materialLog.operator}
|
</if>
|
<if test="materialLog.remarks != null and materialLog.remarks != ''">
|
and ml.remarks regexp #{materialLog.remarksr}
|
</if>
|
order by ml.id desc
|
limit #{offset},#{pageSize};
|
</select>
|
|
<select id="getOptimizeOutboundReportTotal">
|
SELECT
|
CEILING(count(ml.id)/#{pageSize}) as 'pageTotal',
|
count(ml.id) as 'total'
|
|
FROM
|
mm.material_log AS ml
|
LEFT JOIN pp.optimize_use AS ou ON ou.project_no = ml.project_no
|
AND ou.raw_stock_code = ml.inventory_id
|
WHERE
|
ou.project_no IS NOT NULL
|
AND date( ml.operate_time )>= #{startDate} and date(ml.operate_time) <= #{endDate}
|
and ml.operate_type=#{type}
|
</select>
|
|
|
<select id="getSelectMaterialInventoryMes">
|
select
|
mi.id,
|
mi.material_code AS materialCode,
|
mi.producer,
|
sum(mi.available_quantity) AS availableQuantity,
|
JSON_UNQUOTE(JSON_EXTRACT(ms.json, '$.width')) AS width,
|
JSON_UNQUOTE(JSON_EXTRACT(ms.json, '$.height')) AS height,
|
JSON_UNQUOTE(JSON_EXTRACT(ms.json, '$.thickness')) AS thickness,
|
JSON_UNQUOTE(JSON_EXTRACT(ms.json, '$.name')) AS name,
|
JSON_UNQUOTE(JSON_EXTRACT(ms.json, '$.model')) AS model,
|
JSON_UNQUOTE(JSON_EXTRACT(ms.json, '$.unit')) AS unit
|
from mm.material_inventory mi left join mm.material_store ms on mi.material_code=ms.id
|
where mi.available_quantity>0
|
group by mi.material_code
|
order by mi.id desc
|
</select>
|
</mapper>
|