fixed id generate bug