It appears that any permutations of the code containing all the required digits (including the repeated digits) will "open" the lock. In your example, code 121992 is the valid code, but so is 119922, 219219, etc. Is this what you really want to do (after fixing the problems with the J-K flip-flop wiring)?
A true combination lock will "remember" not just the digits entered but also the order of entry before comparing the entries against the valid lock code. The user must press an "ENTER" button after entering their code sequence. Then, and only then, will the lock open if the correct sequence of digits has been entered.
Pressing "ENTER" also clears the memory of the previously entered code sequence, whether that sequence was valid or not. This allows a user to "start over" if they realize they have keyed in the wrong sequence. The only indication of a valid sequence after "ENTER" is pressed is the lock opens.
It is a good idea to provide optical or audible feedback each time a digit button is pressed. This allows the person attempting to gain entry to know that a button press has been "accepted" by the system for subsequent validation.
A more difficult to defeat combination lock will allow not only repeats of the same digit but also simultaneous entry of two or more digits, followed by additional digits until the code entry sequence is completed. Again, optical or audio feedback will be helpful. I would suggest that a single light be illuminated or an audible tone be sounded (for use by the blind) when any switch is pressed, the light to remain illuminated or the audible tone to remain on until all switches are released. The light extinguishing or the absence of the audible tone would be the cue that the next switch (or simultaneous actuation of switches) is ready for entry.
Again, it is important that there be no indication that the correct number of entries has been made, or the correct switches have been pressed. The only indication of code verification occurs when the "ENTER" button is pressed, whereupon the code sequence that was entered is validated (lock opens) or is rejected (lock does not open). An alarm should sound if a certain number of incorrect validation attempts, say ten or twelve, are made with the "ENTER" button.
All the above is relatively simple to program into a microcontroller; not so much with flip-flops and combinatorial logic, although that is possible. Setting up the validation code sequence should also be a consideration because this should be changed from time to time. A USB memory stick with the latest validation sequence code stored as a text file could be used for this if microprocessor implementation is considered. There could even be different codes for different users and data logging with time stamps of user attempts to gain entry. A Raspberry Pi would probably be a low-cost solution.
I am reasonably confident that security companies already offer this type of combination lock, but it is fun to "roll your own" from time to time, especially if it is part of a learning process.