Fully submerged fortifications can be passed without any problem by swimmers (and moving water can push things through partially submerged ones).
If I was to draw water from a river (as opposed to my standard method of using an aquifer), I'd make a "high" cistern at two levels below the river and have two raising bridges at each end of the tunnel feeding it, with that tunnel at the level below the river. I'd operate one drawbridge at a time, so I'd let water into the tunnel, raise the outer bridge, then open the inner one, let it drain, raise the inner one, then open the outer one... repeatedly until the cistern is full. I'd build the "real" well cistern lower than the first one, controlling access with a drawbridge and have a de-pressurizing diagonal at the top level of the well cistern.
I'd normally leave that drawbridge open, with the exception being the top cistern filling period. This means the well cistern will automatically top up from the upper cistern, with the de-pressurizer ensuring it won't overflow (and the drawbridge acting as a fail safe for design errors as well as filling time safety control).
The reason I want two cisterns is because it allows me to keep the well full without having constant access through the water (it's possible to arrange wall grates such that they can't be destroyed by building destroyers, as an alternative, but I wouldn't trust it), and it also provides water during winter, if the surface is freezing. In addition to that, the top cistern filling can be done when that cistern is half empty as a series of filling actions, rather than having to keep a constant eye on the water level in the tunnel.
Flood gates are rather useless, unfortunately, as they can be destroyed by building destroyers and be blocked by an errant sock, while drawbridges don't have that problem. As I see it, they are useful only for flavor or if you deliberately want to design weaknesses into your fortress. There might be some niche where action timing makes a case for the floodgate (bridges act 100 ticks after the trigger, but I don't know if floodgates are immediate or have the same delay).