select ii.inventory_id, ii.warehouse_id, ii.material_id, ii.unit_id, min_num, max_num,
material_num, inventory_status, remark, ii.del_flag, ii.create_by, ii.create_time,
ii.update_by, ii.update_time, iwi.warehouse_name, cm.material_name, cmt.material_type_name,
iu.unit_name, cm.bar_code, cm.size, ba.area_name, ba.area_id, cm.material_code
from ims_inventory ii
left join ims_warehouse_info iwi on ii.warehouse_id = iwi.warehouse_id
left join cook_material cm on ii.material_id = cm.material_id
left join cook_material_type cmt on cm.material_type_id = cmt.material_type_id
left join ims_unit iu on ii.unit_id = iu.unit_id
left join basic_area ba on iwi.area_id = ba.area_id
insert into ims_inventory
warehouse_id,
material_id,
unit_id,
min_num,
max_num,
material_num,
inventory_status,
remark,
del_flag,
create_by,
create_time,
#{warehouseId},
#{materialId},
#{unitId},
#{minNum},
#{maxNum},
#{materialNum},
#{inventoryStatus},
#{remark},
#{delFlag},
#{createBy},
#{createTime},
on duplicate key update material_num = material_num + #{materialNum},
update_by = #{updateBy},
update_time = #{updateTime}
update ims_inventory
warehouse_id = #{warehouseId},
material_id = #{materialId},
unit_id = #{unitId},
min_num = #{minNum},
max_num = #{maxNum},
material_num = #{materialNum},
material_num = material_num - #{fetchNum},
inventory_status = #{inventoryStatus},
inventory_status = CASE
WHEN material_num min_num THEN 2
WHEN material_num ]]> max_num THEN 3
ELSE 1
END,
remark = #{remark},
del_flag = #{delFlag},
create_by = #{createBy},
create_time = #{createTime},
update_by = #{updateBy},
update_time = #{updateTime},
where inventory_id = #{inventoryId}
and material_num = ]]> #{fetchNum}
and del_flag = '0'
update ims_inventory set del_flag = '2' where inventory_id = #{inventoryId}
update ims_inventory set del_flag = '2' where inventory_id in
#{inventoryId}