To solve this optimization problem, we need to define variables and constraints that represent the production capacity of each team, the quality checking capacity, and the profit maximization goal.

Let's denote:
- $L$ as the number of leather chairs produced by Team A.
- $M$ as the number of mesh chairs produced by Team B.

The objective is to maximize profit, given by $150L + 100M$, subject to the following constraints:
1. Production capacity of Team A: $L \leq 20$
2. Production capacity of Team B: $M \leq 30$
3. Quality checking capacity: $L + M \leq 30$

Now, let's translate this problem into Gurobi code in Python:

```python
from gurobipy import *

# Create a model
m = Model("Office_Chair_Production")

# Define variables
L = m.addVar(lb=0, vtype=GRB.INTEGER, name="Leather_Chairs")
M = m.addVar(lb=0, vtype=GRB.INTEGER, name="Mesh_Chairs")

# Set objective function: Maximize profit
m.setObjective(150*L + 100*M, GRB.MAXIMIZE)

# Add constraints
m.addConstr(L <= 20, "Team_A_Capacity")
m.addConstr(M <= 30, "Team_B_Capacity")
m.addConstr(L + M <= 30, "Quality_Checking_Capacity")

# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Leather Chairs: {L.x}")
    print(f"Mesh Chairs: {M.x}")
    print(f"Maximum Profit: {m.objVal}")
else:
    print("No optimal solution found")
```