你的理解有问题
这里的第二个have是实意动词 表示吃午饭
而完成时中 是必须要have当助动词的
所以这里面第一个have是助动词 第二个have是实意动词
两者构成完成时
所以不是你说的完成时里的have(had)前都加助动词have(had)