qiCharts2 uses ggplot2 for its plotting, so the base plotting method I demonstrated will not work. You can tell it uses ggplot because on the CRAN page for the package, it says it imports ggplot2. qiCharts2 also processes the data before plotting it. To make a flexible function for adding annotations, one would have to understand the details of that. Below I demonstrate a very manual solution for adding a couple of annotations to the plot. After making the PlotOOC object, I extract the data from it, add a Phase column and offset the y values by 120 and then use geom_text from ggplot2 to add the annotations. Note that I also modified your data so that the dates have leading zeros for the month and day. Those dates will not plot in the correct order without doing that because they are imported as characters, not as dates.
I am sure the plot is not exactly how you want it and that the process I used is confusing. Keep in mind that functions from packages like qiCharts2 are intended to be used "as is" and that modifying the output is likely to require digging into the code to understand the details of the data processing.
library(qicharts2)
#> Warning: package 'qicharts2' was built under R version 3.5.3
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(ggplot2)
df2 <- read.table("c:/users/fjcc/Documents/R/Play/QIChart.txt",
header = TRUE, sep = " ")
df2
#> Parts Date Supplier Built_Units Failed_Units DPPM Phase
#> 1 1 01/01/2018 A 7000 4 571.4286 Phase1
#> 2 2 01/02/2018 A 10000 5 500.0000
#> 3 3 01/03/2018 A 8000 6 750.0000
#> 4 4 01/04/2018 B 12000 7 583.3333
#> 5 5 01/05/2018 C 8880 8 900.9009
#> 6 6 01/06/2018 D 6000 2 333.3333 Phase2
#> 7 7 01/07/2018 E 22000 20 909.0909
#> 8 8 01/08/2018 E 20000 10 500.0000
#> 9 9 01/09/2018 T 33000 12 363.6364
#> 10 10 01/10/2018 T 48000 18 375.0000
PlotOOC<-qic(df2$Failed_Units,
n=df2$Built_Units,
x=df2$Date,
x.angle=60,
data=df2,
# exclude = TRUE,
# facets = tmp6$Week,
show.labels = TRUE,
multiply = 1000000,
chart='up',
point.size = 3,
scales = 'free_x',
# ?cut.POSIXt
x.period=df2$Date,
x.format="%Y-%m-%d",
title=paste('Control chart for',df2$Parts, "and",df2$Supplier),
xlab='Week',
ylab='Defective parts per million'
# print.summary = TRUE
)
PlotDat <- PlotOOC$data
PlotDat <- PlotDat %>% mutate(Phase = df2$Phase, y = y + 120)
PlotOOC + geom_text(data = PlotDat, mapping = aes(label = Phase))

Created on 2019-05-22 by the reprex package (v0.2.1)