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}